與C語(yǔ)言類(lèi)比,可以把任務(wù)理解成返回類(lèi)型為void的子程序,把函數(shù)理解為帶有返回值類(lèi)型的子程序。
1、任務(wù)(task)
(1)任務(wù)定義的語(yǔ)法為:
task《任務(wù)名》; 《端口與類(lèi)型說(shuō)明》 《局部變量說(shuō)明》 begin 《語(yǔ)句》 endendtask
需要注意的是,在第一行task語(yǔ)句中不能列出端口名列表;可以沒(méi)有輸入、輸出端口和雙向端口,也可以有一個(gè)或多個(gè)輸入、輸出端口和雙向端口。
(2)任務(wù)的調(diào)用
《任務(wù)名》(端口1,端口2,。..,端口n);
任務(wù)的調(diào)用只能在過(guò)程塊中進(jìn)行。當(dāng)被調(diào)用的任務(wù)具有輸入或輸出端口時(shí),任務(wù)調(diào)用語(yǔ)句必須包含端口列表。這個(gè)列表內(nèi)端口出現(xiàn)的順序和類(lèi)型必須與任務(wù)定義的順序和類(lèi)型一致。
2、函數(shù)(function)
函數(shù)的目的是通過(guò)返回一個(gè)值來(lái)響應(yīng)輸入信號(hào)的值。函數(shù)不能啟動(dòng)任務(wù),但任務(wù)可以啟動(dòng)函數(shù)。在Verilog HDL中函數(shù)被當(dāng)作操作符來(lái)使用,結(jié)果就是這個(gè)函數(shù)的返回值。
(1)函數(shù)的定義
function《返回值的類(lèi)型和位寬》(函數(shù)名) 《端口與類(lèi)型說(shuō)明》 《局部變量說(shuō)明》 begin 《語(yǔ)句》 endendfunction
其中,返回值的類(lèi)型和位寬是可選項(xiàng),如果缺省會(huì)返回一位寄存器類(lèi)型數(shù)據(jù)。Verilog HDL認(rèn)為函數(shù)的定義隱式地聲明了與函數(shù)同名的寄存器。函數(shù)的定義把函數(shù)被返回值所賦值寄存器的名稱(chēng)初始化為與函數(shù)同名的內(nèi)部變量。
(2)函數(shù)的調(diào)用
《函數(shù)名》(《輸入表達(dá)式1》,《輸入表達(dá)式2》,。..,《輸入表達(dá)式n》);
其中,n個(gè)輸入表達(dá)式要與函數(shù)定義結(jié)構(gòu)中說(shuō)明的各個(gè)端口一一對(duì)應(yīng),他們代表各個(gè)輸入端口的輸入數(shù)據(jù),這些輸入表達(dá)式的排列順序及類(lèi)型必須與各個(gè)輸入端口在函數(shù)定義結(jié)構(gòu)中的排列順序及類(lèi)型嚴(yán)格保持一致。
函數(shù)的調(diào)用不能單獨(dú)作為一條語(yǔ)句出現(xiàn),他只能作為一個(gè)操作出現(xiàn)在賦值語(yǔ)句內(nèi),不僅能夠用于過(guò)程塊內(nèi)的賦值,還能夠出現(xiàn)在assign語(yǔ)句中。
3、任務(wù)與函數(shù)的比較
(1)函數(shù)至少必須有一個(gè)輸入端口,而任務(wù)可以有多個(gè)、一個(gè)或沒(méi)有輸入端口;
(2)函數(shù)不能有輸出端口,而任務(wù)可以有多個(gè)、一個(gè)或沒(méi)有輸出端口;
(3)函數(shù)調(diào)用通過(guò)函數(shù)名返回一個(gè)返回值,而任務(wù)調(diào)用通過(guò)端口傳遞返回值;
(4)函數(shù)中不能調(diào)用任務(wù),但任務(wù)中可以調(diào)用函數(shù);
(5)函數(shù)調(diào)用不能作為一條語(yǔ)句出現(xiàn),而任務(wù)調(diào)用可以;
(6)函數(shù)調(diào)用可以出現(xiàn)在過(guò)程塊或者連續(xù)賦值語(yǔ)句中,而任務(wù)調(diào)用只能出現(xiàn)在過(guò)程塊中。
文章出處:【微信公眾號(hào):FPGA之家】
責(zé)任編輯:gt
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7085瀏覽量
89204 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7608瀏覽量
137144
原文標(biāo)題:Verilog HDL語(yǔ)言(3) : 任務(wù)和函數(shù)
文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論