Все переменные и сети с 4 состояниями в verilog инициализируются с помощью «x».Поэтому, прежде чем вы начнете что-то в своей симуляции, все сигналы останутся «х».
В вашем испытательном стенде вы используете задержку # 100 в вашем цикле.В вашем выражении это означает, что все назначения, которые следуют за # 100, произойдут только после 100 циклов моделирования verilog (или того, что вы установили с помощью «шкалы времени»).Но до этого все ваши значения останутся 'x'.
Теперь, когда у вас будет триггер # 100, вы получите следующее:
#100
a = j; <-- 0
b = i; <-- 0
cin = cv; <-- 0
j = j + 1; <-- 1 << from the loop
В итоге вы получите a = 0, b = 0, c = 0, и j изменится на «1».
Теперь ваша симуляция включится и вычислит результаты для вышеупомянутого.Вы можете продолжить этот ход мыслей до конца симуляции.
Для того, чтобы все эти операторы происходили в цикле после # 100, да, вы должны поставить начало / конец вокруг них.В противном случае только первый оператор будет оцениваться в самом внутреннем цикле.Это похоже на любой язык программирования.
for (j=0;j<6;j=j+1)
begin
#100 // wait here for 100 simulation ticks
a = j;
b = i;
cin = cv;
end