UVM跨domain同步
如果不额外添加domain的话,UVM默认就只有common_domain,phase的结构如下:
Q:如果我想对两个domain不同的phase之间有同步的需求要怎么实现呢?比如说我们需要common_domain的reset_phase和new_domain的configure_phase进行同步。比如说两个domain的reset_phase同步。
sync函数便可以解决这个问题。
小结:
- domain1.sync(domain2):Sync all the phases of domain1 with the same phases of domain2
- domain1.unsync(domain2); // Unsync all the phases of the two domains
- domain1.sync(domain2, uvm_reset_phase::get(), uvm_configure_phase::get());
- domain1.sync(domain2, uvm_main_phase::get()); // Sync just the main phases
- uvm_domain::get_uvm_domain return with default domain