test
testbench中的显示、打印任务的使用 2011-07-26 11:26:46| 分类: FPGA学习 | 标
签: |字号大
中
小 订阅
一、在Testbench中有4个最常用的显示、打印任务的系统函数:$display,$write,
$strobe,$monitor。这四
个函数用于在模拟中进行文本的输出操作。
①、$display函数,类似于C语言中的printf函数,其调用格式如下:
$display([format_string],[argument]
,[argument],....);
其中[format_string]包含了普通的可打印字符输出以及“escape sequences”(控制
argument格式字符)。
ie:$display("at %d ; signal x = %b", $time, x); %d和%b是"escape sequences",指定
当前仿真时间
($time)以及x 的输出格式分别为十进制和二进制
②、$write,与$display的含义基本一样,只是调用$write输出后不自动换行。''必须添
加到格式控制串中,
以实现换行
ie:$wwrite("at %d ; signal x = %b", $time, x);
③、$strobe 与$display的含义基本一样。不过当调用$strobe时不是立即执行,而不在当
前仿真时间的末尾执
行,从而避免了由于竞争而引起的数据的不匹配
④、$monitor,$display, $write, $strobe这三个任务每次调用只执行一次。而$monitor
任务每当其中一个参
量变换时便开始执行。因此常常用于跟踪变量的变化。
ie: $monitor ("%d %b %b %b",
$time, test_in0,
test_in1, test_out); //每当三个变量中任意一个变化时,输出
二、外部数据文件的访问操作
与文件操作有关的任务函数有:$fopen, $fclose(打开与关闭文件的函数)
①写文件操作:$fdisplay, $fwrite, $fstrobe, $fmonitor与上述的4个函数的功能一摸一
样,只不过调用的时
候要用到文件通道描述子
interger mcd_name;
mcd_name = $fopen("abc.txt");
第 1 页
UnRegistered