verilog系统任务——$display,$write,$strobe,$monitor,$stop,$finish

系统任务也属于行为级建模,系统任务的调用要出现在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中值当前方针。

你可能感兴趣的:(FPGA)