diff --git a/src/TEMPLATE_dds_top.vhd b/src/TEMPLATE_dds_top.vhd index 3f84541..34cc2e6 100644 --- a/src/TEMPLATE_dds_top.vhd +++ b/src/TEMPLATE_dds_top.vhd @@ -364,9 +364,7 @@ begin COHERENT_ACCESS => ENDPOINT_CONFIG(i).COHERENT_ACCESS, ORDERED_ACCESS => ENDPOINT_CONFIG(i).ORDERED_ACCESS, WITH_KEY => ENDPOINT_CONFIG(i).WITH_KEY, - -- ###GENERATED START### - PAYLOAD_FRAME_SIZE => TODO, - -- ###GENERATED START### + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE, MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS ) port map ( @@ -430,9 +428,7 @@ begin MAX_SAMPLES => ENDPOINT_CONFIG(i).MAX_SAMPLES, MAX_INSTANCES => ENDPOINT_CONFIG(i).MAX_INSTANCES, MAX_SAMPLES_PER_INSTANCE => ENDPOINT_CONFIG(i).MAX_SAMPLES_PER_INSTANCE, - -- ###GENERATED START### - PAYLOAD_FRAME_SIZE => TODO - -- ###GENERATED START### + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE ) port map ( -- SYSTEM diff --git a/src/Tests/Level_2/L2_Testbench_Lib2.vhd b/src/Tests/Level_2/L2_Testbench_Lib2.vhd index dcd166e..d41fa69 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib2.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib2.vhd @@ -139,7 +139,7 @@ begin MAX_SAMPLES => ENDPOINT_CONFIG(0).MAX_SAMPLES, MAX_INSTANCES => ENDPOINT_CONFIG(0).MAX_INSTANCES, MAX_SAMPLES_PER_INSTANCE => ENDPOINT_CONFIG(0).MAX_SAMPLES_PER_INSTANCE, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(0).MAX_PAYLOAD_SIZE ) port map ( -- SYSTEM diff --git a/src/Tests/Level_2/L2_Testbench_Lib2_config.vhd b/src/Tests/Level_2/L2_Testbench_Lib2_config.vhd index 8148e7b..c82349d 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib2_config.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib2_config.vhd @@ -3,6 +3,7 @@ use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.rtps_package.all; +use work.Type1_package.all; package user_config is @@ -88,6 +89,7 @@ package body user_config is c.RELIABILITY_QOS := RELIABLE_RELIABILITY_QOS; c.MAX_SAMPLES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); c.MAX_INSTANCES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); + c.MAX_PAYLOAD_SIZE := MAX_TYPE1_SIZE; ret := (others => c); diff --git a/src/Tests/Level_2/L2_Testbench_Lib3.vhd b/src/Tests/Level_2/L2_Testbench_Lib3.vhd index 2c4a20e..e8d1d3b 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib3.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib3.vhd @@ -204,7 +204,7 @@ begin COHERENT_ACCESS => ENDPOINT_CONFIG(0).COHERENT_ACCESS, ORDERED_ACCESS => ENDPOINT_CONFIG(0).ORDERED_ACCESS, WITH_KEY => ENDPOINT_CONFIG(0).WITH_KEY, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE, + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(0).MAX_PAYLOAD_SIZE, MAX_REMOTE_ENDPOINTS => 5 ) port map ( diff --git a/src/Tests/Level_2/L2_Testbench_Lib3_config.vhd b/src/Tests/Level_2/L2_Testbench_Lib3_config.vhd index b53f89e..ff46259 100644 --- a/src/Tests/Level_2/L2_Testbench_Lib3_config.vhd +++ b/src/Tests/Level_2/L2_Testbench_Lib3_config.vhd @@ -3,6 +3,7 @@ use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.rtps_package.all; +use work.Type1_package.all; package user_config is @@ -88,6 +89,7 @@ package body user_config is c.RELIABILITY_QOS := RELIABLE_RELIABILITY_QOS; c.MAX_SAMPLES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); c.MAX_INSTANCES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); + c.MAX_PAYLOAD_SIZE := MAX_TYPE1_SIZE; ret := (others => c); diff --git a/src/Tests/Level_2/L2_testbench_Lib4.vhd b/src/Tests/Level_2/L2_testbench_Lib4.vhd index c35c9b3..432b00c 100644 --- a/src/Tests/Level_2/L2_testbench_Lib4.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib4.vhd @@ -388,7 +388,7 @@ begin COHERENT_ACCESS => ENDPOINT_CONFIG(i).COHERENT_ACCESS, ORDERED_ACCESS => ENDPOINT_CONFIG(i).ORDERED_ACCESS, WITH_KEY => ENDPOINT_CONFIG(i).WITH_KEY, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE, + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE, MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS ) port map ( @@ -452,7 +452,7 @@ begin MAX_SAMPLES => ENDPOINT_CONFIG(i).MAX_SAMPLES, MAX_INSTANCES => ENDPOINT_CONFIG(i).MAX_INSTANCES, MAX_SAMPLES_PER_INSTANCE => ENDPOINT_CONFIG(i).MAX_SAMPLES_PER_INSTANCE, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE ) port map ( -- SYSTEM diff --git a/src/Tests/Level_2/L2_testbench_Lib4_config.vhd b/src/Tests/Level_2/L2_testbench_Lib4_config.vhd index ad2632a..f021fae 100644 --- a/src/Tests/Level_2/L2_testbench_Lib4_config.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib4_config.vhd @@ -3,6 +3,7 @@ use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.rtps_package.all; +use work.Type1_package.all; package user_config is @@ -89,6 +90,7 @@ package body user_config is c.HISTORY_DEPTH := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); c.MAX_SAMPLES := std_logic_vector(to_unsigned(20, CDR_LONG_WIDTH)); c.MAX_INSTANCES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); + c.MAX_PAYLOAD_SIZE := MAX_TYPE1_SIZE; ret := (others => c); diff --git a/src/Tests/Level_2/L2_testbench_Lib5.vhd b/src/Tests/Level_2/L2_testbench_Lib5.vhd index 2f8db4f..f705545 100644 --- a/src/Tests/Level_2/L2_testbench_Lib5.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib5.vhd @@ -410,7 +410,7 @@ begin COHERENT_ACCESS => ENDPOINT_CONFIG(i).COHERENT_ACCESS, ORDERED_ACCESS => ENDPOINT_CONFIG(i).ORDERED_ACCESS, WITH_KEY => ENDPOINT_CONFIG(i).WITH_KEY, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE, + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE, MAX_REMOTE_ENDPOINTS => MAX_REMOTE_ENDPOINTS ) port map ( @@ -474,7 +474,7 @@ begin MAX_SAMPLES => ENDPOINT_CONFIG(i).MAX_SAMPLES, MAX_INSTANCES => ENDPOINT_CONFIG(i).MAX_INSTANCES, MAX_SAMPLES_PER_INSTANCE => ENDPOINT_CONFIG(i).MAX_SAMPLES_PER_INSTANCE, - PAYLOAD_FRAME_SIZE => MAX_TYPE1_SIZE + PAYLOAD_FRAME_SIZE => ENDPOINT_CONFIG(i).MAX_PAYLOAD_SIZE ) port map ( -- SYSTEM diff --git a/src/Tests/Level_2/L2_testbench_Lib5_config.vhd b/src/Tests/Level_2/L2_testbench_Lib5_config.vhd index 8927120..c0b20d1 100644 --- a/src/Tests/Level_2/L2_testbench_Lib5_config.vhd +++ b/src/Tests/Level_2/L2_testbench_Lib5_config.vhd @@ -3,6 +3,7 @@ use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.rtps_package.all; +use work.Type1_package.all; package user_config is @@ -89,6 +90,7 @@ package body user_config is c.HISTORY_DEPTH := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); c.MAX_SAMPLES := std_logic_vector(to_unsigned(20, CDR_LONG_WIDTH)); c.MAX_INSTANCES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); + c.MAX_PAYLOAD_SIZE := MAX_TYPE1_SIZE; ret := (others => c); diff --git a/src/Tests/Testbench_Lib1_config.vhd b/src/Tests/Testbench_Lib1_config.vhd index 9f9211c..490fae4 100644 --- a/src/Tests/Testbench_Lib1_config.vhd +++ b/src/Tests/Testbench_Lib1_config.vhd @@ -86,6 +86,7 @@ package body user_config is c1.HEARTBEAT_SUPPRESSION_DELAY := gen_duration(200 ms); c1.ACKNACK_RESPONSE_DELAY := gen_duration(200 ms); c1.ACKNACK_SUPPRESSION_DELAY := gen_duration(200 ms); + c1.MAX_PAYLOAD_SIZE := 4; c2 := DEFAULT_WRITER_CONFIG; c2.WITH_KEY := FALSE; @@ -96,6 +97,7 @@ package body user_config is c2.HEARTBEAT_SUPPRESSION_DELAY := gen_duration(200 ms); c2.ACKNACK_RESPONSE_DELAY := gen_duration(200 ms); c2.ACKNACK_SUPPRESSION_DELAY := gen_duration(200 ms); + c1.MAX_PAYLOAD_SIZE := 4; ret := ( 0 to NUM_READERS-1 => c1, diff --git a/src/Tests/Type1_package.vhd b/src/Tests/Type1_package.vhd index 14cb054..5ac2b74 100644 --- a/src/Tests/Type1_package.vhd +++ b/src/Tests/Type1_package.vhd @@ -2,8 +2,8 @@ library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; -use work.rtps_package.all; use work.math_pkg.all; +use work.rtps_package.all; package Type1_package is diff --git a/src/Tests/Type2_package.vhd b/src/Tests/Type2_package.vhd index 0e96733..fda9ee4 100644 --- a/src/Tests/Type2_package.vhd +++ b/src/Tests/Type2_package.vhd @@ -2,8 +2,8 @@ library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; -use work.rtps_package.all; use work.math_pkg.all; +use work.rtps_package.all; package Type2_package is diff --git a/src/rtps_package.vhd b/src/rtps_package.vhd index cfcfd95..6b51ff4 100644 --- a/src/rtps_package.vhd +++ b/src/rtps_package.vhd @@ -544,6 +544,7 @@ package rtps_package is -- READER_DATA_LIFECYCLE QoS AUTOPURGE_NOWRITER_SAMPLES_DELAY : DURATION_TYPE; -- (Only relevant to Readers) AUTOPURGE_DISPOSED_SAMPLES_DELAY : DURATION_TYPE; -- (Only relevant to Readers) + MAX_PAYLOAD_SIZE : natural; end record; constant DEFAULT_READER_CONFIG : CONFIG_TYPE; -- Deferred to package Body @@ -916,7 +917,8 @@ package body rtps_package is MAX_SAMPLES_PER_INSTANCE => DEFAULT_MAX_SAMPLES_PER_INSTANCE, AUTODISPOSE_UNREGISTERED_INSTANCES => DEFAULT_AUTODISPOSE_UNREGISTERED_INSTANCES, AUTOPURGE_NOWRITER_SAMPLES_DELAY => DEFAULT_AUTOPURGE_NOWRITER_SAMPLES_DELAY, - AUTOPURGE_DISPOSED_SAMPLES_DELAY => DEFAULT_AUTOPURGE_DISPOSED_SAMPLES_DELAY + AUTOPURGE_DISPOSED_SAMPLES_DELAY => DEFAULT_AUTOPURGE_DISPOSED_SAMPLES_DELAY, + MAX_PAYLOAD_SIZE => 0 ); constant DEFAULT_WRITER_CONFIG : CONFIG_TYPE := ( @@ -957,7 +959,8 @@ package body rtps_package is MAX_SAMPLES_PER_INSTANCE => DEFAULT_MAX_SAMPLES_PER_INSTANCE, AUTODISPOSE_UNREGISTERED_INSTANCES => DEFAULT_AUTODISPOSE_UNREGISTERED_INSTANCES, AUTOPURGE_NOWRITER_SAMPLES_DELAY => DEFAULT_AUTOPURGE_NOWRITER_SAMPLES_DELAY, - AUTOPURGE_DISPOSED_SAMPLES_DELAY => DEFAULT_AUTOPURGE_DISPOSED_SAMPLES_DELAY + AUTOPURGE_DISPOSED_SAMPLES_DELAY => DEFAULT_AUTOPURGE_DISPOSED_SAMPLES_DELAY, + MAX_PAYLOAD_SIZE => 0 ); function string_len(str : string) return natural is diff --git a/syn/syn_config.vhd b/syn/syn_config.vhd index a92e4dd..2fae01c 100644 --- a/syn/syn_config.vhd +++ b/syn/syn_config.vhd @@ -3,6 +3,7 @@ use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.rtps_package.all; +use work.Type1_package.all; package user_config is @@ -84,6 +85,7 @@ package body user_config is c.HISTORY_DEPTH := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); c.MAX_SAMPLES := std_logic_vector(to_unsigned(20, CDR_LONG_WIDTH)); c.MAX_INSTANCES := std_logic_vector(to_unsigned(5, CDR_LONG_WIDTH)); + c.MAX_PAYLOAD_SIZE := MAX_TYPE1_SIZE; ret := (others => c);