Verilog中的函數

Verilog 中的函數

Verilog HDL與大多數可編程語言一樣,將使用率很高的代碼,按照軟件工程的思想,寫成函數,這樣,該函數可以被多次調用。

Verilog中函數常用語三種情況:

  • 1. 數學算術操作 Mathematical Manipulation
  • 2. 組合邏輯 Combinational Logic Sequences
  • 3. 數據的轉換 Conversions of Data

 

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章