Verilog: "... ist keine Konstante"
Ich habe drei Drähte wie folgt erstellt:
wire [11:0] magnitude;
wire [3:0] bitsEnd;
wire [3:0] leadingBits;
Sie sind alleassign
ed Ausdruck mit kombinatorischer Logik. Der folgende Code funktioniert einwandfrei:
assign leadingBits[3] = magnitude[bitsEnd + 3];
assign leadingBits[2] = magnitude[bitsEnd + 2];
assign leadingBits[1] = magnitude[bitsEnd + 1];
assign leadingBits[0] = magnitude[bitsEnd + 0];
Der folgende (scheinbar äquivalente) Code gibt jedoch den FehlerbitsEnd is not a constant
:
assign leadingBits[3:0] = magnitude[bitsEnd + 3:bitsEnd];
Kann ich für diese Aufgabe keine Kurzform verwenden? Warum sollte dieser Fehler im zweiten Fall auftreten, aber nicht im ersten?