OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [orpsocv2/] [boards/] [xilinx/] [ml501/] [backend/] [par/] [bin/] [ml501.ucf] - Blame information for rev 655

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 67 julius
######################################################################
2
#
3
# UCF file for ML501 PAR
4
#
5
######################################################################
6
 
7
#------------------------------------------------------------------------------
8
# ZBT SSRAM controller multi-cycle path constraints (ssram_controller)
9
#------------------------------------------------------------------------------
10
 
11
# Define the two clock domains as timespecs
12
#NET dcm0_clkdv TNM_NET="wb_clk";
13
#TIMESPEC "TS_wb_clk" = PERIOD "wb_clk" 20 ns HIGH 10;
14
#NET dcm0_clk0 TNM_NET = "ssram_clk200";
15
#TIMESPEC "TS_ssram_clk200" = PERIOD "ssram_clk200" "TS_wb_clk" / 4;
16
 
17
# Now define their relationship - logic should be configured so that there's
18
# 1 WB cycle at all times before anything is sampled across domains
19
#TIMESPEC "TS_wb_clk_ssram_clk200" = from "wb_clk" TO "ssram_clk200" 15 ns;
20
#TIMESPEC "TS_ssram_clk200_wb_clk" = from "ssram_clk200" TO "wb_clk" 15 ns;
21
 
22
#------------------------------------------------------------------------------
23
# Pins used
24
#------------------------------------------------------------------------------
25
 
26
# 100MHz fixed freq clock.
27 415 julius
#NET sys_clk_in LOC = AD8;
28
#NET sys_clk_in IOSTANDARD = LVCMOS33;
29
#NET "sys_clk_in" TNM_NET = "sys_clk_in";
30
#TIMESPEC "TS_sys_clk_in" = PERIOD "sys_clk_in" 10 ns HIGH 50.00%;
31 67 julius
 
32
NET sys_clk_in_p LOC = E16;
33
NET sys_clk_in_n LOC = E17;
34
NET sys_clk_in_p IOSTANDARD = LVDS_25;
35
NET sys_clk_in_n IOSTANDARD = LVDS_25;
36
INST *sys_clk_in_ibufds DIFF_TERM=TRUE;
37
 
38 415 julius
NET "clkgen0/sys_clk_in_200" TNM_NET = "sys_clk_in_200";
39
TIMESPEC "TSSYSCLK200" = PERIOD "sys_clk_in_200" 5 ns HIGH 50 %;
40 67 julius
 
41
 
42 415 julius
NET rst_n_pad_i LOC = T23 | IOSTANDARD = LVDCI_33;
43
NET rst_n_pad_i PULLUP;
44
NET rst_n_pad_i TIG;
45
 
46
 
47 67 julius
#------------------------------------------------------------------------------
48
# User Reset pins (hook up so user can reset system from processor)
49
#------------------------------------------------------------------------------
50
 
51 415 julius
#NET usr_rst_out LOC = P20 | IOSTANDARD = LVCMOS25; # HDR2_62
52
#NET usr_rst_out PULLUP;
53
#NET usr_rst_out TIG;
54
#NET usr_rst_in LOC = P21 | IOSTANDARD = LVCMOS25; # HDR2_64
55
#NET usr_rst_in PULLUP;
56
#NET usr_rst_in TIG;
57 67 julius
 
58
#------------------------------------------------------------------------------
59
# All pins for ML501
60
#------------------------------------------------------------------------------
61
 
62
#NET "sys_clk_s" TNM_NET = "sys_clk";
63
#TIMESPEC "TSSYSCLK" = PERIOD "sys_clk" 10 ns HIGH 50 %;
64
#NET "sys_clk_in_200" TNM_NET = "sys_clk_in_200";
65
#TIMESPEC "TSSYSCLK200" = PERIOD "sys_clk_in_200" 5 ns HIGH 50 %;
66
 
67
#NET sys_clk_in_p LOC = E16;
68
#NET sys_clk_in_n LOC = E17;
69
#NET sys_clk_in_p IOSTANDARD = LVDS_25;
70
#NET sys_clk_in_n IOSTANDARD = LVDS_25;
71
#INST *sys_clk_in_ibufds DIFF_TERM=TRUE;
72
 
73
#NET sys_rst_pin LOC = T23 | IOSTANDARD = LVCMOS33 | PULLUP;
74
 
75
#NET Interrupt TIG;
76
 
77
# Reset timing ignore - treat as async paths
78
#NET sys_rst_s TIG;
79
#NET opb_v20_0_OPB_Rst TIG;
80
#NET lmb_v10_1_OPB_Rst TIG;
81
#NET lmb_v10_0_OPB_Rst TIG;
82
#NET opb_v20_0_Debug_SYS_Rst TIG;
83
#NET plb_v34_0_PLB_Rst TIG;
84
#NET dcm_locked TIG;
85
 
86
#------------------------------------------------------------------------------
87
# OpenCores JTAG Debug signals and User UART on EXP Header pins
88
#------------------------------------------------------------------------------
89
 
90 415 julius
NET uart0_srx_expheader_pad_i  LOC = F25; # HDR2_2
91
NET uart0_srx_expheader_pad_i TIG;
92
NET uart0_srx_expheader_pad_i PULLUP;
93
NET uart0_srx_expheader_pad_i IOSTANDARD = LVCMOS25;
94 67 julius
 
95 415 julius
NET uart0_stx_expheader_pad_o  LOC = F24; # HDR2_4
96
NET uart0_stx_expheader_pad_o TIG;
97
NET uart0_stx_expheader_pad_o PULLUP;
98
NET uart0_stx_expheader_pad_o IOSTANDARD = LVCMOS25;
99 67 julius
 
100 415 julius
NET tdo_pad_o  LOC = E26; # HDR2_6
101
NET tdi_pad_i  LOC = E25; # HDR2_8
102
NET tms_pad_i  LOC = G22; # HDR2_10
103
NET tck_pad_i  LOC = G21; # HDR2_12
104 67 julius
 
105 415 julius
NET tdo_pad_o  TIG; NET tdo_pad_o  PULLUP; NET tdo_pad_o  IOSTANDARD = LVCMOS25;
106
NET tdi_pad_i  TIG; NET tdi_pad_i  PULLUP; NET tdi_pad_i  IOSTANDARD = LVCMOS25;
107
NET tms_pad_i  TIG; NET tms_pad_i  PULLUP; NET tms_pad_i  IOSTANDARD = LVCMOS25;
108
NET tck_pad_i  TIG; NET tck_pad_i  PULLUP; NET tck_pad_i  IOSTANDARD = LVCMOS25;
109 67 julius
# Overide the following mapping error:
110
# ERROR:Place:645 - A clock IOB clock component is not placed at an optimal clock
111
# IOB site.
112 415 julius
NET "tck_pad_i" CLOCK_DEDICATED_ROUTE = FALSE;
113 67 julius
 
114
#////////////////////////////////////////////////////////////////////////////
115
#// Buttons, LEDs, Piezo, and DIP Switches
116
#////////////////////////////////////////////////////////////////////////////
117
 
118
# GPLED
119 415 julius
NET gpio0_io<0>  LOC = E11; #GPLED7 (Rightmost - LSB)
120
NET gpio0_io<1>  LOC = E10; #GPLED6
121
NET gpio0_io<2>  LOC = E15; #GPLED5
122
NET gpio0_io<3>  LOC = D15; #GPLED4
123
NET gpio0_io<4> LOC = F12; #GPLED3
124
NET gpio0_io<5> LOC = E12; #GPLED2
125
NET gpio0_io<6> LOC = D14; #GPLED1
126
NET gpio0_io<7> LOC = E13; #GPLED0 (Leftmost - MSB)
127 67 julius
 
128 415 julius
NET gpio0_io<0>  IOSTANDARD = LVCMOS25;
129
NET gpio0_io<1>  IOSTANDARD = LVCMOS25;
130
NET gpio0_io<2>  IOSTANDARD = LVCMOS25;
131
NET gpio0_io<3>  IOSTANDARD = LVCMOS25;
132
NET gpio0_io<4>  IOSTANDARD = LVCMOS25;
133
NET gpio0_io<5>  IOSTANDARD = LVCMOS25;
134
NET gpio0_io<6>  IOSTANDARD = LVCMOS25;
135
NET gpio0_io<7>  IOSTANDARD = LVCMOS25;
136 67 julius
 
137
# North-East-South-West-Center LEDs
138 415 julius
NET gpio0_io<8>  LOC = T22;  # C LED
139
NET gpio0_io<9>  LOC = AA18; # W LED
140
NET gpio0_io<10>  LOC = AA8;  # S LED
141
NET gpio0_io<11>  LOC = Y18;  # E LED
142
NET gpio0_io<12>  LOC = Y8;   # N LED
143
NET gpio0_io<8> IOSTANDARD = LVCMOS33;
144
NET gpio0_io<9> IOSTANDARD = LVCMOS33;
145
NET gpio0_io<10> IOSTANDARD = LVCMOS33;
146
NET gpio0_io<11> IOSTANDARD = LVCMOS33;
147
NET gpio0_io<12> IOSTANDARD = LVCMOS33;
148 67 julius
 
149
# North-East-South-West-Center Buttons
150 415 julius
NET gpio0_io<13>  LOC = B21; # C Button
151
NET gpio0_io<14> LOC = C21; # W Button
152
NET gpio0_io<15> LOC = B22; # S Button
153
NET gpio0_io<16> LOC = A23; # E Button
154
NET gpio0_io<17> LOC = A22; # N Button
155
NET gpio0_io<13>  IOSTANDARD = LVCMOS33;
156
NET gpio0_io<14> IOSTANDARD = LVCMOS33;
157
NET gpio0_io<15> IOSTANDARD = LVCMOS33;
158
NET gpio0_io<16> IOSTANDARD = LVCMOS33;
159
NET gpio0_io<17> IOSTANDARD = LVCMOS33;
160 67 julius
 
161
# Dip Switches 1-8
162 415 julius
NET gpio0_io<18> LOC = T7; # DIP SW 8
163
NET gpio0_io<19> LOC = U7; # DIP SW 7
164
NET gpio0_io<20> LOC = U5; # DIP SW 6
165
NET gpio0_io<21> LOC = U6; # DIP SW 5
166
NET gpio0_io<22> LOC = T5; # DIP SW 4
167
NET gpio0_io<23> LOC = T4; # DIP SW 3
168
#NET gpio0_io<24> LOC = V3; # DIP SW 2
169
#NET gpio0_io<25> LOC = U4; # DIP SW 1
170
NET gpio0_io<18> IOSTANDARD = LVCMOS18;
171
NET gpio0_io<19> IOSTANDARD = LVCMOS18;
172
NET gpio0_io<20> IOSTANDARD = LVCMOS18;
173
NET gpio0_io<21> IOSTANDARD = LVCMOS18;
174
NET gpio0_io<22> IOSTANDARD = LVCMOS18;
175
NET gpio0_io<23> IOSTANDARD = LVCMOS18;
176
#NET gpio0_io<24> IOSTANDARD = LVCMOS18;
177
#NET gpio0_io<25> IOSTANDARD = LVCMOS18;
178 67 julius
 
179
#SMA Connectors
180 415 julius
#NET gpio0_io<22> LOC = F10; # SMA_IN_N
181
#NET gpio0_io<23> LOC = F9;  # SMA_IN_P
182
#NET gpio0_io<24> LOC = F19; # SMA_OUT_N
183
#NET gpio0_io<25> LOC = E18; # SMA_OUT_P
184
#NET gpio0_io<26> LOC = AD8; # USERCLK
185
#NET gpio0_io<22> IOSTANDARD = LVCMOS25;
186
#NET gpio0_io<23> IOSTANDARD = LVCMOS25;
187
#NET gpio0_io<24> IOSTANDARD = LVCMOS25;
188
#NET gpio0_io<25> IOSTANDARD = LVCMOS25;
189
#NET gpio0_io<26> IOSTANDARD = LVCMOS33;
190 67 julius
 
191 415 julius
NET "gpio0_io<*>" PULLDOWN;
192
NET "gpio0_io<*>" TIG;
193
NET "gpio0_io<*>" SLEW = SLOW;
194
NET "gpio0_io<*>" DRIVE = 2;
195 67 julius
 
196 415 julius
#NET "gpio0_io<22>" SLEW = FAST;
197
#NET "gpio0_io<22>" DRIVE = 12;
198
#NET "gpio0_io<23>" SLEW = FAST;
199
#NET "gpio0_io<23>" DRIVE = 12;
200
#NET "gpio0_io<24>" SLEW = FAST;
201
#NET "gpio0_io<24>" DRIVE = 12;
202
#NET "gpio0_io<25>" SLEW = FAST;
203
#NET "gpio0_io<25>" DRIVE = 12;
204 67 julius
 
205
## #NET  "gpio2_d_out<*>" TIG;
206
## #NET  "gpio2_t_out<*>" TIG;
207
## NET  "gpio2_in<*>" TIG;
208
 
209
## NET  "piezo" LOC = V1;
210
## NET  "piezo" IOSTANDARD = LVCMOS18;
211
## NET  "piezo" TIG;
212
 
213
## #------------------------------------------------------------------------------
214
## # IO Pad Location Constraints / Properties for PS/2 Ports
215
## #------------------------------------------------------------------------------
216
 
217
## #Keyboard
218
## NET ps2_keyb_clk  LOC = J1;
219
## NET ps2_keyb_clk  SLEW = SLOW;
220
## NET ps2_keyb_clk  DRIVE = 2;
221
## NET ps2_keyb_clk  IOSTANDARD = LVCMOS18;
222
## NET ps2_keyb_clk  TIG;
223
## NET ps2_keyb_data LOC = H2;
224
## NET ps2_keyb_data SLEW = SLOW;
225
## NET ps2_keyb_data DRIVE = 2;
226
## NET ps2_keyb_data IOSTANDARD = LVCMOS18;
227
## NET ps2_keyb_data TIG;
228
 
229
## #Mouse
230
## NET ps2_mouse_clk  LOC = L2;
231
## NET ps2_mouse_clk  SLEW = SLOW;
232
## NET ps2_mouse_clk  DRIVE = 2;
233
## NET ps2_mouse_clk  IOSTANDARD = LVCMOS18;
234
## NET ps2_mouse_clk  TIG;
235
## NET ps2_mouse_data LOC = K1;
236
## NET ps2_mouse_data SLEW = SLOW;
237
## NET ps2_mouse_data DRIVE = 2;
238
## NET ps2_mouse_data IOSTANDARD = LVCMOS18;
239
## NET ps2_mouse_data TIG;
240
 
241
## #------------------------------------------------------------------------------
242
## # IO Pad Location Constraints / Properties for IIC Controller
243
## #------------------------------------------------------------------------------
244
 
245 415 julius
# General I2C bus
246 67 julius
 
247 415 julius
NET i2c0_scl_io    LOC = R20;
248
NET i2c0_sda_io    LOC = T20;
249
NET i2c0_scl_io    SLEW = SLOW;
250
NET i2c0_scl_io    DRIVE = 6;
251
NET i2c0_scl_io    TIG;
252
NET i2c0_scl_io    IOSTANDARD = LVCMOS33;
253
NET i2c0_sda_io    SLEW = SLOW;
254
NET i2c0_sda_io    DRIVE = 6;
255
NET i2c0_sda_io    TIG;
256
NET i2c0_sda_io    IOSTANDARD = LVCMOS33;
257 67 julius
 
258 415 julius
# DDR2 I2C bus
259
 
260
NET i2c1_scl_io  LOC = Y7;
261
NET i2c1_sda_io  LOC = AA7;
262
NET i2c1_scl_io  SLEW = SLOW;
263
NET i2c1_scl_io  DRIVE = 6;
264
NET i2c1_scl_io  TIG;
265
NET i2c1_scl_io  IOSTANDARD = LVCMOS18;
266
NET i2c1_sda_io  SLEW = SLOW;
267
NET i2c1_sda_io  DRIVE = 6;
268
NET i2c1_sda_io  TIG;
269
NET i2c1_sda_io  IOSTANDARD = LVCMOS18;
270
 
271 67 julius
## #------------------------------------------------------------------------------
272 415 julius
## # IO Pad Locations Constraints for SPI memory
273
## #------------------------------------------------------------------------------
274
 
275 655 julius
#NET spi0_mosi_o  LOC = AA9  | IOSTANDARD = LVCMOS33 | DRIVE = 6 | SLEW = FAST | TIG;
276
#NET spi0_ss_o<0>           LOC = AC14 | IOSTANDARD = LVCMOS33 | DRIVE = 6 | SLEW = FAST | TIG;
277 415 julius
# These go through the STARTUP_VIRTEX5 block - don't worry about assigning them
278
# here.
279
#NET spi0_miso_i  LOC = K11 | IOSTANDARD = LVCMOS33 | DRIVE = 6 | SLEW = FAST | TIG;
280
 
281
#NET spi0_sck_o   LOC = J10 | IOSTANDARD = LVCMOS33 | DRIVE = 6 | SLEW = FAST | TIG;
282
 
283
## #------------------------------------------------------------------------------
284 67 julius
## # IO Pad Location Constraints / Properties for System ACE MPU / USB
285
## #------------------------------------------------------------------------------
286
 
287
## NET sysace_clk_in   LOC        = AB12;
288
## NET sysace_clk_in   IOSTANDARD = LVCMOS33;
289
## NET sysace_clk_in   TNM_NET    = "sysace_clk_in";
290
## # Leave 1 ns margin
291
## TIMESPEC "TSSYSACE" = PERIOD "sysace_clk_in" 29 ns;
292
 
293
## NET sace_usb_a<0>   LOC        = N6;
294
## NET sace_usb_a<1>   LOC        = E5;
295
## NET sace_usb_a<2>   LOC        = F5;
296
## NET sace_usb_a<3>   LOC        = F4;
297
## NET sace_usb_a<4>   LOC        = J5;
298
## NET sace_usb_a<5>   LOC        = E7;
299
## NET sace_usb_a<6>   LOC        = G7;
300
## NET sace_usb_a<*>   IOSTANDARD = LVCMOS33;
301
## NET sace_usb_a<*>   SLEW       = FAST;
302
## NET sace_usb_a<*>   DRIVE      = 8;
303
## NET sace_mpce       LOC        = F7;
304
## NET sace_mpce       IOSTANDARD = LVCMOS33;
305
## NET sace_mpce       SLEW       = FAST;
306
## NET sace_mpce       DRIVE      = 8;
307
## NET sace_usb_d<0>   LOC        = M6;
308
## NET sace_usb_d<1>   LOC        = K5;
309
## NET sace_usb_d<2>   LOC        = L3;
310
## NET sace_usb_d<3>   LOC        = L4;
311
## NET sace_usb_d<4>   LOC        = L7;
312
## NET sace_usb_d<5>   LOC        = L5;
313
## NET sace_usb_d<6>   LOC        = H6;
314
## NET sace_usb_d<7>   LOC        = G5;
315
## NET sace_usb_d<8>   LOC        = M7;
316
## NET sace_usb_d<9>   LOC        = H7;
317
## NET sace_usb_d<10>  LOC        = J6;
318
## NET sace_usb_d<11>  LOC        = G4;
319
## NET sace_usb_d<12>  LOC        = K7;
320
## NET sace_usb_d<13>  LOC        = J4;
321
## NET sace_usb_d<14>  LOC        = H4;
322
## NET sace_usb_d<15>  LOC        = K6;
323
## NET sace_usb_d<*>   IOSTANDARD = LVCMOS33;
324
## NET sace_usb_d<*>   SLEW       = FAST;
325
## NET sace_usb_d<*>   DRIVE      = 8;
326
## NET sace_usb_d<*>   PULLDOWN;
327
## NET sace_usb_oen    LOC        = E6;
328
## NET sace_usb_oen    IOSTANDARD = LVCMOS33;
329
## NET sace_usb_oen    SLEW       = FAST;
330
## NET sace_usb_oen    DRIVE      = 8;
331
## NET sace_usb_wen    LOC        = M5;
332
## NET sace_usb_wen    IOSTANDARD = LVCMOS33;
333
## NET sace_usb_wen    SLEW       = FAST;
334
## NET sace_usb_wen    DRIVE      = 8;
335
## NET sysace_mpirq    LOC        = G6;
336
## NET sysace_mpirq    IOSTANDARD = LVCMOS33;
337
## NET sysace_mpirq    TIG;
338
## NET sysace_mpirq    PULLDOWN;
339
 
340
## NET usb_csn         LOC        = N3;
341
## NET usb_csn         IOSTANDARD = LVCMOS33;
342
## NET usb_csn         SLEW       = FAST;
343
## NET usb_csn         DRIVE      = 8;
344
## NET usb_hpi_reset_n LOC        = P3;
345
## NET usb_hpi_reset_n IOSTANDARD = LVCMOS33;
346
## NET usb_hpi_reset_n TIG;
347
## NET usb_hpi_int     LOC        = M4;
348
## NET usb_hpi_int     IOSTANDARD = LVCMOS33;
349
## NET usb_hpi_int     TIG;
350
## NET usb_hpi_int     PULLDOWN;
351
 
352
## ////////////////////////////////////////////////////////////////////////////
353
## // Misc Board Signals
354
## ////////////////////////////////////////////////////////////////////////////
355
 
356
## NET plb_error LOC = N4; # Bus Error 1
357
## NET plb_error IOSTANDARD = LVCMOS33;
358
## NET plb_error TIG;
359
## NET opb_error LOC = P5; # Bus Error 2
360
## NET opb_error IOSTANDARD = LVCMOS33;
361
## NET opb_error TIG;
362
 
363
## #------------------------------------------------------------------------------
364
## # IO Pad Location Constraints / Properties for Expansion Header GPIO
365
## #------------------------------------------------------------------------------
366
 
367
## NET gpio_exp_hdr1<31> LOC = AB26; # HDR1_64
368
## NET gpio_exp_hdr1<30> LOC = AC26; # HDR1_62
369
## NET gpio_exp_hdr1<29> LOC = AA25; # HDR1_60
370
## NET gpio_exp_hdr1<28> LOC = P26;  # HDR1_58
371
## NET gpio_exp_hdr1<27> LOC = Y26; # HDR1_56
372
## NET gpio_exp_hdr1<26> LOC = Y25; # HDR1_54
373
## NET gpio_exp_hdr1<25> LOC = W26; # HDR1_52
374
## NET gpio_exp_hdr1<24> LOC = W25; # HDR1_50
375
## NET gpio_exp_hdr1<23> LOC = U25; # HDR1_48
376
## NET gpio_exp_hdr1<22> LOC = U24; # HDR1_46
377
## NET gpio_exp_hdr1<21> LOC = T25; # HDR1_44
378
## NET gpio_exp_hdr1<20> LOC = T24; # HDR1_42
379
## NET gpio_exp_hdr1<19> LOC = P24; # HDR1_40
380
## NET gpio_exp_hdr1<18> LOC = P25; # HDR1_38
381
## NET gpio_exp_hdr1<17> LOC = N26; # HDR1_36
382
## NET gpio_exp_hdr1<16> LOC = AB25; # HDR1_34
383
## NET gpio_exp_hdr1<15> LOC = M24; # HDR1_32
384
## NET gpio_exp_hdr1<14> LOC = N24; # HDR1_30
385
## NET gpio_exp_hdr1<13> LOC = M25; # HDR1_28
386
## NET gpio_exp_hdr1<12> LOC = M26; # HDR1_26
387
## NET gpio_exp_hdr1<11> LOC = K25; # HDR1_24
388
## NET gpio_exp_hdr1<10> LOC = K26; # HDR1_22
389
## NET gpio_exp_hdr1<9>  LOC = L24; # HDR1_20
390
## NET gpio_exp_hdr1<8>  LOC = L25; # HDR1_18
391
## NET gpio_exp_hdr1<7>  LOC = M21; # HDR1_16
392
## NET gpio_exp_hdr1<6>  LOC = K21; # HDR1_14
393
## NET gpio_exp_hdr1<5>  LOC = K20; # HDR1_12
394
## NET gpio_exp_hdr1<4>  LOC = M22; # HDR1_10
395
## NET gpio_exp_hdr1<3>  LOC = H23; # HDR1_8
396
## NET gpio_exp_hdr1<2>  LOC = J21; # HDR1_6
397
## NET gpio_exp_hdr1<1>  LOC = J23; # HDR1_4
398
## NET gpio_exp_hdr1<0>  LOC = J20; # HDR1_2
399
#NET gpio_exp_hdr1<*> TIG;
400
#NET gpio_exp_hdr1<*> PULLDOWN;
401
#NET gpio_exp_hdr1<*> IOSTANDARD = LVCMOS25;
402
 
403
## NET gpio_exp_hdr2<31> LOC = P21; # HDR2_64
404
## NET gpio_exp_hdr2<30> LOC = P20; # HDR2_62
405
## NET gpio_exp_hdr2<29> LOC = H24; # HDR2_60
406
## NET gpio_exp_hdr2<28> LOC = J24; # HDR2_58
407
## NET gpio_exp_hdr2<27> LOC = M20; # HDR2_56
408
## NET gpio_exp_hdr2<26> LOC = M19; # HDR2_54
409
## NET gpio_exp_hdr2<25> LOC = G24; # HDR2_52
410
## NET gpio_exp_hdr2<24> LOC = G25; # HDR2_50
411
## NET gpio_exp_hdr2<23> LOC = P23; # HDR2_48
412
## NET gpio_exp_hdr2<22> LOC = N23; # HDR2_46
413
## NET gpio_exp_hdr2<21> LOC = L20; # HDR2_44
414
## NET gpio_exp_hdr2<20> LOC = L19; # HDR2_42
415
## NET gpio_exp_hdr2<19> LOC = G26; # HDR2_40
416
## NET gpio_exp_hdr2<18> LOC = H26; # HDR2_38
417
## NET gpio_exp_hdr2<17> LOC = K23; # HDR2_36
418
## NET gpio_exp_hdr2<16> LOC = K22; # HDR2_34
419
## NET gpio_exp_hdr2<15> LOC = V26; # HDR2_32
420
## NET gpio_exp_hdr2<14> LOC = U26; # HDR2_30
421
## NET gpio_exp_hdr2<13> LOC = N22; # HDR2_28
422
## NET gpio_exp_hdr2<12> LOC = N21; # HDR2_26
423
## NET gpio_exp_hdr2<11> LOC = R22; # HDR2_24
424
## NET gpio_exp_hdr2<10> LOC = R23; # HDR2_22
425
## NET gpio_exp_hdr2<9>  LOC = J25; # HDR2_20
426
## NET gpio_exp_hdr2<8>  LOC = J26; # HDR2_18
427
## NET gpio_exp_hdr2<7>  LOC = P19; # HDR2_16
428
## NET gpio_exp_hdr2<6>  LOC = N19; # HDR2_14
429
## NET gpio_exp_hdr2<5>  LOC = G21; # HDR2_12
430
## NET gpio_exp_hdr2<4>  LOC = G22; # HDR2_10
431
## NET gpio_exp_hdr2<3>  LOC = E25; # HDR2_8
432
## NET gpio_exp_hdr2<2>  LOC = E26; # HDR2_6
433
## NET gpio_exp_hdr2<1>  LOC = F24; # HDR2_4
434
## NET gpio_exp_hdr2<0>  LOC = F25; # HDR2_2
435
## NET gpio_exp_hdr2<*> TIG;
436
## NET gpio_exp_hdr2<*> PULLDOWN;
437
## NET gpio_exp_hdr2<*> IOSTANDARD = LVCMOS25;
438
 
439
## #------------------------------------------------------------------------------
440
## # IO Pad Location Constraints / Properties for Character LCD GPIO
441
## #------------------------------------------------------------------------------
442
 
443
## NET gpio_char_lcd<6> LOC = P6; # LCD_E
444
## NET gpio_char_lcd<5> LOC = R7; # LCD_RS
445
## NET gpio_char_lcd<4> LOC = R5; # LCD_RW
446
## NET gpio_char_lcd<3> LOC = P4; # LCD_DB7
447
## NET gpio_char_lcd<2> LOC = R3; # LCD_DB6
448
## NET gpio_char_lcd<1> LOC = T3; # LCD_DB5
449
## NET gpio_char_lcd<0> LOC = R6; # LCD_DB4
450
## NET gpio_char_lcd<*> IOSTANDARD = LVCMOS33;
451
## NET gpio_char_lcd<*> TIG;
452
## NET gpio_char_lcd<*> PULLDOWN;
453
 
454
## #------------------------------------------------------------------------------
455
## # IO Pad Location Constraints / Properties for DDR Controllers
456
## #------------------------------------------------------------------------------
457
 
458
########################################################################
459
# Controller 0
460
# Memory Device: DDR2_SDRAM->SODIMMs->MT4HTF3264HY-53E #
461
# Data Width:     64 #
462
# Data Mask:     1 #
463
########################################################################
464
 
465
 
466
NET ddr2_a<0>  LOC = Y5; # DDR_A0
467
NET ddr2_a<1>  LOC = Y6; # DDR_A1
468
NET ddr2_a<2>  LOC = W6; # DDR_A2
469
NET ddr2_a<3>  LOC = W5; # DDR_A3
470
NET ddr2_a<4>  LOC = V7; # DDR_A4
471
NET ddr2_a<5>  LOC = V6; # DDR_A5
472
NET ddr2_a<6>  LOC = Y3; # DDR_A6
473
NET ddr2_a<7>  LOC = W3; # DDR_A7
474
NET ddr2_a<8>  LOC = W4; # DDR_A8
475
NET ddr2_a<9>  LOC = V4; # DDR_A9
476
NET ddr2_a<10> LOC = AD3; # DDR_A10
477
NET ddr2_a<11> LOC = AD4; # DDR_A11
478
NET ddr2_a<12> LOC = AC3; # DDR_A12
479
NET ddr2_ba<0>  LOC = AB5; # DDR_BA0
480
NET ddr2_ba<1>  LOC = AB6; # DDR_BA1
481
NET ddr2_cas_n   LOC = AE3; # DDR_CAS_N
482
NET ddr2_cke<0> LOC = AA3; # DDR_CKE
483
NET ddr2_cke<1> LOC = AB4; # DDR_CKE
484
NET ddr2_cs_n<0>  LOC = AF3; # DDR_CS_N
485
NET ddr2_cs_n<1>  LOC = AD6; # DDR_CS_N
486
NET ddr2_ras_n   LOC = AC6; # DDR_RAS_N
487
NET ddr2_we_n    LOC = AB7; # DDR_WE_N
488
NET ddr2_ck<0>    LOC = E2; # DDR_CK0_P
489
NET ddr2_ck_n<0>   LOC = E1; # DDR_CK0_N
490
NET ddr2_ck<1>    LOC = P1; # DDR_CK1_P
491
NET ddr2_ck_n<1>   LOC = R1; # DDR_CK1_N
492
NET ddr2_odt<0>  LOC =AE6; # DDR_ODT0
493
NET ddr2_odt<1>  LOC =AE5; # DDR_ODT1
494
 
495
NET ddr2_dm<0>  LOC = B9; # DDR_DM0
496
NET ddr2_dm<1>  LOC = A8; # DDR_DM1
497
NET ddr2_dm<2>  LOC = C4; # DDR_DM2
498
NET ddr2_dm<3>  LOC = F2; # DDR_DM3
499
NET ddr2_dm<4>  LOC = AB1; # DDR_DM4
500
NET ddr2_dm<5>  LOC = AF24; # DDR_DM5
501
NET ddr2_dm<6>  LOC = AF22; # DDR_DM6
502
NET ddr2_dm<7>  LOC = AF8; # DDR_DM7
503
 
504
NET ddr2_dqs<0>  LOC = B7; # DDR_DQS0
505
NET ddr2_dqs_n<0> LOC = A7; # DDR_DQSN0
506
NET ddr2_dqs<1>  LOC = D5; # DDR_DQS1
507
NET ddr2_dqs_n<1> LOC = D6; # DDR_DQSN1
508
NET ddr2_dqs<2>  LOC = C6; # DDR_DQS2
509
NET ddr2_dqs_n<2> LOC = C7; # DDR_DQSN2
510
NET ddr2_dqs<3>  LOC = M1; # DDR_DQS3
511
NET ddr2_dqs_n<3> LOC = N1; # DDR_DQSN3
512
NET ddr2_dqs<4>  LOC = T2; # DDR_DQS4
513
NET ddr2_dqs_n<4> LOC = R2; # DDR_DQSN4
514
NET ddr2_dqs<5>  LOC = AF18; # DDR_DQS5
515
NET ddr2_dqs_n<5> LOC = AE18; # DDR_DQSN5
516
NET ddr2_dqs<6>  LOC = AF19; # DDR_DQS6
517
NET ddr2_dqs_n<6> LOC = AF20; # DDR_DQSN6
518
NET ddr2_dqs<7>  LOC = AF17; # DDR_DQS7
519
NET ddr2_dqs_n<7> LOC = AE17; # DDR_DQSN7
520
 
521
NET ddr2_dq<0> LOC = C11; # DDR_D0
522
NET ddr2_dq<1> LOC = C13; # DDR_D1
523
NET ddr2_dq<2> LOC = A12; # DDR_D2
524
NET ddr2_dq<3> LOC = C9; # DDR_D3
525
NET ddr2_dq<4> LOC = D10; # DDR_D4
526
NET ddr2_dq<5> LOC = C12; # DDR_D5
527
NET ddr2_dq<6> LOC = B12; # DDR_D6
528
NET ddr2_dq<7> LOC = A13; # DDR_D7
529
NET ddr2_dq<8> LOC = A10; # DDR_D8
530
NET ddr2_dq<9> LOC = A9; # DDR_D9
531
NET ddr2_dq<10> LOC = B5; # DDR_D10
532
NET ddr2_dq<11> LOC = D3; # DDR_D11
533
NET ddr2_dq<12> LOC = B10; # DDR_D12
534
NET ddr2_dq<13> LOC = B11; # DDR_D13
535
NET ddr2_dq<14> LOC = B6; # DDR_D14
536
NET ddr2_dq<15> LOC = B4; # DDR_D15
537
NET ddr2_dq<16> LOC = C2; # DDR_D16
538
NET ddr2_dq<17> LOC = A2; # DDR_D17
539
NET ddr2_dq<18> LOC = D1; # DDR_D18
540
NET ddr2_dq<19> LOC = B1; # DDR_D19
541
NET ddr2_dq<20> LOC = C3; # DDR_D20
542
NET ddr2_dq<21> LOC = A3; # DDR_D21
543
NET ddr2_dq<22> LOC = C1; # DDR_D22
544
NET ddr2_dq<23> LOC = B2; # DDR_D23
545
NET ddr2_dq<24> LOC = F3; # DDR_D24
546
NET ddr2_dq<25> LOC = G1; # DDR_D25
547
NET ddr2_dq<26> LOC = G2; # DDR_D26
548
NET ddr2_dq<27> LOC = H3; # DDR_D27
549
NET ddr2_dq<28> LOC = E3; # DDR_D28
550
NET ddr2_dq<29> LOC = H1; # DDR_D29
551
NET ddr2_dq<30> LOC = K3; # DDR_D30
552
NET ddr2_dq<31> LOC = J3; # DDR_D31
553
 
554
NET ddr2_dq<32> LOC = Y1; # DDR_D32
555
NET ddr2_dq<33> LOC = Y2; # DDR_D33
556
NET ddr2_dq<34> LOC = AC1; # DDR_D34
557
NET ddr2_dq<35> LOC = AD1; # DDR_D35
558
NET ddr2_dq<36> LOC = AA2; # DDR_D36
559
NET ddr2_dq<37> LOC = AB2; # DDR_D37
560
NET ddr2_dq<38> LOC = AC2; # DDR_D38
561
NET ddr2_dq<39> LOC = AE1; # DDR_D39
562
NET ddr2_dq<40> LOC = AD23; # DDR_D40
563
NET ddr2_dq<41> LOC = AD26; # DDR_D41
564
NET ddr2_dq<42> LOC = AF25; # DDR_D42
565
NET ddr2_dq<43> LOC = AD25; # DDR_D43
566
NET ddr2_dq<44> LOC = AD24; # DDR_D44
567
NET ddr2_dq<45> LOC = AE26; # DDR_D45
568
NET ddr2_dq<46> LOC = AE25; # DDR_D46
569
NET ddr2_dq<47> LOC = AF23; # DDR_D47
570
NET ddr2_dq<48> LOC = AD20; # DDR_D48
571
NET ddr2_dq<49> LOC = AE20; # DDR_D49
572
NET ddr2_dq<50> LOC = AF14; # DDR_D50
573
NET ddr2_dq<51> LOC = AF12; # DDR_D51
574
NET ddr2_dq<52> LOC = AD21; # DDR_D52
575
NET ddr2_dq<53> LOC = AE21; # DDR_D53
576
NET ddr2_dq<54> LOC = AF13; # DDR_D54
577
NET ddr2_dq<55> LOC = AE12; # DDR_D55
578
NET ddr2_dq<56> LOC = AE11; # DDR_D56
579
NET ddr2_dq<57> LOC = AE10; # DDR_D57
580
NET ddr2_dq<58> LOC = AF7; # DDR_D58
581
NET ddr2_dq<59> LOC = AE7; # DDR_D59
582
NET ddr2_dq<60> LOC = AF10; # DDR_D60
583
NET ddr2_dq<61> LOC = AF9; # DDR_D61
584
NET ddr2_dq<62> LOC = AE8; # DDR_D62
585
NET ddr2_dq<63> LOC = AD9; # DDR_D63
586
 
587
NET ddr2_a<*>   IOSTANDARD = SSTL18_II;
588
NET ddr2_ba<*>   IOSTANDARD = SSTL18_II;
589
NET ddr2_cke<*>  IOSTANDARD = SSTL18_II;
590
NET ddr2_cas_n    IOSTANDARD = SSTL18_II;
591
NET ddr2_cs_n<*>  IOSTANDARD = SSTL18_II;
592
NET ddr2_ras_n    IOSTANDARD = SSTL18_II;
593
NET ddr2_we_n     IOSTANDARD = SSTL18_II;
594
NET ddr2_odt<*>  IOSTANDARD = SSTL18_II;
595
 
596
NET ddr2_dm<*>   IOSTANDARD = SSTL18_II_DCI;
597
NET ddr2_dq<*>   IOSTANDARD = SSTL18_II_DCI;
598
 
599
NET ddr2_ck<*>  IOSTANDARD = DIFF_SSTL18_II;
600
NET ddr2_ck_n<*> IOSTANDARD = DIFF_SSTL18_II;
601
NET ddr2_dqs<*>  IOSTANDARD = DIFF_SSTL18_II_DCI;
602
NET ddr2_dqs_n<*> IOSTANDARD = DIFF_SSTL18_II_DCI;
603
 
604
## NET "ddr2_cal_clk"   TNM_NET = "ddr2_cal_clk";
605
## NET "ddr2_dev_clk_*" TNM_NET = "ddr2_dev_clk";
606
## TIMESPEC "TSCAL_DEV" = FROM "ddr2_cal_clk" TO "ddr2_dev_clk" TIG;
607
## TIMESPEC "TSDEV_CAL" = FROM "ddr2_dev_clk" TO "ddr2_cal_clk" TIG;
608
###############################################################################
609
# Define multicycle paths - these paths may take longer because additional
610
# time allowed for logic to settle in calibration/initialization FSM
611
###############################################################################
612
 
613
# MIG 2.1: Eliminate Timegroup definitions for CLK0, and CLK90. Instead trace
614
#          multicycle paths from originating flip-flop to ANY destination
615
#          flip-flop (or in some cases, it can also be a BRAM)
616
# MUX Select for either rising/falling CLK0 for 2nd stage read capture
617
INST "*/u_phy_calib/gen_rd_data_sel*.u_ff_rd_data_sel" TNM = "TNM_RD_DATA_SEL";
618
TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO FFS
619
"TS_SYS_CLK" * 4;
620
# MUX select for read data - optional delay on data to account for byte skews
621
INST "*/u_usr_rd/gen_rden_sel_mux*.u_ff_rden_sel_mux" TNM = "TNM_RDEN_SEL_MUX";
622
TIMESPEC "TS_MC_RDEN_SEL_MUX" = FROM "TNM_RDEN_SEL_MUX" TO FFS
623
"TS_SYS_CLK" * 4;
624
# Calibration/Initialization complete status flag (for PHY logic only) - can
625
# be used to drive both flip-flops and BRAMs
626
INST "*/u_phy_init/u_ff_phy_init_data_sel" TNM = "TNM_PHY_INIT_DATA_SEL";
627
TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_0" = FROM "TNM_PHY_INIT_DATA_SEL" TO FFS
628
"TS_SYS_CLK" * 4;
629
TIMESPEC "TS_MC_PHY_INIT_DATA_SEL_90" = FROM "TNM_PHY_INIT_DATA_SEL" TO RAMS
630
"TS_SYS_CLK" * 4;
631
# Select (address) bits for SRL32 shift registers used in stage3/stage4
632
# calibration
633
INST "*/u_phy_calib/gen_gate_dly*.u_ff_gate_dly" TNM = "TNM_GATE_DLY";
634
TIMESPEC "TS_MC_GATE_DLY" = FROM "TNM_GATE_DLY" TO FFS "TS_SYS_CLK" * 4;
635
 
636
INST "*/u_phy_calib/gen_rden_dly*.u_ff_rden_dly" TNM = "TNM_RDEN_DLY";
637
TIMESPEC "TS_MC_RDEN_DLY" = FROM "TNM_RDEN_DLY" TO FFS "TS_SYS_CLK" * 4;
638
 
639
INST "*/u_phy_calib/gen_cal_rden_dly*.u_ff_cal_rden_dly"
640
  TNM = "TNM_CAL_RDEN_DLY";
641
TIMESPEC "TS_MC_CAL_RDEN_DLY" = FROM "TNM_CAL_RDEN_DLY" TO FFS
642
"TS_SYS_CLK" * 4;
643
 
644
 
645
###############################################################################
646
# DQS Read Post amble Glitch Squelch circuit related constraints
647
###############################################################################
648
 
649
###############################################################################
650
# LOC placement of DQS-squelch related IDDR and IDELAY elements
651
# Each circuit can be located at any of the following locations:
652
#  1. Unused "N"-side of DQS differential pair I/O
653
#  2. DM data mask (output only, input side is free for use)
654
#  3. Any output-only site
655
###############################################################################
656
 
657
#INST "*/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y182";
658
#INST "*/gen_dqs[0].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y182";
659
#INST "*/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y180";
660
#INST "*/gen_dqs[1].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y180";
661
#INST "*/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y178";
662
#INST "*/gen_dqs[2].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y178";
663
#INST "*/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y142";
664
#INST "*/gen_dqs[3].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y142";
665
#INST "*/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y140";
666
#INST "*/gen_dqs[4].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y140";
667
#INST "*/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y138";
668
#INST "*/gen_dqs[5].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y138";
669
#INST "*/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y102";
670
#INST "*/gen_dqs[6].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y102";
671
#INST "*/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce"  LOC = "ILOGIC_X0Y100";
672
#INST "*/gen_dqs[7].u_iob_dqs/u_iodelay_dq_ce"  LOC = "IODELAY_X0Y100";
673
 
674
###############################################################################
675
# LOC and timing constraints for flop driving DQS CE enable signal
676
# from fabric logic. Even though the absolute delay on this path is
677
# calibrated out (when synchronizing this output to DQS), the delay
678
# should still be kept as low as possible to reduce post-calibration
679
# voltage/temp variations - these are roughly proportional to the
680
# absolute delay of the path
681
###############################################################################
682
INST "*/u_phy_calib/gen_gate[0].u_en_dqs_ff"  LOC = SLICE_X0Y91;
683
INST "*/u_phy_calib/gen_gate[1].u_en_dqs_ff"  LOC = SLICE_X0Y90;
684
INST "*/u_phy_calib/gen_gate[2].u_en_dqs_ff"  LOC = SLICE_X0Y89;
685
INST "*/u_phy_calib/gen_gate[3].u_en_dqs_ff"  LOC = SLICE_X0Y71;
686
INST "*/u_phy_calib/gen_gate[4].u_en_dqs_ff"  LOC = SLICE_X0Y70;
687
INST "*/u_phy_calib/gen_gate[5].u_en_dqs_ff"  LOC = SLICE_X0Y69;
688
INST "*/u_phy_calib/gen_gate[6].u_en_dqs_ff"  LOC = SLICE_X0Y51;
689
INST "*/u_phy_calib/gen_gate[7].u_en_dqs_ff"  LOC = SLICE_X0Y50;
690
 
691
# Control for DQS gate - from fabric flop. Prevent "runaway" delay -
692
# two parts to this path: (1) from fabric flop to IDELAY, (2) from
693
# IDELAY to asynchronous reset of IDDR that drives the DQ CE's
694
# This can be relaxed by the user for lower frequencies:
695
# 300MHz = 850ps, 267MHz = 900ps. At 200MHz = 950ps.
696
# In general PAR should be able to route this
697
# within 900ps over all speed grades.
698 69 julius
#NET "*/u_phy_io/en_dqs*" MAXDELAY = 900 ps;
699
# JB: Every single one failed with < 2ns slack!! Try upping this...
700
NET "*/u_phy_io/en_dqs*" MAXDELAY = 3000 ps;
701 67 julius
NET "*/u_phy_io/gen_dqs*.u_iob_dqs/en_dqs_sync" MAXDELAY = 850 ps;
702
 
703
###############################################################################
704
# Define multicycle paths - these paths may take longer because additional
705
# time allowed for logic to settle in calibration/initialization FSM
706
###############################################################################
707
## DDR2 clock domain nets
708 415 julius
NET "*/xilinx_ddr2_if0/ddr2_read_done" TNM_NET = "DDR2_READ_DONE_GRP";
709
NET "*/xilinx_ddr2_if0/ddr2_write_done" TNM_NET = "DDR2_WRITE_DONE_GRP";
710 67 julius
 
711 479 julius
 
712
TIMEGRP "DDR2_MC_REGS" = "DDR2_READ_DONE_GRP" "DDR2_WRITE_DONE_GRP";
713 67 julius
## System bus (wishbone) domain nets
714 415 julius
NET "*/xilinx_ddr2_if0/do_writeback*" TNM_NET = "WB_DO_WRITEBACK";
715
NET "*/xilinx_ddr2_if0/do_readfrom*" TNM_NET = "WB_DO_READFROM";
716 67 julius
 
717
TIMEGRP "WB_MC_REGS" = "WB_DO_WRITEBACK" "WB_DO_READFROM";
718
 
719
# Path constraints - if bus clock is 50Mhz they have 20ns
720
TIMESPEC TS_ddr2_controller_mc_paths = FROM "WB_MC_REGS" to "DDR2_MC_REGS" 20ns;
721
TIMESPEC TS_ddr2_controller_mc_paths2 = FROM "DDR2_MC_REGS" to "WB_MC_REGS" 20ns;
722
 
723
###############################################################################
724
# "Half-cycle" path constraint from IDDR to CE pin for all DQ IDDR's
725
# for DQS Read Post amble Glitch Squelch circuit
726
###############################################################################
727
 
728
# Max delay from output of IDDR to CE input of DQ IDDRs = tRPST + some slack
729
#  where slack account for rise-time of DQS on board. For now assume slack =
730
#  0.400ns (based on initial SPICE simulations, assumes use of ODT), so
731
#  time = 0.4*Tcyc + 0.40ns = 1.6ns @333MHz
732
INST "*/gen_dqs[*].u_iob_dqs/u_iddr_dq_ce" TNM = "TNM_DQ_CE_IDDR";
733
INST "*/gen_dq[*].u_iob_dq/gen_stg2_*.u_iddr_dq" TNM = "TNM_DQS_FLOPS";
734 69 julius
#TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 2.4 ns;
735
# JB:  Was very closely failing on some paths, so up it by 100ps, but note it as an issue!
736
TIMESPEC "TS_DQ_CE" = FROM "TNM_DQ_CE_IDDR" TO "TNM_DQS_FLOPS" 2.5 ns;
737 67 julius
 
738
 
739
## #------------------------------------------------------------------------------
740
## # IO Pad Location Constraints / Properties for UART
741
## #------------------------------------------------------------------------------
742
 
743 69 julius
#NET uart_RX LOC = AC7;
744
#NET uart_RX IOSTANDARD = LVCMOS33;
745
#NET uart_RX TIG;
746
#NET uart_TX LOC = AD14;
747
#NET uart_TX IOSTANDARD = LVCMOS33;
748
#NET uart_TX TIG;
749 67 julius
 
750 415 julius
NET uart0_srx_pad_i LOC = AC7;
751
NET uart0_srx_pad_i IOSTANDARD = LVCMOS33;
752
NET uart0_srx_pad_i TIG;
753
NET uart0_stx_pad_o LOC = AD14;
754
NET uart0_stx_pad_o IOSTANDARD = LVCMOS33;
755
NET uart0_stx_pad_o TIG;
756 69 julius
 
757 67 julius
## #------------------------------------------------------------------------------
758
## # IO Pad Location Constraints / Properties for SRAM
759
## #------------------------------------------------------------------------------
760
 
761
#NET sram_clk            LOC = U22;
762
#NET sram_clk_fb         LOC = AD15;
763
#NET sram_clk_fb         IOSTANDARD = LVCMOS33;
764
#NET sram_clk            IOSTANDARD = LVDCI_33;
765
 
766
#NET sram_clk_fb FEEDBACK = 1500ps NET sram_clk;
767
 
768
##NET sram_flash_addr<23> LOC = Y10;
769
##NET sram_flash_addr<22> LOC = Y11;
770
#NET sram_flash_addr<21> LOC = AA17;
771
#NET sram_flash_addr<20> LOC = AB17;
772
#NET sram_flash_addr<19> LOC = G14;
773
#NET sram_flash_addr<18> LOC = F13;
774
#NET sram_flash_addr<17> LOC = H14;
775
#NET sram_flash_addr<16> LOC = H13;
776
#NET sram_flash_addr<15> LOC = F15;
777
#NET sram_flash_addr<14> LOC = G15;
778
#NET sram_flash_addr<13> LOC = G12;
779
#NET sram_flash_addr<12> LOC = H12;
780
#NET sram_flash_addr<11> LOC = G16;
781
#NET sram_flash_addr<10> LOC = H16;
782
#NET sram_flash_addr<9>  LOC = H11;
783
#NET sram_flash_addr<8>  LOC = G11;
784
#NET sram_flash_addr<7>  LOC = H17;
785
#NET sram_flash_addr<6>  LOC = G17;
786
#NET sram_flash_addr<5>  LOC = G10;
787
#NET sram_flash_addr<4>  LOC = G9;
788
#NET sram_flash_addr<3>  LOC = G19;
789
#NET sram_flash_addr<2>  LOC = H18;
790
#NET sram_flash_addr<1>  LOC = H9;
791
##NET sram_flash_addr<0>  LOC = H8;
792
#NET sram_flash_addr<*>  IOSTANDARD = LVCMOS33;
793
#NET sram_flash_addr<*>  SLEW = FAST;
794
#NET sram_flash_addr<*>  DRIVE = 8;
795
 
796
#NET sram_flash_data<31> LOC = AD18 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
797
#NET sram_flash_data<30> LOC = AC18 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
798
#NET sram_flash_data<29> LOC = AB10 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
799
#NET sram_flash_data<28> LOC = AB9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
800
#NET sram_flash_data<27> LOC = AC17 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
801
#NET sram_flash_data<26> LOC = AC16 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
802
#NET sram_flash_data<25> LOC = AC8  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
803
#NET sram_flash_data<24> LOC = AC9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
804
#NET sram_flash_data<23> LOC = Y12  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
805
#NET sram_flash_data<22> LOC = Y13  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
806
#NET sram_flash_data<21> LOC = AA15 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
807
#NET sram_flash_data<20> LOC = AB14 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
808
#NET sram_flash_data<19> LOC = AA12 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
809
#NET sram_flash_data<18> LOC = AB11 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
810
#NET sram_flash_data<17> LOC = AA13 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
811
#NET sram_flash_data<16> LOC = AA14 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
812
 
813
#NET sram_flash_data<15> LOC = AC24 | IOSTANDARD = LVDCI_33;
814
#NET sram_flash_data<14> LOC = AB22 | IOSTANDARD = LVDCI_33;
815
#NET sram_flash_data<13> LOC = AA22 | IOSTANDARD = LVDCI_33;
816
#NET sram_flash_data<12> LOC = AC21 | IOSTANDARD = LVDCI_33;
817
#NET sram_flash_data<11> LOC = AB21 | IOSTANDARD = LVDCI_33;
818
#NET sram_flash_data<10> LOC = W21  | IOSTANDARD = LVDCI_33;
819
#NET sram_flash_data<9>  LOC = W20  | IOSTANDARD = LVDCI_33;
820
#NET sram_flash_data<8>  LOC = U19  | IOSTANDARD = LVDCI_33;
821
#NET sram_flash_data<7>  LOC = U20  | IOSTANDARD = LVDCI_33;
822
#NET sram_flash_data<6>  LOC = V19  | IOSTANDARD = LVDCI_33;
823
#NET sram_flash_data<5>  LOC = W19  | IOSTANDARD = LVDCI_33;
824
#NET sram_flash_data<4>  LOC = Y21  | IOSTANDARD = LVDCI_33;
825
#NET sram_flash_data<3>  LOC = Y20  | IOSTANDARD = LVDCI_33;
826
#NET sram_flash_data<2>  LOC = AD19 | IOSTANDARD = LVDCI_33;
827
#NET sram_flash_data<1>  LOC = AC19 | IOSTANDARD = LVDCI_33;
828
#NET sram_flash_data<0>  LOC = AB20 | IOSTANDARD = LVDCI_33;
829
 
830
#NET sram_flash_data<*> PULLDOWN;
831
 
832
#NET sram_cen            LOC = AB24 | IOSTANDARD = LVDCI_33;
833
#NET sram_flash_oe_n           LOC = AC22 | IOSTANDARD = LVDCI_33;
834
##NET flash_oe_n          LOC = AA9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
835
#NET sram_flash_we_n     LOC = AB15 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
836
#NET sram_bw<3>          LOC = W24  | IOSTANDARD = LVDCI_33;
837
#NET sram_bw<2>          LOC = W23  | IOSTANDARD = LVDCI_33;
838
#NET sram_bw<1>          LOC = V24  | IOSTANDARD = LVDCI_33;
839
#NET sram_bw<0>          LOC = V23  | IOSTANDARD = LVDCI_33;
840
##NET flash_cen           LOC = AA10 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
841
#NET sram_adv_ld_n       LOC = U21  | IOSTANDARD = LVDCI_33;
842
#NET sram_mode           LOC = AC23 | IOSTANDARD = LVDCI_33;
843
# NET flash_audio_reset_n LOC = AD10 | IOSTANDARD = LVCMOS33;
844
 
845 655 julius
 
846
## #------------------------------------------------------------------------------
847
## # IO Pad Location Constraints / Properties for CFI Flash (shared with SRAM)
848
## #------------------------------------------------------------------------------
849
NET flash_adr_o<23> LOC = Y10;
850
NET flash_adr_o<22> LOC = Y11;
851
NET flash_adr_o<21> LOC = AA17;
852
NET flash_adr_o<20> LOC = AB17;
853
NET flash_adr_o<19> LOC = G14;
854
NET flash_adr_o<18> LOC = F13;
855
NET flash_adr_o<17> LOC = H14;
856
NET flash_adr_o<16> LOC = H13;
857
NET flash_adr_o<15> LOC = F15;
858
NET flash_adr_o<14> LOC = G15;
859
NET flash_adr_o<13> LOC = G12;
860
NET flash_adr_o<12> LOC = H12;
861
NET flash_adr_o<11> LOC = G16;
862
NET flash_adr_o<10> LOC = H16;
863
NET flash_adr_o<9>  LOC = H11;
864
NET flash_adr_o<8>  LOC = G11;
865
NET flash_adr_o<7>  LOC = H17;
866
NET flash_adr_o<6>  LOC = G17;
867
NET flash_adr_o<5>  LOC = G10;
868
NET flash_adr_o<4>  LOC = G9;
869
NET flash_adr_o<3>  LOC = G19;
870
NET flash_adr_o<2>  LOC = H18;
871
NET flash_adr_o<1>  LOC = H9;
872
NET flash_adr_o<0>  LOC = H8;
873
NET flash_adr_o<*>  IOSTANDARD = LVCMOS33;
874
NET flash_adr_o<*>  SLEW = FAST;
875
NET flash_adr_o<*>  DRIVE = 8;
876
 
877
 
878
NET flash_dq_io<15> LOC = AD18 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
879
NET flash_dq_io<14> LOC = AC18 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
880
NET flash_dq_io<13> LOC = AB10 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
881
NET flash_dq_io<12> LOC = AB9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
882
NET flash_dq_io<11> LOC = AC17 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
883
NET flash_dq_io<10> LOC = AC16 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
884
NET flash_dq_io<9> LOC = AC8  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
885
NET flash_dq_io<8> LOC = AC9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
886
NET flash_dq_io<7> LOC = Y12  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
887
NET flash_dq_io<6> LOC = Y13  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
888
NET flash_dq_io<5> LOC = AA15 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
889
NET flash_dq_io<4> LOC = AB14 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
890
NET flash_dq_io<3> LOC = AA12 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
891
NET flash_dq_io<2> LOC = AB11 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
892
NET flash_dq_io<1> LOC = AA13 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
893
NET flash_dq_io<0> LOC = AA14 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW  = FAST;
894
 
895
NET flash_dq_io<*> PULLDOWN;
896
 
897
NET flash_adv_n_o   LOC = AA20  | IOSTANDARD = LVCMOS33;
898
NET flash_oe_n_o    LOC = AA9  | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
899
NET flash_we_n_o    LOC = AB15 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
900
NET flash_ce_n_o    LOC = AA10 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
901
NET flash_clk_o     LOC = AB19 | IOSTANDARD = LVCMOS33 | DRIVE = 12 | SLEW = FAST;
902
NET flash_wait_i    LOC = AA19 | IOSTANDARD = LVCMOS33;
903
NET flash_rst_n_o   LOC = AD10 | IOSTANDARD = LVCMOS33;
904
 
905 67 julius
#------------------------------------------------------------------------------
906
# IO Pad Location Constraints / Properties for TFT VGA LCD Controller
907
#------------------------------------------------------------------------------
908
 
909
#NET dvi_iic_scl  LOC = D21;
910
#NET dvi_iic_sda  LOC = D20;
911
#NET dvi_iic_scl  SLEW = SLOW;
912
#NET dvi_iic_scl  DRIVE = 6;
913
#NET dvi_iic_scl  TIG;
914
#NET dvi_iic_scl  IOSTANDARD = LVCMOS33;
915
#NET dvi_iic_sda  SLEW = SLOW;
916
#NET dvi_iic_sda  DRIVE = 6;
917
#NET dvi_iic_sda  TIG;
918
#NET dvi_iic_sda  IOSTANDARD = LVCMOS33;
919
 
920
#NET tft_lcd_data<0>  LOC = A17;
921
#NET tft_lcd_data<1>  LOC = B17;
922
#NET tft_lcd_data<2>  LOC = C17;
923
#NET tft_lcd_data<3>  LOC = D18;
924
#NET tft_lcd_data<4>  LOC = C16;
925
#NET tft_lcd_data<5>  LOC = D16;
926
#NET tft_lcd_data<6>  LOC = B16;
927
#NET tft_lcd_data<7>  LOC = B15;
928
#NET tft_lcd_data<8>  LOC = A15;
929
#NET tft_lcd_data<9>  LOC = A14;
930
#NET tft_lcd_data<10> LOC = B14;
931
#NET tft_lcd_data<11> LOC = C14;
932
#NET tft_lcd_data<*> IOSTANDARD = LVDCI_33;
933
 
934
#NET tft_lcd_clk_p LOC = A20;
935
#NET tft_lcd_clk_p IOSTANDARD = LVCMOS33 | DRIVE = 24 | SLEW = FAST;
936
#NET tft_lcd_clk_n LOC = B20;
937
#NET tft_lcd_clk_n IOSTANDARD = LVCMOS33 | DRIVE = 24 | SLEW = FAST;
938
 
939
#NET tft_lcd_hsync LOC = C19;
940
#NET tft_lcd_hsync IOSTANDARD = LVDCI_33;
941
#NET tft_lcd_vsync LOC = D19;
942
#NET tft_lcd_vsync IOSTANDARD = LVDCI_33;
943
#NET tft_lcd_de    LOC = C18;
944
#NET tft_lcd_de    IOSTANDARD = LVDCI_33;
945
#NET tft_lcd_reset_b LOC = A18;
946
#NET tft_lcd_reset_b IOSTANDARD = LVCMOS33;
947
 
948
## NET "tft_clk"  TNM_NET = "tft_clk";
949
## TIMESPEC "TSPLB_TFT" = FROM "sys_clk" TO "tft_clk" TIG;
950
## TIMESPEC "TSTFT_PLB" = FROM "tft_clk" TO "sys_clk" TIG;
951
 
952
## #------------------------------------------------------------------------------
953
## # IO Pad Location Constraints / Properties for Ethernet
954
## #------------------------------------------------------------------------------
955
 
956 415 julius
NET eth0_col        LOC = G20 | IOSTANDARD = LVCMOS25;
957
NET eth0_crs        LOC = H22 | IOSTANDARD = LVCMOS25;
958
NET eth0_dv         LOC = J19 | IOSTANDARD = LVCMOS25;
959
NET eth0_rx_clk     LOC = F14 | IOSTANDARD = LVCMOS25;
960
NET eth0_rx_data<3> LOC = E22 | IOSTANDARD = LVCMOS25;
961
NET eth0_rx_data<2> LOC = E20 | IOSTANDARD = LVCMOS25;
962
NET eth0_rx_data<1> LOC = E21 | IOSTANDARD = LVCMOS25;
963
NET eth0_rx_data<0> LOC = F20 | IOSTANDARD = LVCMOS25;
964 67 julius
 
965 415 julius
NET eth0_rx_er      LOC = H19 | IOSTANDARD = LVCMOS25;
966
NET eth0_tx_clk     LOC = D13 | IOSTANDARD = LVCMOS25;
967
#NET eth0_mii_int_n  LOC = F17 | IOSTANDARD = LVCMOS25;
968
NET eth0_rst_n_o      LOC = F8  | IOSTANDARD = LVCMOS25 | PULLUP; # PHY_RESET pin on phy
969
NET eth0_tx_data<3> LOC = B25 | IOSTANDARD = LVDCI_33;
970
NET eth0_tx_data<2> LOC = C24 | IOSTANDARD = LVDCI_33;
971
NET eth0_tx_data<1> LOC = D24 | IOSTANDARD = LVDCI_33;
972
NET eth0_tx_data<0> LOC = C23 | IOSTANDARD = LVDCI_33;
973
NET eth0_tx_en      LOC = B24 | IOSTANDARD = LVDCI_33;
974
NET eth0_tx_er      LOC = A24 | IOSTANDARD = LVDCI_33;
975 67 julius
 
976
## PHY Serial Management Interface pins
977 415 julius
NET eth0_mdc_pad_o    LOC = F18 | IOSTANDARD = LVCMOS25;
978
NET eth0_md_pad_io   LOC = E8  | IOSTANDARD = LVCMOS25;
979 67 julius
 
980
## NET phy_mii_int_n  PULLUP;
981
 
982
## NET phy_mii_int_n  TIG;
983 415 julius
NET eth0_rst_n_o      TIG;
984 67 julius
 
985
## # Timing Constraints (these are recommended in documentation and
986
## # are unaltered except for the TIG)
987 415 julius
#NET "eth0_rx_clk" TNM_NET = "RXCLK_GRP";
988
NET "eth0_rx_clk_BUFGP" TNM_NET = "RXCLK_GRP";
989
#NET "eth0_tx_clk" TNM_NET = "TXCLK_GRP";
990
NET "eth0_tx_clk_BUFGP" TNM_NET = "TXCLK_GRP";
991 67 julius
TIMESPEC "TSTXOUT" = FROM "TXCLK_GRP" TO "PADS" 10 ns;
992
TIMESPEC "TSRXIN" = FROM "PADS" TO "RXCLK_GRP" 6 ns;
993
 
994 415 julius
NET "eth0_rx_data<3>" IOBDELAY=NONE;
995
NET "eth0_rx_data<2>" IOBDELAY=NONE;
996
NET "eth0_rx_data<1>" IOBDELAY=NONE;
997
NET "eth0_rx_data<0>" IOBDELAY=NONE;
998
NET "eth0_dv" IOBDELAY=NONE;
999
NET "eth0_rx_er" IOBDELAY=NONE;
1000
NET "eth0_crs" IOBDELAY=NONE;
1001
NET "eth0_col" IOBDELAY=NONE;
1002 67 julius
 
1003
## # Timing ignores (to specify unconstrained paths)
1004 496 julius
NET "wb_clk" TNM_NET = "wb_clk_grp"; # Wishbone clock
1005
TIMESPEC "TS_PHYTX_OPB" = FROM "TXCLK_GRP" TO "wb_clk_grp" TIG;
1006
TIMESPEC "TS_OPB_PHYTX" = FROM "wb_clk_grp" TO "TXCLK_GRP" TIG;
1007
TIMESPEC "TS_PHYRX_OPB" = FROM "RXCLK_GRP" TO "wb_clk_grp" TIG;
1008
TIMESPEC "TS_OPB_PHYRX" = FROM "wb_clk_grp" TO "RXCLK_GRP" TIG;
1009 67 julius
 
1010
## #------------------------------------------------------------------------------
1011
## # IO Pad Location Constraints / Properties for AC97 Sound Controller
1012
## #------------------------------------------------------------------------------
1013
 
1014
## NET ac97_bit_clk   LOC = AC13;
1015
## NET ac97_bit_clk   IOSTANDARD = LVCMOS33;
1016
## NET ac97_bit_clk   PERIOD = 80;
1017
## NET ac97_sdata_in  LOC = AC12;
1018
## NET ac97_sdata_in  IOSTANDARD = LVCMOS33;
1019
## NET ac97_sdata_out LOC = AC11;
1020
## NET ac97_sdata_out IOSTANDARD = LVCMOS33;
1021
## NET ac97_sync      LOC = AD11;
1022
## NET ac97_sync      IOSTANDARD = LVCMOS33;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.