Port changes and fix syntax of DDS Reader
This commit is contained in:
parent
4a67a18df2
commit
c5239679d7
@ -417,7 +417,7 @@ READER
|
|||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
05| PAYLOAD_ADDRESS |
|
05| PAYLOAD_ADDRESS |
|
||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
06| INSTANCE_ADDRESS |
|
06| INSTANCE_ADDRESS | [only if WITH_KEY]
|
||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
07| DISPOSED_GENERATION_COUNT |
|
07| DISPOSED_GENERATION_COUNT |
|
||||||
+-------------------------------------------------------------+
|
+-------------------------------------------------------------+
|
||||||
@ -548,6 +548,7 @@ K...Key Hash available
|
|||||||
F...FilteredFlag (1:1 PID_STATUS_INFO Mapping)
|
F...FilteredFlag (1:1 PID_STATUS_INFO Mapping)
|
||||||
U...UnregisteredFlag (1:1 PID_STATUS_INFO Mapping)
|
U...UnregisteredFlag (1:1 PID_STATUS_INFO Mapping)
|
||||||
D...DisposedFlag (1:1 PID_STATUS_INFO Mapping)
|
D...DisposedFlag (1:1 PID_STATUS_INFO Mapping)
|
||||||
|
NOTE: If P=0 and K=0, the Payload contains the Serialized Key
|
||||||
|
|
||||||
INSTANCE MEMORY
|
INSTANCE MEMORY
|
||||||
===============
|
===============
|
||||||
|
|||||||
1641
src/dds_reader.vhd
1641
src/dds_reader.vhd
File diff suppressed because it is too large
Load Diff
@ -46,6 +46,7 @@ package rtps_config_package is
|
|||||||
type KEY_GENERATOR_OPCODE_TYPE is (NOP, WRITE_PAYLOAD, READ_KEY, READ_SIZE);
|
type KEY_GENERATOR_OPCODE_TYPE is (NOP, WRITE_PAYLOAD, READ_KEY, READ_SIZE);
|
||||||
type HISTORY_CACHE_RESPONSE_TYPE is (OK, REJECTED, INVALID, ERROR);
|
type HISTORY_CACHE_RESPONSE_TYPE is (OK, REJECTED, INVALID, ERROR);
|
||||||
type DDS_WRITER_OPCODE_TYPE is (NOP, REGISTER_INSTANCE, WRITE, DISPOSE, UNREGISTER_INSTANCE, LOOKUP_INSTANCE, WAIT_FOR_ACKNOWLEDGEMENTS, GET_OFFERED_DEADLINE_MISSED_STATUS, ASSERT_LIVELINESS, GET_LIVELINESS_LOST_STATUS);
|
type DDS_WRITER_OPCODE_TYPE is (NOP, REGISTER_INSTANCE, WRITE, DISPOSE, UNREGISTER_INSTANCE, LOOKUP_INSTANCE, WAIT_FOR_ACKNOWLEDGEMENTS, GET_OFFERED_DEADLINE_MISSED_STATUS, ASSERT_LIVELINESS, GET_LIVELINESS_LOST_STATUS);
|
||||||
|
type DDS_READER_OPCODE_TYPE is (NOP, READ, TAKE, READ_NEXT_SAMPLE, TAKE_NEXT_SAMPLE, READ_INSTANCE, TAKE_INSTANCE, READ_NEXT_INSTANCE, TAKE_NEXT_INSTANCE, GET_SAMPLE_REJECTED_STATUS, GET_REQUESTED_DEADLINE_MISSED_STATUS);
|
||||||
|
|
||||||
-- Sample Status Info Flags
|
-- Sample Status Info Flags
|
||||||
constant SSI_DISPOSED_FLAG : natural := STATUS_INFO_DISPOSED_FLAG;
|
constant SSI_DISPOSED_FLAG : natural := STATUS_INFO_DISPOSED_FLAG;
|
||||||
@ -120,13 +121,6 @@ package rtps_config_package is
|
|||||||
|
|
||||||
type RTPS_OUT_DATA_TYPE is array (0 to NUM_ENDPOINTS) of std_logic_vector(WORD_WIDTH-1 downto 0);
|
type RTPS_OUT_DATA_TYPE is array (0 to NUM_ENDPOINTS) of std_logic_vector(WORD_WIDTH-1 downto 0);
|
||||||
|
|
||||||
constant ENDPOINT_BITMAP_WIDTH : natural := 1; -- TODO
|
|
||||||
type ENDPOINT_BITMAP_ARRAY_TYPE is array (0 to round_div(ENDPOINT_BITMAP_WIDTH, WORD_WIDTH)-1) of std_logic_vector(0 to WORD_WIDTH-1);
|
|
||||||
constant ZERO_ENDPOINT_BITMAP_ARRAY : ENDPOINT_BITMAP_ARRAY_TYPE := (others => (others => '0'));
|
|
||||||
|
|
||||||
function from_endpoint_bitmap_array (input : ENDPOINT_BITMAP_ARRAY_TYPE) return std_logic_vector;
|
|
||||||
function to_endpoint_bitmap_array (input : std_logic_vector(0 to ENDPOINT_BITMAP_WIDTH-1)) return ENDPOINT_BITMAP_ARRAY_TYPE;
|
|
||||||
|
|
||||||
-- Swap "data" to Big Endian representation.
|
-- Swap "data" to Big Endian representation.
|
||||||
function endian_swap(swap : std_logic; data : std_logic_vector) return std_logic_vector;
|
function endian_swap(swap : std_logic; data : std_logic_vector) return std_logic_vector;
|
||||||
function endian_swap(swap : std_logic; data : unsigned) return unsigned;
|
function endian_swap(swap : std_logic; data : unsigned) return unsigned;
|
||||||
@ -1195,24 +1189,6 @@ package body rtps_config_package is
|
|||||||
return ret;
|
return ret;
|
||||||
end function;
|
end function;
|
||||||
|
|
||||||
function from_endpoint_bitmap_array (input : ENDPOINT_BITMAP_ARRAY_TYPE) return std_logic_vector is
|
|
||||||
variable ret : std_logic_vector(0 to ENDPOINT_BITMAP_WIDTH-1) := (others => '0');
|
|
||||||
begin
|
|
||||||
for i in 0 to input'length-1 loop
|
|
||||||
ret(i*WORD_WIDTH to ((i+1)*WORD_WIDTH)-1) := input(i);
|
|
||||||
end loop;
|
|
||||||
return ret;
|
|
||||||
end function;
|
|
||||||
|
|
||||||
function to_endpoint_bitmap_array (input : std_logic_vector(0 to ENDPOINT_BITMAP_WIDTH-1)) return ENDPOINT_BITMAP_ARRAY_TYPE is
|
|
||||||
variable ret : ENDPOINT_BITMAP_ARRAY_TYPE := (others => (others => '0'));
|
|
||||||
begin
|
|
||||||
for i in 0 to ret'length-1 loop
|
|
||||||
ret(i) := input(i*WORD_WIDTH to ((i+1)*WORD_WIDTH)-1);
|
|
||||||
end loop;
|
|
||||||
return ret;
|
|
||||||
end function;
|
|
||||||
|
|
||||||
function check_mask(flags : std_logic_vector; mask : std_logic_vector) return boolean is
|
function check_mask(flags : std_logic_vector; mask : std_logic_vector) return boolean is
|
||||||
begin
|
begin
|
||||||
assert (flags'length = mask'length) report "Flag and mask Signal have unequal length" severity FAILURE;
|
assert (flags'length = mask'length) report "Flag and mask Signal have unequal length" severity FAILURE;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user