How to learn the principles of eda simulation?

In reply to ljepson74:

“Execution of events in the queue may re-trigger an earlier time slot.”,
You may be right. From the diagram, an action block may change a variable that is used in a combinational logic (like in always_comb statement. But nonblocking assignments (e.g., a <= b) is evaluated in the Active Region, but does not pick up the 2nd iteration from the action block. consider


module top; 
	logic clk=0, a;
	logic  w=1'b1, qw, y=1'b1;   
	int q, qin, k;
	
	always_comb  w= y;  // y is updated by the action block at time 90
                            // qw takes the value of y before the update 
                // though there is an iteration into th Active region by the action block
	ap_w: assert property(1 |-> ##4 1) y =0;;  
	
	default clocking @(posedge clk); endclocking
		initial forever #10 clk=!clk;  
 
	always_ff  @(posedge clk)  begin 
		qw <= w; 
	end  

http://SystemVerilog.us/vf/regions2.sv

1800’2017 provides the following regards to simulation regions:

  • Figure 4-1—Event scheduling regions
  • 4.5 SystemVerilog simulation reference algorithm

My diagram was more of a way to relate design blocks to regions.

Ben Cohen
http://www.systemverilog.us/ ben@systemverilog.us
For training, consulting, services: contact http://cvcblr.com/home


See Paper: VF Horizons:PAPER: SVA Alternative for Complex Assertions - SystemVerilog - Verification Academy