Fix for issue #5 (wrong endianness of data stream in test bed)
The 'evr320_data_filter' entity presents data in little-endian format. However, the test is written for big-endian; set the SWAP generic to fix this. Also; once this test passes events won't be detected because the checksum timeout is not reached. Set to zero. Last: ghdl complains about mem_data(x) indexing when x > C_MEM_DATA_WIDTH. Replaced hard-coded statements by a simple loop that runs from 0 to C_MEM_DATA_WIDTH/8 - 1.
This commit is contained in:
@ -176,7 +176,7 @@ begin
|
||||
|
||||
evr320_data_filter_inst: entity work.evr320_data_filter
|
||||
generic map (
|
||||
SWAP => false,
|
||||
SWAP => true, -- non-swapped uses LE layout; our check below converts to BE
|
||||
NUM_BYTES => 8
|
||||
)
|
||||
port map (
|
||||
@ -431,6 +431,7 @@ begin
|
||||
event_recorder_ctrl.event_number <= std_logic_vector(to_unsigned(g_EVENT_NR_SOS, 8));
|
||||
evr_params.cs_min_cnt <= X"00000000";
|
||||
evr_params.cs_min_time <= X"00000000";
|
||||
evr_params.cs_timeout_cnt <= X"00000000";
|
||||
mem_addr <= x"000";
|
||||
await_value(rxlos, '0', 0 ns, 10 us, FAILURE, "wait for release RX LOS");
|
||||
--wait until (rxlos = '0');
|
||||
@ -502,14 +503,9 @@ begin
|
||||
for addr in 0 to 31 loop
|
||||
mem_addr <= '0' & C_EVENT_REC_FLAGS & std_logic_vector(to_unsigned(addr, 5));
|
||||
wait_num_rising_edge_plus_margin(usr_clk, 1, 1 ns);
|
||||
check_value(mem_data(0), all_expected_events(8*addr), ERROR, "Event " & to_string(8*addr) & " Flag");
|
||||
check_value(mem_data(8), all_expected_events(8*addr + 1), ERROR, "Event " & to_string(8*addr + 1) & " Flag");
|
||||
check_value(mem_data(16), all_expected_events(8*addr + 2), ERROR, "Event " & to_string(8*addr + 2) & " Flag");
|
||||
check_value(mem_data(24), all_expected_events(8*addr + 3), ERROR, "Event " & to_string(8*addr + 3) & " Flag");
|
||||
check_value(mem_data(32), all_expected_events(8*addr + 4), ERROR, "Event " & to_string(8*addr + 4) & " Flag");
|
||||
check_value(mem_data(40), all_expected_events(8*addr + 5), ERROR, "Event " & to_string(8*addr + 5) & " Flag");
|
||||
check_value(mem_data(48), all_expected_events(8*addr + 6), ERROR, "Event " & to_string(8*addr + 6) & " Flag");
|
||||
check_value(mem_data(56), all_expected_events(8*addr + 7), ERROR, "Event " & to_string(8*addr + 7) & " Flag");
|
||||
for j in 0 to C_MEM_DATA_WIDTH/8 loop
|
||||
check_value(mem_data(8*j), all_expected_events(8*addr + j), ERROR, "Event " & to_string(8*addr + j) & " Flag");
|
||||
end loop;
|
||||
end loop;
|
||||
else
|
||||
error("Unsupported width of C_MEM_DATA_WIDTH");
|
||||
|
Reference in New Issue
Block a user