// THE Card FM BSF FPGA User Constraint File for Fast IR Camera // MSU HEP Initial Revision: 19-NOV-1997 Last Edit: 25-NOV-1997 // -------------------------------------------------------------------------- // Timing Constraints // -------------------------------------------------------------------------- // The Raw ADC Clk goes through a number of steps in a pipeline. // Make sure that all of the steps can run fast enough. NET "Raw_ADC_Clk" TNM = ADC_Clock ; TIMESPEC TS_ADC_Clock = PERIOD ADC_Clock 30.0 ns ; // The Backplane Timing Signal 0 goes through a number of steps in // a pipeline. Make sure that all of the steps can run fast enough. NET "BP_TS_0_Clk" TNM = Signal_0_Clock ; TIMESPEC TS_Signal_0_Clock = PERIOD Signal_0_Clock 20.0 ns ; // -------------------------------------------------------------------------- // Special Characteristics Constraints // -------------------------------------------------------------------------- // FAST constraint // Note: the trailing asterisk is a wildcard, this constraint // covers HQ_Timing_PAD(15:0) NET HQ_Timing_PAD* FAST ; // -------------------------------------------------------------------------- // Pinout Constraints // -------------------------------------------------------------------------- // On-Card Bus connections: RA(8) present only on FM but not used on any card NET "Chip_Status_PAD*" LOC = "P174" ; NET "FPGA_OE_PAD*" LOC = "P187" ; NET "OCB_Chip_Sel_PAD*" LOC = "P142" ; NET "OCB_Direction_PAD" LOC = "P136" ; NET "OCB_Write_Strobe_PAD*" LOC = "P183" ; NET "OCB_Reg_Addr_PAD(0)" LOC = "P169" ; NET "OCB_Reg_Addr_PAD(1)" LOC = "P168" ; NET "OCB_Reg_Addr_PAD(2)" LOC = "P167" ; NET "OCB_Reg_Addr_PAD(3)" LOC = "P165" ; NET "OCB_Reg_Addr_PAD(4)" LOC = "P164" ; NET "OCB_Reg_Addr_PAD(5)" LOC = "P163" ; NET "OCB_Reg_Addr_PAD(6)" LOC = "P162" ; NET "OCB_Reg_Addr_PAD(7)" LOC = "P160" ; // NET "OCB_Reg_Addr_PAD(8)" LOC = "P157" ; # not used NET "OCB_Data_PAD(0)" LOC = "P177" ; NET "OCB_Data_PAD(1)" LOC = "P173" ; NET "OCB_Data_PAD(2)" LOC = "P159" ; NET "OCB_Data_PAD(3)" LOC = "P152" ; NET "OCB_Data_PAD(4)" LOC = "P148" ; NET "OCB_Data_PAD(5)" LOC = "P141" ; NET "OCB_Data_PAD(6)" LOC = "P129" ; NET "OCB_Data_PAD(7)" LOC = "P123" ; NET "OCB_Data_PAD(8)" LOC = "P176" ; NET "OCB_Data_PAD(9)" LOC = "P172" ; NET "OCB_Data_PAD(10)" LOC = "P155" ; NET "OCB_Data_PAD(11)" LOC = "P154" ; NET "OCB_Data_PAD(12)" LOC = "P145" ; NET "OCB_Data_PAD(13)" LOC = "P138" ; NET "OCB_Data_PAD(14)" LOC = "P131" ; NET "OCB_Data_PAD(15)" LOC = "P126" ; // P1 Timing signals NET "P1_TS_In_PAD(0)" LOC = "P63" ; // NET "P1_TS_In_PAD(1)" LOC = "P2" ; // NET "P1_TS_In_PAD(2)" LOC = "P57" ; // NET "P1_TS_In_PAD(3)" LOC = "P239" ; // NET "P1_TS_In_PAD(4)" LOC = "P56" ; // NET "P1_TS_In_PAD(5)" LOC = "P54" ; // NET "P1_TS_In_PAD(6)" LOC = "P52" ; NET "P1_TS_In_PAD(7)" LOC = "P50" ; // NET "P1_TS_In_PAD(8)" LOC = "P124" ; // NET "P1_TS_In_PAD(9)" LOC = "P184" ; // NET "P1_TS_In_PAD(10)" LOC = "P118" ; // NET "P1_TS_In_PAD(11)" LOC = "P178" ; # FM only // NET "P1_TS_In_PAD(11)" LOC = "P235" ; # not FM NET "P1_TS_In_PAD(12)" LOC = "P55" ; NET "P1_TS_In_PAD(13)" LOC = "P53" ; NET "P1_TS_In_PAD(14)" LOC = "P51" ; NET "P1_TS_In_PAD(15)" LOC = "P49" ; // P5 Global I/O signals NET "P5_Direction_PAD(0)" LOC = "P86" ; NET "P5_Direction_PAD(1)" LOC = "P95" ; NET "P5_Direction_PAD(2)" LOC = "P103" ; NET "P5_Direction_PAD(3)" LOC = "P110" ; NET "P5_Direction_PAD(4)" LOC = "P116" ; NET "P5_OE_PAD(0)" LOC = "P85" ; NET "P5_OE_PAD(1)" LOC = "P94" ; NET "P5_OE_PAD(2)" LOC = "P102" ; NET "P5_OE_PAD(3)" LOC = "P109" ; NET "P5_OE_PAD(4)" LOC = "P115" ; NET "P5_Global_IO_PAD(0)" LOC = "P87" ; NET "P5_Global_IO_PAD(1)" LOC = "P88" ; NET "P5_Global_IO_PAD(2)" LOC = "P92" ; NET "P5_Global_IO_PAD(3)" LOC = "P93" ; NET "P5_Global_IO_PAD(4)" LOC = "P96" ; NET "P5_Global_IO_PAD(5)" LOC = "P97" ; NET "P5_Global_IO_PAD(6)" LOC = "P99" ; NET "P5_Global_IO_PAD(7)" LOC = "P100" ; NET "P5_Global_IO_PAD(8)" LOC = "P104" ; NET "P5_Global_IO_PAD(9)" LOC = "P105" ; NET "P5_Global_IO_PAD(10)" LOC = "P107" ; NET "P5_Global_IO_PAD(11)" LOC = "P108" ; NET "P5_Global_IO_PAD(12)" LOC = "P111" ; NET "P5_Global_IO_PAD(13)" LOC = "P112" ; NET "P5_Global_IO_PAD(14)" LOC = "P113" ; NET "P5_Global_IO_PAD(15)" LOC = "P114" ; NET "P5_Global_IO_PAD(16)" LOC = "P117" ; // Board Global I/O signals // NET "Board_Global_IO_PAD(0)" LOC = "P65" ; // NET "Board_Global_IO_PAD(1)" LOC = "P66" ; // NET "Board_Global_IO_PAD(2)" LOC = "P67" ; // NET "Board_Global_IO_PAD(3)" LOC = "P68" ; // NET "Board_Global_IO_PAD(4)" LOC = "P69" ; // NET "Board_Global_IO_PAD(5)" LOC = "P70" ; // NET "Board_Global_IO_PAD(6)" LOC = "P71" ; // NET "Board_Global_IO_PAD(7)" LOC = "P72" ; // NET "Board_Global_IO_PAD(8)" LOC = "P73" ; // NET "Board_Global_IO_PAD(9)" LOC = "P74" ; // NET "Board_Global_IO_PAD(10)" LOC = "P76" ; // NET "Board_Global_IO_PAD(11)" LOC = "P77" ; // NET "Board_Global_IO_PAD(12)" LOC = "P78" ; // NET "Board_Global_IO_PAD(13)" LOC = "P79" ; // NET "Board_Global_IO_PAD(14)" LOC = "P81" ; // NET "Board_Global_IO_PAD(15)" LOC = "P82" ; // NET "Board_Global_IO_PAD(16)" LOC = "P84" ; // High-Quality Timing signals NET "HQ_Timing_PAD(0)" LOC = "P209" ; NET "HQ_Timing_PAD(1)" LOC = "P208" ; NET "HQ_Timing_PAD(2)" LOC = "P207" ; NET "HQ_Timing_PAD(3)" LOC = "P206" ; // NET "HQ_Timing_PAD(4)" LOC = "P205" ; // NET "HQ_Timing_PAD(5)" LOC = "P203" ; // NET "HQ_Timing_PAD(6)" LOC = "P202" ; // NET "HQ_Timing_PAD(7)" LOC = "P200" ; // NET "HQ_Timing_PAD(8)" LOC = "P199" ; // NET "HQ_Timing_PAD(9)" LOC = "P198" ; // NET "HQ_Timing_PAD(10)" LOC = "P197" ; // NET "HQ_Timing_PAD(11)" LOC = "P194" ; // NET "HQ_Timing_PAD(12)" LOC = "P193" ; // NET "HQ_Timing_PAD(13)" LOC = "P192" ; // NET "HQ_Timing_PAD(14)" LOC = "P191" ; // NET "HQ_Timing_PAD(15)" LOC = "P190" ; // Medium-Quality Timing signals: not present on FM // NET "Capture_HSRO_Data_PAD*" LOC = "P133" ; # not FM // NET "Capture_Monitor_Data_PAD*" LOC = "P134" ; # not FM // HSRO Data and Daisy-Chain signals // NET "HSRO_DCE_In_PAD*" LOC = "P89" ; # FM only // NET "HSRO_DCE_In_PAD*" LOC = "P28" ; # not FM // NET "HSRO_DCE_Out_PAD*" LOC = "P64" ; // NET "HSRO_Data_PAD(0)" LOC = "P134" ; # FM only // NET "HSRO_Data_PAD(0)" LOC = "P178" ; # not FM // NET "HSRO_Data_PAD(1)" LOC = "P171" ; // NET "HSRO_Data_PAD(2)" LOC = "P156" ; // NET "HSRO_Data_PAD(3)" LOC = "P147" ; // NET "HSRO_Data_PAD(4)" LOC = "P146" ; // NET "HSRO_Data_PAD(5)" LOC = "P139" ; // NET "HSRO_Data_PAD(6)" LOC = "P128" ; // NET "HSRO_Data_PAD(7)" LOC = "P125" ; // NET "HSRO_Data_PAD(8)" LOC = "P175" ; // NET "HSRO_Data_PAD(9)" LOC = "P170" ; // NET "HSRO_Data_PAD(10)" LOC = "P153" ; // NET "HSRO_Data_PAD(11)" LOC = "P149" ; // NET "HSRO_Data_PAD(12)" LOC = "P144" ; // NET "HSRO_Data_PAD(13)" LOC = "P137" ; // NET "HSRO_Data_PAD(14)" LOC = "P130" ; // NET "HSRO_Data_PAD(15)" LOC = "P127" ; // NET "HSRO_Data_PAD(16)" LOC = "P38" ; // NET "HSRO_Data_PAD(17)" LOC = "P41" ; // NET "HSRO_Data_PAD(18)" LOC = "P39" ; // NET "HSRO_Data_PAD(19)" LOC = "P42" ; // NET "HSRO_Data_Valid_PAD*" LOC = "P132" ; // HSRO Finisar control signals // NET "HSRO_CAV_PAD*" LOC = "P32" ; // NET "HSRO_CC_Link_Status_PAD" LOC = "P186" ; // NET "HSRO_CD_Link_Status_PAD" LOC = "P189" ; // NET "HSRO_Command_Clock_PAD" LOC = "P185" ; // NET "HSRO_Command_Data_PAD" LOC = "P188" ; // NET "HSRO_Converter_Latch_PAD" LOC = "P48" ; // NET "HSRO_DAV_PAD*" LOC = "P33" ; // NET "HSRO_Div_PAD(0)" LOC = "P47" ; // NET "HSRO_Div_PAD(1)" LOC = "P43" ; // NET "HSRO_ED_PAD" LOC = "P35" ; // NET "HSRO_FF_PAD" LOC = "P34" ; // NET "HSRO_FlagSel_PAD" LOC = "P31" ; // NET "HSRO_Flag_PAD" LOC = "P36" ; // NET "HSRO_LoopEn_PAD" LOC = "P46" ; // NET "HSRO_M20Sel_PAD" LOC = "P28" ; # FM only // NET "HSRO_M20Sel_PAD" LOC = "P27" ; # not FM // NET "HSRO_Rst_PAD*" LOC = "P44" ; // Unused pins, constraints are commented out // NET "" LOC = "P10" ; // NET "" LOC = "P11" ; // NET "" LOC = "P12" ; // NET "" LOC = "P13" ; // NET "" LOC = "P133" ; # FM only // NET "" LOC = "P15" ; // NET "" LOC = "P16" ; // NET "" LOC = "P18" ; // NET "" LOC = "P20" ; // NET "" LOC = "P21" ; // NET "" LOC = "P210" ; // NET "" LOC = "P213" ; // NET "" LOC = "P214" ; // NET "" LOC = "P215" ; // NET "" LOC = "P216" ; // NET "" LOC = "P217" ; // NET "" LOC = "P218" ; // NET "" LOC = "P220" ; // NET "" LOC = "P223" ; // NET "" LOC = "P225" ; // NET "" LOC = "P228" ; // NET "" LOC = "P23" ; // NET "" LOC = "P230" ; // NET "" LOC = "P231" ; // NET "" LOC = "P233" ; // NET "" LOC = "P234" ; // NET "" LOC = "P235" ; # FM only // NET "" LOC = "P24" ; // NET "" LOC = "P25" ; // NET "" LOC = "P26" ; // NET "" LOC = "P27" ; # FM only // NET "" LOC = "P3" ; // NET "" LOC = "P5" ; // NET "" LOC = "P8" ; // NET "" LOC = "P9" ; // NET "CCLK goes here" LOC = "P179" ; // NET "DONE -- Chip_Configed" LOC = "P120" ; // NET "ERR/INIT* -- Config_Error" LOC = "P89" ; # not FM // NET "M0 -- VDD" LOC = "P60" ; // NET "M1 -- GROUND" LOC = "P58" ; // NET "M2 -- VDD" LOC = "P62" ; // NET "PROG* -- Config_Chip*" LOC = "P122" ; // NET "TCK goes here" LOC = "P7" ; // NET "TDI goes here" LOC = "P6" ; // NET "TDO goes here" LOC = "P181" ; // NET "TMS goes here" LOC = "P17" ; // NET "Unused -- J26" LOC = "P4" ; // NET "Unused -- J27" LOC = "P238" ; // NET "Unused -- J28" LOC = "P237" ; // NET "Unused -- J29" LOC = "P236" ; // NET "Unused -- J30" LOC = "P232" ; // NET "Unused -- J31" LOC = "P229" ; // NET "Unused -- J32" LOC = "P226" ; // NET "Unused -- J33" LOC = "P224" ; # FM only // NET "Unused -- J33" LOC = "P221" ; # not FM // NET "" LOC = "P221" ; # FM only // NET "" LOC = "P224" ; # not FM