我在Verilog中有这个注册... 我想知道是否有办法将WIDTH-1的结果存储在var中,因此不会对每个端口重复。
欢迎任何关于我的代码的其他推荐!
module asynchronous_register(d, clk, reset, q);
parameter WIDTH = 8;
input [WIDTH-1:0] d;
input clk;
input reset;
output [WIDTH-1:0] q;
reg [WIDTH-1:0] q;
always @(posedge clk or negedge reset) begin
case (reset)
1'b1: q <= d;
default: q <= 1'b0;
endcase
end
endmodule
答案 0 :(得分:1)
在Verilog中这样做的方法是:
module asynchronous_register #(parameter WIDTH=8, localparam MSB=WIDTH-1) (
input [MSB:0] d,
input [MSB:0] clk,
input [MSB:0] reset,
output reg [MSB:0] q
);
always @(posedge clk or negedge reset) begin
case (reset)
1'b1: q <= d;
default: q <= 1'b0;
endcase
end
endmodule