零基礎(chǔ)學(xué)FPGA(五)Verilog語法基基礎(chǔ)基礎(chǔ)(下)
9、關(guān)于任務(wù)和函數(shù)的小結(jié),挑幾點重要的說一下吧
本文引用地址:http://butianyuan.cn/article/267553.htm(1)任務(wù)具有多個輸入、輸入/輸出和輸出變量,在任務(wù)重可以使用延遲、事件和時序控制結(jié)構(gòu),在任務(wù)重可以調(diào)用其它任務(wù)和函數(shù)。與任務(wù)不同,函數(shù)具有返回值,而且至少要有一個輸入變量,而且在函數(shù)中不能使用延遲、事件和時序控制結(jié)構(gòu),函數(shù)可以條用函數(shù),但是不能調(diào)用任務(wù)。
(2)在聲明函數(shù)時,系統(tǒng)會自動的生成一個寄存器變量,函數(shù)的返回值通過這個寄存器返回到調(diào)用處。
(3)函數(shù)和任務(wù)都包含在設(shè)計層次中,可以通過層次名對他們實行調(diào)用。這句話什么意思啊?
10、系統(tǒng)任務(wù)
(1)$diplay和$write任務(wù)
$display任務(wù)相當(dāng)于C語言里的printf,用于輸出信息,他的基本格式$display (p0,p1,p2);意思就是把p1、p2以p1的格式輸出,至于具體格式,C語言里面講的很清楚,下面用一張圖幫大家回憶一下
此外,在display中,輸出列表中的數(shù)據(jù)的現(xiàn)實寬度總是按照自動輸出格式進行調(diào)整的。因此,我們通常在%和表示進制的符號之間加一個0來確??偸怯米钌俚奈粩?shù)來表示表達式的當(dāng)前值。
例如
begin
r1=10;
$display("size=%d=%h",r1,r1);
$display("size=%0d=%0h",r1,r1);
輸出結(jié)果分別為 10,00a和10,a
所以在以后寫程序時,為了養(yǎng)成良好習(xí)慣,應(yīng)該注意加上0來保證代碼的可讀性。
如果輸出的列表中含有不定值或者高阻態(tài)時,要遵循下列情況
(1)如果按10進制輸出
如果輸出列表全部為不定值,則輸出為小寫x;
如果輸出列表部分為不定值,則輸出為大寫X;
如果輸出列表全部為高阻態(tài),則輸出為小寫的z;
如果輸出列表部分為高阻態(tài),則輸出為大寫的Z;
(2)如果按十六進制或者8進制輸出
那么十六進制對應(yīng)的四位或者8進制對應(yīng)的3位中,如果部分是高阻態(tài)或者是不定值,那么輸出結(jié)果為大寫的Z或者X否則就輸出小寫的z或者x;
例如
(2)$monitor
系統(tǒng)任務(wù)$monitor提供了監(jiān)控和輸出參數(shù)列表中的表達式或變量值的功能,其參數(shù)列表中輸出控制格式字符串和輸出列表的規(guī)則和$display一樣,當(dāng)啟動一個帶有一個或者多個的$monitor任務(wù)時,仿真器則創(chuàng)立一個仿真機制,使得每當(dāng)參數(shù)列表中的表達式或值發(fā)生變化時,整個參數(shù)列表中的變量或者表達式的值都將輸出顯示,如果在同一時刻,兩個或者多個參數(shù)的值發(fā)生變化,則在這時刻只輸出顯示一次,但在$monitor任務(wù)中,參數(shù)可以是$time系統(tǒng)函數(shù),這樣參數(shù)列表中變量或者表達式的值同時發(fā)生變化的時刻可以通過標(biāo)明同一時刻的多行輸出來顯示。
例如
$monitoron和$monitoroff的功能就是通過打開或者關(guān)閉監(jiān)控標(biāo)志來控制監(jiān)控任務(wù)$monitor的啟動和停止。這樣可以使得程序員很容易的控制$monitor什么時候執(zhí)行了。
(3)時間度量系統(tǒng)函數(shù)$time
在verilog hdl語法中有兩種時間度量系統(tǒng)函數(shù),分別是$time和$realtime,用這兩個系統(tǒng)函數(shù)可以得到當(dāng)前的仿真時刻。$time可以返回一個64位的值來記錄當(dāng)前的仿真時刻。
(4)$finish
系統(tǒng)任務(wù)$finish的作用是退出仿真器,返回主操作系統(tǒng),也就是結(jié)束仿真過程。格式是
$finish或者$finish(1);如果不帶參數(shù),則默認參數(shù)為1,下面是具體參數(shù)下系統(tǒng)輸出的特征信息。
0 不輸出任何信息
1 輸出當(dāng)前仿真時刻和位置
2 輸出當(dāng)前仿真時刻、位置和在仿真過程中所用memory及CPU時間的統(tǒng)計。
表示看不懂...
fpga相關(guān)文章:fpga是什么
c語言相關(guān)文章:c語言教程
評論