#This UCF is tailored to the naming requirements of the MIG UCF reader
#The SODIMM described here is a 2GB DDR3 module

#Clock Inputs
NET "sys_clk_n" LOC = "B10" | IOSTANDARD = "LVDS_25" | DIFF_TERM = "TRUE"
NET "sys_clk_p" LOC = "A10" | IOSTANDARD = "LVDS_25" | DIFF_TERM = "TRUE"

#####################################
###DDR3 SO-DIMM

#Clocks
NET "ddr3_ck_n[0]" LOC = "AD15";
NET "ddr3_ck_p[0]" LOC = "AC15";
NET "ddr3_ck_n[1]" LOC = "AM15";
NET "ddr3_ck_p[1]" LOC = "AN15";

#Address/Control
NET "ddr3_addr[0]" LOC = "AM17";
NET "ddr3_addr[1]" LOC = "AF16";
NET "ddr3_addr[2]" LOC = "AN17";
NET "ddr3_addr[3]" LOC = "AG17";
NET "ddr3_addr[4]" LOC = "AK16";
NET "ddr3_addr[5]" LOC = "AG16";
NET "ddr3_addr[6]" LOC = "AK17";
NET "ddr3_addr[7]" LOC = "AG18";
NET "ddr3_addr[8]" LOC = "AE16";
NET "ddr3_addr[9]" LOC = "AD16";
NET "ddr3_addr[10]" LOC = "AH15";
NET "ddr3_addr[11]" LOC = "AH18";
NET "ddr3_addr[12]" LOC = "AE17";
NET "ddr3_addr[13]" LOC = "AJ16";
NET "ddr3_addr[14]" LOC = "AK18";
#NET "ddr3_addr[15]" LOC = "AH19";

NET "ddr3_ba[0]" LOC = "AG15";
NET "ddr3_ba[1]" LOC = "AP16";
NET "ddr3_ba[2]" LOC = "AD17";
NET "ddr3_ras_n" LOC = "AM16";
NET "ddr3_cas_n" LOC = "AJ17";
NET "ddr3_we_n" LOC = "AF15";
NET "ddr3_reset_n" LOC = "AP17";
NET "ddr3_cke[0]" LOC = "AF18";
#NET "ddr3_cke[1]" LOC = "AJ19";
NET "ddr3_odt[0]" LOC = "AP15";
#NET "ddr3_odt[1]" LOC = "AL15";
NET "ddr3_cs_n[0]" LOC = "AL16";
#NET "ddr3_cs_n[1]" LOC = "AJ15";
#NET "ddr3_event" LOC = "AL14";

#Data Masks
NET "ddr3_dm[0]" LOC = "AM30";
NET "ddr3_dm[1]" LOC = "AL26";
NET "ddr3_dm[2]" LOC = "AP26";
NET "ddr3_dm[3]" LOC = "AJ22";
NET "ddr3_dm[4]" LOC = "AN20";
NET "ddr3_dm[5]" LOC = "AH14";
NET "ddr3_dm[6]" LOC = "AM10";
NET "ddr3_dm[7]" LOC = "AG11";

#dq
NET "ddr3_dq[0]" LOC = "AK29";
NET "ddr3_dq[1]" LOC = "AN30";
NET "ddr3_dq[2]" LOC = "AL29";
NET "ddr3_dq[3]" LOC = "AN29";
NET "ddr3_dq[4]" LOC = "AP31";
NET "ddr3_dq[5]" LOC = "AP30";
NET "ddr3_dq[6]" LOC = "AH28";
NET "ddr3_dq[7]" LOC = "AH27";
NET "ddr3_dq[8]" LOC = "AK28";
NET "ddr3_dq[9]" LOC = "AL28";
NET "ddr3_dq[10]" LOC = "AJ27";
NET "ddr3_dq[11]" LOC = "AH25";
NET "ddr3_dq[12]" LOC = "AP29";
NET "ddr3_dq[13]" LOC = "AM27";
NET "ddr3_dq[14]" LOC = "AJ25";
NET "ddr3_dq[15]" LOC = "AH24";
NET "ddr3_dq[16]" LOC = "AJ24";
NET "ddr3_dq[17]" LOC = "AK24";
NET "ddr3_dq[18]" LOC = "AL24";
NET "ddr3_dq[19]" LOC = "AK23";
NET "ddr3_dq[20]" LOC = "AP27";
NET "ddr3_dq[21]" LOC = "AM26";
NET "ddr3_dq[22]" LOC = "AN25";
NET "ddr3_dq[23]" LOC = "AN24";
NET "ddr3_dq[24]" LOC = "AD21";
NET "ddr3_dq[25]" LOC = "AE21";
NET "ddr3_dq[26]" LOC = "AK22";
NET "ddr3_dq[27]" LOC = "AL18";
NET "ddr3_dq[28]" LOC = "AN19";
NET "ddr3_dq[29]" LOC = "AP19";
NET "ddr3_dq[30]" LOC = "AM18";
NET "ddr3_dq[31]" LOC = "AN18";
NET "ddr3_dq[32]" LOC = "AF21";
NET "ddr3_dq[33]" LOC = "AC20";
NET "ddr3_dq[34]" LOC = "AD20";
NET "ddr3_dq[35]" LOC = "AE19";
NET "ddr3_dq[36]" LOC = "AP21";
NET "ddr3_dq[37]" LOC = "AJ20";
NET "ddr3_dq[38]" LOC = "AL19";
NET "ddr3_dq[39]" LOC = "AK19";
NET "ddr3_dq[40]" LOC = "AF14";
NET "ddr3_dq[41]" LOC = "AG12";
NET "ddr3_dq[42]" LOC = "AK13";
NET "ddr3_dq[43]" LOC = "AH12";
NET "ddr3_dq[44]" LOC = "AN14";
NET "ddr3_dq[45]" LOC = "AP14";
NET "ddr3_dq[46]" LOC = "AL13";
NET "ddr3_dq[47]" LOC = "AN12";
NET "ddr3_dq[48]" LOC = "AF11";
NET "ddr3_dq[49]" LOC = "AE11";
NET "ddr3_dq[50]" LOC = "AE13";
NET "ddr3_dq[51]" LOC = "AE12";
NET "ddr3_dq[52]" LOC = "AK12";
NET "ddr3_dq[53]" LOC = "AJ12";
NET "ddr3_dq[54]" LOC = "AK11";
NET "ddr3_dq[55]" LOC = "AJ11";
NET "ddr3_dq[56]" LOC = "AC12";
NET "ddr3_dq[57]" LOC = "AH10";
NET "ddr3_dq[58]" LOC = "AD11";
NET "ddr3_dq[59]" LOC = "AG10";
NET "ddr3_dq[60]" LOC = "AP12";
NET "ddr3_dq[61]" LOC = "AM12";
NET "ddr3_dq[62]" LOC = "AL10";
NET "ddr3_dq[63]" LOC = "AJ10";

#dqs
NET "ddr3_dqs_n[0]" LOC = "AG26";
NET "ddr3_dqs_p[0]" LOC = "AG25";
NET "ddr3_dqs_n[1]" LOC = "AM28";
NET "ddr3_dqs_p[1]" LOC = "AN28";
NET "ddr3_dqs_n[2]" LOC = "AL25";
NET "ddr3_dqs_p[2]" LOC = "AM25";
NET "ddr3_dqs_n[3]" LOC = "AH22";
NET "ddr3_dqs_p[3]" LOC = "AG22";
NET "ddr3_dqs_n[4]" LOC = "AL20";
NET "ddr3_dqs_p[4]" LOC = "AM20";
NET "ddr3_dqs_n[5]" LOC = "AM13";
NET "ddr3_dqs_p[5]" LOC = "AN13";
NET "ddr3_dqs_n[6]" LOC = "AC14";
NET "ddr3_dqs_p[6]" LOC = "AD14";
NET "ddr3_dqs_n[7]" LOC = "AM11";
NET "ddr3_dqs_p[7]" LOC = "AL11";

#Bank 22
CONFIG PROHIBIT = AF20, AP20, AF19;

#Bank 23
CONFIG PROHIBIT = AH23, AK27, AN27;

#Bank 32
CONFIG PROHIBIT = AH17;

#Bank 33
CONFIG PROHIBIT = AP11, AD12, AC13;

CONFIG DCI_CASCADE = "23 22";
CONFIG DCI_CASCADE = "33 32";
#####################################
