verilog系統任務——$display,$write,$strobe,$monitor,$stop,$finish


verilog系統任務——$display,$write,$strobe,$monitor,$stop,$finish

(2015-04-21 15:55:39)

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM