【问题标题】:In Verilog, is begin-end block really sequential ? Stratified event queue model doesn't include any such concept在 Verilog 中,begin-end 块真的是连续的吗?分层事件队列模型不包含任何此类概念
【发布时间】:2023-02-15 21:47:23
【问题描述】:

我可以理解,在 begin-end 块中,延迟是按顺序处理的,即它们与前一个语句相关。但这是否意味着 begin-end 块在执行顺序方面也是连续的?

integer a;
initial
begin
   a = 1;          // statement_1
   $display(a);    // statement_2
   a = 2;          // statement_3
end

由于分层事件队列模型会将上述所有 3 个语句放入#0 时间戳的活动队列中。如何保证顺序执行?

【问题讨论】:

    标签: verilog system-verilog hdl


    【解决方案1】:

    回答“我们如何确保顺序执行?”

    参考 IEEE Std 1364-2005 第 11.4.1 节确定性

    该标准保证了一定的调度顺序:
    begin-end 块中的语句应按照它们在该开始结束块中出现的顺序执行。

    可以暂停特定开始结束块中语句的执行 支持模型中的其他过程;然而,在任何情况下,在开始结束的陈述 块以它们在源代码中出现的顺序以外的任何顺序执行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      相关资源
      最近更新 更多