第四讲 逻辑验证与testbench编写(p)

第四讲 逻辑验证与testbench编写(p)

ID:34614613

大小:477.51 KB

页数:8页

时间:2019-03-08

第四讲 逻辑验证与testbench编写(p)_第1页
第四讲 逻辑验证与testbench编写(p)_第2页
第四讲 逻辑验证与testbench编写(p)_第3页
第四讲 逻辑验证与testbench编写(p)_第4页
第四讲 逻辑验证与testbench编写(p)_第5页
资源描述:

《第四讲 逻辑验证与testbench编写(p)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、河海大学常州校区Verilog中级篇1/44河海大学常州校区Verilog中级篇2/44第四讲逻辑验证与Testbench编写1概述2建立Testbench3实例:CPU接口仿真河海大学常州校区Verilog中级篇3/44河海大学常州校区Verilog中级篇4/44河海大学常州校区Verilog中级篇5/44河海大学常州校区Verilog中级篇6/44¾编写仿真激励ò仿真激励与被测对象的连接ò使用initial语句和always语句ò时钟、复位的写法ò产生值序列ò利用系统函数和系统任务ò从文本文件中读出和写入数据ò并行激励ò利用for语句实现遍历测试ò封装功能模块1河海大学常州校区Ve

2、rilog中级篇7/44河海大学常州校区Verilog中级篇8/44ò使用initial语句和always语句ò时钟、复位的写法•被动地检测响应时使用always语句,主动地产生•普通时钟信号激励时则使用initial语句•区别:initial语句只执行一次,always语句不断//产生一个周期为10的时钟地重复执行parameterFAST_PERIOD=10;regClock;initialbeginClock=0;forever#(FAST_PERIOD/2)Clock=~Clock;end河海大学常州校区Verilog中级篇9/44河海大学常州校区Verilog中级篇10/44

3、河海大学常州校区Verilog中级篇11/44河海大学常州校区Verilog中级篇12/44•固定数目时钟信号//两个高脉冲的时钟parameterPulseCount=4,FAST_PERIOD=10;regClock;initialbeginClock=0;repeat(PulseCount)#(FAST_PERIOD/2)Clock=~Clock;end2河海大学常州校区Verilog中级篇13/44河海大学常州校区Verilog中级篇14/44•异步复位信号•同步复位信号//异步复位信号//同步复位信号parameterPERIOD=10;initialregRst_n;beg

4、ininitialRst_n=1;begin@(negedgeClock);//等待时钟下降沿Rst_n=1;Rst_n=0;#PERIODRst_n=0;#30;#(5*PERIOD)Rst_n=1;@(negedgeClock);//等待时钟下降沿endRst_n=1;//Rst_n低有效,10ns时开始复位,持续时间为end50ns河海大学常州校区Verilog中级篇15/44河海大学常州校区Verilog中级篇16/44//另一种同步复位信号实现方法initialbeginRst_n=1;@(negedgeClock);//等待时钟下降沿Rst_n=0;repeat(3)@(n

5、egedgeClock);//等待3个时钟下降沿Rst_n=1;end河海大学常州校区Verilog中级篇17/44河海大学常州校区Verilog中级篇18/44ò产生值序列3河海大学常州校区Verilog中级篇19/44河海大学常州校区Verilog中级篇20/44initial//在initial语句块中产生值序列//值序列模型beginParameterSLOWPERIOD=24;Mpi_addr=0;reg[5:0]Mpi_addr;Mpi_cs_n=1;regMpi_cs_n;Mpi_rw=1;regMpi_rw;Mpi_oe=0;regMpi_oe;Data_out=0;t

6、ri[7:0]Mpi_data;#SLOW_PERIOD;reg[7:0]Data_out;Data_out=MY_DATA;assignMpi_data=(Mpi_oe)?Data_out:8'bz;Mpi_addr=MY_ADDR;Mpi_rw=0;河海大学常州校区Verilog中级篇21/44河海大学常州校区Verilog中级篇22/44ò利用系统函数和系统任务#SLOW_PERIOD;•可帮助产生测试激励,显示调试信息,协助定位Mpi_oe=1;•使用display语句在仿真器中打印出地址和数据#(SLOW_PERIOD/4);$display("Addr:%b->DataWr

7、ite:%d",Mpi_cs_n=0;Mpi_addr,Data_out);#((2*SLOW_PERIOD)+(SLOW_PERIOD/2));•利用时序检查的系统任务来检查时序Mpi_cs_n=1;$setup(Sig_D,posedgeClock,1);//如果在Clock上升沿到达之前的lns时间内Sig_D#(SLOW_PERIOD/4);发生跳变,则将给出建立时间违反告警Mpi_addr=0;$hold(posedgeClock,S

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

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

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