微信公众号:FPGA动力联盟
veriog模块的端口声明很容易理解,一般来说有两种声明方式,就看大家喜欢哪种了,反正博主偏爱第一种简洁的方式,理论上,无需强行规定。如果公司有规定,则是项目管理的需要而非语法的要求。
第一种表示方式:
module test(
input a,
input [7:0] b,
output [7:0] c,
output reg [1:0] d
);
……//用户代码区
endmodule
第二种表示方式:
module test(a,b,c,d);
input a;
input [7:0] b;
output [7:0] c;
output reg [1:0] d;
……//用户代码区
endmodule
上述例子的信号声明关键字有input、output类型,实际上还有inout类型,主要用于芯片管脚既是输入又是输出的情况。下面总结一下信号类型和端口类型,初学者可以对号入座,这样就不会在使用时搞混淆了。
input | output | inout | |
模块外部的端口信号的允许类型 | reg/wire | wire | wire |
模块内部的端口信号的允许类型 | wire | reg/wire,建议用reg | wire |
上表中所指的模块外部信号类型,实际上说的就是上一层模块在例化本层模块时,在上一层定义的被调用模块端口信号类型。