@@ -18,10 +18,15 @@ package environment_pkg;
1818 import scoreboard_pkg :: * ;
1919
2020
21- class scoreboard_environment # (`AXIS_VIP_PARAM_DECL (adc_src), `AXIS_VIP_PARAM_DECL (dac_dst)) extends adi_environment ;
21+ class scoreboard_environment # (
22+ `AXIS_VIP_PARAM_DECL (adc_src), `AXI_VIP_PARAM_DECL (adc_dst),
23+ `AXI_VIP_PARAM_DECL (dac_src), `AXIS_VIP_PARAM_DECL (dac_dst)) extends adi_environment ;
2224
2325 // Agents
2426 adi_axis_master_agent # (`AXIS_VIP_PARAM_ORDER (adc_src)) adc_src_axis_agent;
27+ adi_axi_passthrough_mem_agent # (`AXI_VIP_PARAM_ORDER (adc_dst)) adc_dst_axi_agent;
28+
29+ adi_axi_passthrough_mem_agent # (`AXI_VIP_PARAM_ORDER (dac_src)) dac_src_axi_agent;
2530 adi_axis_slave_agent # (`AXIS_VIP_PARAM_ORDER (dac_dst)) dac_dst_axis_agent;
2631
2732 scoreboard # (logic [7 : 0 ]) scoreboard_tx;
@@ -34,12 +39,18 @@ package environment_pkg;
3439 input string name,
3540
3641 virtual interface axi4stream_vip_if # (`AXIS_VIP_IF_PARAMS (adc_src)) adc_src_axis_vip_if,
42+ virtual interface axi_vip_if # (`AXI_VIP_IF_PARAMS (adc_dst)) adc_dst_if,
43+
44+ virtual interface axi_vip_if # (`AXI_VIP_IF_PARAMS (dac_src)) dac_src_if,
3745 virtual interface axi4stream_vip_if # (`AXIS_VIP_IF_PARAMS (dac_dst)) dac_dst_axis_vip_if);
3846
3947 // creating the agents
4048 super .new (name);
4149
4250 this .adc_src_axis_agent = new (" ADC Source AXI Stream Agent" , adc_src_axis_vip_if, this );
51+ this .adc_dst_axi_agent = new (" ADC Destination AXI Agent" , adc_dst_if, this );
52+
53+ this .dac_src_axi_agent = new (" DAC Source AXI Agent" , dac_src_if, this );
4354 this .dac_dst_axis_agent = new (" DAC Destination AXI Stream Agent" , dac_dst_axis_vip_if, this );
4455
4556 this .scoreboard_tx = new (" Data Offload TX Scoreboard" , this );
@@ -66,11 +77,16 @@ package environment_pkg;
6677 // ============================================================================
6778 task start ();
6879 this .adc_src_axis_agent.start_master ();
80+ this .adc_dst_axi_agent.start_monitor ();
81+
82+ this .dac_src_axi_agent.start_monitor ();
6983 this .dac_dst_axis_agent.start_slave ();
7084
85+ this .dac_src_axi_agent.monitor.publisher_rx.subscribe (this .scoreboard_tx.subscriber_source);
7186 this .dac_dst_axis_agent.monitor.publisher.subscribe (this .scoreboard_tx.subscriber_sink);
7287
7388 this .adc_src_axis_agent.monitor.publisher.subscribe (this .scoreboard_rx.subscriber_source);
89+ this .adc_dst_axi_agent.monitor.publisher_tx.subscribe (this .scoreboard_rx.subscriber_sink);
7490 endtask
7591
7692 // ============================================================================
@@ -88,6 +104,9 @@ package environment_pkg;
88104 // ============================================================================
89105 task stop ();
90106 this .adc_src_axis_agent.stop_master ();
107+ this .adc_dst_axi_agent.stop_monitor ();
108+
109+ this .dac_src_axi_agent.stop_monitor ();
91110 this .dac_dst_axis_agent.stop_slave ();
92111 endtask
93112
0 commit comments