revert 06ed44c code refactor
Revert changes made in commit 06ed44c to the memory FSMs.
NOTE: This commit only reverts the changes in rtps_builtin_endpoint. The rest of the reverted changes are merged with following commits.
This commit is contained in:
parent
9ff39c6fea
commit
d2f466d588
@ -3133,19 +3133,33 @@ begin
|
|||||||
when 2 =>
|
when 2 =>
|
||||||
-- No Match
|
-- No Match
|
||||||
if (mem_read_data /= guid(1)) then
|
if (mem_read_data /= guid(1)) then
|
||||||
-- Continue Search
|
-- Reached End of Memory, No Match
|
||||||
mem_addr_next <= tmp;
|
if (mem_addr_base = max_participant_addr) then
|
||||||
mem_addr_base_next <= tmp;
|
addr_res_next <= MAX_ADDRESS; --No match
|
||||||
mem_cnt_next <= 0;
|
-- DONE
|
||||||
|
mem_stage_next <= IDLE;
|
||||||
|
else
|
||||||
|
-- Continue Search
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
mem_addr_base_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
-- GUID Prefix 3/3
|
-- GUID Prefix 3/3
|
||||||
when 3 =>
|
when 3 =>
|
||||||
-- No Match
|
-- No Match
|
||||||
if (mem_read_data /= guid(2)) then
|
if (mem_read_data /= guid(2)) then
|
||||||
-- Continue Search
|
-- Reached End of Memory, No Match
|
||||||
mem_addr_next <= tmp;
|
if (mem_addr_base = max_participant_addr) then
|
||||||
mem_addr_base_next <= tmp;
|
addr_res_next <= MAX_ADDRESS; --No match
|
||||||
mem_cnt_next <= 0;
|
-- DONE
|
||||||
|
mem_stage_next <= IDLE;
|
||||||
|
else
|
||||||
|
-- Continue Search
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
mem_addr_base_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
-- Match
|
-- Match
|
||||||
else
|
else
|
||||||
-- Fetch Participant Data
|
-- Fetch Participant Data
|
||||||
@ -3562,23 +3576,69 @@ begin
|
|||||||
when 2 =>
|
when 2 =>
|
||||||
-- Slot Occupied
|
-- Slot Occupied
|
||||||
if (mem_read_data /= GUIDPREFIX_UNKNOWN(1)) then
|
if (mem_read_data /= GUIDPREFIX_UNKNOWN(1)) then
|
||||||
-- Latch last occupied Participant Slot
|
if (mem_addr_base = max_participant_addr) then
|
||||||
last_addr_next <= mem_addr_base;
|
-- We are in the middle of resetting the MAX Participant Pointer
|
||||||
-- Continue Search
|
if (reset_max_pointer = '1') then
|
||||||
mem_addr_next <= tmp;
|
-- No Change
|
||||||
mem_addr_base_next <= tmp;
|
mem_stage_next <= IDLE;
|
||||||
mem_cnt_next <= 0;
|
-- MEMORY FULL
|
||||||
|
elsif (max_participant_addr = MAX_PARTICIPANT_ADDRESS) then
|
||||||
|
report "Memory Full, Ignoring Participant Data" severity NOTE;
|
||||||
|
-- Ignore Insertion
|
||||||
|
mem_stage_next <= IDLE;
|
||||||
|
addr_res_next <= MAX_ADDRESS;
|
||||||
|
else
|
||||||
|
-- Extend Participant Memory Area
|
||||||
|
-- NOTE: "max_participant_addr" points to the first address of last participant frame
|
||||||
|
max_participant_addr_next <= tmp;
|
||||||
|
-- Populate Participant Slot
|
||||||
|
mem_stage_next <= INSERT_PARTICIPANT;
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
addr_res_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
-- Latch last occupied Participant Slot
|
||||||
|
last_addr_next <= mem_addr_base;
|
||||||
|
-- Continue Search
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
mem_addr_base_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
-- GUID Prefix 3/3
|
-- GUID Prefix 3/3
|
||||||
when 3 =>
|
when 3 =>
|
||||||
-- Slot Occupied
|
-- Slot Occupied
|
||||||
if (mem_read_data /= GUIDPREFIX_UNKNOWN(2)) then
|
if (mem_read_data /= GUIDPREFIX_UNKNOWN(2)) then
|
||||||
-- Latch last occupied Participant Slot
|
if (mem_addr_base = max_participant_addr) then
|
||||||
last_addr_next <= mem_addr_base;
|
-- We are in the middle of resetting the MAX Participant Pointer
|
||||||
-- Continue Search
|
if (reset_max_pointer = '1') then
|
||||||
mem_addr_next <= tmp;
|
-- No Change
|
||||||
mem_addr_base_next <= tmp;
|
mem_stage_next <= IDLE;
|
||||||
mem_cnt_next <= 0;
|
-- MEMORY FULL
|
||||||
|
elsif (max_participant_addr = MAX_PARTICIPANT_ADDRESS) then
|
||||||
|
report "Memory Full, Ignoring Participant Data" severity NOTE;
|
||||||
|
-- Ignore Insertion
|
||||||
|
mem_stage_next <= IDLE;
|
||||||
|
addr_res_next <= MAX_ADDRESS;
|
||||||
|
else
|
||||||
|
-- Extend Participant Memory Area
|
||||||
|
-- NOTE: "max_participant_addr" points to the first address of last participant frame
|
||||||
|
max_participant_addr_next <= tmp;
|
||||||
|
-- Populate Participant Slot
|
||||||
|
mem_stage_next <= INSERT_PARTICIPANT;
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
addr_res_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
|
else
|
||||||
|
-- Latch last occupied Participant Slot
|
||||||
|
last_addr_next <= mem_addr_base;
|
||||||
|
-- Continue Search
|
||||||
|
mem_addr_next <= tmp;
|
||||||
|
mem_addr_base_next <= tmp;
|
||||||
|
mem_cnt_next <= 0;
|
||||||
|
end if;
|
||||||
-- Slot Empty
|
-- Slot Empty
|
||||||
else
|
else
|
||||||
if (reset_max_pointer = '1') then
|
if (reset_max_pointer = '1') then
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user