Ваш код имеет бесконечный цикл. Вы объявили i
как 5-битный регистр, что означает, что его диапазон значений (десятичный) от 0 до 31. Но ваш цикл for проверяет, является ли значение i < 32
, что всегда верно. После того, как i = 31, i
прирастает и переворачивается до 0.
$display
- твой друг. Если добавить его в свой цикл, вы увидите проблему:
for(i=0; i<32; i=i+1) begin $display(i); s = s | a[i]; end
Я думаю, что вы хотите i<31
.
Или, может быть, вы хотите или все биты a
вместе, используя побитовое ИЛИ оператор:
s = |a;
Вы должны объяснить словами, что вы пытаетесь достичь.