系统任务也属于行为级建模,系统任务的调用要出现在initial与always结构中。所有的任务都已$开头。
1、$display,$write用于信息的显示和输出。其中,
%b或%B 二进制
%o或%O 八进制
%d或%D 十进制
%h或%H 十六进制
%e或%E 实数
%c或%C 字符
%s或%S 字符串
%v或%V 信号强度
%t或%T 时间
%m或%M 层次实例
\n 换行
\t 制表符
\\ 反斜杠\
\" 引号”
\%% 百分号%
调用方式:eg:$display("%b+%b=%b",a,b,sum);
$write("%b+%b=%b",a,b,sum);
注:如果没有在指定变量的显示格式,不会输出数值。如果没有指定变量显示的位置,变量值会在字符串部分之后直接显示出来,变量之间是没有间隔的,只是一次简单的显示。
显示任务$display默认显示的格式是十进制的,还有$displayb,$displayo,$displaybh的显示格式分别是二进制,八进制,十六进制。同理有$write,$writeo,$writeb,$writeh。
$display与$write的区别是:$display会在每次显示信息后自动换行,$write不会换行。
2、$strobe探测任务
探测任务的语法和显示任务完全相同,也是把信息显示出来。也有$strobe,$strobeb,$strobeo,$strobeh四种。
两者的区别在于:$strobe命令会在当前时间部结束时完成;而$display是只要仿真器看到就会立即执行。
3、$monitor监测任务
监测任务用于持续监测指定变量,只要这些变量发生了变化,就会立即显示对应的输出语句。
eg:
initial
begin
$monitor("x=%b,y=%b,cin=%b",x,y,cin);
end
同理,有$monitor,$monitorb$monitoro$monitorh。
可用$monitoroff,monitoeron关闭监事和打开监视。
4、$stop,$finish仿真控制任务
区别:$stop暂停当前方针,$finish中值当前方针。