2 последовательных неблокирующих задания - PullRequest
0 голосов
/ 23 апреля 2020

Может кто-нибудь объяснить, что значит назначать два последовательных неблокирующих назначения в последовательном always блоке?

Например:

always @(posedge clk) begin
    a <= b <= c;
end

Ответы [ 2 ]

3 голосов
/ 23 апреля 2020

Это может быть более четко закодировано как:

a <= (c >= b);

a присваивается значение выражения "c больше или равно b".

1st <= - это неблокирующий оператор присваивания, тогда как 2nd - оператор сравнения.

2 голосов
/ 23 апреля 2020

Это не два последовательных неблокирующих назначения.

То есть a <= (b<=c);
b<=c оценивается как true (1) или false (0), и это значение присваивается a.

два последовательных не блокирование присвоений не является допустимым синтаксисом Verilog

...