系統任務也屬於行為級建模,系統任務的調用要出現在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中值當前方針。