Could you please clarify what is timeslot in system verilog regions?
and when @(posedge clk) is executed in system verilog regions?
and when NBA is executed? is it before the posedge of the clock or after the posedge of the clock ?
or NBA is executed for each timeslot?
In reply to srbeeram:
Could you please clarify what is timeslot in system verilog regions?
and when @(posedge clk) is executed in system verilog regions?
and when NBA is executed? is it before the posedge of the clock or after the posedge of the clock ?
or NBA is executed for each timeslot?
See my paper that explains the timing regions and demonstrates graphically what is processed when in a time step.
To answer your question, if clk was 0 and is assigned a 1 at t100, then
t100 represents a time step. Code following the @(posedge clk) is processed in the Active region.
Ben Cohen
Ben@systemverilog.us
Link to the list of papers and books that I wrote, many are now donated.
or Links_to_papers_books - Google Docs
Getting started with verification with SystemVerilog
In reply to srbeeram:
In discrete event simulation, a time-slot is when the current time is the same vale. “Discrete” means that time is not a continuous value. Time jumps to the next slot when there is nothing left to so in the current time-slot. How big that time jump is depends on when the next scheduled event is. You could go from 10ns to 100ns without stepping through all the times in-inbetween.
Within a particular time-slot, there may be multiple event regions. And just like with time-slots, if there is nothing scheduled for a particular region, that region gets skipped.
However, within a time–slot, it’s possible for the event region to repeat, as with this code. events in a region can schedule events in earlier or later regions.
always @(posdedge clk)
en <= 1;
always @(posedge en)
req <=1;
It does not matter in which region clk1, @(posedge clk) executes in the active region. Then en gets scheduled to be updated in the NBA region. When the current active region has no more events, all the NBA region events execute, which schedules the next active region event for @(posedge en). Then that schedules another NBA region event.
See this link for more detail.
In reply to dave_59:
Thanks Ben and Dave for providing the clarifications.