6 cl_tb_tlm_monitor#() monQ1P1;
7 cl_tb_tlm_monitor#() monQ2P1;
12 `uvm_component_utils(cl_scb_test_io_std_tlm_mutexed)
17 extern function new(string name = "cl_scb_test_io_std_tlm_mutexed", uvm_component parent = null);
18 extern
virtual function void pre_build();
23 extern function void build_phase(uvm_phase phase);
24 extern function void connect_phase(uvm_phase phase);
25 extern task run_phase(uvm_phase phase);
28 function cl_scb_test_io_std_tlm_mutexed::new(string name = "cl_scb_test_io_std_tlm_mutexed",
29 uvm_component parent = null);
30 super.new(name, parent);
33 function void cl_scb_test_io_std_tlm_mutexed::pre_build();
35 this.syoscb_cfgs.syoscb_cfg[0].set_mutexed_add_item_enable(1'b1);
36 endfunction : pre_build
38 function void cl_scb_test_io_std_tlm_mutexed::build_phase(uvm_phase phase);
39 super.build_phase(phase);
41 this.monQ1P1 = new("monQ1P1", this);
42 this.monQ2P1 = new("monQ2P1", this);
43 endfunction: build_phase
45 function void cl_scb_test_io_std_tlm_mutexed::connect_phase(uvm_phase phase);
46 super.connect_phase(phase);
58 subscriber = this.scb_env.syoscb[0].get_subscriber("Q1", "P1");
59 this.monQ1P1.anls_port.connect(subscriber.analysis_export);
63 subscriber = this.scb_env.syoscb[0].get_subscriber("Q2", "P1");
64 this.monQ2P1.anls_port.connect(subscriber.analysis_export);
66 endfunction: connect_phase
68 task cl_scb_test_io_std_tlm_mutexed::run_phase(uvm_phase phase);
70 phase.raise_objection(this);
72 super.run_phase(phase);
78 phase.drop_objection(this);
Simple IO test using the TLM ssetup and mutexed add_item.
Generic subscriber for the scoreboard.