Simple Dual Port (Read and Write Port), and True Dual Port RAM
implementations, together with their respective Altera implementations
were added.
The 'arch' Architectures should have the same behaviour as the Altera
Implementations (single_port_ram was modified to achieve that)
The REGISTER_INSTANCE and LOOKUP_INSTANCE DDS Writer Operations return
an Instance Handle. Until now this instance Handle was returned via the
Data output interface of the dds_writer (ready_out, valid_out,
data_out_last_word_out).
This was changed, so that the dds_writer directly outputs the Instance
Handle via a dedicated port while asserting the done Signal.
This has the result that the <TYPENAME>_writer_wrapper no longer
"exports" data out signals from the dds_writer.
All relevant instantiations and testcases are changed accordingly
Until now it was assumed that a serialized key is the PLAIN_CDR2
Big Endian encoding of a <TYPENAME>KeyHolder Object [DDS_XTYPES v1.3, 7.6.8]
(I.e. the same blob that computes the MD5 key hash).
Taking other DDS implementations as reference (e.g. Cyclone DDS), it
seems they are using a normal Payload containing a KeyHolder(<TYPENAME>)
Object [DDS_XTYPES v1.3, 7.2.2.4.7] as the serialized key.
The Key Holder Template (together with the Type1 and Type2
implementations) were updated to reflect this change.
A bug fix were the Key Hash was not reset on a 'PUSH_SERIALIZED_KEY'
opcode was also fixed (together with the testbench).
Using seperately compiled Libraries we interconnect two systems, and
test their communication and interaction.
A bug in rtps_builtin_endpoint was fixed (were if only the SUB data was
to be sent, it was never actually sent).
Templates with the pre-defined code hull for the reader_wrapper,
writer_wrapper, and key_holder were created.
A "cookbook" of how to expand this TEMPLATES to create type specific IDL
conversions was also added.
The "code generation" is kept general to allow a code generator to
automatically produce this wrappers in the future.
The writer_wrapper was modified to allow changing the used endian via
generic. This allows to test Little Endian handling in simulations.
The Test2 are basically Test1 with Little Endian
By connecting the output of the writer_wrapper to the input of the
reader_wrapper we can effectively test the encoding/decoding.
Since the writer_wrapper only uses Big Endian we cannot test Little
Endian handling.
Previously the simaple info data was valid for exectly 1 clock cycle,
in which the user had to pull the 'get_data' signal if he wanted the
associated payload.
This change allows the user to control how long the sample info data is
shown.
The inline-QoS of PDP Packets is parsed, and Participants/Endpoints can
be unmatched by Unregister/Dispose Status Info Updates.
Test 1,2,3 was extended to test this functionality.
NOTE: PID_KEY_HASH is a requirement (at least for unmatching Endpoints),
as serialized key payloads are unsupported.
The GAP parsing logic was backported from RTPS Reader, so that the RTPS
Builtin Endpoint can parse all kind of GAP without making assumptions.
The Test 4 of the RTPS Builtin Endpoint was extended to test HAERTBEAT and GAP Handling of the RTPS
Builting endpoint, and Test 2 of the RTPS Reader was extended with an
additional Test (GAP with next expected SN not marked in bitmap)
Until now the ACKNACK Response of the RTPS Builtin Endpoint had an empty
Bitmap, effectively ACKing SNs, but never NACKing any (i.e. not
requesting any).
Similar to the RTPS Endpoints we request the next 32 SNs on every
ACKNACK Response.
The ParticipantMessageData SN Handling was also implemented.
Backport Memory Controller and Memory FSM from RTPS/DDS Endpoints to
RTPS Builtin Endpoint.
The Memory is now using a single linked list and the FSM uses Frame Field
Flags.
The main FSM uses check_time to initiate stale checks, and the stale
checks are done in the main FSM.
Testbench was modified to accomodate the changes (Previous L0 Test4 was
removed and integrated in L0 Test 1).
The REMOVE_WRITER DDS Operation of DDS Reader now generates Samples if
the Instance State changes.
Updated testbench.
Added checks for DATA_AVAILABLE communication status.
Test Sample Rejected Status Handling.
Test GET_SAMPLE_REJECTED_STATUS DDS Operation.
Extend Sample Rejected Status Kind by REJECTED_BY_PAYLOAD_MEMORY_LIMIT
Test the DDS READ, TAKE, READ_NEXT_SAMPLE, TAKE_NEXT_SAMPLE,
READ_INSTANCE, TAKE_INSTANCE, READ_NEXT_INSTANCE, TAKE_NEXT_INSTANCE
Operations.
Backport fixes to previous testbenches.
Change handling of DISPOSE Samples of unknown Instances.
Test RTPS GET_MIN_SN, GET_MAX_SN, GET_CACHE_CHANGE, REMOVE_CACHE_CHANGE,
ACK_CACHE_CHANGE, and NACK_CACHE_CHANGE Operations.
Test DDS Register, Unregister, Write, Dispose, and Lookup Instance
Operations.
The instantiation of the KEY related entities is moved outside the DDS
Endpoints (Currently only changed in DDS Writer). Define new KEY_HOLDER
entity that is responsible for all Key related type-specific code.
Fix syntax of DDS Writer, and misc code refactoring.
Tests are added for different Generics Settings (Durability,
Reliability, Keyed Topic).
Test 2 of RTPS Reader (User Tarffic Handling) is extended with a few
extra test cases.
Each Entity that contains a memory will have an independent size
generic. The testbench was modified to accomodate different RAM memory
sizes. This in effect makes all Memory related stuff pre-entity
dependant. The rtps_test_package needs updated Frame Sizes for the Tests
to work properly.
The reader falgs (Expects In-line QoS, Expects Historical Data, Is Best
Effort) of the remote reader is transfered in the Metatraffic Endpoint
Match Frame.
The Level 1 rtps_builtin_endpoint test was also fixed.
- Change Testbench naming Convention (File and Internal)
- Remove Component declarations and use direct instantiating
* Add more static generated SLVs in rtps_config_package
- 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
- Unify get_loc functions
- Overload functions with less parameters for defaults
- Add Parameter Corruption Injection to Participant and Endpoint Data Generators
* 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
* 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
- 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
* Merged stimulus generation procedures to one single procedure
* Integrated OSVVM into testbench
* Generated OSVVM Project Script File
* Various Bug Fixes to compile testbench