首页 > 试题广场 >

在下面的 Verilog 代码片段中,`always` 块内

[单选题]
在下面的 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
  • a=3, b=4, c=4
  • a=3, b=4, c=2
  • a=3, b=7, c=7
  • a=2, b=4, c=2

这道题你会答吗?花几分钟告诉大家答案吧!