Verilog中的函式

2021-04-25 06:58:40 字數 1120 閱讀 8889

verilog中的函式

verilog hdl與大多數可程式語言一樣,將使用率很高的**,按照軟體工程的思想,寫成函式,這樣,該函式可以被多次呼叫。

verilog中函式常用語三種情況:

verilog中的函式與c語言中的函式的主要不同之處是:在verilog中,呼叫函式時,需要將乙個或則多個自變數傳給函式;經過0時間的**,將函式的結果返回給呼叫點。

遵循的規則

函式至少要有乙個輸入量和乙個輸出量。

函式只能在always或initial塊中呼叫。

函式不能同時包含always和initial塊,不能含有任何延遲以及時間或事件控制的描述。

函式可以使用本地變數作為輸入。

函式不能使用wire資料型別。

函式只能用行為級來描述。

函式中的資料的實際操作限定在begin和end之間。

原文:http://www.see.ed.ac.uk/~gerard/teach/verilog/me5cds/me95cab0.html

任務與函式的不同

任務和函式可以按照相同的方式來呼叫,但是它們之間有很大的不同。

函式任務

函式不能呼叫任務,但是可以呼叫其他函式。

任務既可以呼叫函式,也可以呼叫其他任務。

執行函式使用的**時間為0。(函式的編譯時間不會增加?)

執行任務的**時間為0,但是按照需要,**時間可能不為0。

函式中,不能含有含有延遲,以及事件和時序控制宣告語句。

任務中可以包含任何宣告。

呼叫函式時,必須至少傳遞乙個變數。

任務可以使用多個或者不使用變數,其變數的資料埠可以是output 、input或 inout。

函式只能返回乙個值,而且不能使用output和inout描述。

任務不能返回任何數值,但是可以通過output、inout傳遞多個值。

原文:http://www.see.ed.ac.uk/~gerard/teach/verilog/me5cds/me95cab2.html

Verilog中的函式和任務

在高階程式語言中,為了避免在程式中多次重複編寫特定的例行程式,可以使用子程式和函式。verilog語言也提供類似的功能,即verilog的函式和任務。它可以把大型程式模組化,從而使 更加容易理解。1。verilog任務 任務必須包含在呼叫該任務的模組中。它可以有輸入輸出埠,任務的埠僅用來在模組和任務...

verilog 中任務與函式的區別

區別 1.函式可以返回乙個值而任務可以返回多個值 2.函式一經呼叫必須立即執行,裡面不能包含任何的時序控制,而task中可以有時序控制 3.函式可以呼叫函式,但不可以呼叫任務,任務既可以呼叫函式也可以呼叫任務 4.函式必須要有乙個輸入引數,而任務可以沒有引數輸入。4.任務輸出的訊號,在模組中必須定義...

verilog中的task用法

定義乙個任務。task task demo 任務定義結構開頭,命名為 task demo input 7 0 x,y 輸入埠說明 output 7 0 tmp 輸出埠說明 if x y 給出任務定義的描述語句 tmp x else tmp y endtask 上述 定義了乙個名為 task demo...