1 --*****************************************************************************
2 -- (c) Copyright 2009 -
2012 Xilinx, Inc.
All rights reserved.
4 -- This file contains confidential and proprietary information
5 -- of Xilinx, Inc. and is protected under U.S. and
6 -- international copyright and other intellectual property
10 -- This disclaimer is not a license and does not grant any
11 -- rights to the materials distributed herewith. Except as
12 -- otherwise provided in a valid license issued to you by
13 -- Xilinx, and to the maximum extent permitted by applicable
14 -- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS"
AND
15 -- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES
16 -- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING
17 -- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON-
18 -- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and
19 -- (2) Xilinx shall
not be liable (whether
in contract
or tort,
20 -- including negligence, or under any other theory of
21 -- liability) for any loss or damage of any kind or nature
22 -- related to, arising under or in connection with these
23 -- materials, including for any direct, or any indirect,
24 -- special, incidental, or consequential loss or damage
25 -- (including loss of data, profits, goodwill, or any type of
26 -- loss or damage suffered as a result of any action brought
27 -- by a third party) even if such damage or loss was
28 -- reasonably foreseeable or Xilinx had been advised of the
29 -- possibility of the same.
31 -- CRITICAL APPLICATIONS
32 -- Xilinx products are not designed or intended to be fail-
33 -- safe, or for use in any application requiring fail-safe
34 -- performance, such as life-support or safety devices or
35 -- systems, Class III medical devices, nuclear facilities,
36 -- applications related to the deployment of airbags, or any
37 -- other applications that could lead to death, personal
38 -- injury, or severe property or environmental damage
39 -- (individually and collectively, "Critical
40 -- Applications"). Customer assumes the sole risk and
41 -- liability of any use of Xilinx products in Critical
42 -- Applications, subject only to applicable laws and
43 -- regulations governing limitations on product liability.
45 -- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS
46 -- PART OF THIS FILE AT ALL TIMES.
48 --*****************************************************************************
51 -- /___/ \ / Vendor : Xilinx
52 -- \ \ \/ Version : 1.
9
53 -- \ \ Application : MIG
54 -- / / Filename : ddr3_1_9a.vhd
55 -- /___/ /\ Date Last Modified : $Date: 2011/06/02 08:
35:
03 $
56 -- \ \ / \ Date Created : Wed Feb 01 2012
60 -- Design Name : DDR3 SDRAM
62 -- Top-level module. This module can be instantiated in the
63 -- system and interconnect as shown in example design (example_top module).
64 -- In addition to the memory controller, the module instantiates:
65 -- 1. Clock generation/distribution, reset logic
66 -- 2. IDELAY control
block
70 --*****************************************************************************
73 use ieee.std_logic_1164.
all;
74 use ieee.numeric_std.
all;
82 --***************************************************************************
83 -- The following parameters refer to width of various ports
84 --***************************************************************************
86 -- # of memory Bank Address bits.
88 -- # of CK/CK# outputs to memory.
90 -- # of memory Column Address bits.
92 -- # of unique CS outputs to memory.
94 -- # of unique CS outputs per rank for phy
96 -- # of CKE outputs to memory.
97 DATA_BUF_ADDR_WIDTH : := 5;
99 -- = ceil(log2(DQ_WIDTH))
102 -- # of DM (data mask)
106 DQS_CNT_WIDTH : := 2;
107 -- = ceil(log2(DQS_WIDTH))
113 PAYLOAD_WIDTH : := 32;
115 MC_ERR_ADDR_WIDTH : := 31;
117 : := "BANK_ROW_COLUMN";
124 -- # of ODT outputs to memory.
126 -- # of memory Row Address bits.
128 -- # = RANK_WIDTH + BANK_WIDTH
129 -- + ROW_WIDTH + COL_WIDTH;
130 -- Chip Select is always tied to low for
131 -- single rank devices
133 -- # = 1,
When Chip
Select (CS#) output
is enabled
134 -- = 0,
When Chip
Select (CS#) output
is disabled
135 -- If CS_N disabled, user must connect
136 -- DRAM CS_N input(s) to ground
138 -- # = 1,
When Data Mask option
is enabled
139 -- = 0,
When Data Mask option
is disbaled
140 -- When Data Mask option is disabled in
141 -- MIG Controller Options page, the logic
142 -- related to Data Mask should not get
145 -- # = 1,
When ODT output
is enabled
146 -- = 0,
When ODT output
is disabled
147 -- Parameter configuration for Dynamic ODT support:
148 -- USE_ODT_PORT = 0, RTT_NOM =
"DISABLED", RTT_WR =
"60/120".
149 -- This configuration allows to save ODT pin mapping from FPGA.
150 -- The user can tie the ODT input of DRAM to HIGH.
151 PHY_CONTROL_MASTER_BANK : := 1;
152 -- The bank index where master PHY_CONTROL resides,
153 -- equal to the PLL residing bank
154 MEM_DENSITY : := "2Gb";
155 -- Indicates the density of the Memory part
156 -- Added for the sake of Vivado simulations
157 MEM_SPEEDGRADE : := "107E";
158 -- Indicates the Speed grade of Memory Part
159 -- Added for the sake of Vivado simulations
160 MEM_DEVICE_WIDTH : := 16;
161 -- Indicates the device width of the Memory Part
162 -- Added for the sake of Vivado simulations
164 --***************************************************************************
165 -- The following parameters are mode register settings
166 --***************************************************************************
169 -- Additive Latency (Mode Register 1).
170 -- # = "0",
"CL-1",
"CL-2".
172 -- Additive Latency (Extended Mode Register).
174 -- # Additive Latency in number of clock
178 -- Burst Length (Mode Register 0).
179 -- # = "8", "
4",
"OTF".
181 -- Burst Length (Mode Register).
183 BURST_TYPE : := "SEQ";
184 -- DDR3 SDRAM: Burst Type (Mode Register 0).
185 -- DDR2 SDRAM: Burst Type (Mode Register).
186 -- # = "SEQ" - (Sequential),
187 -- = "INT" - (Interleaved).
189 -- in number of clock cycles
190 -- DDR3 SDRAM: CAS Latency (Mode Register 0).
191 -- DDR2 SDRAM: CAS Latency (Mode Register).
193 -- in number of clock cycles
194 -- DDR3 SDRAM: CAS Write Latency (Mode Register 2).
195 -- DDR2 SDRAM: Can be ignored
196 OUTPUT_DRV : := "LOW";
197 -- Output Driver Impedance Control (Mode Register 1).
198 -- # = "HIGH" - RZQ/7,
201 -- RTT_NOM (ODT) (Mode Register 1).
206 -- RTT_WR (ODT) (Mode Register 2).
207 -- # = "OFF" - Dynamic ODT off,
210 ADDR_CMD_MODE : := "1T" ;
213 -- # = "ON" - RDIMMs,
214 -- = "OFF" - Components, SODIMMs, UDIMMs.
215 CA_MIRROR : := "OFF";
216 -- C/A mirror opt for DDR3 dual rank
218 --***************************************************************************
219 -- The following parameters are multiplier and divisor factors for PLLE2.
220 -- Based on the selected design frequency these parameters vary.
221 --***************************************************************************
222 CLKIN_PERIOD : := 4288;
223 -- Input Clock Period
224 CLKFBOUT_MULT : := 8;
225 -- write PLL VCO multiplier
226 DIVCLK_DIVIDE : := 1;
227 -- write PLL VCO divisor
228 CLKOUT0_PHASE : := 337.
5;
229 -- Phase for PLL output clock (CLKOUT0)
230 CLKOUT0_DIVIDE : := 2;
231 -- VCO output divisor for PLL output clock (CLKOUT0)
232 CLKOUT1_DIVIDE : := 2;
233 -- VCO output divisor for PLL output clock (CLKOUT1)
234 CLKOUT2_DIVIDE : := 32;
235 -- VCO output divisor for PLL output clock (CLKOUT2)
236 CLKOUT3_DIVIDE : := 8;
237 -- VCO output divisor for PLL output clock (CLKOUT3)
239 --***************************************************************************
240 -- Memory Timing Parameters. These parameters varies based on the selected
242 --***************************************************************************
244 -- memory tCKE paramter in pS
246 -- memory tRAW paramter in pS.
248 -- memory tPRDI paramter in pS.
250 -- memory tRAS paramter in pS.
252 -- memory tRCD paramter in pS.
254 -- memory tREFI paramter in pS.
256 -- memory tRFC paramter in pS.
258 -- memory tRP paramter in pS.
260 -- memory tRRD paramter in pS.
262 -- memory tRTP paramter in pS.
264 -- memory tWTR paramter in pS.
266 -- memory tZQI paramter in nS.
268 -- memory tZQCS paramter in clock cycles.
270 --***************************************************************************
271 -- Simulation parameters
272 --***************************************************************************
273 SIM_BYPASS_INIT_CAL : := "OFF";
274 -- # = "OFF" - Complete memory init &
275 -- calibration sequence
276 -- # = "SKIP" -
Not supported
277 -- # = "FAST" - Complete memory init &
use
278 -- abbreviated calib sequence
280 SIMULATION : := "FALSE";
281 -- Should be TRUE during design simulations and
282 -- FALSE during implementations
284 --***************************************************************************
285 -- The following parameters varies based on the pin out entered in MIG GUI.
286 -- Do not change any of these parameters directly by editing the RTL.
287 -- Any changes required should be done through GUI and the design regenerated.
288 --***************************************************************************
289 BYTE_LANES_B0 : (3 downto 0) := "0011";
290 -- Byte lanes used in an IO column.
291 BYTE_LANES_B1 : (3 downto 0) := "1111";
292 -- Byte lanes used in an IO column.
293 BYTE_LANES_B2 : (3 downto 0) := "1100";
294 -- Byte lanes used in an IO column.
295 BYTE_LANES_B3 : (3 downto 0) := "0000";
296 -- Byte lanes used in an IO column.
297 BYTE_LANES_B4 : (3 downto 0) := "0000";
298 -- Byte lanes used in an IO column.
299 DATA_CTL_B0 : (3 downto 0) := "0011";
300 -- Indicates Byte lane is data byte lane
301 -- or control Byte lane. '1' in a
302 -- position indicates a data byte lane and
303 -- a '0' indicates a control byte lane
304 DATA_CTL_B1 : (3 downto 0) := "0000";
305 -- Indicates Byte lane is data byte lane
306 -- or control Byte lane. '1' in a
307 -- position indicates a data byte lane and
308 -- a '0' indicates a control byte lane
309 DATA_CTL_B2 : (3 downto 0) := "1100";
310 -- Indicates Byte lane is data byte lane
311 -- or control Byte lane. '1' in a
312 -- position indicates a data byte lane and
313 -- a '0' indicates a control byte lane
314 DATA_CTL_B3 : (3 downto 0) := "0000";
315 -- Indicates Byte lane is data byte lane
316 -- or control Byte lane. '1' in a
317 -- position indicates a data byte lane and
318 -- a '0' indicates a control byte lane
319 DATA_CTL_B4 : (3 downto 0) := "0000";
320 -- Indicates Byte lane is data byte lane
321 -- or control Byte lane. '1' in a
322 -- position indicates a data byte lane and
323 -- a '0' indicates a control byte lane
324 PHY_0_BITLANES : (47 downto 0) := X"00000037F2FF";
325 PHY_1_BITLANES : (47 downto 0) := X"000004F3FDFF";
326 PHY_2_BITLANES : (47 downto 0) := X"3FE3DF000000";
328 -- control/address/data pin mapping parameters
330 : (143 downto 0) := X"000000000000000000000000000000000013";
332 : (191 downto 0) := X"00000010610710A10210510811B10110010B111113122119";
333 BANK_MAP : (35 downto 0) := X"11510311A";
334 CAS_MAP : (11 downto 0) := X"118";
335 CKE_ODT_BYTE_MAP : (7 downto 0) := X"00";
336 CKE_MAP : (95 downto 0) := X"000000000000000000000104";
337 ODT_MAP : (95 downto 0) := X"000000000000000000000112";
338 CS_MAP : (119 downto 0) := X"000000000000000000000000000000";
339 PARITY_MAP : (11 downto 0) := X"000";
340 RAS_MAP : (11 downto 0) := X"110";
341 WE_MAP : (11 downto 0) := X"114";
343 : (143 downto 0) := X"000000000000000000000000000000012223";
344 DATA0_MAP : (95 downto 0) := X"232235237234238231236233";
345 DATA1_MAP : (95 downto 0) := X"220226221224223227228229";
346 DATA2_MAP : (95 downto 0) := X"012015013016018011014019";
347 DATA3_MAP : (95 downto 0) := X"000002001009006003005007";
348 DATA4_MAP : (95 downto 0) := X"000000000000000000000000";
349 DATA5_MAP : (95 downto 0) := X"000000000000000000000000";
350 DATA6_MAP : (95 downto 0) := X"000000000000000000000000";
351 DATA7_MAP : (95 downto 0) := X"000000000000000000000000";
352 DATA8_MAP : (95 downto 0) := X"000000000000000000000000";
353 DATA9_MAP : (95 downto 0) := X"000000000000000000000000";
354 DATA10_MAP : (95 downto 0) := X"000000000000000000000000";
355 DATA11_MAP : (95 downto 0) := X"000000000000000000000000";
356 DATA12_MAP : (95 downto 0) := X"000000000000000000000000";
357 DATA13_MAP : (95 downto 0) := X"000000000000000000000000";
358 DATA14_MAP : (95 downto 0) := X"000000000000000000000000";
359 DATA15_MAP : (95 downto 0) := X"000000000000000000000000";
360 DATA16_MAP : (95 downto 0) := X"000000000000000000000000";
361 DATA17_MAP : (95 downto 0) := X"000000000000000000000000";
362 MASK0_MAP : (107 downto 0) := X"000000000000000004010222239";
363 MASK1_MAP : (107 downto 0) := X"000000000000000000000000000";
365 SLOT_0_CONFIG : (7 downto 0) := "00000001";
367 SLOT_1_CONFIG : (7 downto 0) := "00000000";
370 --***************************************************************************
371 -- IODELAY and PHY related parameters
372 --***************************************************************************
373 IODELAY_HP_MODE : := "ON";
375 IBUF_LPWR_MODE : := "OFF";
377 DATA_IO_IDLE_PWRDWN : := "ON";
379 BANK_TYPE : := "HP_IO";
380 -- # = "HP_IO",
"HPL_IO",
"HR_IO", "HRL_IO"
381 DATA_IO_PRIM_TYPE : := "HP_LP";
382 -- # = "HP_LP",
"HR_LP", "DEFAULT"
383 CKE_ODT_AUX : := "FALSE";
384 USER_REFRESH : := "OFF";
386 -- # = "ON" - DDR3 SDRAM
387 -- = "OFF" - DDR2 SDRAM.
388 ORDERING : := "NORM";
389 -- # = "NORM",
"STRICT",
"RELAXED".
390 CALIB_ROW_ADD : (15 downto 0) := X"0000";
391 -- Calibration row address will be used for
392 -- calibration read and write operations
393 CALIB_COL_ADD : (11 downto 0) := X"000";
394 -- Calibration column address will be used for
395 -- calibration read and write operations
396 CALIB_BA_ADD : (2 downto 0) := "000";
397 -- Calibration bank address will be used for
398 -- calibration read and write operations
400 IODELAY_GRP : := "IODELAY_MIG";
401 -- It is associated to a set of IODELAYs with
402 -- an IDELAYCTRL that have same IODELAY CONTROLLER
404 SYSCLK_TYPE : := "DIFFERENTIAL";
405 -- System clock type DIFFERENTIAL, SINGLE_ENDED,
407 REFCLK_TYPE : := "NO_BUFFER";
408 -- Reference clock type DIFFERENTIAL, SINGLE_ENDED
409 -- NO_BUFFER, USE_SYSTEM_CLOCK
410 SYS_RST_PORT : := "FALSE";
411 -- "TRUE" -
if pin
is selected
for sys_rst
412 -- and IBUF will be instantiated.
413 -- "FALSE" -
if pin
is not selected
for sys_rst
415 CMD_PIPE_PLUS1 : := "ON";
416 -- add pipeline stage between MC and PHY
417 DRAM_TYPE : := "DDR3";
418 CAL_WIDTH : := "HALF";
422 --***************************************************************************
423 -- Referece clock frequency parameters
424 --***************************************************************************
425 REFCLK_FREQ : := 200.
0;
426 -- IODELAYCTRL reference clock frequency
427 DIFF_TERM_REFCLK : := "TRUE";
428 -- Differential Termination for idelay
429 -- reference clock input pins
430 --***************************************************************************
431 -- System clock frequency parameters
432 --***************************************************************************
434 -- memory tCK paramter.
435 -- # = Clock Period in pS.
437 -- # of memory CKs per fabric CLK
438 DIFF_TERM_SYSCLK : := "FALSE";
439 -- Differential Termination for System
442 --***************************************************************************
444 --***************************************************************************
445 DEBUG_PORT : := "OFF";
446 -- # = "ON" Enable debug signals/controls.
447 -- = "OFF" Disable debug signals/controls.
449 --***************************************************************************
450 -- Temparature monitor parameter
451 --***************************************************************************
452 TEMP_MON_CONTROL : := "EXTERNAL";
453 -- # = "INTERNAL", "EXTERNAL"
456 -- =1 for active low reset,
457 -- =0 for active high.
463 ddr3_dq : inout (DQ_WIDTH-1 downto 0);
464 ddr3_dqs_p : inout (DQS_WIDTH-1 downto 0);
465 ddr3_dqs_n : inout (DQS_WIDTH-1 downto 0);
468 ddr3_addr : out (ROW_WIDTH-1 downto 0);
469 ddr3_ba : out (BANK_WIDTH-1 downto 0);
474 ddr3_ck_p : out (CK_WIDTH-1 downto 0);
475 ddr3_ck_n : out (CK_WIDTH-1 downto 0);
476 ddr3_cke : out (CKE_WIDTH-1 downto 0);
478 ddr3_dm : out (DM_WIDTH-1 downto 0);
479 ddr3_odt : out (ODT_WIDTH-1 downto 0);
482 -- Differential system clocks
485 -- Single-ended iodelayctrl clk (reference clock)
487 -- user interface signals
488 app_addr : in (ADDR_WIDTH-1 downto 0);
489 app_cmd : in (2 downto 0);
491 app_wdf_data : in ((nCK_PER_CLK*2*PAYLOAD_WIDTH)-1 downto 0);
493 app_wdf_mask : in ((nCK_PER_CLK*2*PAYLOAD_WIDTH)/8-1 downto 0) ;
495 app_rd_data : out ((nCK_PER_CLK*2*PAYLOAD_WIDTH)-1 downto 0);
496 app_rd_data_end : out ;
497 app_rd_data_valid : out ;
501 app_sr_active : out ;
507 ui_clk_sync_rst : out ;
511 init_calib_complete : out ;
512 device_temp_i : in (11 downto 0);
513 -- The 12 MSB bits
of the temperature sensor transfer
514 -- function need to be connected to this port. This port
515 -- will be synchronized w.r.t. to fabric clock internally.
518 -- System reset - Default polarity of sys_rst pin is Active Low.
519 -- System reset polarity will change based on the option
524 end entity ddr3_1_9a;
529 -- clogb2 function - ceiling of log base 2
530 function clogb2 (size : )
return is
531 variable base : := 1;
541 function TEMP_MON return is
543 if(SIMULATION = "FALSE") then
552 constant BM_CNT_WIDTH : := clogb2(nBANK_MACHS);
553 constant RANK_WIDTH : := clogb2(RANKS);
555 constant APP_DATA_WIDTH : := 2 * nCK_PER_CLK * PAYLOAD_WIDTH;
556 constant APP_MASK_WIDTH : := APP_DATA_WIDTH / 8;
557 constant TEMP_MON_EN : := TEMP_MON;
558 -- Enable or disable the temp monitor module
559 constant tTEMPSAMPLE : := 10000000;
-- sample every 10 us
560 constant XADC_CLK_PERIOD : := 5000;
-- Use 200 MHz IODELAYCTRL clock
584 iodelay_ctrl_rdy :
out
586 end component mig_7series_v1_9_iodelay_ctrl;
599 end component mig_7series_v1_9_clk_ibuf;
619 iodelay_ctrl_rdy :
in ;
625 ui_addn_clk_0 :
out ;
626 ui_addn_clk_1 :
out ;
627 ui_addn_clk_2 :
out ;
628 ui_addn_clk_3 :
out ;
629 ui_addn_clk_4 :
out ;
633 rst_phaser_ref :
out ;
636 end component mig_7series_v1_9_infrastructure;
649 device_temp_i :
in (
11 downto 0);
650 device_temp :
out (
11 downto 0)
652 end component mig_7series_v1_9_tempmon;
665 DATA_BUF_ADDR_WIDTH : ;
677 MC_ERR_ADDR_WIDTH : ;
713 SIM_BYPASS_INIT_CAL : ;
714 BYTE_LANES_B0 : (
3 downto 0);
715 BYTE_LANES_B1 : (
3 downto 0);
716 BYTE_LANES_B2 : (
3 downto 0);
717 BYTE_LANES_B3 : (
3 downto 0);
718 BYTE_LANES_B4 : (
3 downto 0);
719 DATA_CTL_B0 : (
3 downto 0);
720 DATA_CTL_B1 : (
3 downto 0);
721 DATA_CTL_B2 : (
3 downto 0);
722 DATA_CTL_B3 : (
3 downto 0);
723 DATA_CTL_B4 : (
3 downto 0);
724 PHY_0_BITLANES : (
47 downto 0);
725 PHY_1_BITLANES : (
47 downto 0);
726 PHY_2_BITLANES : (
47 downto 0);
727 CK_BYTE_MAP : (
143 downto 0);
728 ADDR_MAP : (
191 downto 0);
729 BANK_MAP : (
35 downto 0);
730 CAS_MAP : (
11 downto 0);
731 CKE_ODT_BYTE_MAP : (
7 downto 0);
732 CKE_MAP : (
95 downto 0);
733 ODT_MAP : (
95 downto 0);
734 CS_MAP : (
119 downto 0);
735 PARITY_MAP : (
11 downto 0);
736 RAS_MAP : (
11 downto 0);
737 WE_MAP : (
11 downto 0);
738 DQS_BYTE_MAP : (
143 downto 0);
739 DATA0_MAP : (
95 downto 0);
740 DATA1_MAP : (
95 downto 0);
741 DATA2_MAP : (
95 downto 0);
742 DATA3_MAP : (
95 downto 0);
743 DATA4_MAP : (
95 downto 0);
744 DATA5_MAP : (
95 downto 0);
745 DATA6_MAP : (
95 downto 0);
746 DATA7_MAP : (
95 downto 0);
747 DATA8_MAP : (
95 downto 0);
748 DATA9_MAP : (
95 downto 0);
749 DATA10_MAP : (
95 downto 0);
750 DATA11_MAP : (
95 downto 0);
751 DATA12_MAP : (
95 downto 0);
752 DATA13_MAP : (
95 downto 0);
753 DATA14_MAP : (
95 downto 0);
754 DATA15_MAP : (
95 downto 0);
755 DATA16_MAP : (
95 downto 0);
756 DATA17_MAP : (
95 downto 0);
757 MASK0_MAP : (
107 downto 0);
758 MASK1_MAP : (
107 downto 0);
759 SLOT_0_CONFIG : (
7 downto 0);
760 SLOT_1_CONFIG : (
7 downto 0);
764 DATA_IO_IDLE_PWRDWN : ;
766 DATA_IO_PRIM_TYPE : ;
772 CALIB_ROW_ADD : (
15 downto 0);
773 CALIB_COL_ADD : (
11 downto 0);
774 CALIB_BA_ADD : (
2 downto 0);
794 rst_phaser_ref :
in ;
797 ddr_dq :
inout (DQ_WIDTH
-1 downto 0);
798 ddr_dqs_n :
inout (DQS_WIDTH
-1 downto 0);
799 ddr_dqs :
inout (DQS_WIDTH
-1 downto 0);
800 ddr_addr :
out (ROW_WIDTH
-1 downto 0);
801 ddr_ba :
out (BANK_WIDTH
-1 downto 0);
803 ddr_ck_n :
out (CK_WIDTH
-1 downto 0);
804 ddr_ck :
out (CK_WIDTH
-1 downto 0);
805 ddr_cke :
out (CKE_WIDTH
-1 downto 0);
806 ddr_cs_n :
out ((CS_WIDTH*nCS_PER_RANK)
-1 downto 0);
807 ddr_dm :
out (DM_WIDTH
-1 downto 0);
808 ddr_odt :
out (ODT_WIDTH
-1 downto 0);
814 bank_mach_next :
out (BM_CNT_WIDTH
-1 downto 0);
816 app_addr :
in (ADDR_WIDTH
-1 downto 0);
817 app_cmd :
in (
2 downto 0);
820 app_wdf_data :
in ((nCK_PER_CLK*
2*PAYLOAD_WIDTH)
-1 downto 0);
822 app_wdf_mask :
in ((nCK_PER_CLK*
2*PAYLOAD_WIDTH)/
8-1 downto 0);
824 app_correct_en_i :
in ;
825 app_raw_not_ecc :
in (
2*nCK_PER_CLK
-1 downto 0);
826 app_ecc_multiple_err :
out (
2*nCK_PER_CLK
-1 downto 0);
827 app_rd_data :
out ((nCK_PER_CLK*
2*PAYLOAD_WIDTH)
-1 downto 0);
828 app_rd_data_end :
out ;
829 app_rd_data_valid :
out ;
833 app_sr_active :
out ;
839 device_temp :
in (
11 downto 0);
841 dbg_idel_down_all :
in ;
842 dbg_idel_down_cpt :
in ;
843 dbg_idel_up_all :
in ;
844 dbg_idel_up_cpt :
in ;
845 dbg_sel_all_idel_cpt :
in ;
846 dbg_sel_idel_cpt :
in (DQS_CNT_WIDTH
-1 downto 0);
847 dbg_cpt_first_edge_cnt :
out (
6*DQS_WIDTH*RANKS
-1 downto 0);
848 dbg_cpt_second_edge_cnt :
out (
6*DQS_WIDTH*RANKS
-1 downto 0);
849 dbg_rd_data_edge_detect :
out (DQS_WIDTH
-1 downto 0);
850 dbg_rddata :
out (
2*nCK_PER_CLK*DQ_WIDTH
-1 downto 0);
851 dbg_rdlvl_done :
out (
1 downto 0);
852 dbg_rdlvl_err :
out (
1 downto 0);
853 dbg_rdlvl_start :
out (
1 downto 0);
854 dbg_tap_cnt_during_wrlvl :
out (
5 downto 0);
855 dbg_wl_edge_detect_valid :
out ;
856 dbg_wrlvl_done :
out ;
857 dbg_wrlvl_err :
out ;
858 dbg_wrlvl_start :
out ;
859 dbg_final_po_fine_tap_cnt :
out (
6*DQS_WIDTH
-1 downto 0);
860 dbg_final_po_coarse_tap_cnt :
out (
3*DQS_WIDTH
-1 downto 0);
861 init_calib_complete :
out ;
862 dbg_sel_pi_incdec :
in ;
863 dbg_sel_po_incdec :
in ;
864 dbg_byte_sel :
in (DQS_CNT_WIDTH
downto 0);
868 dbg_po_f_stg23_sel :
in ;
870 dbg_cpt_tap_cnt :
out (
6*DQS_WIDTH*RANKS
-1 downto 0);
871 dbg_dq_idelay_tap_cnt :
out (
5*DQS_WIDTH*RANKS
-1 downto 0);
872 dbg_rddata_valid :
out ;
873 dbg_wrlvl_fine_tap_cnt :
out (
6*DQS_WIDTH
-1 downto 0);
874 dbg_wrlvl_coarse_tap_cnt :
out (
3*DQS_WIDTH
-1 downto 0);
875 dbg_rd_data_offset :
out (
6*RANKS
-1 downto 0);
876 dbg_calib_top :
out (
255 downto 0);
877 dbg_phy_wrlvl :
out (
255 downto 0);
878 dbg_phy_rdlvl :
out (
255 downto 0);
879 dbg_phy_wrcal :
out (
99 downto 0);
880 dbg_phy_init :
out (
255 downto 0);
881 dbg_prbs_rdlvl :
out (
255 downto 0);
882 dbg_dqs_found_cal :
out (
255 downto 0);
883 dbg_pi_counter_read_val :
out (
5 downto 0);
884 dbg_po_counter_read_val :
out (
8 downto 0);
885 dbg_pi_phaselock_start :
out ;
886 dbg_pi_phaselocked_done :
out ;
887 dbg_pi_phaselock_err :
out ;
888 dbg_pi_dqsfound_start :
out ;
889 dbg_pi_dqsfound_done :
out ;
890 dbg_pi_dqsfound_err :
out ;
891 dbg_wrcal_start :
out ;
892 dbg_wrcal_done :
out ;
893 dbg_wrcal_err :
out ;
894 dbg_pi_dqs_found_lanes_phy4lanes :
out (
11 downto 0);
895 dbg_pi_phase_locked_phy4lanes :
out (
11 downto 0);
896 dbg_calib_rd_data_offset_1 :
out (
6*RANKS
-1 downto 0);
897 dbg_calib_rd_data_offset_2 :
out (
6*RANKS
-1 downto 0);
898 dbg_data_offset :
out (
5 downto 0);
899 dbg_data_offset_1 :
out (
5 downto 0);
900 dbg_data_offset_2 :
out (
5 downto 0);
901 dbg_oclkdelay_calib_start :
out ;
902 dbg_oclkdelay_calib_done :
out ;
903 dbg_phy_oclkdelay_cal :
out (
255 downto 0);
904 dbg_oclkdelay_rd_data :
out (DRAM_WIDTH*
16-1 downto 0)
906 end component mig_7series_v1_9_memc_ui_top_std;
909 -- Signal declarations
911 signal bank_mach_next : (BM_CNT_WIDTH-1 downto 0);
914 signal iodelay_ctrl_rdy : ;
915 signal clk_ref_in : ;
917 signal freq_refclk : ;
918 signal mem_refclk : ;
919 signal pll_locked : ;
920 signal sync_pulse : ;
921 signal ref_dll_lock : ;
922 signal rst_phaser_ref : ;
926 signal app_ecc_multiple_err : (2*nCK_PER_CLK-1 downto 0);
927 signal ddr3_parity : ;
929 signal init_calib_complete_i : ;
935 signal device_temp : (11 downto 0);
937 -- Debug port signals
938 signal dbg_idel_down_all : ;
939 signal dbg_idel_down_cpt : ;
940 signal dbg_idel_up_all : ;
941 signal dbg_idel_up_cpt : ;
942 signal dbg_sel_all_idel_cpt : ;
943 signal dbg_sel_idel_cpt : (DQS_CNT_WIDTH-1 downto 0);
944 signal dbg_po_f_stg23_sel : ;
945 signal dbg_sel_pi_incdec : ;
946 signal dbg_sel_po_incdec : ;
947 signal dbg_byte_sel : (DQS_CNT_WIDTH downto 0);
948 signal dbg_pi_f_inc : ;
949 signal dbg_po_f_inc : ;
950 signal dbg_pi_f_dec : ;
951 signal dbg_po_f_dec : ;
952 signal dbg_pi_counter_read_val : (5 downto 0);
953 signal dbg_po_counter_read_val : (8 downto 0);
954 signal dbg_cpt_tap_cnt : (6*DQS_WIDTH*RANKS-1 downto 0);
955 signal dbg_dq_idelay_tap_cnt : (5*DQS_WIDTH*RANKS-1 downto 0);
956 signal dbg_calib_top : (255 downto 0);
957 signal dbg_cpt_first_edge_cnt : (6*DQS_WIDTH*RANKS-1 downto 0);
958 signal dbg_cpt_second_edge_cnt : (6*DQS_WIDTH*RANKS-1 downto 0);
959 signal dbg_rd_data_offset : (6*RANKS-1 downto 0);
960 signal dbg_phy_rdlvl : (255 downto 0);
961 signal dbg_phy_wrcal : (99 downto 0);
962 signal dbg_final_po_fine_tap_cnt : (6*DQS_WIDTH-1 downto 0);
963 signal dbg_final_po_coarse_tap_cnt : (3*DQS_WIDTH-1 downto 0);
964 signal dbg_phy_wrlvl : (255 downto 0);
965 signal dbg_phy_init : (255 downto 0);
966 signal dbg_prbs_rdlvl : (255 downto 0);
967 signal dbg_dqs_found_cal : (255 downto 0);
968 signal dbg_pi_phaselock_start : ;
969 signal dbg_pi_phaselocked_done : ;
970 signal dbg_pi_phaselock_err : ;
971 signal dbg_pi_dqsfound_start : ;
972 signal dbg_pi_dqsfound_done : ;
973 signal dbg_pi_dqsfound_err : ;
974 signal dbg_wrcal_start : ;
975 signal dbg_wrcal_done : ;
976 signal dbg_wrcal_err : ;
977 signal dbg_pi_dqs_found_lanes_phy4lanes : (11 downto 0);
978 signal dbg_pi_phase_locked_phy4lanes : (11 downto 0);
979 signal dbg_oclkdelay_calib_start : ;
980 signal dbg_oclkdelay_calib_done : ;
981 signal dbg_phy_oclkdelay_cal : (255 downto 0);
982 signal dbg_oclkdelay_rd_data : (DRAM_WIDTH*16-1 downto 0);
983 signal dbg_rd_data_edge_detect : (DQS_WIDTH-1 downto 0);
984 signal dbg_rddata : (2*nCK_PER_CLK*DQ_WIDTH-1 downto 0);
985 signal dbg_rddata_valid : ;
986 signal dbg_rdlvl_done : (1 downto 0);
987 signal dbg_rdlvl_err : (1 downto 0);
988 signal dbg_rdlvl_start : (1 downto 0);
989 signal dbg_wrlvl_fine_tap_cnt : (6*DQS_WIDTH-1 downto 0);
990 signal dbg_wrlvl_coarse_tap_cnt : (3*DQS_WIDTH-1 downto 0);
991 signal dbg_tap_cnt_during_wrlvl : (5 downto 0);
992 signal dbg_wl_edge_detect_valid : ;
993 signal dbg_wrlvl_done : ;
994 signal dbg_wrlvl_err : ;
995 signal dbg_wrlvl_start : ;
996 signal dbg_rddata_r : (63 downto 0);
997 signal dbg_rddata_valid_r : ;
998 signal ocal_tap_cnt : (53 downto 0);
999 signal dbg_dqs : (3 downto 0);
1000 signal dbg_bit : (8 downto 0);
1001 signal rd_data_edge_detect_r : (8 downto 0);
1002 signal wl_po_fine_cnt : (53 downto 0);
1003 signal wl_po_coarse_cnt : (26 downto 0);
1004 signal dbg_calib_rd_data_offset_1 : (6*RANKS-1 downto 0);
1005 signal dbg_calib_rd_data_offset_2 : (6*RANKS-1 downto 0);
1006 signal dbg_data_offset : (5 downto 0);
1007 signal dbg_data_offset_1 : (5 downto 0);
1008 signal dbg_data_offset_2 : (5 downto 0);
1009 signal all_zeros : (2*nCK_PER_CLK-1 downto 0) := (others => '0');
1014 --***************************************************************************
1021 ui_clk_sync_rst <= rst;
1026 init_calib_complete <= init_calib_complete_i;
1030 clk_ref_in_use_sys_clk : if (REFCLK_TYPE = "USE_SYSTEM_CLOCK") generate
1031 clk_ref_in <= mmcm_clk;
1034 clk_ref_in_others : if (REFCLK_TYPE /= "USE_SYSTEM_CLOCK") generate
1035 clk_ref_in <= clk_ref_i;
1042 IODELAY_GRP => IODELAY_GRP,
1043 REFCLK_TYPE => REFCLK_TYPE,
1044 SYSCLK_TYPE => SYSCLK_TYPE,
1045 SYS_RST_PORT => SYS_RST_PORT,
1046 RST_ACT_LOW => RST_ACT_LOW,
1047 DIFF_TERM_REFCLK => DIFF_TERM_REFCLK
1052 iodelay_ctrl_rdy => iodelay_ctrl_rdy,
1053 sys_rst_o => sys_rst_o,
1056 clk_ref_p => clk_ref_p,
1057 clk_ref_n => clk_ref_n,
1058 clk_ref_i => clk_ref_in,
1064 SYSCLK_TYPE => SYSCLK_TYPE,
1065 DIFF_TERM_SYSCLK => DIFF_TERM_SYSCLK
1069 sys_clk_p => sys_clk_p,
1070 sys_clk_n => sys_clk_n,
1071 sys_clk_i => sys_clk_i,
1072 mmcm_clk => mmcm_clk
1074 -- Temperature monitoring logic
1076 temp_mon_enabled : if (TEMP_MON_EN = "ON") generate
1081 TEMP_MON_CONTROL => TEMP_MON_CONTROL,
1082 XADC_CLK_PERIOD => XADC_CLK_PERIOD,
1083 tTEMPSAMPLE => tTEMPSAMPLE
1088 xadc_clk => clk_ref,
1090 device_temp_i => device_temp_i,
1091 device_temp => device_temp
1095 temp_mon_disabled : if (TEMP_MON_EN /= "ON") generate
1096 device_temp <= (others => '0');
1104 nCK_PER_CLK => nCK_PER_CLK,
1105 CLKIN_PERIOD => CLKIN_PERIOD,
1106 SYSCLK_TYPE => SYSCLK_TYPE,
1107 CLKFBOUT_MULT => CLKFBOUT_MULT,
1108 DIVCLK_DIVIDE => DIVCLK_DIVIDE,
1109 CLKOUT0_PHASE => CLKOUT0_PHASE,
1110 CLKOUT0_DIVIDE => CLKOUT0_DIVIDE ,
1111 CLKOUT1_DIVIDE => CLKOUT1_DIVIDE ,
1112 CLKOUT2_DIVIDE => CLKOUT2_DIVIDE ,
1113 CLKOUT3_DIVIDE => CLKOUT3_DIVIDE ,
1114 RST_ACT_LOW => RST_ACT_LOW
1121 mem_refclk => mem_refclk,
1122 freq_refclk => freq_refclk,
1123 sync_pulse => sync_pulse,
1125 ui_addn_clk_0 =>
open,
1126 ui_addn_clk_1 =>
open,
1127 ui_addn_clk_2 =>
open,
1128 ui_addn_clk_3 =>
open,
1129 ui_addn_clk_4 =>
open,
1130 pll_locked => pll_locked,
1131 mmcm_locked =>
open,
1132 rst_phaser_ref => rst_phaser_ref ,
1134 mmcm_clk => mmcm_clk,
1135 sys_rst => sys_rst_o,
1136 iodelay_ctrl_rdy => iodelay_ctrl_rdy,
1137 ref_dll_lock => ref_dll_lock
1144 ADDR_CMD_MODE => ADDR_CMD_MODE,
1146 PAYLOAD_WIDTH => PAYLOAD_WIDTH,
1147 BANK_WIDTH => BANK_WIDTH,
1148 BM_CNT_WIDTH => BM_CNT_WIDTH,
1149 BURST_MODE => BURST_MODE,
1150 BURST_TYPE => BURST_TYPE,
1151 CA_MIRROR => CA_MIRROR,
1152 CK_WIDTH => CK_WIDTH,
1153 COL_WIDTH => COL_WIDTH,
1154 CMD_PIPE_PLUS1 => CMD_PIPE_PLUS1 ,
1155 CS_WIDTH => CS_WIDTH,
1156 nCS_PER_RANK => nCS_PER_RANK,
1157 CKE_WIDTH => CKE_WIDTH,
1158 DATA_WIDTH => DATA_WIDTH,
1159 DATA_BUF_ADDR_WIDTH => DATA_BUF_ADDR_WIDTH,
1160 DM_WIDTH => DM_WIDTH,
1161 DQ_CNT_WIDTH => DQ_CNT_WIDTH,
1162 DQ_WIDTH => DQ_WIDTH,
1163 DQS_CNT_WIDTH => DQS_CNT_WIDTH,
1164 DQS_WIDTH => DQS_WIDTH,
1165 DRAM_TYPE => DRAM_TYPE,
1166 DRAM_WIDTH => DRAM_WIDTH,
1168 ECC_WIDTH => ECC_WIDTH,
1169 ECC_TEST => ECC_TEST,
1170 MC_ERR_ADDR_WIDTH => MC_ERR_ADDR_WIDTH,
1171 REFCLK_FREQ => REFCLK_FREQ,
1173 nBANK_MACHS => nBANK_MACHS,
1174 CKE_ODT_AUX => CKE_ODT_AUX,
1175 nCK_PER_CLK => nCK_PER_CLK,
1176 ORDERING => ORDERING,
1177 OUTPUT_DRV => OUTPUT_DRV,
1178 IBUF_LPWR_MODE => IBUF_LPWR_MODE ,
1179 IODELAY_HP_MODE => IODELAY_HP_MODE,
1180 DATA_IO_IDLE_PWRDWN => DATA_IO_IDLE_PWRDWN,
1181 BANK_TYPE => BANK_TYPE,
1182 DATA_IO_PRIM_TYPE => DATA_IO_PRIM_TYPE,
1183 IODELAY_GRP => IODELAY_GRP,
1184 REG_CTRL => REG_CTRL,
1203 USER_REFRESH => USER_REFRESH,
1204 TEMP_MON_EN => TEMP_MON_EN,
1206 DEBUG_PORT => DEBUG_PORT,
1207 CAL_WIDTH => CAL_WIDTH,
1208 RANK_WIDTH => RANK_WIDTH,
1210 ODT_WIDTH => ODT_WIDTH,
1211 ROW_WIDTH => ROW_WIDTH,
1212 ADDR_WIDTH => ADDR_WIDTH,
1213 APP_DATA_WIDTH => APP_DATA_WIDTH ,
1214 APP_MASK_WIDTH => APP_MASK_WIDTH ,
1215 SIM_BYPASS_INIT_CAL => SIM_BYPASS_INIT_CAL,
1216 BYTE_LANES_B0 => BYTE_LANES_B0,
1217 BYTE_LANES_B1 => BYTE_LANES_B1,
1218 BYTE_LANES_B2 => BYTE_LANES_B2,
1219 BYTE_LANES_B3 => BYTE_LANES_B3,
1220 BYTE_LANES_B4 => BYTE_LANES_B4,
1221 DATA_CTL_B0 => DATA_CTL_B0,
1222 DATA_CTL_B1 => DATA_CTL_B1,
1223 DATA_CTL_B2 => DATA_CTL_B2,
1224 DATA_CTL_B3 => DATA_CTL_B3,
1225 DATA_CTL_B4 => DATA_CTL_B4,
1226 PHY_0_BITLANES => PHY_0_BITLANES ,
1227 PHY_1_BITLANES => PHY_1_BITLANES ,
1228 PHY_2_BITLANES => PHY_2_BITLANES ,
1229 CK_BYTE_MAP => CK_BYTE_MAP,
1230 ADDR_MAP => ADDR_MAP,
1231 BANK_MAP => BANK_MAP,
1233 CKE_ODT_BYTE_MAP => CKE_ODT_BYTE_MAP,
1237 PARITY_MAP => PARITY_MAP,
1240 DQS_BYTE_MAP => DQS_BYTE_MAP,
1241 DATA0_MAP => DATA0_MAP,
1242 DATA1_MAP => DATA1_MAP,
1243 DATA2_MAP => DATA2_MAP,
1244 DATA3_MAP => DATA3_MAP,
1245 DATA4_MAP => DATA4_MAP,
1246 DATA5_MAP => DATA5_MAP,
1247 DATA6_MAP => DATA6_MAP,
1248 DATA7_MAP => DATA7_MAP,
1249 DATA8_MAP => DATA8_MAP,
1250 DATA9_MAP => DATA9_MAP,
1251 DATA10_MAP => DATA10_MAP,
1252 DATA11_MAP => DATA11_MAP,
1253 DATA12_MAP => DATA12_MAP,
1254 DATA13_MAP => DATA13_MAP,
1255 DATA14_MAP => DATA14_MAP,
1256 DATA15_MAP => DATA15_MAP,
1257 DATA16_MAP => DATA16_MAP,
1258 DATA17_MAP => DATA17_MAP,
1259 MASK0_MAP => MASK0_MAP,
1260 MASK1_MAP => MASK1_MAP,
1261 CALIB_ROW_ADD => CALIB_ROW_ADD,
1262 CALIB_COL_ADD => CALIB_COL_ADD,
1263 CALIB_BA_ADD => CALIB_BA_ADD,
1264 SLOT_0_CONFIG => SLOT_0_CONFIG,
1265 SLOT_1_CONFIG => SLOT_1_CONFIG,
1266 MEM_ADDR_ORDER => MEM_ADDR_ORDER ,
1267 STARVE_LIMIT => STARVE_LIMIT,
1268 USE_CS_PORT => USE_CS_PORT,
1269 USE_DM_PORT => USE_DM_PORT,
1270 USE_ODT_PORT => USE_ODT_PORT,
1271 MASTER_PHY_CTL => PHY_CONTROL_MASTER_BANK
1276 mem_refclk => mem_refclk,
--memory clock
1277 freq_refclk => freq_refclk,
1278 pll_lock => pll_locked,
1279 sync_pulse => sync_pulse,
1281 rst_phaser_ref => rst_phaser_ref ,
1282 ref_dll_lock => ref_dll_lock,
1284 -- Memory interface ports
1286 ddr_dqs_n => ddr3_dqs_n,
1287 ddr_dqs => ddr3_dqs_p,
1288 ddr_addr => ddr3_addr,
1290 ddr_cas_n => ddr3_cas_n,
1291 ddr_ck_n => ddr3_ck_n,
1292 ddr_ck => ddr3_ck_p,
1293 ddr_cke => ddr3_cke,
1296 ddr_odt => ddr3_odt,
1297 ddr_ras_n => ddr3_ras_n,
1298 ddr_reset_n => ddr3_reset_n,
1299 ddr_parity => ddr3_parity,
1300 ddr_we_n => ddr3_we_n,
1301 bank_mach_next => bank_mach_next ,
1303 -- Application interface ports
1304 app_addr => app_addr,
1308 app_wdf_data => app_wdf_data,
1309 app_wdf_end => app_wdf_end,
1310 app_wdf_mask => app_wdf_mask,
1311 app_wdf_wren => app_wdf_wren,
1312 app_ecc_multiple_err => app_ecc_multiple_err,
1313 app_rd_data => app_rd_data,
1314 app_rd_data_end => app_rd_data_end ,
1315 app_rd_data_valid => app_rd_data_valid ,
1317 app_wdf_rdy => app_wdf_rdy,
1318 app_sr_req => app_sr_req,
1319 app_sr_active => app_sr_active ,
1320 app_ref_req => app_ref_req,
1321 app_ref_ack => app_ref_ack,
1322 app_zq_req => app_zq_req,
1323 app_zq_ack => app_zq_ack,
1324 app_raw_not_ecc => all_zeros,
1325 app_correct_en_i => '1',
1327 device_temp => device_temp,
1329 -- Debug logic ports
1330 dbg_idel_up_all => dbg_idel_up_all ,
1331 dbg_idel_down_all => dbg_idel_down_all ,
1332 dbg_idel_up_cpt => dbg_idel_up_cpt ,
1333 dbg_idel_down_cpt => dbg_idel_down_cpt ,
1334 dbg_sel_idel_cpt => dbg_sel_idel_cpt ,
1335 dbg_sel_all_idel_cpt => dbg_sel_all_idel_cpt,
1336 dbg_sel_pi_incdec => dbg_sel_pi_incdec ,
1337 dbg_sel_po_incdec => dbg_sel_po_incdec ,
1338 dbg_byte_sel => dbg_byte_sel,
1339 dbg_pi_f_inc => dbg_pi_f_inc,
1340 dbg_pi_f_dec => dbg_pi_f_dec,
1341 dbg_po_f_inc => dbg_po_f_inc,
1342 dbg_po_f_stg23_sel => dbg_po_f_stg23_sel,
1343 dbg_po_f_dec => dbg_po_f_dec,
1344 dbg_cpt_tap_cnt => dbg_cpt_tap_cnt ,
1345 dbg_dq_idelay_tap_cnt => dbg_dq_idelay_tap_cnt,
1346 dbg_calib_top => dbg_calib_top ,
1347 dbg_cpt_first_edge_cnt => dbg_cpt_first_edge_cnt,
1348 dbg_cpt_second_edge_cnt => dbg_cpt_second_edge_cnt ,
1349 dbg_rd_data_offset => dbg_rd_data_offset,
1350 dbg_phy_rdlvl => dbg_phy_rdlvl ,
1351 dbg_phy_wrcal => dbg_phy_wrcal ,
1352 dbg_final_po_fine_tap_cnt => dbg_final_po_fine_tap_cnt,
1353 dbg_final_po_coarse_tap_cnt => dbg_final_po_coarse_tap_cnt,
1354 dbg_rd_data_edge_detect => dbg_rd_data_edge_detect ,
1355 dbg_rddata => dbg_rddata,
1356 dbg_rddata_valid => dbg_rddata_valid ,
1357 dbg_rdlvl_done => dbg_rdlvl_done ,
1358 dbg_rdlvl_err => dbg_rdlvl_err ,
1359 dbg_rdlvl_start => dbg_rdlvl_start ,
1360 dbg_wrlvl_fine_tap_cnt => dbg_wrlvl_fine_tap_cnt,
1361 dbg_wrlvl_coarse_tap_cnt => dbg_wrlvl_coarse_tap_cnt,
1362 dbg_tap_cnt_during_wrlvl => dbg_tap_cnt_during_wrlvl,
1363 dbg_wl_edge_detect_valid => dbg_wl_edge_detect_valid,
1364 dbg_wrlvl_done => dbg_wrlvl_done,
1365 dbg_wrlvl_err => dbg_wrlvl_err ,
1366 dbg_wrlvl_start => dbg_wrlvl_start ,
1367 dbg_phy_wrlvl => dbg_phy_wrlvl ,
1368 dbg_phy_init => dbg_phy_init,
1369 dbg_prbs_rdlvl => dbg_prbs_rdlvl ,
1370 dbg_dqs_found_cal => dbg_dqs_found_cal ,
1371 dbg_pi_counter_read_val => dbg_pi_counter_read_val,
1372 dbg_po_counter_read_val => dbg_po_counter_read_val,
1373 dbg_pi_phaselock_start => dbg_pi_phaselock_start,
1374 dbg_pi_phaselocked_done => dbg_pi_phaselocked_done ,
1375 dbg_pi_phaselock_err => dbg_pi_phaselock_err,
1376 dbg_pi_phase_locked_phy4lanes => dbg_pi_phase_locked_phy4lanes,
1377 dbg_pi_dqsfound_start => dbg_pi_dqsfound_start,
1378 dbg_pi_dqsfound_done => dbg_pi_dqsfound_done,
1379 dbg_pi_dqsfound_err => dbg_pi_dqsfound_err,
1380 dbg_pi_dqs_found_lanes_phy4lanes => dbg_pi_dqs_found_lanes_phy4lanes,
1381 dbg_calib_rd_data_offset_1 => dbg_calib_rd_data_offset_1,
1382 dbg_calib_rd_data_offset_2 => dbg_calib_rd_data_offset_2,
1383 dbg_data_offset => dbg_data_offset ,
1384 dbg_data_offset_1 => dbg_data_offset_1 ,
1385 dbg_data_offset_2 => dbg_data_offset_2 ,
1386 dbg_wrcal_start => dbg_wrcal_start ,
1387 dbg_wrcal_done => dbg_wrcal_done ,
1388 dbg_wrcal_err => dbg_wrcal_err ,
1389 dbg_phy_oclkdelay_cal => dbg_phy_oclkdelay_cal,
1390 dbg_oclkdelay_rd_data => dbg_oclkdelay_rd_data,
1391 dbg_oclkdelay_calib_start => dbg_oclkdelay_calib_start,
1392 dbg_oclkdelay_calib_done => dbg_oclkdelay_calib_done,
1393 init_calib_complete => init_calib_complete_i
1402 --*********************************************************************
1403 -- Resetting all RTL debug inputs as the debug ports are not enabled
1404 --*********************************************************************
1405 dbg_idel_down_all <= '0';
1406 dbg_idel_down_cpt <= '0';
1407 dbg_idel_up_all <= '0';
1408 dbg_idel_up_cpt <= '0';
1409 dbg_sel_all_idel_cpt <= '0';
1410 dbg_sel_idel_cpt <= (others => '0');
1411 dbg_byte_sel <= (others => '0');
1412 dbg_sel_pi_incdec <= '0';
1413 dbg_pi_f_inc <= '0';
1414 dbg_pi_f_dec <= '0';
1415 dbg_po_f_inc <= '0';
1416 dbg_po_f_dec <= '0';
1417 dbg_po_f_stg23_sel <= '0';
1418 dbg_sel_po_incdec <= '0';
1422 end architecture arch_ddr3_1_9a;