在下面的 Verilog 代码片段中,`always` 块内混合使用了阻塞赋值 (`=`) 和非阻塞赋值 (`<=`)。假设在时钟 `clk` 的第一个上升沿到来之前,寄存器 `a`, `b`, `c` 的初始值分别为 `4'h1`, `4'h2`, `4'h3`。请问在第一个时钟上升沿触发并完成更新后,`a`, `b`, `c` 的值分别是多少?
verilog reg [3:0] a, b, c; // 初始值: a=1, b=2, c=3 always @(posedge clk) begin a <= b + 1; b = a + c; c <= b; end
