Верилог: «… не константа»

У меня есть три провода, созданные следующим образом:

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];

Могу ли я не использовать стенографию для этого задания? Почему эта ошибка возникает во втором случае, а не в первом?

Ответы на вопрос(1)

Ваш ответ на вопрос