XILINX XC3000 User Manual

R
查询XC3000供应商
0
XC3000 Series Field Programmable Gate Arrays
(XC3000A/L, XC3100A/L)
November 9, 1998 (Version 3.1)
07*
Features
• Complete line of four related Field Programmable Gate Array product families
- XC3000A, XC3000L, XC3100A, XC3100L
• Ideal for a wide range of custom VLSI design tasks
- Replaces TTL, MSI, and other PLD logic
package
- Avoids the NRE, t ime del ay, and ris k of conv ent ional
masked gate arrays
• High-performance CMOS static memory technology
- Guaranteed toggle rates of 70 to 370 MHz, logic
delays from 7 to 1.5 ns
- System clock speeds over 85 MHz
- Low quiescent and active power consumption
• Flexible FPGA arch ite ctu re
- Compatible arrays ranging from 1,000 to 7,500 gate
complexity
- Extensive register, combinatorial, and I/O
capabilities
- High fan-out signal distribution, low-skew clock nets
- Internal 3-state bus capabilities
- TTL or CMOS input th resholds
- On-chip crystal oscillator amplifier
• Unlimited reprogrammability
- Easy design iteration
- In-system logic changes
• Extensive packaging options
- Over 20 different packages
- Plastic and ceramic surface-mount and pin-grid-
array packages
- Thin and Very Thin Quad Flat Pack (TQFP and
VQFP) options
• Ready for volume production
- Standard, off-the-shelf product availability
- 100% factory pre-tested devices
- Excellent reliability record
Product Description
• Complete Development System
- Schematic capture, automatic place and route
- Logic and timing simulation
- Interactive design editor for design optimization
- Timing calculator
- Interfaces to popular design environments like Viewlogic, Cadence, Mentor Graphics, and others
Additional XC3100A Features
• Ultra-high-speed FPGA family with six memb e rs
- 50-85 MHz system clock rates
- 190 to 370 MHz guaranteed flip-flop toggle rates
- 1.55 to 4.1 ns logic delays
• High-end addit ional family member in the 22 X 22 CLB array-size XC3195A device
• 8 mA output sink cu rr en t an d 8 mA so ur ce cur re nt
• Maximum power-down and quiescent current is 5 mA
• 100% architecture and pin-out compatible with other XC3000 families
• Software and bitstream compatibl e with the XC3000, XC3000A, and XC3000L families
XC3100A combines the features of the XC3000A and XC3100 families:
• Additional interconnect resources for TBUFs and CE inputs
• Error checking of the configura tion bitstream
• Soft startup holds all outputs slew-rate limited during initial power-up
• More advanced CMOS process
Low-Voltage Ve r sions Available
• Low-voltage devices function at 3.0 - 3.6 V
• XC3000L - Low-voltage versions of XC3000A devices
• XC3100L - Low-voltage versions of XC3100A devices
7
Device
XC3020A, 3020L, 3120A 1,500 1,000 - 1,500 64 8 x 8 64 256 16 14,779 XC3030A, 3030L, 3130A 2,000 1,500 - 2,000 100 10 x 10 80 360 20 22,176 XC3042A, 3042L, 3142A, 3142L 3,000 2,000 - 3,000 144 12 x 12 96 480 24 30,784 XC3064A, 3064L, 3164A 4,500 3,500 - 4,500 224 16 x 14 120 688 32 46,064 XC3090A, 3090L, 3190A, 3190L 6,000 5,000 - 6,000 320 16 x 20 144 928 40 64,160 XC3195A 7,500 6,500 - 7,500 484 22 x 22 176 1,320 44 94,984
Max Logic
Gates
Typical Gate
Range
CLBs Array
User I/Os
Max
Flip-Flops
Horizontal Longlines
Configuration
Data Bits
November 9, 1998 (Version 3.1) 7-3
XC3000 Series Field Programmable Gate Arrays
R
Introduction
XC3000-Series Field Programmable Gate Arrays (FPGAs) provide a group of high-performance, high-density, digital integrated circuits. Their regular, extendable, flexible, user-programmable array architecture is composed of a configuration program store plus three types of config­urable elements: a pe rimeter of I/O Blocks (IO Bs), a core array of Configurable Logic Bocks (CLBs) and resources for interconnection. The general structure of an FPGA is shown in Figure 2. The development system provides schematic capture and auto place-and-route for design entry. Logic and timing simulation, and in-circuit emulation are availabl e as desig n verifi cation alternat ives. Th e design editor is used for interactive design optimization, and to compile the data pattern that represents the configuration program.
The FPGA user logic functions and interconnections are determined by the configuration program data stored in internal static memory cells. The program can be loaded in any of several modes to accommodate various system requirements. The program data resides externally in an EEPROM, EPROM or ROM on the application circuit board, or on a flop py d isk o r har d di sk. O n-ch ip in itia liza tion logic provides for optional automatic loading of program data at power-up. The companion XC17XX Serial Configu­ration PROMs provide a very simple serial configuration program storage in a one-time programmable package.
The XC3000 Field Prog ramm able Ga te Array familie s pro­vide a variety of logic capacities, package styles, tempera­ture ranges and speed grades.
XC3000 Series Overview
There are now four distinct family groupings within the XC3000 Series of FPGA devices:
• XC3000A Family
• XC3000L Family
• XC3100A Family
• XC3100L Family All four families share a common architecture, develop-
ment software, design and programming methodology, and also common package pin-outs. An extensive Product Description covers these co mmon aspects.
Detailed parametric information for the XC3000A, XC3000L, XC3100A, and XC3100L product families is then provided. (The XC300 0 and XC3100 families are not rec­ommended for new designs.)
Here is a simple overview of those XC3000 products cur­rently emphasized:
XC3000A Family — The XC3000A is an enhanced version of the basic XC3000 family, featuring additional interconnect resources and other user-friendly enhancements.
XC3000L Family — The XC3000L is identical in architecture and features to the XC3000A family, but operates at a nom inal supply volta ge of 3.3 V. The XC3000L is the right solution for battery-operated and low-power applications.
XC3100A Family — The XC3100A is a performance-optimized relati ve of the XC3000A fami ly. While both families are bitstream and footprint compatible, the XC 3100A fa mily ex tends t oggle rates to 370 MHz and in-system performance to over 80 MHz. The XC3100A family also offers one additional array size, the XC3195A.
XC3100L Family — The XC3100L is identical in architectures and features to the XC3100A family, but operates at a nom inal supply voltage of 3.3V.
Figure 1 illustrates the relationships betw een the families.
Compared to the original XC3000 family, XC3000A offers additional fu nctiona lity and increas ed speed. The XC3000 L family offers the same additional functionality, but reduced speed due to its lower supply voltage of 3.3 V. The XC3100A family offers substantially higher speed and higher density with the XC3195A.
New XC3000 Series Compared to Original XC3000 Family
For readers already familiar with the original XC3000 family of FPGAs, the major new features in the XC3000A, XC3000L, XC3100A, and XC3100L families are listed in this section.
All of these new families are upward-compatible extensions of the original XC3000 FPGA architecture. Any bitstream used to configure an XC 30 00 d evic e will co nfig ur e th e co r ­responding XC3000A, XC3000L, XC3100A, or XC3100L device exactly the same way.
The XC3100A and XC3100L FPGA architectures are upward-compatible extensions of the XC3000A and XC3000L architec tures . Any bits tream used to conf igure an XC3000A or XC3000L device will configure the corre­sponding XC3100A or XC3100L device exactly the same way.
7-4 November 9, 1998 (Version 3.1)
R
Improvements in the XC3000A and XC3000L Families
The XC3000A and XC3000L families offer the following enhancements over the popular XC3000 family:
The XC3000A and XC3000L families have additional inter­connect resources to drive the I-inputs of TBUFs driving horizontal Longlines. The CLB Clock Enable input can be driven from a secon d vert ical Lon glin e. These two ad dition s result in more efficient and faster designs when horizontal Longlines are used for data bussing.
During configuration, the XC3000A and XC3000L devices check the bit-stream format for stop bits in the appropriate positions. Any error terminates the configuration and pulls INIT Low.
When the configuration process is finished and the device starts up in user mode , the first ac tivation of the outputs is automatically slew-rate limited. This feature, called Soft Startup, avoids the potential ground bounce when all out-puts are turn ed on simultaneously. After start-up, the slew rate of the indi vidual outputs i s, as in the XC 3000 fam­ily, determined by the individu al configuration option.
XC3000 Series Field Programmable Gate Arrays
Functionality
XC3100A
XC3100L
XC3100
XC3000A
XC3000L
Speed
(XC3195A)
Gate Capacity
X7068
Figure 1: XC3000 FPGA Families
Improvements in the XC3100A and XC3100L Families
Based on a more advanced CMOS process, the XC3100A and XC3100L families are architecturally- identical, perfor­mance-optimized relatives of the XC3000A and XC3000L families. While all families are footprint compatible, the XC3100A family extends achievable system performance beyond 85 MHz.
7
November 9, 1998 (Version 3.1) 7-5
XC3000 Series Field Programmable Gate Arrays
Detailed Functional Description
The perimeter of configurable Input/Output Blocks (IOBs) provides a programmable interface between the internal logic array and the device package pins. The array of Con­figurable Log ic Bloc ks (CLBs ) perfo rms user- specif ied log ic functions. The interconnect resources are programmed to form networks, carrying logic signals among blocks, analo­gous to printed circuit board traces connecting MSI/SSI packages.
The block logic functions are implemented by programmed look-up table s. Fu nc t iona l op tio ns ar e imp l eme nted b y pro ­gram-controlled multiplexers. Interconnecting networks between blocks are implemented with metal segments joined by program-controlled pass transistors.
These FPGA functions are established by a configuration program which is loaded into an internal, distributed array of configuration memory cells. The configuration program is loaded into the device at power-up and may be reloaded on command. Th e FPGA includes logic and control signals to implement automatic or passive configuration. Program
R
data may be either bit serial or byte parallel. The develop­ment system generates the configuration program bit­stream used to configure the device. The memory loading process is independent of the user logic functions.
Configuration Memory
The static mem ory cell used for the config uration m emory in the Field Programmable Gate Array has been designed specifically for high reliability and n oise immunit y. Integrity of the device con fi g urat i on me mor y bas ed o n th i s des i gn is assured even under adverse conditions. As shown in
Figure 3, the basic memory cell consists of two CMOS
inverters pl us a p ass tr ansi stor used for w riti ng a nd rea ding cell data. The cell is only written during configu ration and only read during readback. During normal operation, the cell provides continuous control and the pass transistor is off and does not affect cell stability. This is quite different from the operation of conventional memory devices, in which the cell s are frequently re ad and rewritten.
DN
P11
TCL KIN
P12
P13
U61
I/O Blocks
P9 P8 P7 P6 P5 P4 P3 P2 GNDPWR
3-State Buffers With Access
to Horizontal Long Lines
Interconnect Area
BBBA
Configurable Logic
Blocks
Frame Pointer
Configuration Memory
ADACABAA
X3241
Figure 2: Field Programmable Gate Array Structure.
It consists of a perimeter of programmable I/O blocks, a core of config urable logic blocks and their interconnect resources. These are all controlled by the distributed array of configuration program memory cells.
7-6 November 9, 1998 (Version 3.1)
R
Figure 3: Static Configuration Memory Cell.
It is loaded with one bit of configuration program and con­trols one program selection in the Field Programmable Gate Array.
Q
Configuration Control
Read or
Q
Write
Data
X5382
The memory cell outpu ts Q and Q use groun d and VCC lev­els and provide continuous, direct control. The additional capacitive load together with the absence of address decoding and sen se amp lifiers provid e high st ability to the cell. Due to the structure of the configuration memory cells, they are not affected by extreme power-supply excursions or very high levels of alpha particle rad iation. In reliability
XC3000 Series Field Programmable Gate Arrays
testing, no soft errors have been observed even in the presence of very high doses of alpha radiation.
The method of loading the configuration data is selectable. Two methods use serial data, while three use byte-wide data. The intern al configu ration log ic utilizes framin g infor ­mation, embedded i n the p rogram d ata by the developme nt system, to direct memory-cell loading. The serial-data framing and length-count preamble provide programming compatibility for mixes of various FPGA device devices in a synchronous, serial, daisy-chain fashion.
I/O Block
Each user-conf igurabl e IOB show n in Figur e 4, prov ides an interface between the external package pin of the device and the internal user logic. Each IOB includes both regis­tered and dir ect in put paths. Each I OB pro vides a pr ogram­mable 3-state output buffer, which may be driven by a registered or direct output signal. Configuration options allow each IOB an inversion, a controlled slew rate and a high impedance pull-up. Each input circuit also provides input clamping diodes to provide electrostatic protection, and circuits to inhibit latch-up produced by input currents.
Vcc
I/O PAD
CK1
CK2
X3029
(OUTPUT ENABLE)
3- STATE
DIRECT IN
REGISTERED IN
OUT
PROGRAM CONTROLLED MULTIPLEXER
T
O
I
Q
OUT
INVERT
PROGRAM-CONTROLLED MEMORY CELLS
3-STATE
INVERT
FLIP
FLOP
R
FLIP
FLOP
or
LATCH
R
IKOK
=
PROGRAMMABLE INTERCONNECTION POINT or PIP
OUTPUT
SELECT
QD
DQ
TTL or CMOS INPUT
THRESHOLD
SLEW RATE
OUTPUT BUFFER
PASSIVE PULL UP
(GLOBAL RESET)
Figure 4: Input/Output Block.
Each IOB includes input and output storage elements and I/O options selected by configuration memory cells. A choice of two clocks is available on each die edge. The polarity of each clock line (not each flip-flop or latch) is programmable. A clock line that triggers the fl ip-flop on the rising edge is an active Low Latch Enable (Latch transparent) signal and vic e versa. Passive pull-up can only be enabled on inputs, not on outputs. All user inputs are programmed for TTL or CMOS thresholds.
7
November 9, 1998 (Version 3.1) 7-7
XC3000 Series Field Programmable Gate Arrays
R
The input-buffer portion of each IOB provides threshold detection to translate external signals applied to the pack­age pin to internal logic levels. The global input-buffer threshold of th e IOBs can be programme d to be compa tible with either TTL or CMOS lev els. The buffer ed input sign al drives the data input of a storage element, which may be configured as either a flip-flop or a latch. The clocking polarity (rising/falling edge-triggered flip-flop, High/Low transparent latch) is programmable for each of the two clock lines on each of the four die edges. Note that a clock line driving a
rising
edge-triggered f l ip- fl op mak es a ny l a tch
driven by the same line on the same edge Low-level trans-
falling
edge,
High
parent and vice ve rsa (
transparent). All Xilinx primitives in the supported schematic-entry pack­ages, however, are positive edge-triggered flip-flops or High transparent latches. When one clock line m ust drive flip-flops as well as latch es, it is nec essary t o compensa te for the difference in clocking polarities with an additional inverter either in the flip-flop clock input or the latch-enable input. I/O storage elements are reset during configuration or by the active-Low chip RESET
input. Both direct inp ut (from IOB pi n I) a nd regi stered input (from IOB p in Q) s ig­nals are available for interconnect.
For reliable operation, inputs should have transition times of less than 100 ns and should not be left floati ng. Floating CMOS input-pin circuits might be at threshold and produce oscillations. This can p roduce a dditional pow er dissip ation and system noise. A typical hysteresis of about 300 mV reduces sensitivity to input noise. Each user IOB includes a programmable high-impedance pul l-up resistor, which may be selected by the program to prov ide a cons tant High for otherwise undriven package pins. Although the Field Pro­grammable Gate Array provides circuitry to provide input protection for electrostatic discharge, normal CMOS han­dling precautions should be observed.
Flip-flop loop delay s for the IOB and logic-bloc k flip-flops are short, providing good performance under asynchro­nous clock and dat a conditi ons. Shor t loop del ays mini mize the probability of a metastable condition that can result from assertion of the clock during data transitions. Because of the short-loop -de lay charac terist ic in th e Fie ld Pr ogr am­mable Gate Ar ray, the IOB flip-flops can be used to syn­chronize external signals applied to the device. Once synchronized in the IOB, the signals can be used internal ly without further consideration of their clock relative timing, except as it applies to the internal logic and routing-path delays.
IOB output buffers provide CMOS-compatible 4-mA source-or-sink drive for high fan-out CMOS or TTL- com­patible signal levels (8 mA in the XC3100A family ). The net­work driving IOB pin O becomes the registered or direct data source for the output buffer. The 3-state control signal (IOB) pin T can control output activity. An open-drain output may be obtained by using the same signal for driving the
output and 3-state signal nets so that the buffer output is enabled only for a Low.
Configuration program bits for each IOB control features such as optional output register, logic signal inversion, and 3-state and slew-rate control of the output.
The program-controlled memory cells of Figure 4 control the following options.
• Logic inversion of the output is controlled by one configuration program bit per IOB.
• Logic 3-state control of each IOB output buffer is determined by the states of configuration program bits that turn the buffer on, or off, or select the output buffer 3-state cont rol interconnection (IOB pin T). When this IOB output con tr ol s i gn al i s Hi g h, a l og ic o ne, t he buffer is disabled and the package pin is high impedance. When this IOB outp ut contr ol signa l is Low, a logic ze ro, the buffer is enabled and the package pin is active. Inversion of the buffer 3-state control-logic sense (output enable) is controlled by an additional configuration program bit.
• Direct or registered output is selectable for each IOB. The register uses a posit ive-e dge, clo cked f lip- flo p. The clock source may be supplied (IOB pin OK) by either of two metal lines available along each die edge. Each of these lines is driven by an invertible buffer.
• Increased output transition speed can be selecte d to improve cri tical timing. Slower transiti ons reduce capacitive-load peak currents of non-criti cal outputs and minimize system noise.
• An internal high-impedance pull-up resistor (active by default) prevents unconnected inputs from floating.
Unlike the original XC3000 series, the XC3000A, XC3000L, XC3100A, and XC3100L families include the Soft Startup feature. When the configuration process is fin­ished and the device starts up in user mode, the first activa­tion of the o utputs is automa tically slew-rate lim ited. This feature avoids potential ground bounce when all outputs are turned on si multaneously. After start-up, the sle w rate of the individual outputs is determined by the individual configuration option.
Summary of I/O Options
• Inputs
-Direct
- Flip-flop/latch
- CMOS/TTL threshold (chip inputs)
- Pull-up resistor/open circuit
• Outputs
- Direct/registered
- Inverted/not
- 3-state/on/off
- Full speed/slew limited
- 3-state/output enable (inverse)
7-8 November 9, 1998 (Version 3.1)
R
XC3000 Series Field Programmable Gate Arrays
Configurable Logic Block
The array of CLBs provides the functional elements from
which the user’s logic is constructed. The logic blocks are arranged in a matrix within the perimeter of IOBs. For example, the XC3020A has 64 such blocks arranged in 8 rows and 8 colu mns. The deve lopment system is used to compile the confi guration data which is to be loaded into the internal configuration memory to define the operation and interconnection of each block. User definition of CLBs and their interconnecting networks may be done by auto­matic transla tion from a sche matic-c apture logi c diagram or optionally by installing library or user macros.
Each CLB has a combina torial logic se ction, two flip -flops, and an internal control section. See Figure 5. There are: five logic inputs (A, B, C, D and E); a common clock input (K); an asynchronous direct RESET input (RD); and an enable clock (EC). All may be driven from the interconnect
DATA IN
LOGIC
VARIABLES
DI
QX
A B C D E
COMBINATORIAL
FUNCTION
QY
F
G
resources adjacent to the blocks. Each CLB also has two outputs (X and Y) which may drive i nterconnect networks.
Data input for either flip -flop within a CLB is su pplied from the function F or G outp uts of th e combin atorial logic, or the block input, DI. Both flip-flops in each CLB share the asyn­chronous RD which, when enabled and High, is dominant over clocked inputs. All flip-flops are reset by the active-Low chip input, RESET
, or during the configuration process. The flip-flops share the enable clock (EC) which, when Low, recirculates the flip-flops’ present states and inhibits response to the data-in or combinatorial function inputs on a CLB. The user may enable these control inputs and select their sources. The user may also select the clock net input (K), as well as its active sense within each CLB. This programmable inversion eliminates the need to route both phases of a clock signal throughout the device.
0
F DIN G
F DIN G
MUX
1
0
MUX
1
Q
D
RD
QD
QX
F
G
QY
X
CLB OUTPUTS
Y
7
ENABLE CLOCK
CLOCK
DIRECT
RESET
EC
1 (ENABLE)
K
RD
0 (INHIBIT)
(GLOBAL RESET)
RD
X3032
Figure 5: Configurable Logic Block.
Each CLB includes a co m bi nato ria l logic section, two flip-flo ps an d a p rogr am me m o ry co nt ro lled mu ltip lex er se lectio n of function. It has the following:
- five logic variable inputs A, B, C, D, and E
- a direct data in DI
- an enable clock E C
- a clock (invertible) K
- an asynchronous direct RESET RD
- two outputs X and Y
November 9, 1998 (Version 3.1) 7-9
XC3000 Series Field Programmable Gate Arrays
Flexible routing allows use of common or individual CLB clocking.
The combinatorial-logic portion of the CLB uses a 32 by 1 look-up table to implement Boolean functions. Variables selected from the five logic inputs and two internal block flip-flops are used as ta ble address inputs. The combinato­rial propagation delay through the network is independent of the logic funct ion generated and is spike fre e for single input variable changes. This technique can generate two independent logic functions of up to four variables each as shown in Figure 6a, or a single function of five variab les as shown in Figure 6b , or some function s of seven variab les as shown in Figu re 6c. Figure 7 shows a modulo-8 binary counter with paralle l en abl e. It us es one CL B of ea ch typ e. The partial functio ns of six or seven variables are imple­mented using the input variable (E) to dynamically select between two functions of four different variables. For the two functions of four variables each, the independent results (F and G) may be used as data inputs to either flip-flop or either logic block output. For the single function of five variables and merged functions of six or seven vari­ables, the F and G out put s are ide nti cal. Symmetr y of t he F and G functions and the flip-flops allows the interchange of CLB outputs to optimiz e routing eff icienc ies of th e networ ks interconnecting the CLBs and IOBs.
Programmable Interconnect
Programmable-interconnection resources in the Field Pro­grammable Gate Array provide routing paths to connect inputs and outputs of the IOBs and CLBs into logic net­works. Inter connect ions between b locks are com posed o f a two-layer grid of metal segments. Specially designed pass transistors, each controlled by a configuration bit, form pro­grammable interconnect points (PIPs) and switching matri­ces used to impl ement the n ecess ary connec tions be tween selected metal segments and block pins. Figure 8 is an example of a routed ne t. The develop ment system pr ovides automatic routing of these interconnections. Interactive routing is al so available for d esign optimization. The inputs of the CLBs or IOBs are multiplexers which can be pro­grammed to select an input network from the adjacent interconnect segments.
block inputs are unidirectional, as are block outputs, they are usabl e only for block input connect ion and n ot for routing.
Figure 9 illustrates routing access to logic block input variables, control inputs and block outputs. Three types of met al reso urce s ar e pr ovide d to acco mmo­date various network interconnect requirements.
• General Purpose Interconnect
• Direct Connection
• Longlines (multiplexed busses and wide AND gates)
Since the switch connections to
A B
QX
QY
C D
E
A B
QX
QY
C D
E
A B
QX
QY
C D E
A B
QX
QY
C D
A B
QX
QY
C D
E
Any Function
of Up to 4 Variables
Any Function
of Up to 4 Variables
Any Function
of 5 Variables
Any Function
of Up to 4 Variables
Any Function
of Up to 4 Variables
F
G
5a
F
G
5b
F
M U
X
G
FGM
5c
Mode
X5442
Figure 6: Combinationa l Logic Options 6a. Combinatorial Logic Option FG generates two func-
tions of four variables each. One variable, A, must be common to bot h func t i ons. Th e se cond a nd t hir d v ar i ab le can be any choice of B, C, QX and QY. The fourth vari­able can be any choice of D or E. 6b. Combinatorial Logic Option F generates any function of five vari ables : A, D, E and two choi ces o ut of B, C, QX, QY. 6c. Combinatorial Logic Option FGM allows variable E to select betwee n tw o fun ction s of four vari ables : Bot h hav e common inputs A and D and any choice out of B, C, QX and QY for the remaining two variables. Option 3 can then implemen t som e f unc t ion s o f s i x or se ve n v ar i able s.
R
7-10 November 9, 1998 (Version 3.1)
R
Figure 7: Counter.
The modulo-8 binary counter with parallel enable and clock enable uses one combinatorial logic block of each option.
XC3000 Series Field Programmable Gate Arrays
Count Enable
Parallel Enable
Clock
Dual Function of 4 Variables
D0
D1
Function of 5 Variables
D2
Function of 6 Variables
D Q
D Q
D Q
Terminal Count
Q0
FG Mode
Q1
F Mode
Q2
FGM Mode
X5383
General Purpose Interconnect
General purpo se int er c onn ect, a s s ho wn i n Fig ur e 10 , con ­sists of a grid of five horizontal and five vertical metal seg­ments located between the rows and columns of logic and IOBs. Each segment is the height or width of a logic block. Switching matrices join the ends of these segments and allow progra mmed inte rconnect ions b etween t he meta l grid segments of ad joining ro ws and co lumns. T he swit ches of an unprogrammed device are all non-conducting. The con­nections through the switch matrix may be established by the automatic routing or by selecting the desired pairs of matrix pins to be connected or disconnected. The legiti­mate switching matrix combinations for each pin are indi­cated in Figure 11.
Special buffers within th e general intercon nect areas pro­vide periodic signal isolation and restoration for improved performance of lengthy nets. The interconnect buffers are available to pro pagat e s ign al s in ei ther di re cti o n on a giv en general interconnect segment. These bidirectional (bidi) buffers a re fou nd adj acent to the switc hing ma tri ces, ab ove
Figure 8: A Design Editor vi ew of rout ing reso urces used to form a typical interconnection network from CLB GA.
and to the right. The other PIPs adjacent to the matrices are accessed to or from Longlines. The development sys­tem automatically defines the buffer direction based on the location of the inte rconnection networ k source. The delay calculator of the development system automatically calcu­lates and dis pla ys the blo ck, i nte rcon nect a nd buf f er d ela ys for any paths selected. Generation of the simulation netlist with a worst-case delay model is provided.
Direct Interconnect
Direct interconn ect, sh own in Figure 12, provides the most efficient implementation of networks between adjacent CLBs or I/O Blocks. Signals routed from block to block using the dir ect in terc onne ct ex hibit mini mum int erconn ect propagation and use no general interconnect resources. For each CLB, the X output may be connected directly to the B input of the CLB immediately to its right and to the C input of th e CLB to its l eft. The Y out put ca n use di rect i nter­connect to driv e the D input of t he bloc k immed iat ely abo ve and the A input of the block below. Direct interconnect should be used to maxi mize the speed of high-perf ormance portions of logic. Where logic blocks are adjacent to IOBs, direct connect is provided alternately to the IOB inputs (I) and outputs (O) on all four edges of the die. The right edge provides additional direct connects from CLB outputs to adjacent IOBs. Direc t interconnections of IOBs with CLBs are shown in Figure 13.
7
November 9, 1998 (Version 3.1) 7-11
XC3000 Series Field Programmable Gate Arrays
R
Figure 9: Design Edito r Loca tio ns of i nte rconnec t ac cess , CLB c ont rol i nputs, log ic i nputs and outp uts. Th e dot patt ern represents th e available programmable interconnection points (PIPs).
Some of the interc onnect PIPs are directional.
7-12 November 9, 1998 (Version 3.1)
R
Figure 10: FPGA General-Purpo se Interconnect.
Composed of a grid of metal segments that may be inter­connected throug h switch matrices to form networks for CLB and IOB inputs and outputs.
Figure 1 1: Swi tch Ma trix Int erconne ctio n Opti ons for Each Pin.
Switch matrices on the edges are different.
XC3000 Series Field Programmable Gate Arrays
Figure 12: CLB X and Y Outputs.
The X and Y outputs of each CLB have single contact, direct access to inputs of adjacent CLBs
7
November 9, 1998 (Version 3.1) 7-13
XC3000 Series Field Programmable Gate Arrays
R
Global Buffer Direct Input
Global Buffer Inerconnect
* Unbonded IOBs (6 Places)
Figure 13: XC3020A Die-Edge IOBs. The XC3020A die-edge IOB s are provided with direct access to adjacent CLBs.
7-14 November 9, 1998 (Version 3.1)
Alternate Buffer Direct Input
R
XC3000 Series Field Programmable Gate Arrays
Longlines
The Longlines bypass the swi tch mat rices and are intend ed primarily for signals that must travel a long distance, or must have minimum skew among multiple destinations. Longlines, shown in Figure 14, run vertically and horizo n­tally the heig ht or width of the interco nnect area . Each inter ­connection column has three vertical Longlines, and each interconnection row has two horizontal Longlines. Two additional Longlines are located adjacent to the outer sets of switching matrices. In devices larger than the XC3020A and XC3120A FPGAs , two vertical Longlines in ea ch col-
umn are connectable half-length lines. On the XC3020A and XC3120A FPGAs, only the outer Longlines are con­nectable half-length lines.
Longlines can be dri ve n b y a l og ic blo ck or IOB o utpu t on a column-by-column bas is. This capability provides a com­mon low skew contro l or clock line within each colu mn of logic blocks. Interconnections of these Longlines are shown in Figure 15. Isolation buffers are provided at each input to a Longline and are enabled automatically by the development sy stem when a connection is made.
7
Figure 14: Horizontal and Vertical Longlines. These Longlines provide high fan-out, low-skew signal distribution in
each row and column. The global buffer in the upper left die corner drives a common line throughout the FPGA.
November 9, 1998 (Version 3.1) 7-15
XC3000 Series Field Programmable Gate Arrays
R
Figure 15: Programmable Interconnection of Longlines. T h is is provided at the edges of the routing area. Three-state b uf f er s al low t he use of ho riz on ta l Lo ng l ines t o fo rm on- chi p wir ed AND a nd mult ip le xe d b us es. The l eft t wo non-clock vertical Longlines per column (except XC3020A) and the outer perimeter Longlines may be programmed as connectable half-length lines.
VCC
Z
= DA • DB • DC • ... • DN
(LOW)
D
A
D
B
D
C
D
N
VCC
X3036
Figure 16: 3-State Buffers Implement a Wired-AND Function. When all the buffer 3-state lines are High, (high impedance), the pull-up resistor(s) provide the High output. The buffer inputs are dr iven by the control signals or a Low.
WEAK
KEEPER CIRCUIT
DAA•+=D
D
A
A
D
B
B
B•+DCC•+ DNNZ…+
B
D
C
C
D
N
N
X1741A
Figure 17: 3-State Buffers Implement a Multiplexer. The selection is ac complished by the buffer 3-state signal.
7-16 November 9, 1998 (Version 3.1)
R
XC3000 Series Field Programmable Gate Arrays
A buffer in the upper left corner of the FPGA chip drives a global net which is av ailable to all K inputs of logic bloc ks. Using the global buffer for a clock signal provides a skew-free, high fan-out, synchronized clock for use at any or all of the IOBs and CLBs. Configuration bits for the K input to each logic block can select this global line or another routing resource as the clock source for its flip-flops. This net may also be pr ogrammed to drive the die edge clock lines for IOB use. An enhanced speed, CMOS threshold, di rect acces s to thi s buffer is avail able at the s ec­ond pad from the top of the left die edg e.
A buffer in the lower right corner of the array drives a hori­zontal Longline that can drive programmed connections to a vertical Longline in each interconnection column. This alternate buffer also has low skew and high fan-out. The
network formed by this alternate buffer’s Longlines can be selected to drive th e K inputs of the CLBs. CMOS t hresh­old, high speed access to this buffer is available from the third pad from the bottom of the right die edge.
Internal Busses
A pair of 3- state buf fer s, lo cated a djacent to each CLB, per­mits logic to drive the horizontal Longlines. Logic operation
BIDIRECTIONAL
INTERCONNECT
BUFFERS
GG
GLOBAL NET
GH
of the 3-stat e buf fer c ontrols allows them t o implem ent wid e multiplexing functions. Any 3-state buffer input can be selected as drive for the horizontal long-line bus by apply­ing a Low logic level on its 3-state control line. See
Figure 16. The user is required to avoid contention which
can result from multiple driv ers with op posing logic levels. Control of the 3-state input by the same signal that drives the buffer input , cr eate s an open -drai n wi red-AN D func tio n. A logic High on both buffer inputs creates a high imped­ance, which rep res en t s n o co nten ti o n. A l ogic Lo w e nab les the buffer t o dr iv e t he Lon gl in e Lo w. See Fig ur e 17 . Pull-up resistors are available at each end of the Longline to pro­vide a High output when all connected buffers are non-con­ducting. This forms fast, wide gating functions. When data drives the inputs, and separate signals drive the 3-state control lines, these buffers form multiplexers (3-state bus­ses). In this case, care must be used to prevent contention through multiple active buffers of conflicting levels on a common line. Each horizontal Longline is also driven by a weak keeper circuit that prevents undefined floating levels by maintaining the p revio us log ic level wh en th e line is not driven by an active buffer or a pull-up resistor. Figure18 shows 3-state buffers, Longlines and pull-up resistors.
3 VERTICAL LONG LINES PER COLUMN
I/O CLOCKS
P48
HORIZONTAL LONG LINE PULL-UP RESISTOR
7
P47
BCL
HG
P40 P41 P42 P43 RST
HH
OS C
KIN
P46
.l
.lk
.q
.ck
.Q
D P G M
Figure 18: Design Editor.
An extra large view of possible interconnections in the lower right corner of the XC3020A.
HORIZONTAL LONG LINE
OSCILLATOR AMPLIFIER OUTPUT
DIRECTINPUT OF P47 TO AUXILIARY BUFFER
CRYSTAL OSCILLATOR BUFFER
3-STATE INPUT
3-STATE CONTROL
3-STATE BUFFER
ALTERNATE BUFFER
X1245
November 9, 1998 (Version 3.1) 7-17
XC3000 Series Field Programmable Gate Arrays
R
Crystal Oscillator
Figure 18 also sh ows th e l o ca tio n o f an in ter nal hi gh spe ed
inverting amplifier that may be used to implement an on-chip crystal o scillator. It is associated with the au xiliary buffer in the lower right corner of the die. When the oscilla­tor is configured and connected as a signal source, two special user IOBs are also configured to connect the oscil­lator amplifier w ith external crystal oscillator c omponents as shown in Figure 19. A divide by two option is available to assure symmetry. The oscillator circuit becomes active early in the configu ration process to allow the oscillat or to stabilize. Actual internal co nnection is delayed until com­pletion of configuration. In Figure 19 the feedback resistor R1, between the output and input, biases the amplifier at threshold. The in version of th e amplifier, together with the R-C networks and an AT-cut series resonant crystal, pro­duce the 360-degre e phase s hift of the Pierce os cillator. A
D Q
series resistor R2 may be included to add to the amplifier output impedance when needed for phase-shift control, crystal resistance m atching, or to limit the amplifier input swing to control clipping at large amplitudes. Excess feed­back voltage may be corrected by the ratio of C2/C1. The amplifier is designed to be used from 1 MHz to about one-half the specified CLB toggle frequency. Use at fre­quencies below 1 MHz may require individual characteriza­tion with res pect to a ser ies resistance . Crystal osc illators above 20 MHz general ly require a c rystal which oper ates in a third overtone mode, where the fundamental frequency must be suppressed by an inductor across C2, turning this parallel resonant circuit to double the fundamental crystal frequency, i.e., 2/3 of the desired third harmonic frequency network. When the oscillator inverter is not used, these IOBs and their package pins are available for general user I/O.
Internal External
Suggested Component Values
R1
0.5 – 1 M
R2
0 – 1 k (may be required for low frequency, phase
C1, C2
XTAL 1 (OUT)
XTAL 2 (IN)
shift and/or compensation level for crystal Q) 10 – 40 pF
Y1
1 – 20 MHz AT-cut parallel resonant
44 PIN
PLCC
30 26
68 PIN
PLCC
47 43
Alternate
Clock Buffer
84 PIN
PLCC
57 53
PGA
J11 L11
100 PIN
CQFP
67 61
XTAL2
(IN)
PQFP
82 76
Y1
C1 C2
132 PIN
PGA
160 PIN
PQFP P13 M13
82 76
XTAL1
164 PIN
CQFP
105
99
R1
R2
175 PIN
PGA
T14 P15
176 PIN
TQFP
91 85
208 PIN
PQFP
110 100
X7064
Figure 19: Crystal Oscillator Inverter. When acti vated, and by selecting an output network for its bu ffer, the cryst a l oscillator inverter uses two unconfigured package pins and external components to implement an oscillator. An optional divide-by-two mode is available to assure symmetry.
7-18 November 9, 1998 (Version 3.1)
R
XC3000 Series Field Programmable Gate Arrays
Configuration
Initialization Phase
An internal power-on-reset circuit is triggered when power is applied. Wh en V of the FPGA device begin to operate (nominally 2.5 to 3 V), the programmable I/O output buffers are 3-stated and a high-impedance pull-up resistor is provided for the user I/O pins. A time-out delay is initiated to allow the power supply voltage to stabiliz e. During th is time the powe r-down mode is inhibi t ed. Th e I n iti a li zati o n st at e t ime -o ut (abo ut 11 to 33 ms) is determined by a 14-bit counter driven by a self-generated internal timer. This nominal 1-MHz timer is subject to variations with process, temperature and power supply. As shown in Table 1, five configuration mode choices are available as determined by the input levels of three mode pins; M0, M1 an d M 2.
Table 1: Configuration Mode Choices
M0 M1 M2 CCLK Mode Data
0 0 0 output Master Bit Serial 0 0 1 output Master Byte Wide Addr. = 0000 up 010 reserved
0 1 1 output Mas te r Byte Wide Addr. = FFFF down 1 0 0 — reserved — 1 0 1 output Peripheral Byte Wide 1 1 0 — reserved — 1 1 1 i nput Slave Bit Serial
reaches the voltage at which portions
CC
In Master configuration modes, the device becomes the source of the Configuration Clock (CCLK). The beginning of configuration of devices using Peripheral or Slave modes must be delayed long enough for their initialization to be completed. An FPGA with mode lines selecting a Master configuration mode extends its initialization state using four times the delay (43 to 130 ms) to assure that all daisy-chained slave devices, which it may b e driving, will be ready even if the master is very fast, and the slave(s) very slow . Figu re 20 shows the state sequ ences. At th e end of Initialization, the device enters the Clear state where it clears the configuration memory. The active Low, open-drain initialization signal INIT
indicates when the Ini­tialization and Clear states are complete. The FPGA tests for the absence of an external active Low RESET
before it makes a final sample of the mode lines and enters the Con­figuration s tat e. An ext erna l wir ed- AND of one or more INIT pins can be used to co ntrol confi guration by the asserti on of the active-Low RESET
of a master mode device or to sig-
nal a processor that the FPG A s ar e no t yet initia lized . If a configuration has begun, a re-assertion of RESET
for a minimum of three in ternal timer cycles will be r ecognized and the FPGA will initiate an ab ort, returning to the Clear state to clear the partially loaded configuration memory words. The FPGA will then resample RESET
and the mode
lines before re-ent er in g the C on fig ur at ion stat e. During configuration, the XC3000A, XC3000L, XC3100A,
and XC3100L devices check the bit-stream format for stop bits in the appropr iate positions. Any erro r terminates the configuration and pulls INIT Low.
7
All User I/O Pins 3-Stated with High Impedance Pull-Up, HDC=High, LDC=Low
INIT Output = Low
Initialization
Power-On
Time Delay
Clear
Configuration
Memory
Power-On Delay is
14
2
Cycles for Non-Master Mode—11 to 33 ms
16
2
Cycles for Master Mode—43 to 130 ms
RESET
Active
Active RESET
Test
Mode Pins
No
Low on DONE/PROGRAM and RESET
Configuration
Program Mode
Clear Is ~ 200 Cycles for the XC3020A—130 to 400 µs ~ 250 Cycles for the XC3030A—165 to 500 µs ~ 290 Cycles for the XC3042A—195 to 580 µs ~ 330 Cycles for the XC3064A—220 to 660 µs ~ 375 Cycles for the XC3090A—250 to 750 µs
PWRDWN
Inactive
Start-Up
Figure 20: A State Diagram of the Configuration Process for Power-up and Reprogram.
Power Down
No HDC, LDC
or Pull-Up
PWRDWN
Active
Operational
Mode
Active RESET Operates on User Logic
X3399
November 9, 1998 (Version 3.1) 7-19
XC3000 Series Field Programmable Gate Arrays
R
A re-program is initiated.when a configured XC3000 series device senses a Hig h- to -L ow trans i t ion a nd s ub seque nt >6 µs Low level on the DONE/PROG
package p in, or, if this pin is externa ll y hel d p er man entl y Low, a High-to-Low tran­sition and subse quent >6 µs Low time on the RESET
pack-
age pin. The device returns to the Clear state where the configura-
tion memory is cleared and mode lines re-sampled, as for an aborted configuration. The complete configuration pro­gram is cleared and loaded during each configuration pro­gram cycle.
Length count cont ro l allo ws a syst em of mu ltip le Fi el d Pr o­grammable Gate Arrays, of assorted size s, to begin opera­tion in a synchronized fashion. The configuration program
11111111 0010 < 24-Bit Length Count > 1111
0 <Data Frame # 001 > 111 0 <Data Frame # 002 > 111 0 <Data Frame # 003 > 111 . . . . . . . . . 0 <Data Frame # 196 > 111 0 <Data Frame # 197 > 111
1111
*The LCA Device Require Four Dummy Bits Min; Software Generates Eight Dummy Bits
—Dummy Bits* —Preamble Code —Configuration Program Length —Dummy Bits (4 Bits Minimum)
For XC3120 197 Configuration Data Frames (Each Frame Consists of:
A Start Bit (0) A 71-Bit Data Field Three Stop Bits
Postamble Code (4 Bits Minimum)
generated by the development system begins with a pre­a mb le of 111111110 0 10 fo ll ow e d b y a 24 - bi t l en gt h co un t representing the total number of configuration clocks needed to complete loading of the configuration pro­gram(s). The data framing is shown in Figure 21. All FPGAs connec ted in series read and shift preamble and length count in on positive and o ut on negati ve configura­tion clock edges. A device which has received the pream­ble and length count then presents a High Data Out until it has intercepted the appropriate number of data frames. When the configuration program memory of an FPGA is full and the length count does not yet compare, the device shifts any additional data through, as it did for preamble and length count. When the FPGA configuration memory is full and the length coun t com pa re s, the de vice will ex ecute
Header
Program Data
Repeated for Each Logic Cell Array in a Daisy Chain
X5300_01
XC3020A
Device
Gates 1,000 to 1,500 1,500 to 2,000 2,000 to 3,000 3,500 to 4,500 5,000 to 6,000 6,500 to 7,500 CLBs 64 100 144 224 320 484 Row x Col (8 x 8) (10 x 10) (12 x 12) (16 x 14) (20 x 16) (22 x 22) IOBs 64 80 96 120 144 176 Flip-flops 256 360 480 688 928 1,320 Horizontal Longlines 16 20 24 32 40 44 TBUFs/Horizontal LL 9 11 13 15 17 23 Bits per Frame
(including1 start and 3 st op bits) Frames 197 241 285 329 373 505 Program Data =
Bits x Frames + 4 bits (excludes header)
PROM size (bits) = Program Data + 40-bit Header
XC3020L XC3120A
75 92 108 140 172 188
14,779 22,176 30,784 46,064 64,160 94,944
14,819 22,216 30,824 46,104 64,200 94,984
XC3030A XC3030L XC3130A
XC3042A XC3042L XC3142A XC3142L
XC3064A
XC3064L
XC3164A
XC3090A XC3090L XC3190A XC3190L XC3195A
Figure 21: Internal Configuration Data Structure for an FPGA. This shows the preamble, length count and data
frames generat ed by the Development Sy stem. The Length Count produced by the program = [(40-bit preamble + sum of program data + 1 per daisy chain device)
rounded up to multiple of 8] – (2 K 4) where K is a function of DONE and RESET timing selected. An additional 8 is added if roundup increment is less than K. K additional clocks are needed to complete start-up after length count is reached.
7-20 November 9, 1998 (Version 3.1)
R
XC3000 Series Field Programmable Gate Arrays
a synchronou s start -up s eque nce a nd become opera tio nal . See Figure 22. Two CCLK cycles after the completion of loading configuration data, the user I/O pins are enabled as configured. As selected, the internal user-logic RESET is released either one clock cycle before or after the I/O pins become active. A sim ilar t iming selec tion is prog ramm able for the DONE/PROG
output sig nal. DO NE/P ROG may also be programmed to be an open drain or include a pull-u p resistor to accom modate wired ANDing. T he High During Configuration (HDC) and Low Durin g Configuration ( LDC are two user I/O pins which are driven active while an FPGA is in its Initialization, Clear or Configure states. They and DONE/PROG
provide signals for control of external logic signals such as RESET, bus enable or PROM enable during configuration. For parallel Master configuration modes, these signals provide PROM enable control and allow the data pins to be shared with user logic signals.
User I/O inputs can be programmed to be either TTL or CMOS compatible thresholds. At power-up, all inputs have TTL thresholds and ca n change to CMOS t hres holds at the completion of configuration if the user has selected CMOS thresholds. The thr eshold of PWRDWN
and the direct cloc k
inputs are fixed at a CMOS level. If the crystal oscillator is used, it will begin operation before
configuration is complete to allow time for stabilization before it is connected to the internal circuitry.
12 24 4
Data Frame
Configuration Data
Configuration data to define the function and interconnec­tion within a Field Programm able Gate Ar ray is load ed from an external st orage at power-up and aft er a re- program si g­nal. Several metho ds of automat ic and contr olled loadin g of the required data are available. Logic levels applied to mode selection pins at the start of configuration time deter­mine the method t o be used . See Table 1. The dat a may be either bit-serial or byte-parallel, depending on the configu-
)
ration mode. The different FPGAs have different sizes and numbers of data frames. To maintain compatibility between various device type s, the Xilinx product familie s use com­patible configuration formats. For the XC3020A, configura­tion requires 14779 bits for each device, arranged in 197 data frames. An additional 40 bits are used in the header. See Figure22. The specific data format for each device is produced by the development system and o ne or more of these files can then be comb ine d and appen ded t o a lengt h count preamble and be transformed into a PROM format file by the developmen t system. A compatibility excep tion precludes the use of an XC2000-series device as the mas­ter for XC3000-series devices if their DONE or RESET are programmed to occur after their outputs become active. The Tie Option defines ou tput leve ls of un use d block s of a design and connects these to unused routing resources. This prevents indeterminate levels that might produce par­asitic supply currents. If unused bloc ks are not suffici ent to complete the tie, the user can indicate net s which must not
Last Frame
3
Postamble
3
STOP
4
7
DIN
Preamble Length Count Data
The configuration data consists of a composite
*
40-bit preamble/length count, followed by one or more concatenated FPGA programs, separated by 4-bit postambles. An additional final postamble bit is added for each slave device and the result rounded up to a byte boundary. The length count is two less than the number of resulting bits.
Timing of the assertion of DONE and termination of the INTERNAL RESET may each be programmed to occur one cycle before or after the I/O outputs become active.
Heavy lines indicate the default condition
Start
Bit
Stop
Start
Bit
Length Count*
Weak Pull-Up
PROGRAM
Internal Reset
I/O Active
DONE
X5988
Figure 22: Configurat ion and Start-up of One or More FPGAs.
November 9, 1998 (Version 3.1) 7-21
XC3000 Series Field Programmable Gate Arrays
R
be used to drive the remaining unused routing, as that might affect timing of user nets. Tie can be omitted for quick breadboard iterat ions where a few additional millia mps of Icc are acceptable.
The configuration bitstream begins with eight High pream­ble bits, a 4-bit preamble code and a 24-bit length count. When configuration is initiated, a counter in the FPGA is set to zero and begins to count the total number of configura­tion clock cycles ap plied to th e device . As each configur a­tion data frame is supplied to the device, it is internally assembled into a data word, which is then loaded in parallel into one word of th e internal configuration memory array. The configuration loading process is complete when the current le ngth cou nt equ als the load ed len gth coun t and the required configuration program data frames have been written. In tern al user f lip -flo ps a re he ld Re set during con fig ­uration.
Two user-programma ble pins are defined in th e unconfig­ured Field Progra mmab le Gate Ar ray. High During Config­uration (HDC) and Low During Configuration (LDC as DONE/PROG during configuration. In Master mode configurations it is convenient to use LDC Enable. After the last configuration data bit is loaded and the length count compares, the user I/O pins become active. Options allow tim ing choices o f one clock e arlier or later for the timing of the end of the internal logic RESET and the assertion of the DONE signal. The open-drain DONE/PROG and used as an active -H igh REA DY, an active-Low PROM enable or a RESET to other portions of the system. The state diagram of Figure 20 illustrates the configuration pro­cess.
may be used as external control signals
as an active-Low EPROM Chip
output can be AND-tied with multiple devices
) as well
Configuration Modes
Master Mode
In Master mode, the FPGA automatically loads configura­tion data from an external memory device. There are three Master modes that use the internal timing source to supply the configuration clock (CCLK) to time the incoming data. Master Serial mode uses serial configu r ation data supplied to Data-in (DIN) from a synch ron ous se rial so urce such as the Xilinx Serial Configurat ion PROM shown in Figure 23. Master Parallel Low and High modes automatically use
parallel data supplied to the D0–D7 pins in response to the 16-bit address generated by the FPGA. Figure 25 shows an example of the parallel Master mode connections required. T he HEX s tarting addres s is 0 000 and increme nts for Master Low mode and it is FFFF and decrements for Master High mode. These two modes provide address compatibility with microp rocessors which begin execution from opposite ends of memory.
Peripheral Mode
Peripheral mode provides a simplified interface through which the device may be loaded byte-wide, as a processor peripheral. Figure 27 shows the peripheral mode connec­tions. Processor write cycles are decoded from the com­mon assertion of the active low Write Strobe (WS active low and one active high Chip Selects (CS0 CS2). The FPGA generates a configuration clock from the internal timing generator and serializes the parallel input data for internal framing or for succeeding slaves on Data Out (DOUT). A output High on READY/BUSY the completion of loading for each byte when the input reg­ister is read y for a n ew byte. As with Master modes, P eriph­eral mode may also be used as a lead device for a daisy-chain of slave devices.
), and two
, CS1,
pin indicates
Slave Serial Mode
Slave Serial mode provides a simple interface for loading the Field Programmable Gate Array configuration as shown in Figure29. Serial data is supplied in conjunction with a synch ron izi n g inpu t c loc k. M ost S lav e m ode a ppli c a­tions are in daisy-chain configurations in which the data input is driven from the p revi ous FP GA’s data out, whil e th e clock is supplied by a lead device in Master or Peripheral mode. Data may also be supplied by a processor or other special circuits.
Daisy Chain
The development system is used to create a composite configuration for selected FPGAs including: a preamble, a length count for th e total bitstream, multiple concatena ted data programs and a postamble plus an ad ditional fill bit per device in the serial chain. After loading and passing-on the preamble and length count to a possible daisy-chain, a lead device will load its configuration data frames while pro­viding a High DOUT to possible down-stream devices as shown in Figure 25. Loading continues while the lead device has received its configuration program and the cur­rent length count has not reached the full value. The addi­tional data is passed through the lead device and appears on the Data Out ( DOU T) p in i n s er ial f or m. T he le ad d ev i ce also generates th e Conf igura tio n Clock (C CLK) t o sync hro­nize the serial output data and data in of down-stream FPGAs. Data is r ead in on DIN of sla ve devi ces by the po s­itive edge of CCLK and shifted out the DOUT on the nega­tive edge of CC LK. A p aralle l M as te r mo de d ev ice use s its internal timing generator to produce an internal CCLK of 8 times its EPROM address rate, while a Peripheral mode device produc es a burst of 8 CCLKs for ea ch chip select and write-strobe cycle. The internal timing generator con­tinues to operate for general timing and synchronization of inputs in all modes.
7-22 November 9, 1998 (Version 3.1)
R
XC3000 Series Field Programmable Gate Arrays
Special Configuration Functions
The configuration data includes control over several spe­cial functions in addition to the normal user logic functions and interconnect.
• Input thresholds
• Readback disabl e
• DONE pull-up resistor
•DONE timing
• RESET timing
• Oscillator frequen cy div ide d by two Each of these functions is controlled by configuration data
bits which are selected as part of the normal development system bitstream generation process.
Input Thresholds
Prior to the completion of configuration all FPGA input thresholds a re TTL compatible. Upon completion of config­uration, the input thresholds become either TTL or CMOS compatible as programmed. The use of the TTL threshold option requires some additional supply current for thresh­old shifting. The exception is the threshold of the PWRDWN CMOS input. Prior to the completion of configuration the user I/O pins each have a high impedance pull-up. The configuration program can be used to enable the IOB pull-up resi stors in t he Op erat ional mode to a ct ei ther a s an input load or to avoid a floating input on an otherwise unused pin.
Readback
The contents of a Fi eld Progr amm able Gat e Arr ay ma y be read back if it has been programmed with a bitstream in which the Readback option has been enabled. Readback may be used for verification of configuration and as a method of deter mining the st ate of inte rnal logic nodes dur­ing debugging. There are three options in generating the configuration bitstr ea m .
• “Never” inhibits the Read ba ck capa bility.
• “One-time, ” inhibits Readba ck after one Readback has
been executed to verify the configuration.
• “On-command ” allo ws unr es tric te d us e of Re ad ba ck . Readback is ac complished without the use of any of the
user I/O pins; only M0, M1 and CCLK are used. The initia­tion of Readb ac k is pr odu c ed by a Lo w to Hi gh tr an sit i on o f the M0/RTRIG (Read Trigger) pin. The CCLK input must then be driven by ex t er nal l og ic t o re ad ba ck t he c onf ig ura ­tion data. The first three Low-to-High CCLK transitions clock out dummy da ta. Th e subs equen t Low-t o-Hi gh CCLK transitions shift the data frame information out on the M1/RDATA always inverted, a z ero in config uration be comes a one in Readback, and vice ver sa. Note also that eac h Readback frame has one Start bit (read back as a one) but, unlike in
input and direct clocks which always have a
(Read Data) pin. No te that the logic polarity is
configuration, each Readback frame has only one Stop bit (read back as a zero). The third leading dummy bit men­tioned above can be considered the Start bit of the first frame. All data fr ames mus t be read ba ck to comp lete the process and retu rn the Mode Sel ect and CCL K pins to thei r normal functions.
Readback data includes the current state of each CLB flip-flop, each input flip-flop or latch, and each device pad. These data are imbedded into unused configuration bit positions during Readback. This state information is used by the development system In-Circuit Verifier to provide visibility into the internal operation of the logic while the system is operating. To readback a uniform time-sample of all storage el ements , it may be nec essar y to in hibit the s ys­tem clock.
Reprogram
To initiate a re-programming cycle, the dual-function pin DONE/PROG reduce sensitivity to noise, the input signal is filtered for two cycles of the FPGA internal timing generator. When repro­gram begins, the us er-prog rammabl e I/O output buf fers are disabled and high-impedance pull-ups are provided for the package pins. The device returns to the Clear state and clears the config uration memo ry before it ind icates ‘initial­ized’. Since this Cle ar operatio n uses chip-in dividual inte r­nal timing, the master might co mplete the Clear operation and then start co nfigurati on before th e slave has com pleted the Clear operation. To avoid this problem, the slave INIT pins must be AND-wired and used to force a RESET on the master (see Figure 25). Reprogram control is often imple- mented using an external open-collector driver which pulls DONE/PROG the DONE/PROG tion has been co mple te d. Even i f t he r e- pro gr am requ es t i s externally held Low beyond the configuration period, the FPGA will begin oper ation upon completion of config ura­tion.
must be given a High-to-Low transition. To
Low. Once a stable request is recognized,
pin is held Low until the new configura-
DONE Pull-up
DONE/PROG is an open-drain I/O pin that indicates the FPGA is in the operational state. An optional internal pull-up resistor can be enabled by the user of the develop­ment system. The DONE/PROG a daisy-chain ma y be co nnect ed to geth er to i ndica te al l ar e DONE or to direct them all to reprogram.
pins of multiple FPGAs in
DONE Timing
The timing of the DONE status signal can be controlled by a selection to occur either a CCLK cycle before, or after, the outputs going active. See Figure 22. This facilitates control of external functions such as a PROM enable or holding a system in a wait state.
7
November 9, 1998 (Version 3.1) 7-23
XC3000 Series Field Programmable Gate Arrays
R
RESET Timing
As with DONE timing, the timing of the release of the inter­nal reset can be controlled to occur either a CCLK cycle before, or a fter, th e outputs going active. Se e Figure 22. This reset keeps all user programmable flip-flops and latches in a zero state durin g co nf igu ra tio n.
Crystal Oscillator Division
A selection allows the user to incorporate a dedicated divide-by-two flip-flop between the crystal oscillator and the alternate clock line. This guarantees a symmetrical clock signal. Although t he freque ncy sta bility of a c rystal osc illa­tor is very good, the symmetry of its waveform can be affected by bias or feedback drive.
Bitstream Error Checking
Bitstream error checking pr otects agai nst erroneous con-
figuration. Each Xilinx FPGA bitst ream consis ts of a 4 0-bit p reamble,
followed by a device-specific number of data frames. The number of bits pe r frame is als o device-spe cific; however, each frame ends with three stop bits (111) f ollowed by a start bit for the next frame (0).
All devices in all XC3000 fam ilies start reading in a new frame when the y find th e first 0 after the end of t he prev ious frame. An original XC3000 device does not check for the correct stop bits, but XC3000A, XC3100A, XC3000L, and XC3100L devic es che ck that the last t hree bit s of any fra me are actually 111 .
Under normal circumstances, all these FPGAs behave the same way; however, if the bitstream is corrupted, an XC3000 device will always start a n ew fram e as so on as it finds the first 0 after the end of the previous frame, even if the data is completely wrong or out-of-sync. Given suffi­cient zeros in the data stream, the device will also go Done,
but with incor rect config uration an d the po ssibility of inte r­nal contention.
An XC3000A/XC3100A/XC3000L/XC3100L device starts any new frame only if the three preceding bits are all ones. If this check fails, it pulls INIT configuration, although the Master CCLK keeps running. The user must t hen start a new configuration by applying a >6 µs Low level on RESET
This simple check does not protect against random bit errors, but it offers almost 100 percent protection against erroneous configuration files, defective configuration data sources, synchronization errors between configuration source and FPGA, or PC-board level defects, such as bro­ken lines or solder-bridges.
Low and stops the int ernal
.
Reset Spike Protection
A separate modification slows down the RESET input before configuration by using a two-stage shift register driven from the in ternal cloc k. It tolerates s ubmicrose cond High spikes on RESET master can be connected like an XC4000 master, but with its RESET output only).
input used instead of INIT. (On XC3 000, INIT is
before config uration. The X C3000
Soft Start-up
After configuration, the outputs of all FPGAs in a daisy-chain become active simultaneously, as a result of the same CCLK edge. In the original XC3000/3100 devices, each output becomes active in either fast or slew-rate limited mode, depending on the way it is config­ured. This can lead to large ground-bounce signals. In XC3000A, XC3000L, XC3100A, and XC3100L devices, all outputs become active first in slew-rate limited mode, reducing the ground bounce. After this soft start-up, each individual output slew rate is again controlled by the respective configuration bit.
7-24 November 9, 1998 (Version 3.1)
R
Configuration Timing
This section describes the configuration modes in detail.
Master Serial Mode
In Master Serial mode, the CCLK output of the lead FPGA drives a Xilinx Serial PROM that feeds the DIN input. Each rising edge of the CCLK output increments the Serial PROM internal address counter. This puts the next data bit on the SPROM data output, connected to the DIN pin. The lead FPGA accepts this data on the subsequent rising CCLK edge.
The lead FPGA then presents the preamble data (and all data that over flows t he lead d evice) on its DOUT p in. There is an internal delay of 1.5 CCLK periods, which means that
*
IF READBACK IS
ACTIVATED, A
5-k RESISTOR IS
REQUIRED IN
SERIES WITH M1
DURING CONFIGURATION
THE 5 k M2 PULL-DOWN
RESISTOR OVERCOMES THE
INTERNAL PULL-UP,
BUT IT ALLOWS M2 TO
BE USER I/O.
GENERAL-
PURPOSE
USER I/O
PINS
M0 M1 PWRDWN
DOUT
M2
+5V
HDC LDC
INIT
OTHER
I/O PINS
*
XC3000
FPGA
DEVICE
+5 V
XC3000 Series Field Programmable Gate Arrays
DOUT changes on the falling CCLK edge, and the next device in the daisy-chain accepts data on the subsequent rising CCLK edge.
The SPROM CE input can be driven f rom either LDC DONE. Using LDC
avoids potential contention on the DIN pin, if this pin is configured as user-I/ O, but LDC restricted to be a permanently High user output. Using DONE also avoids contention on DIN, provided the early DONE option is invoked.
TO DIN OF OPTIONAL DAISY-CHAINED LCAs WITH DIFFERENT CONFIGURATIONS
TO CCLK OF OPTIONAL DAISY-CHAINED LCAs WITH DIFFERENT CONFIGURATIONS
TO CCLK OF OPTIONAL SLAVE LCAs WITH IDENTICAL CONFIGURATIONS
TO DIN OF OPTIONAL SLAVE LCAs WITH IDENTICAL CONFIGURATIONS
or
is then
7
+5 V
RESET
RESET
V
DIN
CCLK
D/P
INIT
(LOW RESETS THE XC17xx ADDRESS POINTER)
CCVPP
DATA
CLK
CE OE/RESET
SCP
XC17xx
CEO
DATA
CLK
CE
OE/RESET
CASCADED
SERIAL
MEMORY
X5989_01
Figure 23: Master Serial Mode C ircuit Diagram
November 9, 1998 (Version 3.1) 7-25
Loading...
+ 53 hidden pages