51 use IEEE.numeric_std.
all;
52 use ieee.std_logic_unsigned.
all;
53 use ieee.std_logic_misc.
all;
54 use ieee.std_logic_1164.
all;
57 use UNISIM.Vcomponents.
ALL;
65 WRAPPER_SIM_GTRESET_SPEEDUP : string := "FALSE"
70 gt_qpllclk_quad4_i : out std_logic;
71 gt_qpllrefclk_quad4_i : out std_logic;
72 gt_qpllclk_quad5_i : out std_logic;
73 gt_qpllrefclk_quad5_i : out std_logic;
76 gt0_gtrefclk0_common_in : in std_logic;
78 gt0_qplllock_out : out std_logic;
79 gt0_qplllockdetclk_in : in std_logic;
80 gt0_qpllrefclklost_out : out std_logic;
81 gt0_qpllreset_in : in std_logic;
83 gt1_gtrefclk0_common_in : in std_logic;
85 gt1_qplllock_out : out std_logic;
86 gt1_qplllockdetclk_in : in std_logic;
87 gt1_qpllrefclklost_out : out std_logic;
88 gt1_qpllreset_in : in std_logic
96 impure function conv_qpll_fbdiv_top (qpllfbdiv_top : in integer) return bit_vector is
98 if (qpllfbdiv_top = 16) then
100 elsif (qpllfbdiv_top = 20) then
101 return "0000110000" ;
102 elsif (qpllfbdiv_top = 32) then
103 return "0001100000" ;
104 elsif (qpllfbdiv_top = 40) then
105 return "0010000000" ;
106 elsif (qpllfbdiv_top = 64) then
107 return "0011100000" ;
108 elsif (qpllfbdiv_top = 66) then
109 return "0101000000" ;
110 elsif (qpllfbdiv_top = 80) then
111 return "0100100000" ;
112 elsif (qpllfbdiv_top = 100) then
113 return "0101110000" ;
115 return "0000000000" ;
119 impure function conv_qpll_fbdiv_ratio (qpllfbdiv_top : in integer) return bit is
121 if (qpllfbdiv_top = 16) then
123 elsif (qpllfbdiv_top = 20) then
125 elsif (qpllfbdiv_top = 32) then
127 elsif (qpllfbdiv_top = 40) then
129 elsif (qpllfbdiv_top = 64) then
131 elsif (qpllfbdiv_top = 66) then
133 elsif (qpllfbdiv_top = 80) then
135 elsif (qpllfbdiv_top = 100) then
142 constant QPLL_FBDIV_TOP : integer := 40;
143 constant QPLL_FBDIV_IN : bit_vector(9 downto 0) := conv_qpll_fbdiv_top(QPLL_FBDIV_TOP);
144 constant QPLL_FBDIV_RATIO : bit := conv_qpll_fbdiv_ratio(QPLL_FBDIV_TOP);
147 signal tied_to_ground_i : std_logic;
148 signal tied_to_ground_vec_i : std_logic_vector(63 downto 0);
149 signal tied_to_vcc_i : std_logic;
156 tied_to_ground_i <= '0';
157 tied_to_ground_vec_i(63 downto 0) <= (others => '0');
158 tied_to_vcc_i <= '1';
164 gthe2_common_i : GTHE2_COMMON
168 SIM_RESET_SPEEDUP => WRAPPER_SIM_GTRESET_SPEEDUP,
169 SIM_QPLLREFCLK_SEL =>
("001"
),
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 => gt0_gtrefclk0_common_in,
213 GTREFCLK1 => tied_to_ground_i,
214 GTSOUTHREFCLK0 => tied_to_ground_i,
215 GTSOUTHREFCLK1 => tied_to_ground_i,
217 BGRCALOVRDENB => tied_to_vcc_i,
219 QPLLDMONITOR =>
open,
220 QPLLFBCLKLOST =>
open,
221 QPLLLOCK => gt0_qplllock_out,
222 QPLLLOCKDETCLK => gt0_qplllockdetclk_in,
223 QPLLLOCKEN => tied_to_vcc_i,
224 QPLLOUTCLK => gt_qpllclk_quad4_i,
225 QPLLOUTREFCLK => gt_qpllrefclk_quad4_i,
226 QPLLOUTRESET => tied_to_ground_i,
227 QPLLPD => tied_to_vcc_i,
228 QPLLREFCLKLOST => gt0_qpllrefclklost_out,
229 QPLLREFCLKSEL => "
001",
230 QPLLRESET => gt0_qpllreset_in,
231 QPLLRSVD1 => "
0000000000000000",
232 QPLLRSVD2 => "
11111",
233 REFCLKOUTMONITOR =>
open,
235 BGBYPASSB => tied_to_vcc_i,
236 BGMONITORENB => tied_to_vcc_i,
237 BGPDB => tied_to_vcc_i,
238 BGRCALOVRD => "
11111",
239 PMARSVD => "
00000000",
240 RCALENB => tied_to_vcc_i
246 gthe2_common_lane1_i : GTHE2_COMMON
250 SIM_RESET_SPEEDUP => WRAPPER_SIM_GTRESET_SPEEDUP,
251 SIM_QPLLREFCLK_SEL =>
("001"
),
252 SIM_VERSION =>
("2.0"
),
256 BIAS_CFG =>
(x"0000040000001050"
),
257 COMMON_CFG =>
(x"0000001C"
),
258 QPLL_CFG =>
(x"04801C7"
),
259 QPLL_CLKOUT_CFG =>
("1111"
),
260 QPLL_COARSE_FREQ_OVRD =>
("010000"
),
261 QPLL_COARSE_FREQ_OVRD_EN =>
('0'
),
262 QPLL_CP =>
("0000011111"
),
263 QPLL_CP_MONITOR_EN =>
('0'
),
264 QPLL_DMONITOR_SEL =>
('0'
),
265 QPLL_FBDIV =>
(QPLL_FBDIV_IN
),
266 QPLL_FBDIV_MONITOR_EN =>
('0'
),
267 QPLL_FBDIV_RATIO =>
(QPLL_FBDIV_RATIO
),
268 QPLL_INIT_CFG =>
(x"000006"
),
269 QPLL_LOCK_CFG =>
(x"05E8"
),
270 QPLL_LPF =>
("1111"
),
271 QPLL_REFCLK_DIV =>
(1),
272 RSVD_ATTR0 =>
(x"0000"
),
273 RSVD_ATTR1 =>
(x"0000"
),
274 QPLL_RP_COMP =>
('0'
),
275 QPLL_VTRL_RESET =>
("00"
),
283 DRPADDR => tied_to_ground_vec_i
(7 downto 0),
284 DRPCLK => tied_to_ground_i,
285 DRPDI => tied_to_ground_vec_i
(15 downto 0),
287 DRPEN => tied_to_ground_i,
289 DRPWE => tied_to_ground_i,
291 GTGREFCLK => tied_to_ground_i,
292 GTNORTHREFCLK0 => tied_to_ground_i,
293 GTNORTHREFCLK1 => tied_to_ground_i,
294 GTREFCLK0 => gt1_gtrefclk0_common_in,
295 GTREFCLK1 => tied_to_ground_i,
296 GTSOUTHREFCLK0 => tied_to_ground_i,
297 GTSOUTHREFCLK1 => tied_to_ground_i,
299 BGRCALOVRDENB => tied_to_vcc_i,
301 QPLLDMONITOR =>
open,
302 QPLLFBCLKLOST =>
open,
303 QPLLLOCK => gt1_qplllock_out,
304 QPLLLOCKDETCLK => gt1_qplllockdetclk_in,
305 QPLLLOCKEN => tied_to_vcc_i,
306 QPLLOUTCLK => gt_qpllclk_quad5_i,
307 QPLLOUTREFCLK => gt_qpllrefclk_quad5_i,
308 QPLLOUTRESET => tied_to_ground_i,
309 QPLLPD => tied_to_vcc_i,
310 QPLLREFCLKLOST => gt1_qpllrefclklost_out,
311 QPLLREFCLKSEL => "
001",
312 QPLLRESET => gt1_qpllreset_in,
313 QPLLRSVD1 => "
0000000000000000",
314 QPLLRSVD2 => "
11111",
315 REFCLKOUTMONITOR =>
open,
317 BGBYPASSB => tied_to_vcc_i,
318 BGMONITORENB => tied_to_vcc_i,
319 BGPDB => tied_to_vcc_i,
320 BGRCALOVRD => "
11111",
321 PMARSVD => "
00000000",
322 RCALENB => tied_to_vcc_i