C++工程实践:从多线程到路径规划的快递分拣机器人仿真系统
2026/9/2 8:56:28
classtb_timerextends uvm_component;`uvm_component_utils(tb_timer)localstatictb_timer m_global=new("global_timer",null);functionnew(string name,uvm_component parent=null);super.new(name,parent);endfunction taskrun_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"run","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in run phase")end endtask taskpre_reset_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"pre_reset","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in pre_reset phase")end endtask taskreset_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"reset","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in reset phase")end endtask taskpost_reset_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"post_reset","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in post_reset phase")end endtask taskpre_configure_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"pre_configure","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in pre_configure phase")end endtask taskconfigure_phase(uvm_phase phase);time t;if(uvm_config_db#(time)::get(this,"configure","timeout",t)&&t>0)begin #(t*1ns);`uvm_fatal("TIMEOUT","Time-out expired in configure phase")end endtask taskpost_configure_phase(uvm_phase phase);time t;if(uvm_config_db#(time)<