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