3 use IEEE.STD_LOGIC_1164.
ALL;
4 use IEEE.NUMERIC_STD.
ALL;
10 s_axi_tx_tdata : in std_logic_vector(63 downto 0);
11 s_axi_tx_tvalid : in std_logic;
12 s_axi_tx_tready : out std_logic;
13 s_axi_tx_tkeep : in std_logic_vector(7 downto 0);
14 s_axi_tx_tlast : in std_logic;
16 s_axi_ufc_tx_req : in std_logic;
17 s_axi_ufc_tx_ms : in std_logic_vector(2 downto 0);
18 s_axi_ufc_tx_ack : out std_logic;
20 txp : out std_logic_vector(0 to 3);
21 txn : out std_logic_vector(0 to 3);
24 gt_refclk1_p : in std_logic;
25 gt_refclk1_n : in std_logic;
27 aurora_gt0_txctrl :in std_logic_vector( 23 downto 0);
28 aurora_gt1_txctrl :in std_logic_vector( 23 downto 0);
29 aurora_gt2_txctrl :in std_logic_vector( 23 downto 0);
30 aurora_gt3_txctrl :in std_logic_vector( 23 downto 0);
32 tx_hard_err : out std_logic;
34 tx_channel_up : out std_logic;
35 tx_lane_up : out std_logic_vector(0 to 3);
37 user_clk_out : out std_logic;
38 sys_reset_out : out std_logic;
39 gt_reset : in std_logic;
40 tx_system_reset : in std_logic;
41 tx_lock : out std_logic;
42 init_clk : in std_logic;
43 init_clk_out : out std_logic;
44 pll_not_locked : out std_logic;
45 tx_resetdone : out std_logic
56 s_axi_tx_tdata :
in std_logic_vector(
63 downto 0);
57 s_axi_tx_tvalid :
in std_logic;
58 s_axi_tx_tready :
out std_logic;
59 s_axi_tx_tkeep :
in std_logic_vector(
7 downto 0);
60 s_axi_tx_tlast :
in std_logic;
63 s_axi_ufc_tx_req :
in std_logic;
64 s_axi_ufc_tx_ms :
in std_logic_vector(
2 downto 0);
65 s_axi_ufc_tx_ack :
out std_logic;
68 txp :
out std_logic_vector(
0 to 3);
69 txn :
out std_logic_vector(
0 to 3);
71 gt_refclk1_p :
in std_logic;
72 gt_refclk1_n :
in std_logic;
74 tx_hard_err :
out std_logic;
76 tx_channel_up :
out std_logic;
77 tx_lane_up :
out std_logic_vector(
0 to 3);
79 user_clk_out :
out std_logic;
80 sys_reset_out :
out std_logic;
81 gt_reset :
in std_logic;
82 tx_system_reset :
in std_logic;
83 tx_lock :
out std_logic;
84 init_clk :
in std_logic;
85 init_clk_out :
out std_logic;
86 pll_not_locked_out :
out std_logic;
87 tx_resetdone_out :
out std_logic;
89 gt0_cplllock_out :
out std_logic;
90 gt0_txresetdone_out :
out std_logic;
91 gt0_txbufstatus_out :
out std_logic_vector(
1 downto 0);
93 gt0_txpostcursor_in :
in std_logic_vector(
4 downto 0);
94 gt0_txprecursor_in :
in std_logic_vector(
4 downto 0);
96 gt0_txchardispmode_in :
in std_logic_vector(
1 downto 0);
97 gt0_txchardispval_in :
in std_logic_vector(
1 downto 0);
98 gt0_txdiffctrl_in :
in std_logic_vector(
3 downto 0);
99 gt0_txmaincursor_in :
in std_logic_vector(
6 downto 0);
101 gt0_txpolarity_in :
in std_logic;
102 gt0_tx_buf_err_out :
out std_logic;
104 gt0_txprbsforceerr_in :
in std_logic;
105 gt0_txprbssel_in :
in std_logic_vector(
2 downto 0);
107 gt0_txpcsreset_in :
in std_logic;
108 gt0_txinhibit_in :
in std_logic;
109 gt0_txpmareset_in :
in std_logic;
111 gt1_cplllock_out :
out std_logic;
112 gt1_txresetdone_out :
out std_logic;
113 gt1_txbufstatus_out :
out std_logic_vector(
1 downto 0);
115 gt1_txpostcursor_in :
in std_logic_vector(
4 downto 0);
116 gt1_txprecursor_in :
in std_logic_vector(
4 downto 0);
118 gt1_txchardispmode_in :
in std_logic_vector(
1 downto 0);
119 gt1_txchardispval_in :
in std_logic_vector(
1 downto 0);
120 gt1_txdiffctrl_in :
in std_logic_vector(
3 downto 0);
121 gt1_txmaincursor_in :
in std_logic_vector(
6 downto 0);
123 gt1_txpolarity_in :
in std_logic;
124 gt1_tx_buf_err_out :
out std_logic;
126 gt1_txprbsforceerr_in :
in std_logic;
127 gt1_txprbssel_in :
in std_logic_vector(
2 downto 0);
129 gt1_txpcsreset_in :
in std_logic;
130 gt1_txinhibit_in :
in std_logic;
131 gt1_txpmareset_in :
in std_logic;
133 gt2_cplllock_out :
out std_logic;
134 gt2_txresetdone_out :
out std_logic;
135 gt2_txbufstatus_out :
out std_logic_vector(
1 downto 0);
137 gt2_txpostcursor_in :
in std_logic_vector(
4 downto 0);
138 gt2_txprecursor_in :
in std_logic_vector(
4 downto 0);
140 gt2_txchardispmode_in :
in std_logic_vector(
1 downto 0);
141 gt2_txchardispval_in :
in std_logic_vector(
1 downto 0);
142 gt2_txdiffctrl_in :
in std_logic_vector(
3 downto 0);
143 gt2_txmaincursor_in :
in std_logic_vector(
6 downto 0);
145 gt2_txpolarity_in :
in std_logic;
146 gt2_tx_buf_err_out :
out std_logic;
148 gt2_txprbsforceerr_in :
in std_logic;
149 gt2_txprbssel_in :
in std_logic_vector(
2 downto 0);
151 gt2_txpcsreset_in :
in std_logic;
152 gt2_txinhibit_in :
in std_logic;
153 gt2_txpmareset_in :
in std_logic;
155 gt3_cplllock_out :
out std_logic;
156 gt3_txresetdone_out :
out std_logic;
157 gt3_txbufstatus_out :
out std_logic_vector(
1 downto 0);
159 gt3_txpostcursor_in :
in std_logic_vector(
4 downto 0);
160 gt3_txprecursor_in :
in std_logic_vector(
4 downto 0);
162 gt3_txchardispmode_in :
in std_logic_vector(
1 downto 0);
163 gt3_txchardispval_in :
in std_logic_vector(
1 downto 0);
164 gt3_txdiffctrl_in :
in std_logic_vector(
3 downto 0);
165 gt3_txmaincursor_in :
in std_logic_vector(
6 downto 0);
167 gt3_txpolarity_in :
in std_logic;
168 gt3_tx_buf_err_out :
out std_logic;
170 gt3_txprbsforceerr_in :
in std_logic;
171 gt3_txprbssel_in :
in std_logic_vector(
2 downto 0);
173 gt3_txpcsreset_in :
in std_logic;
174 gt3_txinhibit_in :
in std_logic;
175 gt3_txpmareset_in :
in std_logic;
177 drpclk_in :
in std_logic;
178 drpaddr_in :
in std_logic_vector(
8 downto 0);
179 drpdi_in :
in std_logic_vector(
15 downto 0);
180 drpdo_out :
out std_logic_vector(
15 downto 0);
181 drpen_in :
in std_logic;
182 drprdy_out :
out std_logic;
183 drpwe_in :
in std_logic;
184 drpaddr_in_lane1 :
in std_logic_vector(
8 downto 0);
185 drpdi_in_lane1 :
in std_logic_vector(
15 downto 0);
186 drpdo_out_lane1 :
out std_logic_vector(
15 downto 0);
187 drpen_in_lane1 :
in std_logic;
188 drprdy_out_lane1 :
out std_logic;
189 drpwe_in_lane1 :
in std_logic;
190 drpaddr_in_lane2 :
in std_logic_vector(
8 downto 0);
191 drpdi_in_lane2 :
in std_logic_vector(
15 downto 0);
192 drpdo_out_lane2 :
out std_logic_vector(
15 downto 0);
193 drpen_in_lane2 :
in std_logic;
194 drprdy_out_lane2 :
out std_logic;
195 drpwe_in_lane2 :
in std_logic;
196 drpaddr_in_lane3 :
in std_logic_vector(
8 downto 0);
197 drpdi_in_lane3 :
in std_logic_vector(
15 downto 0);
198 drpdo_out_lane3 :
out std_logic_vector(
15 downto 0);
199 drpen_in_lane3 :
in std_logic;
200 drprdy_out_lane3 :
out std_logic;
201 drpwe_in_lane3 :
in std_logic;
204 power_down :
in std_logic;
205 loopback :
in std_logic_vector(
2 downto 0)
209 signal drpclk_i : std_logic;
210 signal daddr_in_i : std_logic_vector(8 downto 0);
211 signal dclk_in_i : std_logic;
212 signal den_in_i : std_logic;
213 signal di_in_i : std_logic_vector(15 downto 0);
214 signal drdy_out_unused_i : std_logic;
215 signal drpdo_out_unused_i : std_logic_vector(15 downto 0);
216 signal dwe_in_i : std_logic;
217 signal daddr_in_LANE1_i : std_logic_vector(8 downto 0);
218 signal dclk_in_LANE1_i : std_logic;
219 signal den_in_LANE1_i : std_logic;
220 signal di_in_LANE1_i : std_logic_vector(15 downto 0);
221 signal drdy_out_LANE1_unused_i : std_logic;
222 signal drpdo_out_LANE1_unused_i : std_logic_vector(15 downto 0);
223 signal dwe_in_LANE1_i : std_logic;
224 signal daddr_in_LANE2_i : std_logic_vector(8 downto 0);
225 signal dclk_in_LANE2_i : std_logic;
226 signal den_in_LANE2_i : std_logic;
227 signal di_in_LANE2_i : std_logic_vector(15 downto 0);
228 signal drdy_out_LANE2_unused_i : std_logic;
229 signal drpdo_out_LANE2_unused_i : std_logic_vector(15 downto 0);
230 signal dwe_in_LANE2_i : std_logic;
231 signal daddr_in_LANE3_i : std_logic_vector(8 downto 0);
232 signal dclk_in_LANE3_i : std_logic;
233 signal den_in_LANE3_i : std_logic;
234 signal di_in_LANE3_i : std_logic_vector(15 downto 0);
235 signal drdy_out_LANE3_unused_i : std_logic;
236 signal drpdo_out_LANE3_unused_i : std_logic_vector(15 downto 0);
237 signal dwe_in_LANE3_i : std_logic;
238 signal power_down_i : std_logic;
239 signal loopback_i : std_logic_vector(2 downto 0);
241 signal tied_to_ground_i : std_logic;
242 signal tied_to_ground_vec_lanes : std_logic_vector(0 to 3);
243 signal tied_to_gnd_vec_i : std_logic_vector(0 to 63);
254 daddr_in_i <= (others=>'0');
257 di_in_i <= (others=>'0');
259 daddr_in_LANE1_i <= (others=>'0');
260 dclk_in_LANE1_i <= '0';
261 den_in_LANE1_i <= '0';
262 di_in_LANE1_i <= (others=>'0');
263 dwe_in_LANE1_i <= '0';
264 daddr_in_LANE2_i <= (others=>'0');
265 dclk_in_LANE2_i <= '0';
266 den_in_LANE2_i <= '0';
267 di_in_LANE2_i <= (others=>'0');
268 dwe_in_LANE2_i <= '0';
269 daddr_in_LANE3_i <= (others=>'0');
270 dclk_in_LANE3_i <= '0';
271 den_in_LANE3_i <= '0';
272 di_in_LANE3_i <= (others=>'0');
273 dwe_in_LANE3_i <= '0';
280 s_axi_tx_tdata => s_axi_tx_tdata ,
281 s_axi_tx_tkeep => s_axi_tx_tkeep ,
282 s_axi_tx_tvalid => s_axi_tx_tvalid,
283 s_axi_tx_tlast => s_axi_tx_tlast ,
284 s_axi_tx_tready => s_axi_tx_tready,
286 s_axi_ufc_tx_req => s_axi_ufc_tx_req,
287 s_axi_ufc_tx_ms => s_axi_ufc_tx_ms,
288 s_axi_ufc_tx_ack => s_axi_ufc_tx_ack,
292 gt_refclk1_p => gt_refclk1_p,
293 gt_refclk1_n => gt_refclk1_n,
296 tx_hard_err => tx_hard_err,
298 tx_channel_up => tx_channel_up,
299 tx_lane_up => tx_lane_up,
301 user_clk_out => user_clk_out,
302 sys_reset_out => sys_reset_out,
303 tx_system_reset => tx_system_reset,
304 power_down => power_down_i,
305 gt_reset => gt_reset,
307 init_clk => init_clk,
308 init_clk_out => init_clk_out,
309 pll_not_locked_out => pll_not_locked,
310 tx_resetdone_out => tx_resetdone,
313 gt0_cplllock_out =>
open,
315 gt0_txresetdone_out =>
open,
316 gt0_txbufstatus_out =>
open,
318 gt0_txpostcursor_in => aurora_gt0_txctrl
(12 downto 8),
319 gt0_txprecursor_in => aurora_gt0_txctrl
(20 downto 16),
321 gt0_txchardispmode_in => "
00",
322 gt0_txchardispval_in => "
00",
323 gt0_txdiffctrl_in => aurora_gt0_txctrl
(3 downto 0),
324 gt0_txmaincursor_in => "
0000000",
326 gt0_txpolarity_in => tied_to_ground_i,
327 gt0_tx_buf_err_out =>
OPEN,
329 gt0_txprbsforceerr_in => tied_to_ground_i,
330 gt0_txprbssel_in => "
000",
332 gt0_txpcsreset_in => tied_to_ground_i,
333 gt0_txinhibit_in => tied_to_ground_i,
334 gt0_txpmareset_in => tied_to_ground_i,
338 gt1_cplllock_out =>
open,
340 gt1_txresetdone_out =>
open,
341 gt1_txbufstatus_out =>
open,
343 gt1_txpostcursor_in => aurora_gt1_txctrl
(12 downto 8),
344 gt1_txprecursor_in => aurora_gt1_txctrl
(20 downto 16),
346 gt1_txchardispmode_in => "
00",
347 gt1_txchardispval_in => "
00",
348 gt1_txdiffctrl_in => aurora_gt1_txctrl
(3 downto 0),
349 gt1_txmaincursor_in => "
0000000",
351 gt1_txpolarity_in => tied_to_ground_i,
352 gt1_tx_buf_err_out =>
OPEN,
354 gt1_txprbsforceerr_in => tied_to_ground_i,
355 gt1_txprbssel_in => "
000",
357 gt1_txpcsreset_in => tied_to_ground_i,
358 gt1_txinhibit_in => tied_to_ground_i,
359 gt1_txpmareset_in => tied_to_ground_i,
363 gt2_cplllock_out =>
open,
365 gt2_txresetdone_out =>
open,
366 gt2_txbufstatus_out =>
open,
368 gt2_txpostcursor_in => aurora_gt2_txctrl
(12 downto 8),
369 gt2_txprecursor_in => aurora_gt2_txctrl
(20 downto 16),
371 gt2_txchardispmode_in => "
00",
372 gt2_txchardispval_in => "
00",
373 gt2_txdiffctrl_in => aurora_gt2_txctrl
(3 downto 0),
374 gt2_txmaincursor_in => "
0000000",
376 gt2_txpolarity_in => tied_to_ground_i,
377 gt2_tx_buf_err_out =>
OPEN,
379 gt2_txprbsforceerr_in => tied_to_ground_i,
380 gt2_txprbssel_in => "
000",
382 gt2_txpcsreset_in => tied_to_ground_i,
383 gt2_txinhibit_in => tied_to_ground_i,
384 gt2_txpmareset_in => tied_to_ground_i,
388 gt3_cplllock_out =>
open,
390 gt3_txresetdone_out =>
open,
391 gt3_txbufstatus_out =>
open,
393 gt3_txpostcursor_in => aurora_gt3_txctrl
(12 downto 8),
394 gt3_txprecursor_in => aurora_gt3_txctrl
(20 downto 16),
396 gt3_txchardispmode_in => "
00",
397 gt3_txchardispval_in => "
00",
398 gt3_txdiffctrl_in => aurora_gt3_txctrl
(3 downto 0),
399 gt3_txmaincursor_in => "
0000000",
401 gt3_txpolarity_in => tied_to_ground_i,
402 gt3_tx_buf_err_out =>
OPEN,
404 gt3_txprbsforceerr_in => tied_to_ground_i,
405 gt3_txprbssel_in => "
000",
407 gt3_txpcsreset_in => tied_to_ground_i,
408 gt3_txinhibit_in => tied_to_ground_i,
409 gt3_txpmareset_in => tied_to_ground_i,
413 drpclk_in => drpclk_i,
414 drpaddr_in => daddr_in_i,
415 drpen_in => den_in_i,
417 drprdy_out => drdy_out_unused_i,
418 drpdo_out => drpdo_out_unused_i,
419 drpwe_in => dwe_in_i,
420 drpaddr_in_lane1 => daddr_in_lane1_i,
421 drpen_in_lane1 => den_in_lane1_i,
422 drpdi_in_lane1 => di_in_lane1_i,
423 drprdy_out_lane1 => drdy_out_lane1_unused_i,
424 drpdo_out_lane1 => drpdo_out_lane1_unused_i,
425 drpwe_in_lane1 => dwe_in_lane1_i,
426 drpaddr_in_lane2 => daddr_in_lane2_i,
427 drpen_in_lane2 => den_in_lane2_i,
428 drpdi_in_lane2 => di_in_lane2_i,
429 drprdy_out_lane2 => drdy_out_lane2_unused_i,
430 drpdo_out_lane2 => drpdo_out_lane2_unused_i,
431 drpwe_in_lane2 => dwe_in_lane2_i,
432 drpaddr_in_lane3 => daddr_in_lane3_i,
433 drpen_in_lane3 => den_in_lane3_i,
434 drpdi_in_lane3 => di_in_lane3_i,
435 drprdy_out_lane3 => drdy_out_lane3_unused_i,
436 drpdo_out_lane3 => drpdo_out_lane3_unused_i,
437 drpwe_in_lane3 => dwe_in_lane3_i,
438 loopback => loopback_i