小编typ*_*pon的帖子

使用for循环在Verilog中指定变量范围

我正在尝试编写此代码:

 for (i = 0; i <= CONST - 1'b1; i = i + 1'b1)
                    begin : loop_inst

                        if (i < 3)
                        begin
                            if (changed[i] & !done_q[i])
                            begin
                                writedata[3-i] = en[i];
                                writedata[2-i:0] = readdata[2-i:0];
                                writedata[15:4-i] = readdata[15:4-i];
                            end
                        end
                        else
                        ...
Run Code Online (Sandbox Code Playgroud)

基本上,我试图写入(en)的位的位置根据我正在谈论的地址而变化,具体取决于i.此代码不可合成,因为i它不是常量.

还有其他解决方法吗?我知道的唯一解决方法是写出CONST时间的这三个语句.我希望我最终不必那样做.还有其他解决方案吗?

hardware verilog system-verilog

6
推荐指数
1
解决办法
5311
查看次数

标签 统计

hardware ×1

system-verilog ×1

verilog ×1