新聞中心

        EEPW首頁 > 嵌入式系統 > 牛人業話 > 零基礎學FPGA(五)Verilog語法基基礎基礎(下)

        零基礎學FPGA(五)Verilog語法基基礎基礎(下)

        作者: 時間:2014-12-31 來源:網絡 收藏

          9、關于任務和函數的小結,挑幾點重要的說一下吧

        本文引用地址:http://www.104case.com/article/267553.htm

          (1)任務具有多個輸入、輸入/輸出和輸出變量,在任務重可以使用延遲、事件和時序控制結構,在任務重可以調用其它任務和函數。與任務不同,函數具有返回值,而且至少要有一個輸入變量,而且在函數中不能使用延遲、事件和時序控制結構,函數可以條用函數,但是不能調用任務。

          (2)在聲明函數時,系統會自動的生成一個寄存器變量,函數的返回值通過這個寄存器返回到調用處。

          (3)函數和任務都包含在設計層次中,可以通過層次名對他們實行調用。這句話什么意思啊?

          10、系統任務

          (1)$diplay和$write任務

          $display任務相當于C語言里的printf,用于輸出信息,他的基本格式$display (p0,p1,p2);意思就是把p1、p2以p1的格式輸出,至于具體格式,C語言里面講的很清楚,下面用一張圖幫大家回憶一下

          

        360桌面截圖20140311213804.jpg

         

          

        360桌面截圖20140311213848.jpg

         

          此外,在display中,輸出列表中的數據的現實寬度總是按照自動輸出格式進行調整的。因此,我們通常在%和表示進制的符號之間加一個0來確保總是用最少的位數來表示表達式的當前值。

          例如

          begin

          r1=10;

          $display("size=%d=%h",r1,r1);

          $display("size=%0d=%0h",r1,r1);

          輸出結果分別為 10,00a和10,a

          所以在以后寫程序時,為了養成良好習慣,應該注意加上0來保證代碼的可讀性。

          如果輸出的列表中含有不定值或者高阻態時,要遵循下列情況

          (1)如果按10進制輸出

          如果輸出列表全部為不定值,則輸出為小寫x;

          如果輸出列表部分為不定值,則輸出為大寫X;

          如果輸出列表全部為高阻態,則輸出為小寫的z;

          如果輸出列表部分為高阻態,則輸出為大寫的Z;

          (2)如果按十六進制或者8進制輸出

          那么十六進制對應的四位或者8進制對應的3位中,如果部分是高阻態或者是不定值,那么輸出結果為大寫的Z或者X否則就輸出小寫的z或者x;

          例如

          

        360桌面截圖20140324223251.jpg

         

          (2)$monitor

          系統任務$monitor提供了監控和輸出參數列表中的表達式或變量值的功能,其參數列表中輸出控制格式字符串和輸出列表的規則和$display一樣,當啟動一個帶有一個或者多個的$monitor任務時,仿真器則創立一個仿真機制,使得每當參數列表中的表達式或值發生變化時,整個參數列表中的變量或者表達式的值都將輸出顯示,如果在同一時刻,兩個或者多個參數的值發生變化,則在這時刻只輸出顯示一次,但在$monitor任務中,參數可以是$time系統函數,這樣參數列表中變量或者表達式的值同時發生變化的時刻可以通過標明同一時刻的多行輸出來顯示。

          例如

          

        360桌面截圖20140325161107.jpg

         

          $monitoron和$monitoroff的功能就是通過打開或者關閉監控標志來控制監控任務$monitor的啟動和停止。這樣可以使得程序員很容易的控制$monitor什么時候執行了。

          (3)時間度量系統函數$time

          在verilog hdl語法中有兩種時間度量系統函數,分別是$time和$realtime,用這兩個系統函數可以得到當前的仿真時刻。$time可以返回一個64位的值來記錄當前的仿真時刻。

          (4)$finish

          系統任務$finish的作用是退出仿真器,返回主操作系統,也就是結束仿真過程。格式是

          $finish或者$finish(1);如果不帶參數,則默認參數為1,下面是具體參數下系統輸出的特征信息。

          0 不輸出任何信息

          1 輸出當前仿真時刻和位置

          2 輸出當前仿真時刻、位置和在仿真過程中所用memory及CPU時間的統計。

          表示看不懂...

        fpga相關文章:fpga是什么


        c語言相關文章:c語言教程



        上一頁 1 2 下一頁

        關鍵詞: FPGA Verilog

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 连南| 穆棱市| 大石桥市| 北宁市| 南皮县| 陕西省| 南丹县| 方正县| 宁德市| 庆阳市| 安达市| 绥宁县| 色达县| 永清县| 巴林右旗| 邳州市| 商水县| 安福县| 望奎县| 吉木乃县| 聂荣县| 乐昌市| 靖宇县| 昌平区| 吴旗县| 进贤县| 江华| 兴宁市| 吴桥县| 永川市| 康保县| 开封市| 麦盖提县| 江山市| 申扎县| 库尔勒市| 嘉定区| 奉新县| 石渠县| 广南县| 喀什市|