Verilog的讲义.pptVIP

  • 23
  • 0
  • 约1.74万字
  • 约 50页
  • 2018-06-09 发布于福建
  • 举报
Verilog的讲义

第14章 对验证的支持 学习内容 理解Verilog文本输出 理解不同的读取仿真时间的系统函数 理解 Verilog文件I/O功能 验证系统中的任务(task)及函数(function) Verilog读取当前仿真时间的系统函数 $time $stime $realtime Verilog支持文本输出的系统任务: $display $strobe $write $monitor 仿真时间 访问仿真时间 $time,$realtime,和$stime函数返回当前仿真时间。 这些函数的返回值使用调用模块中`timescale定义的时间单位 $time返回一个64位整数时间值。 $stime返回一个32位整数时间值。 $realtime返回一个实数时间值。 $stime函数返回一个32位整数时间值。对大于232的时间,返回模232的值。使用它可以节省显示及打印空间。 输出格式化时间信息 若使用多个`timescale,以最小的时间精度显示时间值。 可用系统任务$timeformat结合格式符%t全局控制时间显示方式。 $timeformat系统任务的语法为: $timeformat(unit,precision,suffix,min_width); 输出格式化时间信息 输出格式化时间信息 显示信号值 — $display $display输出参数列表中信号的当前值。 语法:$display([“ format_specifiers”,] argument_ list) $display输出时自动换行。 $display ($ time, “%b \t %h \t %d \t %o”, sig1, sig2, sig3, sig4); $display ($ time, “%b \t”, sig1, “%h \t”, sig2, “% d \t”, sig3, “%o”, sig4); $display支持二进制、八进制、十进制和十六进制。缺省基数为十进制。 $display (sig1, sig2, sig3, sig4); $displayb (sig1, sig2, sig3, sig4); $displayo (sig1, sig2, sig3, sig4); $displayh (sig1, sig2, sig3, sig4); 显示信号值—$write和$strobe $write与$display相同,不同的是不会自动换行。 $write($time, “%b \t %h \t %d \t %o \t”, sig1, sig2, sig3, sig4); $strobe与$display相同,不同的是在仿真时间前进之前的信号值。而$display和$write立即显示信号值。也就是说$strobe显示稳定状态信号值,而$display和$write可以显示信号的中间状态值。 $strobe($time, “%b \t %h \t %d \t %o \t”, sig1, sig2, sig3, sig4); $write和$strobe都支持多种数基,缺省为十进制。 $writeb $strobeb $writeo $strobeo $writeh $strobeh 显示信号值—$write和$strobe 下面是模块textio仿真的输出: $writeb输出: 0 xxxxxxxx x 注意data是32位数据,由8位十六进制数表示。时间以没有前导零的十进制形式输出。 缺省情况下,值以十进制显示,忽略前导零,与%0d格式符相同。可以在一个格式化符前插入一个0使Verilog忽略开头的零。 $displayh: 00000000000000f 1 注意当前时间,一个64位量,需要16个十六进制的数。 $display: 10 20 $strobe: 10 30 监视信号值—$monitor $monitor持续监视参数列表中的变量。 在一个时间片中,参数表中任何信号发生变化,$monitor将在仿真时间前进前显示参数表的信号值。 后面的$monitor将覆盖前面的$monitor。 可以用系统任务$monitoron和$monitoroff控制持续监视。 $monitor

文档评论(0)

1亿VIP精品文档

相关文档