aboutsummaryrefslogtreecommitdiff
path: root/j1/xilinx/j1-papilioduo.ucf
blob: e06e002bc6d76e96a4ad6d69efab09fa0410329e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# UCF file for the Papilio DUO board
# Generated by pin_converter, written by Kevin Lindsey
# https://github.com/thelonious/papilio_pins/tree/development/pin_converter

# Main board wing pin [] to FPGA pin Pxx map
# -------C-------    -------B-------    -------A-------
# [GND] [C00] P114   [GND] [B00] P99    P100 [A15]
# [2V5] [C01] P115   [2V5] [B01] P97    P98 [A14]
# [3V3] [C02] P116   [3V3] [B02] P92    P93 [A13]
# [5V0] [C03] P117   [5V0] [B03] P87    P88 [A12]
#       [C04] P118         [B04] P84    P85 [A11] [5V0]
#       [C05] P119         [B05] P82    P83 [A10] [3V3]
#       [C06] P120         [B06] P80    P81 [A09] [2V5]
#       [C07] P121         [B07] P78    P79 [A08] [GND]
# [GND] [C08] P123   [GND] [B08] P74    P75 [A07]
# [2V5] [C09] P124   [2V5] [B09] P95    P67 [A06]
# [3V3] [C10] P126   [3V3] [B10] P62    P66 [A05]
# [5V0] [C11] P127   [5V0] [B11] P59    P61 [A04]
#       [C12] P131         [B12] P57    P58 [A03] [5V0]
#       [C13] P132         [B13] P55    P56 [A02] [3V3]
#       [C14] P133         [B14] P50    P51 [A01] [2V5]
#       [C15] P134         [B15] P47    P48 [A00] [GND]

## Prohibit the automatic placement of pins that are connected to VCC or GND for configuration.
CONFIG PROHIBIT=P144;
CONFIG PROHIBIT=P69;
CONFIG PROHIBIT=P60;

#NET "*" IOSTANDARD = LVTTL;

NET CLK      LOC="P94"  | IOSTANDARD=LVTTL;               										# CLK
TIMESPEC TS_Period_1 = PERIOD "CLK" 31.25 ns HIGH 50%;
NET TXD       LOC="P141" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
NET RXD       LOC="P46"  | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;
NET DTR       LOC="P137" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;

// NET "fclk" PERIOD = 6 ns HIGH 50%;

# 
# NET Arduino_0          LOC="P116" | IOSTANDARD=LVTTL;                                # A0
# NET Arduino_1          LOC="P117" | IOSTANDARD=LVTTL;                                # A1
# NET Arduino_2          LOC="P118" | IOSTANDARD=LVTTL;                                # A2
# NET Arduino_3          LOC="P119" | IOSTANDARD=LVTTL;                                # A3
# NET Arduino_4          LOC="P120" | IOSTANDARD=LVTTL;                                # A4
# NET Arduino_5          LOC="P121" | IOSTANDARD=LVTTL;                                # A5
# NET Arduino_6          LOC="P123" | IOSTANDARD=LVTTL;                                # A6
# NET Arduino_7          LOC="P124" | IOSTANDARD=LVTTL;                                # A7
# NET Arduino_8          LOC="P126" | IOSTANDARD=LVTTL;                                # A8
# NET Arduino_9          LOC="P127" | IOSTANDARD=LVTTL;                                # A9
# NET Arduino_10         LOC="P131" | IOSTANDARD=LVTTL;                                # A10
# NET Arduino_11         LOC="P132" | IOSTANDARD=LVTTL;                                # A11
# NET Arduino_12         LOC="P133" | IOSTANDARD=LVTTL;                                # A12
# NET Arduino_13         LOC="P134" | IOSTANDARD=LVTTL;                                # A13
# 
# NET Arduino_14          LOC="P115" | IOSTANDARD=LVTTL;                                # B0
# NET Arduino_15          LOC="P114" | IOSTANDARD=LVTTL;                                # B1
# NET Arduino_16          LOC="P112" | IOSTANDARD=LVTTL;                                # B2
# NET Arduino_17          LOC="P111" | IOSTANDARD=LVTTL;                                # B3
# NET Arduino_18          LOC="P105" | IOSTANDARD=LVTTL;                                # B4
# NET Arduino_19          LOC="P102" | IOSTANDARD=LVTTL;                                # B5
# NET Arduino_20          LOC="P101" | IOSTANDARD=LVTTL;                                # B6
# NET Arduino_21          LOC="P100" | IOSTANDARD=LVTTL;                                # B7                        
# 
# NET Arduino_22          LOC="P99"  | IOSTANDARD=LVTTL;                                # C0
# NET Arduino_24          LOC="P97"  | IOSTANDARD=LVTTL;                                # C1
# NET Arduino_26          LOC="P93"  | IOSTANDARD=LVTTL;                                # C2
# NET Arduino_28          LOC="P88"  | IOSTANDARD=LVTTL;                                # C3
# NET Arduino_30          LOC="P85"  | IOSTANDARD=LVTTL;                                # C4
# NET Arduino_32          LOC="P83"  | IOSTANDARD=LVTTL;                                # C5
# NET Arduino_34          LOC="P81"  | IOSTANDARD=LVTTL;                                # C6
# NET Arduino_36          LOC="P79"  | IOSTANDARD=LVTTL;                                # C7
# NET Arduino_38          LOC="P75"  | IOSTANDARD=LVTTL;                                # C8
# NET Arduino_40          LOC="P67"  | IOSTANDARD=LVTTL;                                # C9
# NET Arduino_42         LOC="P62"  | IOSTANDARD=LVTTL;                                # C10
# NET Arduino_44         LOC="P59"  | IOSTANDARD=LVTTL;                                # C11
# NET Arduino_46         LOC="P57"  | IOSTANDARD=LVTTL;                                # C12
# NET Arduino_48         LOC="P55"  | IOSTANDARD=LVTTL;                                # C13
# NET Arduino_50         LOC="P50"  | IOSTANDARD=LVTTL;                                # C14
# NET Arduino_52         LOC="P47"  | IOSTANDARD=LVTTL;                                # C15
# 
# NET Arduino_23     LOC="P98"  | IOSTANDARD=LVTTL ;                                
# NET Arduino_25     LOC="P95" | IOSTANDARD=LVTTL ;                                	
# NET Arduino_27     LOC="P92"  | IOSTANDARD=LVTTL ;                                
# NET Arduino_29     LOC="P87"  | IOSTANDARD=LVTTL ;                                
# NET Arduino_31     LOC="P84"  | IOSTANDARD=LVTTL ;                               
# NET Arduino_33     LOC="P82"  | IOSTANDARD=LVTTL ;                              
# NET Arduino_35     LOC="P80"  | IOSTANDARD=LVTTL ;                              
# NET Arduino_37     LOC="P78"  | IOSTANDARD=LVTTL ;                            
# NET Arduino_39     LOC="P74"  | IOSTANDARD=LVTTL ;                             
# NET Arduino_41     LOC="P66"  | IOSTANDARD=LVTTL ;                            
# NET Arduino_43     LOC="P61"  | IOSTANDARD=LVTTL ;                             
# NET Arduino_45     LOC="P58"  | IOSTANDARD=LVTTL ;                               
# NET Arduino_47     LOC="P56"  | IOSTANDARD=LVTTL ;                              
# NET Arduino_49     LOC="P51"  | IOSTANDARD=LVTTL ;                             
# NET Arduino_51     LOC="P48"  | IOSTANDARD=LVTTL ;                           
# NET Arduino_53     LOC="P39"  | IOSTANDARD=LVTTL ;    
# 
# # SRAM
# 
# NET "sram_addr<0>" LOC = "P7" | IOSTANDARD=LVTTL | SLEW=FAST;
# NET "sram_addr<1>" LOC = "P8" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<2>" LOC = "P9" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<3>" LOC = "P10" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<4>" LOC = "P11" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<5>" LOC = "P5" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<6>" LOC = "P2" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<7>" LOC = "P1" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<8>" LOC = "P143" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<9>" LOC = "P142" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<10>" LOC = "P43" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<11>" LOC = "P41" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<12>" LOC = "P40" | IOSTANDARD=LVTTL | SLEW=FAST;
# NET "sram_addr<13>" LOC = "P35" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<14>" LOC = "P34" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<15>" LOC = "P27" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<16>" LOC = "P29" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<17>" LOC = "P33" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_addr<18>" LOC = "P32" | IOSTANDARD=LVTTL | SLEW=FAST ;
# #NET "sram_addr<19>" LOC = "P44" | IOSTANDARD=LVTTL | SLEW=FAST ;
# #NET "sram_addr<20>" LOC = "P30" | IOSTANDARD=LVTTL | SLEW=FAST ;
# 
# # Data lines
# NET "sram_data<0>" LOC = "P14" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<1>" LOC = "P15" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<2>" LOC = "P16" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<3>" LOC = "P17" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<4>" LOC = "P21" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<5>" LOC = "P22" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<6>" LOC = "P23" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_data<7>" LOC = "P24" | IOSTANDARD=LVTTL | SLEW=FAST ;
# 
# # Control lines
# NET "sram_ce" LOC = "P12" | IOSTANDARD=LVTTL | SLEW=FAST;
# NET "sram_we" LOC = "P6" | IOSTANDARD=LVTTL | SLEW=FAST ;
# NET "sram_oe" LOC = "P26" | IOSTANDARD=LVTTL | SLEW=FAST;                               
# 
# NET SPI_CS      LOC="P38"   | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;          # FLASH_CS   OK
# NET SPI_SCK     LOC="P70"  | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;          # FLASH_CK   OK
# NET SPI_MOSI    LOC="P64"  | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;          # FLASH_SI   OK
# NET SPI_MISO    LOC="P65"  | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=FAST;		 # FLASH_SO   OK
# 
# #Dragon MPSSE
# NET BD0_MPSSE_TCK LOC="P46" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET BD1_MPSSE_TDI LOC="P141" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET BD2_MPSSE_TDO LOC="P140" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET BD3_MPSSE_TMS LOC="P138" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET BD4_MPSSE_DTR LOC="P137" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# 
# #Arduino JTAG
# NET ARD_JTAG_TDI LOC="P88" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_JTAG_TDO LOC="P85" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_JTAG_TMS LOC="P83" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_JTAG_TCK LOC="P81" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# 
# #Arduino SPI
# NET ARD_SPI_MISO LOC="P133" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_SPI_MOSI LOC="P132" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_SPI_SCLK LOC="P134" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# 
# #Dragon SPI
# NET DRAGON_SPI_GND 	LOC="P78" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_SPI_RESET LOC="P79" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# #NET DRAGON_SPI_RESET LOC="P79" | IOSTANDARD=LVTTL | DRIVE=8 | PULLUP | SLEW=SLOW;
# NET DRAGON_SPI_MOSI	LOC="P74" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_SPI_SCK	LOC="P75" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_SPI_VTG	LOC="P66" | IOSTANDARD=LVTTL | DRIVE=24 | SLEW=SLOW;
# NET DRAGON_SPI_MISO	LOC="P67" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# 
# #Dragon JTAG
# NET DRAGON_JTAG_TCK 		LOC="P47" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_JTAG_GND 		LOC="P39" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_JTAG_TDO		LOC="P50" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_JTAG_VTG		LOC="P48" | IOSTANDARD=LVTTL | DRIVE=24 | SLEW=SLOW;
# NET DRAGON_JTAG_TMS 		LOC="P55" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_JTAG_RESET 	LOC="P51" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# #NET DRAGON_JTAG_RESET 	LOC="P51" | IOSTANDARD=LVTTL | DRIVE=8 | PULLUP | SLEW=SLOW;
# NET DRAGON_JTAG_TDI 		LOC="P59" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET DRAGON_JTAG_GND2		LOC="P58" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# 
# #Dragon Misc
NET DUO_SW1		LOC="P104" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;
# NET ARD_RESET 	LOC="P139" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW; # ARD_RESET
NET DUO_LED					LOC="P134" | IOSTANDARD=LVTTL | DRIVE=8 | SLEW=SLOW;