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;
|