如何将输入总线分配给输出总线,而不必分配每个索引(无循环)。
我有这样的想法:
module test(input [2:0] in, input CLK, output [2:0] out);
reg [2:0] state;
always @(posedge CLK) state <= in;
assign out = state;
但是这段代码不起作用。我需要:out[0] = in[0], out[1] = in[1], out[2] = in[2]
。
如何将输入总线分配给输出总线,而不必分配每个索引(无循环)。
我有这样的想法:
module test(input [2:0] in, input CLK, output [2:0] out);
reg [2:0] state;
always @(posedge CLK) state <= in;
assign out = state;
但是这段代码不起作用。我需要:out[0] = in[0], out[1] = in[1], out[2] = in[2]
。
给出代码的问题:
CLK
定义为 3 位输入,应为 1 位;
第一行缺少分号 ( )endmodule
仅供参考:通过声明out
为output reg
中间体state
可以省略。
module test (
input [2:0] in,
input CLK, // <-- CLK is single bit
output reg [2:0] out // <-- out is a reg type
); // <-- semicolon here
always @(posedge CLK)
out <= in; // <-- synchronous assignment
endmodule // <-- keyword