diff --git a/top/firmware/hdl/emp_payload.vhd b/top/firmware/hdl/emp_payload.vhd index 20aecfaa80792f9041f18009902360e0d39e9cf9..ec50cba8fb843dc17f5e9a613f3d1f8277e7a5e5 100644 --- a/top/firmware/hdl/emp_payload.vhd +++ b/top/firmware/hdl/emp_payload.vhd @@ -204,7 +204,8 @@ begin LinkInterfaceInstance : entity work.LinkInterface --==============================-- generic map ( - module_type => cDTCInputLinkMap(i).module_type + module_type => cDTCInputLinkMap(i).module_type, + data_rate => cDTCInputLinkMap(i).data_rate ) port map ( --- Input Ports --- diff --git a/top/firmware/hdl/link_maps.vhd b/top/firmware/hdl/link_maps.vhd index 711c7cec70b26eefb12dbc12e78f02286afc8977..1490a95cb25ee3f00c0c805676a1d9748b43de77 100644 --- a/top/firmware/hdl/link_maps.vhd +++ b/top/firmware/hdl/link_maps.vhd @@ -10,10 +10,10 @@ package dtc_link_maps is type tDTCInputLinkMap is array(0 to cNumberOfFEModules - 1) of tDTCInputLinkConfig; constant cDTCInputLinkMap : tDTCInputLinkMap := ( - 0 => (8, "2S", "CIC2"), - 1 => (9, "2S", "CIC2"), - 2 => (10, "2S", "CIC2"), - 3 => (11, "2S", "CIC2") + 0 => (8, "2S", 5, "CIC2"), + 1 => (9, "2S", 5, "CIC2"), + 2 => (10, "2S", 5, "CIC2"), + 3 => (11, "2S", 5, "CIC2") ); type tDTCOutputLinkMap is array(0 to cNumberOfOutputLinks - 1) of integer; @@ -22,6 +22,7 @@ package dtc_link_maps is ); function selectModuleTypeFromChannel(channel : in integer) return string; + function selectDataRateFromChannel(channel : in integer) return integer; end package dtc_link_maps; package body dtc_link_maps is @@ -35,4 +36,15 @@ package body dtc_link_maps is end loop; end selectModuleTypeFromChannel; + function selectDataRateFromChannel(channel : in integer) return integer is + variable data_rate : integer; + begin + for i in 0 to cDTCInputLinkMap'length - 1 loop + if cDTCInputLinkMap(i).index = channel then + data_rate := cDTCInputLinkMap(i).data_rate; + end if; + end loop; + return data_rate; + end selectDataRateFromChannel; + end package body dtc_link_maps;