systemverilog验证学习笔记
=阻塞串行
<=非阻塞并行
1)时序逻辑----使用非阻塞赋值 2)锁存器----使用非阻塞赋值
3)用always块生成的组合逻辑----用阻塞赋值 4)在同一个always块中既有时序逻辑又有组合逻辑--- 用非阻塞赋值
5)在同一个always块中不要既用阻塞赋值又用非阻塞赋值 6)不要在一个以上的always块中对同一个变量赋值 7)用$strobe显示用非阻塞赋值指定的变量值
8)不要用 #0 过程性赋值Modport将信号分组并指明方向
函数不能消耗时间,不能有#100@(posedge clk)wait之类的阻塞语句
Interface arb_if(input bit clk); Logic [1:0] a,b; Logic rst;
Modport test(output a,rst, Input b,clk); Endinterface
Module arb(arb_if.test arbif); ………… Endmodule
数组定位
Int tq[$],d[]=’{9,1,8,3,4,4};
Tq=d.find_index(x) with (item>3); //{0,2,4,5}得到的是脚标 Tq=d.find with (item>3); //{9,8,4,4} 数组求和 Int count,total;
Count=d.sum with(item>7); //2:{9,8} 返回结果为元素与7比较表达式返回1为真或者零这里面返回 ,{1,0,1,0,0,0}求和得2 Total=d.sum with ((item>7)*item) ; //{1,0,1,0,0,0}和对应元素相乘求和得17=9加8 数组排序
d.reverse(); //逆序 d.sort(); //从小到大 d.rsotr(); //从大到小 d.shuffle();
时钟块
指定同步信号相对于时钟的时序
Interface arb_if(input bit clk); Logic [1:0] a,b; Logic rst;
Clocking cb @(posedge clk); Output a; Input b;
Modport test(output rst, Clocking cb); Endinterface
Module arb(arb_if.test arbif); Initial begin Arbif.cb.a<=0; @arbif.cb; $dispiay(………..) Endmodule
断言
A1:assert(bus.cb.a==2’b01)
Else $error(“grant not asserted”);
四种有输出消息的函数可在断言内部使用 $info $waring $error $fatal
要验证这样一个属性:“当信号a在某一个时钟周期为高电平时,那么在接下来的2~4个时钟周期内,信号b应该为高电平”。用Verilog语言描述这样一个属性需要一大段代码,而用SVA描述就只需要几行代码。下面的代码为SVA。 例1:
property a2b_p; @(posedge sclk) $rose(a) |-> [2:4] $rose(b); endproperty
a2b_a: assert property(a2b_p); a2b_c: cover property(a2b_p);
并发断言
并发断言的计算基于时钟周期,在时钟边沿根据变量的采样值计算表达式。它可以放在过程块(procedural block)、模块(module)、接口(interface)或一个程序块(program)的定义中。并发断言可以在静态(形式化)验证工具和动态(仿真)验证工具中使用。上面的例子就是并发断言
SVA提供了3个内嵌函数,用于检查信号的边沿变化。 $rose(布尔表达式或信号名)
当信号/表达式的最低位由0或x变为1时返回真值。 $fell(布尔表达式或信号名)
当信号/表达式的最低位由1变为0或x时返回真值。 $stable(布尔表达式或信号名)
当信号/表达式的最低位不发生变化时返回真值。 断言的建立过程
“编写布尔表达式 —> 编写序列(sequence)-> 编写属性(property)—> 编写断言(assert property)和覆盖语句(cover property)”
唯一性和优先级决定语句
在Verilog中,如果没有遵循严格的编码风格,它的if-else和case语句会在RTL仿真和RTL综合间具有不一致的结果。如果没有正确使用full_case和parallel_case综合指令还会引起一些其它的错误。 SystemVerilog能够显式地指明什么时候一条决定语句的分支是唯一的,或者什么时候需要计算优先级。我们可以在if或case关键字之前使用unique或requires关键字。这些关键字可以向仿真器、综合编译器、以及其它工具指示我们期望的硬件类型。工具使用这些信息来检查if或case语句是否正确建模了期望的逻辑。例如,如果使用unique限定了一个决定语句,那么在不希望的case值出现的时候仿
…… 此处隐藏:319字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




