正确分配输出数组

时间:2014-12-16 16:26:15

标签: verilog xilinx-ise

如何在不必分配每个索引(没有循环)的情况下将输入总线分配给输出总线。

我有类似的想法:

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]

1 个答案:

答案 0 :(得分: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