第6讲verilog设计验证及简单组合逻辑电路设计

第6讲verilog设计验证及简单组合逻辑电路设计

ID:5395252

大小:532.50 KB

页数:50页

时间:2017-11-09

第6讲verilog设计验证及简单组合逻辑电路设计_第1页
第6讲verilog设计验证及简单组合逻辑电路设计_第2页
第6讲verilog设计验证及简单组合逻辑电路设计_第3页
第6讲verilog设计验证及简单组合逻辑电路设计_第4页
第6讲verilog设计验证及简单组合逻辑电路设计_第5页
资源描述:

《第6讲verilog设计验证及简单组合逻辑电路设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6讲Verilog设计验证及简单组合逻辑电路设计授课教师:邹兴平电邮地址:zou_xingping@163.com一、verilog设计的仿真验证占据整个设计的60~70%的工作量,需要很高的代码覆盖率,并不比设计可综合代码简单2021/6/182www.cuit.edu.cn测试平台的组成激励信号需要验证的设计激励信号和用于验证的结果数据需要验证的设计简单的测试平台复杂的测试平台2021/6/183www.cuit.edu.cn模块的测试测试模块常见的形式:modulet;reg…;//被测模块输入/输出变量类型定义wire…;//被测模块输入/输出变量类型定

2、义initialbegin…;…;…;end……//产生测试信号always#delaybegin…;end……//产生测试信号Testedmdm(.in1(ina),.in2(inb),.out1(outa),.out2(outb));//被测模块的实例引用initialbegin….;….;….end//记录输出和响应endmodule2021/6/184www.cuit.edu.cn模块的测试测试模块中常用的过程块:initialalways所有的过程块都在0时刻同时启动;它们是并行的,在模块中不分前后。initial块只执行一次。always块只要符合触发

3、条件可以循环执行。2021/6/185www.cuit.edu.cn模块的测试如何描述激励信号:modulet;rega,b,sel;wireout;//引用多路器实例mux2_m(out,a,b,sel);//加入激励信号initialbegina=0;b=1;sel=0;#10b=0;#10b=1;sel=1;#10a=1;#10$stop;end2021/6/186www.cuit.edu.cn并行块在测试块中常用到fork…join块。用并行块能表示以同一个时间起点算起的多个事件的运行,并行地执行复杂的过程结构,如循环或任务。举例说明如下:modulein

4、line_tb;reg[7:0]data_bus;initialforkdata_bus=8’b00;#10data_bus=8’h45;#20repeat(10)#10data_bus=data_bus+1;#25repeat(5)#20data_bus=data_bus<<1;#140data_bua=8’h0f;joinendmodule//这两个repeat开始执行时间不同,但能同时运行。2021/6/187www.cuit.edu.cn并行块时间data_bus08’b0000_0000108’b0100_0101308’b0100_0110408’b0

5、100_0111458’b1000_1110508’b1000_1111608’b1001_0000658’b0010_0000708’b0010_0001时间data_bus808’b0010_0010858’b0100_0100908’b0100_01011008’b0010_00011058’b0100_01101108’b1000_11001208’b1000_11101258’b0001_11001408’b0000_1111上面模块的仿真输出如下:2021/6/188www.cuit.edu.cn强制激励在一个过程块中,可以用两种不同的方式对信号变量或

6、表达式进行连续赋值。过程连续赋值往往是不可以综合的,通常用在测试模块中。两种方式都有各自配套的命令来停止赋值过程。两种不同方式均不允许赋值语句间的时间控制。assign和deassign适用于对寄存器类型的信号(例如:RTL级上的节点或测试模块中在多个地方被赋值的信号)进行赋值。initialbegin#10assigntop.dut.fsml.state_reg=`init_state;2021/6/189www.cuit.edu.cn#20deassigntop.dut.fsml.state_reg;endforce和release用于寄存器类型和网络连接类型

7、(例如:门级扫描寄存器的输出)的强制赋值,强制改写其它地方的赋值。initialbegin#10forcetop.dut.counter.scan_reg.q=0;#20releasetop.dut.counter.scan_reg.q;end在以上两个例子中,在10到20这个时间段内,网络或寄存器类型的信号被强制赋值,而别处对该变量的赋值均无效。force的赋值优先级高于assign。如果先使用assign,再使用force对同一信号赋值,则信号的值为force所赋的值,字符串强制激励2021/6/1810www.cuit.edu.cn语法详细讲解强制激励当执行

8、relea

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。