69 use ieee.std_logic_1164.
all;
70 use ieee.numeric_std.
all;
120 CK_BYTE_MAP : std_logic_vector(143 downto 0) := X"000000000000000000000000000000000000";
121 ADDR_MAP : std_logic_vector(191 downto 0) := X"000000000000000000000000000000000000000000000000";
122 BANK_MAP : std_logic_vector(35 downto 0) := X"000000000";
123 CAS_MAP : std_logic_vector(11 downto 0) := X"000";
125 CKE_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
126 ODT_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
128 CS_MAP : std_logic_vector(119 downto 0) := X"000000000000000000000000000000";
130 RAS_MAP : std_logic_vector(11 downto 0) := X"000";
131 WE_MAP : std_logic_vector(11 downto 0) := X"000";
133 : std_logic_vector(143 downto 0) := X"000000000000000000000000000000000000";
134 DATA0_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
135 DATA1_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
136 DATA2_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
137 DATA3_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
138 DATA4_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
139 DATA5_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
140 DATA6_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
141 DATA7_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
142 DATA8_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
143 DATA9_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
144 DATA10_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
145 DATA11_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
146 DATA12_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
147 DATA13_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
148 DATA14_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
149 DATA15_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
150 DATA16_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
151 DATA17_MAP : std_logic_vector(95 downto 0) := X"000000000000000000000000";
152 MASK0_MAP : std_logic_vector(107 downto 0) := X"000000000000000000000000000";
153 MASK1_MAP : std_logic_vector(107 downto 0) := X"000000000000000000000000000";
258 mc_odt : in std_logic_vector(1 downto 0);
265 mc_cmd : in std_logic_vector(2 downto 0);
337 dbg_poc : out std_logic_vector(1023 downto 0);
374 function OR_BR (inp_var:
std_logic_vector)
376 variable temp: std_logic := '0';
378 for idx in inp_var'range loop
379 temp := temp or inp_var(idx);
385 function CALC_nSLOTS return integer is
394 function SIM_INIT_OPTION_W return string is
397 return ("SKIP_INIT");
400 return ("SKIP_PU_DLY");
406 function SIM_CAL_OPTION_W return string is
414 return ("FAST_WIN_DETECT");
420 function CALC_WRLVL_W return string is
429 function HIGHEST_BANK_W return integer is
444 function HIGHEST_LANE_B0_W return integer is
459 function HIGHEST_LANE_B1_W return integer is
474 function HIGHEST_LANE_B2_W return integer is
489 function HIGHEST_LANE_B3_W return integer is
504 function HIGHEST_LANE_B4_W return integer is
519 function HIGHEST_LANE_W return integer is
521 if (HIGHEST_LANE_B4_W /= 0) then
522 return (HIGHEST_LANE_B4_W+16);
523 elsif (HIGHEST_LANE_B3_W /= 0) then
524 return (HIGHEST_LANE_B3_W+12);
525 elsif (HIGHEST_LANE_B2_W /= 0) then
526 return (HIGHEST_LANE_B2_W+8);
527 elsif (HIGHEST_LANE_B1_W /= 0) then
528 return (HIGHEST_LANE_B1_W+4);
530 return (HIGHEST_LANE_B0_W);
534 function N_CTL_LANES_B0 return integer is
535 variable temp: integer := 0;
537 for idx in 0 to 3 loop
547 function N_CTL_LANES_B1 return integer is
548 variable temp: integer := 0;
550 for idx in 0 to 3 loop
560 function N_CTL_LANES_B2 return integer is
561 variable temp: integer := 0;
563 for idx in 0 to 3 loop
573 function N_CTL_LANES_B3 return integer is
574 variable temp: integer := 0;
576 for idx in 0 to 3 loop
586 function N_CTL_LANES_B4 return integer is
587 variable temp: integer := 0;
589 for idx in 0 to 3 loop
599 function CTL_BANK_B0 return std_logic is
611 function CTL_BANK_B1 return std_logic is
623 function CTL_BANK_B2 return std_logic is
635 function CTL_BANK_B3 return std_logic is
647 function CTL_BANK_B4 return std_logic is
659 function CTL_BANK_W return std_logic_vector is
660 variable ctl_bank_var : std_logic_vector(2 downto 0);
662 if (CTL_BANK_B0 = '1') then
663 ctl_bank_var := "000";
664 elsif (CTL_BANK_B1 = '1') then
665 ctl_bank_var := "001";
666 elsif (CTL_BANK_B2 = '1') then
667 ctl_bank_var := "010";
668 elsif (CTL_BANK_B3 = '1') then
669 ctl_bank_var := "011";
670 elsif (CTL_BANK_B4 = '1') then
671 ctl_bank_var := "100";
673 ctl_bank_var := "000";
675 return (ctl_bank_var);
678 function ODD_PARITY (inp_var :
std_logic_vector)
return std_logic is
679 variable tmp : std_logic := '0';
681 for idx in inp_var'range loop
682 tmp := tmp XOR inp_var(idx);
688 constant nSLOTS : integer := CALC_nSLOTS;
719 constant N_CTL_LANES : integer := N_CTL_LANES_B0 + N_CTL_LANES_B1 + N_CTL_LANES_B2 + N_CTL_LANES_B3 + N_CTL_LANES_B4;
724 constant CTL_BANK : std_logic_vector(2 downto 0):= CTL_BANK_W;
726 function CTL_BYTE_LANE_W return std_logic_vector is
727 variable ctl_byte_lane_var: std_logic_vector(7 downto 0);
730 ctl_byte_lane_var := "11100100";
747 ctl_byte_lane_var := "00100100";
764 ctl_byte_lane_var := "00110100";
781 ctl_byte_lane_var := "00111000";
798 ctl_byte_lane_var := "00111001";
810 ctl_byte_lane_var := "00000100";
822 ctl_byte_lane_var := "00001100";
834 ctl_byte_lane_var := "00001110";
846 ctl_byte_lane_var := "00001001";
858 ctl_byte_lane_var := "00001101";
870 ctl_byte_lane_var := "00001000";
872 ctl_byte_lane_var := "11100100";
874 return (ctl_byte_lane_var);
879 function PI_DIV2_INCDEC_FUN return string is
892 component mig_7series_v4_2_ddr_mc_phy_wrapper
is
897 DATA_IO_PRIM_TYPE :
string;
898 DATA_IO_IDLE_PWRDWN :
string;
899 IODELAY_GRP :
string;
900 FPGA_SPEED_GRADE :
integer;
901 nCK_PER_CLK :
integer;
902 nCS_PER_RANK :
integer;
903 BANK_WIDTH :
integer;
908 DDR2_DQSN_ENABLE :
string;
911 DQS_CNT_WIDTH :
integer;
918 USE_CS_PORT :
integer;
919 USE_DM_PORT :
integer;
920 USE_ODT_PORT :
integer;
921 IBUF_LPWR_MODE :
string;
922 LP_DDR_CK_WIDTH :
integer;
923 PHYCTL_CMD_FIFO :
string;
924 DATA_CTL_B0 :
std_logic_vector(
3 downto 0);
925 DATA_CTL_B1 :
std_logic_vector(
3 downto 0);
926 DATA_CTL_B2 :
std_logic_vector(
3 downto 0);
927 DATA_CTL_B3 :
std_logic_vector(
3 downto 0);
928 DATA_CTL_B4 :
std_logic_vector(
3 downto 0);
929 BYTE_LANES_B0 :
std_logic_vector(
3 downto 0);
930 BYTE_LANES_B1 :
std_logic_vector(
3 downto 0);
931 BYTE_LANES_B2 :
std_logic_vector(
3 downto 0);
932 BYTE_LANES_B3 :
std_logic_vector(
3 downto 0);
933 BYTE_LANES_B4 :
std_logic_vector(
3 downto 0);
934 PHY_0_BITLANES :
std_logic_vector(
47 downto 0);
935 PHY_1_BITLANES :
std_logic_vector(
47 downto 0);
936 PHY_2_BITLANES :
std_logic_vector(
47 downto 0);
937 HIGHEST_BANK :
integer;
938 HIGHEST_LANE :
integer;
939 CK_BYTE_MAP :
std_logic_vector(
143 downto 0);
940 ADDR_MAP :
std_logic_vector(
191 downto 0);
941 BANK_MAP :
std_logic_vector(
35 downto 0);
942 CAS_MAP :
std_logic_vector(
11 downto 0);
943 CKE_ODT_BYTE_MAP :
std_logic_vector(
7 downto 0);
944 CKE_MAP :
std_logic_vector(
95 downto 0);
945 ODT_MAP :
std_logic_vector(
95 downto 0);
946 CKE_ODT_AUX :
string;
947 CS_MAP :
std_logic_vector(
119 downto 0);
948 PARITY_MAP :
std_logic_vector(
11 downto 0);
949 RAS_MAP :
std_logic_vector(
11 downto 0);
950 WE_MAP :
std_logic_vector(
11 downto 0);
951 DQS_BYTE_MAP :
std_logic_vector(
143 downto 0);
952 DATA0_MAP :
std_logic_vector(
95 downto 0);
953 DATA1_MAP :
std_logic_vector(
95 downto 0);
954 DATA2_MAP :
std_logic_vector(
95 downto 0);
955 DATA3_MAP :
std_logic_vector(
95 downto 0);
956 DATA4_MAP :
std_logic_vector(
95 downto 0);
957 DATA5_MAP :
std_logic_vector(
95 downto 0);
958 DATA6_MAP :
std_logic_vector(
95 downto 0);
959 DATA7_MAP :
std_logic_vector(
95 downto 0);
960 DATA8_MAP :
std_logic_vector(
95 downto 0);
961 DATA9_MAP :
std_logic_vector(
95 downto 0);
962 DATA10_MAP :
std_logic_vector(
95 downto 0);
963 DATA11_MAP :
std_logic_vector(
95 downto 0);
964 DATA12_MAP :
std_logic_vector(
95 downto 0);
965 DATA13_MAP :
std_logic_vector(
95 downto 0);
966 DATA14_MAP :
std_logic_vector(
95 downto 0);
967 DATA15_MAP :
std_logic_vector(
95 downto 0);
968 DATA16_MAP :
std_logic_vector(
95 downto 0);
969 DATA17_MAP :
std_logic_vector(
95 downto 0);
970 MASK0_MAP :
std_logic_vector(
107 downto 0);
971 MASK1_MAP :
std_logic_vector(
107 downto 0);
972 SIM_CAL_OPTION :
string;
973 MASTER_PHY_CTL :
integer;
974 DRAM_WIDTH :
integer;
975 POC_USE_METASTABLE_SAMP :
string;
976 PI_DIV2_INCDEC :
string
980 iddr_rst :
in std_logic;
982 clk_div2 :
in std_logic;
983 freq_refclk :
in std_logic;
984 mem_refclk :
in std_logic;
985 pll_lock :
in std_logic;
986 sync_pulse :
in std_logic;
987 mmcm_ps_clk :
in std_logic;
988 idelayctrl_refclk :
in std_logic;
989 phy_cmd_wr_en :
in std_logic;
990 phy_data_wr_en :
in std_logic;
991 phy_ctl_wd :
in std_logic_vector(
31 downto 0);
992 phy_ctl_wr :
in std_logic;
993 phy_if_empty_def :
in std_logic;
994 phy_if_reset :
in std_logic;
995 data_offset_1 :
in std_logic_vector(
5 downto 0);
996 data_offset_2 :
in std_logic_vector(
5 downto 0);
997 aux_in_1 :
in std_logic_vector(
3 downto 0);
998 aux_in_2 :
in std_logic_vector(
3 downto 0);
999 idelaye2_init_val :
out std_logic_vector(
4 downto 0);
1000 oclkdelay_init_val :
out std_logic_vector(
5 downto 0);
1001 if_empty :
out std_logic;
1002 phy_ctl_full :
out std_logic;
1003 phy_cmd_full :
out std_logic;
1004 phy_data_full :
out std_logic;
1005 phy_pre_data_a_full :
out std_logic;
1006 ddr_clk :
out std_logic_vector(CK_WIDTH*LP_DDR_CK_WIDTH
-1 downto 0);
1007 phy_mc_go :
out std_logic;
1008 phy_write_calib :
in std_logic;
1009 phy_read_calib :
in std_logic;
1010 calib_in_common :
in std_logic;
1011 calib_sel :
in std_logic_vector(
5 downto 0);
1012 calib_zero_inputs :
in std_logic_vector(HIGHEST_BANK
-1 downto 0);
1013 calib_zero_ctrl :
in std_logic_vector(HIGHEST_BANK
-1 downto 0);
1014 po_fine_enable :
in std_logic_vector(
2 downto 0);
1015 po_coarse_enable :
in std_logic_vector(
2 downto 0);
1016 po_fine_inc :
in std_logic_vector(
2 downto 0);
1017 po_coarse_inc :
in std_logic_vector(
2 downto 0);
1018 po_counter_load_en :
in std_logic;
1019 po_counter_read_en :
in std_logic;
1020 po_sel_fine_oclk_delay :
in std_logic_vector(
2 downto 0);
1021 po_counter_load_val :
in std_logic_vector(
8 downto 0);
1022 po_counter_read_val :
out std_logic_vector(
8 downto 0);
1023 pi_counter_read_val :
out std_logic_vector(
5 downto 0);
1024 pi_rst_dqs_find :
in std_logic_vector(HIGHEST_BANK
-1 downto 0);
1025 pi_fine_enable :
in std_logic;
1026 pi_fine_inc :
in std_logic;
1027 pi_counter_load_en :
in std_logic;
1028 pi_counter_load_val :
in std_logic_vector(
5 downto 0);
1029 idelay_ce :
in std_logic;
1030 idelay_inc :
in std_logic;
1031 idelay_ld :
in std_logic;
1032 idle :
in std_logic;
1033 pi_phase_locked :
out std_logic;
1034 pi_phase_locked_all :
out std_logic;
1035 pi_dqs_found :
out std_logic;
1036 pi_dqs_found_all :
out std_logic;
1037 pi_dqs_out_of_range :
out std_logic;
1038 phy_init_data_sel :
in std_logic;
1039 mux_address :
in std_logic_vector(nCK_PER_CLK*ROW_WIDTH
-1 downto 0);
1040 mux_bank :
in std_logic_vector(nCK_PER_CLK*BANK_WIDTH
-1 downto 0);
1041 mux_cas_n :
in std_logic_vector(nCK_PER_CLK
-1 downto 0);
1042 mux_cs_n :
in std_logic_vector(CS_WIDTH*nCS_PER_RANK*nCK_PER_CLK
-1 downto 0);
1043 mux_ras_n :
in std_logic_vector(nCK_PER_CLK
-1 downto 0);
1044 mux_odt :
in std_logic_vector(
1 downto 0);
1045 mux_cke :
in std_logic_vector(nCK_PER_CLK
-1 downto 0);
1046 mux_we_n :
in std_logic_vector(nCK_PER_CLK
-1 downto 0);
1047 parity_in :
in std_logic_vector(nCK_PER_CLK
-1 downto 0);
1048 mux_wrdata :
in std_logic_vector(
2*nCK_PER_CLK*DQ_WIDTH
-1 downto 0);
1049 mux_wrdata_mask :
in std_logic_vector(
2*nCK_PER_CLK*(DQ_WIDTH/
8)
-1 downto 0);
1050 mux_reset_n :
in std_logic;
1051 rd_data :
out std_logic_vector(
2*nCK_PER_CLK*DQ_WIDTH
-1 downto 0);
1052 ddr_addr :
out std_logic_vector(ROW_WIDTH
-1 downto 0);
1053 ddr_ba :
out std_logic_vector(BANK_WIDTH
-1 downto 0);
1054 ddr_cas_n :
out std_logic;
1055 ddr_cke :
out std_logic_vector(CKE_WIDTH
-1 downto 0);
1056 ddr_cs_n :
out std_logic_vector(CS_WIDTH*nCS_PER_RANK
-1 downto 0);
1057 ddr_dm :
out std_logic_vector(DM_WIDTH
-1 downto 0);
1058 ddr_odt :
out std_logic_vector(ODT_WIDTH
-1 downto 0);
1059 ddr_parity :
out std_logic;
1060 ddr_ras_n :
out std_logic;
1061 ddr_we_n :
out std_logic;
1062 ddr_reset_n :
out std_logic;
1063 ddr_dq :
inout std_logic_vector(DQ_WIDTH
-1 downto 0);
1064 ddr_dqs :
inout std_logic_vector(DQS_WIDTH
-1 downto 0);
1065 ddr_dqs_n :
inout std_logic_vector(DQS_WIDTH
-1 downto 0);
1066 dbg_pi_counter_read_en :
in std_logic;
1067 ref_dll_lock :
out std_logic;
1068 rst_phaser_ref :
in std_logic;
1069 dbg_pi_phase_locked_phy4lanes :
out std_logic_vector(
11 downto 0);
1070 dbg_pi_dqs_found_lanes_phy4lanes :
out std_logic_vector(
11 downto 0);
1071 byte_sel_cnt :
in std_logic_vector(DQS_CNT_WIDTH
downto 0);
1072 fine_delay_incdec_pb :
in std_logic_vector(DRAM_WIDTH
-1 downto 0);
1073 fine_delay_sel :
in std_logic;
1074 pd_out :
out std_logic
1076 end component mig_7series_v4_2_ddr_mc_phy_wrapper;
1078 component mig_7series_v4_2_ddr_calib_top
is
1081 nCK_PER_CLK :
integer;
1083 DDR3_VDD_OP_VOLT :
string ;
1084 CLK_PERIOD :
integer;
1085 N_CTL_LANES :
integer;
1087 PRBS_WIDTH :
integer;
1088 HIGHEST_LANE :
integer;
1089 HIGHEST_BANK :
integer;
1091 DATA_CTL_B0 :
std_logic_vector(
3 downto 0);
1092 DATA_CTL_B1 :
std_logic_vector(
3 downto 0);
1093 DATA_CTL_B2 :
std_logic_vector(
3 downto 0);
1094 DATA_CTL_B3 :
std_logic_vector(
3 downto 0);
1095 DATA_CTL_B4 :
std_logic_vector(
3 downto 0);
1096 BYTE_LANES_B0 :
std_logic_vector(
3 downto 0);
1097 BYTE_LANES_B1 :
std_logic_vector(
3 downto 0);
1098 BYTE_LANES_B2 :
std_logic_vector(
3 downto 0);
1099 BYTE_LANES_B3 :
std_logic_vector(
3 downto 0);
1100 BYTE_LANES_B4 :
std_logic_vector(
3 downto 0);
1101 DQS_BYTE_MAP :
std_logic_vector(
143 downto 0);
1102 CTL_BYTE_LANE :
std_logic_vector(
7 downto 0);
1103 CTL_BANK :
std_logic_vector(
2 downto 0);
1104 SLOT_1_CONFIG :
std_logic_vector(
7 downto 0);
1105 BANK_WIDTH :
integer;
1107 COL_WIDTH :
integer;
1108 nCS_PER_RANK :
integer;
1110 DQS_CNT_WIDTH :
integer;
1111 DQS_WIDTH :
integer;
1112 DRAM_WIDTH :
integer;
1113 ROW_WIDTH :
integer;
1116 CKE_WIDTH :
integer;
1117 DDR2_DQSN_ENABLE :
string;
1118 PER_BIT_DESKEW :
string;
1119 NUM_DQSFOUND_CAL :
integer :=
1020;
1120 CALIB_ROW_ADD :
std_logic_vector(
15 downto 0);
1121 CALIB_COL_ADD :
std_logic_vector(
11 downto 0);
1122 CALIB_BA_ADD :
std_logic_vector(
2 downto 0);
1124 TEST_AL :
string := "
0";
1125 ADDR_CMD_MODE :
string;
1126 BURST_MODE :
string;
1127 BURST_TYPE :
string;
1132 OUTPUT_DRV :
string;
1136 USE_ODT_PORT :
integer;
1138 PRE_REV3ES :
string;
1139 SIM_INIT_OPTION :
string;
1140 SIM_CAL_OPTION :
string;
1141 CKE_ODT_AUX :
string;
1142 IDELAY_ADJ :
string;
1143 FINE_PER_BIT :
string;
1144 CENTER_COMP_MODE :
string;
1145 PI_VAL_ADJ :
string;
1146 TAPSPERKCLK :
integer;
1147 DEBUG_PORT :
string;
1148 SKIP_CALIB :
string;
1149 POC_USE_METASTABLE_SAMP :
string;
1150 PI_DIV2_INCDEC :
string
1155 slot_0_present :
in std_logic_vector(
7 downto 0);
1156 slot_1_present :
in std_logic_vector(
7 downto 0);
1157 phy_ctl_ready :
in std_logic;
1158 phy_ctl_full :
in std_logic;
1159 phy_cmd_full :
in std_logic;
1160 phy_data_full :
in std_logic;
1161 write_calib :
out std_logic;
1162 read_calib :
out std_logic;
1163 calib_ctl_wren :
out std_logic;
1164 calib_cmd_wren :
out std_logic;
1165 calib_seq :
out std_logic_vector(
1 downto 0);
1166 calib_aux_out :
out std_logic_vector(
3 downto 0);
1167 calib_cke :
out std_logic_vector(nCK_PER_CLK
-1 downto 0);
1168 calib_odt :
out std_logic_vector(
1 downto 0);
1169 calib_cmd :
out std_logic_vector(
2 downto 0);
1170 calib_wrdata_en :
out std_logic;
1171 calib_rank_cnt :
out std_logic_vector(
1 downto 0);
1172 calib_cas_slot :
out std_logic_vector(
1 downto 0);
1173 calib_data_offset_0 :
out std_logic_vector(
5 downto 0);
1174 calib_data_offset_1 :
out std_logic_vector(
5 downto 0);
1175 calib_data_offset_2 :
out std_logic_vector(
5 downto 0);
1176 phy_address :
out std_logic_vector(nCK_PER_CLK*ROW_WIDTH
-1 downto 0);
1177 phy_bank :
out std_logic_vector(nCK_PER_CLK*BANK_WIDTH
-1 downto 0);
1178 phy_cs_n :
out std_logic_vector(CS_WIDTH*nCS_PER_RANK*nCK_PER_CLK
-1 downto 0);
1179 phy_ras_n :
out std_logic_vector(nCK_PER_CLK
-1 downto 0);
1180 phy_cas_n :
out std_logic_vector(nCK_PER_CLK
-1 downto 0);
1181 phy_we_n :
out std_logic_vector(nCK_PER_CLK
-1 downto 0);
1182 phy_reset_n :
out std_logic;
1183 calib_sel :
out std_logic_vector(
5 downto 0);
1184 calib_in_common :
out std_logic;
1185 calib_zero_inputs :
out std_logic_vector(HIGHEST_BANK
-1 downto 0);
1186 calib_zero_ctrl :
out std_logic_vector(HIGHEST_BANK
-1 downto 0);
1187 phy_if_empty_def :
out std_logic;
1188 phy_if_reset :
out std_logic;
1189 pi_phaselocked :
in std_logic;
1190 pi_phase_locked_all :
in std_logic;
1191 pi_found_dqs :
in std_logic;
1192 pi_dqs_found_all :
in std_logic;
1193 pi_dqs_found_lanes :
in std_logic_vector(HIGHEST_LANE
-1 downto 0);
1194 pi_counter_read_val :
in std_logic_vector(
5 downto 0);
1195 pi_rst_stg1_cal :
out std_logic_vector(HIGHEST_BANK
-1 downto 0);
1196 pi_en_stg2_f :
out std_logic;
1197 pi_stg2_f_incdec :
out std_logic;
1198 pi_stg2_load :
out std_logic;
1199 pi_stg2_reg_l :
out std_logic_vector(
5 downto 0);
1200 idelay_ce :
out std_logic;
1201 idelay_inc :
out std_logic;
1202 idelay_ld :
out std_logic;
1203 po_sel_stg2stg3 :
out std_logic_vector(
2 downto 0);
1204 po_stg2_c_incdec :
out std_logic_vector(
2 downto 0);
1205 po_en_stg2_c :
out std_logic_vector(
2 downto 0);
1206 po_stg2_f_incdec :
out std_logic_vector(
2 downto 0);
1207 po_en_stg2_f :
out std_logic_vector(
2 downto 0);
1208 po_counter_load_en :
out std_logic;
1209 po_counter_read_val :
in std_logic_vector(
8 downto 0);
1210 device_temp :
in std_logic_vector(
11 downto 0);
1211 tempmon_sample_en :
in std_logic;
1212 phy_if_empty :
in std_logic;
1213 idelaye2_init_val :
in std_logic_vector(
4 downto 0);
1214 oclkdelay_init_val :
in std_logic_vector(
5 downto 0);
1215 tg_err :
in std_logic;
1216 rst_tg_mc :
out std_logic;
1217 phy_wrdata :
out std_logic_vector(
2*nCK_PER_CLK*DQ_WIDTH
-1 downto 0);
1218 dlyval_dq :
out std_logic_vector(
5*RANKS*DQ_WIDTH
-1 downto 0);
1219 phy_rddata :
in std_logic_vector(
2*nCK_PER_CLK*DQ_WIDTH
-1 downto 0);
1220 calib_rd_data_offset_0 :
out std_logic_vector(
6*RANKS
-1 downto 0);
1221 calib_rd_data_offset_1 :
out std_logic_vector(
6*RANKS
-1 downto 0);
1222 calib_rd_data_offset_2 :
out std_logic_vector(
6*RANKS
-1 downto 0);
1223 phy_rddata_valid :
out std_logic;
1224 calib_writes :
out std_logic;
1225 init_calib_complete :
out std_logic;
1226 init_wrcal_complete :
out std_logic;
1227 pi_phase_locked_err :
out std_logic;
1228 pi_dqsfound_err :
out std_logic;
1229 wrcal_err :
out std_logic;
1230 psen :
out std_logic;
1231 psincdec :
out std_logic;
1232 psdone :
in std_logic;
1233 poc_sample_pd :
in std_logic;
1234 calib_tap_req :
out std_logic;
1235 calib_tap_load :
in std_logic;
1236 calib_tap_addr :
in std_logic_vector(
6 downto 0);
1237 calib_tap_val :
in std_logic_vector(
7 downto 0);
1238 calib_tap_load_done :
in std_logic;
1239 dbg_pi_phaselock_start :
out std_logic;
1240 dbg_pi_dqsfound_start :
out std_logic;
1241 dbg_pi_dqsfound_done :
out std_logic;
1242 dbg_wrcal_start :
out std_logic;
1243 dbg_wrcal_done :
out std_logic;
1244 dbg_wrlvl_start :
out std_logic;
1245 dbg_wrlvl_done :
out std_logic;
1246 dbg_wrlvl_err :
out std_logic;
1247 dbg_wrlvl_fine_tap_cnt :
out std_logic_vector(
6*DQS_WIDTH
-1 downto 0);
1248 dbg_wrlvl_coarse_tap_cnt :
out std_logic_vector(
3*DQS_WIDTH
-1 downto 0);
1249 dbg_phy_wrlvl :
out std_logic_vector(
255 downto 0);
1250 dbg_tap_cnt_during_wrlvl :
out std_logic_vector(
5 downto 0);
1251 dbg_wl_edge_detect_valid :
out std_logic;
1252 dbg_rd_data_edge_detect :
out std_logic_vector(DQS_WIDTH
-1 downto 0);
1253 dbg_final_po_fine_tap_cnt :
out std_logic_vector(
6*DQS_WIDTH
-1 downto 0);
1254 dbg_final_po_coarse_tap_cnt :
out std_logic_vector(
3*DQS_WIDTH
-1 downto 0);
1255 dbg_phy_wrcal :
out std_logic_vector(
99 downto 0);
1256 dbg_rdlvl_start :
out std_logic_vector(
1 downto 0);
1257 dbg_rdlvl_done :
out std_logic_vector(
1 downto 0);
1258 dbg_rdlvl_err :
out std_logic_vector(
1 downto 0);
1259 dbg_cpt_first_edge_cnt :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1260 dbg_cpt_second_edge_cnt :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1261 dbg_cpt_tap_cnt :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1262 dbg_dq_idelay_tap_cnt :
out std_logic_vector(
5*DQS_WIDTH*RANKS
-1 downto 0);
1263 dbg_sel_pi_incdec :
in std_logic;
1264 dbg_sel_po_incdec :
in std_logic;
1265 dbg_byte_sel :
in std_logic_vector(DQS_CNT_WIDTH
downto 0);
1266 dbg_pi_f_inc :
in std_logic;
1267 dbg_pi_f_dec :
in std_logic;
1268 dbg_po_f_inc :
in std_logic;
1269 dbg_po_f_stg23_sel :
in std_logic;
1270 dbg_po_f_dec :
in std_logic;
1271 dbg_idel_up_all :
in std_logic;
1272 dbg_idel_down_all :
in std_logic;
1273 dbg_idel_up_cpt :
in std_logic;
1274 dbg_idel_down_cpt :
in std_logic;
1275 dbg_sel_idel_cpt :
in std_logic_vector(DQS_CNT_WIDTH
-1 downto 0);
1276 dbg_sel_all_idel_cpt :
in std_logic;
1277 dbg_phy_rdlvl :
out std_logic_vector(
255 downto 0);
1278 dbg_calib_top :
out std_logic_vector(
255 downto 0);
1279 dbg_phy_init :
out std_logic_vector(
255 downto 0);
1280 dbg_prbs_rdlvl :
out std_logic_vector(
255 downto 0);
1281 dbg_dqs_found_cal :
out std_logic_vector(
255 downto 0);
1282 dbg_phy_oclkdelay_cal :
out std_logic_vector(
255 downto 0);
1283 dbg_oclkdelay_rd_data :
out std_logic_vector(DRAM_WIDTH*
16-1 downto 0);
1284 dbg_oclkdelay_calib_start :
out std_logic;
1285 dbg_oclkdelay_calib_done :
out std_logic;
1286 dbg_poc :
out std_logic_vector(
1023 downto 0);
1287 prbs_final_dqs_tap_cnt_r :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1288 dbg_prbs_first_edge_taps :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1289 dbg_prbs_second_edge_taps :
out std_logic_vector(
6*DQS_WIDTH*RANKS
-1 downto 0);
1290 byte_sel_cnt :
out std_logic_vector(DQS_CNT_WIDTH
downto 0);
1291 fine_delay_incdec_pb :
out std_logic_vector(DRAM_WIDTH
-1 downto 0);
1292 fine_delay_sel :
out std_logic;
1293 pd_out :
in std_logic
1295 end component mig_7series_v4_2_ddr_calib_top;
1399 signal all_zeros : std_logic_vector(8 downto 0):= (others => '0');
1561 end generate div2_incdec;
1569 end generate div4_incdec;
1572 clock_gen : for i in 0 to (CK_WIDTH-1) generate
1639 wo_aux_out_gen : if(not(CKE_ODT_AUX = "TRUE")) generate
1656 gen_ddr3_parity_4by1: if (nCK_PER_CLK = 4) generate
1673 if (clk'event and clk = '1') then
1686 gen_ddr3_parity_2by1: if ( not(nCK_PER_CLK = 4)) generate
1697 if (clk'event and clk='1') then
1709 gen_ddr3_noparity : if (not(DRAM_TYPE = "DDR3") or not(REG_CTRL = "ON")) generate
1710 gen_ddr3_noparity_4by1 : if (nCK_PER_CLK = 4) generate
1713 if (clk'event and clk='1') then
1722 gen_ddr3_noparity_2by1 : if (not(nCK_PER_CLK = 4)) generate
1725 if (clk'event and clk='1') then
1740 if (clk'event and clk='1') then
1747 RD_REG_NO_TIMING : if( not(RD_PATH_REG = 1)) generate
1901 po_counter_read_en => '1',
1951 dbg_pi_counter_read_en => '1',
2006 PER_BIT_DESKEW =>
"OFF",
2046 phy_ctl_full => '0',
2047 phy_cmd_full => '0',
2048 phy_data_full => '0',
2127 calib_writes =>
open,
std_logic_vector( 8 downto 0) po_counter_read_val
std_logic phy_if_empty_def
std_logic_vector( 5 downto 0) mux_data_offset_2
std_logic_vector( 1 downto 0) mux_cas_slot
std_logic_vector( HIGHEST_BANK- 1 downto 0) rst_stg1_cal_div2r2
std_logic pi_dqs_found_all
std_logic_vector( nCK_PER_CLK* BANK_WIDTH- 1 downto 0) mux_bank
std_logic_vector( 2 downto 0) po_enstg2_c
std_logic_vector( 7 downto 0) := CTL_BYTE_LANE_W CTL_BYTE_LANE
string := SIM_CAL_OPTION_W SIM_CAL_OPTION
std_logic_vector( nCK_PER_CLK- 1 downto 0) mux_cas_n
std_logic pi_stg2_load_div2r2
std_logic_vector( 5 downto 0) calib_sel
std_logic_vector( 31 downto 0) phy_ctl_wd_i
std_logic_vector( HIGHEST_LANE* 80- 1 downto 0) phy_din
std_logic_vector( HIGHEST_LANE* 80- 1 downto 0) phy_dout
std_logic phy_pre_data_a_full
std_logic pi_stg2_fincdec_div2r3
std_logic_vector( 4 downto 0) idelaye2_init_val
std_logic_vector(( ROW_WIDTH+ BANK_WIDTH+ 3)- 1 downto 0) parity_1_wire
std_logic calib_wrdata_en
std_logic_vector( nCK_PER_CLK- 1 downto 0) parity
std_logic_vector( 11 downto 0) dbg_pi_dqs_found_lanes_phy4lanes_i
std_logic_vector( nCK_PER_CLK- 1 downto 0) phy_cas_n
std_logic_vector( 2* nCK_PER_CLK*( DQ_WIDTH/ 8)- 1 downto 0) mux_wrdata_mask
std_logic_vector( HIGHEST_BANK- 1 downto 0) calib_zero_ctrl
integer := CALC_nSLOTS nSLOTS
std_logic_vector( HIGHEST_BANK- 1 downto 0) pi_rst_dqs_find
std_logic pi_stg2_fincdec_div2r1
std_logic_vector( 3 downto 0) mux_aux_out
std_logic_vector( 5 downto 0) pi_stg2_reg_l
std_logic pi_stg2_fine_inc_r1
std_logic rddata_valid_reg
std_logic_vector( 2 downto 0) po_enstg2_f
std_logic_vector( HIGHEST_BANK- 1 downto 0) pi_dqs_find_rst
std_logic_vector( 5 downto 0) pi_counter_read_val
std_logic_vector( nCK_PER_CLK- 1 downto 0) phy_we_n
std_logic_vector( nCK_PER_CLK- 1 downto 0) phy_ras_n
std_logic_vector( 5 downto 0) pi_stg2_reg_l_div2r2
std_logic_vector(( ROW_WIDTH+ BANK_WIDTH+ 3)- 1 downto 0) parity_0_wire
std_logic_vector( nCK_PER_CLK- 1 downto 0) mux_cke
std_logic_vector( 1 downto 0) calib_cas_slot
std_logic init_wrcal_complete_i
integer := HIGHEST_LANE_W HIGHEST_LANE
std_logic_vector( 5 downto 0) pi_stg2_reg_l_div2r1
std_logic phy_rddata_valid_w
std_logic pi_stg2_fincdec
std_logic phy_init_data_sel
std_logic_vector( 5 downto 0) calib_data_offset_2
std_logic_vector( 5 downto 0) pi_stg2_reg_l_div2r3
std_logic pi_stg2_load_div2r3
std_logic_vector( 8 downto 0) :=( others => '0') all_zeros
std_logic ODD_PARITYinp_var,
std_logic_vector( nCK_PER_CLK- 1 downto 0) mux_ras_n
integer := HIGHEST_BANK_W HIGHEST_BANK
std_logic pi_stg2_fine_enable_r1
std_logic_vector( 2 downto 0) := CTL_BANK_W CTL_BANK
std_logic_vector( 1 downto 0) mux_rank_cnt
std_logic_vector( 6* RANKS- 1 downto 0) calib_rd_data_offset_i0
std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0) mux_wrdata
std_logic_vector( 5 downto 0) oclkdelay_init_val
std_logic_vector( HIGHEST_BANK- 1 downto 0) rst_stg1_cal
std_logic pi_stg2_load_div2r1
std_logic_vector(( ROW_WIDTH+ BANK_WIDTH+ 3)- 1 downto 0) parity_3_wire
std_logic_vector( CS_WIDTH* nCS_PER_RANK* nCK_PER_CLK- 1 downto 0) mux_cs_n
std_logic calib_in_common
string := CALC_WRLVL_W WRLVL_W
std_logic_vector( 1 downto 0) mux_odt
std_logic_vector( DRAM_WIDTH- 1 downto 0) fine_delay_incdec_pb
std_logic_vector( 1 downto 0) calib_odt
std_logic pi_stg2_load_en
std_logic_vector( 2 downto 0) po_stg2_cincdec
std_logic_vector( 5 downto 0) pi_stg2_load_val
std_logic_vector( nCK_PER_CLK* ROW_WIDTH- 1 downto 0) phy_address
std_logic_vector( nCK_PER_CLK* ROW_WIDTH- 1 downto 0) mux_address
std_logic_vector( 2 downto 0) mux_cmd
std_logic_vector( HIGHEST_LANE* 12- 1 downto 0) ddr_cmd_ctl_data
std_logic pi_stg2_fincdec_div2r2
string := PI_DIV2_INCDEC_FUN PI_DIV2_INCDEC
std_logic_vector( 2 downto 0) po_stg2_fincdec
std_logic_vector( CK_WIDTH* LP_DDR_CK_WIDTH- 1 downto 0) ddr_clk
std_logic pi_enstg2_f_div2r2
std_logic_vector( 1 downto 0) calib_rank_cnt
std_logic_vector( 5 downto 0) pi_counter_load_val
std_logic_vector( CS_WIDTH* nCS_PER_RANK* nCK_PER_CLK- 1 downto 0) mc_cs_n_temp
std_logic_vector( 1 downto 0) calib_seq
std_logic_vector( 5 downto 0) calib_data_offset_0
std_logic_vector( 3 downto 0) calib_aux_out
std_logic_vector( nCK_PER_CLK* BANK_WIDTH- 1 downto 0) phy_bank
string := SIM_INIT_OPTION_W SIM_INIT_OPTION
std_logic pi_phase_locked_all
std_logic_vector( HIGHEST_BANK- 1 downto 0) calib_zero_inputs
std_logic_vector(((( HIGHEST_LANE+ 3)/ 4)* 4)- 1 downto 0) aux_out
integer := tCK* nCK_PER_CLK CLK_PERIOD
std_logic pi_stg2_fine_inc
std_logic pi_counter_load_en
mig_7series_v4_2_ddr_mc_phy_wrapper u_ddr_mc_phy_wrapperu_ddr_mc_phy_wrapper
std_logic po_counter_load_en
std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0) rd_data_map
std_logic phy_write_calib
std_logic_vector( 5 downto 0) mux_data_offset
std_logic_vector( DQS_CNT_WIDTH downto 0) byte_sel_cnt
std_logic pi_stg2_fine_enable
std_logic_vector( 5 downto 0) calib_data_offset_1
std_logic_vector( 2 downto 0) po_sel_stg2stg3
std_logic pi_phase_locked
std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0) rd_data_reg
std_logic pi_stg2_load_en_r1
std_logic_vector( 5 downto 0) mux_data_offset_1
std_logic pi_enstg2_f_div2r3
std_logic_vector( nCK_PER_CLK- 1 downto 0) calib_cke
std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0) phy_wrdata
std_logic_vector(( ROW_WIDTH+ BANK_WIDTH+ 3)- 1 downto 0) parity_2_wire
std_logic_vector( 3 downto 0) aux_out_map
std_logic pi_enstg2_f_div2r1
integer := N_CTL_LANES_B0+ N_CTL_LANES_B1+ N_CTL_LANES_B2+ N_CTL_LANES_B3+ N_CTL_LANES_B4 N_CTL_LANES
std_logic pi_dqs_out_of_range
std_logic_vector( HIGHEST_BANK- 1 downto 0) rst_stg1_cal_div2r1
std_logic_vector( 2 downto 0) calib_cmd
mig_7series_v4_2_ddr_calib_top u_ddr_calib_topu_ddr_calib_top
std_logic_vector( CS_WIDTH* nCS_PER_RANK* nCK_PER_CLK- 1 downto 0) phy_cs_n
std_logic_vector( nCK_PER_CLK- 1 downto 0) mux_we_n
BYTE_LANES_B4 std_logic_vector( 3 downto 0) := "0000"
FPGA_SPEED_GRADE integer := 1
PI_VAL_ADJ string := "ON"
PRE_REV3ES string := "OFF"
USE_ODT_PORT integer := 1
PHY_1_BITLANES std_logic_vector( 47 downto 0) := X"000000000000"
in slot_1_present std_logic_vector( 7 downto 0)
LP_DDR_CK_WIDTH integer := 2
in mc_cmd std_logic_vector( 2 downto 0)
in mc_cke std_logic_vector( nCK_PER_CLK- 1 downto 0)
RAS_MAP std_logic_vector( 11 downto 0) := X"000"
BYTE_LANES_B1 std_logic_vector( 3 downto 0) := "0000"
DATA1_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in mc_aux_out0 std_logic_vector( 3 downto 0)
TAPSPERKCLK integer := 56
SIM_BYPASS_INIT_CAL string := "OFF"
out dbg_po_counter_read_val std_logic_vector( 8 downto 0)
IBUF_LPWR_MODE string := "OFF"
out dbg_rddata std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0)
in dbg_sel_po_incdec std_logic
out dbg_prbs_rdlvl std_logic_vector( 255 downto 0)
out ddr_cke std_logic_vector( CKE_WIDTH- 1 downto 0)
in mc_address std_logic_vector( nCK_PER_CLK* ROW_WIDTH- 1 downto 0)
out ddr_ck_n std_logic_vector( CK_WIDTH- 1 downto 0)
DATA_CTL_B2 std_logic_vector( 3 downto 0) := X"f"
in mc_cs_n std_logic_vector( CS_WIDTH* nCS_PER_RANK* nCK_PER_CLK- 1 downto 0)
IODELAY_GRP string := "IODELAY_MIG"
BYTE_LANES_B2 std_logic_vector( 3 downto 0) := "0000"
in dbg_idel_down_cpt std_logic
DATA_CTL_B4 std_logic_vector( 3 downto 0) := X"f"
inout ddr_dqs std_logic_vector( DQS_WIDTH- 1 downto 0)
in dbg_byte_sel std_logic_vector( DQS_CNT_WIDTH downto 0)
in mc_aux_out1 std_logic_vector( 3 downto 0)
out dbg_wrlvl_err std_logic
in mc_bank std_logic_vector( nCK_PER_CLK* BANK_WIDTH- 1 downto 0)
out ddr_reset_n std_logic
in mc_we_n std_logic_vector( nCK_PER_CLK- 1 downto 0)
DATA3_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in device_temp std_logic_vector( 11 downto 0)
out ddr_dm std_logic_vector( DM_WIDTH- 1 downto 0)
BYTE_LANES_B0 std_logic_vector( 3 downto 0) := "1111"
out dbg_cpt_tap_cnt std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
out dbg_oclkdelay_calib_done std_logic
out dbg_wrlvl_done std_logic
out phy_rd_data std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0)
in dbg_sel_idel_cpt std_logic_vector( DQS_CNT_WIDTH- 1 downto 0)
out prbs_final_dqs_tap_cnt_r std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
DDR2_DQSN_ENABLE string := "YES"
out dbg_wrcal_start std_logic
out phy_mc_ctl_full std_logic
CAS_MAP std_logic_vector( 11 downto 0) := X"000"
DQS_BYTE_MAP std_logic_vector( 143 downto 0) := X"000000000000000000000000000000000000"
DDR3_VDD_OP_VOLT string := "135"
DRAM_TYPE string := "DDR3"
out dbg_wrcal_done std_logic
BANK_TYPE string := "HP_IO"
FPGA_VOLT_TYPE string := "N"
out dbg_phy_wrcal std_logic_vector( 99 downto 0)
in calib_tap_val std_logic_vector( 7 downto 0)
DATA7_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out dbg_poc std_logic_vector( 1023 downto 0)
in mc_data_offset std_logic_vector( 5 downto 0)
out dbg_oclkdelay_rd_data std_logic_vector( DRAM_WIDTH* 16- 1 downto 0)
out calib_rd_data_offset_0 std_logic_vector( 6* RANKS- 1 downto 0)
CKE_ODT_BYTE_MAP std_logic_vector( 7 downto 0) := X"00"
in mc_wrdata std_logic_vector( 2* nCK_PER_CLK* DQ_WIDTH- 1 downto 0)
out dbg_pi_phaselocked_done std_logic
DATA11_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out ddr_addr std_logic_vector( ROW_WIDTH- 1 downto 0)
out dbg_phy_oclkdelay_cal std_logic_vector( 255 downto 0)
in dbg_po_f_stg23_sel std_logic
in dbg_sel_pi_incdec std_logic
out phy_rddata_valid std_logic
BURST_TYPE string := "SEQ"
DATA10_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DATA_CTL_B0 std_logic_vector( 3 downto 0) := X"c"
out init_calib_complete std_logic
CALIB_ROW_ADD std_logic_vector( 15 downto 0) := X"0000"
CKE_ODT_AUX string := "FALSE"
PHY_0_BITLANES std_logic_vector( 47 downto 0) := X"000000000000"
BANK_MAP std_logic_vector( 35 downto 0) := X"000000000"
out dbg_pi_dqsfound_done std_logic
out dbg_rdlvl_err std_logic_vector( 1 downto 0)
in slot_0_present std_logic_vector( 7 downto 0)
in mc_cas_n std_logic_vector( nCK_PER_CLK- 1 downto 0)
out init_wrcal_complete std_logic
out dbg_calib_top std_logic_vector( 255 downto 0)
DATA15_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
POC_USE_METASTABLE_SAMP string := "FALSE"
CKE_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out dbg_pi_phase_locked_phy4lanes std_logic_vector( 11 downto 0)
CK_BYTE_MAP std_logic_vector( 143 downto 0) := X"000000000000000000000000000000000000"
out dbg_wrlvl_coarse_tap_cnt std_logic_vector( 3* DQS_WIDTH- 1 downto 0)
DATA_IO_IDLE_PWRDWN string := "ON"
DATA_IO_PRIM_TYPE string := "DEFAULT"
out ref_dll_lock std_logic
DATA12_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DATA16_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in rst_phaser_ref std_logic
in dbg_sel_all_idel_cpt std_logic
out dbg_wrcal_err std_logic
in dbg_idel_up_cpt std_logic
CA_MIRROR string := "OFF"
out dbg_tap_cnt_during_wrlvl std_logic_vector( 5 downto 0)
DATA_CTL_B3 std_logic_vector( 3 downto 0) := X"f"
CS_MAP std_logic_vector( 119 downto 0) := X"000000000000000000000000000000"
out dbg_final_po_coarse_tap_cnt std_logic_vector( 3* DQS_WIDTH- 1 downto 0)
out dbg_pi_phaselock_start std_logic
WE_MAP std_logic_vector( 11 downto 0) := X"000"
in calib_tap_addr std_logic_vector( 6 downto 0)
IDELAY_ADJ string := "ON"
in tempmon_sample_en std_logic
ADDR_MAP std_logic_vector( 191 downto 0) := X"000000000000000000000000000000000000000000000000"
out calib_rd_data_offset_1 std_logic_vector( 6* RANKS- 1 downto 0)
MASK0_MAP std_logic_vector( 107 downto 0) := X"000000000000000000000000000"
out dbg_pi_dqsfound_err std_logic
out dbg_phy_rdlvl std_logic_vector( 255 downto 0)
out dbg_pi_phaselock_err std_logic
DATA6_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in dbg_pi_f_inc std_logic
in calib_tap_load_done std_logic
in mc_rank_cnt std_logic_vector( 1 downto 0)
in dbg_idel_up_all std_logic
in mc_data_offset_2 std_logic_vector( 5 downto 0)
in mc_ras_n std_logic_vector( nCK_PER_CLK- 1 downto 0)
out dbg_wl_edge_detect_valid std_logic
out dbg_pi_counter_read_val std_logic_vector( 5 downto 0)
out dbg_dq_idelay_tap_cnt std_logic_vector( 5* DQS_WIDTH* RANKS- 1 downto 0)
DATA4_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DATA_CTL_B1 std_logic_vector( 3 downto 0) := X"f"
out dbg_cpt_second_edge_cnt std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
out dbg_wrlvl_fine_tap_cnt std_logic_vector( 6* DQS_WIDTH- 1 downto 0)
MASTER_PHY_CTL integer := 0
in mc_wrdata_mask std_logic_vector(( 2* nCK_PER_CLK*( DQ_WIDTH/ 8))- 1 downto 0)
REFCLK_FREQ real := 200.0
out ddr_ck std_logic_vector( CK_WIDTH- 1 downto 0)
out phy_mc_cmd_full std_logic
MASK1_MAP std_logic_vector( 107 downto 0) := X"000000000000000000000000000"
in mc_data_offset_1 std_logic_vector( 5 downto 0)
OUTPUT_DRV string := "HIGH"
out dbg_pi_dqsfound_start std_logic
ADDR_CMD_MODE string := "1T"
in calib_tap_load std_logic
in dbg_po_f_inc std_logic
DATA17_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
in mc_odt std_logic_vector( 1 downto 0)
PHYCTL_CMD_FIFO string := "FALSE"
PHY_2_BITLANES std_logic_vector( 47 downto 0) := X"000000000000"
out calib_tap_req std_logic
ODT_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
CALIB_COL_ADD std_logic_vector( 11 downto 0) := X"000"
DQS_CNT_WIDTH integer := 3
CALIB_BA_ADD std_logic_vector( 2 downto 0) := "000"
out dbg_cpt_first_edge_cnt std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
nCS_PER_RANK integer := 1
in dbg_pi_f_dec std_logic
DATA8_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out dbg_prbs_second_edge_taps std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
out dbg_rddata_valid std_logic
out dbg_dqs_found_cal std_logic_vector( 255 downto 0)
out dbg_phy_wrlvl std_logic_vector( 255 downto 0)
in poc_sample_pd std_logic
inout ddr_dq std_logic_vector( DQ_WIDTH- 1 downto 0)
out calib_rd_data_offset_2 std_logic_vector( 6* RANKS- 1 downto 0)
out dbg_wrlvl_start std_logic
FINE_PER_BIT string := "ON"
DEBUG_PORT string := "OFF"
DATA2_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
SKIP_CALIB string := "FALSE"
in mc_cas_slot std_logic_vector( 1 downto 0)
out dbg_rdlvl_start std_logic_vector( 1 downto 0)
DATA14_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out ddr_odt std_logic_vector( ODT_WIDTH- 1 downto 0)
out dbg_final_po_fine_tap_cnt std_logic_vector( 6* DQS_WIDTH- 1 downto 0)
in mc_wrdata_en std_logic
out dbg_pi_dqs_found_lanes_phy4lanes std_logic_vector( 11 downto 0)
PARITY_MAP std_logic_vector( 11 downto 0) := X"000"
out dbg_rd_data_edge_detect std_logic_vector( DQS_WIDTH- 1 downto 0)
BYTE_LANES_B3 std_logic_vector( 3 downto 0) := "0000"
out dbg_prbs_first_edge_taps std_logic_vector( 6* DQS_WIDTH* RANKS- 1 downto 0)
in dbg_po_f_dec std_logic
out phy_mc_data_full std_logic
DATA5_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
out dbg_rd_data_offset std_logic_vector( 6* RANKS- 1 downto 0)
out dbg_phy_init std_logic_vector( 255 downto 0)
inout ddr_dqs_n std_logic_vector( DQS_WIDTH- 1 downto 0)
out ddr_cs_n std_logic_vector(( CS_WIDTH* nCS_PER_RANK)- 1 downto 0)
SLOT_1_CONFIG std_logic_vector( 7 downto 0) := "00000000"
out dbg_rdlvl_done std_logic_vector( 1 downto 0)
in dbg_idel_down_all std_logic
out dbg_oclkdelay_calib_start std_logic
out ddr_ba std_logic_vector( BANK_WIDTH- 1 downto 0)
DATA13_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
DATA9_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"
CENTER_COMP_MODE string := "ON"
DATA0_MAP std_logic_vector( 95 downto 0) := X"000000000000000000000000"