73use ieee.std_logic_1164.
all;
74use ieee.numeric_std.
all;
111 ECC : string := "OFF";
125 RANKS : integer := 1;
238 tCKE : integer := 7500;
240 tFAW : integer := 45000;
242 tPRDI : integer := 1000000;
244 tRAS : integer := 40000;
246 tRCD : integer := 15000;
248 tREFI : integer := 7800000;
250 tRFC : integer := 127500;
252 tRP : integer := 12500;
254 tRRD : integer := 10000;
256 tRTP : integer := 7500;
258 tWTR : integer := 7500;
260 tZQI : integer := 128000000;
262 tZQCS : integer := 64;
294 DATA_CTL_B0 : std_logic_vector(3 downto 0) := "0101";
299 DATA_CTL_B1 : std_logic_vector(3 downto 0) := "0000";
304 DATA_CTL_B2 : std_logic_vector(3 downto 0) := "0000";
309 DATA_CTL_B3 : std_logic_vector(3 downto 0) := "0000";
314 DATA_CTL_B4 : std_logic_vector(3 downto 0) := "0000";
319 PHY_0_BITLANES : std_logic_vector(47 downto 0) := X"FFC3F7FFF3FE";
320 PHY_1_BITLANES : std_logic_vector(47 downto 0) := X"000000000000";
321 PHY_2_BITLANES : std_logic_vector(47 downto 0) := X"000000000000";
325 : std_logic_vector(143 downto 0) := X"000000000000000000000000000000000003";
327 : std_logic_vector(191 downto 0) := X"00000000001003301A01903203A034018036012011017015";
328 BANK_MAP : std_logic_vector(35 downto 0) := X"01301601B";
329 CAS_MAP : std_logic_vector(11 downto 0) := X"039";
331 CKE_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000038";
332 ODT_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000035";
333 CS_MAP : std_logic_vector(119 downto 0) := X"000000000000000000000000000037";
334 PARITY_MAP : std_logic_vector(11 downto 0) := X"000";
335 RAS_MAP : std_logic_vector(11 downto 0) := X"014";
336 WE_MAP : std_logic_vector(11 downto 0) := X"03B";
338 : std_logic_vector(143 downto 0) := X"000000000000000000000000000000000200";
339 DATA0_MAP : std_logic_vector(95 downto 0) := X"008004009007005001006003";
340 DATA1_MAP : std_logic_vector(95 downto 0) := X"022028020024027025026021";
341 DATA2_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
342 DATA3_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
343 DATA4_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
344 DATA5_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
345 DATA6_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
346 DATA7_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
347 DATA8_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
348 DATA9_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
349 DATA10_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
350 DATA11_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
351 DATA12_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
352 DATA13_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
353 DATA14_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
354 DATA15_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
355 DATA16_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
356 DATA17_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
357 MASK0_MAP : std_logic_vector(107 downto 0) := X"000000000000000000000029002";
358 MASK1_MAP : std_logic_vector(107 downto 0) := X"000000000000000000000000000";
378 WRLVL : string := "OFF";
392 TCQ : integer := 100;
434 tCK : integer := 3333;
487 app_cmd : in std_logic_vector(2 downto 0);
527 function clogb2 (size :
integer)
return integer is
528 variable base : integer := 1;
529 variable inp : integer := 0;
540 function ECCWIDTH return integer is
565 function XWIDTH return integer is
576 function TEMP_MON return string is
588 constant ECC_WIDTH : integer := ECCWIDTH;
604 component mig_7series_v4_2_iodelay_ctrl
is
607 IODELAY_GRP0 :
string;
608 IODELAY_GRP1 :
string;
609 REFCLK_TYPE :
string;
610 SYSCLK_TYPE :
string;
611 SYS_RST_PORT :
string;
612 RST_ACT_LOW :
integer;
613 DIFF_TERM_REFCLK :
string;
614 FPGA_SPEED_GRADE :
integer;
615 REF_CLK_MMCM_IODELAY_CTRL :
string
618 clk_ref_p :
in std_logic;
619 clk_ref_n :
in std_logic;
620 clk_ref_i :
in std_logic;
621 sys_rst :
in std_logic;
622 clk_ref :
out std_logic_vector(
1 downto 0);
623 sys_rst_o :
out std_logic;
624 iodelay_ctrl_rdy :
out std_logic_vector(
1 downto 0)
626 end component mig_7series_v4_2_iodelay_ctrl;
628 component mig_7series_v4_2_clk_ibuf
is
630 SYSCLK_TYPE :
string;
631 DIFF_TERM_SYSCLK :
string
634 sys_clk_p :
in std_logic;
635 sys_clk_n :
in std_logic;
636 sys_clk_i :
in std_logic;
637 mmcm_clk :
out std_logic
639 end component mig_7series_v4_2_clk_ibuf;
641 component mig_7series_v4_2_infrastructure
is
643 SIMULATION :
string :=
"FALSE";
645 CLKIN_PERIOD :
integer;
646 nCK_PER_CLK :
integer;
647 SYSCLK_TYPE :
string;
648 UI_EXTRA_CLOCKS :
string :=
"FALSE";
649 CLKFBOUT_MULT :
integer;
650 DIVCLK_DIVIDE :
integer;
651 CLKOUT0_PHASE :
real;
652 CLKOUT0_DIVIDE :
integer;
653 CLKOUT1_DIVIDE :
integer;
654 CLKOUT2_DIVIDE :
integer;
655 CLKOUT3_DIVIDE :
integer;
657 MMCM_MULT_F :
integer;
658 MMCM_DIVCLK_DIVIDE :
integer;
659 MMCM_CLKOUT0_EN :
string :=
"FALSE";
660 MMCM_CLKOUT1_EN :
string :=
"FALSE";
661 MMCM_CLKOUT2_EN :
string :=
"FALSE";
662 MMCM_CLKOUT3_EN :
string :=
"FALSE";
663 MMCM_CLKOUT4_EN :
string :=
"FALSE";
664 MMCM_CLKOUT0_DIVIDE :
integer :=
1;
665 MMCM_CLKOUT1_DIVIDE :
integer :=
1;
666 MMCM_CLKOUT2_DIVIDE :
integer :=
1;
667 MMCM_CLKOUT3_DIVIDE :
integer :=
1;
668 MMCM_CLKOUT4_DIVIDE :
integer :=
1;
669 RST_ACT_LOW :
integer;
674 mmcm_clk :
in std_logic;
675 sys_rst :
in std_logic;
676 iodelay_ctrl_rdy :
in std_logic_vector(
1 downto 0);
678 psincdec :
in std_logic;
680 clk_div2 :
out std_logic;
681 rst_div2 :
out std_logic;
682 mem_refclk :
out std_logic;
683 freq_refclk :
out std_logic;
684 sync_pulse :
out std_logic;
685 mmcm_ps_clk :
out std_logic;
686 poc_sample_pd :
out std_logic;
687 iddr_rst :
out std_logic;
688 psdone :
out std_logic;
690 ui_addn_clk_0 :
out std_logic;
691 ui_addn_clk_1 :
out std_logic;
692 ui_addn_clk_2 :
out std_logic;
693 ui_addn_clk_3 :
out std_logic;
694 ui_addn_clk_4 :
out std_logic;
695 pll_locked :
out std_logic;
696 mmcm_locked :
out std_logic;
697 rstdiv0 :
out std_logic;
698 rst_phaser_ref :
out std_logic;
699 ref_dll_lock :
in std_logic
701 end component mig_7series_v4_2_infrastructure;
703 component mig_7series_v4_2_tempmon
is
706 TEMP_MON_CONTROL :
string;
707 XADC_CLK_PERIOD :
integer;
708 tTEMPSAMPLE :
integer
712 xadc_clk :
in std_logic;
714 device_temp_i :
in std_logic_vector(
11 downto 0);
715 device_temp :
out std_logic_vector(
11 downto 0)
717 end component mig_7series_v4_2_tempmon;
719 component mig_7series_v4_2_memc_ui_top_std
is
722 DDR3_VDD_OP_VOLT :
string := "
135";
723 PAYLOAD_WIDTH :
integer;
724 ADDR_CMD_MODE :
string;
726 BANK_WIDTH :
integer;
727 BM_CNT_WIDTH :
integer;
730 CA_MIRROR :
string :=
"FALSE";
734 CMD_PIPE_PLUS1 :
string;
738 DATA_WIDTH :
integer;
739 DATA_BUF_ADDR_WIDTH :
integer;
740 DATA_BUF_OFFSET_WIDTH :
integer :=
1;
741 DDR2_DQSN_ENABLE :
string :=
"YES";
743 DQ_CNT_WIDTH :
integer;
745 DQS_CNT_WIDTH :
integer;
748 DRAM_WIDTH :
integer;
752 MC_ERR_ADDR_WIDTH :
integer;
753 MASTER_PHY_CTL :
integer;
755 nBANK_MACHS :
integer;
756 nCK_PER_CLK :
integer;
757 nCS_PER_RANK :
integer;
759 IBUF_LPWR_MODE :
string;
761 DATA_IO_PRIM_TYPE :
string;
762 DATA_IO_IDLE_PWRDWN :
string;
763 IODELAY_GRP0 :
string;
764 IODELAY_GRP1 :
string;
765 FPGA_SPEED_GRADE :
integer;
769 RTT_WR :
string := "
120";
770 STARVE_LIMIT :
integer;
785 USER_REFRESH :
string;
786 TEMP_MON_EN :
string;
790 RANK_WIDTH :
integer;
794 ADDR_WIDTH :
integer;
795 APP_MASK_WIDTH :
integer;
796 APP_DATA_WIDTH :
integer;
797 BYTE_LANES_B0 :
std_logic_vector(
3 downto 0);
798 BYTE_LANES_B1 :
std_logic_vector(
3 downto 0);
799 BYTE_LANES_B2 :
std_logic_vector(
3 downto 0);
800 BYTE_LANES_B3 :
std_logic_vector(
3 downto 0);
801 BYTE_LANES_B4 :
std_logic_vector(
3 downto 0);
802 DATA_CTL_B0 :
std_logic_vector(
3 downto 0);
803 DATA_CTL_B1 :
std_logic_vector(
3 downto 0);
804 DATA_CTL_B2 :
std_logic_vector(
3 downto 0);
805 DATA_CTL_B3 :
std_logic_vector(
3 downto 0);
806 DATA_CTL_B4 :
std_logic_vector(
3 downto 0);
807 PHY_0_BITLANES :
std_logic_vector(
47 downto 0);
808 PHY_1_BITLANES :
std_logic_vector(
47 downto 0);
809 PHY_2_BITLANES :
std_logic_vector(
47 downto 0);
810 CK_BYTE_MAP :
std_logic_vector(
143 downto 0);
811 ADDR_MAP :
std_logic_vector(
191 downto 0);
812 BANK_MAP :
std_logic_vector(
35 downto 0);
813 CAS_MAP :
std_logic_vector(
11 downto 0);
814 CKE_ODT_BYTE_MAP :
std_logic_vector(
7 downto 0);
815 CKE_MAP :
std_logic_vector(
95 downto 0);
816 ODT_MAP :
std_logic_vector(
95 downto 0);
817 CKE_ODT_AUX :
string;
818 CS_MAP :
std_logic_vector(
119 downto 0);
819 PARITY_MAP :
std_logic_vector(
11 downto 0);
820 RAS_MAP :
std_logic_vector(
11 downto 0);
821 WE_MAP :
std_logic_vector(
11 downto 0);
822 DQS_BYTE_MAP :
std_logic_vector(
143 downto 0);
823 DATA0_MAP :
std_logic_vector(
95 downto 0);
824 DATA1_MAP :
std_logic_vector(
95 downto 0);
825 DATA2_MAP :
std_logic_vector(
95 downto 0);
826 DATA3_MAP :
std_logic_vector(
95 downto 0);
827 DATA4_MAP :
std_logic_vector(
95 downto 0);
828 DATA5_MAP :
std_logic_vector(
95 downto 0);
829 DATA6_MAP :
std_logic_vector(
95 downto 0);
830 DATA7_MAP :
std_logic_vector(
95 downto 0);
831 DATA8_MAP :
std_logic_vector(
95 downto 0);
832 DATA9_MAP :
std_logic_vector(
95 downto 0);
833 DATA10_MAP :
std_logic_vector(
95 downto 0);
834 DATA11_MAP :
std_logic_vector(
95 downto 0);
835 DATA12_MAP :
std_logic_vector(
95 downto 0);
836 DATA13_MAP :
std_logic_vector(
95 downto 0);
837 DATA14_MAP :
std_logic_vector(
95 downto 0);
838 DATA15_MAP :
std_logic_vector(
95 downto 0);
839 DATA16_MAP :
std_logic_vector(
95 downto 0);
840 DATA17_MAP :
std_logic_vector(
95 downto 0);
841 MASK0_MAP :
std_logic_vector(
107 downto 0);
842 MASK1_MAP :
std_logic_vector(
107 downto 0);
843 SLOT_0_CONFIG :
std_logic_vector(
7 downto 0);
844 SLOT_1_CONFIG :
std_logic_vector(
7 downto 0);
845 MEM_ADDR_ORDER :
string;
846 CALIB_ROW_ADD :
std_logic_vector(
15 downto 0);
847 CALIB_COL_ADD :
std_logic_vector(
11 downto 0);
848 CALIB_BA_ADD :
std_logic_vector(
2 downto 0);
849 SIM_BYPASS_INIT_CAL :
string;
851 USE_CS_PORT :
integer;
852 USE_DM_PORT :
integer;
853 USE_ODT_PORT :
integer;
855 FINE_PER_BIT :
string;
856 CENTER_COMP_MODE :
string;
858 TAPSPERKCLK :
integer :=
56;
860 FPGA_VOLT_TYPE :
string
864 clk_div2 :
in std_logic;
865 rst_div2 :
in std_logic;
866 clk_ref :
in std_logic_vector(
1 downto 0);
867 mem_refclk :
in std_logic;
868 freq_refclk :
in std_logic;
869 pll_lock :
in std_logic;
870 sync_pulse :
in std_logic;
871 mmcm_ps_clk :
in std_logic;
872 poc_sample_pd :
in std_logic;
875 ddr_dq :
inout std_logic_vector(DQ_WIDTH
-1 downto 0);
876 ddr_dqs_n :
inout std_logic_vector(DQS_WIDTH
-1 downto 0);
877 ddr_dqs :
inout std_logic_vector(DQS_WIDTH
-1 downto 0);
878 ddr_addr :
out std_logic_vector(ROW_WIDTH
-1 downto 0);
879 ddr_ba :
out std_logic_vector(BANK_WIDTH
-1 downto 0);
880 ddr_cas_n :
out std_logic;
881 ddr_ck_n :
out std_logic_vector(CK_WIDTH
-1 downto 0);
882 ddr_ck :
out std_logic_vector(CK_WIDTH
-1 downto 0);
883 ddr_cke :
out std_logic_vector(CKE_WIDTH
-1 downto 0);
884 ddr_cs_n :
out std_logic_vector((CS_WIDTH*nCS_PER_RANK)
-1 downto 0);
885 ddr_dm :
out std_logic_vector(DM_WIDTH
-1 downto 0);
886 ddr_odt :
out std_logic_vector(ODT_WIDTH
-1 downto 0);
887 ddr_ras_n :
out std_logic;
888 ddr_reset_n :
out std_logic;
889 ddr_parity :
out std_logic;
890 ddr_we_n :
out std_logic;
892 bank_mach_next :
out std_logic_vector(BM_CNT_WIDTH
-1 downto 0);
894 app_addr :
in std_logic_vector(ADDR_WIDTH
-1 downto 0);
895 app_cmd :
in std_logic_vector(
2 downto 0);
896 app_en :
in std_logic;
897 app_hi_pri :
in std_logic;
898 app_wdf_data :
in std_logic_vector((nCK_PER_CLK*
2*PAYLOAD_WIDTH)
-1 downto 0);
899 app_wdf_end :
in std_logic;
900 app_wdf_mask :
in std_logic_vector(((nCK_PER_CLK*
2*PAYLOAD_WIDTH)/
8)
-1 downto 0);
901 app_wdf_wren :
in std_logic;
902 app_correct_en_i :
in std_logic;
903 app_raw_not_ecc :
in std_logic_vector((
2*nCK_PER_CLK)
-1 downto 0);
904 app_ecc_multiple_err :
out std_logic_vector((
2*nCK_PER_CLK)
-1 downto 0);
905 app_ecc_single_err :
out std_logic_vector((
2*nCK_PER_CLK)
-1 downto 0);
906 app_rd_data :
out std_logic_vector((nCK_PER_CLK*
2*PAYLOAD_WIDTH)
-1 downto 0);
907 app_rd_data_end :
out std_logic;
908 app_rd_data_valid :
out std_logic;
909 app_rdy :
out std_logic;
910 app_wdf_rdy :
out std_logic;
911 app_sr_req :
in std_logic;
912 app_sr_active :
out std_logic;
913 app_ref_req :
in std_logic;
914 app_ref_ack :
out std_logic;
915 app_zq_req :
in std_logic;
916 app_zq_ack :
out std_logic;
918 calib_tap_req :
out std_logic;
919 calib_tap_addr :
in std_logic_vector(
6 downto 0);
920 calib_tap_load :
in std_logic;
921 calib_tap_val :
in std_logic_vector(
7 downto 0);
922 calib_tap_load_done :
in std_logic;
924 device_temp :
in std_logic_vector(
11 downto 0);
926 psen :
out std_logic;
927 psincdec :
out std_logic;
928 psdone :
in std_logic;
930 dbg_idel_down_all :
in std_logic;
931 dbg_idel_down_cpt :
in std_logic;
932 dbg_idel_up_all :
in std_logic;
933 dbg_idel_up_cpt :
in std_logic;
934 dbg_sel_all_idel_cpt :
in std_logic;
935 dbg_sel_idel_cpt :
in std_logic_vector(DQS_CNT_WIDTH
-1 downto 0);
936 dbg_cpt_first_edge_cnt :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
937 dbg_cpt_second_edge_cnt :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
938 dbg_rd_data_edge_detect :
out std_logic_vector(DQS_WIDTH
-1 downto 0);
939 dbg_rddata :
out std_logic_vector((
2*nCK_PER_CLK*DQ_WIDTH)
-1 downto 0);
940 dbg_rdlvl_done :
out std_logic_vector(
1 downto 0);
941 dbg_rdlvl_err :
out std_logic_vector(
1 downto 0);
942 dbg_rdlvl_start :
out std_logic_vector(
1 downto 0);
943 dbg_tap_cnt_during_wrlvl :
out std_logic_vector(
5 downto 0);
944 dbg_wl_edge_detect_valid :
out std_logic;
945 dbg_wrlvl_done :
out std_logic;
946 dbg_wrlvl_err :
out std_logic;
947 dbg_wrlvl_start :
out std_logic;
948 dbg_final_po_fine_tap_cnt :
out std_logic_vector((
6*DQS_WIDTH)
-1 downto 0);
949 dbg_final_po_coarse_tap_cnt :
out std_logic_vector((
3*DQS_WIDTH)
-1 downto 0);
950 init_calib_complete :
out std_logic;
951 dbg_sel_pi_incdec :
in std_logic;
952 dbg_sel_po_incdec :
in std_logic;
953 dbg_byte_sel :
in std_logic_vector(DQS_CNT_WIDTH
downto 0);
954 dbg_pi_f_inc :
in std_logic;
955 dbg_pi_f_dec :
in std_logic;
956 dbg_po_f_inc :
in std_logic;
957 dbg_po_f_stg23_sel :
in std_logic;
958 dbg_po_f_dec :
in std_logic;
959 dbg_cpt_tap_cnt :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
960 dbg_dq_idelay_tap_cnt :
out std_logic_vector((
5*DQS_WIDTH*RANKS)
-1 downto 0);
961 dbg_rddata_valid :
out std_logic;
962 dbg_wrlvl_fine_tap_cnt :
out std_logic_vector((
6*DQS_WIDTH)
-1 downto 0);
963 dbg_wrlvl_coarse_tap_cnt :
out std_logic_vector((
3*DQS_WIDTH)
-1 downto 0);
964 rst_phaser_ref :
in std_logic;
965 ref_dll_lock :
out std_logic;
966 iddr_rst :
in std_logic;
967 dbg_rd_data_offset :
out std_logic_vector((
6*RANKS)
-1 downto 0);
968 dbg_calib_top :
out std_logic_vector(
255 downto 0);
969 dbg_phy_wrlvl :
out std_logic_vector(
255 downto 0);
970 dbg_phy_rdlvl :
out std_logic_vector(
255 downto 0);
971 dbg_phy_wrcal :
out std_logic_vector(
99 downto 0);
972 dbg_phy_init :
out std_logic_vector(
255 downto 0);
973 dbg_prbs_rdlvl :
out std_logic_vector(
255 downto 0);
974 dbg_dqs_found_cal :
out std_logic_vector(
255 downto 0);
975 dbg_pi_counter_read_val :
out std_logic_vector(
5 downto 0);
976 dbg_po_counter_read_val :
out std_logic_vector(
8 downto 0);
977 dbg_pi_phaselock_start :
out std_logic;
978 dbg_pi_phaselocked_done :
out std_logic;
979 dbg_pi_phaselock_err :
out std_logic;
980 dbg_pi_dqsfound_start :
out std_logic;
981 dbg_pi_dqsfound_done :
out std_logic;
982 dbg_pi_dqsfound_err :
out std_logic;
983 dbg_wrcal_start :
out std_logic;
984 dbg_wrcal_done :
out std_logic;
985 dbg_wrcal_err :
out std_logic;
986 dbg_pi_dqs_found_lanes_phy4lanes :
out std_logic_vector(
11 downto 0);
987 dbg_pi_phase_locked_phy4lanes :
out std_logic_vector(
11 downto 0);
988 dbg_calib_rd_data_offset_1 :
out std_logic_vector((
6*RANKS)
-1 downto 0);
989 dbg_calib_rd_data_offset_2 :
out std_logic_vector((
6*RANKS)
-1 downto 0);
990 dbg_data_offset :
out std_logic_vector(
5 downto 0);
991 dbg_data_offset_1 :
out std_logic_vector(
5 downto 0);
992 dbg_data_offset_2 :
out std_logic_vector(
5 downto 0);
993 dbg_oclkdelay_calib_start :
out std_logic;
994 dbg_oclkdelay_calib_done :
out std_logic;
995 dbg_phy_oclkdelay_cal :
out std_logic_vector(
255 downto 0);
996 dbg_oclkdelay_rd_data :
out std_logic_vector((DRAM_WIDTH*
16)
-1 downto 0);
997 dbg_prbs_final_dqs_tap_cnt_r :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
998 dbg_prbs_first_edge_taps :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
999 dbg_prbs_second_edge_taps :
out std_logic_vector((
6*DQS_WIDTH*RANKS)
-1 downto 0);
1000 dbg_poc :
out std_logic_vector (
1023 downto 0)
1002 end component mig_7series_v4_2_memc_ui_top_std;
1008 signal clk : std_logic;
1009 signal clk_ref : std_logic_vector(1 downto 0);
1021 signal psen : std_logic;
1023 signal psdone : std_logic;
1028 signal rst : std_logic;
1110 signal dbg_dqs : std_logic_vector(4 downto 0);
1111 signal dbg_bit : std_logic_vector(8 downto 0);
1149 clk_ref_in_use_sys_clk : if (REFCLK_TYPE = "USE_SYSTEM_CLOCK") generate
1153 clk_ref_in_others : if (REFCLK_TYPE /= "USE_SYSTEM_CLOCK") generate
1198 temp_mon_enabled : if (TEMP_MON_EN = "ON") generate
1217 temp_mon_disabled : if (TEMP_MON_EN /= "ON") generate
1260 ui_addn_clk_0 =>
open,
1261 ui_addn_clk_1 =>
open,
1262 ui_addn_clk_2 =>
open,
1263 ui_addn_clk_3 =>
open,
1264 ui_addn_clk_4 =>
open,
1266 mmcm_locked =>
open,
1404 IDELAY_ADJ =>
"OFF",
1405 FINE_PER_BIT =>
"OFF",
1406 CENTER_COMP_MODE =>
"OFF",
1407 PI_VAL_ADJ =>
"OFF",
1410 SKIP_CALIB =>
"FALSE",
1411 FPGA_VOLT_TYPE =>
"N"
1471 app_correct_en_i => '1',
1479 calib_tap_req =>
open,
1480 calib_tap_addr =>
(others => '0'
),
1481 calib_tap_load => '0',
1482 calib_tap_val =>
(others => '0'
),
1483 calib_tap_load_done => '0',
mig_7series_v4_2_memc_ui_top_std u_memc_ui_top_stdu_memc_ui_top_std
integer := clogb2( nBANK_MACHS ) BM_CNT_WIDTH
std_logic dbg_oclkdelay_calib_start
std_logic_vector( 11 downto 0) dbg_pi_phase_locked_phy4lanes
std_logic dbg_wl_edge_detect_valid
std_logic_vector( 8 downto 0) rd_data_edge_detect_r
std_logic_vector( 119 downto 0) ddr2_ila_basic_int
std_logic_vector(( 6* DQS_WIDTH)- 1 downto 0) dbg_final_po_fine_tap_cnt
std_logic_vector( 11 downto 0) dbg_prbs_final_dqs_tap_cnt_r
std_logic_vector( 255 downto 0) dbg_prbs_rdlvl
std_logic_vector( 1 downto 0) dbg_rdlvl_err
std_logic_vector( 11 downto 0) dbg_pi_dqs_found_lanes_phy4lanes
std_logic_vector( 11 downto 0) dbg_prbs_first_edge_taps
std_logic dbg_sel_all_idel_cpt
std_logic_vector( 4 downto 0) dbg_dqs
integer := clogb2( RANKS ) RANK_WIDTH
std_logic_vector( 1 downto 0) iodelay_ctrl_rdy
std_logic_vector( 1 downto 0) dbg_rdlvl_done
std_logic_vector( 1 downto 0) clk_ref
std_logic dbg_sel_pi_incdec
mig_7series_v4_2_iodelay_ctrl u_iodelay_ctrlu_iodelay_ctrl
integer := XWIDTH+ BANK_WIDTH+ ROW_WIDTH+ COL_WIDTH+ DATA_BUF_OFFSET_WIDTH MC_ERR_ADDR_WIDTH
std_logic_vector( 11 downto 0) device_temp_s
std_logic_vector( 1 downto 0) dbg_rdlvl_start
std_logic_vector( 1023 downto 0) ddr2_ila_rdpath_int
std_logic_vector( 255 downto 0) dbg_dqs_found_cal
std_logic_vector( DQS_CNT_WIDTH downto 0) dbg_byte_sel
mig_7series_v4_2_clk_ibuf u_ddr2_clk_ibufu_ddr2_clk_ibuf
std_logic dbg_idel_up_cpt
std_logic_vector(( 2* nCK_PER_CLK)- 1 downto 0) app_ecc_single_err
std_logic dbg_pi_dqsfound_err
std_logic dbg_sel_po_incdec
std_logic_vector(( DRAM_WIDTH* 16)- 1 downto 0) dbg_oclkdelay_rd_data
std_logic_vector( 53 downto 0) ocal_tap_cnt
std_logic_vector( 63 downto 0) dbg_rddata_r
std_logic_vector(( 5* DQS_WIDTH* RANKS)- 1 downto 0) dbg_dq_idelay_tap_cnt
std_logic dbg_pi_phaselocked_done
std_logic_vector( 255 downto 0) dbg_phy_rdlvl
std_logic_vector( 5 downto 0) dbg_data_offset
std_logic dbg_rddata_valid_r
string := TEMP_MON TEMP_MON_EN
std_logic_vector( 5 downto 0) dbg_pi_counter_read_val
std_logic_vector(( 2* nCK_PER_CLK* DQ_WIDTH)- 1 downto 0) dbg_rddata
std_logic dbg_oclkdelay_calib_done
std_logic dbg_pi_phaselock_start
std_logic_vector(( 6* DQS_WIDTH* RANKS)- 1 downto 0) dbg_cpt_tap_cnt
mig_7series_v4_2_tempmon u_tempmonu_tempmon
std_logic_vector( 390 downto 0) ddr2_ila_wrpath_int
integer := ECCWIDTH ECC_WIDTH
std_logic dbg_wrlvl_start
mig_7series_v4_2_infrastructure u_ddr2_infrastructureu_ddr2_infrastructure
std_logic_vector( DQS_WIDTH- 1 downto 0) dbg_rd_data_edge_detect
std_logic_vector( 255 downto 0) dbg_calib_top
std_logic_vector( 255 downto 0) dbg_phy_oclkdelay_cal
std_logic dbg_idel_up_all
std_logic_vector(( 2* nCK_PER_CLK)- 1 downto 0) app_ecc_multiple_err
std_logic dbg_wrcal_start
std_logic_vector( 11 downto 0) dbg_prbs_second_edge_taps_int
integer := 5000 XADC_CLK_PERIOD
std_logic_vector(( 6* RANKS)- 1 downto 0) dbg_calib_rd_data_offset_1
std_logic dbg_pi_phaselock_err
std_logic_vector( 5 downto 0) dbg_data_offset_2
std_logic_vector( 5 downto 0) dbg_tap_cnt_during_wrlvl
std_logic_vector( 255 downto 0) dbg_phy_wrlvl
std_logic_vector( 11 downto 0) dbg_prbs_second_edge_taps
std_logic_vector(( 6* DQS_WIDTH* RANKS)- 1 downto 0) dbg_cpt_second_edge_cnt
std_logic_vector(( 6* DQS_WIDTH)- 1 downto 0) dbg_wrlvl_fine_tap_cnt
std_logic_vector( 53 downto 0) wl_po_fine_cnt
std_logic_vector(( 3* DQS_WIDTH)- 1 downto 0) dbg_final_po_coarse_tap_cnt
std_logic_vector( BM_CNT_WIDTH- 1 downto 0) bank_mach_next
std_logic_vector(( 6* RANKS)- 1 downto 0) dbg_rd_data_offset
integer := APP_DATA_WIDTH/ 8 APP_MASK_WIDTH
std_logic_vector(( 2* nCK_PER_CLK)- 1 downto 0) :=( others => '0') all_zeros
std_logic dbg_idel_down_all
std_logic_vector(( 3* DQS_WIDTH)- 1 downto 0) dbg_wrlvl_coarse_tap_cnt
std_logic dbg_idel_down_cpt
std_logic init_calib_complete_i
std_logic_vector( 26 downto 0) wl_po_coarse_cnt
integer := 2* nCK_PER_CLK* PAYLOAD_WIDTH APP_DATA_WIDTH
std_logic_vector(( 6* RANKS)- 1 downto 0) dbg_calib_rd_data_offset_2
std_logic_vector( 11 downto 0) dbg_prbs_first_edge_taps_int
std_logic_vector( 255 downto 0) dbg_phy_init
std_logic dbg_pi_dqsfound_start
std_logic_vector( 99 downto 0) dbg_phy_wrcal
integer := 56 TAPSPERKCLK
std_logic_vector( 5 downto 0) dbg_data_offset_1
std_logic_vector( 11 downto 0) dbg_prbs_final_dqs_tap_cnt_r_int
std_logic dbg_rddata_valid
integer := 10000000 tTEMPSAMPLE
integer := 1 DATA_BUF_OFFSET_WIDTH
std_logic_vector( DQS_CNT_WIDTH- 1 downto 0) dbg_sel_idel_cpt
std_logic_vector(( 6* DQS_WIDTH* RANKS)- 1 downto 0) dbg_cpt_first_edge_cnt
std_logic dbg_pi_dqsfound_done
std_logic dbg_po_f_stg23_sel
std_logic_vector( 8 downto 0) dbg_bit
std_logic_vector( 8 downto 0) dbg_po_counter_read_val
BYTE_LANES_B4 std_logic_vector( 3 downto 0) := "0000"
FPGA_SPEED_GRADE integer := 1
DATA_CTL_B0 std_logic_vector( 3 downto 0) := "0101"
DATA_CTL_B3 std_logic_vector( 3 downto 0) := "0000"
in device_temp_i std_logic_vector( 11 downto 0)
SIMULATION string := "FALSE"
USE_ODT_PORT integer := 1
PHY_1_BITLANES std_logic_vector( 47 downto 0) := X"000000000000"
DATA0_MAP std_logic_vector( 95 downto 0) := X"008004009007005001006003"
out app_rd_data std_logic_vector(( nCK_PER_CLK* 2* PAYLOAD_WIDTH)- 1 downto 0)
PAYLOAD_WIDTH integer := 16
BYTE_LANES_B1 std_logic_vector( 3 downto 0) := "0000"
CS_MAP std_logic_vector( 119 downto 0) := X"000000000000000000000000000037"
REFCLK_TYPE string := "NO_BUFFER"
in app_cmd std_logic_vector( 2 downto 0)
DIFF_TERM_REFCLK string := "TRUE"
DATA_CTL_B4 std_logic_vector( 3 downto 0) := "0000"
IBUF_LPWR_MODE string := "OFF"
CLKOUT0_PHASE real := 0.0
IODELAY_GRP0 string := "MIGUI_NEXYS4D_IODELAY_MIG0"
BYTE_LANES_B2 std_logic_vector( 3 downto 0) := "0000"
CLKFBOUT_MULT integer := 12
MMCM_DIVCLK_DIVIDE integer := 1
DATA3_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
BYTE_LANES_B0 std_logic_vector( 3 downto 0) := "1111"
out ddr2_cke std_logic_vector( CKE_WIDTH- 1 downto 0)
ODT_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000035"
out app_wdf_rdy std_logic
tZQI integer := 128000000
RAS_MAP std_logic_vector( 11 downto 0) := X"014"
USER_REFRESH string := "OFF"
DQ_CNT_WIDTH integer := 4
MEM_DEVICE_WIDTH integer := 16
BANK_TYPE string := "HR_IO"
DATA7_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
MMCM_MULT_F integer := 15
inout ddr2_dqs_p std_logic_vector( DQS_WIDTH- 1 downto 0)
CKE_ODT_BYTE_MAP std_logic_vector( 7 downto 0) := X"00"
out ddr2_addr std_logic_vector( ROW_WIDTH- 1 downto 0)
DATA_IO_PRIM_TYPE string := "HR_LP"
out app_rd_data_end std_logic
CAS_MAP std_logic_vector( 11 downto 0) := X"039"
out ddr2_ba std_logic_vector( BANK_WIDTH- 1 downto 0)
CK_BYTE_MAP std_logic_vector( 143 downto 0) := X"000000000000000000000000000000000003"
DATA11_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DIVCLK_DIVIDE integer := 1
BURST_TYPE string := "SEQ"
DATA10_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out init_calib_complete std_logic
CALIB_ROW_ADD std_logic_vector( 15 downto 0) := X"0000"
CKE_ODT_AUX string := "FALSE"
WE_MAP std_logic_vector( 11 downto 0) := X"03B"
DATA15_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out ddr2_ck_n std_logic_vector( CK_WIDTH- 1 downto 0)
DATA_IO_IDLE_PWRDWN string := "ON"
out app_sr_active std_logic
CAL_WIDTH string := "HALF"
DATA12_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
MEM_ADDR_ORDER string := "ROW_BANK_COLUMN"
DATA16_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
PHY_0_BITLANES std_logic_vector( 47 downto 0) := X"FFC3F7FFF3FE"
DRAM_TYPE string := "DDR2"
out app_rd_data_valid std_logic
STARVE_LIMIT integer := 2
CLKOUT1_DIVIDE integer := 4
REF_CLK_MMCM_IODELAY_CTRL string := "FALSE"
inout ddr2_dq std_logic_vector( DQ_WIDTH- 1 downto 0)
TEMP_MON_CONTROL string := "EXTERNAL"
DIFF_TERM_SYSCLK string := "TRUE"
out ddr2_odt std_logic_vector( ODT_WIDTH- 1 downto 0)
DATA_CTL_B2 std_logic_vector( 3 downto 0) := "0000"
DATA6_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
BANK_MAP std_logic_vector( 35 downto 0) := X"01301601B"
CLKIN_PERIOD integer := 9999
DATA4_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
CLKOUT3_DIVIDE integer := 16
REFCLK_FREQ real := 200.0
MEM_SPEEDGRADE string := "25E"
DQS_BYTE_MAP std_logic_vector( 143 downto 0) := X"000000000000000000000000000000000200"
MASK1_MAP std_logic_vector( 107 downto 0) := X"000000000000000000000000000"
DATA_BUF_ADDR_WIDTH integer := 5
OUTPUT_DRV string := "HIGH"
ADDR_CMD_MODE string := "1T"
CLKOUT2_DIVIDE integer := 64
DATA17_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
SYS_RST_PORT string := "FALSE"
PHY_CONTROL_MASTER_BANK integer := 0
SLOT_0_CONFIG std_logic_vector( 7 downto 0) := "00000001"
PHY_2_BITLANES std_logic_vector( 47 downto 0) := X"000000000000"
inout ddr2_dqs_n std_logic_vector( DQS_WIDTH- 1 downto 0)
out app_ref_ack std_logic
CALIB_COL_ADD std_logic_vector( 11 downto 0) := X"000"
CALIB_BA_ADD std_logic_vector( 2 downto 0) := "000"
DATA1_MAP std_logic_vector( 95 downto 0) := X"022028020024027025026021"
nCS_PER_RANK integer := 1
in app_addr std_logic_vector( ADDR_WIDTH- 1 downto 0)
DATA8_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
SIM_BYPASS_INIT_CAL string := "OFF"
out ddr2_dm std_logic_vector( DM_WIDTH- 1 downto 0)
in app_wdf_mask std_logic_vector(( nCK_PER_CLK* 2* PAYLOAD_WIDTH/ 8)- 1 downto 0)
CKE_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000038"
CLKOUT0_DIVIDE integer := 2
DATA_CTL_B1 std_logic_vector( 3 downto 0) := "0000"
DEBUG_PORT string := "OFF"
DATA2_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
MEM_DENSITY string := "1Gb"
ORDERING string := "STRICT"
out ddr2_cs_n std_logic_vector(( CS_WIDTH* nCS_PER_RANK)- 1 downto 0)
IODELAY_GRP1 string := "MIGUI_NEXYS4D_IODELAY_MIG1"
DATA14_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in app_wdf_wren std_logic
MASK0_MAP std_logic_vector( 107 downto 0) := X"000000000000000000000029002"
ADDR_MAP std_logic_vector( 191 downto 0) := X"00000000001003301A01903203A034018036012011017015"
CMD_PIPE_PLUS1 string := "ON"
PARITY_MAP std_logic_vector( 11 downto 0) := X"000"
BYTE_LANES_B3 std_logic_vector( 3 downto 0) := "0000"
out ddr2_ck_p std_logic_vector( CK_WIDTH- 1 downto 0)
out ui_clk_sync_rst std_logic
DATA5_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
SYSCLK_TYPE string := "NO_BUFFER"
DQS_CNT_WIDTH integer := 1
SLOT_1_CONFIG std_logic_vector( 7 downto 0) := "00000000"
in app_wdf_data std_logic_vector(( nCK_PER_CLK* 2* PAYLOAD_WIDTH)- 1 downto 0)
DATA13_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DATA9_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"