Verilog testbench总结.docx
《Verilog testbench总结.docx》由会员分享,可在线阅读,更多相关《Verilog testbench总结.docx(10页珍藏版)》请在第一文库网上搜索。
1、Veri1ogtestbench总结1.激励的产生对于testbench而言,端口应当和被测试的modu1e一一对应。端口分为input,output和inout类型产生激励信号的时候,input对应的端口应当中明为reg,OUtPUt对应的端口中明为Wire,inou1端口比较特殊,下面专门讲解。1)直接赋值。般用ini&a1块给信号赋初值,initia1块执行次,a1ways或者feVer表示由事件激发反复执行。举例,一个modu1emodu1eexam();regrstn;rege1k;regdata;initia1beginc1k=bO;rst=b1;#10rst=bO;#500rst
2、=b1;enda1waysbegin#10c1k=1k;end大家应该注意到有个#符号,该符号的意思是指延迟相应的时间单位。该时间单位由timsca1e决定.般在testbench的开头定义时间单位和仙直精度,比如timesca1e1ns1ps,前面一个是代表时间单位,后面一个代表仿真时间精度。以上面的例子而言,一个时钟周期是20个单位,也就是20ns。而仿真时间精度的概念就是,你能看到1OOInS时对应的信号值,而假如timesca1e1ns1ns,1.001ns时候的值就无法看到。对于一个设计而言,时间刻度应该统一,如果设计文件和testbench里面的时间刻度不一致,仿真器默认以test
3、bench为准。一个较好的办法是写一个g1oba1.v文件,然后用inc1ude的办法,可以防止这个问题。对于反复执行的操作,可写成Iask,然后调用,比如task1oadcount;input3:01oad_va1ue;begin(negedgec1k_50);Sdisp1ay($time,1oadingthecounterwith%h”,1oad_va1ue);1oad_1=1,b;count.in=1oadva1ue;(negedgec1k_50);1oad_1:1b1;endendtask/of1oad_countinitia1begin1oad_count(4,hA);/调用task
4、end2)文件输入有时候,需要大量的数据输入,到寄存器中,需要时取出即可。以包含输入激励和输出期望值)其他像forever,for,function等等语句用法类似,虽然不一定都能综合,但是用在testbench里面很方便,大家可以自行查阅参考文档直接赋值的话比较繁琐,可以先生成数据,再将数据读入用$readmemb系统任务从文本文件中读取二进制向量(可OSreadmemh用于读取十六进制文件。例如:reg7:0mem1:256/a8-bit,256-word定义存储器meminitia1Sreadmemh(yzEiZreadhexZmem.dat*,mem)/将.dat文件读入寄存器Inen
5、I中initia1$readmemh(E:/readhex/mem.datz,mem,128,1)/参数为寄存器加载数据的地址始终2 .查看仿真结果对于简单的modu1e来说,要在mode1篁色的仿真窗口里面看波形,就用addwave.命令比如,testbench的顶层InOdU1e名叫tb,要看时钟信号,就用addwavetb.e1k要查看所有信号的时候,就用addwave*当然,也可以在WOrkSP型e下的Sin1窗口里面右键单击instance来添加波形对于复杂的仿真,免不了要记录波形和数据到文件里面去。1)波形文件记录常见的波形文件一般有两种,VCd和1b,debussy是个很好的工具
6、,支持fsdb,所以最好是mode1sim+debussy的组合默认情况下,InOdeISin1不认识fsdb,所以需要先装debussy,再生成fsdb文件。$dumpfi1e和$(1UnIPVar是VCriIog语言中的两个系统任务,可以调用这两个系统任务来创建和将指定信息导入VCD文件.对于fsdb文件来说,对应的命令是fSdbDumpfi1e,dumpfsdbvars(什么是VCD文件?答:VCD文件是在对设计进行的仿真过程中,记录各种信号取值变化情况的信息记录文件,,EDA工具通过读取VCD格式的文件,显示图形化的仿真波形,所以,可以把VCD文件简单地视为波形记录文件.)下面分别描述
7、它们的用法并举例说明之。Sdumpfi1e系统任务:为所要创建的VCD文件指定文件名。举例(/”符号后的内容为注释文字):initia1Sdumpfi1eCmyfi1e.dump*);/指定VCD文件的名字为myfi1e.dump,仿真信息将记录到此文件$dumpvar系统任务:指定需要记录到VCD文件中的信号,可以指定某模块层次上的所有信号,也可以单独指定某一个信号。典型语法为$dumpvar(1eve1,modu1e_name);参数IeveI为一个整数,用于指定层次数,参数modu1e则指定要记录的模块。好句的意思就是,对于指定的模块,包括其下各个层次(层次数由IeVeI指定)的信号,都
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog testbench总结 testbench 总结