Skip to content

About event-driven simulation #1537

Answered by whitequark
chensx00 asked this question in Q&A
Discussion options

You must be logged in to vote

I am still unsure exactly how to classify Amaranth's simulator between the two, so I'll attempt to explain how it works instead. The following explanation is slightly simplified to omit an aspect that's not critical to your question.

During each simulation step (which may advance time, or may happen in zero time), two phases are run:

  1. Eval. In this phase, all of the scheduled computations are executed, and their results are written down but do not yet affect the simulation state.
  2. Commit. In this phase, no simulation behavior happens. Only the written down results are used to update the simulation state. The updates may trigger additional computations, which are scheduled to be executed in…

Replies: 1 comment 4 replies

Comment options

You must be logged in to vote
4 replies
@chensx00
Comment options

@whitequark
Comment options

Answer selected by chensx00
@whitequark
Comment options

@chensx00
Comment options

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants