Я пытался сдвинуть влево «сдвинутый регистр», пока он не станет равным 1. Но мой код не работает. Компилятор говорит: «Превышен предел числа циклов. Условие никогда не ложно»
input wire [31:0] targetnumber,
...
reg [31:0] shifted;
...
shifted=targetnumber;
for(cnt = 0; shifted[31] == 0; shifted = shifted << 1)begin
cnt = cnt + 1;
end
Так что проблема в цикле, я на 100% уверен, что MSB моего сдвинутого регистра может достигнуть 1, если я сделаю это сдвиг влево. Но компилятор говорит сука НОП.
Я попытался сместить [31]! = 0; это не дает ошибки, но это не дает результата, который я намеревался.