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 |
|
||||
+-------------------------------------------------------------+
|
||||
06| INSTANCE_ADDRESS |
|
||||
06| INSTANCE_ADDRESS | [only if WITH_KEY]
|
||||
+-------------------------------------------------------------+
|
||||
07| DISPOSED_GENERATION_COUNT |
|
||||
+-------------------------------------------------------------+
|
||||
@ -548,6 +548,7 @@ K...Key Hash available
|
||||
F...FilteredFlag (1:1 PID_STATUS_INFO Mapping)
|
||||
U...UnregisteredFlag (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
|
||||
===============
|
||||
|
||||
2049
src/dds_reader.vhd
2049
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 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_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
|
||||
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);
|
||||
|
||||
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.
|
||||
function endian_swap(swap : std_logic; data : std_logic_vector) return std_logic_vector;
|
||||
function endian_swap(swap : std_logic; data : unsigned) return unsigned;
|
||||
@ -1195,24 +1189,6 @@ package body rtps_config_package is
|
||||
return ret;
|
||||
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
|
||||
begin
|
||||
assert (flags'length = mask'length) report "Flag and mask Signal have unequal length" severity FAILURE;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user