<signal> 不是常量

<signal> is not constant

首先,还有一个同题问题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

非常感谢大家,祝你有愉快的一天

问题是这个表达式的范围

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

我想你的意思是

    DS <= message[i-3];

顺便说一句,始终显示确切的错误消息和所指的确切行。