溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

verilog中的$display和$wirte

發布時間:2020-06-17 10:00:16 來源:網絡 閱讀:96621 作者:lihaichuan 欄目:開發技術

Verilog中的$display$write任務

1、格式

       $display(p1,p2, ,pn);

       $write(p1,p2, ,pn);

這兩個函數和系統任務的作用都是用來輸出信息,即將參數p2pn按參數p1給定的格式輸出。參數p1通常稱為:“格式控制”,參數p2pn通常稱為“輸出列表”。

$display自動地在輸出后進行換行,$write則不是這樣。如果想在一行里輸出多個信息,可以使用$write。如:$display(“%d”,10) $display(“%d\n”,10) 效果相同

$display$write中,其輸出格式控制是用雙引號括起來的字符串,它包括以下兩種信息:

1、格式說明,由”%”和格式字符組成。它的作用是將輸出的數據轉換成指定的格式輸出。格式說明總是由”%”字符開始的。下面是幾種常用的輸出格式。

       1)、 %h%H        以十六進制的形式輸出

       2)、 %d%D        以十進制的形式輸出

       3)、 %o%O        以八進制的形式輸出

       4)、 %b%B        以二進制的形式輸出

5)、 %c%C        ASCII碼字符的形式輸出

6)、 %v%V       輸出網絡型數據信號強度

7)、 %m%M       輸出等級層次的名字

8)、 %s%S        以字符串的形式輸出

9)、 %t%T        以當前的時間格式的形式輸出

10)、 %e%E        以指數的形式輸出實型數

11)、%f%F        以十進制的形式輸出實型數

12)、%g%G        以指數或者十進制的形式輸出實型數,無論何種格式都以較短的結果輸出。

13)、%x   十六進制

14)、%i    讀入十進制,八進制,十六進制,在編譯時通過數據前置來區分

如:%i0x31 表示為十六進制  %i031 表示為八進制 %i31 表示為十進制

15)、%u   無符號十進制數

2、普通字符,即需要原樣輸出的字符。其中包括一些轉義字符,下面的字符形式用于格式字符串參數中,用來顯示特殊的字符。

       1)、 \n    換行

       2)、 \t  相當于按一個Tab

       3)、 \\  反斜杠字符\

4)、 \”   雙引號字符

       5)、 \0  八進制數代表的字符

       6)、 \0x  十六進制數代表的字符

       7)、 %%  百分符號%

Verilog 中, 轉義符 一定是使用在雙引號括起來的字符串中!

 

 

 

 

2、%v %m %t

1、%v用于打印一個線網類型變量的信號強度,它不能打印矢量變量的信號強度,而只能打印標量變量,或者矢量變量的指定位的信號強度。信號強度用3個符號輸出表示,前兩個符號表示信號強度,而第三個符號表示信號的邏輯值。信號強度和邏輯值的意義分別如下面兩個表所示:

  信號邏輯值表示:

邏輯值 表示意義
0
表示邏輯0
1
表示邏輯1
X
表示邏輯不定態
Z
表示邏輯高阻態
L
表示邏輯0值,或者邏輯高阻態
H
表示邏輯1值,或者邏輯高阻態

  信號強度表示:

標記符 強度名 強度值表示
Su 電源
級驅動(Supply drive) 7
St
強驅動(Strong drive) 6
Pu
上拉級驅動(Pull drive) 5
La
大容性(Large caPACitor) 4
We
弱驅動(Weak drive) 3
Me
中級容性(Medium capacitor) 2
Sm
小容性(Small capacitor) 1
Hi
高容性(High capacitor) 0

%v打印一個信號的強度時,前兩個符號除了用上表中的信號強度標志符表示信號強度外,也可以用兩個數字表示信號強度。關于信號強度和邏輯值的建模在后續章節進行詳細介紹。

2、使用%m,可以打印當前打印語句所在的模塊層次。 3、%t 通常用于打印當前的仿真時間,當然也可以用于打印其他數據。該轉義符表示把對應的變量使用當前使用的時間表示格式進行打印。Verilog提供 系統函數 $time獲得當前的仿真時間信息,該系統函數輸出值為64比特表示的整數。Verilog還提供系統函數$timeformat用于設定當前的時間格式。關于$time$timeformat的使用也放在后續章節說明。

可以顯示全層次路徑名,包括模塊實例、任務、函數、命名塊。
如:可以具體到某個模塊的某個函數

 

如:$display(“%t”,$time) 輸出當前的仿真時間

4、如果輸出列表中的表達式的值包含不確定的值或高阻值,其結果遵循以下原則:

1)、在輸出格式為十進制的情況下:

如果表達式的所有位均為不定值,則輸出結果為小寫的x

如果表達式的所有位均為高阻值,則輸出結果為小寫的z

如果表達式的部分位為不定值,則輸出結果為大寫的X

如果表達式的部分位為高阻值,則輸出結果為大寫的Z

如:$display(“%d”,xxx)   輸出為x

       $display(“%d”,1x1)   輸出為X

高阻值類似

2)、在輸出格式為十六進制和八進制的情況下:

4位二進制數為一組代表一位十六進制數,每3位二進制數為一組代表一位八進制數,

規則和(1)類似,舉例說明

$display(“%d”,1’bx);     輸出結果為 x

$display(“%h”,14’bx0_1010);  輸出結果為:xxXa

$display(“%h %o”,12’b001x_xx10_1x01,12’b001_xxx_101_x01);

輸出結果為: XXX 1x5X

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女