# EEPROM Connections
NET "pEEPROM_C"		LOC = "F14";
NET "pEEPROM_nS"	LOC = "B5";
NET "pEEPROM_D"		LOC = "F15";
NET "pEEPROM_Q"		LOC = "F13";
# IO
NET "pIO<0>"		LOC = "C1";
NET "pIO<1>"		LOC = "C2";
NET "pIO<2>"		LOC = "B1";
NET "pIO<3>"		LOC = "A2";
NET "pIO<4>"		LOC = "B3";
NET "pIO<5>"		LOC = "A3";
NET "pIO<6>"		LOC = "B4";
NET "pIO<7>"		LOC = "A4";
NET "pIO<8>"		LOC = "C5";
NET "pIO<9>"		LOC = "A5";
NET "pIO<10>"		LOC = "D6";
NET "pIO<11>"		LOC = "C6";
NET "pIO<12>"		LOC = "E7";
NET "pIO<13>"		LOC = "C7";
NET "pIO<14>"		LOC = "A7";
NET "pIO<15>"		LOC = "D8";
NET "pIO<16>"		LOC = "D9";
NET "pIO<17>"		LOC = "A9";
NET "pIO<18>"		LOC = "D10";
NET "pIO<19>"		LOC = "C10";
NET "pIO<20>"		LOC = "E11";
NET "pIO<21>"		LOC = "C11";
NET "pIO<22>"		LOC = "A11";
NET "pIO<23>"		LOC = "D12";
NET "pIO<24>"		LOC = "A12";
NET "pIO<25>"		LOC = "B13";
NET "pIO<26>"		LOC = "A14";
NET "pIO<27>"		LOC = "B16";
NET "pIO<28>"		LOC = "D16";
NET "pIO<29>"		LOC = "E14";
NET "pIO<30>"		LOC = "E16";
NET "pIO<31>"		LOC = "F12";
NET "pIO<32>"		LOC = "E15";
NET "pIO<33>"		LOC = "E13";
NET "pIO<34>"		LOC = "C16";
NET "pIO<35>"		LOC = "C15";
NET "pIO<36>"		LOC = "A13";
NET "pIO<37>"		LOC = "C13";
NET "pIO<38>"		LOC = "B12";
NET "pIO<39>"		LOC = "C12";
NET "pIO<40>"		LOC = "B11";
NET "pIO<41>"		LOC = "D11";
NET "pIO<42>"		LOC = "A10";
NET "pIO<43>"		LOC = "B10";
NET "pIO<44>"		LOC = "E10";
NET "pIO<45>"		LOC = "B9";
NET "pIO<46>"		LOC = "A8";
NET "pIO<47>"		LOC = "C8";
NET "pIO<48>"		LOC = "B7";
NET "pIO<49>"		LOC = "D7";
NET "pIO<50>"		LOC = "A6";
NET "pIO<51>"		LOC = "B6";
NET "pIO<52>"		LOC = "E6";
#
NET "pLED" LOC = "D5";
#NET "pFpgaCS<0>" LOC = "H2" | IOBDELAY = NONE  | SLEW = FAST;
#NET "pProgram<0>" LOC = "H3";
#NET "pFpgaBusy" LOC = "H4";
#NET "pFpgaCClk" LOC = "J4";
#NET "pFpgaDone" LOC = "J1";
#NET "pFpgaWrite" LOC = "J2";
#NET "pFpgaInit" LOC = "J3";
#
NET "pSTxD" LOC = "F5";
NET "pSRxD" LOC = "F4";
NET "pnCtrlReset" LOC = "G4";
#NET "pHVStatus"	LOC = "G2";
#NET "pOvlStatus" LOC = "G4";
#
NET "pPLX_nRESET"	LOC = D1;
NET "pRAM_nWE" LOC = F16 | IOBDELAY = NONE  | SLEW = FAST;
NET "pRAM_nOE" LOC = K2  | IOBDELAY = NONE  | SLEW = FAST;
NET "pRAM_nCS" LOC = K1  | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<0>"		LOC = K5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<1>"		LOC = L1 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<2>"		LOC = L2 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<3>"		LOC = L3 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<4>"		LOC = L4 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<5>"		LOC = L5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<6>"		LOC = M1 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<7>"		LOC = M2 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<8>"		LOC = M3 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<9>"		LOC = M4 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<10>"		LOC = N1 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<11>"		LOC = N2 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<12>"		LOC = P1 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<13>"		LOC = R1 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<14>"		LOC = T2 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<15>"		LOC = T3 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<16>"		LOC = T4 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<17>"		LOC = T5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<18>"		LOC = R5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<19>"		LOC = P5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<20>"		LOC = N5 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<21>"		LOC = T6 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<22>"		LOC = R6 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<23>"		LOC = P6 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<24>"		LOC = N6 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<25>"		LOC = M6 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<26>"		LOC = T7 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<27>"		LOC = R7 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<28>"		LOC = P7 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<29>"		LOC = N7 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<30>"		LOC = M7 | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LD<31>"		LOC = T8 | IOBDELAY = NONE  | SLEW = FAST;
##NET "DP<0>"		LOC = K4
##NET "DP<1>"		LOC = K3
##NET "DP<2>"		LOC = K16
##NET "DP<3>"		LOC = L14
NET "pPLX_LWR"     LOC = P8;
##NET "LCLKB"		LOC = N8
NET "pPLX_LA<2>" LOC = "N9" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<3>" LOC = "P9" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<4>" LOC = "R9" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<5>" LOC = "T9" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<6>" LOC = "M10" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<7>" LOC = "N10" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<8>" LOC = "P10" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<9>" LOC = "R10" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<10>" LOC = "T10" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<11>" LOC = "M11" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<12>" LOC = "N11" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<13>" LOC = "P11" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<14>" LOC = "R11" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<15>" LOC = "T11" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<16>" LOC = "N12" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<17>" LOC = "P12" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<18>" LOC = "R12" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<19>" LOC = "T12" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<20>" LOC = "P13" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<21>" LOC = "R13" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<22>" LOC = "T13" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<23>" LOC = "T14" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<24>" LOC = "T15" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<25>" LOC = "R16" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<26>" LOC = "P16" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<27>" LOC = "N14" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<28>" LOC = "N16" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<29>" LOC = "M13" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<30>" LOC = "M14" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_LA<31>" LOC = "M15" | IOBDELAY = NONE  | SLEW = FAST;
NET "pPLX_nBTERM" LOC = "L12";
NET "pPLX_nREADY" LOC = "L13" | IOBDELAY = NONE  | SLEW = FAST;
##NET "SYSINIT"		LOC = N15
NET "pPLX_BREQI" LOC = "M16";
##NET "BREQO"		LOC = H13
##NET "LSERR"		LOC = J16
NET "pPLX_nADS" LOC = "J15";
##NET "PMEREQ"		LOC = K14
##NET "LINTO"		LOC = H15
##NET "LINTI"		LOC = L16
##NET "DACK0"		L0C = K13
##NET "DACK1"		LOC = G15
##NET "DREQ0"		LOC = G12
##NET "DREQ1"		LOC = K12
##NET "WAIT"		LOC = L15
NET "pPLX_nBLAST" LOC = "J14";
NET "pPLX_LHOLD" LOC = "K15";
NET "pPLX_LHOLDA" LOC = "J13" | IOBDELAY = NONE  | SLEW = FAST;
##NET "DMPAF_EOT"		LOC = H14
NET "pPLX_nCCS" LOC = "G14";
#
NET "pPLX_LCLK" LOC = "R8";
#NET "pPLX_LCLK" PERIOD = 15 ns HIGH 50 %;
NET "pPLX_LCLK" PERIOD = 30 ns HIGH 50 %;
#NET "pPLX_LCLK" TNM_NET = "LCLK_BE";
#
# Timegroup containing all FFs clocked by the rising edge of LCLKA
#TIMEGRP "LCLK_RE" = RISING  LCLK_BE;
#
# Timegroup containing all FFs clocked by the falling edge of LCLKA
#TIMEGRP "LCLK_FE" = FALLING  LCLK_BE;
#
### Add constraints from inputs to FFs
#TIMESPEC TS_InToFFsRe=FROM:PADS(*):TO:LCLK_RE:12;  # 3ns setup time, plenty
#TIMESPEC TS_InToFFsFe=FROM:PADS(*):TO:LCLK_FE:5;   # 2.5ns setup time
#TIMESPEC TS_LAToFFsRe=FROM:PADS(pLA*):TO:LCLK_RE:6;
#TIMESPEC TS_LDToFFsRe=FROM:PADS(pLD*):TO:LCLK_RE:6;
#
#TIMESPEC TS_EEPROM_QTOFFsRE=FROM:PADS(pEeprom_Q):TO:LCLK_RE:12;
#
#TIMESPEC TS_nADSTOFFsRE=FROM:PADS(pnADS):TO::LCLK_RE:6; ## Allow for 9ns clock to out time from PLX chip
#TIMESPEC TS_nBLASTTOFFsRE=FROM:PADS(pnBLAST):TO::LCLK_RE:6; ## Allow for 9ns clock to out time from PLX chip
#TIMESPEC TS_LHOLDTOFFsRE=FROM:PADS(pLHOLD):TO::LCLK_RE:6; ## Allow for 9ns clock to out time from PLX chip
#TIMESPEC TS_LWnRTOFFsRE=FROM:PADS(pLWnR):TO::LCLK_RE:6; ## Allow for 9ns clock to out time from PLX chip
#
### Add constraints from FFs to outputs
#TIMESPEC TS_FFsReToSysRamCS=FROM:LCLK_RE:TO:PADS(pnSysRamCS):6;
#TIMESPEC TS_FFsReToSysRamOe=FROM:LCLK_RE:TO:PADS(pnSysRamOE):6;
#TIMESPEC TS_FFsReToSysRamWe=FROM:LCLK_RE:TO:PADS(pnSysRamWE):6;
#TIMESPEC TS_FFsReToLD=FROM:LCLK_RE:TO:PADS(pLD*):9.5;
#TIMESPEC TS_FFsReToLA=FROM:LCLK_RE:TO:PADS(pLA*):9.5;
#TIMESPEC TS_FFsReToEEPROM=FROM:LCLK_RE:TO:PADS(pEeprom_*):13;
#TIMESPEC TS_FFsReToLHOLDA=FROM:LCLK_RE:TO:PADS(pLHOLDA):5;
#TIMESPEC TS_FFsReTonREADY=FROM:LCLK_RE:TO:PADS(pnREADY):5;
#TIMESPEC TS_FFsReTonBTERM=FROM:LCLK_RE:TO:PADS(pnBTERM):5;
##TIMESPEC TS_FFsReTonCCI=FROM:LCLK_RE:TO:PADS(pnCCI):5;
#TIMESPEC TS_FFsReToBREQi=FROM:LCLK_RE:TO:PADS(pBREQi):8;

#
# Local bus signals which need to be out by the next rising clock edge
#TIMESPEC TS_FFsReToFpgaCCLK=FROM:LCLK_RE:TO:PADS(pFpgaCClk):9;
#TIMESPEC TS_FFsReToFpgaWrite=FROM:LCLK_RE:TO:PADS(pFpgaWrite):9;
#TIMESPEC TS_FFsReToFpgaCS=FROM:LCLK_RE:TO:PADS(pFpgaCS*):8;
#TIMESPEC TS_FFsReToPFpgaCS=FROM:LCLK_RE:TO:PADS(pPFpgaCS*):8;
#TIMESPEC TS_FFsReToProgram=FROM:LCLK_RE:TO:PADS(pProgram*):10;
#
# Non-critical signals
#TIMESPEC TS_FFsReToTestLed=FROM:LCLK_RE:TO:PADS(pTestLed):18;
#
### Add constraints from inputs to outputs
#TIMESPEC TS_InToOut=FROM:PADS(*):TO:PADS(*):10;
#
# IO constraints
#TIMESPEC TS_FFsReToIo=FROM:LCLK_RE:TO:PADS(pIO*):15;  # No hurry
#TIMESPEC TS_IoToFFsRe=FROM:PADS(pIO*):TO:LCLK_RE:15;  # No hurry
#

