verilog之function


verilog之function

1、基本作用

function,就是聲明一個函數。與task的區別就是有參數。function的返回值就是函數名(可以設置位寬),輸入值任意,均作為輸入參數。代碼塊需符合verilog的語法規則。如放在assign塊中的函數需要使用wire變量,always語句中的函數需要使用reg型的變量。不可在function內部加入賦值類型的標志。

2、實際例子

module fun_user (
    input a,
    input b,
    input c,
    output [3:0] d,
    output [3:0] d2
);
    
function [3:0] dataout;
input a;
input b;
input c;
dataout={a,b,c};
endfunction

assign    d=dataout(a,b,c);


endmodule

 

3、反思小結

function函數在verilog中的作用顯然不如高級語言。一方面可綜合語句確實不適合做成函數,另外一方面verilog並不擅長高級邏輯。verilog在verilog中主要的應用是精簡代碼,減少相似度高的代碼塊。task則是減少相同的代碼塊。兩者在verilog中都不是關鍵作用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM