使用Verilog可以方便地實(shí)現(xiàn)復(fù)雜的設(shè)計(jì)?,F(xiàn)在,設(shè)計(jì)復(fù)雜性增加,設(shè)計(jì)需要針對(duì)低功率、高速和最小面積進(jìn)行優(yōu)化~
任務(wù)和函數(shù)在Verilog中用于描述常用的功能行為。與其在不同的地方復(fù)制相同的代碼,不如根據(jù)需求使用函數(shù)或任務(wù),這是一種良好且常見(jiàn)的做法。為了便于代碼維護(hù),最好使用子例程之類的函數(shù)或任務(wù)。
從給定字符串中計(jì)算1的個(gè)數(shù)
以下示例描述用于從給定字符串中計(jì)算1的個(gè)數(shù)任務(wù)。以下是使用任務(wù)時(shí)需要記住的要點(diǎn):
任務(wù)可以由時(shí)間控制語(yǔ)句甚至延遲操作符組成。
任務(wù)可以有輸入和輸出聲明。
任務(wù)可以由函數(shù)調(diào)用組成,但函數(shù)不能由任務(wù)組成。
任務(wù)可以有輸出參數(shù),在調(diào)用時(shí)不用于返回值。
任務(wù)可用于調(diào)用其他任務(wù)。
在編寫可綜合RTL時(shí),不建議使用任務(wù)。
任務(wù)用于編寫行為或可仿真模型。
示例7.6是從給定字符串中計(jì)算1的個(gè)數(shù)的說(shuō)明。在本例中,任務(wù)與參數(shù)“data_in”、“out”一起使用,任務(wù)的名稱為“count_1s_in_byte”。在大多數(shù)協(xié)議描述中,需要對(duì)輸入字符串執(zhí)行一些操作。在此示例中,字符串為8位輸入“data_in”,輸出結(jié)果為4位“out”。不建議使用任務(wù)生成綜合邏輯。
示例7.6任務(wù)的Verilog RTL
使用函數(shù)計(jì)數(shù)1的個(gè)數(shù)的模塊
以下示例描述用于從給定字符串中計(jì)算1的個(gè)數(shù)函數(shù)。以下是使用該功能時(shí)需要記住的要點(diǎn):
函數(shù)不能由時(shí)間控制語(yǔ)句甚至延遲運(yùn)算符組成。
函數(shù)至少有一個(gè)輸入?yún)?shù)聲明。
函數(shù)可以由函數(shù)調(diào)用組成,但函數(shù)不能由任務(wù)組成。
函數(shù)在零模擬時(shí)間內(nèi)執(zhí)行,并在調(diào)用時(shí)返回單個(gè)值。
在編寫可綜合 RTL時(shí),不建議使用函數(shù)。
函數(shù)用于編寫行為或可仿真模型。
函數(shù)不應(yīng)具有非阻塞賦值。
示例7.7是從給定字符串中計(jì)算1個(gè)數(shù)的說(shuō)明。在本例中,函數(shù)與參數(shù)“data_in”一起使用。函數(shù)名為“count_1s_in_byte”。在大多數(shù)協(xié)議描述中,需要對(duì)輸入字符串執(zhí)行一些操作。在此示例中,字符串為8位輸入“data_in”,輸出結(jié)果為4位“out”。不建議使用該函數(shù)生成綜合邏輯。
審核編輯:郭婷
-
Verilog
+關(guān)注
關(guān)注
28文章
1365瀏覽量
111506
原文標(biāo)題:Verilog復(fù)雜邏輯設(shè)計(jì)指南-函數(shù)和任務(wù)
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
verilog模塊的調(diào)用、任務(wù)和函數(shù)

關(guān)于verilog中的生成塊和任務(wù)
Verilog系統(tǒng)任務(wù)的相關(guān)資料推薦
深入分析uCOS的任務(wù)堆棧
FreeRTOS任務(wù)應(yīng)用函數(shù)介紹
Verilog HDL語(yǔ)言中任務(wù)與函數(shù)的比較
Verilog數(shù)字系統(tǒng)設(shè)計(jì)——任務(wù)和函數(shù)二(系統(tǒng)任務(wù)readmemb或readmemh)

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

RTL建模中的函數(shù)和任務(wù)討論
Verilog中關(guān)于文件操作的系統(tǒng)任務(wù)
Verilog任務(wù)與函數(shù)的區(qū)別

評(píng)論