目录
前言
这个专栏会专门讲一些Verilog的知识,后续会慢慢更新,欢迎关注
Verilog专栏
参数化定义 #( )
定义
verilog
module Reg #(WIDTH = 1, RESET_VAL = 0) (
//位宽默认为1 , 复位值默认为0
input clk, //时钟
input rst, //复位信号
input [WIDTH-1:0] din, //输入值
output reg [WIDTH-1:0] dout, //输出值
input wen
);
always @(posedge clk) begin
if (rst) dout <= RESET_VAL;
else if (wen) dout <= din;
end
endmodule
实例化
verilog
Reg #(8, 255) my_reg (
.clk(clk),
.rst(rst),
.din(data_in),
.dout(data_out),
.wen(write_enable)
);
WIDTH
被设置为8,因此din
和dout
都是8位宽。RESET_VAL
被设置为255,所以在复位时,dout
的初值为255。- 如果实例化时没有传入参数,则使用默认值,即
WIDTH=1
和RESET_VAL=0