2 个连续的非阻塞赋值

2 consecutive nonblocking assignments

谁能解释一下在连续的 always 块中分配两个连续的非阻塞赋值是什么意思?

例如:

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

可以更清楚地编码为:

a <= (c >= b);

a 被赋值为表达式“c 大于或等于 b”的值。

第一个<=是非阻塞赋值运算符,而第二个是比较运算符。

也就是说不是两个连续的非阻塞赋值。

也就是a <= (b<=c);
b<=c 的计算结果为真 (1) 或假 (0),并且该值分配给 a.

两次连续的非阻塞赋值不是合法的 Verilog 语法