Verilog错误:值不是常数?

时间:2015-11-08 16:03:24

标签: verilog

我有一个输入和输出的程序,如下所示:

module RegBlock(
    input [31:0] WriteRegData,
    input [4:0] rs, rt, WriteRegIn,
    output [31:0] op1, rtData
    );

    reg [31:0] op1, rtData, data [0:31];

'数据[0:31]'是一个后来声明的数组,在声明之后,我试图按如下方式分配输出:

    assign op1 = data[rs];
    assign rtData = data[rt];
    assign data[WriteRegIn] = WriteRegData;

我一直收到错误" WriteRegData"不是一个常数。由于它刚刚在程序开始时被声明为输入,我不确定问题是什么。我正在使用Xilinx ISE。

1 个答案:

答案 0 :(得分:0)

使用连续分配时:

commit

你无法改变左侧的索引。您可能希望在always进程中使用过程赋值来实现您想要的目标:

assign data[WriteRegIn] = WriteRegData;