以下verilog代码的输出是什么?

时间:2019-05-15 20:15:45

标签: verilog

module abc(input clk, output a);
reg a;
always @(posedge clk)
begin
a=0;
$monitor("%d",a);
end

always @(posedge clk)
begin
a=1;
$monitor("%d",a);
end

第一个clk脉冲之后的第一个输出是什么?如果我们不需要reg的任何默认值(我们想要a的值)...?

1 个答案:

答案 0 :(得分:2)

这是比赛条件。 Verilog不保证同步到同一事件的进程之间的执行顺序。一个模拟工具可能会选择第一个块。另一个工具可能会选择第二个块。综合工具将不允许对来自不同块的同一变量进行多次分配。

相关问题