relocate PercolatedPort to edu.berkeley.fleet.two
[fleet.git] / src / edu / berkeley / fleet / fpga / main.ucf-
1 ############################################################################
2 ## 
3 ##  Xilinx, Inc. 2006            www.xilinx.com 
4 ##  Sat Feb 28 21:05:46 2009
5 ##  Generated by MIG Version 2.3
6 ##  
7 ############################################################################
8 ##  File name :       ddr2_sdram.ucf
9 ## 
10 ##  Details :     Constraints file
11 ##                    FPGA family:       virtex5
12 ##                    FPGA:              xc5vlx110t-ff1136
13 ##                    Speedgrade:        -1
14 ##                    Design Entry:      VERILOG
15 ##                    Frequency:         200 MHz
16 ##                    Design:            without Test bench
17 ##                    DCM Used:          Enable
18 ##                    Two Bytes per Bank:Disable
19 ##                    No.Of Controllers: 1
20 ##
21 ############################################################################ 
22
23 ############################################################################
24 # Clock constraints                                                        #
25 ############################################################################
26
27 NET "ddr2_0/ddr2_sdram/u_ddr2_infrastructure/sys_clk_ibufg" TNM_NET =  "SYS_CLK";
28 TIMESPEC "TS_SYS_CLK" = PERIOD "SYS_CLK" 5 ns HIGH 50 %;
29
30 NET "ddr2_0/ddr2_sdram/u_ddr2_infrastructure/clk200_ibufg" TNM_NET = "SYS_CLK_200";
31 TIMESPEC "TS_SYS_CLK_200" = PERIOD "SYS_CLK_200" 5 ns HIGH 50 %;
32
33 ############################################################################
34 ########################################################################
35 # Controller 0
36 # Memory Device: DDR2_SDRAM->SODIMMs->MT8HTF3264HY-53E #
37 # Data Width:     64 #
38 # Data Mask:     1 #
39 ########################################################################
40
41 ################################################################################
42 # I/O STANDARDS
43 ################################################################################
44
45 NET  "ddr2_dq[*]"                               IOSTANDARD = SSTL18_II_DCI;
46 NET  "ddr2_a[*]"                                IOSTANDARD = SSTL18_II;
47 NET  "ddr2_ba[*]"                               IOSTANDARD = SSTL18_II;
48 NET  "ddr2_ras_n"                               IOSTANDARD = SSTL18_II;
49 NET  "ddr2_cas_n"                               IOSTANDARD = SSTL18_II;
50 NET  "ddr2_we_n"                                IOSTANDARD = SSTL18_II;
51 NET  "ddr2_cs_n[*]"                             IOSTANDARD = SSTL18_II;
52 NET  "ddr2_odt[*]"                              IOSTANDARD = SSTL18_II;
53 NET  "ddr2_cke[*]"                              IOSTANDARD = SSTL18_II;
54 NET  "ddr2_dm[*]"                               IOSTANDARD = SSTL18_II;
55 NET  "sys_clk_p"                                IOSTANDARD = LVPECL_25;
56 NET  "sys_clk_n"                                IOSTANDARD = LVPECL_25;
57 NET  "clk200_p"                                 IOSTANDARD = LVPECL_25;
58 NET  "clk200_n"                                 IOSTANDARD = LVPECL_25;
59 NET  "sys_rst_n"                                IOSTANDARD = LVCMOS18;
60 NET  "phy_init_done"                            IOSTANDARD = LVCMOS18;
61 NET  "ddr2_dqs[*]"                              IOSTANDARD = DIFF_SSTL18_II_DCI;
62 NET  "ddr2_dqs_n[*]"                            IOSTANDARD = DIFF_SSTL18_II_DCI;
63 NET  "ddr2_ck[*]"                               IOSTANDARD = DIFF_SSTL18_II;
64 NET  "ddr2_ck_n[*]"                             IOSTANDARD = DIFF_SSTL18_II;
65
66 ################################################################################
67 # Location Constraints
68 ################################################################################
69
70 NET  "ddr2_dq[0]"                                LOC = "C20" ;        #Bank 23
71 NET  "ddr2_dq[1]"                                LOC = "B20" ;        #Bank 23
72 NET  "ddr2_dq[2]"                                LOC = "B21" ;        #Bank 23
73 NET  "ddr2_dq[3]"                                LOC = "A21" ;        #Bank 23
74 NET  "ddr2_dq[4]"                                LOC = "C18" ;        #Bank 23
75 NET  "ddr2_dq[5]"                                LOC = "C22" ;        #Bank 23
76 NET  "ddr2_dq[6]"                                LOC = "B22" ;        #Bank 23
77 NET  "ddr2_dq[7]"                                LOC = "B18" ;        #Bank 23
78 NET  "ddr2_dq[8]"                                LOC = "C23" ;        #Bank 23
79 NET  "ddr2_dq[9]"                                LOC = "B23" ;        #Bank 23
80 NET  "ddr2_dq[10]"                               LOC = "A19" ;        #Bank 23
81 NET  "ddr2_dq[11]"                               LOC = "A20" ;        #Bank 23
82 NET  "ddr2_dq[12]"                               LOC = "A24" ;        #Bank 23
83 NET  "ddr2_dq[13]"                               LOC = "D26" ;        #Bank 23
84 NET  "ddr2_dq[14]"                               LOC = "C27" ;        #Bank 23
85 NET  "ddr2_dq[15]"                               LOC = "A29" ;        #Bank 23
86 NET  "ddr2_dq[16]"                               LOC = "C28" ;        #Bank 23
87 NET  "ddr2_dq[17]"                               LOC = "D27" ;        #Bank 23
88 NET  "ddr2_dq[18]"                               LOC = "B31" ;        #Bank 23
89 NET  "ddr2_dq[19]"                               LOC = "A31" ;        #Bank 23
90 NET  "ddr2_dq[20]"                               LOC = "D29" ;        #Bank 23
91 NET  "ddr2_dq[21]"                               LOC = "D31" ;        #Bank 23
92 NET  "ddr2_dq[22]"                               LOC = "D30" ;        #Bank 23
93 NET  "ddr2_dq[23]"                               LOC = "A30" ;        #Bank 23
94 NET  "ddr2_dq[24]"                               LOC = "K24" ;        #Bank 19
95 NET  "ddr2_dq[25]"                               LOC = "L24" ;        #Bank 19
96 NET  "ddr2_dq[26]"                               LOC = "L25" ;        #Bank 19
97 NET  "ddr2_dq[27]"                               LOC = "L26" ;        #Bank 19
98 NET  "ddr2_dq[28]"                               LOC = "J25" ;        #Bank 19
99 NET  "ddr2_dq[29]"                               LOC = "M25" ;        #Bank 19
100 NET  "ddr2_dq[30]"                               LOC = "M26" ;        #Bank 19
101 NET  "ddr2_dq[31]"                               LOC = "J27" ;        #Bank 19
102 NET  "ddr2_dq[32]"                               LOC = "G25" ;        #Bank 19
103 NET  "ddr2_dq[33]"                               LOC = "G26" ;        #Bank 19
104 NET  "ddr2_dq[34]"                               LOC = "H25" ;        #Bank 19
105 NET  "ddr2_dq[35]"                               LOC = "H24" ;        #Bank 19
106 NET  "ddr2_dq[36]"                               LOC = "F26" ;        #Bank 19
107 NET  "ddr2_dq[37]"                               LOC = "K28" ;        #Bank 19
108 NET  "ddr2_dq[38]"                               LOC = "L28" ;        #Bank 19
109 NET  "ddr2_dq[39]"                               LOC = "K27" ;        #Bank 19
110 NET  "ddr2_dq[40]"                               LOC = "M28" ;        #Bank 19
111 NET  "ddr2_dq[41]"                               LOC = "N28" ;        #Bank 19
112 NET  "ddr2_dq[42]"                               LOC = "P26" ;        #Bank 19
113 NET  "ddr2_dq[43]"                               LOC = "P27" ;        #Bank 19
114 NET  "ddr2_dq[44]"                               LOC = "P24" ;        #Bank 19
115 NET  "ddr2_dq[45]"                               LOC = "P25" ;        #Bank 19
116 NET  "ddr2_dq[46]"                               LOC = "N25" ;        #Bank 19
117 NET  "ddr2_dq[47]"                               LOC = "R24" ;        #Bank 19
118 NET  "ddr2_dq[48]"                               LOC = "E29" ;        #Bank 15
119 NET  "ddr2_dq[49]"                               LOC = "F29" ;        #Bank 15
120 NET  "ddr2_dq[50]"                               LOC = "G30" ;        #Bank 15
121 NET  "ddr2_dq[51]"                               LOC = "F30" ;        #Bank 15
122 NET  "ddr2_dq[52]"                               LOC = "J29" ;        #Bank 15
123 NET  "ddr2_dq[53]"                               LOC = "F31" ;        #Bank 15
124 NET  "ddr2_dq[54]"                               LOC = "E31" ;        #Bank 15
125 NET  "ddr2_dq[55]"                               LOC = "L29" ;        #Bank 15
126 NET  "ddr2_dq[56]"                               LOC = "H30" ;        #Bank 15
127 NET  "ddr2_dq[57]"                               LOC = "G31" ;        #Bank 15
128 NET  "ddr2_dq[58]"                               LOC = "J30" ;        #Bank 15
129 NET  "ddr2_dq[59]"                               LOC = "J31" ;        #Bank 15
130 NET  "ddr2_dq[60]"                               LOC = "M30" ;        #Bank 15
131 NET  "ddr2_dq[61]"                               LOC = "T31" ;        #Bank 15
132 NET  "ddr2_dq[62]"                               LOC = "R31" ;        #Bank 15
133 NET  "ddr2_dq[63]"                               LOC = "U30" ;        #Bank 15
134 NET  "ddr2_a[12]"                                LOC = "B30" ;        #Bank 23
135 NET  "ddr2_a[11]"                                LOC = "T24" ;        #Bank 19
136 NET  "ddr2_a[10]"                                LOC = "P31" ;        #Bank 15
137 NET  "ddr2_a[9]"                                 LOC = "P30" ;        #Bank 15
138 NET  "ddr2_a[8]"                                 LOC = "M31" ;        #Bank 15
139 NET  "ddr2_a[7]"                                 LOC = "N30" ;        #Bank 15
140 NET  "ddr2_a[6]"                                 LOC = "T28" ;        #Bank 15
141 NET  "ddr2_a[5]"                                 LOC = "T29" ;        #Bank 15
142 NET  "ddr2_a[4]"                                 LOC = "U27" ;        #Bank 15
143 NET  "ddr2_a[3]"                                 LOC = "U28" ;        #Bank 15
144 NET  "ddr2_a[2]"                                 LOC = "R26" ;        #Bank 15
145 NET  "ddr2_a[1]"                                 LOC = "R27" ;        #Bank 15
146 NET  "ddr2_a[0]"                                 LOC = "U26" ;        #Bank 15
147 NET  "ddr2_ba[1]"                                LOC = "T26" ;        #Bank 15
148 NET  "ddr2_ba[0]"                                LOC = "U25" ;        #Bank 15
149 NET  "ddr2_ras_n"                                LOC = "T25" ;        #Bank 15
150 NET  "ddr2_cas_n"                                LOC = "B32" ;        #Bank 11
151 NET  "ddr2_we_n"                                 LOC = "A33" ;        #Bank 11
152 NET  "ddr2_cs_n[0]"                              LOC = "B33" ;        #Bank 11
153 NET  "ddr2_odt[0]"                               LOC = "C33" ;        #Bank 11
154 NET  "ddr2_cke[0]"                               LOC = "C32" ;        #Bank 11
155 NET  "ddr2_dm[0]"                                LOC = "C19" ;        #Bank 23
156 NET  "ddr2_dm[1]"                                LOC = "A23" ;        #Bank 23
157 NET  "ddr2_dm[2]"                                LOC = "C30" ;        #Bank 23
158 NET  "ddr2_dm[3]"                                LOC = "J24" ;        #Bank 19
159 NET  "ddr2_dm[4]"                                LOC = "F25" ;        #Bank 19
160 NET  "ddr2_dm[5]"                                LOC = "N24" ;        #Bank 19
161 NET  "ddr2_dm[6]"                                LOC = "H29" ;        #Bank 15
162 NET  "ddr2_dm[7]"                                LOC = "L30" ;        #Bank 15
163 NET  "sys_clk_p"                                 LOC = "H17" ;        #Bank 3
164 NET  "sys_clk_n"                                 LOC = "H18" ;        #Bank 3
165 NET  "clk200_p"                                  LOC = "K17" ;        #Bank 3
166 NET  "clk200_n"                                  LOC = "L18" ;        #Bank 3
167 NET  "sys_rst_n"                                 LOC = "D32" ;        #Bank 11
168 NET  "phy_init_done"                             LOC = "C34" ;        #Bank 11
169 NET  "ddr2_dqs[0]"                               LOC = "C24" ;        #Bank 23
170 NET  "ddr2_dqs_n[0]"                             LOC = "D25" ;        #Bank 23
171 NET  "ddr2_dqs[1]"                               LOC = "B26" ;        #Bank 23
172 NET  "ddr2_dqs_n[1]"                             LOC = "A25" ;        #Bank 23
173 NET  "ddr2_dqs[2]"                               LOC = "B27" ;        #Bank 23
174 NET  "ddr2_dqs_n[2]"                             LOC = "A26" ;        #Bank 23
175 NET  "ddr2_dqs[3]"                               LOC = "G27" ;        #Bank 19
176 NET  "ddr2_dqs_n[3]"                             LOC = "H27" ;        #Bank 19
177 NET  "ddr2_dqs[4]"                               LOC = "H28" ;        #Bank 19
178 NET  "ddr2_dqs_n[4]"                             LOC = "G28" ;        #Bank 19
179 NET  "ddr2_dqs[5]"                               LOC = "E28" ;        #Bank 19
180 NET  "ddr2_dqs_n[5]"                             LOC = "F28" ;        #Bank 19
181 NET  "ddr2_dqs[6]"                               LOC = "N29" ;        #Bank 15
182 NET  "ddr2_dqs_n[6]"                             LOC = "P29" ;        #Bank 15
183 NET  "ddr2_dqs[7]"                               LOC = "K31" ;        #Bank 15
184 NET  "ddr2_dqs_n[7]"                             LOC = "L31" ;        #Bank 15
185 NET  "ddr2_ck[0]"                                LOC = "B25" ;        #Bank 23
186 NET  "ddr2_ck_n[0]"                              LOC = "C25" ;        #Bank 23
187 NET  "ddr2_ck[1]"                                LOC = "E26" ;        #Bank 19
188 NET  "ddr2_ck_n[1]"                              LOC = "E27" ;        #Bank 19
189
190 ################################################################################
191 #IDELAYCTRL Location Constraints
192 ################################################################################
193 INST "*/IDELAYCTRL_INST[0].u_idelayctrl" LOC=IDELAYCTRL_X0Y7;
194 INST "*/IDELAYCTRL_INST[1].u_idelayctrl" LOC=IDELAYCTRL_X0Y6;
195 INST "*/IDELAYCTRL_INST[2].u_idelayctrl" LOC=IDELAYCTRL_X0Y5;
196
197 ###############################################################################
198 # Define multicycle paths - these paths may take longer because additional
199 # time allowed for logic to settle in calibration/initialization FSM
200 ###############################################################################
201
202 # MIG 2.1: Eliminate Timegroup definitions for CLK0, and CLK90. Instead trace
203 #          multicycle paths from originating flip-flop to ANY destination
204 #          flip-flop (or in some cases, it can also be a BRAM)
205 # MUX Select for either rising/falling CLK0 for 2nd stage read capture
206 INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL";
207 TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO FFS
208 "TS_SYS_CLK" * 4;
209
210 # Commented out -- AM
211 # MUX select for read data - optional delay on data to account for byte skews
212 #INST "*/u_usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX";
213 #TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO FFS
214 #"TS_SYS_CLK" * 4;
215
216 # Calibration/Initialization complete status flag (for PHY logic only) - can
217 # be used to drive both flip-flops and BRAMs
218 INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL";
219 TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO FFS
220 "TS_SYS_CLK" * 4;
221 TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO RAMS
222 "TS_SYS_CLK" * 4;
223 # Select (address) bits for SRL32 shift registers used in stage3/stage4
224 # calibration
225 INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY";
226 TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO FFS "TS_SYS_CLK" * 4;
227
228 # Commented out -- AM
229 #INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY";
230 #TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO FFS "TS_SYS_CLK" * 4;
231
232 INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly"
233   TNM = "TNM_CAL_RDEN_DLY";
234 TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO FFS
235   "TS_SYS_CLK" * 4;
236
237 ###############################################################################
238 # DQS Read Post amble Glitch Squelch circuit related constraints
239 ###############################################################################
240
241 ###############################################################################
242 # LOC placement of DQS-squelch related IDDR and IDELAY elements
243 # Each circuit can be located at any of the following locations:
244 #  1. Unused "N"-side of DQS differential pair I/O
245 #  2. DM data mask (output only, input side is free for use)
246 #  3. Any output-only site
247 ###############################################################################
248
249 INST "*/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y302";
250 INST "*/gen_dqs[0].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y302";
251 INST "*/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y300";
252 INST "*/gen_dqs[1].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y300";
253 INST "*/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y298";
254 INST "*/gen_dqs[2].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y298";
255 INST "*/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y262";
256 INST "*/gen_dqs[3].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y262";
257 INST "*/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y260";
258 INST "*/gen_dqs[4].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y260";
259 INST "*/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y258";
260 INST "*/gen_dqs[5].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y258";
261 INST "*/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y222";
262 INST "*/gen_dqs[6].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y222";
263 INST "*/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y220";
264 INST "*/gen_dqs[7].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y220";
265
266 ###############################################################################
267 # LOC and timing constraints for flop driving DQS CE enable signal
268 # from fabric logic. Even though the absolute delay on this path is
269 # calibrated out (when synchronizing this output to DQS), the delay
270 # should still be kept as low as possible to reduce post-calibration
271 # voltage/temp variations - these are roughly proportional to the
272 # absolute delay of the path
273 ###############################################################################
274
275 INST "*/u_phy_calib/gen_gate[0].u_en_dqs_ff"  LOC = SLICE_X0Y151;
276 INST "*/u_phy_calib/gen_gate[1].u_en_dqs_ff"  LOC = SLICE_X0Y150;
277 INST "*/u_phy_calib/gen_gate[2].u_en_dqs_ff"  LOC = SLICE_X0Y149;
278 INST "*/u_phy_calib/gen_gate[3].u_en_dqs_ff"  LOC = SLICE_X0Y131;
279 INST "*/u_phy_calib/gen_gate[4].u_en_dqs_ff"  LOC = SLICE_X0Y130;
280 INST "*/u_phy_calib/gen_gate[5].u_en_dqs_ff"  LOC = SLICE_X0Y129;
281 INST "*/u_phy_calib/gen_gate[6].u_en_dqs_ff"  LOC = SLICE_X0Y111;
282 INST "*/u_phy_calib/gen_gate[7].u_en_dqs_ff"  LOC = SLICE_X0Y110;
283
284 # Control for DQS gate - from fabric flop. Prevent "runaway" delay -
285 # two parts to this path: (1) from fabric flop to IDELAY, (2) from
286 # IDELAY to asynchronous reset of IDDR that drives the DQ CE's
287 # This can be relaxed by the user for lower frequencies:
288 # 300MHz = 850ps, 267MHz = 900ps. At 200MHz = 950ps.
289 # In general PAR should be able to route this
290 # within 900ps over all speed grades.
291 NET "*/u_phy_io/en_dqs*" MAXDELAY = 600 ps;
292 NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 850 ps;
293
294 ###############################################################################
295 # "Half-cycle" path constraint from IDDR to CE pin for all DQ IDDR's
296 # for DQS Read Post amble Glitch Squelch circuit
297 ###############################################################################
298
299 # Max delay from output of IDDR to CE input of DQ IDDRs = tRPST + some slack
300 #  where slack account for rise-time of DQS on board. For now assume slack = 
301 #  0.400ns (based on initial SPICE simulations, assumes use of ODT), so 
302 #  time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz
303 INST "*/gen_dqs[*].u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR";
304 INST "*/gen_dq[*].u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS";
305 TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 2.4 ns;
306
307 ###############################################################################
308 # MIG 2.2: Prevent unrelated logic from being packed into any slices used
309 #          by read data capture RPM's - if unrelated logic gets packed into
310 #          these slices, it could cause the DIRT strings that define the
311 #          IDDR -> fabric flop routing to become unroutable during PAR stage
312 #          (unrelated logic may require routing resources required by the
313 #          DIRT strings - MAP does not currently take into account DIRT
314 #          strings when placing logic
315 ###############################################################################
316
317 AREA_GROUP "DDR_CAPTURE_FFS" GROUP = CLOSED;
318
319 ###############################################################################
320 # Location constraints for DQ read-data capture flops in fabric (for 2nd
321 # stage capture)
322 ###############################################################################
323
324 INST "*/gen_dq[0].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y159;
325 INST "*/gen_dq[1].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y159;
326 INST "*/gen_dq[2].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y158;
327 INST "*/gen_dq[3].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y158;
328 INST "*/gen_dq[4].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y157;
329 INST "*/gen_dq[5].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y156;
330 INST "*/gen_dq[6].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y156;
331 INST "*/gen_dq[7].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y155;
332 INST "*/gen_dq[8].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y154;
333 INST "*/gen_dq[9].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y154;
334 INST "*/gen_dq[10].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y153;
335 INST "*/gen_dq[11].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y153;
336 INST "*/gen_dq[12].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y152;
337 INST "*/gen_dq[13].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y146;
338 INST "*/gen_dq[14].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y146;
339 INST "*/gen_dq[15].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y145;
340 INST "*/gen_dq[16].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y144;
341 INST "*/gen_dq[17].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y144;
342 INST "*/gen_dq[18].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y143;
343 INST "*/gen_dq[19].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y143;
344 INST "*/gen_dq[20].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y142;
345 INST "*/gen_dq[21].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y141;
346 INST "*/gen_dq[22].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y141;
347 INST "*/gen_dq[23].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y140;
348 INST "*/gen_dq[24].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y139;
349 INST "*/gen_dq[25].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y139;
350 INST "*/gen_dq[26].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y138;
351 INST "*/gen_dq[27].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y138;
352 INST "*/gen_dq[28].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y137;
353 INST "*/gen_dq[29].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y136;
354 INST "*/gen_dq[30].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y136;
355 INST "*/gen_dq[31].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y135;
356 INST "*/gen_dq[32].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y134;
357 INST "*/gen_dq[33].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y134;
358 INST "*/gen_dq[34].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y133;
359 INST "*/gen_dq[35].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y133;
360 INST "*/gen_dq[36].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y132;
361 INST "*/gen_dq[37].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y126;
362 INST "*/gen_dq[38].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y126;
363 INST "*/gen_dq[39].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y125;
364 INST "*/gen_dq[40].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y124;
365 INST "*/gen_dq[41].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y124;
366 INST "*/gen_dq[42].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y123;
367 INST "*/gen_dq[43].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y123;
368 INST "*/gen_dq[44].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y122;
369 INST "*/gen_dq[45].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y121;
370 INST "*/gen_dq[46].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y121;
371 INST "*/gen_dq[47].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y120;
372 INST "*/gen_dq[48].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y119;
373 INST "*/gen_dq[49].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y119;
374 INST "*/gen_dq[50].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y118;
375 INST "*/gen_dq[51].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y118;
376 INST "*/gen_dq[52].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y117;
377 INST "*/gen_dq[53].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y116;
378 INST "*/gen_dq[54].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y116;
379 INST "*/gen_dq[55].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y115;
380 INST "*/gen_dq[56].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y114;
381 INST "*/gen_dq[57].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y114;
382 INST "*/gen_dq[58].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y113;
383 INST "*/gen_dq[59].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y113;
384 INST "*/gen_dq[60].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y112;
385 INST "*/gen_dq[61].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y106;
386 INST "*/gen_dq[62].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y106;
387 INST "*/gen_dq[63].u_iob_dq/gen_stg2_*.u_ff_stg2a_rise"  RLOC_ORIGIN = X0Y105;
388