0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog設(shè)計中函數(shù)和任務(wù)的作用分析

OpenFPGA ? 來源:OpenFPGA ? 作者:OpenFPGA ? 2022-03-15 11:01 ? 次閱讀

使用Verilog可以方便地實現(xiàn)復(fù)雜的設(shè)計。現(xiàn)在,設(shè)計復(fù)雜性增加,設(shè)計需要針對低功率、高速和最小面積進(jìn)行優(yōu)化~

任務(wù)和函數(shù)在Verilog中用于描述常用的功能行為。與其在不同的地方復(fù)制相同的代碼,不如根據(jù)需求使用函數(shù)或任務(wù),這是一種良好且常見的做法。為了便于代碼維護(hù),最好使用子例程之類的函數(shù)或任務(wù)。

從給定字符串中計算1的個數(shù)

以下示例描述用于從給定字符串中計算1的個數(shù)任務(wù)。以下是使用任務(wù)時需要記住的要點:

任務(wù)可以由時間控制語句甚至延遲操作符組成。

任務(wù)可以有輸入和輸出聲明。

任務(wù)可以由函數(shù)調(diào)用組成,但函數(shù)不能由任務(wù)組成。

任務(wù)可以有輸出參數(shù),在調(diào)用時不用于返回值。

任務(wù)可用于調(diào)用其他任務(wù)。

在編寫可綜合RTL時,不建議使用任務(wù)。

任務(wù)用于編寫行為或可仿真模型。

示例7.6是從給定字符串中計算1的個數(shù)的說明。在本例中,任務(wù)與參數(shù)“data_in”、“out”一起使用,任務(wù)的名稱為“count_1s_in_byte”。在大多數(shù)協(xié)議描述中,需要對輸入字符串執(zhí)行一些操作。在此示例中,字符串為8位輸入“data_in”,輸出結(jié)果為4位“out”。不建議使用任務(wù)生成綜合邏輯。

9585004a-a3ea-11ec-952b-dac502259ad0.png

示例7.6任務(wù)的Verilog RTL

使用函數(shù)計數(shù)1的個數(shù)的模塊

以下示例描述用于從給定字符串中計算1的個數(shù)函數(shù)。以下是使用該功能時需要記住的要點:

函數(shù)不能由時間控制語句甚至延遲運算符組成。

函數(shù)至少有一個輸入?yún)?shù)聲明。

函數(shù)可以由函數(shù)調(diào)用組成,但函數(shù)不能由任務(wù)組成。

函數(shù)在零模擬時間內(nèi)執(zhí)行,并在調(diào)用時返回單個值。

在編寫可綜合 RTL時,不建議使用函數(shù)。

函數(shù)用于編寫行為或可仿真模型。

函數(shù)不應(yīng)具有非阻塞賦值。

示例7.7是從給定字符串中計算1個數(shù)的說明。在本例中,函數(shù)與參數(shù)“data_in”一起使用。函數(shù)名為“count_1s_in_byte”。在大多數(shù)協(xié)議描述中,需要對輸入字符串執(zhí)行一些操作。在此示例中,字符串為8位輸入“data_in”,輸出結(jié)果為4位“out”。不建議使用該函數(shù)生成綜合邏輯。

95a00264-a3ea-11ec-952b-dac502259ad0.png

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110107

原文標(biāo)題:Verilog復(fù)雜邏輯設(shè)計指南-函數(shù)和任務(wù)

文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于verilog的生成塊和任務(wù)

    本帖最后由 耶穌牛肚 于 2017-1-4 20:27 編輯 自學(xué)verilog,看到生成塊和任務(wù)的時候有一些迷茫,希望大神講解一下。生成塊書上說本質(zhì)是將多條重復(fù)語句化為一條起到簡化的作用
    發(fā)表于 01-04 20:25

    Verilog系統(tǒng)任務(wù)的相關(guān)資料推薦

    Verilog數(shù)字系統(tǒng)設(shè)計十任務(wù)函數(shù)實驗2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計十前言一、Verilog系統(tǒng)
    發(fā)表于 02-09 06:05

    深入分析uCOS的任務(wù)堆棧

    堆棧作用的就是用來保存局部變量,從本質(zhì)上講也就是將CPU寄存器的值保存到RAM。在uCOS,每一個任務(wù)都有一個獨立的任務(wù)堆棧。為了深入理
    發(fā)表于 12-01 01:25 ?678次閱讀

    FreeRTOS任務(wù)應(yīng)用函數(shù)介紹

    * constpulTotalRunTime ); 該函數(shù)向TaskStatus_t結(jié)構(gòu)體填充相關(guān)信息,系統(tǒng)每一個任務(wù)的信息都可以填充到TaskStatus_t結(jié)構(gòu)體數(shù)組,數(shù)組大
    的頭像 發(fā)表于 03-19 10:22 ?2577次閱讀

    Verilog HDL語言中任務(wù)函數(shù)的比較

    其中,返回值的類型和位寬是可選項,如果缺省會返回一位寄存器類型數(shù)據(jù)。Verilog HDL認(rèn)為函數(shù)的定義隱式地聲明了與函數(shù)同名的寄存器。函數(shù)的定義把
    的頭像 發(fā)表于 07-02 10:24 ?2343次閱讀

    Verilog數(shù)字系統(tǒng)設(shè)計——任務(wù)函數(shù)二(系統(tǒng)任務(wù)readmemb或readmemh)

    Verilog數(shù)字系統(tǒng)設(shè)計十任務(wù)函數(shù)實驗2文章目錄Verilog數(shù)字系統(tǒng)設(shè)計十前言一、Verilog系統(tǒng)
    發(fā)表于 12-05 19:06 ?7次下載
    <b class='flag-5'>Verilog</b>數(shù)字系統(tǒng)設(shè)計——<b class='flag-5'>任務(wù)</b>和<b class='flag-5'>函數(shù)</b>二(系統(tǒng)<b class='flag-5'>任務(wù)</b>readmemb或readmemh)

    Verilog數(shù)字系統(tǒng)設(shè)計——任務(wù)函數(shù)一(斐波那契數(shù)列)

    Verilog數(shù)字系統(tǒng)設(shè)計九任務(wù)函數(shù)實驗1文章目錄Verilog數(shù)字系統(tǒng)設(shè)計九前言一、任務(wù)函數(shù)
    發(fā)表于 12-05 19:06 ?9次下載
    <b class='flag-5'>Verilog</b>數(shù)字系統(tǒng)設(shè)計——<b class='flag-5'>任務(wù)</b>和<b class='flag-5'>函數(shù)</b>一(斐波那契數(shù)列)

    RTL建模函數(shù)任務(wù)討論

    函數(shù)任務(wù)可以在使用它們的模塊或接口中定義。定義可以出現(xiàn)在調(diào)用函數(shù)任務(wù)的語句之前或之后完成,函數(shù)任務(wù)
    的頭像 發(fā)表于 11-09 09:26 ?1121次閱讀

    Verilog關(guān)于文件操作的系統(tǒng)任務(wù)

    Verilog提供了很多對文件操作的系統(tǒng)任務(wù)函數(shù),例如打開關(guān)閉文件、向文件寫入值、從文件讀出值等等。
    的頭像 發(fā)表于 12-05 13:57 ?1606次閱讀

    Verilog任務(wù)函數(shù)的區(qū)別

    函數(shù)一樣,任務(wù)(task)可以用來描述共同的代碼段,并在模塊內(nèi)任意位置被調(diào)用,讓代碼更加的直觀易讀。
    的頭像 發(fā)表于 06-01 16:38 ?1588次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>任務(wù)</b>與<b class='flag-5'>函數(shù)</b>的區(qū)別

    FreeRTOS其他任務(wù)API函數(shù)

    1、函數(shù) uxTaskPriorityGet() 此函數(shù)用來獲取指定任務(wù)的優(yōu)先級,要使用此函數(shù)的話宏 INCLUDE_uxTaskPriorityGet 應(yīng) 該定義為 1。 2、
    的頭像 發(fā)表于 07-06 16:54 ?1061次閱讀

    FreeRTOS任務(wù)通知通用發(fā)送函數(shù)

    發(fā)送任務(wù)通知 任務(wù)通知通用發(fā)送函數(shù) 任務(wù)任務(wù)通知發(fā)送函數(shù):xTaskNotify()、xTas
    的頭像 發(fā)表于 07-30 11:43 ?727次閱讀
    FreeRTOS<b class='flag-5'>任務(wù)</b>通知通用發(fā)送<b class='flag-5'>函數(shù)</b>

    verilog函數(shù)任務(wù)對比

    verilog函數(shù)任務(wù)均用來描述共同的代碼段,并且在模式內(nèi)任意位置被調(diào)用,提高代碼效率,讓代碼更加的直觀,提高代碼可讀性。但是在實際使用的過程
    的頭像 發(fā)表于 02-12 18:43 ?892次閱讀

    verilog function函數(shù)的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數(shù)字電子電路的行為和結(jié)構(gòu)。在 Verilog ,函數(shù) (Function) 是一種用于執(zhí)行特定
    的頭像 發(fā)表于 02-22 15:49 ?5714次閱讀

    veriloginput和output作用

    以完成各種計算和控制任務(wù)。本文將詳細(xì)介紹input和output在Verilog作用及其使用方式。 一、input的作用及使用方式
    的頭像 發(fā)表于 02-23 10:29 ?3198次閱讀