Skip to content

Commit b5c1151

Browse files
committedMay 26, 2017
Updated xc2c32a bitstream notes
1 parent 7c3f981 commit b5c1151

File tree

1 file changed

+47
-41
lines changed

1 file changed

+47
-41
lines changed
 

‎doc/coolrunner/xc2c32a-notes.txt

+47-41
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ PLA OR
117117
56 rows, 16 bits per row
118118
Each column configures inputs to a 16-input OR gate. 0 selects the signal, 1 selects a constant zero.
119119
Each row corresponds to one product term.
120+
(note, leftmost bit of the row is the lowest fuse number but the MSB of the 27-bit word)
120121

121122
Bit ordering for columns:
122123
0 Macrocell 15
@@ -135,7 +136,7 @@ Bit ordering for rows
135136
Macrocells
136137
-------------------------
137138
432 bits starting at fuse # 5696 (FB0), 11824 (FB2)
138-
16 rows, 27 bits per row
139+
16 rows, 27 bits per row. (note, leftmost bit of the row is the lowest fuse number but the MSB of the 27-bit word)
139140
26 Selects input to the "11" clock source mux
140141
0 = Product Term Clock
141142
1 = Control Term Clock
@@ -161,19 +162,22 @@ Macrocells
161162
01 = latch
162163
10 = T flipflop
163164
11 = D flipflop with clock enable
164-
15:14 Input mux of some sort
165-
00 = IBUF driving ZIA or flipflop direct path
166-
11 = unused pin
167-
Other values unknown
168-
13:12 "FB val" - specifies output from macrocell to the ZIA
169-
00 = unknown (not observed)
170-
01 = unknown (not observed)
171-
10 = flipflop feeding into ZIA
172-
11 = ZIA output not used
165+
15 Doesn't seem to do anything. Probably related to input buffer.
166+
0 Input buffer used
167+
1 Input buffer not used. Seems to not disable the IBUF -> macrocell FF fast path (bit 11).
168+
14 Enable input pad -> ZIA buffer
169+
0 ZIA driver enabled
170+
1 ZIA driver disabled (constant zero)
171+
13 Specifies source of macrocell -> ZIA feedback
172+
0 Macrocell XOR gate
173+
1 Macrocell flipflop
174+
12 Enables macrocell -> ZIA driver
175+
0 Macrocell drives ZIA
176+
1 ZIA driver disabled (reads as constant zero)
173177
11 Selects input to the flipflop
174178
0 = input buffer
175179
1 = XOR gate from PLA
176-
10 Schmitt trigger enable
180+
10 Input buffer Schmitt trigger enable
177181
0 = normal
178182
1 = Schmitt trigger
179183
9:8 XOR gate input mux
@@ -194,7 +198,7 @@ Macrocells
194198
0110 Tri-state output (GTS3)
195199
0111 Unknown, not yet seen
196200
1000 Tri-state output (CTE)
197-
1001 Unknown, not yet seen
201+
1001 Unknown, not yet seen. Experimentally, behaves the same as 1000
198202
1010 Tri-state output (GTS2)
199203
1011 Unknown, not yet seen
200204
1100 Tri-state output (GTS0)
@@ -223,23 +227,26 @@ Global clock mux
223227

224228
Global set/reset mux
225229
-------------------------
226-
2 bits starting at fuse # 12259
227-
1 GSR buffer input (1 = no invert, 0 = invert)
228-
0 GSR buffer enable (1 = active, 0 = unused)
230+
Fuse #12259 Global set/reset polarity
231+
1 active high
232+
0 active low
233+
Fuse #12260 Global set/reset buffer enable
234+
1 GSR enabled
235+
0 GSR disabled
229236

230237
Global OE mux
231238
-------------------------
232-
8 bits starting at fuse # 12261
233-
234239
Specifies state of the GTS pins
235-
7 GTS0 invert (0 = used as T, 1 = used as !T)
236-
6 GTS0 buffer enable
237-
5 GTS1 invert
238-
4 GTS1 buffer enable
239-
3 GTS2 invert
240-
2 GTS2 buffer enable
241-
1 GTS3 invert
242-
0 GTS3 buffer enable
240+
Fuse #12261 GTS0 invert
241+
0 = used as T
242+
1 = used as !T
243+
Fuse #12262 GTS0 buffer enable
244+
Fuse #12263 GTS1 invert
245+
Fuse #12264 GTS1 buffer enable
246+
Fuse #12265 GTS2 invert
247+
Fuse #12266 GTS2 buffer enable
248+
Fuse #12267 GTS3 invert
249+
Fuse #12268 GTS3 buffer enable
243250

244251
Global termination mode
245252
-------------------------
@@ -252,28 +259,27 @@ Legacy I/O standard config (for XC2C32A bitstream compatibility)
252259
2 bits starting at fuse # 12270
253260
1 Output voltage
254261
0 Input voltage
262+
255263
Both are always 1 in XC2C32A bitstreams. Seems like they're probably ORed with bank I/O config?
256264

257-
Dedicated input mode
265+
Dedicated input configuration
258266
-------------------------
259-
2 bits starting at fuse # 12272
260-
I/O configuration for the global input
261-
1 Schmitt trigger enable
262-
0 Termination mode
263-
0 Floating
264-
1 Terminate
267+
Fuse #12272 Schmitt trigger enable for dedicated input
268+
Fuse #12273 Termination mode for dedicated input
269+
0 Floating
270+
1 Terminate
265271

266272
Per-bank I/O standard config
267273
-------------------------
268-
4 bits starting at fuse # 12274
269-
3 Bank 0 input voltage
270-
2 Bank 0 output voltage
271-
1 Bank 1 input voltage
272-
0 Bank 1 output voltage
273-
274-
Meaning of each bit:
275-
0 High voltage (LVTTL, LVCMOS33, or LVCMOS25)
276-
1 Low voltage (LVCMOS18 or LVCMOS15)
274+
Fuse #12274 Bank 0 input voltage
275+
0 High voltage (LVTTL, LVCMOS33, or LVCMOS25)
276+
1 Low voltage (LVCMOS18 or LVCMOS15)
277+
Fuse #12275 Bank 0 output voltage
278+
same as above
279+
Fuse #12276 Bank 1 input voltage
280+
same as above
281+
Fuse #12277 Bank 1 output voltage
282+
same as above
277283

278284
It's unclear why there's separate values for input and output; so far it appears they always have the same value.
279285

0 commit comments

Comments
 (0)
Please sign in to comment.