资源描述:
《数字集成电路从HDL到版图.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、第14章对验证的支持学习内容理解Verilog文本输出理解不同的读取仿真时间的系统函数理解Verilog文件I/O功能验证系统中的任务(task)及函数(function)Verilog读取当前仿真时间的系统函数$time$stime$realtimeVerilog支持文本输出的系统任务:$display$strobe$write$monitor仿真时间访问仿真时间$time,$realtime,和$stime函数返回当前仿真时间。这些函数的返回值使用调用模块中`timescale定义的时间单位$time返回一
2、个64位整数时间值。$stime返回一个32位整数时间值。$realtime返回一个实数时间值。$stime函数返回一个32位整数时间值。对大于232的时间,返回模232的值。使用它可以节省显示及打印空间。输出格式化时间信息`timescale10ns/100psmoduletop;regin1;notm1(o1,in1);initialbegin$timeformat(-9,2,"ns",10);in1=0;#8in1=1;#10$display("%t%b%b",$realtime,in1,o1);#10$
3、finish;endendmodule在这个例子中,显示的时间为:180.00nsunit:0(s)到-15(fs)之间的整数,表示时间度量precision:要显示的十进制小数位数。suffix:在时间值后显示的字符串min_width:显示前三项的最小宽度若使用多个`timescale,以最小的时间精度显示时间值。可用系统任务$timeformat结合格式符%t全局控制时间显示方式。$timeformat系统任务的语法为:$timeformat(,,,4、n_width>);输出格式化时间信息`timescale1ns/10psmoduletop;regin1;not#9.53n1(o1,in1);initialbegin$display("timerealtimestimetin1to1");$timeformat(-9,2,"ns",10);$monitor("%d%t%dt%bt%b",$time,$realtime,$stime,in1,o1);in1=0;#10in1=1;#10$finish;endendmoduletimerealtimes
5、timein1o100.00ns00x109.53ns10011010.00ns10112019.53ns2010输出格式化时间信息对#延迟,Verilog将延迟值舍入最近(四舍五入)时间精度值。例如,上面的例子修改为:`timescale1ns/100psnot#9.42n1(o1,in1);结果为:timerealtimestimein1o100.00ns00x99.40ns9011010.00ns10111919.40ns1910`timescale1ns/100psnot#9.49n1(o1,in1);
6、结果为:timerealtimestimein1o100.00ns00x99.50ns9011010.00ns10111919.50ns1910显示信号值—$display$display输出参数列表中信号的当前值。语法:$display([“format_specifiers”,])$display输出时自动换行。$display($time,“%bt%ht%dt%o”,sig1,sig2,sig3,sig4);$display($time,“%bt”,sig1,“%h
7、t”,sig2,“%dt”,sig3,“%o”,sig4);$display支持二进制、八进制、十进制和十六进制。缺省基数为十进制。$display(sig1,sig2,sig3,sig4);$displayb(sig1,sig2,sig3,sig4);$displayo(sig1,sig2,sig3,sig4);$displayh(sig1,sig2,sig3,sig4);%h%o%d%b%c%s%v%m%thexoctaldecimalbinaryASCIIstringstrengthmoduletime
8、t\"<1-3digitoctalnumber>%0dtab换行反斜杠双引号上述的ASCII表示无前导0的十进制数格式符转义符显示信号值—$write和$strobe$write与$display相同,不同的是不会自动换行。$write($time,“%bt%ht%dt%ot”,sig1,sig2,sig3,sig4);$strobe与$display相同,不同的是