<signal>不是恒定的

时间:2016-12-23 15:50:32

标签: verilog system-verilog

首先,还有另一个问题具有相同的标题here。但是,它对我没有帮助。我尝试了所有解决方案,但我仍然遇到同样的错误。

这是我的模块:

module RGB( input logic clk,
            output logic OE, 
            output logic SH_CP,
            output logic ST_CP,
            output logic reset,
            output logic DS,
            output logic KATOT );

这是我的逻辑:

logic [23:0]message;
logic [7:0] red;
logic [7:0] green;
logic [7:0] blue;

assign red = message[23:16];
assign green = message[15:8];
assign blue = message[7:0];

logic f;
logic e;

logic [7:0]counter;
int i = 1;
int a = 0;
int d = 0;

最后但同样重要的是,以下是我收到此错误的部分:

always@(*)
begin
    if( i > 3 & i < 28)
    begin
        DS <= message[i-3:i-3];  // Here is the error line 81
    end
    else
    begin
        DS <= 1'b0;
    end
end

非常感谢你们,祝你们度过愉快的一天

1 个答案:

答案 0 :(得分:1)

问题是此表达式中的范围

    DS <= message[i-3:i-3];

我认为你的意思是

    DS <= message[i-3];

BTW,始终显示确切的错误消息和指的确切行。