source: ReferenceDesigns/w3_802.11/edk/system.ucf

Last change on this file was 5594, checked in by murphpo, 8 years ago

Updated XPS and BSP files for v1.5.3 release

File size: 23.9 KB
Line 
1### NOTE: DDR3 SO-DIMM contraints are not specified here!
2###  These are pulled automatically from the MIG project during implementation
3NET ddr_parity LOC = "H29" | IOSTANDARD = "LVCMOS25" | TIG; #stray PAD MIG insists on including, mapped to NC pin on FPGA
4
5NET "dbg_hdr<0>" LOC = "AG27"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 0
6NET "dbg_hdr<1>" LOC = "AE26"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 1
7NET "dbg_hdr<2>" LOC = "AF26"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 2
8NET "dbg_hdr<3>" LOC = "AD25"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 3
9
10NET "dbg_hdr<4>" LOC = "V24"   | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 4
11NET "dbg_hdr<5>" LOC = "AA23"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 5
12NET "dbg_hdr<6>" LOC = "AH30"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 6
13NET "dbg_hdr<7>" LOC = "AK31"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 7
14
15NET "dbg_hdr<8>" LOC = "AG28"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 8
16NET "dbg_hdr<9>" LOC = "AE27"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 9
17NET "dbg_hdr<10>" LOC = "AF28"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 10
18NET "dbg_hdr<11>" LOC = "AJ29"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 11
19
20NET "dbg_hdr<12>" LOC = "AH29"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 12
21NET "dbg_hdr<13>" LOC = "AL30"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 13
22NET "dbg_hdr<14>" LOC = "AM31"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 14
23NET "dbg_hdr<15>" LOC = "AP32"  | IOSTANDARD = "LVCMOS25" | PULLDOWN; #pin 15
24
25#System clock (80MHz, from sampling clock buffer)
26NET samp_clk_n LOC = V23 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE;
27NET samp_clk_p LOC = U23 | IOSTANDARD = LVDS_25 | DIFF_TERM = TRUE;
28Net samp_clk_p TNM_NET = samp_clk;
29TIMESPEC TS_samp_clk = PERIOD samp_clk 80000 kHz;
30
31Net clk_160MHz TNM_NET = TNM_clk_160MHz;
32
33#System clock (200MHz, from LVDS oscillator)
34Net osc200_p LOC = A10  |  IOSTANDARD=LVDS_25  |  DIFF_TERM = TRUE;
35Net osc200_n LOC = B10  |  IOSTANDARD=LVDS_25  |  DIFF_TERM = TRUE;
36Net osc200_p TNM_NET = osc200_p;
37TIMESPEC TS_osc200_p = PERIOD osc200_p 200000 kHz;
38
39#FPGA CC pins connected to clock module header
40# CM-PLL drives these with copy of selected PLL reference clock
41# Constrained to 200MHz (overkill, but easy to meet given the simple logic)
42Net pll_refclk_p LOC = AD24  |  IOSTANDARD=LVDS_25  |  DIFF_TERM = TRUE;
43Net pll_refclk_n LOC = AE24  |  IOSTANDARD=LVDS_25  |  DIFF_TERM = TRUE;
44Net pll_refclk_p TNM_NET = pll_refclk;
45TIMESPEC TS_pll_refclk = PERIOD pll_refclk 200000 kHz;
46
47NET userio_dipsw<0> LOC = "AM22"  |  IOSTANDARD = "LVCMOS15";
48NET userio_dipsw<1> LOC = "AL23"  |  IOSTANDARD = "LVCMOS15";
49NET userio_dipsw<2> LOC = "AM23"  |  IOSTANDARD = "LVCMOS15";
50NET userio_dipsw<3> LOC = "AN23"  |  IOSTANDARD = "LVCMOS15";
51
52Net userio_leds_red<0> LOC=AN34  |  IOSTANDARD = LVCMOS25;
53Net userio_leds_red<1> LOC=AM33  |  IOSTANDARD = LVCMOS25;
54Net userio_leds_red<2> LOC=AN33  |  IOSTANDARD = LVCMOS25;
55Net userio_leds_red<3> LOC=AP33  |  IOSTANDARD = LVCMOS25;
56
57Net userio_leds_green<0> LOC=AD22  |  IOSTANDARD = LVCMOS25;
58Net userio_leds_green<1> LOC=AE22  |  IOSTANDARD = LVCMOS25;
59Net userio_leds_green<2> LOC=AM32  |  IOSTANDARD = LVCMOS25;
60Net userio_leds_green<3> LOC=AN32  |  IOSTANDARD = LVCMOS25;
61
62Net userio_pb_u LOC=AM21  |  IOSTANDARD = LVCMOS15;
63Net userio_pb_m LOC=AN22  |  IOSTANDARD = LVCMOS15;
64Net userio_pb_d LOC=AP22  |  IOSTANDARD = LVCMOS15;
65
66Net userio_hexdisp_left<0> LOC=AL33  |  IOSTANDARD = LVCMOS25;
67Net userio_hexdisp_left<1> LOC=AK33  |  IOSTANDARD = LVCMOS25;
68Net userio_hexdisp_left<2> LOC=AH32  |  IOSTANDARD = LVCMOS25;
69Net userio_hexdisp_left<3> LOC=AF29  |  IOSTANDARD = LVCMOS25;
70Net userio_hexdisp_left<4> LOC=AE29  |  IOSTANDARD = LVCMOS25;
71Net userio_hexdisp_left<5> LOC=AK32  |  IOSTANDARD = LVCMOS25;
72Net userio_hexdisp_left<6> LOC=AF30  |  IOSTANDARD = LVCMOS25;
73
74Net userio_hexdisp_right<0> LOC=AE28  |  IOSTANDARD = LVCMOS25;
75Net userio_hexdisp_right<1> LOC=AD26  |  IOSTANDARD = LVCMOS25;
76Net userio_hexdisp_right<2> LOC=AC24  |  IOSTANDARD = LVCMOS25;
77Net userio_hexdisp_right<3> LOC=AE23  |  IOSTANDARD = LVCMOS25;
78Net userio_hexdisp_right<4> LOC=AC22  |  IOSTANDARD = LVCMOS25;
79Net userio_hexdisp_right<5> LOC=AD27  |  IOSTANDARD = LVCMOS25;
80Net userio_hexdisp_right<6> LOC=AB23  |  IOSTANDARD = LVCMOS25;
81
82Net userio_hexdisp_left_dp LOC=AG30  |  IOSTANDARD = LVCMOS25;
83Net userio_hexdisp_right_dp LOC=AC23  |  IOSTANDARD = LVCMOS25;
84
85Net userio_rfa_led_red LOC=AL34  |  IOSTANDARD = LVCMOS25;
86Net userio_rfa_led_green LOC=AK34  |  IOSTANDARD = LVCMOS25;
87Net userio_rfb_led_red LOC=AJ34  |  IOSTANDARD = LVCMOS25;
88Net userio_rfb_led_green LOC=AH34  |  IOSTANDARD = LVCMOS25;
89
90NET usb_uart_rx LOC = "J9"  |  IOSTANDARD = "LVCMOS25";
91NET usb_uart_tx LOC = "H9"  |  IOSTANDARD = "LVCMOS25";
92
93#SIP switch on CM-MMCX / DIP switch on the CM-PLL
94NET "cm_switch<0>" LOC = V30 | IOSTANDARD = LVCMOS25 | PULLUP; #CLKHDR_CTRL12 in schematics
95NET "cm_switch<1>" LOC = R34 | IOSTANDARD = LVCMOS25 | PULLUP; #CLKHDR_CTRL13 in schematics
96NET "cm_switch<2>" LOC = W26 | IOSTANDARD = LVCMOS25 | PULLUP; #CLKHDR_CTRL13 in schematics
97
98NET cm_spi_sclk LOC = "Y34" | IOSTANDARD = LVCMOS25; #CM hdr p25 CTRL8
99NET cm_spi_mosi LOC = "Y31" | IOSTANDARD = LVCMOS25; #CM hdr p29 CTRL10
100NET cm_spi_miso LOC = "Y33" | IOSTANDARD = LVCMOS25; #CM hdr p27 CTRL9
101NET cm_spi_cs_n LOC = "Y32" | IOSTANDARD = LVCMOS25; #CM hdr p31 CTRL11
102NET cm_pll_status LOC = "V29" | IOSTANDARD = LVCMOS25 | PULLUP; #CM hdr p14 CTRL15
103
104NET clk_rfref_spi_sclk LOC = V25 | IOSTANDARD = LVCMOS25;#
105NET clk_rfref_spi_mosi LOC = W25 | IOSTANDARD = LVCMOS25;#
106NET clk_rfref_spi_cs_n LOC = W27 | IOSTANDARD = LVCMOS25;#
107NET clk_rfref_spi_miso LOC = Y27 | IOSTANDARD = LVCMOS25;#
108NET clk_rfref_func LOC = L26 | IOSTANDARD = LVCMOS25;
109
110NET clk_samp_spi_sclk LOC = W32 | IOSTANDARD = LVCMOS25;#
111NET clk_samp_spi_mosi LOC = Y29 | IOSTANDARD = LVCMOS25;#
112NET clk_samp_spi_cs_n LOC = W31 | IOSTANDARD = LVCMOS25;#
113NET clk_samp_spi_miso LOC = Y28 | IOSTANDARD = LVCMOS25;#
114NET clk_samp_func LOC = R33 | IOSTANDARD = LVCMOS25;#
115
116#IIC EEPROM on-board
117Net iic_eeprom_onboard_sda LOC = AG23  |  IOSTANDARD=LVCMOS25;
118Net iic_eeprom_onboard_scl LOC = AF23  |  IOSTANDARD=LVCMOS25;
119
120#ETH_A pins (88e1121R P1)
121Net ETH_A_PHY_RST_N LOC=L9  |  IOSTANDARD = "LVCMOS25"  |  TIG;
122Net ETH_A_RGMII_TXD<0> LOC=AF9  |  IOSTANDARD = "LVCMOS25";
123Net ETH_A_RGMII_TXD<1> LOC=AF10  |  IOSTANDARD = "LVCMOS25";
124Net ETH_A_RGMII_TXD<2> LOC=AD9  |  IOSTANDARD = "LVCMOS25";
125Net ETH_A_RGMII_TXD<3> LOC=AD10  |  IOSTANDARD = "LVCMOS25";
126Net ETH_A_RGMII_TX_CTL LOC=AG8  |  IOSTANDARD = "LVCMOS25";
127Net ETH_A_RGMII_TXC LOC=AE9  |  IOSTANDARD = "LVCMOS25";
128Net ETH_A_RGMII_RXD<0> LOC=AK9  |  IOSTANDARD = "LVCMOS25";
129Net ETH_A_RGMII_RXD<1> LOC=AJ9  |  IOSTANDARD = "LVCMOS25";
130Net ETH_A_RGMII_RXD<2> LOC=AH8  |  IOSTANDARD = "LVCMOS25";
131Net ETH_A_RGMII_RXD<3> LOC=AH9  |  IOSTANDARD = "LVCMOS25";
132Net ETH_A_RGMII_RX_CTL LOC=AL9  |  IOSTANDARD = "LVCMOS25";
133Net ETH_A_RGMII_RXC LOC=AC10  |  IOSTANDARD = "LVCMOS25";
134Net ETH_A_MDIO LOC=AP9  |  IOSTANDARD = "LVCMOS25" | PULLUP;
135Net ETH_A_MDC LOC=AK8  |  IOSTANDARD = "LVCMOS25";
136NET ETH_A_PD LOC = K9 |  IOSTANDARD = "LVCMOS25" | TIG;
137
138#ETH B
139Net ETH_B_RGMII_TXD<0> LOC=M10  |  IOSTANDARD = LVCMOS25;
140Net ETH_B_RGMII_TXD<1> LOC=B8  |  IOSTANDARD = LVCMOS25;
141Net ETH_B_RGMII_TXD<2> LOC=AC9  |  IOSTANDARD = LVCMOS25;
142Net ETH_B_RGMII_TXD<3> LOC=E9  |  IOSTANDARD = LVCMOS25;
143Net ETH_B_RGMII_TX_CTL LOC=D10  |  IOSTANDARD = LVCMOS25;
144Net ETH_B_RGMII_TXC LOC=AB10  |  IOSTANDARD = LVCMOS25;
145Net ETH_B_RGMII_RXD<0> LOC=A9  |  IOSTANDARD = LVCMOS25;
146Net ETH_B_RGMII_RXD<1> LOC=D9  |  IOSTANDARD = LVCMOS25;
147Net ETH_B_RGMII_RXD<2> LOC=C9  |  IOSTANDARD = LVCMOS25;
148Net ETH_B_RGMII_RXD<3> LOC=F10  |  IOSTANDARD = LVCMOS25;
149Net ETH_B_RGMII_RX_CTL LOC=A8  |  IOSTANDARD = LVCMOS25;
150Net ETH_B_RGMII_RXC LOC=L10  |  IOSTANDARD = LVCMOS25;
151Net ETH_B_MDC LOC=AN9  |  IOSTANDARD = LVCMOS25;
152Net ETH_B_MDIO LOC=AL8  |  IOSTANDARD = LVCMOS25 | PULLUP;
153NET ETH_B_PD LOC = E8 |  IOSTANDARD = "LVCMOS25" | TIG;
154
155NET ETH_COMA LOC = C8 |  IOSTANDARD = "LVCMOS25" | TIG;
156 
157NET reset_pb LOC = "AH13"  |  IOSTANDARD = "LVCMOS15"  |  TIG;
158
159#NET "*fpga_dna*" TIG;
160
161###############
162# ETH_A Timing
163INST "*ETH_A*gmii_interface*rxdata_bus[0].delay_rgmii_rxd"  IDELAY_VALUE = 13;
164INST "*ETH_A*gmii_interface*rxdata_bus[1].delay_rgmii_rxd"  IDELAY_VALUE = 13;
165INST "*ETH_A*gmii_interface*rxdata_bus[2].delay_rgmii_rxd"  IDELAY_VALUE = 13;
166INST "*ETH_A*gmii_interface*rxdata_bus[3].delay_rgmii_rxd"  IDELAY_VALUE = 13;
167
168INST "*ETH_A*gmii_interface*delay_rgmii_rx_ctl"            IDELAY_VALUE = 13;
169
170INST "*ETH_A*gmii_interface*delay_rgmii_tx_clk" ODELAY_VALUE = 6;
171INST "*ETH_A*gmii_interface*delay_rgmii_tx_clk" SIGNAL_PATTERN = CLOCK;
172
173# Group all IODELAY-related blocks to use a single IDELAYCTRL
174INST "*ETH_A*dlyctrl"                                       IODELAY_GROUP = ETH_rgmii_iodelay;
175INST "*ETH_A*gmii_interface*delay_rgmii_rx_ctl" IODELAY_GROUP = ETH_rgmii_iodelay;
176INST "*ETH_A*gmii_interface*rxdata_bus[?].delay_rgmii_rxd" IODELAY_GROUP = ETH_rgmii_iodelay;
177INST "*ETH_A*gmii_interface*delay_rgmii_tx_clk"     IODELAY_GROUP = ETH_rgmii_iodelay;
178
179# Spec: 1.2ns setup time, 1.2ns hold time
180# The internal PHY delays were not used to derive the OFFSET constraints                                                                 
181# Changed NET Name
182#  This signal trace is longer than the clock trace, and arrives at the FPGA pin 64 ps after the clock
183#  Therefore the offset in constraint must have less setup time than nominal
184NET "ETH_A_RGMII_RXD[0]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" RISING;
185NET "ETH_A_RGMII_RXD[0]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" FALLING;
186
187#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 376 ps before the clock
188#  Therefore the offset in constraint must have more setup time than nominal
189NET "ETH_A_RGMII_RXD[1]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" RISING;
190NET "ETH_A_RGMII_RXD[1]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" FALLING;
191
192#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 372 ps before the clock
193#  Therefore the offset in constraint must have more setup time than nominal
194NET "ETH_A_RGMII_RXD[2]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" RISING;
195NET "ETH_A_RGMII_RXD[2]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" FALLING;
196
197#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 115 ps before the clock
198#  Therefore the offset in constraint must have more setup time than nominal
199NET "ETH_A_RGMII_RXD[3]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" RISING;
200NET "ETH_A_RGMII_RXD[3]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" FALLING;
201
202#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 292 ps before the clock
203#  Therefore the offset in constraint must have more setup time than nominal
204NET "ETH_A_RGMII_RX_CTL" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" RISING;
205NET "ETH_A_RGMII_RX_CTL" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_A_RGMII_RXC" FALLING;
206
207###############
208# ETH_B Timing
209INST "*ETH_B*gmii_interface*rxdata_bus[0].delay_rgmii_rxd"  IDELAY_VALUE = 13;
210INST "*ETH_B*gmii_interface*rxdata_bus[1].delay_rgmii_rxd"  IDELAY_VALUE = 13;
211INST "*ETH_B*gmii_interface*rxdata_bus[2].delay_rgmii_rxd"  IDELAY_VALUE = 13;
212INST "*ETH_B*gmii_interface*rxdata_bus[3].delay_rgmii_rxd"  IDELAY_VALUE = 13;
213
214INST "*ETH_B*gmii_interface*delay_rgmii_rx_ctl"            IDELAY_VALUE = 13;
215
216INST "*ETH_B*gmii_interface*delay_rgmii_tx_clk" ODELAY_VALUE = 6;
217INST "*ETH_B*gmii_interface*delay_rgmii_tx_clk" SIGNAL_PATTERN = CLOCK;
218
219# Group all IODELAY-related blocks to use a single IDELAYCTRL
220#INST "ETH_B*dlyctrl"                                       IODELAY_GROUP = ETH_rgmii_iodelay;
221INST "*ETH_B*gmii_interface*delay_rgmii_rx_ctl" IODELAY_GROUP = ETH_rgmii_iodelay;
222INST "*ETH_B*gmii_interface*rxdata_bus[?].delay_rgmii_rxd" IODELAY_GROUP = ETH_rgmii_iodelay;
223INST "*ETH_B*gmii_interface*delay_rgmii_tx_clk"     IODELAY_GROUP = ETH_rgmii_iodelay;
224
225# Spec: 1.2ns setup time, 1.2ns hold time
226# The internal PHY delays were not used to derive the OFFSET constraints                                                                 
227# Changed NET Name
228#  This signal trace is longer than the clock trace, and arrives at the FPGA pin 64 ps after the clock
229#  Therefore the offset in constraint must have less setup time than nominal
230NET "ETH_B_RGMII_RXD[0]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" RISING;
231NET "ETH_B_RGMII_RXD[0]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" FALLING;
232
233#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 376 ps before the clock
234#  Therefore the offset in constraint must have more setup time than nominal
235NET "ETH_B_RGMII_RXD[1]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" RISING;
236NET "ETH_B_RGMII_RXD[1]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" FALLING;
237
238#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 372 ps before the clock
239#  Therefore the offset in constraint must have more setup time than nominal
240NET "ETH_B_RGMII_RXD[2]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" RISING;
241NET "ETH_B_RGMII_RXD[2]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" FALLING;
242
243#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 115 ps before the clock
244#  Therefore the offset in constraint must have more setup time than nominal
245NET "ETH_B_RGMII_RXD[3]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" RISING;
246NET "ETH_B_RGMII_RXD[3]" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" FALLING;
247
248#  This signal trace is shorter than the clock trace, and arrives at the FPGA pin 292 ps before the clock
249#  Therefore the offset in constraint must have more setup time than nominal
250NET "ETH_B_RGMII_RX_CTL" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" RISING;
251NET "ETH_B_RGMII_RX_CTL" OFFSET = IN 1.2 ns VALID 2.4 ns BEFORE "ETH_B_RGMII_RXC" FALLING;
252
253############
254NET RFA_AD_spi_sclk LOC = AB33 | IOSTANDARD = LVCMOS25;
255NET RFA_AD_spi_sdio LOC = AC30 | IOSTANDARD = LVCMOS25;
256NET RFA_AD_spi_cs_n LOC = AB31 | IOSTANDARD = LVCMOS25;
257NET RFA_AD_reset_n LOC = AA34 | IOSTANDARD = LVCMOS25;
258
259NET RFB_AD_spi_sclk LOC = P32 | IOSTANDARD = LVCMOS25;
260NET RFB_AD_spi_sdio LOC = P34 | IOSTANDARD = LVCMOS25;
261NET RFB_AD_spi_cs_n LOC = N32 | IOSTANDARD = LVCMOS25;
262NET RFB_AD_reset_n LOC = N34 | IOSTANDARD = LVCMOS25;
263
264#RFA AD9963
265NET RFA_AD_TRXD<0> LOC = AC25 | IOSTANDARD = LVCMOS25;
266NET RFA_AD_TRXD<1> LOC = AB25 | IOSTANDARD = LVCMOS25;
267NET RFA_AD_TRXD<2> LOC = AB32 | IOSTANDARD = LVCMOS25;
268NET RFA_AD_TRXD<3> LOC = AC29 | IOSTANDARD = LVCMOS25;
269NET RFA_AD_TRXD<4> LOC = AD29 | IOSTANDARD = LVCMOS25;
270NET RFA_AD_TRXD<5> LOC = AC33 | IOSTANDARD = LVCMOS25;
271NET RFA_AD_TRXD<6> LOC = AD34 | IOSTANDARD = LVCMOS25;
272NET RFA_AD_TRXD<7> LOC = AC32 | IOSTANDARD = LVCMOS25;
273NET RFA_AD_TRXD<8> LOC = AD31 | IOSTANDARD = LVCMOS25;
274NET RFA_AD_TRXD<9> LOC = AD32 | IOSTANDARD = LVCMOS25;
275NET RFA_AD_TRXD<10> LOC = AE31 | IOSTANDARD = LVCMOS25;
276NET RFA_AD_TRXD<11> LOC = AE32 | IOSTANDARD = LVCMOS25;
277
278NET RFA_AD_TRXCLK LOC = AD30 | IOSTANDARD = LVCMOS25;
279NET RFA_AD_TRXIQ LOC = AC34 | IOSTANDARD = LVCMOS25;
280
281NET RFA_AD_TXCLK LOC = AA31 | IOSTANDARD = LVCMOS25;
282NET RFA_AD_TXIQ LOC = AA33 | IOSTANDARD = LVCMOS25;
283
284NET RFA_AD_TXD<0> LOC = AA25 | IOSTANDARD = LVCMOS25;
285NET RFA_AD_TXD<1> LOC = AB26 | IOSTANDARD = LVCMOS25;
286NET RFA_AD_TXD<2> LOC = Y26 | IOSTANDARD = LVCMOS25;
287NET RFA_AD_TXD<3> LOC = AA26 | IOSTANDARD = LVCMOS25;
288NET RFA_AD_TXD<4> LOC = AA28 | IOSTANDARD = LVCMOS25;
289NET RFA_AD_TXD<5> LOC = AA29 | IOSTANDARD = LVCMOS25;
290NET RFA_AD_TXD<6> LOC = AA30 | IOSTANDARD = LVCMOS25;
291NET RFA_AD_TXD<7> LOC = AB30 | IOSTANDARD = LVCMOS25;
292NET RFA_AD_TXD<8> LOC = AB28 | IOSTANDARD = LVCMOS25;
293NET RFA_AD_TXD<9> LOC = AB27 | IOSTANDARD = LVCMOS25;
294NET RFA_AD_TXD<10> LOC = AC28 | IOSTANDARD = LVCMOS25;
295NET RFA_AD_TXD<11> LOC = AC27 | IOSTANDARD = LVCMOS25;
296
297#RFB
298NET RFB_AD_TRXD<0> LOC = N25 | IOSTANDARD = LVCMOS25;
299NET RFB_AD_TRXD<1> LOC = M25 | IOSTANDARD = LVCMOS25;
300NET RFB_AD_TRXD<2> LOC = N28 | IOSTANDARD = LVCMOS25;
301NET RFB_AD_TRXD<3> LOC = N27 | IOSTANDARD = LVCMOS25;
302NET RFB_AD_TRXD<4> LOC = P29 | IOSTANDARD = LVCMOS25;
303NET RFB_AD_TRXD<5> LOC = M30 | IOSTANDARD = LVCMOS25;
304NET RFB_AD_TRXD<6> LOC = N30 | IOSTANDARD = LVCMOS25;
305NET RFB_AD_TRXD<7> LOC = N29 | IOSTANDARD = LVCMOS25;
306NET RFB_AD_TRXD<8> LOC = P26 | IOSTANDARD = LVCMOS25;
307NET RFB_AD_TRXD<9> LOC = P31 | IOSTANDARD = LVCMOS25;
308NET RFB_AD_TRXD<10> LOC = P25 | IOSTANDARD = LVCMOS25;
309NET RFB_AD_TRXD<11> LOC = P30 | IOSTANDARD = LVCMOS25;
310
311NET RFB_AD_TRXCLK LOC = N33 | IOSTANDARD = LVCMOS25;
312NET RFB_AD_TRXIQ LOC = M33 | IOSTANDARD = LVCMOS25;
313
314NET RFB_AD_TXCLK LOC = L28 | IOSTANDARD = LVCMOS25;
315NET RFB_AD_TXIQ LOC = L29 | IOSTANDARD = LVCMOS25;
316
317NET RFB_AD_TXD<0> LOC = K32 | IOSTANDARD = LVCMOS25;
318NET RFB_AD_TXD<1> LOC = M26 | IOSTANDARD = LVCMOS25;
319NET RFB_AD_TXD<2> LOC = M32 | IOSTANDARD = LVCMOS25;
320NET RFB_AD_TXD<3> LOC = K34 | IOSTANDARD = LVCMOS25;
321NET RFB_AD_TXD<4> LOC = M31 | IOSTANDARD = LVCMOS25;
322NET RFB_AD_TXD<5> LOC = L30 | IOSTANDARD = LVCMOS25;
323NET RFB_AD_TXD<6> LOC = L33 | IOSTANDARD = LVCMOS25;
324NET RFB_AD_TXD<7> LOC = L31 | IOSTANDARD = LVCMOS25;
325NET RFB_AD_TXD<8> LOC = M28 | IOSTANDARD = LVCMOS25;
326NET RFB_AD_TXD<9> LOC = L34 | IOSTANDARD = LVCMOS25;
327NET RFB_AD_TXD<10> LOC = M27 | IOSTANDARD = LVCMOS25;
328NET RFB_AD_TXD<11> LOC = K31 | IOSTANDARD = LVCMOS25;
329
330NET RF_RSSI_CLK LOC = B32 | IOSTANDARD = LVCMOS25;
331NET RF_RSSI_PD LOC = B34 | IOSTANDARD = LVCMOS25;
332NET RFB_RSSI_D<0> LOC = A33 | IOSTANDARD = LVCMOS25;
333NET RFB_RSSI_D<1> LOC = B33 | IOSTANDARD = LVCMOS25;
334NET RFB_RSSI_D<2> LOC = C33 | IOSTANDARD = LVCMOS25;
335NET RFB_RSSI_D<3> LOC = C34 | IOSTANDARD = LVCMOS25;
336NET RFB_RSSI_D<4> LOC = C32 | IOSTANDARD = LVCMOS25;
337NET RFB_RSSI_D<5> LOC = D31 | IOSTANDARD = LVCMOS25;
338NET RFB_RSSI_D<6> LOC = G30 | IOSTANDARD = LVCMOS25;
339NET RFB_RSSI_D<7> LOC = E31 | IOSTANDARD = LVCMOS25;
340NET RFB_RSSI_D<8> LOC = D32 | IOSTANDARD = LVCMOS25;
341NET RFB_RSSI_D<9> LOC = D34 | IOSTANDARD = LVCMOS25;
342NET RFA_RSSI_D<0> LOC = E32 | IOSTANDARD = LVCMOS25;
343NET RFA_RSSI_D<1> LOC = E33 | IOSTANDARD = LVCMOS25;
344NET RFA_RSSI_D<2> LOC = E34 | IOSTANDARD = LVCMOS25;
345NET RFA_RSSI_D<3> LOC = F30 | IOSTANDARD = LVCMOS25;
346NET RFA_RSSI_D<4> LOC = F31 | IOSTANDARD = LVCMOS25;
347NET RFA_RSSI_D<5> LOC = F34 | IOSTANDARD = LVCMOS25;
348NET RFA_RSSI_D<6> LOC = F33 | IOSTANDARD = LVCMOS25;
349NET RFA_RSSI_D<7> LOC = G31 | IOSTANDARD = LVCMOS25;
350NET RFA_RSSI_D<8> LOC = G33 | IOSTANDARD = LVCMOS25;
351NET RFA_RSSI_D<9> LOC = G32 | IOSTANDARD = LVCMOS25;
352
353#######################################
354#MAX2829 transceivers and RF front end
355NET RFA_SPI_SCLK LOC=T34 | IOSTANDARD=LVCMOS25;
356NET RFA_SPI_MOSI LOC=T33 | IOSTANDARD=LVCMOS25;
357NET RFA_SPI_CSn LOC=U32 | IOSTANDARD=LVCMOS25;
358NET RFA_SHDN LOC=U27 | IOSTANDARD=LVCMOS25;
359NET RFA_TxEn LOC=T31 | IOSTANDARD=LVCMOS25;
360NET RFA_RxEn LOC=U33 | IOSTANDARD=LVCMOS25;
361NET RFA_RxHP LOC=AG32 | IOSTANDARD=LVCMOS25;
362NET RFA_PAEn_24 LOC=U25 | IOSTANDARD=LVCMOS25;
363NET RFA_PAEn_5 LOC=U28 | IOSTANDARD=LVCMOS25;
364NET RFA_ANTSW<0> LOC=U31 | IOSTANDARD=LVCMOS25;
365NET RFA_ANTSW<1> LOC=U30 | IOSTANDARD=LVCMOS25;
366NET RFA_LD LOC=U26 | IOSTANDARD=LVCMOS25;
367NET RFA_B<0> LOC=AG33 | IOSTANDARD=LVCMOS25;
368NET RFA_B<1> LOC=AF31 | IOSTANDARD=LVCMOS25;
369NET RFA_B<2> LOC=AF33 | IOSTANDARD=LVCMOS25;
370NET RFA_B<3> LOC=AG31 | IOSTANDARD=LVCMOS25;
371NET RFA_B<4> LOC=AF34 | IOSTANDARD=LVCMOS25;
372NET RFA_B<5> LOC=AE33 | IOSTANDARD=LVCMOS25;
373NET RFA_B<6> LOC=AE34 | IOSTANDARD=LVCMOS25;
374
375NET RFB_SPI_SCLK LOC=H34 | IOSTANDARD=LVCMOS25;
376NET RFB_SPI_MOSI LOC=H33 | IOSTANDARD=LVCMOS25;
377NET RFB_SPI_CSn LOC=J32 | IOSTANDARD=LVCMOS25;
378NET RFB_SHDN LOC=J34 | IOSTANDARD=LVCMOS25;
379NET RFB_TxEn LOC=H32 | IOSTANDARD=LVCMOS25;
380NET RFB_RxEn LOC=J31 | IOSTANDARD=LVCMOS25;
381NET RFB_RxHP LOC=R28 | IOSTANDARD=LVCMOS25;
382NET RFB_PAEn_24 LOC=T25 | IOSTANDARD=LVCMOS25;
383NET RFB_PAEn_5 LOC=T28 | IOSTANDARD=LVCMOS25;
384NET RFB_ANTSW<0> LOC=T30 | IOSTANDARD=LVCMOS25;
385NET RFB_ANTSW<1> LOC=T29 | IOSTANDARD=LVCMOS25;
386NET RFB_LD LOC=K33 | IOSTANDARD=LVCMOS25;
387NET RFB_B<0> LOC=P27 | IOSTANDARD=LVCMOS25;
388NET RFB_B<1> LOC=R27 | IOSTANDARD=LVCMOS25;
389NET RFB_B<2> LOC=R29 | IOSTANDARD=LVCMOS25;
390NET RFB_B<3> LOC=R26 | IOSTANDARD=LVCMOS25;
391NET RFB_B<4> LOC=R32 | IOSTANDARD=LVCMOS25;
392NET RFB_B<5> LOC=T26 | IOSTANDARD=LVCMOS25;
393NET RFB_B<6> LOC=R31 | IOSTANDARD=LVCMOS25;
394
395#AD9963 data interface clock constraints
396Net RFA_AD_TRXCLK TNM_NET = TNM_RFA_AD_TRXCLK;
397Net RFB_AD_TRXCLK TNM_NET = TNM_RFB_AD_TRXCLK;
398
399#TRXCLK runs up to 40MHz (no decimation in AD9963s)
400TIMESPEC TS_RFA_AD_TRXCLK = PERIOD TNM_RFA_AD_TRXCLK TS_samp_clk*2;
401TIMESPEC TS_RFB_AD_TRXCLK = PERIOD TNM_RFB_AD_TRXCLK TS_samp_clk*2;
402
403#Define relationship of TRXD and TRXCLK, based on AD9963 specs
404# Using worst-case output delay from AD9963 datasheet table 23
405# TRXCLK leads TRXD transition by t_OD2; ad_bridge uses IDELAY to shift this to mid valid window
406# VALID window below assumes DDR interleaved I/Q at 20MSps rate (25nsec / half sample)
407INST "RFA_AD_TRXD<*>" TNM = RFA_AD_TRXD_group;
408NET "RFA_AD_TRXCLK" TNM_NET = RFA_AD_TRXCLK;
409TIMEGRP "RFA_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFA_AD_TRXCLK" RISING;
410TIMEGRP "RFA_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFA_AD_TRXCLK" FALLING;
411
412INST "RFB_AD_TRXD<*>" TNM = RFB_AD_TRXD_group;
413NET "RFB_AD_TRXCLK" TNM_NET = RFB_AD_TRXCLK;
414TIMEGRP "RFB_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFB_AD_TRXCLK" RISING;
415TIMEGRP "RFB_AD_TRXD_group" OFFSET = IN 0.7 ns VALID 22 ns BEFORE "RFB_AD_TRXCLK" FALLING;
416
417#Relaxed constraints for T=8 paths through Rx PHY (mostly in DSSS Rx)
418NET "*wlan_phy_rx*ce_8_sg_x*" TNM_NET = "TNM_rx_phy_CE8";
419TIMESPEC TS_rx_phy_T8 = FROM "TNM_rx_phy_CE8" TO "TNM_rx_phy_CE8" 20 MHz;
420
421# Basic floorplanning
422INST "wlan_phy_tx" AREA_GROUP = "WLAN_PHY_Tx";
423AREA_GROUP "WLAN_PHY_Tx" RANGE=SLICE_X10Y81:SLICE_X65Y139;
424AREA_GROUP "WLAN_PHY_Tx" RANGE=DSP48_X0Y34:DSP48_X3Y55;
425AREA_GROUP "WLAN_PHY_Tx" RANGE=RAMB18_X1Y34:RAMB18_X3Y55;
426AREA_GROUP "WLAN_PHY_Tx" RANGE=RAMB36_X1Y17:RAMB36_X3Y27;
427
428INST "DDR3_SODIMM" AREA_GROUP = "DDR3_SODIMM";
429AREA_GROUP "DDR3_SODIMM" RANGE=SLICE_X56Y60:SLICE_X99Y79, SLICE_X12Y0:SLICE_X123Y59;
430AREA_GROUP "DDR3_SODIMM" RANGE=DSP48_X0Y0:DSP48_X5Y23;
431AREA_GROUP "DDR3_SODIMM" RANGE=RAMB18_X1Y0:RAMB18_X5Y23;
432AREA_GROUP "DDR3_SODIMM" RANGE=RAMB36_X1Y0:RAMB36_X5Y11;
433
434INST "wlan_phy_rx" AREA_GROUP = "WLAN_PHY_Rx";
435AREA_GROUP "WLAN_PHY_Rx" RANGE=SLICE_X0Y140:SLICE_X161Y239;
436AREA_GROUP "WLAN_PHY_Rx" RANGE=DSP48_X0Y56:DSP48_X7Y95;
437AREA_GROUP "WLAN_PHY_Rx" RANGE=RAMB18_X0Y56:RAMB18_X8Y95;
438AREA_GROUP "WLAN_PHY_Rx" RANGE=RAMB36_X0Y28:RAMB36_X8Y47;
439
440INST "wlan_agc" AREA_GROUP = "WLAN_AGC";
441AREA_GROUP "WLAN_AGC" RANGE=SLICE_X0Y40:SLICE_X13Y140;
442AREA_GROUP "WLAN_AGC" RANGE=DSP48_X0Y16:DSP48_X0Y55;
443AREA_GROUP "WLAN_AGC" RANGE=RAMB18_X0Y16:RAMB18_X0Y55;
444AREA_GROUP "WLAN_AGC" RANGE=RAMB36_X0Y8:RAMB36_X0Y27;
445
446INST "ad_bridge_onBoard" AREA_GROUP = "AD_Bridge_OnBoard";
447AREA_GROUP "AD_Bridge_OnBoard" RANGE=SLICE_X0Y41:SLICE_X1Y159;
448
449INST "mb_high" AREA_GROUP = "MB_High_Subsystem";
450INST "mb_high_dlmb" AREA_GROUP = "MB_High_Subsystem";
451INST "mb_high_ilmb" AREA_GROUP = "MB_High_Subsystem";
452INST "mb_high_dlmb_bram_cntlr_0" AREA_GROUP = "MB_High_Subsystem";
453INST "mb_high_ilmb_bram_cntlr_0" AREA_GROUP = "MB_High_Subsystem";
454INST "mb_high_dlmb_bram_cntlr_1" AREA_GROUP = "MB_High_Subsystem";
455INST "mb_high_ilmb_bram_cntlr_1" AREA_GROUP = "MB_High_Subsystem";
456INST "mb_high_lmb_bram_0" AREA_GROUP = "MB_High_Subsystem";
457INST "mb_high_lmb_bram_1" AREA_GROUP = "MB_High_Subsystem";
458AREA_GROUP "MB_High_Subsystem" RANGE=SLICE_X100Y0:SLICE_X161Y79;
459AREA_GROUP "MB_High_Subsystem" RANGE=DSP48_X4Y0:DSP48_X7Y31;
460AREA_GROUP "MB_High_Subsystem" RANGE=RAMB18_X4Y0:RAMB18_X8Y31;
461AREA_GROUP "MB_High_Subsystem" RANGE=RAMB36_X4Y0:RAMB36_X8Y15;
Note: See TracBrowser for help on using the repository browser.