1
我有这样创建的三根导线:的Verilog:“...不是一个常数”
wire [11:0] magnitude;
wire [3:0] bitsEnd;
wire [3:0] leadingBits;
所有这些都是assign
编一些表达使用组合逻辑。下面的代码工作正常:
assign leadingBits[3] = magnitude[bitsEnd + 3];
assign leadingBits[2] = magnitude[bitsEnd + 2];
assign leadingBits[1] = magnitude[bitsEnd + 1];
assign leadingBits[0] = magnitude[bitsEnd + 0];
但是,下面的(貌似等价)代码给出了错误bitsEnd is not a constant
:
assign leadingBits[3:0] = magnitude[bitsEnd + 3:bitsEnd];
我不能用简写这项任务?为什么会在第二种情况下提出这个错误,但不是第一种?
可能是一个编译器问题。在语义上,两者都是相同的,正如你指出的那样。尝试不同的编译器。 – jamihash