Quantcast
Channel: UVM Forums RSS Feed
Viewing all articles
Browse latest Browse all 756

what is the intend of uvm_wait_for_nba_region?

$
0
0

Hi, All

 

there is a task as follow in uvm_globals.sv file.

 

 

//----------------------------------------------------------------------------
//
// Task: uvm_wait_for_nba_region
//
// Callers of this task will not return until the NBA region, thus allowing
// other processes any number of delta cycles (#0) to settle out before
// continuing. See <uvm_sequencer_base::wait_for_sequences> for example usage.
//
//----------------------------------------------------------------------------

task uvm_wait_for_nba_region;

  string s;

  int nba;
  int next_nba;

  //If `included directly in a program block, can't use a non-blocking assign,
  //but it isn't needed since program blocks are in a seperate region.
`ifndef UVM_NO_WAIT_FOR_NBA
  next_nba++;
  nba <= next_nba;
  @(nba);
`else
  repeat(`UVM_POUND_ZERO_COUNT) #0;
`endif


endtask
 

For example, it is used in the task wait_for_sequences in uvm_sequencer_base.sv file

 

Who would like to explain the function of the uvm_wait_for_nba_region in details?

 

Best Regards

 

QIN

 

 

 


Viewing all articles
Browse latest Browse all 756

Trending Articles