Thursday, May 27, 2010

I got an interesting paper on different regions of a simulation time in SV.
They explained about every detail of all the different regions.
The system verilog is devided into 17 regions 8 of them are for execution of PLI code and rest are executing system verilog statements.
The nine regions are divided into 5 event region sets Preponed event region, Active event region, Observed, Reactive region set, Postponed event region.
Preponed event region: preponed region is executed once in a time slot and it will sample the values to be used in assertions. This region is read only and no assignments are done. the actual assignment can be in the postponed region of the previous time slot or the preponed region of current timeslot.
Active region: This region is to evaluate the blocking,non-blocking assignments in the module. This is having three sub regions in it. Active,Inactive, NBA. The active sub-region is for evaluating the RHS of non-blocking assihnments,executing all $finish,$display function and execution of blocking statements. Inactive region is for #0 delay statement scheduling. NBA sub region is for eveluating the non-blocking statements in the module.
Observed region: This region is for evaluating the concurrent assertions with the values sampled in preponed region.
Inactive region:This is similar to Active resion the only difference being in this region we will evaluate program block assignments.
Postponed event region: functionality of this region is for executing $strobe and $monitor regions and to collect functional coverage values of signals which are sampled using $strobe.

For further reading one can refer the following pdf:

http://www.sunburst-design.com/papers/CummingsSNUG2006Boston_SystemVerilog_Events.pdf

No comments:

Post a Comment