Wait Until markers provide a mechanism for indefinitely blocking the execution of one clocked process within a transaction. This type of marker blocks the transaction until its condition becomes true. Blocking samples also block the execution of a process, but they have a time-out built into the window and multiplier settings. Wait Until markers do not time-out. The process that gets paused will be the triggering process of the Marker (see Section 2.9 Transactor Clock Domains and Waveform Code Generation).
To specify a Wait Until condition:
•Add a marker that is attached to a signal or clock edge in the diagram. The edge will define the clock domain that is to be blocked. |
•Double-click on the marker to open the Edit Time Marker dialog. •From the Marker Type drop-down list, choose Wait Until. •Then in the Wait Until Condition edit box, enter a condition. The condition can be any equation in the generation language that evaluates to TRUE or FALSE at simulation time. |
When this transaction is applied, it will now pause execution (of the transaction, not the simulation) at the time that the marker is placed until the specified condition has occurred.
Alternative Blocking Constructs (Sensitive Edges and Samples)
There are two other constructs that can be used to block the execution of a clock domain:
•A sensitive edge will cause its clock domain to wait on the edge, which will block all other items in that same clock domain until the edge is detected (see 2.6 Sensitive Edges - a Blocking Construct). •A Sample that has the blocking setting checked (see Section 3.3: Samples that Block Clock Domains) will block its clock domain until the sample completely finishes, including execution of its then or else action. |
Also, Section 10.2 Waiting for Signal Transitions or Conditions has an example using all three blocking features.