Skip to content

Commit 0bd4467

Browse files
scoreboard: Simplified to AXIS data packet verification
Signed-off-by: Istvan-Zsolt Szekely <istvan.szekely@analog.com>
1 parent ce8c693 commit 0bd4467

File tree

8 files changed

+71
-567
lines changed

8 files changed

+71
-567
lines changed

library/drivers/common/scoreboard.sv

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,7 @@ package scoreboard_pkg;
6565
this.byte_stream.push_back(data.pop_front());
6666
end
6767

68-
if (this.scoreboard_ref.get_enabled()) begin
69-
this.scoreboard_ref.compare_transaction();
70-
end
68+
this.scoreboard_ref.compare_transaction();
7169
endfunction: update
7270

7371
function data_type get_data();
@@ -121,7 +119,7 @@ package scoreboard_pkg;
121119
// run task
122120
task run();
123121
this.enabled = 1;
124-
122+
this.clear_streams();
125123
this.info($sformatf("Scoreboard enabled"), ADI_VERBOSITY_MEDIUM);
126124
endtask: run
127125

@@ -132,10 +130,6 @@ package scoreboard_pkg;
132130
this.byte_streams_empty_sig = 1;
133131
endtask: stop
134132

135-
function bit get_enabled();
136-
return this.enabled;
137-
endfunction: get_enabled
138-
139133
// set sink type
140134
function void set_sink_type(input bit sink_type);
141135
if (!this.enabled) begin
@@ -153,7 +147,7 @@ package scoreboard_pkg;
153147
// clear source and sink byte streams
154148
protected function void clear_streams();
155149
this.subscriber_source.clear_stream();
156-
this.subscriber_source.clear_stream();
150+
this.subscriber_sink.clear_stream();
157151
endfunction: clear_streams
158152

159153
// wait until source and sink byte streams are empty, full check

testbenches/ip/scoreboard/Makefile

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,6 @@ include $(TB_LIBRARY_PATH)/includes/Makeinclude_scoreboard.mk
1212
include $(TB_LIBRARY_PATH)/includes/Makeinclude_dmac.mk
1313
include $(TB_LIBRARY_PATH)/includes/Makeinclude_data_offload.mk
1414

15-
# Remaining test-bench dependencies except test programs
16-
SV_DEPS += environment.sv
17-
18-
LIB_DEPS := util_cdc
19-
LIB_DEPS += util_axis_fifo
20-
LIB_DEPS += axi_dmac
21-
LIB_DEPS += data_offload
22-
LIB_DEPS += util_do_ram
23-
2415
# default test program
2516
TP := test_program
2617

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1 @@
11
global ad_project_params
2-
3-
set ad_project_params(ADC_DATA_PATH_WIDTH) 16 ; ##
4-
set ad_project_params(DAC_DATA_PATH_WIDTH) 16 ; ##
5-
6-
set ad_project_params(ADC_PATH_TYPE) 0 ; ## RX
7-
set ad_project_params(ADC_OFFLOAD_MEM_TYPE) 0 ; ## External storage
8-
set ad_project_params(ADC_OFFLOAD_SIZE) 2048 ; ## Storage size in bytes
9-
set ad_project_params(ADC_OFFLOAD_SRC_DWIDTH) 128 ; ## Source data width
10-
set ad_project_params(ADC_OFFLOAD_DST_DWIDTH) 128 ; ## Destination data width
11-
12-
set ad_project_params(DAC_PATH_TYPE) 0 ; ## TX
13-
set ad_project_params(DAC_OFFLOAD_MEM_TYPE) 0 ; ## External storage
14-
set ad_project_params(DAC_OFFLOAD_SIZE) 2048 ; ## Storage size in bytes
15-
set ad_project_params(DAC_OFFLOAD_SRC_DWIDTH) 128 ; ## Source data width
16-
set ad_project_params(DAC_OFFLOAD_DST_DWIDTH) 128 ; ## Destination data width
17-
18-
set ad_project_params(PLDDR_OFFLOAD_DATA_WIDTH) 512 ; ## PLDDR's AXI4 interface data width
19-

testbenches/ip/scoreboard/environment.sv

Lines changed: 0 additions & 136 deletions
This file was deleted.

testbenches/ip/scoreboard/system_bd.tcl

Lines changed: 20 additions & 135 deletions
Original file line numberDiff line numberDiff line change
@@ -35,143 +35,28 @@
3535

3636
global ad_project_params
3737

38-
source "$ad_hdl_dir/projects/common/xilinx/data_offload_bd.tcl"
39-
40-
## DUT configuration
41-
42-
set adc_data_path_width $ad_project_params(ADC_DATA_PATH_WIDTH)
43-
set dac_data_path_width $ad_project_params(DAC_DATA_PATH_WIDTH)
44-
45-
set adc_path_type $ad_project_params(ADC_PATH_TYPE)
46-
set adc_offload_mem_type $ad_project_params(ADC_OFFLOAD_MEM_TYPE)
47-
set adc_offload_size $ad_project_params(ADC_OFFLOAD_SIZE)
48-
set adc_offload_src_dwidth $ad_project_params(ADC_OFFLOAD_SRC_DWIDTH)
49-
set adc_offload_dst_dwidth $ad_project_params(ADC_OFFLOAD_DST_DWIDTH)
50-
51-
set dac_path_type $ad_project_params(DAC_PATH_TYPE)
52-
set dac_offload_mem_type $ad_project_params(DAC_OFFLOAD_MEM_TYPE)
53-
set dac_offload_size $ad_project_params(DAC_OFFLOAD_SIZE)
54-
set dac_offload_src_dwidth $ad_project_params(DAC_OFFLOAD_SRC_DWIDTH)
55-
set dac_offload_dst_dwidth $ad_project_params(DAC_OFFLOAD_DST_DWIDTH)
56-
57-
set plddr_offload_data_width $ad_project_params(PLDDR_OFFLOAD_DATA_WIDTH)
58-
59-
ad_ip_instance xlconstant GND [list \
60-
CONST_VAL 0 \
38+
ad_ip_instance axi4stream_vip adc_src_axis [list \
39+
INTERFACE_MODE {MASTER} \
40+
TDATA_NUM_BYTES 2 \
41+
HAS_TREADY {1} \
42+
HAS_TKEEP {1} \
43+
HAS_TLAST {1} \
6144
]
62-
ad_connect gnd GND/dout
63-
64-
for {set i 0} {$i < 2} {incr i} {
65-
ad_ip_instance axi_dmac i_rx_dmac_${i} [list \
66-
DMA_TYPE_SRC 1 \
67-
DMA_TYPE_DEST 0 \
68-
ID 0 \
69-
AXI_SLICE_SRC 1 \
70-
AXI_SLICE_DEST 1 \
71-
SYNC_TRANSFER_START 0 \
72-
DMA_LENGTH_WIDTH 24 \
73-
DMA_2D_TRANSFER 0 \
74-
MAX_BYTES_PER_BURST 4096 \
75-
CYCLIC 0 \
76-
DMA_DATA_WIDTH_SRC $adc_offload_dst_dwidth \
77-
DMA_DATA_WIDTH_DEST 64 \
78-
]
79-
80-
ad_ip_instance axi_dmac i_tx_dmac_${i} [list \
81-
DMA_TYPE_SRC 0 \
82-
DMA_TYPE_DEST 1 \
83-
ID 0 \
84-
AXI_SLICE_SRC 1 \
85-
AXI_SLICE_DEST 1 \
86-
SYNC_TRANSFER_START 0 \
87-
DMA_LENGTH_WIDTH 24 \
88-
DMA_2D_TRANSFER 0 \
89-
MAX_BYTES_PER_BURST 4096 \
90-
CYCLIC 1 \
91-
DMA_DATA_WIDTH_SRC 64 \
92-
DMA_DATA_WIDTH_DEST $dac_offload_src_dwidth \
93-
]
94-
95-
ad_data_offload_create RX_DUT_${i} \
96-
0 \
97-
$adc_offload_mem_type \
98-
$adc_offload_size \
99-
$adc_offload_src_dwidth \
100-
$adc_offload_dst_dwidth \
101-
$plddr_offload_data_width
102-
103-
ad_data_offload_create TX_DUT_${i} \
104-
1 \
105-
$dac_offload_mem_type \
106-
$dac_offload_size \
107-
$dac_offload_src_dwidth \
108-
$dac_offload_dst_dwidth \
109-
$plddr_offload_data_width
110-
111-
set BA 0x50000000
112-
ad_cpu_interconnect [expr ${BA} + 0x00000 + $i*0x40000] i_rx_dmac_${i}
113-
ad_cpu_interconnect [expr ${BA} + 0x10000 + $i*0x40000] i_tx_dmac_${i}
114-
ad_cpu_interconnect [expr ${BA} + 0x20000 + $i*0x40000] RX_DUT_${i}
115-
ad_cpu_interconnect [expr ${BA} + 0x30000 + $i*0x40000] TX_DUT_${i}
116-
117-
adi_sim_add_define "RX_DMA_BA_${i}=[format "%d" [expr ${BA} + 0x00000 + $i*0x40000]]"
118-
adi_sim_add_define "TX_DMA_BA_${i}=[format "%d" [expr ${BA} + 0x10000 + $i*0x40000]]"
119-
adi_sim_add_define "RX_DOFF_BA_${i}=[format "%d" [expr ${BA} + 0x20000 + $i*0x40000]]"
120-
adi_sim_add_define "TX_DOFF_BA_${i}=[format "%d" [expr ${BA} + 0x30000 + $i*0x40000]]"
45+
adi_sim_add_define "ADC_SRC_AXIS=adc_src_axis"
12146

122-
ad_ip_instance axi4stream_vip adc_src_axis_${i} [list \
123-
INTERFACE_MODE {MASTER} \
124-
HAS_TREADY {1} \
125-
HAS_TLAST {0} \
126-
TDATA_NUM_BYTES $adc_data_path_width \
127-
]
128-
adi_sim_add_define "ADC_SRC_AXIS_${i}=adc_src_axis_${i}"
47+
ad_connect sys_dma_clk adc_src_axis/aclk
48+
ad_connect sys_dma_resetn adc_src_axis/aresetn
12949

130-
ad_connect adc_src_axis_${i}/m_axis RX_DUT_${i}/s_axis
131-
ad_connect RX_DUT_${i}/m_axis i_rx_dmac_${i}/s_axis
132-
133-
ad_connect sys_dma_clk adc_src_axis_${i}/aclk
134-
ad_connect sys_dma_resetn adc_src_axis_${i}/aresetn
135-
136-
ad_connect sys_dma_clk RX_DUT_${i}/s_axis_aclk
137-
ad_connect sys_dma_resetn RX_DUT_${i}/s_axis_aresetn
138-
ad_connect sys_cpu_clk RX_DUT_${i}/m_axis_aclk
139-
ad_connect sys_cpu_resetn RX_DUT_${i}/m_axis_aresetn
140-
141-
ad_connect sys_cpu_clk i_rx_dmac_${i}/s_axis_aclk
142-
ad_connect sys_mem_clk i_rx_dmac_${i}/m_dest_axi_aclk
143-
ad_connect sys_mem_resetn i_rx_dmac_${i}/m_dest_axi_aresetn
144-
145-
ad_connect i_rx_dmac_${i}/s_axis_xfer_req RX_DUT_${i}/init_req
146-
ad_connect gnd RX_DUT_${i}/sync_ext
147-
148-
ad_mem_hp0_interconnect sys_mem_clk i_rx_dmac_${i}/m_dest_axi
149-
150-
ad_ip_instance axi4stream_vip dac_dst_axis_${i} [list \
151-
INTERFACE_MODE {SLAVE} \
152-
TDATA_NUM_BYTES $dac_data_path_width \
153-
HAS_TLAST {1} \
154-
HAS_TKEEP {0} \
155-
]
156-
adi_sim_add_define "DAC_DST_AXIS_${i}=dac_dst_axis_${i}"
157-
158-
ad_connect sys_dma_clk dac_dst_axis_${i}/aclk
159-
ad_connect sys_dma_resetn dac_dst_axis_${i}/aresetn
160-
161-
ad_connect sys_dma_clk TX_DUT_${i}/m_axis_aclk
162-
ad_connect sys_dma_resetn TX_DUT_${i}/m_axis_aresetn
163-
ad_connect sys_cpu_clk TX_DUT_${i}/s_axis_aclk
164-
ad_connect sys_cpu_resetn TX_DUT_${i}/s_axis_aresetn
165-
166-
ad_connect sys_cpu_clk i_tx_dmac_${i}/m_axis_aclk
167-
ad_connect sys_mem_clk i_tx_dmac_${i}/m_src_axi_aclk
168-
ad_connect sys_mem_resetn i_tx_dmac_${i}/m_src_axi_aresetn
169-
170-
ad_connect TX_DUT_${i}/m_axis dac_dst_axis_${i}/s_axis
171-
ad_connect TX_DUT_${i}/s_axis i_tx_dmac_${i}/m_axis
50+
ad_ip_instance axi4stream_vip dac_dst_axis [list \
51+
INTERFACE_MODE {SLAVE} \
52+
TDATA_NUM_BYTES 2 \
53+
HAS_TREADY {1} \
54+
HAS_TKEEP {1} \
55+
HAS_TLAST {1} \
56+
]
57+
adi_sim_add_define "DAC_DST_AXIS=dac_dst_axis"
17258

173-
ad_connect i_tx_dmac_${i}/m_axis_xfer_req TX_DUT_${i}/init_req
174-
ad_connect gnd TX_DUT_${i}/sync_ext
59+
ad_connect sys_dma_clk dac_dst_axis/aclk
60+
ad_connect sys_dma_resetn dac_dst_axis/aresetn
17561

176-
ad_mem_hp0_interconnect sys_mem_clk i_tx_dmac_${i}/m_src_axi
177-
}
62+
ad_connect adc_src_axis/m_axis dac_dst_axis/s_axis

testbenches/ip/scoreboard/system_project.tcl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,9 @@ adi_sim_project_xilinx $project_name "xcvu9p-flga2104-2L-e"
1818

1919
source $ad_tb_dir/library/includes/sp_include_axis.tcl
2020
source $ad_tb_dir/library/includes/sp_include_scoreboard.tcl
21-
source $ad_tb_dir/library/includes/sp_include_dmac.tcl
22-
source $ad_tb_dir/library/includes/sp_include_data_offload.tcl
2321

2422
# Add test files to the project
2523
adi_sim_project_files [list \
26-
"environment.sv" \
2724
"tests/test_program.sv" \
2825
]
2926

0 commit comments

Comments
 (0)