Since the Type Specific user facing entities did not actually wrap the
DDS entities, but connected to them through port signals, a more
semantically correct name would be "interface", since they are the user
facing interface of the DDS entities.
Since we disabled the 'expectsInlineQoS' Flag due to Cyclone DDS
compatibility, we no longer have access to the lifespan of the remote
writers.
The Endpoint Match Format was changed to also send the Lifespan Duration
from the rtps_builtin_endpoint.
ACK HANDLING
------------
If there are no remote reliable reader endpoints the new Cache Changes
are immediately ACKed/removed from the HC.
Internal Global ACK SN is set to SEQUENCENUMBER_UNKNOWN, and
only initialized on first reliable remote reader endpoint.
If all remote reliable reader endpints are unmatched the internal Global
ACK SN is set to SEQUENCENUMBER_UNKNOWN and all Cache Changes are
ACKed/removed from the HC.
PUSH MODE
---------
Historical DATA is no longer send on remote endpoint match, if PUSH mode
is FALSE.
TESTBENCH
---------
Level 1 Test2 of rtps_writer was split into 2 tests.
Apparently Cyclone DDS does not support Readers with the inline QoS
Flag.
Change rtps_test_package to generate only necessary PIDs (e.g. no
PID_EXPECTS_INLINE_QOS for writers)
The rtps_handler was droping SequenceNumberSets where the 0 bit was set.
The rtps_handler Test1 was also extended a bit to test for more invalid
variants.
Until now the rtps_builtin_endpoint was using the last parsed Locator as
the Locator of choice.
The rtps_builtin_endpoint was extended with a PREFER_MULTICAST boolean
generic that allows to influence which locators are used.
Test1 of rtps_builtin_endpoint was split in two, to test both settings
of the generic.
The FIND_NEXT_INSTANCE stage of the dds_reader was doing a 128-bit
comparison (Key Hash) in 1 clock cycle.
The comparison was split among 4 clock cycles.
The PARTICIPANT_STALE_CHECK stage of the rtps_builtin_endpoint was doing
4 consecutive 64-bit comparisons in the same clock cycle.
The stage was further sub-split to make one 64-bit comparison per clock cycle.
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)
Add a Key Hash Generator that just generates a Key Hash with the
verbatim contents of the Type Key Fields.
This is the case for all Types with a combined Key Field size less than
16 Bytes.
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).
Add Entity that connects an input and output FWFT_FIFO to a Avalon MM
Interface.
NOTE: The Implementation has no sync process. It relies on all FIFO
Signals being synchronous. (May affect timing closure)
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.