Commit Graph

139 Commits

Author SHA1 Message Date
5f7f2685c2 Refactor some TEMPLATE VHDL files 2023-07-22 14:46:49 +02:00
8004f21a7c Add moving_average VHDL Implementation
Add a configurable moving_average implementaion, that has a configurable
window size and is enable triggered.
Also add a moving_average_wrapper that instantiates 2 moving_average instances
(an inner and an outer) to lower the memory resource requirement for large
window sizes. Effective window size is OUTER*INNER, whereas the resources are
only OUTER+INNER. A trigger signal signals when the average is "valid".

Accompanying testebench was also implemented.
2023-06-24 00:02:02 +02:00
c318b3c560 Re-design Key Holder interaction of DDS Reader/Writer
The DDS Writer was expecting the user to provide the serialized key
on DISPOSE/UNREGISTER operations. The user should have no direct
interaction with the serialized key.
The operation flow was changed to expect the normal payload from the
user, push it to the Key Holder, and the calculate the serialized key.
The stage that was responsible for simutanously pushing the input to
payload memory and/or the Key Holder was simplified, and the decode
error signal of the Key Holder is now handled.

The last two changes (simplified stage and decode error handling)
were also ported to the DDS Reader.
2023-06-22 20:11:17 +02:00
d2c0b37c27 Change latching behaviour of "last_word_in" latches
During testing a scenario arose, where a toggling in the last_word
signal lane while the rest of the signals were not valid was falsely
latched.
All entities with "last_word_in" latches were modifies to only latch
the signal when in valid state.
2023-06-22 08:18:23 +02:00
35baf341c7 Bug Fix: DDS Reader and Writer Interfaces had no signal passthrough for non-Type dependent Operations
The ready/valid Signals were missing from the DDS Reader and Writer Interfaces,
preventing the user from effectively using non-Type dependent operations
(like GET_OFFERED_DEADLINE_MISSED_STATUS).
The L1_Type1_test1 was extended to test for this non-type dependent operation.
2023-06-17 13:32:58 +02:00
d2d40c1326 Bug Fix: Key_Holder was not resetting the decode_error signal
Fixed Updated Template-, Type1-, and Type2-key_holder to reset the
decode_error signal when a new PUSH_* operation is initiated.
Testbenches are extended to test foe decode_error and its reset.
2023-06-17 10:48:16 +02:00
d537cd7460 Documentation Refactoring (Fix Typos) 2023-06-17 10:48:16 +02:00
ca80910494 Documentation & Code Refactoring 2023-06-17 10:48:11 +02:00
5f58b0bca4 Fix testbench for Linux OS (Linux is case Sensitive) 2023-06-16 14:02:44 +02:00
6fe7e426ca Add ROS Action TEMPLATES and generation recipes
The existing Fibonacci implementation was slightly modified to adhere to
the recipes and be more in line with existing code generation.
2022-04-27 12:37:02 +02:00
9a3dab9a4e Fixed bug when dds_reader is generating a sample on empty sample memory
Extended testbench to also test this case.
2022-04-18 17:50:55 +02:00
1ed234e85c rtps_writer: Send HEARTBEAT immediately on remote endpoint match 2022-04-16 13:02:28 +02:00
d388e29c36 Convert dds_reader to Vector Endpoint 2022-04-10 11:04:59 +02:00
ddacbb6d2b code refactoring 2022-04-10 11:04:16 +02:00
5e7ea79887 Convert dds_writer to Vector Endpoint 2022-04-10 11:04:02 +02:00
54602a1f21 Convert rtps_reader to Vector Endpoint 2022-04-05 17:20:22 +02:00
f6fec48a0e Convert rtps_writer to Vector Endpoint
rtps_writer now can be configured to simulate multiple endpoints. All
Testbenched were modified to reflect and test this change.
Packages were extended with array definitions.
2022-04-05 17:18:07 +02:00
ad03ae6ecd Remove RTPS_OUT_DATA_TYPE and modify rtps_out with generic 2022-03-20 11:49:41 +01:00
70072a51bf Change memory format of rtps_discovery_module to use double linked list 2022-03-13 12:43:13 +01:00
290807f2ae BUG FIX: rtps_reader/rtps_discovery_module GAP Processing
An internal signal was initialized wrongly, and due to various
other reasons (testbench bug, to_integer conversion bug) was not picked
up by the testbenches.
2022-03-13 12:43:13 +01:00
76824037d1 Change memory format of rtps_reader to use double linked list 2022-03-13 12:43:13 +01:00
1e2a835c02 Change memory format of rtps_writer to use double linked list 2022-03-13 12:43:12 +01:00
fba065e59e BUG FIX: Remove inferred Latches 2022-03-13 12:43:12 +01:00
27e5b808b0 BUG FIX: Fix instance_handle Port Directions of Writer interfaces 2022-03-13 12:43:12 +01:00
bd1f803906 Modify rtps_discovery_module to send a PARTICIPANT Announcement immediately on startup 2022-03-08 14:03:33 +01:00
cf3daa12b0 Define record for sample_info of DDS Reader 2022-02-19 11:58:40 +01:00
f9cb1a8d0e Change Testbench String to reflect file names 2022-02-05 13:35:33 +01:00
c9d4b55d4a Change decoding convention
In muti-word decoding do not call the "FETCH" stage in the
last-to-second sub-stage.
2022-02-05 13:35:20 +01:00
b7fd9bfcfe BUG FIX: Decoder may not read last byte of payload
The SKIP_PAYLOAD stage of decoders would not read the last word
(last_word_in = '1').
The <NAME>_MEMBER_END stage was removed from encoders/decoders, since it
could happen that the last aggregated member of a last collection entry
could also be the last type member overall, which would miss toggling
the "last_word_out" correctly. The logic was instead put inside the last
member stage (instead of defining a separate MEMEBR_END stage).
2022-02-03 15:05:10 +01:00
84220120e5 Add Bound checks in Decoder stage 2022-02-01 14:58:02 +01:00
Greek
98e50e89a9 Add ROS Service Server/Client TEMPLATE 2022-02-01 14:58:02 +01:00
Greek
0396097f05 BUG FIX: Subscriber and Publisher ACKNACK destinations were flipped 2022-02-01 14:57:50 +01:00
Greek
5894fd9121 Add Level 2 ROS Service Test (AddTwoInts) 2022-01-29 11:12:31 +01:00
Greek
b5741dc9ae Implement ROS glue logic & ROS discovery data
All the necessary "glue" logic to convert ROS Data to a form that the
DDS/RTPS back-end can use is implemented in packages.
The ROS Node discovery information is statically generated in packages
(similar to the RTPS Participant Data), and a special dds writer is
implemented (ros_static_discovery_writer) that has this static data as
its only payload sample.
Some definitions are moved out of rtps_config_package to prevent
circular package dependency.
2022-01-29 11:12:22 +01:00
Greek
2d3c5cf896 Add MAX_PAYLOAD_SIZE to Endpoint Config Record 2022-01-25 17:58:14 +01:00
Greek
59bff52832 Rename rtps_builtin_endpoint to rtps_discovery_module 2022-01-16 18:12:11 +01:00
Greek
e0280ea490 Define RTPS/DDS Configuration in record type 2022-01-16 16:16:58 +01:00
Greek
3ee4769c52 Rename *_wrapper to *_interface
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.
2022-01-03 14:25:27 +01:00
Greek
4b81cf9484 Propagate LIFESPAN through ENDPOINT_MATCH_FRAME instead of inline QoS
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.
2021-12-23 16:20:18 +01:00
Greek
56b80bead2 Match rtps_reader with remote writers (not readers) in testbench 2021-12-23 12:19:19 +01:00
Greek
97e55ff623 Modify rtps_writer
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.
2021-12-23 12:19:11 +01:00
Greek
20dff4a208 BUG FIX: Default Reliability is different for Readers and Writers 2021-12-15 16:49:32 +01:00
Greek
3a1aeb818e Remove TRANSPORT_PRIORITY_QOS
According to RTPS Specification, the TRANSPORT_PRIORITY_QOS is only for
Topic Data.
2021-12-15 16:30:31 +01:00
Greek
6d609a5a34 CYCLONE DDS Compatibility: Remove expectsinlineQoS Flag
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)
2021-12-15 15:58:07 +01:00
Greek
49fc01cf6b BUG FIX: rtps_handler was droping valid ACKNACKs and GAPs
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.
2021-12-14 13:09:10 +01:00
Greek
02f0fbfb98 Add PREFER_MULTICAST generic in rtps_buildin_endpoint
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.
2021-12-13 14:31:33 +01:00
Greek
48468d1131 BUG FIX: PID is affected by endianness 2021-12-11 12:20:52 +01:00
Greek
e65b152bc6 Modify Level 2 testcases (Test also Altera Implementations)
One Library of each Level 2 testbench is compiled with the Altera
implementations of FIFO and RAM.
2021-12-09 23:32:18 +01:00
Greek
4896929e1b code refactoring 2021-12-09 19:44:40 +01:00
Greek
3e387b9513 Bug Fix in TYPENAME_writer_wrapper
Default output was missing, inferring latch in synthesis
2021-12-09 19:44:40 +01:00