diff --git a/src/ASCII.txt b/src/ASCII.txt index 7daa1cc..049a7a4 100644 --- a/src/ASCII.txt +++ b/src/ASCII.txt @@ -9,7 +9,7 @@ |DDS Writer|->|RTPS Writer|<-+->|RTPS Handler|<-->|RTPS Handler|<-+->|RTPS Reader|->|DDS Reader| +----------+ +-----------+ | +------------+ +------------+ | +-----------+ +----------+ +---------------------+ | | +---------------------+ - |RTPS Builtin Endpoint|<-+ +->|RTPS Builtin Endpoint| + |RTPS Discovery Module|<-+ +->|RTPS Discovery Module| +---------------------+ +---------------------+ @@ -20,8 +20,8 @@ +----------+ +-----------+ | | | | +-----------+ +----------+ +---------------------+ | | | | +---------------------+ | |<-+ | +-|--| | - |RTPS Builtin Endpoint| | +------------+ +------------+ | |RTPS Builtin Endpoint| + |RTPS Discovery Module| | +------------+ +------------+ | |RTPS Discovery Module| | |----+->| RTPS OUT |--->|RTPS Handler|----+->| | +---------------------+ +------------+ +------------+ +---------------------+ -TODO: RTPS Reader/Writer and RTPS Builtin Endpoint Interconnection \ No newline at end of file +TODO: RTPS Reader/Writer and RTPS Discovery Module Interconnection \ No newline at end of file diff --git a/src/REF.txt b/src/REF.txt index dd84d1e..b827504 100644 --- a/src/REF.txt +++ b/src/REF.txt @@ -106,7 +106,7 @@ ENDPOINT PACKET FORMAT +---------------------------------------------------------------+ | SRC_ENTITYID | +---------------------------------------------------------------+ -| DEST_ENTITYID [only for Builtin Destinations] | +| DEST_ENTITYID [only for Discovery Module] | +---------------------------------------------------------------+ | | + Sequence Number [only for DATA Submessage] + @@ -114,7 +114,7 @@ ENDPOINT PACKET FORMAT +---------------------------------------------------------------+ | | + Timestamp + -| [only for DATA Submessage and User Destinations] | +| [only for DATA Submessage and RTPS Endpoints] | +---------------------------------------------------------------+ | | ~ PAYLOAD (SUBMESSAGE CONTENT) ~ @@ -182,8 +182,8 @@ ENDPOINT_ID 0...MAX_ENDPOINTS READERS...WRITERS -BUILT-IN ENDPOINTS -================== +DISCOVERY MODULE +================ 2.2.5 Built-In Topics The QoS of the built-in Subscriber and DataReader objects is given by the following table: @@ -334,8 +334,8 @@ ENDPOINT LIVELINESS UPDATE 03| | +---------------------------------------------------------------+ -LOCAL ENDPOINT BUFFER -===================== +RTPS ENDPOINT +============= READER ------ @@ -421,8 +421,8 @@ Q...Reader expects in-line QoS H...Reader expects Historical Data B...Reader has RELIABILITY BEST_EFFORT -HISTORY CACHE -============= +DDS ENDPOINT +============ READER ------ @@ -849,6 +849,11 @@ space available to store the modification, the writer is allowed to block. If after that, the application wants to modify (write or dispose) the instance, it has to register it again, or else use the special handle value HANDLE_NIL. +2.2.2.5.5 SampleInfo CLass (DDS) +The publication_handle that identifies locally the DataWriter that modified the instance. The publication_handle is the +same InstanceHandle_t that is returned by the operation get_matched_publications on the DataReader and can also +be used as a parameter to the DataReader operation get_matched_publication_data. + INVALIDATION ============ diff --git a/src/TEMPLATE_dds_top.vhd b/src/TEMPLATE_dds_top.vhd index 40f21b4..3f84541 100644 --- a/src/TEMPLATE_dds_top.vhd +++ b/src/TEMPLATE_dds_top.vhd @@ -60,17 +60,17 @@ architecture arch of dds_top is type DURATION_WARRAY_TYPE is array (0 to NUM_WRITERS-1) of DURATION_TYPE; signal full_fire_rh, write_rh_fire : std_logic_vector(0 to NUM_ENDPOINTS-1); - signal data_rh_fire, data_rh_firb : std_logic_vector(WORD_WIDTH downto 0); - signal full_firb_rh, write_rh_firb : std_logic; - signal read_rb_firb, empty_firb_rb : std_logic; - signal data_firb_rb : std_logic_vector(WORD_WIDTH downto 0); + signal data_rh_fire, data_rh_fidm : std_logic_vector(WORD_WIDTH downto 0); + signal full_fidm_rh, write_rh_fidm : std_logic; + signal read_dm_fidm, empty_fidm_dm : std_logic; + signal data_fidm_dm : std_logic_vector(WORD_WIDTH downto 0); signal read_re_fire, empty_fire_re : std_logic_vector(0 to NUM_ENDPOINTS); signal data_fire_re : EARRAY_DATA_TYPE; - signal alive_re_rb, full_frbre_re, write_rb_frbre : std_logic_vector(0 to NUM_ENDPOINTS-1); - signal data_rb_frbre , data_rb_firo : std_logic_vector(WORD_WIDTH downto 0); - signal full_firo_rb, write_rb_firo : std_logic; - signal empty_frbre_re, read_re_frbre : std_logic_vector(0 to NUM_ENDPOINTS-1); - signal data_frbre_re : EARRAY_DATA_TYPE; + signal alive_re_dm, full_fdmre_re, write_dm_fdmre : std_logic_vector(0 to NUM_ENDPOINTS-1); + signal data_dm_fdmre , data_dm_firo : std_logic_vector(WORD_WIDTH downto 0); + signal full_firo_dm, write_dm_firo : std_logic; + signal empty_fdmre_re, read_re_fdmre : std_logic_vector(0 to NUM_ENDPOINTS-1); + signal data_fdmre_re : EARRAY_DATA_TYPE; signal full_firo_re, write_re_firo : std_logic_vector(0 to NUM_ENDPOINTS-1); signal data_re_firo : EARRAY_DATA_TYPE; signal start_rr_dr, ack_dr_rr, done_dr_rr, valid_rr_dr, ready_dr_rr : std_logic_vector(0 to NUM_READERS-1); @@ -127,20 +127,20 @@ begin empty => empty, rd => read, data_in => data_in, - -- TO BUILTIN ENDPOINT - full_be => full_firb_rh, - wr_be => write_rh_firb, - data_out_be => data_rh_firb(WORD_WIDTH-1 downto 0), - last_word_out_be => data_rh_firb(WORD_WIDTH), + -- TO DISCOVERY MODULE + full_dm => full_fidm_rh, + wr_dm => write_rh_fidm, + data_out_dm => data_rh_fidm(WORD_WIDTH-1 downto 0), + last_word_out_dm => data_rh_fidm(WORD_WIDTH), -- TO USER ENDPOINTS - full_ue => full_fire_rh, - wr_ue => write_rh_fire, - data_out_ue => data_rh_fire(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rh_fire(WORD_WIDTH) + full_rtps => full_fire_rh, + wr_rtps => write_rh_fire, + data_out_rtps => data_rh_fire(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_rh_fire(WORD_WIDTH) ); - fifo_in_rb_inst : configuration work.FWFT_FIFO_cfg + fifo_in_dm_inst : configuration work.FWFT_FIFO_cfg generic map ( FIFO_DEPTH => 2, DATA_WIDTH => WORD_WIDTH+1 @@ -150,13 +150,13 @@ begin reset => reset, clk => clk, -- INPUT - full => full_firb_rh, - write => write_rh_firb, - data_in => data_rh_firb, + full => full_fidm_rh, + write => write_rh_fidm, + data_in => data_rh_fidm, -- OUTPUT - empty => empty_firb_rb, - read => read_rb_firb, - data_out => data_firb_rb, + empty => empty_fidm_dm, + read => read_dm_fidm, + data_out => data_fidm_dm, -- MISC free => open ); @@ -186,7 +186,7 @@ begin end generate; - rtps_builtin_endpoint_inst : entity work.rtps_builtin_endpoint(arch) + rtps_discovery_module_inst : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS ) @@ -195,27 +195,27 @@ begin reset => reset, time => time, -- FROM RTPS HANDLER - empty => empty_firb_rb, - rd => read_rb_firb, - data_in => data_firb_rb(WORD_WIDTH-1 downto 0), - last_word_in => data_firb_rb(WORD_WIDTH), - -- FROM USER ENDPOINTS - alive => alive_re_rb, - -- TO USER ENDPOINTS - full_ue => full_frbre_re, - wr_ue => write_rb_frbre, - data_out_ue => data_rb_frbre(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rb_frbre(WORD_WIDTH), + empty => empty_fidm_dm, + rd => read_dm_fidm, + data_in => data_fidm_dm(WORD_WIDTH-1 downto 0), + last_word_in => data_fidm_dm(WORD_WIDTH), + -- FROM RTPS ENDPOINTS + alive => alive_re_dm, + -- TO RTPS ENDPOINTS + full_rtps => full_fdmre_re, + wr_rtps => write_dm_fdmre, + data_out_rtps => data_dm_fdmre(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_dm_fdmre(WORD_WIDTH), -- TO RTPS OUT - full_ro => full_firo_rb, - wr_ro => write_rb_firo, - data_out_ro => data_rb_firo(WORD_WIDTH-1 downto 0), - last_word_out_ro => data_rb_firo(WORD_WIDTH) + full_ro => full_firo_dm, + wr_ro => write_dm_firo, + data_out_ro => data_dm_firo(WORD_WIDTH-1 downto 0), + last_word_out_ro => data_dm_firo(WORD_WIDTH) ); - fifo_rb_re_gen : for i in 0 to NUM_ENDPOINTS-1 generate - fifo_rb_re_inst : configuration work.FWFT_FIFO_cfg + fifo_dm_re_gen : for i in 0 to NUM_ENDPOINTS-1 generate + fifo_dm_re_inst : configuration work.FWFT_FIFO_cfg generic map ( FIFO_DEPTH => 2, DATA_WIDTH => WORD_WIDTH+1 @@ -225,13 +225,13 @@ begin reset => reset, clk => clk, -- INPUT - full => full_frbre_re(i), - write => write_rb_frbre(i), - data_in => data_rb_frbre, -- Multicast + full => full_fdmre_re(i), + write => write_dm_fdmre(i), + data_in => data_dm_fdmre, -- Multicast -- OUTPUT - empty => empty_frbre_re(i), - read => read_re_frbre(i), - data_out => data_frbre_re(i), + empty => empty_fdmre_re(i), + read => read_re_fdmre(i), + data_out => data_fdmre_re(i), -- MISC free => open ); @@ -262,11 +262,11 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) - empty_meta => empty_frbre_re(i), - rd_meta => read_re_frbre(i), - data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), - last_word_in_meta => data_frbre_re(i)(WORD_WIDTH), + -- FROM DISCOVERY MODULE (META TRAFFIC) + empty_meta => empty_fdmre_re(i), + rd_meta => read_re_fdmre(i), + data_in_meta => data_fdmre_re(i)(WORD_WIDTH-1 downto 0), + last_word_in_meta => data_fdmre_re(i)(WORD_WIDTH), -- RTPS OUTPUT full_ro => full_firo_re(i), wr_ro => write_re_firo(i), @@ -285,7 +285,7 @@ begin ); -- Set Alive Signals of Readers to Zero - alive_re_rb(i) <= ('0'); + alive_re_dm(i) <= ('0'); else generate rtps_writer_inst : entity work.rtps_writer(arch) generic map ( @@ -313,13 +313,13 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) - empty_meta => empty_frbre_re(i), - rd_meta => read_re_frbre(i), - data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), - last_word_in_meta => data_frbre_re(i)(WORD_WIDTH), - -- TO RTPS_BUILTIN_ENDPOINT (META TRAFFIC) - alive_sig => alive_re_rb(i), + -- FROM DISCOVERY MODULE (META TRAFFIC) + empty_meta => empty_fdmre_re(i), + rd_meta => read_re_fdmre(i), + data_in_meta => data_fdmre_re(i)(WORD_WIDTH-1 downto 0), + last_word_in_meta => data_fdmre_re(i)(WORD_WIDTH), + -- TO DISCOVERY MODULE (META TRAFFIC) + alive_sig => alive_re_dm(i), -- RTPS OUTPUT full_ro => full_firo_re(i), wr_ro => write_re_firo(i), @@ -495,9 +495,9 @@ begin reset => reset, clk => clk, -- INPUT - full => full_firo_rb, - write => write_rb_firo, - data_in => data_rb_firo, + full => full_firo_dm, + write => write_dm_firo, + data_in => data_dm_firo, -- OUTPUT empty => empty_firo_ro(i), read => read_ro_firo(i), diff --git a/src/TODO.txt b/src/TODO.txt index fd55374..ace75d0 100644 --- a/src/TODO.txt +++ b/src/TODO.txt @@ -86,18 +86,19 @@ * Does TIME_BASED_FILTER also apply to meta-samples (DISPOSED, NO_WRITERS)? That is an easy way to not get convergent state in different DDS Readers. What do other implementations do? * The Participant GUID of the ParticipantMessageData is theoretically not needed, since it is the same as the source GUID of the Packet. This is done, so that the ParticipantMessageData has a key and can be decrypted as every other DATA Message. Our implementation checks if it is the expected GUID and drops it otherwise. - see (https://issues.omg.org/issues/DDSIRTP21-4) -* The RTPS Builtin Endpoint skips a Packet it doesn't understand. The RTPS Builtin Endpoint does not parse "serialized key" of DATA messages (since the specification does not actually define what the serialized key even is). So a SPDP DATA Packet with in-line QoS (PID_STATUS_INFO) and serialized key will be dropped if the RTPS Builtin Endpoint does not know the GUID, and that may stall the whole process pipeline (since the SN will be never acknowledged) +* The Discovery Module skips a Packet it doesn't understand. The Discovery Module does not parse "serialized key" of DATA messages (since the specification does not actually define what the serialized key even is). So a SPDP DATA Packet with in-line QoS (PID_STATUS_INFO) and serialized key will be dropped if the Discovery Module does not know the GUID, and that may stall the whole process pipeline (since the SN will be never acknowledged) * Is the parameter header of an optional member in CDR_LE also endian swapped? - Yes. (See Figure 24, 7.4.1.2.1, DDS-XTYPES 1.3) * Based on the examples given in 7.6.8 DDS-XTYPES v1.3 specification it seems that the string bounds do not count the NUL byte. - Under close inspection the IDL 4.2 specification states under 7.4.1.4.4.3.2 "IDL defines the string type string consisting of a list of all possible 8-bit quantities except null." Which means that the bound of a bounded string does not count the NUL byte. -* Currently we use one rtps_builtin_endpoint per participant. Meaning that if we want to compile 2 seperate participants we have to actually compile 2 different systems (e.g. in seperate Libraries for testing). - It would make sense to remove this restriction, rename the rtps_builtin_endpoint to something more generic like "discovery_module", and allow a way to set participant boundaries. +* Currently we use one rtps_discovery_module per participant. Meaning that if we want to compile 2 seperate participants we have to actually compile 2 different systems (e.g. in seperate Libraries for testing). + It would make sense to remove this restriction, rename the rtps_discovery_module to something more generic like "discovery_module", and allow a way to set participant boundaries. * Convert ROS MSG and SRV files to IDL files ros2 run rosidl_adapter msg2idl.py *.msg ros2 run rosidl_adapter srv2idl.py *.srv +* The publication_handle of the DDS Specification (e.g. the one returned in the Sample Info) is an implementation specific ID that can identify local and remote DDS Entities LOCALY. * Fast-RTPS does not follow DDSI-RTPS Specification - Open Github Issue @@ -193,14 +194,14 @@ DESIGN DECISIONS * !REJECTED! In order to save memory GUID should only be saved once. Decision was made to replace GUID with internal reference index. - Discovery module is responsible for saving the GUID and map it to a refernec eindex, that can then be used by other entities. + Discovery module is responsible for saving the GUID and map it to a refernece index, that can then be used by other entities. Writer Endpoints may need access to the real GUID for message fields. 2 options exist: - All Endpoints have access to the central memory where the real GUID is saved (needs Arbiter, handle starvation) - Writer Endpoints fill the fields with the reference index as placeholder, and a seperate Entity will access the central memory and replace the actual values The Second option was chosen (Less resources) RTPS Handler should lookup received message GUID in central memory (The lookup should happen in parallel with the actual message handling): - - If not stored, and messegae not for Built-in ENdpoints, drop message + - If not stored, and message not for Discovery Module, drop message - If in memory, replace with refernece index The central memory is accessd by 3 Entities: - RTPS Handler (READ, GUID Lookup) @@ -208,9 +209,9 @@ DESIGN DECISIONS - Discovery Module (WRITE, GUID Save) [Need initial Lookup? RTPS Handler should have already handled it. How does DM know if actual GUID or reference index?] Use a 2-port RAM with an arbiter for READ operations (Give Placeholder Handler priority to prevent DoS starvation) -* !REJECTED! (Use the unused extra flags in the stored participant data) - Use the lowest bit of the Heartbeat/Acknack Deadline stored in the Participant Data to differentiate +* Use the lowest bit of the Heartbeat/Acknack Deadline stored in the Participant Data to differentiate between Delay and Suppression. This reduces the resolution from 0.23 ns to 0.47 ns + (A previous version was using the unused extra flags in the stored participant data) * Originally we stored the mask of local matching endpoints in the memory frame of the remote endpoint in order to be able to send MATCH frames only to new matches, and UNMATCH frames only to previously @@ -269,7 +270,7 @@ DESIGN DECISIONS through the whole memory. Originally the memory was to be implemented in a true dual port fashion, and two seperate procoesses would each satisfy the requests from one input side. This would allow concurrent RTPS and DDS requests to be handled. The write concurrency (add and remove change) does - not allow for state keeping (first empty slot address), since it is reset by the "adding" side, by + not allow for state keeping (first empty slot address), since it is reset by the "adding" side, but set by the "removing" side. Because of this, it was decided against concurrent input handling in light of the fact that the history cache will be most commonly quite large in size, and iterating through all... @@ -412,13 +413,24 @@ DESIGN DECISIONS * If PUSH_MODE is false, packets are only written as response to ACKNACK requests (except HEARTBEATS). This means that a Reliable RTPS Writer in PUSH_MODE = FALSE cannot communicate with Best Effort Readers. Historical Data is also only sent out on request (But NACKed in the HC, until the remote Reader ACKs them). - + +BRAINSTORMING +------------- + +* Add all Participant specific configuration into a generic array (maybe array of record?) and modify the + discovery module to be centric to ALL participants. That means that the Participant Memory will + contain ALL remortely matched participants (even if they are matched only be 1 local participant). + The discovery module will also need to differentiate between the local participants for replies + (Parse RTPPS GUID and set local array index). + The port interface of the discovery module will not change, meaning that ALL the endpoints of all the + local participants will be flattened into one array for communication purposes (Maybe define "static" + demangle package function?). PROTOCOL UNCOMPLIANCE ===================== * Partition QoS Not Supported * Coherent Sets Not Supported -* Built-in Endpoint is NOT the same as a normal Endpoint +* Built-in Endpoints (of Discovery Module) is NOT the same as a normal Endpoint -> No User access to Data * Known but unused Submessage IDs are treated as uknown -> No validity check diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_mc.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test1_mc.vhd similarity index 96% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_mc.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test1_mc.vhd index 9c83d13..a73461a 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_mc.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test1_mc.vhd @@ -11,7 +11,7 @@ use work.rtps_config_package.all; use work.rtps_test_package.all; -- This testbench tests the matching of remote participants. Due to the fact, that participant matching does not have an immediate effect visible to the outside, --- this testbench is using external names to access the memory of the rtps_builtin_endpoint directly and check the contents at the supposed participant locations. +-- this testbench is using external names to access the memory of the rtps_discovery_module directly and check the contents at the supposed participant locations. -- This testbench covers following: -- * Mathing compatible Participants -- * Ignoring incompatible Participants @@ -23,10 +23,10 @@ use work.rtps_test_package.all; -- * PREFER_MULTICAST = TRUE -entity L0_rtps_builtin_endpoint_test1_mc is +entity L0_rtps_discovery_module_test1_mc is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test1_mc is +architecture testbench of L0_rtps_discovery_module_test1_mc is -- *CONSTANT DECLARATION* constant MAX_REMOTE_PARTICIPANTS : natural := 3; @@ -36,16 +36,16 @@ architecture testbench of L0_rtps_builtin_endpoint_test1_mc is type TEST_RAM_TYPE is array (0 to (MAX_REMOTE_PARTICIPANTS*PARTICIPANT_FRAME_SIZE)-1) of std_logic_vector(WORD_WIDTH-1 downto 0); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; --TODO: Do that in all testbenches - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; shared variable SB_mem : work.ScoreBoardPkg_MemoryTest.ScoreBoardPType; signal stim_done, mem_check_done, check_done, test_done : std_logic := '0'; @@ -72,7 +72,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test1_mc is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS, PREFER_MULTICAST => TRUE @@ -90,10 +90,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -142,7 +142,7 @@ begin end procedure; begin - SetAlertLogName("rtps_builtin_endpoint - Level 0 - (Prefer Multicast) - Participant Matching"); + SetAlertLogName("rtps_discovery_module - Level 0 - (Prefer Multicast) - Participant Matching"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -623,10 +623,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -634,7 +634,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -673,8 +673,8 @@ begin output_check_prc : process(all) begin if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_uc.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test1_uc.vhd similarity index 96% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_uc.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test1_uc.vhd index a5e8bc4..407a06e 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test1_uc.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test1_uc.vhd @@ -11,7 +11,7 @@ use work.rtps_config_package.all; use work.rtps_test_package.all; -- This testbench tests the matching of remote participants. Due to the fact, that participant matching does not have an immediate effect visible to the outside, --- this testbench is using external names to access the memory of the rtps_builtin_endpoint directly and check the contents at the supposed participant locations. +-- this testbench is using external names to access the memory of the rtps_discovery_module directly and check the contents at the supposed participant locations. -- This testbench covers following: -- * Mathing compatible Participants -- * Ignoring incompatible Participants @@ -23,10 +23,10 @@ use work.rtps_test_package.all; -- * PREFER_MULTICAST = FALSE -entity L0_rtps_builtin_endpoint_test1_uc is +entity L0_rtps_discovery_module_test1_uc is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test1_uc is +architecture testbench of L0_rtps_discovery_module_test1_uc is -- *CONSTANT DECLARATION* constant MAX_REMOTE_PARTICIPANTS : natural := 3; @@ -36,16 +36,16 @@ architecture testbench of L0_rtps_builtin_endpoint_test1_uc is type TEST_RAM_TYPE is array (0 to (MAX_REMOTE_PARTICIPANTS*PARTICIPANT_FRAME_SIZE)-1) of std_logic_vector(WORD_WIDTH-1 downto 0); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; --TODO: Do that in all testbenches - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; shared variable SB_mem : work.ScoreBoardPkg_MemoryTest.ScoreBoardPType; signal stim_done, mem_check_done, check_done, test_done : std_logic := '0'; @@ -72,7 +72,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test1_uc is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS ) @@ -89,10 +89,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -141,7 +141,7 @@ begin end procedure; begin - SetAlertLogName("rtps_builtin_endpoint - Level 0 - (Prefer Unicast) - Participant Matching"); + SetAlertLogName("rtps_discovery_module - Level 0 - (Prefer Unicast) - Participant Matching"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -605,10 +605,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -616,7 +616,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -655,8 +655,8 @@ begin output_check_prc : process(all) begin if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test2.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test2.vhd similarity index 97% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test2.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test2.vhd index fa9fd3f..ce86324 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test2.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test2.vhd @@ -97,26 +97,26 @@ use work.rtps_test_package.all; -- The testbench also tests endpoint unmatching by Unregister/Dispose Status Updates. -entity L0_rtps_builtin_endpoint_test2 is +entity L0_rtps_discovery_module_test2 is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test2 is +architecture testbench of L0_rtps_discovery_module_test2 is -- *TYPE DECLARATION* type TEST_STAGE_TYPE is (IDLE, BUSY); type MATCH_MATRIX_TYPE is array (0 to NUM_WRITERS-1) of std_logic_vector(0 to NUM_READERS-1); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; signal MATCH_MATRIX : MATCH_MATRIX_TYPE := (others => (others => '0')); signal stim_done, check_done : std_logic := '0'; @@ -144,7 +144,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test2 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => 3 ) @@ -161,10 +161,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -252,7 +252,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 0 - Endpoint Matching"); + SetAlertLogName("rtps_discovery_module - Level 0 - Endpoint Matching"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -917,10 +917,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -928,7 +928,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -968,8 +968,8 @@ begin begin check_done <= '0'; if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test3.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test3.vhd similarity index 97% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test3.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test3.vhd index 2f68a28..32f62e0 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test3.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test3.vhd @@ -11,7 +11,7 @@ use work.rtps_config_package.all; use work.rtps_test_package.all; -- This testbench tests the input handling of parameter lists. We issue one parameter list with invalid parameter length (less than expected) --- and one with valid larger parameter length (extra Bytes after expected parameter end) for each of the parameters that are handled by the built-in endpoint by checking if the Participant/Endpoint matched. +-- and one with valid larger parameter length (extra Bytes after expected parameter end) for each of the parameters that are handled by the Discovery Module by checking if the Participant/Endpoint matched. -- (We also issue a parameter list that is missing its sentinel) -- Particpant matches are checked by memory content, and Endpoint matches by the generated match frame. -- The PIDs handled are: @@ -43,10 +43,10 @@ use work.rtps_test_package.all; -- * PID_KEY_HASH -- * PID_STATUS_INFO -entity L0_rtps_builtin_endpoint_test3 is +entity L0_rtps_discovery_module_test3 is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test3 is +architecture testbench of L0_rtps_discovery_module_test3 is -- *CONSTANT DECLARATION* constant MAX_REMOTE_PARTICIPANTS : natural := 11; @@ -56,16 +56,16 @@ architecture testbench of L0_rtps_builtin_endpoint_test3 is type TEST_STAGE_TYPE is (IDLE, BUSY); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; shared variable SB_mem : work.ScoreBoardPkg_MemoryTest.ScoreBoardPType; signal stim_done, check_done, mem_check_done, test_done : std_logic := '0'; @@ -92,7 +92,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test3 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS ) @@ -109,10 +109,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -193,7 +193,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 0 - Input Handling"); + SetAlertLogName("rtps_discovery_module - Level 0 - Input Handling"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -1315,10 +1315,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -1326,7 +1326,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -1365,8 +1365,8 @@ begin output_check_prc : process(all) begin if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test4.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test4.vhd similarity index 98% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test4.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test4.vhd index b1ff1cc..7d0dcfb 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test4.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test4.vhd @@ -12,10 +12,10 @@ use work.rtps_test_package.all; -- This testbench tests the SequenceNumber, HEARTBEAT, and GAP handling of the Participant, Subscriber, Publisher, and ParticipantMessage DATA Submessages. -entity L0_rtps_builtin_endpoint_test4 is +entity L0_rtps_discovery_module_test4 is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test4 is +architecture testbench of L0_rtps_discovery_module_test4 is -- *CONSTANT DECLARATION* constant MAX_REMOTE_PARTICIPANTS : natural := 1; @@ -25,16 +25,16 @@ architecture testbench of L0_rtps_builtin_endpoint_test4 is type TEST_RAM_TYPE is array (0 to (MAX_REMOTE_PARTICIPANTS*PARTICIPANT_FRAME_SIZE)-1) of std_logic_vector(WORD_WIDTH-1 downto 0); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; shared variable SB_mem : work.ScoreBoardPkg_MemoryTest.ScoreBoardPType; signal stim_done, mem_check_done, check_done, test_done : std_logic := '0'; @@ -69,7 +69,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test4 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS ) @@ -86,10 +86,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -186,7 +186,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 0 - Sequence Number Handling"); + SetAlertLogName("rtps_discovery_module - Level 0 - Sequence Number Handling"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -1774,10 +1774,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -1785,7 +1785,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -1824,8 +1824,8 @@ begin output_check_prc : process(all) begin if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test5.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test5.vhd similarity index 91% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test5.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test5.vhd index a42d743..f42e8b3 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test5.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test5.vhd @@ -10,15 +10,15 @@ use work.user_config.all; use work.rtps_config_package.all; use work.rtps_test_package.all; --- This testbench tests the stale participant handling of the rtps_builtin_endpoint. It does so by checking for the Participant Unmatch Frame. +-- This testbench tests the stale participant handling of the rtps_discovery_module. It does so by checking for the Participant Unmatch Frame. -- It first matches 3 Participants: Participant 0 with default lease duration 100s, Participant 1 with lease duration 10s, and Participant 2 with lease duration 30s. -- After matching the time is artificially progressed to 15s (from 0s), and the removal of Participant 1 is checked. Than the time is again artificially progressed to 101s -- and the removal of Participant 0 and 2 is checked (in that order). -entity L0_rtps_builtin_endpoint_test5 is +entity L0_rtps_discovery_module_test5 is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test5 is +architecture testbench of L0_rtps_discovery_module_test5 is -- *CONSTANT DECLARATION* constant MAX_REMOTE_PARTICIPANTS : natural := 3; @@ -28,16 +28,16 @@ architecture testbench of L0_rtps_builtin_endpoint_test5 is type TEST_RAM_TYPE is array (0 to (MAX_REMOTE_PARTICIPANTS*PARTICIPANT_FRAME_SIZE)-1) of std_logic_vector(WORD_WIDTH-1 downto 0); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; signal stim_done, check_done, test_done : std_logic := '0'; signal test_time : TIME_TYPE := TIME_ZERO; @@ -65,7 +65,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test5 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS ) @@ -82,10 +82,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -163,7 +163,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 0 - Stale Participant Handling"); + SetAlertLogName("rtps_discovery_module - Level 0 - Stale Participant Handling"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -308,10 +308,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -319,7 +319,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -358,8 +358,8 @@ begin output_check_prc : process(all) begin if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test6.vhd b/src/Tests/Level_0/L0_rtps_discovery_module_test6.vhd similarity index 91% rename from src/Tests/Level_0/L0_rtps_builtin_endpoint_test6.vhd rename to src/Tests/Level_0/L0_rtps_discovery_module_test6.vhd index afa03f6..1571999 100644 --- a/src/Tests/Level_0/L0_rtps_builtin_endpoint_test6.vhd +++ b/src/Tests/Level_0/L0_rtps_discovery_module_test6.vhd @@ -14,25 +14,25 @@ use work.rtps_test_package.all; -- The testbench matches 2 remote Participants, P0 and P1. P0 sends an automatic liveliness assertion, while P1 sends a manual liveliness assertion. -- P0 also sends a manual liveliness assertion with extra Bytes. -entity L0_rtps_builtin_endpoint_test6 is +entity L0_rtps_discovery_module_test6 is end entity; -architecture testbench of L0_rtps_builtin_endpoint_test6 is +architecture testbench of L0_rtps_discovery_module_test6 is -- *TYPE DECLARATION* type TEST_STAGE_TYPE is (IDLE, BUSY); -- *SIGNAL DECLARATION* - signal clk, in_empty, rd_sig, last_word_in, last_word_out_ue: std_logic := '0'; + signal clk, in_empty, rd_sig, last_word_in, last_word_out_rtps: std_logic := '0'; signal reset : std_logic := '1'; - signal wr_ue, full_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal wr_rtps, full_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent : std_logic := '0'; signal cnt_stim : natural := 0; signal start : std_logic := '0'; - shared variable SB_out : work.ScoreBoardPkg_builtin_endpoint.ScoreBoardPType; + shared variable SB_out : work.ScoreBoardPkg_discovery_module.ScoreBoardPType; signal stim_done, check_done, mem_check : std_logic := '0'; -- *FUNCTION DECLARATION* @@ -52,7 +52,7 @@ architecture testbench of L0_rtps_builtin_endpoint_test6 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => 2 ) @@ -69,10 +69,10 @@ begin -- FROM USER ENDPOINT alive => (others => '0'), -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue, + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps, -- RTPS OUTPUT full_ro => '0', wr_ro => open, @@ -120,7 +120,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 0 - Remote Liveliness Assertion Handling"); + SetAlertLogName("rtps_discovery_module - Level 0 - Remote Liveliness Assertion Handling"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); @@ -285,10 +285,10 @@ begin endpoint_full_prc : process begin - full_ue <= (others => '0'); - wait until (or wr_ue) = '1'; + full_rtps <= (others => '0'); + wait until (or wr_rtps) = '1'; wait until rising_edge(clk); - full_ue <= (others => '1'); + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -296,7 +296,7 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "Endpoint FIFO write signal high while full signal high", ERROR); end if; end process; @@ -336,8 +336,8 @@ begin begin check_done <= '0'; if rising_edge(clk) then - if (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - SB_out.Check(wr_ue & last_word_out_ue & data_out_ue); + if (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + SB_out.Check(wr_rtps & last_word_out_rtps & data_out_rtps); end if; if (stim_done = '1' and SB_out.empty) then check_done <= '1'; diff --git a/src/Tests/Level_0/L0_rtps_handler_test1.vhd b/src/Tests/Level_0/L0_rtps_handler_test1.vhd index ef8bf1b..ebb5fc3 100644 --- a/src/Tests/Level_0/L0_rtps_handler_test1.vhd +++ b/src/Tests/Level_0/L0_rtps_handler_test1.vhd @@ -88,9 +88,9 @@ architecture testbench of L0_rtps_handler_test1 is type TEST_STAGE_TYPE is (IDLE, BUSY); -- *SIGNAL DECLARATION* - signal clk, reset, in_empty, rd_sig, full_be, wr_be, last_word_out_be, last_word_out_ue : std_logic := '0'; - signal full_ue, wr_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_be, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal clk, reset, in_empty, rd_sig, full_dm, wr_dm, last_word_out_dm, last_word_out_rtps : std_logic := '0'; + signal full_rtps, wr_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_dm, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage, ref_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, reference : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent, packet_checked : std_logic := '0'; @@ -118,16 +118,16 @@ begin empty => in_empty or packet_sent, rd => rd_sig, data_in => data_in, - -- TO BUILTIN ENDPOINT - full_be => full_be, - wr_be => wr_be, - data_out_be => data_out_be, - last_word_out_be => last_word_out_be, + -- TO DISCOVERY MODULE + full_dm => full_dm, + wr_dm => wr_dm, + data_out_dm => data_out_dm, + last_word_out_dm => last_word_out_dm, -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps ); stimulus_prc : process @@ -1506,20 +1506,20 @@ begin fifo_ctl_prc : process begin in_empty <= '0'; - full_be <= '0'; - full_ue <= (others => '0'); + full_dm <= '0'; + full_rtps <= (others => '0'); wait until rising_edge(clk); in_empty <= '1'; - full_be <= '0'; - full_ue <= (others => '0'); + full_dm <= '0'; + full_rtps <= (others => '0'); wait until rising_edge(clk); in_empty <= '0'; - full_be <= '1'; - full_ue <= (others => '0'); + full_dm <= '1'; + full_rtps <= (others => '0'); wait until rising_edge(clk); in_empty <= '0'; - full_be <= '0'; - full_ue <= (others => '1'); + full_dm <= '0'; + full_rtps <= (others => '1'); wait until rising_edge(clk); end process; @@ -1527,8 +1527,8 @@ begin begin if rising_edge(clk) then alertif(in_empty = '1' and rd_sig = '1', "Input FIFO read signal high while empty signal high", ERROR); - alertif(full_be = '1' and wr_be = '1', "Builtin FIFO write signal high while full signal high", ERROR); - alertif(full_ue /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')), "User FIFO write signal high while full signal high", ERROR); + alertif(full_dm = '1' and wr_dm = '1', "DIscovery Module FIFO write signal high while full signal high", ERROR); + alertif(full_rtps /= (0 to NUM_ENDPOINTS-1 => '0') and (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')), "User FIFO write signal high while full signal high", ERROR); end if; end process; @@ -1586,11 +1586,11 @@ begin when BUSY => if (cnt_ref = reference.length) then ref_stage <= IDLE; - elsif (wr_be = '1') then - AffirmIfEqual(last_word_out_be & data_out_be, reference.last(cnt_ref) & reference.data(cnt_ref)); + elsif (wr_dm = '1') then + AffirmIfEqual(last_word_out_dm & data_out_dm, reference.last(cnt_ref) & reference.data(cnt_ref)); cnt_ref <= cnt_ref + 1; - elsif (wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - AffirmIfEqual(last_word_out_ue & data_out_ue, reference.last(cnt_ref) & reference.data(cnt_ref)); + elsif (wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + AffirmIfEqual(last_word_out_rtps & data_out_rtps, reference.last(cnt_ref) & reference.data(cnt_ref)); cnt_ref <= cnt_ref + 1; end if; end case; diff --git a/src/Tests/Level_0/L0_rtps_handler_test2.vhd b/src/Tests/Level_0/L0_rtps_handler_test2.vhd index 4e5075e..3831d2a 100644 --- a/src/Tests/Level_0/L0_rtps_handler_test2.vhd +++ b/src/Tests/Level_0/L0_rtps_handler_test2.vhd @@ -26,9 +26,9 @@ architecture testbench of L0_rtps_handler_test2 is type TEST_STAGE_TYPE is (IDLE, BUSY); -- *SIGNAL DECLARATION* - signal clk, reset, in_empty, rd_sig, full_be, wr_be, last_word_out_be, last_word_out_ue : std_logic := '0'; - signal full_ue, wr_ue : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); - signal data_in, data_out_be, data_out_ue : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); + signal clk, reset, in_empty, rd_sig, full_dm, wr_dm, last_word_out_dm, last_word_out_rtps : std_logic := '0'; + signal full_rtps, wr_rtps : std_logic_vector(0 to NUM_ENDPOINTS-1) := (others => '0'); + signal data_in, data_out_dm, data_out_rtps : std_logic_vector(WORD_WIDTH-1 downto 0) := (others => '0'); signal stim_stage, ref_stage : TEST_STAGE_TYPE := IDLE; shared variable stimulus, dummy : TEST_PACKET_TYPE := EMPTY_TEST_PACKET; signal packet_sent, packet_checked : std_logic := '0'; @@ -57,16 +57,16 @@ begin empty => in_empty or packet_sent, rd => rd_sig, data_in => data_in, - -- TO BUILTIN ENDPOINT - full_be => full_be, - wr_be => wr_be, - data_out_be => data_out_be, - last_word_out_be => last_word_out_be, + -- TO DISCOVERY MODULE + full_dm => full_dm, + wr_dm => wr_dm, + data_out_dm => data_out_dm, + last_word_out_dm => last_word_out_dm, -- TO USER ENDPOINT - full_ue => full_ue, - wr_ue => wr_ue, - data_out_ue => data_out_ue, - last_word_out_ue => last_word_out_ue + full_rtps => full_rtps, + wr_rtps => wr_rtps, + data_out_rtps => data_out_rtps, + last_word_out_rtps => last_word_out_rtps ); stimulus_prc : process @@ -119,8 +119,8 @@ begin Log("Initiating Test", INFO); in_empty <= '0'; - full_be <= '0'; - full_ue <= (others => '0'); + full_dm <= '0'; + full_rtps <= (others => '0'); start <= '0'; reset <= '1'; wait until rising_edge(clk); @@ -299,8 +299,8 @@ begin when BUSY => if (cnt_ref = dummy.length) then ref_stage <= IDLE; - elsif (wr_be = '1' or wr_ue /= (0 to NUM_ENDPOINTS-1 => '0')) then - AffirmIfEqual((wr_ue & wr_be), reference); + elsif (wr_dm = '1' or wr_rtps /= (0 to NUM_ENDPOINTS-1 => '0')) then + AffirmIfEqual((wr_rtps & wr_dm), reference); cnt_ref <= cnt_ref + 1; end if; end case; diff --git a/src/Tests/Level_1/L1_rtps_builtin_endpoint_test1.vhd b/src/Tests/Level_1/L1_rtps_discovery_module_test1.vhd similarity index 98% rename from src/Tests/Level_1/L1_rtps_builtin_endpoint_test1.vhd rename to src/Tests/Level_1/L1_rtps_discovery_module_test1.vhd index eba4214..d8bb22d 100644 --- a/src/Tests/Level_1/L1_rtps_builtin_endpoint_test1.vhd +++ b/src/Tests/Level_1/L1_rtps_discovery_module_test1.vhd @@ -10,7 +10,7 @@ use work.user_config.all; use work.rtps_config_package.all; use work.rtps_test_package.all; --- This testbench tests the rtps output of the builtin endpoint (Local Liveliness Assertion, Local Heartbeat Generation, Local Participant Announcement, Remote HEARTBEAT Response, Remote ACKNACK Response). +-- This testbench tests the rtps output of the Discovery Module (Local Liveliness Assertion, Local Heartbeat Generation, Local Participant Announcement, Remote HEARTBEAT Response, Remote ACKNACK Response). -- This test is a Level 1 Test (Meaning the input/output is not connected directly to the uut) in order to have output in the same format as the input of the system and allow us to compare using existing data generators. -- The testflow is as follows: -- * 0s @@ -73,10 +73,10 @@ use work.rtps_test_package.all; -- - Liveliness Assertion (Auto only) -entity L1_rtps_builtin_endpoint_test1 is +entity L1_rtps_discovery_module_test1 is end entity; -architecture testbench of L1_rtps_builtin_endpoint_test1 is +architecture testbench of L1_rtps_discovery_module_test1 is -- *TYPE DECLARATION* type TEST_STAGE_TYPE is (IDLE, BUSY); @@ -384,7 +384,7 @@ architecture testbench of L1_rtps_builtin_endpoint_test1 is begin -- Unit Under Test - uut : entity work.rtps_builtin_endpoint(arch) + uut : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => 1 ) @@ -401,10 +401,10 @@ begin -- FROM USER ENDPOINT alive => alive, -- TO USER ENDPOINT - full_ue => (others => '0'), - wr_ue => open, - data_out_ue => open, - last_word_out_ue => open, + full_rtps => (others => '0'), + wr_rtps => open, + data_out_rtps => open, + last_word_out_rtps => open, -- RTPS OUTPUT full_ro => fifo_full, wr_ro => fifo_wr, @@ -507,7 +507,7 @@ begin assert (TEST_STRING = "TEST_CONFIG_1") report "user_config incompatible with testbench." severity FAILURE; - SetAlertLogName("rtps_builtin_endpoint - Level 1 - RTPS Output"); + SetAlertLogName("rtps_discovery_module - Level 1 - RTPS Output"); SetAlertEnable(FAILURE, TRUE); SetAlertEnable(ERROR, TRUE); SetAlertEnable(WARNING, TRUE); diff --git a/src/Tests/Level_2/L2_Testbench_Lib2.vhd b/src/Tests/Level_2/L2_Testbench_Lib2.vhd index ab39b17..dcd166e 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib2.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib2.vhd @@ -213,12 +213,12 @@ begin rd_user => rd_rh(0), data_in_user => data_out_rh(0)(WORD_WIDTH-1 downto 0), last_word_in_user => data_out_rh(0)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_rtps(0), rd_meta => rd_rtps(0), data_in_meta => data_out_rtps(0)(WORD_WIDTH-1 downto 0), last_word_in_meta => data_out_rtps(0)(WORD_WIDTH), - -- TO RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- TO DISCOVERY MODULE (META TRAFFIC) alive_sig => alive_sig_rtps(0), -- RTPS OUTPUT wr_ro => wr_rtps_out(0), @@ -245,7 +245,7 @@ begin cc_seq_nr => cc_seq_nr_dds_rtps ); - rtps_builtin_endpoint_w_inst : entity Testbench_Lib2.rtps_builtin_endpoint(arch) + rtps_discovery_module_w_inst : entity Testbench_Lib2.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => 5, PREFER_MULTICAST => PREFER_MULTICAST_LOCATORS @@ -262,10 +262,10 @@ begin -- FROM USER ENDPOINTS alive => alive_sig_rtps(0 to NUM_ENDPOINTS-1), -- TO USER ENDPOINTS - full_ue => full_rtps(0 to NUM_ENDPOINTS-1), - wr_ue => wr_rtps(0 to NUM_ENDPOINTS-1), - data_out_ue => data_out_rbe, - last_word_out_ue => last_word_out_rbe, + full_rtps => full_rtps(0 to NUM_ENDPOINTS-1), + wr_rtps => wr_rtps(0 to NUM_ENDPOINTS-1), + data_out_rtps => data_out_rbe, + last_word_out_rtps => last_word_out_rbe, -- TO RTPS OUT full_ro => full_rtps_out(NUM_ENDPOINTS), wr_ro => wr_rtps_out(NUM_ENDPOINTS), @@ -284,16 +284,16 @@ begin empty => empty, rd => rd, data_in => data_in, - -- TO RTPS BUILTIN ENDPOINT - full_be => full_rh(NUM_ENDPOINTS), - wr_be => wr_rh(NUM_ENDPOINTS), - data_out_be => data_out_rh_be_s, - last_word_out_be => last_word_out_rh_be_s, + -- TO RTPS DISCOVERY MODULE + full_dm => full_rh(NUM_ENDPOINTS), + wr_dm => wr_rh(NUM_ENDPOINTS), + data_out_dm => data_out_rh_be_s, + last_word_out_dm => last_word_out_rh_be_s, -- TO RTPS ENDPOINT - full_ue => full_rh(0 to NUM_ENDPOINTS-1), - wr_ue => wr_rh(0 to NUM_ENDPOINTS-1), - data_out_ue => data_out_rh_ue_s, - last_word_out_ue => last_word_out_rh_ue_s + full_rtps => full_rh(0 to NUM_ENDPOINTS-1), + wr_rtps => wr_rh(0 to NUM_ENDPOINTS-1), + data_out_rtps => data_out_rh_ue_s, + last_word_out_rtps => last_word_out_rh_ue_s ); data_in_rh <= (NUM_ENDPOINTS => (last_word_out_rh_be_s & data_out_rh_be_s), others => (last_word_out_rh_ue_s & data_out_rh_ue_s)); diff --git a/src/Tests/Level_2/L2_Testbench_Lib3.vhd b/src/Tests/Level_2/L2_Testbench_Lib3.vhd index b0c7bc5..2c4a20e 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib3.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib3.vhd @@ -280,7 +280,7 @@ begin rd_user => rd_rh(0), data_in_user => data_out_rh(0)(WORD_WIDTH-1 downto 0), last_word_in_user => data_out_rh(0)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_rtps(0), rd_meta => rd_rtps(0), data_in_meta => data_out_rtps(0)(WORD_WIDTH-1 downto 0), @@ -302,7 +302,7 @@ begin last_word_out_hc => last_word_in_dds_rtps ); - rtps_builtin_endpoint_r_inst : entity Testbench_Lib3.rtps_builtin_endpoint(arch) + rtps_discovery_module_r_inst : entity Testbench_Lib3.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => 5, PREFER_MULTICAST => PREFER_MULTICAST_LOCATORS @@ -319,10 +319,10 @@ begin -- FROM USER ENDPOINTS alive => alive_sig_rtps(0 to NUM_ENDPOINTS-1), -- TO USER ENDPOINTS - full_ue => full_rtps(0 to NUM_ENDPOINTS-1), - wr_ue => wr_rtps(0 to NUM_ENDPOINTS-1), - data_out_ue => data_out_rbe, - last_word_out_ue => last_word_out_rbe, + full_rtps => full_rtps(0 to NUM_ENDPOINTS-1), + wr_rtps => wr_rtps(0 to NUM_ENDPOINTS-1), + data_out_rtps => data_out_rbe, + last_word_out_rtps => last_word_out_rbe, -- TO RTPS OUT full_ro => full_rtps_out(NUM_ENDPOINTS), wr_ro => wr_rtps_out(NUM_ENDPOINTS), @@ -341,16 +341,16 @@ begin empty => empty, rd => rd, data_in => data_in, - -- TO RTPS BUILTIN ENDPOINT - full_be => full_rh(NUM_ENDPOINTS), - wr_be => wr_rh(NUM_ENDPOINTS), - data_out_be => data_out_rh_be_s, - last_word_out_be => last_word_out_rh_be_s, + -- TO DISCOVERY MODULE + full_dm => full_rh(NUM_ENDPOINTS), + wr_dm => wr_rh(NUM_ENDPOINTS), + data_out_dm => data_out_rh_be_s, + last_word_out_dm => last_word_out_rh_be_s, -- TO RTPS ENDPOINT - full_ue => full_rh(0 to NUM_ENDPOINTS-1), - wr_ue => wr_rh(0 to NUM_ENDPOINTS-1), - data_out_ue => data_out_rh_ue_s, - last_word_out_ue => last_word_out_rh_ue_s + full_rtps => full_rh(0 to NUM_ENDPOINTS-1), + wr_rtps => wr_rh(0 to NUM_ENDPOINTS-1), + data_out_rtps => data_out_rh_ue_s, + last_word_out_rtps => last_word_out_rh_ue_s ); data_in_rh <= (NUM_ENDPOINTS => (last_word_out_rh_be_s & data_out_rh_be_s), others => (last_word_out_rh_ue_s & data_out_rh_ue_s)); diff --git a/src/Tests/Level_2/L2_testbench_Lib4.vhd b/src/Tests/Level_2/L2_testbench_Lib4.vhd index 008b469..c35c9b3 100644 --- a/src/Tests/Level_2/L2_testbench_Lib4.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib4.vhd @@ -150,16 +150,16 @@ begin empty => empty, rd => read, data_in => data_in, - -- TO BUILTIN ENDPOINT - full_be => full_firb_rh, - wr_be => write_rh_firb, - data_out_be => data_rh_firb(WORD_WIDTH-1 downto 0), - last_word_out_be => data_rh_firb(WORD_WIDTH), + -- TO DISCOVERY MODULE + full_dm => full_firb_rh, + wr_dm => write_rh_firb, + data_out_dm => data_rh_firb(WORD_WIDTH-1 downto 0), + last_word_out_dm => data_rh_firb(WORD_WIDTH), -- TO USER ENDPOINTS - full_ue => full_fire_rh, - wr_ue => write_rh_fire, - data_out_ue => data_rh_fire(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rh_fire(WORD_WIDTH) + full_rtps => full_fire_rh, + wr_rtps => write_rh_fire, + data_out_rtps => data_rh_fire(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_rh_fire(WORD_WIDTH) ); @@ -209,7 +209,7 @@ begin end generate; - rtps_builtin_endpoint_inst : entity work.rtps_builtin_endpoint(arch) + rtps_discovery_module_inst : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS, PREFER_MULTICAST => PREFER_MULTICAST_LOCATORS @@ -226,10 +226,10 @@ begin -- FROM USER ENDPOINTS alive => alive_re_rb, -- TO USER ENDPOINTS - full_ue => full_frbre_re, - wr_ue => write_rb_frbre, - data_out_ue => data_rb_frbre(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rb_frbre(WORD_WIDTH), + full_rtps => full_frbre_re, + wr_rtps => write_rb_frbre, + data_out_rtps => data_rb_frbre(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_rb_frbre(WORD_WIDTH), -- TO RTPS OUT full_ro => full_firo_rb, wr_ro => write_rb_firo, @@ -286,7 +286,7 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_frbre_re(i), rd_meta => read_re_frbre(i), data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), @@ -337,12 +337,12 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_frbre_re(i), rd_meta => read_re_frbre(i), data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), last_word_in_meta => data_frbre_re(i)(WORD_WIDTH), - -- TO RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- TO DISCOVERY MODULE (META TRAFFIC) alive_sig => alive_re_rb(i), -- RTPS OUTPUT full_ro => full_firo_re(i), diff --git a/src/Tests/Level_2/L2_testbench_Lib5.vhd b/src/Tests/Level_2/L2_testbench_Lib5.vhd index af90f01..2f8db4f 100644 --- a/src/Tests/Level_2/L2_testbench_Lib5.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib5.vhd @@ -172,16 +172,16 @@ begin empty => empty, rd => read, data_in => data_in, - -- TO BUILTIN ENDPOINT - full_be => full_firb_rh, - wr_be => write_rh_firb, - data_out_be => data_rh_firb(WORD_WIDTH-1 downto 0), - last_word_out_be => data_rh_firb(WORD_WIDTH), + -- TO DISCOVERY MODULE + full_dm => full_firb_rh, + wr_dm => write_rh_firb, + data_out_dm => data_rh_firb(WORD_WIDTH-1 downto 0), + last_word_out_dm => data_rh_firb(WORD_WIDTH), -- TO USER ENDPOINTS - full_ue => full_fire_rh, - wr_ue => write_rh_fire, - data_out_ue => data_rh_fire(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rh_fire(WORD_WIDTH) + full_rtps => full_fire_rh, + wr_rtps => write_rh_fire, + data_out_rtps => data_rh_fire(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_rh_fire(WORD_WIDTH) ); @@ -231,7 +231,7 @@ begin end generate; - rtps_builtin_endpoint_inst : entity work.rtps_builtin_endpoint(arch) + rtps_discovery_module_inst : entity work.rtps_discovery_module(arch) generic map ( MAX_REMOTE_PARTICIPANTS => MAX_REMOTE_PARTICIPANTS, PREFER_MULTICAST => PREFER_MULTICAST_LOCATORS @@ -248,10 +248,10 @@ begin -- FROM USER ENDPOINTS alive => alive_re_rb, -- TO USER ENDPOINTS - full_ue => full_frbre_re, - wr_ue => write_rb_frbre, - data_out_ue => data_rb_frbre(WORD_WIDTH-1 downto 0), - last_word_out_ue => data_rb_frbre(WORD_WIDTH), + full_rtps => full_frbre_re, + wr_rtps => write_rb_frbre, + data_out_rtps => data_rb_frbre(WORD_WIDTH-1 downto 0), + last_word_out_rtps => data_rb_frbre(WORD_WIDTH), -- TO RTPS OUT full_ro => full_firo_rb, wr_ro => write_rb_firo, @@ -308,7 +308,7 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_frbre_re(i), rd_meta => read_re_frbre(i), data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), @@ -359,12 +359,12 @@ begin rd_user => read_re_fire(i), data_in_user => data_fire_re(i)(WORD_WIDTH-1 downto 0), last_word_in_user => data_fire_re(i)(WORD_WIDTH), - -- FROM RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta => empty_frbre_re(i), rd_meta => read_re_frbre(i), data_in_meta => data_frbre_re(i)(WORD_WIDTH-1 downto 0), last_word_in_meta => data_frbre_re(i)(WORD_WIDTH), - -- TO RTPS_BUILTIN_ENDPOINT (META TRAFFIC) + -- TO DISCOVERY MODULE (META TRAFFIC) alive_sig => alive_re_rb(i), -- RTPS OUTPUT full_ro => full_firo_re(i), diff --git a/src/Tests/ScoreBoard_builtin_endpoint.vhd b/src/Tests/ScoreBoard_discovery_module.vhd similarity index 86% rename from src/Tests/ScoreBoard_builtin_endpoint.vhd rename to src/Tests/ScoreBoard_discovery_module.vhd index c0f0304..57fd08c 100644 --- a/src/Tests/ScoreBoard_builtin_endpoint.vhd +++ b/src/Tests/ScoreBoard_discovery_module.vhd @@ -7,7 +7,7 @@ context osvvm.OsvvmContext; use work.rtps_test_package.all; -package ScoreBoardPkg_builtin_endpoint is new osvvm.ScoreboardGenericPkg +package ScoreBoardPkg_discovery_module is new osvvm.ScoreboardGenericPkg generic map ( ExpectedType => std_logic_vector, ActualType => std_logic_vector, diff --git a/src/Tests/testbench.pro b/src/Tests/testbench.pro index 2d3ccd5..825ce07 100644 --- a/src/Tests/testbench.pro +++ b/src/Tests/testbench.pro @@ -19,7 +19,7 @@ analyze ../FWFT_FIFO_cfg.vhd analyze ../mem_ctrl.vhd analyze ../dp_mem_ctrl.vhd analyze ../rtps_handler.vhd -analyze ../rtps_builtin_endpoint.vhd +analyze ../rtps_discovery_module.vhd analyze ../rtps_out.vhd analyze ../rtps_reader.vhd analyze ../rtps_writer.vhd @@ -53,7 +53,7 @@ analyze FWFT_FIFO_cfg.vhd analyze ../mem_ctrl.vhd analyze ../dp_mem_ctrl.vhd analyze ../rtps_handler.vhd -analyze ../rtps_builtin_endpoint.vhd +analyze ../rtps_discovery_module.vhd analyze ../rtps_out.vhd analyze ../rtps_reader.vhd analyze ../rtps_writer.vhd @@ -87,7 +87,7 @@ analyze ../FWFT_FIFO_cfg.vhd analyze ../mem_ctrl.vhd analyze ../dp_mem_ctrl.vhd analyze ../rtps_handler.vhd -analyze ../rtps_builtin_endpoint.vhd +analyze ../rtps_discovery_module.vhd analyze ../rtps_out.vhd analyze ../rtps_reader.vhd analyze ../rtps_writer.vhd @@ -122,7 +122,7 @@ analyze FWFT_FIFO_cfg.vhd analyze ../mem_ctrl.vhd analyze ../dp_mem_ctrl.vhd analyze ../rtps_handler.vhd -analyze ../rtps_builtin_endpoint.vhd +analyze ../rtps_discovery_module.vhd analyze ../rtps_out.vhd analyze ../rtps_reader.vhd analyze ../rtps_writer.vhd @@ -158,7 +158,7 @@ analyze FWFT_FIFO_cfg.vhd analyze ../mem_ctrl.vhd analyze ../dp_mem_ctrl.vhd analyze ../rtps_handler.vhd -analyze ../rtps_builtin_endpoint.vhd +analyze ../rtps_discovery_module.vhd analyze ../rtps_out.vhd analyze ../rtps_reader.vhd analyze ../rtps_writer.vhd @@ -177,18 +177,18 @@ analyze Type2_writer_interface.vhd analyze Type2_key_holder.vhd analyze test_key_holder.vhd analyze ScoreBoard_test_memory.vhd -analyze ScoreBoard_builtin_endpoint.vhd +analyze ScoreBoard_discovery_module.vhd analyze Level_0/L0_rtps_handler_test1.vhd analyze Level_0/L0_rtps_handler_test2.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test1_uc.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test1_mc.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test2.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test3.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test4.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test5.vhd -analyze Level_0/L0_rtps_builtin_endpoint_test6.vhd +analyze Level_0/L0_rtps_discovery_module_test1_uc.vhd +analyze Level_0/L0_rtps_discovery_module_test1_mc.vhd +analyze Level_0/L0_rtps_discovery_module_test2.vhd +analyze Level_0/L0_rtps_discovery_module_test3.vhd +analyze Level_0/L0_rtps_discovery_module_test4.vhd +analyze Level_0/L0_rtps_discovery_module_test5.vhd +analyze Level_0/L0_rtps_discovery_module_test6.vhd analyze Level_0/L0_rtps_out_test1.vhd -analyze Level_1/L1_rtps_builtin_endpoint_test1.vhd +analyze Level_1/L1_rtps_discovery_module_test1.vhd analyze Level_0/L0_mem_ctrl_test1.vhd analyze Level_0/L0_rtps_reader_test1_vrk.vhd analyze Level_0/L0_rtps_reader_test1_vbk.vhd @@ -259,14 +259,14 @@ simulate L0_rtps_handler_test1 simulate L0_rtps_handler_test2 simulate L0_rtps_out_test1 simulate L0_mem_ctrl_test1 -simulate L0_rtps_builtin_endpoint_test1_uc -simulate L0_rtps_builtin_endpoint_test1_mc -simulate L0_rtps_builtin_endpoint_test2 -simulate L0_rtps_builtin_endpoint_test3 -simulate L0_rtps_builtin_endpoint_test4 -simulate L0_rtps_builtin_endpoint_test5 -simulate L0_rtps_builtin_endpoint_test6 -simulate L1_rtps_builtin_endpoint_test1 +simulate L0_rtps_discovery_module_test1_uc +simulate L0_rtps_discovery_module_test1_mc +simulate L0_rtps_discovery_module_test2 +simulate L0_rtps_discovery_module_test3 +simulate L0_rtps_discovery_module_test4 +simulate L0_rtps_discovery_module_test5 +simulate L0_rtps_discovery_module_test6 +simulate L1_rtps_discovery_module_test1 simulate L0_rtps_reader_test1_vrk simulate L0_rtps_reader_test1_vbk simulate L0_rtps_reader_test2_vrk diff --git a/src/Type_CDR_ref.txt b/src/Type_CDR_ref.txt index dd1d5a7..bbdac96 100644 --- a/src/Type_CDR_ref.txt +++ b/src/Type_CDR_ref.txt @@ -105,4 +105,4 @@ message.TestString = "HelloWorld"; 6f 57 6f 72 | TestString[8] | TestString[9] | TestString[10]|###############| 6c 64 00 - + +---------------------------------------------------------------+ diff --git a/src/rtps_builtin_endpoint.vhd b/src/rtps_discovery_module.vhd similarity index 99% rename from src/rtps_builtin_endpoint.vhd rename to src/rtps_discovery_module.vhd index 0363600..ab50cc2 100644 --- a/src/rtps_builtin_endpoint.vhd +++ b/src/rtps_discovery_module.vhd @@ -10,7 +10,7 @@ use work.rtps_package.all; use work.user_config.all; use work.rtps_config_package.all; -entity rtps_builtin_endpoint is +entity rtps_discovery_module is generic ( PREFER_MULTICAST : boolean := FALSE; MAX_REMOTE_PARTICIPANTS : natural := 50 @@ -25,13 +25,13 @@ entity rtps_builtin_endpoint is rd : out std_logic; data_in : in std_logic_vector(WORD_WIDTH-1 downto 0); last_word_in : in std_logic; - -- FROM USER ENDPOINTS + -- FROM RTPS ENDPOINTS alive : in std_logic_vector(0 to NUM_ENDPOINTS-1); - -- TO USER ENDPOINTS - full_ue : in std_logic_vector(0 to NUM_ENDPOINTS-1); - wr_ue : out std_logic_vector(0 to NUM_ENDPOINTS-1); - data_out_ue : out std_logic_vector(WORD_WIDTH-1 downto 0); -- one-to-many (Multicast) Connection - last_word_out_ue : out std_logic; -- one-to-many (Multicast) Connection + -- TO RTPS ENDPOINTS + full_rtps : in std_logic_vector(0 to NUM_ENDPOINTS-1); + wr_rtps : out std_logic_vector(0 to NUM_ENDPOINTS-1); + data_out_rtps : out std_logic_vector(WORD_WIDTH-1 downto 0); -- one-to-many (Multicast) Connection + last_word_out_rtps : out std_logic; -- one-to-many (Multicast) Connection -- RTPS OUTPUT full_ro : in std_logic; wr_ro : out std_logic; @@ -40,7 +40,7 @@ entity rtps_builtin_endpoint is ); end entity; -architecture arch of rtps_builtin_endpoint is +architecture arch of rtps_discovery_module is --*****CONSTANT DECLARATION***** -- Max Serialized Payload Size in a UDP Stream (Bytes) [MAX_PAYLOAD(65536) - IPv4_HEADER(20) - UDP_HEADER(8) - RTPS_HEADER(20) - DATA_HEADER(24)] @@ -533,33 +533,33 @@ begin -- This process connects the Intermediate Output Signals to the actual output FIFOs output_prc : process(all) begin - wr_ue <= (others => '0'); + wr_rtps <= (others => '0'); wr_ro <= '0'; case (stage) is when INFORM_ENDPOINTS_MATCH => if (wr_sig = '1') then - wr_ue <= endpoint_mask; + wr_rtps <= endpoint_mask; end if; when INFORM_ENDPOINTS_UNMATCH => if (wr_sig = '1') then - wr_ue <= not endpoint_mask; + wr_rtps <= not endpoint_mask; end if; when INFORM_ENDPOINTS_PARTICIPANT_UNMATCH => if (wr_sig = '1') then - wr_ue <= (others => '1'); + wr_rtps <= (others => '1'); end if; when LIVELINESS_UPDATE => if (wr_sig = '1') then - wr_ue <= endpoint_mask; + wr_rtps <= endpoint_mask; end if; when others => wr_ro <= wr_sig; end case; end process; - data_out_ue <= data_out_sig; + data_out_rtps <= data_out_sig; data_out_ro <= data_out_sig; - last_word_out_ue <= last_word_out_sig; + last_word_out_rtps <= last_word_out_sig; last_word_out_ro <= last_word_out_sig; -- Main State Machine @@ -1432,7 +1432,7 @@ begin -- DONE stage_next <= SKIP_PACKET; -- Output FIFO Guard - elsif ((endpoint_mask and full_ue) = (full_ue'range => '0')) then + elsif ((endpoint_mask and full_rtps) = (full_rtps'range => '0')) then wr_sig <= '1'; case (cnt) is @@ -2114,7 +2114,7 @@ begin when PID_BUILTIN_ENDPOINT_QOS => -- Only relevant for Participant Discovery Protocol -- NOTE: As of DDSI-RTPS 2.3 the PID_BUILTIN_ENDPOINT_QOS only contains the BEST_EFFORT_PARTICIPANT_MESSAGE_DATA_READER bit - -- Due to how the built-in Endpoint is behaving, this bit as no impact in our case and we can safely ignore it. + -- Due to how the built-in Endpoint is behaving, this bit has no impact in our case and we can safely ignore it. -- Ignore null; when PID_TOPIC_NAME => @@ -3121,7 +3121,7 @@ begin assert check_mask(current_pmf, PMF_DEFAULT_IPV4_ADDR_FLAG or PMF_UDP_PORT_FLAG) severity FAILURE; -- Output FIFO Guard - if ((endpoint_mask and full_ue) = (full_ue'range => '0')) then + if ((endpoint_mask and full_rtps) = (full_rtps'range => '0')) then wr_sig <= '1'; case (cnt) is @@ -3195,7 +3195,7 @@ begin end if; when INFORM_ENDPOINTS_UNMATCH => -- Output FIFO Guard - if (((not endpoint_mask) and full_ue) = (full_ue'range => '0')) then + if (((not endpoint_mask) and full_rtps) = (full_rtps'range => '0')) then wr_sig <= '1'; case (cnt) is @@ -3228,7 +3228,7 @@ begin end if; when INFORM_ENDPOINTS_PARTICIPANT_UNMATCH => -- Output FIFO Guard - if (full_ue = (full_ue'range => '0')) then + if (full_rtps = (full_rtps'range => '0')) then wr_sig <= '1'; case (cnt) is diff --git a/src/rtps_handler.vhd b/src/rtps_handler.vhd index e4156a2..b667f07 100644 --- a/src/rtps_handler.vhd +++ b/src/rtps_handler.vhd @@ -19,16 +19,16 @@ entity rtps_handler is empty : in std_logic; rd : out std_logic; data_in : in std_logic_vector(WORD_WIDTH-1 downto 0); - -- TO BUILTIN ENDPOINT - full_be : in std_logic; - wr_be : out std_logic; - data_out_be : out std_logic_vector(WORD_WIDTH-1 downto 0); - last_word_out_be : out std_logic; - -- TO USER ENDPOINTS - full_ue : in std_logic_vector(0 to NUM_ENDPOINTS-1); - wr_ue : out std_logic_vector(0 to NUM_ENDPOINTS-1); - data_out_ue : out std_logic_vector(WORD_WIDTH-1 downto 0); -- one-to-many (Multicast) Connection - last_word_out_ue : out std_logic -- one-to-many (Multicast) Connection + -- TO DISCOVERY MODULE + full_dm : in std_logic; + wr_dm : out std_logic; + data_out_dm : out std_logic_vector(WORD_WIDTH-1 downto 0); + last_word_out_dm : out std_logic; + -- TO RTPS ENDPOINTS + full_rtps : in std_logic_vector(0 to NUM_ENDPOINTS-1); + wr_rtps : out std_logic_vector(0 to NUM_ENDPOINTS-1); + data_out_rtps : out std_logic_vector(WORD_WIDTH-1 downto 0); -- one-to-many (Multicast) Connection + last_word_out_rtps : out std_logic -- one-to-many (Multicast) Connection ); end entity; @@ -160,21 +160,21 @@ begin output_prc : process(all) begin --Write Enable Signal - wr_be <= '0'; - wr_ue <= (others => '0'); + wr_dm <= '0'; + wr_rtps <= (others => '0'); if (wr_sig = '1') then if (builtin_endpoint = '1') then - wr_be <= '1'; + wr_dm <= '1'; else - wr_ue <= user_endpoints; + wr_rtps <= user_endpoints; end if; end if; end process; - data_out_be <= data_out_sig; - data_out_ue <= data_out_sig; - last_word_out_be <= last_word_out_sig; - last_word_out_ue <= last_word_out_sig; + data_out_dm <= data_out_sig; + data_out_rtps <= data_out_sig; + last_word_out_dm <= last_word_out_sig; + last_word_out_rtps <= last_word_out_sig; -- This process is responsible for reading the input FIFO 4-Byte Word aligned. -- Even though DDSI-RTPS 2.3 defines that Submessages begin at 4-byte boundries, meaning that the @@ -1031,7 +1031,7 @@ begin when PUSH_PAYLOAD_HEADER => -- NOTE: This is a synchronised push on potentially multiple output FIFOs. If one FIFO gets full, the process stalls for all FIFOs. -- Output FIFO Guard - if (builtin_endpoint = '1' and full_be = '0') or (builtin_endpoint = '0' and ((user_endpoints and full_ue) = (user_endpoints'range => '0'))) then + if (builtin_endpoint = '1' and full_dm = '0') or (builtin_endpoint = '0' and ((user_endpoints and full_rtps) = (user_endpoints'range => '0'))) then case (cnt) is -- OPCODE (Submessage ID), Submessage Flags, UPDv4 Source Port @@ -1108,7 +1108,7 @@ begin when PUSH_PAYLOAD => -- NOTE: This is a synchronised push on potentially multiple output FIFOs. If one FIFO gets full, the process stalls for all FIFOs. -- Output FIFO Guard - if (builtin_endpoint = '1' and full_be = '0') or (builtin_endpoint = '0' and ((user_endpoints and full_ue) = (user_endpoints'range => '0'))) then + if (builtin_endpoint = '1' and full_dm = '0') or (builtin_endpoint = '0' and ((user_endpoints and full_rtps) = (user_endpoints'range => '0'))) then case (opcode) is when SID_HEARTBEAT => diff --git a/src/rtps_package.vhd b/src/rtps_package.vhd index 1e00b4a..7829f1c 100644 --- a/src/rtps_package.vhd +++ b/src/rtps_package.vhd @@ -450,7 +450,7 @@ package rtps_package is constant DISC_BUILTIN_ENDPOINT_TOPICS_DETECTOR : natural := 29; -- *BUILTIN ENDPOINT QOS BITMASK* - -- XXX: We use some of the unused bits of the 32-bit bitmask when stored in the buffer for internal purposes. (see "builtin_endpoint" Entity) + -- XXX: We use some of the unused bits of the 32-bit bitmask when stored in the buffer for internal purposes. (see "rtps_discovery_module" Entity) constant BEST_EFFORT_PARTICIPANT_MESSAGE_DATA_READER : natural := 0; -- *PARTICIPANT MESSAGE KIND* diff --git a/src/rtps_reader.vhd b/src/rtps_reader.vhd index 90e20bd..c95bf18 100644 --- a/src/rtps_reader.vhd +++ b/src/rtps_reader.vhd @@ -37,7 +37,7 @@ entity rtps_reader is rd_user : out std_logic; data_in_user : in std_logic_vector(WORD_WIDTH-1 downto 0); last_word_in_user : in std_logic; - -- FROM RTPS BUILTIN ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta : in std_logic; rd_meta : out std_logic; data_in_meta : in std_logic_vector(WORD_WIDTH-1 downto 0); diff --git a/src/rtps_test_package.vhd b/src/rtps_test_package.vhd index a320052..6c31f78 100644 --- a/src/rtps_test_package.vhd +++ b/src/rtps_test_package.vhd @@ -21,7 +21,7 @@ package rtps_test_package is constant RESULTS_FILE : string := "./Test_Results.txt"; -- Frame Sizes have to be specified, so that direct memory probing is possible - -- rtps_builtin_endpoint Participant Frame Size + -- rtps_discovery_module Participant Frame Size constant PARTICIPANT_FRAME_SIZE : natural := 24; -- rtps_reader Endpoint Frame Size (RELIABLE=TRUE) constant WRITER_ENDPOINT_FRAME_SIZE_A : natural := 14; @@ -202,7 +202,7 @@ package rtps_test_package is match : MATCH_TYPE; -- Denotes the Position in the Memory of this Participant Data nr : natural; - -- Denotes which locator is to be used (Same as PREFER_MULTICAST generic of rtps_builtin_endpoint) + -- Denotes which locator is to be used (Same as PREFER_MULTICAST generic of rtps_discovery_module) PREFER_MULTICAST : boolean; end record; @@ -490,7 +490,7 @@ package rtps_test_package is -- Generates RTPS_HANDLER output -- ref RTPS Submessage -- loc Source Locator of RTPS Submessage - -- is_meta Indicates if the RTPS Submessage is metatraffic (Destined for Built-in Endpoints) + -- is_meta Indicates if the RTPS Submessage is metatraffic (Destined for Discovery Module) -- ts Source Timestamp of RTPS Submessage -- src_guid Source GUID of RTPS Submessage -- output Destination of generated output @@ -501,14 +501,14 @@ package rtps_test_package is procedure gen_rtps_handler_out(ref : in RTPS_SUBMESSAGE_TYPE; endpoint : ENDPOINT_DATA_TYPE; output : inout TEST_PACKET_TYPE); - -- *RTPS_BUILTIN_ENDPOINT* - -- Generate a rtps_builtin_endpoint memory Participant Frame based on "ref". + -- *DISCOVERY MODULE* + -- Generate a rtps_discovery_module memory Participant Frame based on "ref". function gen_participant_mem_frame (ref : PARTICIPANT_DATA_TYPE) return TEST_PARTICIPANT_MEMORY_FRAME_TYPE; - -- Writes a rtps_builtin_endpoint Endpoint Match Frame based on "ref" to "output" + -- Writes a rtps_discovery_module Endpoint Match Frame based on "ref" to "output" procedure gen_endpoint_match_frame( ref : in ENDPOINT_DATA_TYPE; output : inout TEST_PACKET_TYPE); - -- Writes a rtps_builtin_endpoint Participant Match Frame based on "ref" to "output" + -- Writes a rtps_discovery_module Participant Match Frame based on "ref" to "output" procedure gen_participant_match_frame( ref : in PARTICIPANT_DATA_TYPE; output : inout TEST_PACKET_TYPE); - -- Writes a rtps_builtin_endpoint Endpoint Liveliness Update Frame based on "ref" to "output" + -- Writes a rtps_discovery_module Endpoint Liveliness Update Frame based on "ref" to "output" procedure gen_liveliness_update_frame( ref : in PARTICIPANT_DATA_TYPE; output : inout TEST_PACKET_TYPE); @@ -577,7 +577,7 @@ package rtps_test_package is -- n Unsigned Value of generated SLV -- width Width of generated SLV function int(n : integer; width : natural) return std_logic_vector; - -- to_string Function for ScoreBoardPkg_builtin_endpoint + -- to_string Function for ScoreBoardPkg_discovery_module function to_string1 (input : std_logic_vector) return string; -- Find first valid Locator of Particiapnt Data -- ref Participant Data to extract Locator from diff --git a/src/rtps_writer.vhd b/src/rtps_writer.vhd index a04734a..cfe7711 100644 --- a/src/rtps_writer.vhd +++ b/src/rtps_writer.vhd @@ -40,12 +40,12 @@ entity rtps_writer is rd_user : out std_logic; data_in_user : in std_logic_vector(WORD_WIDTH-1 downto 0); last_word_in_user : in std_logic; - -- TO/FROM RTPS BUILTIN ENDPOINT (META TRAFFIC) + -- FROM DISCOVERY MODULE (META TRAFFIC) empty_meta : in std_logic; rd_meta : out std_logic; data_in_meta : in std_logic_vector(WORD_WIDTH-1 downto 0); last_word_in_meta : in std_logic; - -- TO RTPS BUILTIN ENDPOINT (META TRAFFIC) + -- TO DISCOVERY MODULE (META TRAFFIC) alive_sig : out std_logic; -- RTPS OUTPUT full_ro : in std_logic; diff --git a/syn/DE10-Nano/top.qsf b/syn/DE10-Nano/top.qsf index 680f90b..1c547d8 100644 --- a/syn/DE10-Nano/top.qsf +++ b/syn/DE10-Nano/top.qsf @@ -73,7 +73,7 @@ set_global_assignment -name VHDL_FILE ../rtps_reader_syn.vhd -hdl_version VHDL_2 set_global_assignment -name VHDL_FILE ../../src/rtps_reader.vhd -hdl_version VHDL_2008 set_global_assignment -name VHDL_FILE ../rtps_writer_syn.vhd -hdl_version VHDL_2008 set_global_assignment -name VHDL_FILE ../../src/rtps_writer.vhd -hdl_version VHDL_2008 -set_global_assignment -name VHDL_FILE ../../src/rtps_builtin_endpoint.vhd -hdl_version VHDL_2008 +set_global_assignment -name VHDL_FILE ../../src/rtps_discovery_module.vhd -hdl_version VHDL_2008 set_global_assignment -name VHDL_FILE ../../src/rtps_handler.vhd -hdl_version VHDL_2008 set_global_assignment -name VHDL_FILE ../../src/rtps_out.vhd -hdl_version VHDL_2008 set_global_assignment -name VHDL_FILE ../test5.vhd -hdl_version VHDL_2008