system verilog - Do delta cycles occur at intermediate stages in SystemVerilog? - Stack Overflow
In Stuart Sutherland's RTL Modelling with SystemVerilog for Simulation and Synthesis, the process for evaluating events in the different event regions within a given simulation time slot is explained. In particular, it's explained that
As events are processed in a later [event] region, they can possibly schedule new events in a previous region. After the later region has been processed, simulation will cycle back through the event regions to process any newly scheduled events. The itera tions through all event regions will continue until all regions are empty (i.e. no new events for that moment of simulation time are being scheduled).
My question is about when exactly this cycling happens. Suppose for example we are in the NBA region and e.g. a flip-flop's Q output is updated, and that in turn drives some gate so that an active region event is scheduled in that same simulation time slot. This NBA region then ends some time later. Does the SV standard dictate that the simulator go back to the active region immediately, or does it attend to event regions after the NBA region before cycling back? I imagine the answer is the former (so that $monitor statements indeed end a given simulation time slot) but I'm not quite sure how to test it.
In Stuart Sutherland's RTL Modelling with SystemVerilog for Simulation and Synthesis, the process for evaluating events in the different event regions within a given simulation time slot is explained. In particular, it's explained that
As events are processed in a later [event] region, they can possibly schedule new events in a previous region. After the later region has been processed, simulation will cycle back through the event regions to process any newly scheduled events. The itera tions through all event regions will continue until all regions are empty (i.e. no new events for that moment of simulation time are being scheduled).
My question is about when exactly this cycling happens. Suppose for example we are in the NBA region and e.g. a flip-flop's Q output is updated, and that in turn drives some gate so that an active region event is scheduled in that same simulation time slot. This NBA region then ends some time later. Does the SV standard dictate that the simulator go back to the active region immediately, or does it attend to event regions after the NBA region before cycling back? I imagine the answer is the former (so that $monitor statements indeed end a given simulation time slot) but I'm not quite sure how to test it.
Share Improve this question asked yesterday EE18EE18 2031 silver badge7 bronze badges1 Answer
Reset to default 1Figure 4-1—Event scheduling regions and section 4.5 SystemVerilog simulation reference algorithm specify how the simulator moves between the different event regions.
The LRM says that an event region must be emptied before moving to another region. With a couple of exceptions, the algorithm will go to the earliest non-empty region.
- Win11革命性新变化来了!31年的NTFS被取代:ReFS将成默认文件系统
- OS X故障不断 苹果MAC被爆Wifi故障
- react native - Handling loginlogout without user undefined errors - Stack Overflow
- python - How to change the color of an individual bar in a MatPlot FuncAnimation? - Stack Overflow
- typescript - Command 'pod install' failed, Cause: binbash -c - Stack Overflow
- c# - I have a time clock connected to my local network and I have a Windows server on localweb and I can't get the clock
- android - Slow screen value detection using root access and uiautomator in Kotlin – Optimization help needed - Stack Overflow
- Makefile: Execute target multiple times - Stack Overflow
- c++ - inlining failed in call to ‘always_inline’ ‘vld1q_u16’ - cross compiling Node.js for armv6 - Stack Overflow
- c++ - Wrong Precision Results with std::ostringstream - Stack Overflow
- oauth 2.0 - how Can we add group roles claim in okta access token or id token - Stack Overflow
- javascript - How to properly handle AES encryption in React Native and generate Random Key for AES encryption? - Stack Overflow
- vba - Excel Macro to rename tabs is failing on the second run - Stack Overflow
- r - How to construct a grouped line plot using ggstatsplot without faceting? - Stack Overflow
- ios - SwiftUI TextField with UIKit wrapper expanding full screen when entering numbers in custom crypto swap interface - Stack O
- angularjs - how to display a pdf in angular? - Stack Overflow
- Swift Predicate: Fatal Error Keypaths With Multiple Components - Stack Overflow