From c7821632b8a0b9314b73effb9da0251a28c30b5d Mon Sep 17 00:00:00 2001 From: David Monk <dmonk@cern.ch> Date: Tue, 18 Jul 2023 22:58:15 +0200 Subject: [PATCH] Added data rate --- top/firmware/hdl/emp_payload.vhd | 3 ++- top/firmware/hdl/link_maps.vhd | 20 ++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/top/firmware/hdl/emp_payload.vhd b/top/firmware/hdl/emp_payload.vhd index 20aecfaa..ec50cba8 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 711c7cec..1490a95c 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; -- GitLab