Commit Graph

116 Commits

Author SHA1 Message Date
Greek
c3b656c654 Insert Instances in KEY_HASH numerical order
in order to support the read_next_instance/take_next_instance
operations, the instances have to have a a logical order. Whie the
previous implementation did have a logical order for inserted instances
(Since they are added in a linked list), we need to support relative
ordering also for non-inserted instances (acording to DDS Spec), so we
just order them in ascending order.
2021-01-22 13:24:37 +01:00
Greek
f152abc373 Remove GENERATION_COUNTERS Option
Generation Counters are always needed (e.g. for the calculation of the
view_state, since they are dependent on the reading of samples of the
last generation). As such, the Generation Counters were "converted" to
mandatory fields.
2021-01-22 12:01:16 +01:00
Greek
bdb397ae7d Major History Cache/DDS Endpoint Redesign
It was decided to connect the DDS Endpoint directly to the RTPS
Endpoint. The history_cache Entity will be converted to a generic
History Cache acording to the RTPS Specification.
Because of consistency requirements the implementation was changed to a
single process/single port RAM design.
This should fully (blindly) implement the RTPS Reader side of the DDS
Entity.
2021-01-21 12:51:39 +01:00
Greek
f2826ddd20 Change Sample Memory Format
The Sample Memory was changed to contain only the Instance Memory
Address instead of the whole Key Hash. This simplifies the B process and
reduces memory footprint.
The instance memory process was also updated to handle the conditional
fields defined in the previous commit.
2021-01-17 21:01:15 +01:00
Greek
7e84a15d54 Redo Blind Implementation of READER side (RTPS Endpoint & History Cache)
Redefined Sample Memory Format. The design decision was made to handle
most (if not all) of the DDS QOS inside the History Cache, which allows
storing needed information in a more efiicient way.
A (dual port) Instance Memory was added into the HC, to support the QOS
operations.
This commit only implements the A side processes for the READER case.
RESOURCE_LIMITS_QOS, TIME_BASED_FILTER_QOS, and HISTORY_QOS are handled.
The inter-entity communication was changed to allow the HC to mark
parsed changes as rejected, and allow future re-transmission (in the
case of Reliable communication).
2021-01-17 10:49:38 +01:00
Greek
d2f466d588 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.
2021-01-16 18:14:40 +01:00
Greek
9ff39c6fea Remove HIGHEST_AVAILABLE_SN from local endpoint buffer 2021-01-11 18:45:37 +01:00
Greek
0574f9e69d Blind implementation of RTPS READER history Cache
Initial imeplementation of the RTPS Reader side of the history cache.
A key_hash_generator entity that will house the future MD5 hash
calculation was also added, along with the entity definition of
key_generator, which has to be implemented per-topic-type.
2021-01-11 12:21:36 +01:00
Greek
d0709db3a2 Blind implementation of READER rtps_endpoint 2021-01-11 12:18:59 +01:00
Greek
349db19edd Add True Dual Port RAM Implementation 2021-01-11 12:16:37 +01:00
Greek
dcd0b51c83 Code refactoring 2021-01-11 12:16:17 +01:00
Greek
35743b6f19 Add and update doc
Added documentation for MD5 HASH Cacluclation
Updated TODO and REF with new design decisions
2021-01-11 12:06:18 +01:00
Greek
a00f942826 change rtps_handler output format
While previously we sent the EntityID before the GUID Prefix (for some
reason), we changed swaped the order to allow easier decoding (by having
uniform format for all inputs)
2020-12-18 16:19:57 +01:00
Greek
3566eb1282 * Added rtps_builting_endpoint_test7
- Compiling and Passing
2020-12-06 23:55:28 +01:00
Greek
b9dff6bd71 * General Testbench Update
- Change Testbench naming Convention (File and Internal)
	- Remove Component declarations and use direct instantiating
* Add more static generated SLVs in rtps_config_package
2020-12-06 19:32:40 +01:00
Greek
929fbe5c80 * Update rtps_builtin_endpoint_test7
- Add participant Announcement check
* bug Fix in rtps_config_package
	- Fix Participant Announcement Generation
2020-12-06 18:25:19 +01:00
Greek
0f50e66942 * Add FWFT FIFO
* Added rtps_builtin_endpoint_test7 Level 1 testbench
	- Compiling and Passing
* Various Bug Fixes in rtps_builtin_endpoint
2020-12-06 17:26:15 +01:00
Greek
035ff837b0 * Add rtps_builtin_endpoint_test6
- Compiling and Passing
* Bug Fix in rtps_builtin_endpoint to make testbench pass
2020-12-03 12:56:37 +01:00
Greek
0ae131189b * partly revert commit ec4d44c
- Re-add max_participant_addr to prevent iterating through the whole memory area unnecessarily
	- Pointer points to last occuoied participant frame
2020-12-02 20:06:04 +01:00
Greek
e18c6e15ce * Bug fix input_prc of testbenches
- packet_sent signal of by one cycle
* Bug fix in rtps_handler
	- Exit condition of Gap Parsing
2020-12-02 17:02:13 +01:00
Greek
f8debfb086 * Add rtps_out Entity
- Use round robin to select output from endpoints and generate the expected uniform RTPS system output
* Add rtps_out_test1
	- Compiling and Passing
2020-12-02 14:21:27 +01:00
Greek
c1bb9a7bd2 * Re-design rtps_handler
- Input format is now a decoded UDP Packet (Documented in REF.txt)
	  This allows the whole RTPS system to use universal input and output.
2020-11-30 15:48:47 +01:00
Greek
533b50f0f9 * Added rtps_builtin_endpoint_test5 (Sequence Number Handling)
- Compiling and Passing
2020-11-30 12:52:49 +01:00
Greek
fec81c0b43 * Re-design rtps_builtin_endpoint
- Remove endpoint data from memory. Store only participant data
	- Write PARTICIPANT_UNMATCH_FRAME to all endpoints on remote participant removal
	- Write ENDPOINT_MATCH and ENDPOINT_UNMATCH frames for all remote endpoints
* Update testbenches to accomodate re-design
* Streamline scorboard reference pushing and testbench completion detection
2020-11-29 23:34:28 +01:00
Greek
1812eaa41a * Added rtps_builtin_test4
- Memory Handling
	- Compiling and Passing
2020-11-29 10:28:30 +01:00
Greek
eac58dd183 * rtps_builtin_endpoint in-memory fromat change
- Do not store local endpoint mask of remote endpoints
	- Send MATCH/UNMATCH Frames to all local Endpoinst (Not only previously matched)
2020-11-28 14:37:15 +01:00
Greek
c411cab887 * Added some testbench documentation 2020-11-28 13:19:05 +01:00
Greek
472af656b3 * Added rtps_builtin_endpoint_test3
- Compiling and Passing
2020-11-28 10:12:35 +01:00
Greek
02be7bb0a3 * Update rtps_test_package
- Unify get_loc functions
	- Overload functions with less parameters for defaults
	- Add Parameter Corruption Injection to Participant and Endpoint Data Generators
2020-11-27 12:34:28 +01:00
Greek
e358244578 * Add universal Test Result File for all Testbenches 2020-11-26 18:40:50 +01:00
Greek
32fd1ac31e * Add modelsim.ini File in gitignore
* Small change in rtps_builtin_endpoint_test1
	- Empty Signal was not toggling
* Added rtps_builtin_endpoint_test2
	- Compiling and Passing
* Update rtps_test_package
* Various bug Fixes in rtps_builtin_endpoint
2020-11-26 18:04:59 +01:00
Greek
521e2466f5 * Add new DEFAULT values in packages
* Add test RAM (Used for testbenches)
* Add Data Structures and functions to check memory contents
* Add rtps_builtin_endpoint_test1
	- Compiles and Passes
* Various bug fixes in rtps_builtin_endpoint to Pass testbench
2020-11-23 12:20:05 +01:00
Greek
16bd4558de * rtps_handler
- Handle case where packet end = submessage end (Avoid extra stage switches)
	- Fix last_word_out
	- Fix case where rd and empty are both high (INFO_TS)
* Modify Endpoint Frame format of GAP
	- Add dummy word to avoid complexity
* rtps_handler Testbench
	- Add check for last_word_out
2020-11-21 21:10:26 +01:00
Greek
e624ba4bac * Added rtps_handler_test2
- Complete and Passing
* Added timeout watchdogs
* Switched to OSVVM Logging
* Added Test Config
2020-11-18 11:24:03 +01:00
Greek
9b4a2ed073 * Various Bug Fixes in rtps_handler
* rtps_handler_test1 Complete and Passing
2020-11-17 15:26:20 +01:00
Greek
9c95e58e32 * Added OSVVM Library as Submodule
* Merged stimulus generation procedures to one single procedure
* Integrated OSVVM into testbench
* Generated OSVVM Project Script File
* Various Bug Fixes to compile testbench
2020-11-15 20:34:39 +01:00
Greek
a792cb7d8a * Added testbench package
* First rtps_handler Testbench
NOTE: Not tested/compiled.
2020-11-13 11:52:38 +01:00
Greek
c68caec626 * Package update
- New functions
	- Renames
	- New Definitions
* rtps_handler overhaul
	- Validity Check for Submessages
	- OVERREAD Guard
	- Info Timestamp parsed and sent to Endpoints
2020-11-13 11:44:17 +01:00
Greek
9acd98b32e * Update .gitignore
* Split rtps_package
2020-11-02 14:39:27 +01:00
Greek
ee9746272f * Before Quartus upgrade 2020-10-31 20:54:34 +01:00
Greek
51c90129c4 * Fix "MATCH_DEST_ENDPOINT" in rtps_handler 2020-10-29 15:18:28 +01:00
Greek
ce72c147a4 * Re-wrote "rtps_ahandler"
- Compiles
2020-10-29 11:31:41 +01:00
Greek
d61b9dc80a * rtps_builtin_endpoint compiles
* Single port RAM implementation for Altera
* Added Altera doc
2020-10-26 23:43:54 +01:00
Greek
63c8c8dccc * Restructure, cleaning and final documentation in builtin_endpoint 2020-10-25 23:32:24 +01:00
Greek
86a6d85be4 * rtps_package compiles 2020-10-24 22:51:50 +02:00
Greek
74515d0ecc * Code cleanup
* Varius fixes
* Code Comment
2020-10-24 17:00:52 +02:00
Greek
73dbc87c08 * Heartbeat sending
* Liveliness Assertion
* Participant Announcement
* Colapse all Header sending into single stage, remove RTPS header from pre-generated data
2020-10-22 15:00:35 +02:00
Greek
7dd316bbdd * Implemented GAP handling 2020-10-21 21:23:08 +02:00
Greek
b5b71bbfa9 * Implemented Participant Message Handling 2020-10-21 19:41:23 +02:00
Greek
127b371004 * Initialise all counters with 0 2020-10-21 17:30:39 +02:00