<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 零基礎學(xué)FPGA(五)Verilog語(yǔ)法基基礎基礎(下)

零基礎學(xué)FPGA(五)Verilog語(yǔ)法基基礎基礎(下)

作者: 時(shí)間:2014-12-31 來(lái)源:網(wǎng)絡(luò ) 收藏

  9、關(guān)于任務(wù)和函數的小結,挑幾點(diǎn)重要的說(shuō)一下吧

本文引用地址:http://dyxdggzs.com/article/267553.htm

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

  (2)在聲明函數時(shí),系統會(huì )自動(dòng)的生成一個(gè)寄存器變量,函數的返回值通過(guò)這個(gè)寄存器返回到調用處。

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

  10、系統任務(wù)

  (1)$diplay和$write任務(wù)

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

  

360桌面截圖20140311213804.jpg

 

  

360桌面截圖20140311213848.jpg

 

  此外,在display中,輸出列表中的數據的現實(shí)寬度總是按照自動(dòng)輸出格式進(jìn)行調整的。因此,我們通常在%和表示進(jìn)制的符號之間加一個(gè)0來(lái)確??偸怯米钌俚奈粩祦?lái)表示表達式的當前值。

  例如

  begin

  r1=10;

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

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

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

  所以在以后寫(xiě)程序時(shí),為了養成良好習慣,應該注意加上0來(lái)保證代碼的可讀性。

  如果輸出的列表中含有不定值或者高阻態(tài)時(shí),要遵循下列情況

  (1)如果按10進(jìn)制輸出

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

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

  如果輸出列表全部為高阻態(tài),則輸出為小寫(xiě)的z;

  如果輸出列表部分為高阻態(tài),則輸出為大寫(xiě)的Z;

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

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

  例如

  

360桌面截圖20140324223251.jpg

 

  (2)$monitor

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

  例如

  

360桌面截圖20140325161107.jpg

 

  $monitoron和$monitoroff的功能就是通過(guò)打開(kāi)或者關(guān)閉監控標志來(lái)控制監控任務(wù)$monitor的啟動(dòng)和停止。這樣可以使得程序員很容易的控制$monitor什么時(shí)候執行了。

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

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

  (4)$finish

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

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

  0 不輸出任何信息

  1 輸出當前仿真時(shí)刻和位置

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

  表示看不懂...

fpga相關(guān)文章:fpga是什么


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: FPGA Verilog

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>