64 use ieee.std_logic_1164.
all;
65 use ieee.numeric_std.
all;
67 use UNISIM.VCOMPONENTS.
ALL;
74 WRAPPER_SIM_GTRESET_SPEEDUP : string := "TRUE";
75 SIM_QPLLREFCLK_SEL : bit_vector := "001"
79 QPLLREFCLKSEL_IN : in std_logic_vector(2 downto 0);
80 GTREFCLK1_IN : in std_logic;
81 GTREFCLK0_IN : in std_logic;
82 QPLLLOCK_OUT : out std_logic;
83 QPLLLOCKDETCLK_IN : in std_logic;
84 QPLLOUTCLK_OUT : out std_logic;
85 QPLLOUTREFCLK_OUT : out std_logic;
86 QPLLREFCLKLOST_OUT : out std_logic;
87 QPLLRESET_IN : in std_logic
94 attribute CORE_GENERATION_INFO : string;
95 attribute CORE_GENERATION_INFO of RTL : architecture is "MGT_TX_RX_6G4_common,gtwizard_v3_6_11,{protocol_file=Start_from_scratch}";
99 impure function conv_qpll_fbdiv_top (qpllfbdiv_top : in integer) return bit_vector is
101 if (qpllfbdiv_top = 16) then
103 elsif (qpllfbdiv_top = 20) then
104 return "0000110000" ;
105 elsif (qpllfbdiv_top = 32) then
106 return "0001100000" ;
107 elsif (qpllfbdiv_top = 40) then
108 return "0010000000" ;
109 elsif (qpllfbdiv_top = 64) then
110 return "0011100000" ;
111 elsif (qpllfbdiv_top = 66) then
112 return "0101000000" ;
113 elsif (qpllfbdiv_top = 80) then
114 return "0100100000" ;
115 elsif (qpllfbdiv_top = 100) then
116 return "0101110000" ;
118 return "0000000000" ;
122 impure function conv_qpll_fbdiv_ratio (qpllfbdiv_top : in integer) return bit is
124 if (qpllfbdiv_top = 16) then
126 elsif (qpllfbdiv_top = 20) then
128 elsif (qpllfbdiv_top = 32) then
130 elsif (qpllfbdiv_top = 40) then
132 elsif (qpllfbdiv_top = 64) then
134 elsif (qpllfbdiv_top = 66) then
136 elsif (qpllfbdiv_top = 80) then
138 elsif (qpllfbdiv_top = 100) then
144 constant QPLL_FBDIV_TOP : integer := 16;
145 constant QPLL_FBDIV_IN : bit_vector(9 downto 0) := conv_qpll_fbdiv_top(QPLL_FBDIV_TOP);
146 constant QPLL_FBDIV_RATIO : bit := conv_qpll_fbdiv_ratio(QPLL_FBDIV_TOP);
149 signal tied_to_ground_i : std_logic;
150 signal tied_to_ground_vec_i : std_logic_vector(63 downto 0);
151 signal tied_to_vcc_i : std_logic;
152 signal tied_to_vcc_vec_i : std_logic_vector(63 downto 0);
155 tied_to_ground_i <= '0';
156 tied_to_ground_vec_i(63 downto 0) <= (others => '0');
157 tied_to_vcc_i <= '1';
158 tied_to_vcc_vec_i(63 downto 0) <= (others => '1');
164 gthe2_common_i : GTHE2_COMMON
168 SIM_RESET_SPEEDUP => WRAPPER_SIM_GTRESET_SPEEDUP,
169 SIM_QPLLREFCLK_SEL =>
(SIM_QPLLREFCLK_SEL
),
170 SIM_VERSION => "
2.0",
174 BIAS_CFG =>
(x"0000040000001050"
),
175 COMMON_CFG =>
(x"0000001C"
),
176 QPLL_CFG =>
(x"04801C7"
),
177 QPLL_CLKOUT_CFG =>
("1111"
),
178 QPLL_COARSE_FREQ_OVRD =>
("010000"
),
179 QPLL_COARSE_FREQ_OVRD_EN =>
('0'
),
180 QPLL_CP =>
("0000011111"
),
181 QPLL_CP_MONITOR_EN =>
('0'
),
182 QPLL_DMONITOR_SEL =>
('0'
),
183 QPLL_FBDIV =>
(QPLL_FBDIV_IN
),
184 QPLL_FBDIV_MONITOR_EN =>
('0'
),
185 QPLL_FBDIV_RATIO =>
(QPLL_FBDIV_RATIO
),
186 QPLL_INIT_CFG =>
(x"000006"
),
187 QPLL_LOCK_CFG =>
(x"05E8"
),
188 QPLL_LPF =>
("1111"
),
189 QPLL_REFCLK_DIV =>
(1),
190 RSVD_ATTR0 =>
(x"0000"
),
191 RSVD_ATTR1 =>
(x"0000"
),
192 QPLL_RP_COMP =>
('0'
),
193 QPLL_VTRL_RESET =>
("00"
),
201 DRPADDR => tied_to_ground_vec_i
(7 downto 0),
202 DRPCLK => tied_to_ground_i,
203 DRPDI => tied_to_ground_vec_i
(15 downto 0),
205 DRPEN => tied_to_ground_i,
207 DRPWE => tied_to_ground_i,
209 GTGREFCLK => tied_to_ground_i,
210 GTNORTHREFCLK0 => tied_to_ground_i,
211 GTNORTHREFCLK1 => tied_to_ground_i,
212 GTREFCLK0 => GTREFCLK0_IN,
213 GTREFCLK1 => GTREFCLK1_IN,
214 GTSOUTHREFCLK0 => tied_to_ground_i,
215 GTSOUTHREFCLK1 => tied_to_ground_i,
217 QPLLDMONITOR =>
open,
219 QPLLOUTCLK => QPLLOUTCLK_OUT,
220 QPLLOUTREFCLK => QPLLOUTREFCLK_OUT,
221 REFCLKOUTMONITOR =>
open,
223 BGRCALOVRDENB => tied_to_vcc_i,
225 QPLLFBCLKLOST =>
open,
226 QPLLLOCK => QPLLLOCK_OUT,
227 QPLLLOCKDETCLK => QPLLLOCKDETCLK_IN,
228 QPLLLOCKEN => tied_to_vcc_i,
229 QPLLOUTRESET => tied_to_ground_i,
230 QPLLPD => tied_to_vcc_i,
231 QPLLREFCLKLOST => QPLLREFCLKLOST_OUT,
232 QPLLREFCLKSEL => QPLLREFCLKSEL_IN,
233 QPLLRESET => QPLLRESET_IN,
234 QPLLRSVD1 => "
0000000000000000",
235 QPLLRSVD2 => "
11111",
237 BGBYPASSB => tied_to_vcc_i,
238 BGMONITORENB => tied_to_vcc_i,
239 BGPDB => tied_to_vcc_i,
240 BGRCALOVRD => "
11111",
241 PMARSVD => "
00000000",
242 RCALENB => tied_to_vcc_i