Может кто-нибудь объяснить, что значит назначать два последовательных неблокирующих назначения в последовательном always блоке?
always
Например:
always @(posedge clk) begin a <= b <= c; end
Это может быть более четко закодировано как:
a <= (c >= b);
a присваивается значение выражения "c больше или равно b".
a
c
b
1st <= - это неблокирующий оператор присваивания, тогда как 2nd - оператор сравнения.
<=
Это не два последовательных неблокирующих назначения.
То есть a <= (b<=c); b<=c оценивается как true (1) или false (0), и это значение присваивается a.
a <= (b<=c);
b<=c
два последовательных не блокирование присвоений не является допустимым синтаксисом Verilog