国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Verilog HDL語言中任務與函數的比較

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2021-07-02 10:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C語言類比,可以把任務理解成返回類型為void的子程序,把函數理解為帶有返回值類型的子程序。

1、任務(task)

(1)任務定義的語法為:

task《任務名》; 《端口與類型說明》 《局部變量說明》 begin 《語句》 endendtask

需要注意的是,在第一行task語句中不能列出端口名列表;可以沒有輸入、輸出端口和雙向端口,也可以有一個或多個輸入、輸出端口和雙向端口。

(2)任務的調用

《任務名》(端口1,端口2,。..,端口n);

任務的調用只能在過程塊中進行。當被調用的任務具有輸入或輸出端口時,任務調用語句必須包含端口列表。這個列表內端口出現的順序和類型必須與任務定義的順序和類型一致。

2、函數(function)

函數的目的是通過返回一個值來響應輸入信號的值。函數不能啟動任務,但任務可以啟動函數。在Verilog HDL中函數被當作操作符來使用,結果就是這個函數的返回值。

(1)函數的定義

function《返回值的類型和位寬》(函數名) 《端口與類型說明》 《局部變量說明》 begin 《語句》 endendfunction

其中,返回值的類型和位寬是可選項,如果缺省會返回一位寄存器類型數據。Verilog HDL認為函數的定義隱式地聲明了與函數同名的寄存器。函數的定義把函數被返回值所賦值寄存器的名稱初始化為與函數同名的內部變量。

(2)函數的調用

《函數名》(《輸入表達式1》,《輸入表達式2》,。..,《輸入表達式n》);

其中,n個輸入表達式要與函數定義結構中說明的各個端口一一對應,他們代表各個輸入端口的輸入數據,這些輸入表達式的排列順序及類型必須與各個輸入端口在函數定義結構中的排列順序及類型嚴格保持一致。

函數的調用不能單獨作為一條語句出現,他只能作為一個操作出現在賦值語句內,不僅能夠用于過程塊內的賦值,還能夠出現在assign語句中。

3、任務與函數的比較

(1)函數至少必須有一個輸入端口,而任務可以有多個、一個或沒有輸入端口;

(2)函數不能有輸出端口,而任務可以有多個、一個或沒有輸出端口;

(3)函數調用通過函數名返回一個返回值,而任務調用通過端口傳遞返回值;

(4)函數中不能調用任務,但任務中可以調用函數;

(5)函數調用不能作為一條語句出現,而任務調用可以;

(6)函數調用可以出現在過程塊或者連續賦值語句中,而任務調用只能出現在過程塊中。

文章出處:【微信公眾號:FPGA之家】

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7335

    瀏覽量

    94754
  • C語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145569

原文標題:Verilog HDL語言(3) : 任務和函數

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Verilog HDL語法學習筆記

    Verilog HDL 語 言 最 初 是 作為 Gateway Design Automation 公 司 ( Gateway DesignAutomation 公司后來被著名的 Cadence Design Systems 公司收購)模擬器產品開發的硬件建模
    的頭像 發表于 03-04 15:04 ?1823次閱讀
    <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法學習筆記

    C語言中實現函數宏的三種方式

    (0) 不同的是,({}) 不能提前退出函數宏與支持返回值。({}) 畢竟不是 while 循環,不能直接使用 break退出函數宏是比較容易理解。那支持返回值是什么意思呢? 答案是 C
    發表于 12-29 07:34

    請問C語言中整形溢出的解決方法有哪些?

    C語言中整形溢出的解決方法有哪些?
    發表于 12-29 07:33

    單片機c語言中定義字節怎么定義?

    定義位可以用***it但是定義字節呢?還有就是比如匯編中的DPTR的DPH和DPL在c語言中怎樣定義的呢?
    發表于 12-29 06:32

    請問C語言中整形溢出會產生哪些異常行為?

    C語言中整形溢出會產生哪些異常行為?
    發表于 12-26 07:05

    請問C語言中整形溢出對哪些應用場景影響較大?

    C語言中整形溢出對哪些應用場景影響較大
    發表于 12-24 08:24

    C語言中可以嵌套匯編語言嗎?

    請問C語言中可以嵌套匯編語言嗎?
    發表于 12-15 08:14

    【產品介紹】Modelsim:HDL語言仿真軟件

    概述ModelSim是業界最優秀的HDL語言仿真軟件,它能提供友好的仿真環境,是業界唯一的單內核支持VHDL和Verilog混合仿真的仿真器。它采用直接優化的編譯技術、Tcl/Tk技術、和單一內核
    的頭像 發表于 11-13 11:41 ?496次閱讀
    【產品介紹】Modelsim:<b class='flag-5'>HDL</b><b class='flag-5'>語言</b>仿真軟件

    復雜的軟件算法硬件IP核的實現

    函數功能的簡短的描述。 HASM 語言包含了兩種結構,一種是功能域一種是結構域。 功能域負責一些基本的運算操作,例如算術運算、邏輯運算還有數據傳送操作,通常由組合邏輯實現,并且與 C 語言中
    發表于 10-30 07:02

    如何利用Verilog HDL在FPGA上實現SRAM的讀寫測試

    本篇將詳細介紹如何利用Verilog HDL在FPGA上實現SRAM的讀寫測試。SRAM是一種非易失性存儲器,具有高速讀取和寫入的特點。在FPGA中實現SRAM讀寫測試,包括設計SRAM接口模塊
    的頭像 發表于 10-22 17:21 ?4338次閱讀
    如何利用<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>在FPGA上實現SRAM的讀寫測試

    C語言中的內聯函數與宏

    在C編程中,內聯函數和宏都用于避免函數調用的開銷并編寫可復用的邏輯部分,但它們在工作方式和安全性方面存在顯著差異。
    的頭像 發表于 07-25 15:10 ?1905次閱讀
    C<b class='flag-5'>語言中</b>的內聯<b class='flag-5'>函數</b>與宏

    Windows環境下32位匯編語言中文資料

    電子發燒友網站提供《Windows環境下32位匯編語言中文資料.rar》資料免費下載
    發表于 06-30 15:14 ?0次下載

    verilog模塊的調用、任務函數

    在做模塊劃分時,通常會出現這種情形,某個大的模塊中包含了一個或多個功能子模塊,verilog是通過模塊調用或稱為模塊實例化的方式來實現這些子模塊與高層模塊的連接的.
    的頭像 發表于 05-03 10:29 ?1560次閱讀
    <b class='flag-5'>verilog</b>模塊的調用、<b class='flag-5'>任務</b>和<b class='flag-5'>函數</b>

    FPGA Verilog HDL語法之編譯預處理

    Verilog HDL語言和C語言一樣也提供了編譯預處理的功能。“編譯預處理”是Verilog HDL
    的頭像 發表于 03-27 13:30 ?1434次閱讀
    FPGA <b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>語法之編譯預處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語言,用于從算法級、門級到開關級的多種抽象設計層次的數字系統建模。現實生活中多用于專用集成電路
    的頭像 發表于 03-17 15:17 ?4291次閱讀
    一文詳解<b class='flag-5'>Verilog</b> <b class='flag-5'>HDL</b>