1 ------------------------------------------------------------------------------- 2 -- File : GthUltraScaleQuadPll.vhd 3 -- Company : SLAC National Accelerator Laboratory 4 -- Created : 2015-04-08 5 -- Last update: 2016-03-08 6 ------------------------------------------------------------------------------- 7 -- Description: Wrapper for Ultrascale GTH QPLL primitive 8 ------------------------------------------------------------------------------- 9 -- This file is part of 'SLAC MGT 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 MGT 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;
28 --! @ingroup xilinx_UltraScale_gthUs 31 -- Simulation Parameters 35 -- AXI-Lite Parameters 37 -- QPLL Configuration Parameters 87 end entity GthUltraScaleQuadPll;
108 --------------------------------------------------------------------------------------- 109 -- QPLL clock select. Only ever use 1 clock to drive QPLL Channel. Never switch clocks. 110 --------------------------------------------------------------------------------------- 112 for i in 1 downto 0 generate 120 end generate GEN_CLK_SELECT;
122 GTHE3_COMMON_Inst : GTHE3_COMMON
175 RSVD_ATTR0 => x"0000",
176 RSVD_ATTR1 => x"0000",
177 RSVD_ATTR2 => x"0000",
178 RSVD_ATTR3 => x"0000",
179 RXRECCLKOUT0_SEL => "
00",
180 RXRECCLKOUT1_SEL => "
00",
183 SDM0DATA1_0 => "
0000000000000000",
184 SDM0DATA1_1 => "
000000000",
185 SDM0INITSEED0_0 => "
0000000000000000",
186 SDM0INITSEED0_1 => "
000000000",
187 SDM0_DATA_PIN_SEL => '0',
188 SDM0_WIDTH_PIN_SEL => '0',
189 SDM1DATA1_0 => "
0000000000000000",
190 SDM1DATA1_1 => "
000000000",
191 SDM1INITSEED0_0 => "
0000000000000000",
192 SDM1INITSEED0_1 => "
000000000",
193 SDM1_DATA_PIN_SEL => '0',
194 SDM1_WIDTH_PIN_SEL => '0',
209 QPLLDMONITOR0 =>
open,
210 QPLLDMONITOR1 =>
open,
211 REFCLKOUTMONITOR0 =>
open,
212 REFCLKOUTMONITOR1 =>
open,
213 RXRECCLK0_SEL =>
open,
214 RXRECCLK1_SEL =>
open,
226 QPLL0CLKRSVD0 => '0',
227 QPLL0CLKRSVD1 => '0',
233 QPLL1CLKRSVD0 => '0',
234 QPLL1CLKRSVD1 => '0',
243 BGRCALOVRD =>
(others => '1'
),
244 BGRCALOVRDENB => '1',
259 PMARSVD0 =>
(others => '0'
),
260 PMARSVD1 =>
(others => '0'
),
261 QPLLRSVD1 =>
(others => '0'
),
262 QPLLRSVD2 =>
(others => '0'
),
263 QPLLRSVD3 =>
(others => '0'
),
264 QPLLRSVD4 =>
(others => '0'
),
294 end architecture mapping;
QPLL_LPF_G3_GSlv10Array( 1 downto 0) :=( others => "1111111111")
ADDR_WIDTH_Gpositive range 1 to 32:= 16
QPLL_CFG2_GSlv16Array( 1 downto 0) :=( others => x"0000")
QPLL_CFG1_GSlv16Array( 1 downto 0) :=( others => x"0000")
array(natural range <> ) of slv( 2 downto 0) Slv3Array
COMMON_CFG0_Gslv( 15 downto 0) := x"0000"
QPLL_CFG2_G3_GSlv16Array( 1 downto 0) :=( others => x"0000")
slv( 1 downto 0) gtNorthRefClk1
out qPllOutClkslv( 1 downto 0)
QPLL_SDM_CFG2_GSlv16Array( 1 downto 0) :=( others => x"0000")
QPLL_SDM_CFG1_GSlv16Array( 1 downto 0) :=( others => x"0000")
slv( 1 downto 0) gtNorthRefClk0
out drpAddrslv( ADDR_WIDTH_G- 1 downto 0)
out qPllLockslv( 1 downto 0)
BIAS_CFG1_Gslv( 15 downto 0) := x"0000"
SIM_RESET_SPEEDUP_Gstring := "FALSE"
EN_ARBITRATION_Gboolean := false
DATA_WIDTH_Gpositive range 1 to 32:= 16
POR_CFG_Gslv( 15 downto 0) := x"0004"
out axilReadSlaveAxiLiteReadSlaveType
in qPllResetslv( 1 downto 0)
in drpDoslv( DATA_WIDTH_G- 1 downto 0)
COMMON_CLK_Gboolean := false
slv( 1 downto 0) gtSouthRefClk1
in qPllRefClkslv( 1 downto 0)
QPLL_LPF_GSlv10Array( 1 downto 0) :=( others => "1111111111")
BIAS_CFG3_Gslv( 15 downto 0) := x"0040"
slv( 1 downto 0) gtSouthRefClk0
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
COMMON_CFG1_Gslv( 15 downto 0) := x"0000"
out axilWriteSlaveAxiLiteWriteSlaveType
QPLL_LOCK_CFG_GSlv16Array( 1 downto 0) :=( others => x"01E8")
out axilWriteSlaveAxiLiteWriteSlaveType
in axilWriteMasterAxiLiteWriteMasterType := AXI_LITE_WRITE_MASTER_INIT_C
BIAS_CFG2_Gslv( 15 downto 0) := x"0000"
in qPllLockDetClkslv( 1 downto 0)
slv( 1 downto 0) gtGRefClk
slv( 1 downto 0) := "11" AXI_RESP_DECERR_C
slv( 1 downto 0) gtRefClk0
in axilReadMasterAxiLiteReadMasterType
slv( 1 downto 0) gtRefClk1
QPLL_CFG4_GSlv16Array( 1 downto 0) :=( others => x"0009")
out axilReadSlaveAxiLiteReadSlaveType
array(natural range <> ) of natural NaturalArray
out qPllFbClkLostslv( 1 downto 0)
QPLL_INIT_CFG1_GSlv8Array( 1 downto 0) :=( others => x"00")
out qPllRefClkLostslv( 1 downto 0)
QPLL_CFG0_GSlv16Array( 1 downto 0) :=( others => x"3018")
QPLL_CFG1_G3_GSlv16Array( 1 downto 0) :=( others => x"0020")
TIMEOUT_Gpositive := 4096
QPLL_LOCK_CFG_G3_GSlv16Array( 1 downto 0) :=( others => x"01E8")
SIM_VERSION_Gnatural := 2
out qPllOutRefClkslv( 1 downto 0)
array(natural range <> ) of slv( 15 downto 0) Slv16Array
AxiLiteReadMasterType :=(araddr =>( others => '0'),arprot =>( others => '0'),arvalid => '0',rready => '1') AXI_LITE_READ_MASTER_INIT_C
QPLL_FBDIV_GNaturalArray( 1 downto 0) :=( others => 66)
BIAS_CFG_RSVD_Gslv( 9 downto 0) := "0000000000"
QPLL_CP_GSlv10Array( 1 downto 0) :=( others => "0000011111")
in qPllPowerDownslv( 1 downto 0) := "00"
BIAS_CFG0_Gslv( 15 downto 0) := x"0000"
BIAS_CFG4_Gslv( 15 downto 0) := x"0000"
in axilWriteMasterAxiLiteWriteMasterType
AxiLiteWriteMasterType :=(awaddr =>( others => '0'),awprot =>( others => '0'),awvalid => '0',wdata =>( others => '0'),wstrb =>( others => '1'),wvalid => '0',bready => '1') AXI_LITE_WRITE_MASTER_INIT_C
AXI_ERROR_RESP_Gslv( 1 downto 0) := AXI_RESP_DECERR_C
QPLL_CP_G3_GSlv10Array( 1 downto 0) :=( others => "0000011111")
QPLL_CFG3_GSlv16Array( 1 downto 0) :=( others => x"0120")
in axilReadMasterAxiLiteReadMasterType := AXI_LITE_READ_MASTER_INIT_C
QPLL_FBDIV_G3_GNaturalArray( 1 downto 0) :=( others => 80)
array(natural range <> ) of slv( 7 downto 0) Slv8Array
QPLL_SDM_CFG0_GSlv16Array( 1 downto 0) :=( others => x"0000")
QPLL_REFCLK_SEL_GSlv3Array( 1 downto 0) :=( others => "001")
out drpDislv( DATA_WIDTH_G- 1 downto 0)
array(natural range <> ) of slv( 9 downto 0) Slv10Array
QPLL_INIT_CFG0_GSlv16Array( 1 downto 0) :=( others => x"0000")
QPLL_REFCLK_DIV_GNaturalArray( 1 downto 0) :=( others => 2)