Hardware Reference
In-Depth Information
The processing of regions also takes place in the order as shown above.
One region differs from another because of the kind of events that are handled
by it. As we saw in the previous section, the Active region set handles events
from the design code. As we will explain below, concurrent assertion evaluation
is performed in the Observed region. An update event on a port connection to a
program schedules an evaluation event in the Reactive region set. Nevertheless,
events scheduled in other regions cannot be executed from a region which is
currently being processed. This makes a region safe from execution interference
of statements that belong to a semantically different region.
The Preponed region is a precursor to the time slot. 1 No value changes or events
occur in this region. In most cases sampling of signal values used in concurrent
assertions is performed in the Preponed region as explained in Sect. 4.4.3 .Onthe
contrary, the Postponed region is the tail end of the time slot meant for finishing
simulation tasks in this slot that do not include value changes or events. In this
region the action blocks for final assertions are executed. Both of these regions are
entered only once.
There are other important regions in the simulation engine to support System-
Verilog features: the Observed region and the regions belonging to the Reactive
region set.
The Observed region is meant for the evaluation of sequences, properties and
concurrent assertions. Signal values remain constant during the Observed region.
The evaluation mechanism and the queues that reside in this region are quite
different than in the Active region. Nevertheless, events originated in this region
do get scheduled into the Active and Reactive regions.
The Reactive region set executes statements from programs and checkers.
Programs are intended for writing testbenches, as external environments for designs,
feeding stimuli, observing design evaluation results and building tests to exercise the
design (see Sect. 2.5 ). This region set is a mirror image of the Active region set, with
similar events, regions, queues and statement execution to the Active region set. The
corresponding regions and queues are called Reactive, Re-Inactive, and Re-NBA.
These regions can also schedule events to the Active region.
The simulation engine processes one region at a time, and transitions from one
region to the next only after exhausting events and evaluations in a region. The order
of the movement between the regions is fixed as follows: regions from the Active
region set, the Observed region, and regions from the Reactive region set. The
iterative motion between the regions continues until there are no more events or
evaluation tasks left in any region. The regions and their order are depicted in
Fig. 3.2 .
1 We use terms time slot , time step and simulation step interchangeably.
Search WWH ::




Custom Search