- 1、本文档共233页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
1.测试平台测试平台的基本框架如图5-21所示。测试模块与一般的VerilogHDL模块没有根本的区别,其有以下几个特点:(1)测试模块只有模块名字,没有端口列表;(2)输入信号(激励信号)必须定义为reg型,以保持信号值;输出信号(显示信号)必须定义为wire型;(3)在测试模块中调用被测试模块,在调用时,应注意端口排列的顺序与模块定义时一致;(4)一般用initial、always过程块来定义激励信号波形;使用系统任务和系统函数来定义输出显示格式;(5)在激励信号的定义中,可使用如下一些控制语句:if-else,for,forever,case,while,begin-end,fork-join等,这些控制语句一般只用在always、initial、function、task等过程块中。图5-21测试平台的基本框架Testbench的书写结构如下所示:(1)module仿真模块名;(2)各种输入、输出变量定义;(3)数据类型说明;(4)integer定义;(5)parameter定义;(6)DUT实例语句;(7)激励向量定义(always,initial过程块;function,task结构等;if-else,for等控制语句);(8)显示格式定义($monitor,$time,$display等)endmodule。激励向量通常有时钟信号,复位信号,固定值信号,随机信号等,时钟信号一般用单独的always语句或assign赋值语句产生,置/复位信号用简单的initial语句块产生,一般仿真开始复位1次。时钟信号(1) 时钟信号:使用循环语句提供反复变化 (1)占空比1:1 parameterperiod=10; regClk; initialClk=0;//时钟信号必须用initial语句赋初值 always#(period/2)Clk=~Clk; ……08:2951时钟信号(1)续 …… regclk; initialbegin #20clk=1; foreverbegin #10clk=0; #10clk=1; end end08:2952时钟信号(2) (2)占空比非1:1 parameterperiod=10; initialClk1=1; always begin #(period*0.6)Clk1=0; #(period*0.4)Clk1=1;//2:3 end ……08:2953时钟信号(2)续 regclk; initialbegin #20clk=1; foreverbegin #5clk=0; #15clk=1; end end08:2954时钟信号(3) (3)fork-join语句产生反相的两个时钟 initial begin clk1=0; clk2=1; fork forever#(period/2)clk1=!clk1; forever#(period/2)clk2=!clk2; join//在输入激励产生过程中,可用fork/join形式 //表示绝对时间 end08:2955复位信号 复位信号 (1)在验证过程中变化极少,一般开始复位 一次 (2)考虑复位的时间长度 分同步复位,异步复位08:2956【例5-28】1位全加器的仿真测试示例`timescale1ns/1nsmodulefull_adder_tb;rega,b,c;wireco,sum;integeri,j;parameterdelay=100;full_addU1(a,b,c,co,sum);initialbegina=0;b=0;c=0;for(i=0;i2;i=i+1)for(j=0;j2;j=j+1)begina=i;b=j;c=0;#delay;endfor(i=0;i2;i=i+1)for(j=0;j2;j=j+1)begina=i;b=j;c=1;#delay;endendendmodule2.系统任务与系统函数◆系统任务和系统函数一般以符号“$”开头。例如:$monitor,$readmemh等。◆使用不同的Veri
文档评论(0)