testbench for accum adaptation for dma

This commit is contained in:
otroubi
2026-07-29 10:18:33 +03:00
parent 4247a107ef
commit 5eb746c0ad
2 changed files with 99 additions and 87 deletions
+45 -45
View File
@@ -4,12 +4,19 @@ module tb_accumulator_top;
localparam DATA_WIDTH = 12; localparam DATA_WIDTH = 12;
localparam ACCUM_WIDTH = 32; localparam ACCUM_WIDTH = 32;
localparam RW_WIDTH = 32;
localparam N_MAX = 4096; localparam N_MAX = 4096;
localparam MAX_WINDOW_SIZE = 65; localparam MAX_WINDOW_SIZE = 65;
localparam PACKET_SIZE = 1024; localparam PACKET_SIZE = 32;
localparam READ_BATCH_SIZE = (PACKET_SIZE*8)/ACCUM_WIDTH; localparam READ_BATCH_SIZE = (PACKET_SIZE*8)/ACCUM_WIDTH;
localparam MAX_WORDS = N_MAX; localparam MAX_WORDS = N_MAX;
localparam MAX_SEQ_NUM = 256; localparam MAX_SEQ_NUM = 256;
localparam int WR_WORD_BYTES = ACCUM_WIDTH/8;
localparam int RD_WORD_BYTES = RW_WIDTH/8;
localparam int PACKET_WR_WORDS = PACKET_SIZE / WR_WORD_BYTES;
localparam int PACKET_RD_WORDS = PACKET_SIZE / RD_WORD_BYTES;
logic clk_in; logic clk_in;
logic eth_clk_in; logic eth_clk_in;
@@ -25,7 +32,7 @@ module tb_accumulator_top;
logic req_ready; logic req_ready;
wire send_req; wire send_req;
wire [7:0] m_axis_tdata; wire [RW_WIDTH-1:0] m_axis_tdata;
wire m_axis_tvalid; wire m_axis_tvalid;
logic m_axis_tready; logic m_axis_tready;
wire m_axis_tlast; wire m_axis_tlast;
@@ -39,10 +46,10 @@ module tb_accumulator_top;
integer tests_passed; integer tests_passed;
integer packets_seen; integer packets_seen;
integer current_packet_byte_count; integer current_packet_word_count;
integer total_words_captured; integer total_words_captured;
byte packet_bytes [0:PACKET_SIZE-1]; logic [RW_WIDTH-1:0] packet_bytes [0:PACKET_RD_WORDS-1];
logic [ACCUM_WIDTH-1:0] expected_words [0:MAX_WORDS-1]; logic [ACCUM_WIDTH-1:0] expected_words [0:MAX_WORDS-1];
logic [ACCUM_WIDTH-1:0] captured_words_le[0:MAX_WORDS-1]; logic [ACCUM_WIDTH-1:0] captured_words_le[0:MAX_WORDS-1];
logic [ACCUM_WIDTH-1:0] captured_words_be[0:MAX_WORDS-1]; logic [ACCUM_WIDTH-1:0] captured_words_be[0:MAX_WORDS-1];
@@ -51,7 +58,8 @@ module tb_accumulator_top;
.DATA_WIDTH(DATA_WIDTH), .DATA_WIDTH(DATA_WIDTH),
.ACCUM_WIDTH(ACCUM_WIDTH), .ACCUM_WIDTH(ACCUM_WIDTH),
.N_MAX(N_MAX), .N_MAX(N_MAX),
.PACKET_SIZE(PACKET_SIZE) .PACKET_SIZE(PACKET_SIZE),
.RW_WIDTH(RW_WIDTH)
) dut ( ) dut (
.clk_in(clk_in), .clk_in(clk_in),
.rst(rst), .rst(rst),
@@ -62,7 +70,7 @@ module tb_accumulator_top;
.seq_num(seq_num), .seq_num(seq_num),
.window_size(window_size), .window_size(window_size),
.eth_clk_in(eth_clk_in), .eth_clk_in(eth_clk_in),
.req_ready(req_ready), .req_ready(1'b1),
.send_req(send_req), .send_req(send_req),
.m_axis_tdata(m_axis_tdata), .m_axis_tdata(m_axis_tdata),
.m_axis_tvalid(m_axis_tvalid), .m_axis_tvalid(m_axis_tvalid),
@@ -85,14 +93,14 @@ module tb_accumulator_top;
integer i; integer i;
begin begin
packets_seen = 0; packets_seen = 0;
current_packet_byte_count = 0; current_packet_word_count = 0;
total_words_captured = 0; total_words_captured = 0;
for (i = 0; i < MAX_WORDS; i = i + 1) begin for (i = 0; i < MAX_WORDS; i = i + 1) begin
expected_words[i] = '0; expected_words[i] = '0;
captured_words_le[i] = '0; captured_words_le[i] = '0;
captured_words_be[i] = '0; captured_words_be[i] = '0;
end end
for (i = 0; i < PACKET_SIZE; i = i + 1) for (i = 0; i < PACKET_RD_WORDS; i = i + 1)
packet_bytes[i] = 8'h00; packet_bytes[i] = 8'h00;
end end
endtask endtask
@@ -184,7 +192,7 @@ module tb_accumulator_top;
smp_num = smp_num_i; smp_num = smp_num_i;
seq_num = seq_num_i; seq_num = seq_num_i;
window_size = window_size_i; window_size = window_size_i;
req_ready = 1'b1; // приемник готов заранее req_ready = 1'b1; // ïðèåìíèê ãîòîâ çàðàíåå
exp_word_count = smp_num_i / window_size_i; exp_word_count = smp_num_i / window_size_i;
exp_packet_count = (exp_word_count + READ_BATCH_SIZE - 1) / READ_BATCH_SIZE; exp_packet_count = (exp_word_count + READ_BATCH_SIZE - 1) / READ_BATCH_SIZE;
@@ -219,7 +227,7 @@ module tb_accumulator_top;
end end
timeout_cnt = 0; timeout_cnt = 0;
while (packets_seen < exp_packet_count && timeout_cnt < 50 * PACKET_SIZE) begin while (packets_seen < exp_packet_count && timeout_cnt < 50 * PACKET_RD_WORDS) begin
@(posedge eth_clk_in); @(posedge eth_clk_in);
timeout_cnt = timeout_cnt + 1; timeout_cnt = timeout_cnt + 1;
end end
@@ -272,48 +280,40 @@ module tb_accumulator_top;
endtask endtask
always @(posedge eth_clk_in) begin : CAPTURE_AXIS always @(posedge eth_clk_in) begin : CAPTURE_AXIS
integer idx; if (rst) begin
logic [31:0] tmp_le; current_packet_word_count <= 0;
logic [31:0] tmp_be; total_words_captured <= 0;
if (rst) begin end
current_packet_byte_count = 0; else if (m_axis_tvalid && m_axis_tready) begin
end else if (m_axis_tvalid && m_axis_tready) begin
if (current_packet_byte_count < PACKET_SIZE)
packet_bytes[current_packet_byte_count] = m_axis_tdata;
current_packet_byte_count = current_packet_byte_count + 1;
if (m_axis_tlast) begin // Ñîõðàíÿåì î÷åðåäíîå ñëîâî
packets_seen = packets_seen + 1; if (total_words_captured < MAX_WORDS) begin
captured_words_le[total_words_captured] <= m_axis_tdata;
captured_words_be[total_words_captured] <= {
m_axis_tdata[7:0],
m_axis_tdata[15:8],
m_axis_tdata[23:16],
m_axis_tdata[31:24]
};
end
if (current_packet_byte_count != PACKET_SIZE) begin total_words_captured <= total_words_captured + 1;
$display("[packet] ERROR: packet size=%0d expected=%0d", current_packet_byte_count, PACKET_SIZE); current_packet_word_count <= current_packet_word_count + 1;
total_errors = total_errors + 1;
end
for (idx = 0; idx < READ_BATCH_SIZE; idx = idx + 1) begin if (m_axis_tlast) begin
tmp_le = { packets_seen <= packets_seen + 1;
packet_bytes[idx*4 + 3],
packet_bytes[idx*4 + 2],
packet_bytes[idx*4 + 1],
packet_bytes[idx*4 + 0]
};
tmp_be = {
packet_bytes[idx*4 + 0],
packet_bytes[idx*4 + 1],
packet_bytes[idx*4 + 2],
packet_bytes[idx*4 + 3]
};
if (total_words_captured + idx < MAX_WORDS) begin
captured_words_le[total_words_captured + idx] = tmp_le;
captured_words_be[total_words_captured + idx] = tmp_be;
end
end
total_words_captured = total_words_captured + READ_BATCH_SIZE; if (current_packet_word_count + 1 != PACKET_RD_WORDS) begin
current_packet_byte_count = 0; $display("[packet] ERROR: packet size=%0d expected=%0d",
current_packet_word_count + 1,
PACKET_RD_WORDS);
total_errors <= total_errors + 1;
end end
current_packet_word_count <= 0;
end end
end end
end
initial begin initial begin
seed = 32'h1badf00d; seed = 32'h1badf00d;
+54 -42
View File
@@ -11,173 +11,185 @@
</db_ref> </db_ref>
</db_ref_list> </db_ref_list>
<zoom_setting> <zoom_setting>
<ZoomStartTime time="2,748,541.000 ns"></ZoomStartTime> <ZoomStartTime time="0.000 ns"></ZoomStartTime>
<ZoomEndTime time="2,749,382.001 ns"></ZoomEndTime> <ZoomEndTime time="2,960.001 ns"></ZoomEndTime>
<Cursor1Time time="2,749,045.000 ns"></Cursor1Time> <Cursor1Time time="300.000 ns"></Cursor1Time>
</zoom_setting> </zoom_setting>
<column_width_setting> <column_width_setting>
<NameColumnWidth column_width="556"></NameColumnWidth> <NameColumnWidth column_width="539"></NameColumnWidth>
<ValueColumnWidth column_width="107"></ValueColumnWidth> <ValueColumnWidth column_width="116"></ValueColumnWidth>
</column_width_setting> </column_width_setting>
<WVObjectSize size="18" /> <WVObjectSize size="18" />
<wvobject type="logic" fp_name="/tb_accumulator_top/clk_in"> <wvobject fp_name="/tb_accumulator_top/clk_in" type="logic">
<obj_property name="ElementShortName">clk_in</obj_property> <obj_property name="ElementShortName">clk_in</obj_property>
<obj_property name="ObjectShortName">clk_in</obj_property> <obj_property name="ObjectShortName">clk_in</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/eth_clk_in"> <wvobject fp_name="/tb_accumulator_top/eth_clk_in" type="logic">
<obj_property name="ElementShortName">eth_clk_in</obj_property> <obj_property name="ElementShortName">eth_clk_in</obj_property>
<obj_property name="ObjectShortName">eth_clk_in</obj_property> <obj_property name="ObjectShortName">eth_clk_in</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/rst"> <wvobject fp_name="/tb_accumulator_top/rst" type="logic">
<obj_property name="ElementShortName">rst</obj_property> <obj_property name="ElementShortName">rst</obj_property>
<obj_property name="ObjectShortName">rst</obj_property> <obj_property name="ObjectShortName">rst</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/s_axis_tdata"> <wvobject fp_name="/tb_accumulator_top/s_axis_tdata" type="array">
<obj_property name="ElementShortName">s_axis_tdata[11:0]</obj_property> <obj_property name="ElementShortName">s_axis_tdata[11:0]</obj_property>
<obj_property name="ObjectShortName">s_axis_tdata[11:0]</obj_property> <obj_property name="ObjectShortName">s_axis_tdata[11:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/s_axis_tvalid"> <wvobject fp_name="/tb_accumulator_top/s_axis_tvalid" type="logic">
<obj_property name="ElementShortName">s_axis_tvalid</obj_property> <obj_property name="ElementShortName">s_axis_tvalid</obj_property>
<obj_property name="ObjectShortName">s_axis_tvalid</obj_property> <obj_property name="ObjectShortName">s_axis_tvalid</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/start"> <wvobject fp_name="/tb_accumulator_top/start" type="logic">
<obj_property name="ElementShortName">start</obj_property> <obj_property name="ElementShortName">start</obj_property>
<obj_property name="ObjectShortName">start</obj_property> <obj_property name="ObjectShortName">start</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/smp_num"> <wvobject fp_name="/tb_accumulator_top/smp_num" type="array">
<obj_property name="ElementShortName">smp_num[31:0]</obj_property> <obj_property name="ElementShortName">smp_num[31:0]</obj_property>
<obj_property name="ObjectShortName">smp_num[31:0]</obj_property> <obj_property name="ObjectShortName">smp_num[31:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/seq_num"> <wvobject fp_name="/tb_accumulator_top/seq_num" type="array">
<obj_property name="ElementShortName">seq_num[15:0]</obj_property> <obj_property name="ElementShortName">seq_num[15:0]</obj_property>
<obj_property name="ObjectShortName">seq_num[15:0]</obj_property> <obj_property name="ObjectShortName">seq_num[15:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/req_ready"> <wvobject fp_name="/tb_accumulator_top/req_ready" type="logic">
<obj_property name="ElementShortName">req_ready</obj_property> <obj_property name="ElementShortName">req_ready</obj_property>
<obj_property name="ObjectShortName">req_ready</obj_property> <obj_property name="ObjectShortName">req_ready</obj_property>
<obj_property name="CustomSignalColor">#E0FFFF</obj_property> <obj_property name="CustomSignalColor">#E0FFFF</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/send_req"> <wvobject fp_name="/tb_accumulator_top/send_req" type="logic">
<obj_property name="ElementShortName">send_req</obj_property> <obj_property name="ElementShortName">send_req</obj_property>
<obj_property name="ObjectShortName">send_req</obj_property> <obj_property name="ObjectShortName">send_req</obj_property>
<obj_property name="CustomSignalColor">#E0FFFF</obj_property> <obj_property name="CustomSignalColor">#E0FFFF</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/m_axis_tdata"> <wvobject fp_name="/tb_accumulator_top/m_axis_tdata" type="array">
<obj_property name="ElementShortName">m_axis_tdata[7:0]</obj_property> <obj_property name="ElementShortName">m_axis_tdata[7:0]</obj_property>
<obj_property name="ObjectShortName">m_axis_tdata[7:0]</obj_property> <obj_property name="ObjectShortName">m_axis_tdata[7:0]</obj_property>
<obj_property name="CustomSignalColor">#008080</obj_property> <obj_property name="CustomSignalColor">#008080</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/m_axis_tready"> <wvobject fp_name="/tb_accumulator_top/m_axis_tready" type="logic">
<obj_property name="ElementShortName">m_axis_tready</obj_property> <obj_property name="ElementShortName">m_axis_tready</obj_property>
<obj_property name="ObjectShortName">m_axis_tready</obj_property> <obj_property name="ObjectShortName">m_axis_tready</obj_property>
<obj_property name="CustomSignalColor">#00FFFF</obj_property> <obj_property name="CustomSignalColor">#00FFFF</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/m_axis_tlast"> <wvobject fp_name="/tb_accumulator_top/m_axis_tlast" type="logic">
<obj_property name="ElementShortName">m_axis_tlast</obj_property> <obj_property name="ElementShortName">m_axis_tlast</obj_property>
<obj_property name="ObjectShortName">m_axis_tlast</obj_property> <obj_property name="ObjectShortName">m_axis_tlast</obj_property>
<obj_property name="CustomSignalColor">#008080</obj_property> <obj_property name="CustomSignalColor">#008080</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/finish"> <wvobject fp_name="/tb_accumulator_top/finish" type="logic">
<obj_property name="ElementShortName">finish</obj_property> <obj_property name="ElementShortName">finish</obj_property>
<obj_property name="ObjectShortName">finish</obj_property> <obj_property name="ObjectShortName">finish</obj_property>
<obj_property name="CustomSignalColor">#FAAFBE</obj_property> <obj_property name="CustomSignalColor">#FAAFBE</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/batch_req"> <wvobject fp_name="/tb_accumulator_top/dut/batch_req" type="logic">
<obj_property name="ElementShortName">batch_req</obj_property> <obj_property name="ElementShortName">batch_req</obj_property>
<obj_property name="ObjectShortName">batch_req</obj_property> <obj_property name="ObjectShortName">batch_req</obj_property>
<obj_property name="CustomSignalColor">#00FFFF</obj_property> <obj_property name="CustomSignalColor">#00FFFF</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/readout_begin"> <wvobject fp_name="/tb_accumulator_top/dut/readout_begin" type="logic">
<obj_property name="ElementShortName">readout_begin</obj_property> <obj_property name="ElementShortName">readout_begin</obj_property>
<obj_property name="ObjectShortName">readout_begin</obj_property> <obj_property name="ObjectShortName">readout_begin</obj_property>
<obj_property name="CustomSignalColor">#00FFFF</obj_property> <obj_property name="CustomSignalColor">#00FFFF</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="group" fp_name="group25"> <wvobject fp_name="group25" type="group">
<obj_property name="label">acc</obj_property> <obj_property name="label">acc</obj_property>
<obj_property name="DisplayName">label</obj_property> <obj_property name="DisplayName">label</obj_property>
<obj_property name="isExpanded"></obj_property> <obj_property name="isExpanded"></obj_property>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/accum_main/PACKET_SIZE"> <wvobject fp_name="/tb_accumulator_top/dut/accum_main/PACKET_SIZE" type="array">
<obj_property name="ElementShortName">PACKET_SIZE[31:0]</obj_property> <obj_property name="ElementShortName">PACKET_SIZE[31:0]</obj_property>
<obj_property name="ObjectShortName">PACKET_SIZE[31:0]</obj_property> <obj_property name="ObjectShortName">PACKET_SIZE[31:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/accum_main/READ_BATCH_SIZE"> <wvobject fp_name="/tb_accumulator_top/dut/accum_main/READ_BATCH_SIZE" type="array">
<obj_property name="ElementShortName">READ_BATCH_SIZE[31:0]</obj_property> <obj_property name="ElementShortName">READ_BATCH_SIZE[31:0]</obj_property>
<obj_property name="ObjectShortName">READ_BATCH_SIZE[31:0]</obj_property> <obj_property name="ObjectShortName">READ_BATCH_SIZE[31:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/accum_main/addrb"> <wvobject fp_name="/tb_accumulator_top/dut/accum_main/addrb" type="array">
<obj_property name="ElementShortName">addrb[15:0]</obj_property> <obj_property name="ElementShortName">addrb[15:0]</obj_property>
<obj_property name="ObjectShortName">addrb[15:0]</obj_property> <obj_property name="ObjectShortName">addrb[15:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/accum_main/wr_state"> <wvobject fp_name="/tb_accumulator_top/dut/accum_main/wr_state" type="array">
<obj_property name="ElementShortName">wr_state[3:0]</obj_property> <obj_property name="ElementShortName">wr_state[3:0]</obj_property>
<obj_property name="ObjectShortName">wr_state[3:0]</obj_property> <obj_property name="ObjectShortName">wr_state[3:0]</obj_property>
</wvobject> </wvobject>
</wvobject> </wvobject>
<wvobject type="group" fp_name="group27"> <wvobject fp_name="group27" type="group">
<obj_property name="label">fifo</obj_property> <obj_property name="label">fifo</obj_property>
<obj_property name="DisplayName">label</obj_property> <obj_property name="DisplayName">label</obj_property>
<obj_property name="isExpanded"></obj_property> <obj_property name="isExpanded"></obj_property>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/acc_din"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/acc_din" type="array">
<obj_property name="ElementShortName">acc_din[31:0]</obj_property> <obj_property name="ElementShortName">acc_din[31:0]</obj_property>
<obj_property name="ObjectShortName">acc_din[31:0]</obj_property> <obj_property name="ObjectShortName">acc_din[31:0]</obj_property>
<obj_property name="CustomSignalColor">#FF0080</obj_property> <obj_property name="CustomSignalColor">#FF0080</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/output_async_fifo/din_valid"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/din_valid" type="logic">
<obj_property name="ElementShortName">din_valid</obj_property> <obj_property name="ElementShortName">din_valid</obj_property>
<obj_property name="ObjectShortName">din_valid</obj_property> <obj_property name="ObjectShortName">din_valid</obj_property>
<obj_property name="CustomSignalColor">#FF0080</obj_property> <obj_property name="CustomSignalColor">#FF0080</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/output_async_fifo/batch_req"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/batch_req" type="logic">
<obj_property name="ElementShortName">batch_req</obj_property> <obj_property name="ElementShortName">batch_req</obj_property>
<obj_property name="ObjectShortName">batch_req</obj_property> <obj_property name="ObjectShortName">batch_req</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_state"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_state" type="array">
<obj_property name="ElementShortName">wr_state[2:0]</obj_property> <obj_property name="ElementShortName">wr_state[2:0]</obj_property>
<obj_property name="ObjectShortName">wr_state[2:0]</obj_property> <obj_property name="ObjectShortName">wr_state[2:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/rd_state"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/rd_state" type="array">
<obj_property name="ElementShortName">rd_state[2:0]</obj_property> <obj_property name="ElementShortName">rd_state[2:0]</obj_property>
<obj_property name="ObjectShortName">rd_state[2:0]</obj_property> <obj_property name="ObjectShortName">rd_state[2:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_unavail"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_unavail" type="logic">
<obj_property name="ElementShortName">wr_unavail</obj_property> <obj_property name="ElementShortName">wr_unavail</obj_property>
<obj_property name="ObjectShortName">wr_unavail</obj_property> <obj_property name="ObjectShortName">wr_unavail</obj_property>
<obj_property name="CustomSignalColor">#FFFF00</obj_property> <obj_property name="CustomSignalColor">#FFFF00</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_rst_busy"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/wr_rst_busy" type="logic">
<obj_property name="ElementShortName">wr_rst_busy</obj_property> <obj_property name="ElementShortName">wr_rst_busy</obj_property>
<obj_property name="ObjectShortName">wr_rst_busy</obj_property> <obj_property name="ObjectShortName">wr_rst_busy</obj_property>
<obj_property name="CustomSignalColor">#FFFF00</obj_property> <obj_property name="CustomSignalColor">#FFFF00</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property> <obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject> </wvobject>
<wvobject type="logic" fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/empty"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/empty" type="logic">
<obj_property name="ElementShortName">empty</obj_property> <obj_property name="ElementShortName">empty</obj_property>
<obj_property name="ObjectShortName">empty</obj_property> <obj_property name="ObjectShortName">empty</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/PROG_FULL_THRESH"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/PROG_FULL_THRESH" type="array">
<obj_property name="ElementShortName">PROG_FULL_THRESH[31:0]</obj_property> <obj_property name="ElementShortName">PROG_FULL_THRESH[31:0]</obj_property>
<obj_property name="ObjectShortName">PROG_FULL_THRESH[31:0]</obj_property> <obj_property name="ObjectShortName">PROG_FULL_THRESH[31:0]</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/wr_data_count"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/wr_data_count" type="array">
<obj_property name="ElementShortName">wr_data_count[9:0]</obj_property> <obj_property name="ElementShortName">wr_data_count[7:0]</obj_property>
<obj_property name="ObjectShortName">wr_data_count[9:0]</obj_property> <obj_property name="ObjectShortName">wr_data_count[7:0]</obj_property>
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property> <obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
</wvobject> </wvobject>
<wvobject type="array" fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/rd_data_count"> <wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/xpm_fifo_async_inst/rd_data_count" type="array">
<obj_property name="ElementShortName">rd_data_count[11:0]</obj_property> <obj_property name="ElementShortName">rd_data_count[7:0]</obj_property>
<obj_property name="ObjectShortName">rd_data_count[11:0]</obj_property> <obj_property name="ObjectShortName">rd_data_count[7:0]</obj_property>
<obj_property name="Radix">UNSIGNEDDECRADIX</obj_property> <obj_property name="Radix">UNSIGNEDDECRADIX</obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/fifo_wr_en_r" type="logic">
<obj_property name="ElementShortName">fifo_wr_en_r</obj_property>
<obj_property name="ObjectShortName">fifo_wr_en_r</obj_property>
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject>
<wvobject fp_name="/tb_accumulator_top/dut/output_async_fifo/rd_en" type="logic">
<obj_property name="ElementShortName">rd_en</obj_property>
<obj_property name="ObjectShortName">rd_en</obj_property>
<obj_property name="CustomSignalColor">#FAAFBE</obj_property>
<obj_property name="UseCustomSignalColor">true</obj_property>
</wvobject>
</wvobject> </wvobject>
</wave_config> </wave_config>