1 ------------------------------------------------------------------------------- 2 -- File : SyncTrigRateVector.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2014-04-16 5 -- Last update: 2016-05-20 6 ------------------------------------------------------------------------------- 7 -- Description: Wrapper for multiple SyncTrigRate modules 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC Firmware Standard Library'. 10 -- It is subject to the license terms in the LICENSE.txt file found in the 11 -- top-level directory of this distribution and at: 12 -- https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html. 13 -- No part of 'SLAC Firmware Standard Library', including this file, 14 -- may be copied, modified, propagated, or distributed except according to 15 -- the terms contained in the LICENSE.txt file. 16 ------------------------------------------------------------------------------- 19 use ieee.std_logic_1164.
all;
24 --! @ingroup base_sync 27 TPD_G : := 1 ns;
-- Simulation FF output delay 28 COMMON_CLK_G : := false;
-- true if locClk & refClk are the same clock 33 USE_DSP48_G : := "no";
-- "no" for no DSP48 implementation, "yes" to use DSP48 slices 37 -- Trigger Input (locClk domain) 39 -- Trigger Rate Output (locClk domain) 43 locClkEn :
in sl := '1';
46 end SyncTrigRateVector;
57 retVar := (others => '1');
59 for i in WIDTH_G-1 downto 0 loop 60 retVar(i) := INPUT(i);
64 end function FillVectorArray;
75 -- Only need to propagate one of the updates because they will be identical signals. 79 for i in (WIDTH_G-1) downto 0 generate 92 -- Trigger Input (locClk domain) 94 -- Trigger Rate Output (locClk domain) 105 end generate GEN_MAP;
107 end generate GEN_VEC;
109 end architecture mapping;
MyVectorArray FillVectorArrayINPUT,
in trigInslv( WIDTH_G- 1 downto 0)
slv( WIDTH_G- 1 downto 0) trigRateUpdate
array(natural range <> ,natural range <> ) of sl SlVectorArray
COMMON_CLK_Gboolean := false
REFRESH_RATE_Greal := 1.0E+0
( WIDTH_G- 1 downto 0) sl MyVectorArray
REFRESH_RATE_Greal := 1.0E+0
COMMON_CLK_Gboolean := false
CNT_WIDTH_Gpositive := 32
USE_DSP48_Gstring := "no"
CNT_WIDTH_Gpositive := 32
ONE_SHOT_Gboolean := false
USE_DSP48_Gstring := "no"
REF_CLK_FREQ_Greal := 200.0E+6
ONE_SHOT_Gboolean := false
MyVectorArray := FillVectorArray(IN_POLARITY_G ) IN_POLARITY_C
REF_CLK_FREQ_Greal := 200.0E+6
out trigRateOutslv( CNT_WIDTH_G- 1 downto 0)
out trigRateOutSlVectorArray ( WIDTH_G- 1 downto 0, CNT_WIDTH_G- 1 downto 0)
( WIDTH_G- 1 downto 0) slv( CNT_WIDTH_G- 1 downto 0) MySlvArray