BUG FIX: rtps_builtin_endpoint does double endian swap (pre-swaped by rtps_handler)
This commit is contained in:
parent
48468d1131
commit
719766f5ed
@ -1225,12 +1225,12 @@ begin
|
||||
-- Latch Sequence Number
|
||||
case (cnt) is
|
||||
when 0 =>
|
||||
seq_nr_next(0) <= unsigned(data_in_swapped);
|
||||
seq_nr_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
when 1 =>
|
||||
seq_nr_next(1) <= unsigned(data_in_swapped);
|
||||
seq_nr_next(1) <= unsigned(data_in);
|
||||
-- Store Next Sequence Number
|
||||
tmp_dw := (0 => seq_nr(0), 1 => unsigned(data_in_swapped));
|
||||
tmp_dw := (0 => seq_nr(0), 1 => unsigned(data_in));
|
||||
next_seq_nr_next <= tmp_dw + 1;
|
||||
|
||||
stage_next <= PROCESS_DATA;
|
||||
@ -1424,6 +1424,8 @@ begin
|
||||
end case;
|
||||
end if;
|
||||
when PROCESS_GAP =>
|
||||
-- NOTE: Data is already endain swapped by rtps_handler
|
||||
|
||||
-- Input FIFO Guard
|
||||
if (empty = '0') then
|
||||
rd_guard := '1';
|
||||
@ -1431,24 +1433,24 @@ begin
|
||||
case (cnt) is
|
||||
-- GapStart Sequence Number 1/2
|
||||
when 0 =>
|
||||
gap_start_next(0) <= unsigned(data_in_swapped);
|
||||
gap_start_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
-- GapStart Sequence Number 2/2
|
||||
when 1 =>
|
||||
gap_start_next(1) <= unsigned(data_in_swapped);
|
||||
gap_start_next(1) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
-- GapList.Base 1/2
|
||||
when 2 =>
|
||||
gap_list_base_next(0) <= unsigned(data_in_swapped);
|
||||
gap_list_base_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
-- GapList.Base 2/2
|
||||
when 3 =>
|
||||
gap_list_base_next(1) <= unsigned(data_in_swapped);
|
||||
gap_list_base_next(1) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
-- GapList.NumBits
|
||||
when 4 =>
|
||||
gap_list_end_next <= gap_list_base + to_integer(unsigned(data_in_swapped));
|
||||
bitmap_cnt_next <= unsigned(round_slv(data_in_swapped(log2c(MAX_BITMAP_WIDTH)-1 downto 0),bitmap_cnt'length));
|
||||
gap_list_end_next <= gap_list_base + to_integer(unsigned(data_in));
|
||||
bitmap_cnt_next <= unsigned(round_slv(data_in(log2c(MAX_BITMAP_WIDTH)-1 downto 0),bitmap_cnt'length));
|
||||
cnt2_next <= 0;
|
||||
cnt_next <= cnt + 1;
|
||||
-- GapList.Bitmap
|
||||
@ -1457,7 +1459,7 @@ begin
|
||||
if (cnt2 < bitmap_cnt) then
|
||||
cnt2_next <= cnt2 + 1;
|
||||
|
||||
bitmap_latch_next(cnt2) <= data_in_swapped;
|
||||
bitmap_latch_next(cnt2) <= data_in;
|
||||
else
|
||||
stage_next <= PROCESS_GAP_SEQUENCE_NUMBERS;
|
||||
end if;
|
||||
@ -1518,6 +1520,8 @@ begin
|
||||
end if;
|
||||
end if;
|
||||
when PROCESS_HEARTBEAT =>
|
||||
-- NOTE: Data is already endain swapped by rtps_handler
|
||||
|
||||
-- Input FIFO Guard
|
||||
if (empty = '0') then
|
||||
rd_guard := '1';
|
||||
@ -1525,16 +1529,16 @@ begin
|
||||
-- Latch Sequence Numbers
|
||||
case (cnt) is
|
||||
when 0 =>
|
||||
first_seq_nr_next(0) <= unsigned(data_in_swapped);
|
||||
first_seq_nr_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
when 1 =>
|
||||
first_seq_nr_next(1) <= unsigned(data_in_swapped);
|
||||
first_seq_nr_next(1) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
when 2 =>
|
||||
last_seq_nr_next(0) <= unsigned(data_in_swapped);
|
||||
last_seq_nr_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
when 3 =>
|
||||
last_seq_nr_next(1) <= unsigned(data_in_swapped);
|
||||
last_seq_nr_next(1) <= unsigned(data_in);
|
||||
stage_next <= PROCESS_HEARTBEAT_SEQUENCE_NUMBERS;
|
||||
when others =>
|
||||
null;
|
||||
@ -1621,6 +1625,9 @@ begin
|
||||
stage_next <= SKIP_PACKET;
|
||||
end if;
|
||||
when PROCESS_ACKNACK =>
|
||||
-- NOTE: Data is already endain swapped by rtps_handler
|
||||
|
||||
-- Input FIFO Guard
|
||||
if (empty = '0') then
|
||||
rd_guard := '1';
|
||||
|
||||
@ -1628,10 +1635,10 @@ begin
|
||||
-- NOTE: Because we always sent the entire history cache, we only need to look at the SequenceNumberSetBase to determine if we need to sent data or not
|
||||
case (cnt) is
|
||||
when 0 =>
|
||||
first_seq_nr_next(0) <= unsigned(data_in_swapped);
|
||||
first_seq_nr_next(0) <= unsigned(data_in);
|
||||
cnt_next <= cnt + 1;
|
||||
when 1 =>
|
||||
first_seq_nr_next(1) <= unsigned(data_in_swapped);
|
||||
first_seq_nr_next(1) <= unsigned(data_in);
|
||||
|
||||
stage_next <= PROCESS_ACKNACK_SEQUENCE_NUMBERS;
|
||||
when others =>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user