FPGA, 576 CLBS, 10000 GATES, 166 MHz, PQFP240


XC4010E功能数量 1
XC4010E端子数量 240
XC4010E最大供电/工作电压 3.6 V
XC4010E最小供电/工作电压 3 V
XC4010E额定供电电压 3.3 V
XC4010E加工封装描述 PLASTIC, QFP-240
XC4010E工艺 CMOS
XC4010E包装形状 SQUARE
XC4010E表面贴装 Yes
XC4010E端子间距 0.5000 mm
XC4010E端子涂层 TIN LEAD
XC4010E端子位置 QUAD
XC4010E组织 576 CLBS, 10000 GATES
XC4010E最大FCLK时钟频率 166 MHz
XC4010E可配置逻辑模块数量 576
XC4010E等效门电路数量 10000
XC4010E一个CLB模块最大延时 1.6 ns




                       R                                       XC4000E and XC4000X Series Field

                                                               Programmable Gate Arrays

May 14, 1999 (Version 1.6)                           0 0* Product Specification

XC4000E and XC4000X Series                                     Low-Voltage Versions Available

Features                                                       Low-Voltage Devices Function at 3.0 - 3.6 Volts

Note: Information in this data sheet covers the XC4000E,       XC4000XL: High Performance Low-Voltage Versions of
XC4000EX, and XC4000XL families. A separate data sheet             XC4000EX devices

covers the XC4000XLA and XC4000XV families. Electrical         Additional XC4000X Series Features
Specifications and package/pin information are covered in

separate sections for each family to make the information       Highest Performance -- 3.3 V XC4000XL
easier to access, review, and print. For access to these sec-   Highest Capacity -- Over 180,000 Usable Gates
tions, see the Xilinx WEBLINX web site at                      5 V tolerant I/Os on XC4000XL             0.35 m SRAM process for XC4000XL

System featured Field-Programmable Gate Arrays                Additional Routing Over XC4000E

- Select-RAMTM memory: on-chip ultra-fast RAM with             - almost twice the routing capacity for high-density

- synchronous write option                                     designs

- dual-port RAM option                                          Buffered Interconnect for Maximum Speed Blocks

- Fully PCI compliant (speed grades -2 and faster)             Improved VersaRingTM I/O Interconnect for Better Fixed

- Abundant flip-flops                                          Pinout Flexibility                                          6

- Flexible function generators                                  12 mA Sink Current Per XC4000X Output

- Dedicated high-speed carry logic                              Flexible New High-Speed Clock Network

- Wide edge decoders on each edge                              - Eight additional Early Buffers for shorter clock delays

- Hierarchy of interconnect lines                              - Virtually unlimited number of clock signals

- Internal 3-state bus capability                               Optional Multiplexer or 2-input Function Generator on

- Eight global low-skew clock or signal distribution           Device Outputs

networks                                                       Four Additional Address Bits in Master Parallel

System Performance beyond 80 MHz                             Configuration Mode

Flexible Array Architecture                                  XC4000XV Family offers the highest density with

Low Power Segmented Routing Architecture                     0.25 m 2.5 V technology

Systems-Oriented Features                                    Introduction
    - IEEE 1149.1-compatible boundary scan logic
        support                                                XC4000 Series high-performance, high-capacity Field Pro-
    - Individually programmable output slew rate               grammable Gate Arrays (FPGAs) provide the benefits of
    - Programmable input pull-up or pull-down resistors        custom CMOS VLSI, while avoiding the initial cost, long
    - 12 mA sink current per XC4000E output                    development cycle, and inherent risk of a conventional
                                                               masked gate array.
Configured by Loading Binary File

    - Unlimited re-programmability                             The result of thirteen years of FPGA design experience and
Read Back Capability                                         feedback from thousands of customers, these FPGAs com-
                                                               bine architectural versatility, on-chip Select-RAM memory
    - Program verification                                     with edge-triggered and dual-port modes, increased
    - Internal node observability                              speed, abundant routing resources, and new, sophisticated
Backward Compatible with XC4000 Devices                      software to achieve fully automated implementation of
Development System runs on most common computer              complex, high-density, high-performance designs.
    - Interfaces to popular design environments                The XC4000E and XC4000X Series currently have 20
    - Fully automatic mapping, placement and routing           members, as shown in Table 1.
    - Interactive design editor for design optimization

May 14, 1999 (Version 1.6)                                                                                           6-5

XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 1: XC4000E and XC4000X Series Field Programmable Gate Arrays

                     Max Logic Max. RAM                         Typical                        Number

              Logic  Gates  Bits                                Gate Range      CLB     Total  of      Max.
              Cells                                                            Matrix   CLBs
      Device   152   (No RAM) (No Logic) (Logic and RAM)*                       8x8            Flip-Flops User I/O
XC4002XL       238                                                             10 x 10    64
XC4003E        466   1,600  2,048                               1,000 - 3,000  14 x 14   100   256     64
XC4005E/XL     608                                                             16 x 16   196
XC4006E        770   3,000  3,200                               2,000 - 5,000  18 x 18   256   360     80
XC4008E        950                                                             20 x 20   324
XC4010E/XL    1368   5,000  6,272                               3,000 - 9,000  24 x 24   400   616     112
XC4013E/XL    1862                                                             28 x 28   576
XC4020E/XL    2432   6,000  8,192        4,000 - 12,000                        32 x 32   784   768     128
XC4025E       2432                                                             32 x 32  1,024
XC4028EX/XL   3078   8,000  10,368 6,000 - 15,000                              36 x 36  1,024  936     144
XC4036EX/XL   3800                                                             40 x 40  1,296
XC4044XL      4598   10,000 12,800 7,000 - 20,000                              44 x 44  1,600  1,120   160
XC4052XL      5472                                                             48 x 48  1,936
XC4062XL      7448   13,000 18,432 10,000 - 30,000                             56 x 56  2,304  1,536   192
XC4085XL                                                                                3,136
                     20,000 25,088 13,000 - 40,000                                             2,016   224

                     25,000 32,768 15,000 - 45,000                                             2,560   256

                     28,000 32,768 18,000 - 50,000                                             2,560   256

                     36,000 41,472 22,000 - 65,000                                             3,168   288

                     44,000 51,200 27,000 - 80,000                                             3,840   320

                     52,000 61,952 33,000 - 100,000                                            4,576   352

                     62,000 73,728 40,000 - 130,000                                            5,376   384

                     85,000 100,352 55,000 - 180,000                                           7,168   448

     * Max values of Typical Gate Range include 20-30% of CLBs used as RAM.

Note: All functionality in low-voltage families is the same as  where hardware is changed dynamically, or where hard-
in the corresponding 5-Volt family, except where numerical      ware must be adapted to different user applications.
references are made to timing or power.                         FPGAs are ideal for shortening design and development
                                                                cycles, and also offer a cost-effective solution for produc-
Description                                                     tion rates well beyond 5,000 systems per month. For lowest
                                                                high-volume unit cost, a design can first be implemented in
XC4000 Series devices are implemented with a regular,           the XC4000E or XC4000X, then migrated to one of Xilinx'
flexible, programmable architecture of Configurable Logic       compatible HardWire mask-programmed devices.
Blocks (CLBs), interconnected by a powerful hierarchy of
versatile routing resources, and surrounded by a perimeter      Taking Advantage of Re-configuration
of programmable Input/Output Blocks (IOBs). They have
generous routing resources to accommodate the most              FPGA devices can be re-configured to change logic func-
complex interconnect patterns.                                  tion while resident in the system. This capability gives the
                                                                system designer a new degree of freedom not available
The devices are customized by loading configuration data        with any other type of logic.
into internal memory cells. The FPGA can either actively
read its configuration data from an external serial or          Hardware can be changed as easily as software. Design
byte-parallel PROM (master modes), or the configuration         updates or modifications are easy, and can be made to
data can be written into the FPGA from an external device       products already in the field. An FPGA can even be re-con-
(slave and peripheral modes).                                   figured dynamically to perform different functions at differ-
                                                                ent times.
XC4000 Series FPGAs are supported by powerful and
sophisticated software, covering every aspect of design         Re-configurable logic can be used to implement system
from schematic or behavioral entry, floor planning, simula-     self-diagnostics, create systems capable of being re-con-
tion, automatic block placement and routing of intercon-        figured for different environments or operations, or imple-
nects, to the creation, downloading, and readback of the        ment multi-purpose hardware for a given application. As an
configuration bit stream.                                       added benefit, using re-configurable FPGA devices simpli-
                                                                fies hardware design and debugging and shortens product
Because Xilinx FPGAs can be reprogrammed an unlimited           time-to-market.
number of times, they can be used in innovative designs

6-6                                                                                     May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

XC4000E and XC4000X Series                                   much as 50% from XC4000 values. See "Fast Carry Logic"
Compared to the XC4000                                       on page 18 for more information.

For readers already familiar with the XC4000 family of Xil-  Select-RAM Memory: Edge-Triggered, Synchro-
inx Field Programmable Gate Arrays, the major new fea-       nous RAM Modes
tures in the XC4000 Series devices are listed in this
section. The biggest advantages of XC4000E and               The RAM in any CLB can be configured for synchronous,
XC4000X devices are significantly increased system           edge-triggered, write operation. The read operation is not
speed, greater capacity, and new architectural features,     affected by this change to an edge-triggered write.
particularly Select-RAM memory. The XC4000X devices
also offer many new routing features, including special      Dual-Port RAM
high-speed clock buffers that can be used to capture input
data with minimal delay.                                     A separate option converts the 16x2 RAM in any CLB into a
                                                             16x1 dual-port RAM with simultaneous Read/Write.
Any XC4000E device is pinout- and bitstream-compatible
with the corresponding XC4000 device. An existing            The function generators in each CLB can be configured as
XC4000 bitstream can be used to program an XC4000E           either level-sensitive (asynchronous) single-port RAM,
device. However, since the XC4000E includes many new         edge-triggered (synchronous) single-port RAM, edge-trig-
features, an XC4000E bitstream cannot be loaded into an      gered (synchronous) dual-port RAM, or as combinatorial
XC4000 device.                                               logic.

                                                             Configurable RAM Content

XC4000X Series devices are not bitstream-compatible with The RAM content can now be loaded at configuration time,

equivalent array size devices in the XC4000 or XC4000E so that the RAM starts up with user-defined data.

families. However, equivalent array size devices, such as
the XC4025, XC4025E, XC4028EX, and XC4028XL, are H Function Generator
pinout-compatible.                                           In current XC4000 Series devices, the H function generator

Improvements in XC4000E and XC4000X                          is more versatile than in the original XC4000. Its inputs can
                                                             come not only from the F and G function generators but

Increased System Speed                                       also from up to three of the four control input lines. The H
                                                             function generator can thus be totally or partially indepen-
XC4000E and XC4000X devices can run at synchronous           dent of the other two function generators, increasing the
system clock rates of up to 80 MHz, and internal perfor-     maximum capacity of the device.
mance can exceed 150 MHz. This increase in performance
over the previous families stems from improvements in both   IOB Clock Enable

device processing and system architecture. XC4000            The two flip-flops in each IOB have a common clock enable
Series devices use a sub-micron multi-layer metal process.   input, which through configuration can be activated individ-
In addition, many architectural improvements have been       ually for the input or output flip-flop or both. This clock
made, as described below.                                    enable operates exactly like the EC pin on the XC4000

The XC4000XL family is a high performance 3.3V family        CLB. This new feature makes the IOBs more versatile, and
based on 0.35 SRAM technology and supports system           avoids the need for clock gating.
speeds to 80 MHz.
                                                             Output Drivers

PCI Compliance                                               The output pull-up structure defaults to a TTL-like

XC4000 Series -2 and faster speed grades are fully PCI       totem-pole. This driver is an n-channel pull-up transistor,
compliant. XC4000E and XC4000X devices can be used to        pulling to a voltage one transistor threshold below Vcc, just
implement a one-chip PCI solution.                           like the XC4000 family outputs. Alternatively, XC4000
                                                             Series devices can be globally configured with CMOS out-
Carry Logic                                                  puts, with p-channel pull-up transistors pulling to Vcc. Also,

The speed of the carry logic chain has increased dramati-    the configurable pull-up resistor in the XC4000 Series is a
cally. Some parameters, such as the delay on the carry       p-channel transistor that pulls to Vcc, whereas in the origi-
chain through a single CLB (TBYP), have improved by as       nal XC4000 family it is an n-channel transistor that pulls to
                                                             a voltage one transistor threshold below Vcc.

May 14, 1999 (Version 1.6)                                                                                6-7

XC4000E and XC4000X Series Field Programmable Gate Arrays

Input Thresholds                                               Additional Improvements in XC4000X Only

The input thresholds of 5V devices can be globally config-     Increased Routing
ured for either TTL (1.2 V threshold) or CMOS (2.5 V
threshold), just like XC2000 and XC3000 inputs. The two        New interconnect in the XC4000X includes twenty-two
global adjustments of input threshold and output level are     additional vertical lines in each column of CLBs and twelve
independent of each other. The XC4000XL family has an          new horizontal lines in each row of CLBs. The twelve "Quad
input threshold of 1.6V, compatible with both 3.3V CMOS        Lines" in each CLB row and column include optional repow-
and TTL levels.                                                ering buffers for maximum speed. Additional high-perfor-
                                                               mance routing near the IOBs enhances pin flexibility.
Global Signal Access to Logic
                                                               Faster Input and Output
There is additional access from global clocks to the F and
G function generator inputs.                                   A fast, dedicated early clock sourced by global clock buffers
                                                               is available for the IOBs. To ensure synchronization with the
Configuration Pin Pull-Up Resistors                            regular global clocks, a Fast Capture latch driven by the
                                                               early clock is available. The input data can be initially
During configuration, these pins have weak pull-up resis-      loaded into the Fast Capture latch with the early clock, then
tors. For the most popular configuration mode, Slave           transferred to the input flip-flop or latch with the low-skew
Serial, the mode pins can thus be left unconnected. The        global clock. A programmable delay on the input can be
three mode inputs can be individually configured with or       used to avoid hold-time requirements. See "IOB Input Sig-
without weak pull-up or pull-down resistors. A pull-down       nals" on page 20 for more information.
resistor value of 4.7 k is recommended.
                                                               Latch Capability in CLBs
The three mode inputs can be individually configured with
or without weak pull-up or pull-down resistors after configu-  Storage elements in the XC4000X CLB can be configured
ration.                                                        as either flip-flops or latches. This capability makes the
                                                               FPGA highly synthesis-compatible.
The PROGRAM input pin has a permanent weak pull-up.
                                                               IOB Output MUX From Output Clock
Soft Start-up
                                                               A multiplexer in the IOB allows the output clock to select
Like the XC3000A, XC4000 Series devices have "Soft             either the output data or the IOB clock enable as the output
Start-up." When the configuration process is finished and      to the pad. Thus, two different data signals can share a sin-
the device starts up, the first activation of the outputs is   gle output pad, effectively doubling the number of device
automatically slew-rate limited. This feature avoids poten-    outputs without requiring a larger, more expensive pack-
tial ground bounce when all outputs are turned on simulta-     age. This multiplexer can also be configured as an
neously. Immediately after start-up, the slew rate of the      AND-gate to implement a very fast pin-to-pin path. See
individual outputs is, as in the XC4000 family, determined     "IOB Output Signals" on page 23 for more information.
by the individual configuration option.
                                                               Additional Address Bits
XC4000 and XC4000A Compatibility
                                                               Larger devices require more bits of configuration data. A
Existing XC4000 bitstreams can be used to configure an         daisy chain of several large XC4000X devices may require
XC4000E device. XC4000A bitstreams must be recompiled          a PROM that cannot be addressed by the eighteen address
for use with the XC4000E due to improved routing               bits supported in the XC4000E. The XC4000X Series
resources, although the devices are pin-for-pin compatible.    therefore extends the addressing in Master Parallel config-
                                                               uration mode to 22 bits.

6-8                                                            May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

Detailed Functional Description                               Each CLB contains two storage elements that can be used
                                                              to store the function generator outputs. However, the stor-
XC4000 Series devices achieve high speed through              age elements and function generators can also be used
advanced semiconductor technology and improved archi-         independently. These storage elements can be configured
tecture. The XC4000E and XC4000X support system clock         as flip-flops in both XC4000E and XC4000X devices; in the
rates of up to 80 MHz and internal performance in excess      XC4000X they can optionally be configured as latches. DIN
of 150 MHz. Compared to older Xilinx FPGA families,           can be used as a direct input to either of the two storage
XC4000 Series devices are more powerful. They offer           elements. H1 can drive the other through the H function
on-chip edge-triggered and dual-port RAM, clock enables       generator. Function generator outputs can also drive two
on I/O flip-flops, and wide-input decoders. They are more     outputs independent of the storage element outputs. This
versatile in many applications, especially those involving    versatility increases logic capacity and simplifies routing.
RAM. Design cycles are faster due to a combination of
increased routing resources and more sophisticated soft-      Thirteen CLB inputs and four CLB outputs provide access
ware.                                                         to the function generators and storage elements. These
                                                              inputs and outputs connect to the programmable intercon-
Basic Building Blocks                                         nect resources outside the block.

Xilinx user-programmable gate arrays include two major Function Generators

configurable elements: configurable logic blocks (CLBs)       Four independent inputs are provided to each of two func-
and input/output blocks (IOBs).                               tion generators (F1 - F4 and G1 - G4). These function gen-

CLBs provide the functional elements for constructing       erators, with outputs labeled F' and G', are each capable of
    the user's logic.
                                                              implementing any arbitrarily defined Boolean function of
IOBs provide the interface between the package pins
    and internal signal lines.                                four inputs. The function generators are implemented as

Three other types of circuits are also available:             memory look-up tables. The propagation delay is therefore                    6

                                                              independent of the function implemented.

3-State buffers (TBUFs) driving horizontal longlines are    A third function generator, labeled H', can implement any
    associated with each CLB.                                 Boolean function of its three inputs. Two of these inputs can
                                                              optionally be the F' and G' functional generator outputs.
Wide edge decoders are available around the periphery       Alternatively, one or both of these inputs can come from
    of each device.                                           outside the CLB (H2, H0). The third input must come from
                                                              outside the block (H1).
An on-chip oscillator is provided.
                                                              Signals from the function generators can exit the CLB on
Programmable interconnect resources provide routing           two outputs. F' or H' can be connected to the X output. G' or
paths to connect the inputs and outputs of these config-      H' can be connected to the Y output.
urable elements to the appropriate networks.
                                                              A CLB can be used to implement any of the following func-
The functionality of each circuit block is customized during  tions:
configuration by programming internal static memory cells.
The values stored in these memory cells determine the

logic functions and interconnections implemented in the       any function of up to four variables, plus any second
FPGA. Each of these available circuits is described in this       function of up to four unrelated variables, plus any third
section.                                                          function of up to three unrelated variables1

Configurable Logic Blocks (CLBs)                               any single function of five variables
                                                               any function of four variables together with some

Configurable Logic Blocks implement most of the logic in      functions of six variables

an FPGA. The principal CLB elements are shown in some functions of up to nine variables.

Figure 1. Two 4-input function generators (F and G) offer     Implementing wide functions in a single block reduces both
unrestricted versatility. Most combinatorial logic functions  the number of blocks required and the delay in the signal
need four or fewer inputs. However, a third function gener-   path, achieving both increased capacity and speed.
ator (H) is provided. The H function generator has three
inputs. Either zero, one, or two of these inputs can be the   The versatility of the CLB function generators significantly
outputs of F and G; the other input(s) are from outside the   improves system speed. In addition, the design-software
CLB. The CLB can, therefore, implement certain functions      tools can deal with each function generator independently.
of up to nine variables, like parity check or expand-         This flexibility improves cell usage.

able-identity comparison of two sets of four inputs.

1. When three separate functions are generated, one of the function outputs must be captured in a flip-flop internal to the CLB. Only two
    unregistered function generator outputs are available from the CLB.

May 14, 1999 (Version 1.6)                                                                                         6-9

XC4000E and XC4000X Series Field Programmable Gate Arrays

      C1 C4

                                        H1                       DIN/H2  SR/H0  EC

      G4                                                                                S/R                                   Bypass

      G3        LOGIC                                   DIN                                                                           YQ

                FUNCTION G'                             F'                                                    D  SD       Q
                     OF                                 G'

      G2        G1-G4                                   H'


                                               LOGIC    G'                                                     EC
                                            FUNCTION    H'                                                            RD

                                                 OF H'     DIN                  1
                                               F', G',     F'
                                                AND        G'                                                                               Y
                                                           H'                                                                 Bypass
      F4                                                                                S/R

      F3        LOGIC                                                                                            SD

                FUNCTION F'                                                                                   D           Q

      F2        F1-F4

      F1                                                                                                      EC
       (CLOCK)                                                                  1

                                                        H'                                                                            X

                                                                                Multiplexer Controlled                           X6692
                                                                                by Configuration Program

Figure 1: Simplified Block Diagram of XC4000 Series CLB (RAM and Carry Logic functions not shown)

Flip-Flops                                                       Clock Enable

The CLB can pass the combinatorial output(s) to the inter-       The clock enable signal (EC) is active High. The EC pin is
connect network, but can also store the combinatorial            shared by both storage elements. If left unconnected for
results or other incoming data in one or two flip-flops, and     either, the clock enable for that storage element defaults to
connect their outputs to the interconnect network as well.       the active state. EC is not invertible within the CLB.

The two edge-triggered D-type flip-flops have common             Table 2: CLB Storage Element Functionality
clock (K) and clock enable (EC) inputs. Either or both clock     (active rising edge is shown)
inputs can also be permanently enabled. Storage element
functionality is described in Table 2.                                   Mode       K                     EC SR               D                  Q

Latches (XC4000X only)                                           Power-Up or        X                     X               X   X                  SR
The CLB storage elements can also be configured as
latches. The two latches have common clock (K) and clock                            X                     X               1   X                  SR
enable (EC) inputs. Storage element functionality is
described in Table 2.                                            Flip-Flop __/                            1*              0*  D                  D

Clock Input                                                                         0                     X               0*  X                  Q

Each flip-flop can be triggered on either the rising or falling          Latch      1                     1*              0*  X                  Q
clock edge. The clock pin is shared by both storage ele-
ments. However, the clock is individually invertible for each                       0                     1*              0*  D                  D
storage element. Any inverter placed on the clock input is
automatically absorbed into the CLB.                                     Both       X                     0               0*  X                  Q

                                                                 Legend:        Don't care
                                                                          X     Rising edge
                                                                         __/    Set or Reset value. Reset is default.
                                                                         SR     Input is Low or unconnected (default value)
                                                                         0*     Input is High or unconnected (default value)

6-10                                                                                                             May 14, 1999 (Version 1.6)

                             XC4000E and XC4000X Series Field Programmable Gate Arrays

Set/Reset                                                                                          Two fast feed-through paths are available, as shown in
                                                                                                   Figure 1. A two-to-one multiplexer on each of the XQ and
An asynchronous storage element input (SR) can be con-                                             YQ outputs selects between a storage element output and
figured as either set or reset. This configuration option                                          any of the control inputs. This bypass is sometimes used by
determines the state in which each flip-flop becomes oper-                                         the automated router to repower internal signals.
ational after configuration. It also determines the effect of a
Global Set/Reset pulse during normal operation, and the                                            Control Signals
effect of a pulse on the SR pin of the CLB. All three
set/reset functions for any single flip-flop are controlled by                                     Multiplexers in the CLB map the four control inputs (C1 - C4
the same configuration data bit.                                                                   in Figure 1) into the four internal control signals (H1,
                                                                                                   DIN/H2, SR/H0, and EC). Any of these inputs can drive any
The set/reset state can be independently specified for each                                        of the four internal control signals.
flip-flop. This input can also be independently disabled for
either flip-flop.                                                                                  When the logic function is enabled, the four inputs are:

The set/reset state is specified by using the INIT attribute,                                       EC -- Enable Clock
or by placing the appropriate set or reset flip-flop library                                        SR/H0 -- Asynchronous Set/Reset or H function
                                                                                                       generator Input 0
SR is active High. It is not invertible within the CLB.                                             DIN/H2 -- Direct In or H function generator Input 2
                                                                                                    H1 -- H function generator Input 1.

Global Set/Reset                                                                                   When the memory function is enabled, the four inputs are:

A separate Global Set/Reset line (not shown in Figure 1) EC -- Enable Clock

sets or clears each storage element during power-up, WE -- Write Enable

re-configuration, or when a dedicated Reset net is driven D0 -- Data Input to F and/or G function generator

active. This global net (GSR) does not compete with other                                           D1 -- Data input to G function generator (16x1 and            6
routing resources; it uses a dedicated distribution network.                                           16x2 modes) or 5th Address bit (32x1 mode).

Each flip-flop is configured as either globally set or reset in                                    Using FPGA Flip-Flops and Latches
the same way that the local set/reset (SR) is specified.
Therefore, if a flip-flop is set by SR, it is also set by GSR.                                     The abundance of flip-flops in the XC4000 Series invites
Similarly, a reset flip-flop is reset by both SR and GSR.                                          pipelined designs. This is a powerful way of increasing per-
                                                                                                   formance by breaking the function into smaller subfunc-
                            STARTUP                                                                tions and executing them in parallel, passing on the results
                                                                                                   through pipeline flip-flops. This method should be seriously
PAD                         GSR  Q2                                                                considered wherever throughput is more important than
     IBUF                   GTS  Q3
                                                                                                   To include a CLB flip-flop, place the appropriate library
                                 Q1Q4                                                              symbol. For example, FDCE is a D-type flip-flop with clock
                                                                                                   enable and asynchronous clear. The corresponding latch
                            CLK DONEIN                                                             symbol (for the XC4000X only) is called LDCE.

                                                                                            X5260  In XC4000 Series devices, the flip flops can be used as reg-
                                                                                                   isters or shift registers without blocking the function gener-
Figure 2: Schematic Symbols for Global Set/Reset                                                   ators from performing a different, perhaps unrelated task.
                                                                                                   This ability increases the functional capacity of the devices.
GSR can be driven from any user-programmable pin as a
global reset input. To use this global net, place an input pad                                     The CLB setup time is specified between the function gen-
and input buffer in the schematic or HDL code, driving the                                         erator inputs and the clock input K. Therefore, the specified
GSR pin of the STARTUP symbol. (See Figure 2.) A spe-                                              CLB flip-flop setup time includes the delay through the
cific pin location can be assigned to this input using a LOC                                       function generator.
attribute or property, just as with any other user-program-
mable pad. An inverter can optionally be inserted after the                                        Using Function Generators as RAM
input buffer to invert the sense of the Global Set/Reset sig-

Alternatively, GSR can be driven from any internal node.                                           Optional modes for each CLB make the memory look-up
                                                                                                   tables in the F' and G' function generators usable as an
Data Inputs and Outputs                                                                            array of Read/Write memory cells. Available modes are
                                                                                                   level-sensitive (similar to the XC4000/A/H families),
The source of a storage element data input is programma-                                           edge-triggered, and dual-port edge-triggered. Depending
ble. It is driven by any of the functions F', G', and H', or by                                    on the selected mode, a single CLB can be configured as
the Direct In (DIN) block input. The flip-flops or latches drive                                   either a 16x2, 32x1, or 16x1 bit array.
the XQ and YQ CLB outputs.

May 14, 1999 (Version 1.6)                                                                                     6-11

XC4000E and XC4000X Series Field Programmable Gate Arrays

Supported CLB memory configurations and timing modes           The selected timing mode applies to both function genera-
for single- and dual-port modes are shown in Table 3.          tors within a CLB when both are configured as RAM.

XC4000 Series devices are the first programmable logic         The number of read ports is also programmable:
devices with edge-triggered (synchronous) and dual-port
RAM accessible to the user. Edge-triggered RAM simpli-          Single Port: each function generator has a common
fies system timing. Dual-port RAM doubles the effective            read and write port
throughput of FIFO applications. These features can be
individually programmed in any XC4000 Series CLB.               Dual Port: both function generators are configured
                                                                   together as a single 16x1 dual-port RAM with one write
Advantages of On-Chip and Edge-Triggered RAM                       port and two read ports. Simultaneous read and write
                                                                   operations to the same or different addresses are
The on-chip RAM is extremely fast. The read access time is         supported.
the same as the logic delay. The write access time is
slightly slower. Both access times are much faster than        RAM configuration options are selected by placing the
any off-chip solution, because they avoid I/O delays.          appropriate library symbol.

Edge-triggered RAM, also called synchronous RAM, is a          Choosing a RAM Configuration Mode
feature never before available in a Field Programmable
Gate Array. The simplicity of designing with edge-triggered    The appropriate choice of RAM mode for a given design
RAM, and the markedly higher achievable performance,           should be based on timing and resource requirements,
add up to a significant improvement over existing devices      desired functionality, and the simplicity of the design pro-
with on-chip RAM.                                              cess. Recommended usage is shown in Table 4.

Three application notes are available from Xilinx that dis-    The difference between level-sensitive, edge-triggered,
cuss edge-triggered RAM: "XC4000E Edge-Triggered and           and dual-port RAM is only in the write operation. Read
Dual-Port RAM Capability," "Implementing FIFOs in              operation and timing is identical for all modes of operation.
XC4000E RAM," and "Synchronous and Asynchronous
FIFO Designs." All three application notes apply to both       Table 4: RAM Mode Selection
XC4000E and XC4000X RAM.

                                                                             Level-Sens Edge-Trigg Edge-Trigg

                                                                             itive          ered  ered

Table 3: Supported RAM Modes                                   Use for New   No             Yes   Yes
             16 16 32 Edge-     Level-
                                                               Size (16x1,
             x x x Triggered Sensitive                         Registered)   1/2 CLB 1/2 CLB      1 CLB

             1 2 1 Timing Timing                               Simultaneous
Single-Port                                                                  No             No    Yes
Dual-Port                                                      Relative
                                                               Performance                         2X (4X
                                                                             X              2X

RAM Configuration Options                                      RAM Inputs and Outputs

The function generators in any CLB can be configured as        The F1-F4 and G1-G4 inputs to the function generators act
RAM arrays in the following sizes:                             as address lines, selecting a particular memory cell in each
                                                               look-up table.
Two 16x1 RAMs: two data inputs and two data outputs
    with identical or, if preferred, different addressing for  The functionality of the CLB control signals changes when
    each RAM                                                   the function generators are configured as RAM. The
                                                               DIN/H2, H1, and SR/H0 lines become the two data inputs
One 32x1 RAM: one data input and one data output.            (D0, D1) and the Write Enable (WE) input for the 16x2
                                                               memory. When the 32x1 configuration is selected, D1 acts
One F or G function generator can be configured as a 16x1      as the fifth address bit and D0 is the data input.
RAM while the other function generators are used to imple-
ment any function of up to 5 inputs.                           The contents of the memory cell(s) being addressed are
                                                               available at the F' and G' function-generator outputs. They
Additionally, the XC4000 Series RAM may have either of         can exit the CLB through its X and Y outputs, or can be cap-
two timing modes:                                              tured in the CLB flip-flop(s).

Edge-Triggered (Synchronous): data written by the            Configuring the CLB function generators as Read/Write
    designated edge of the CLB clock. WE acts as a true        memory does not affect the functionality of the other por-
    clock enable.

Level-Sensitive (Asynchronous): an external WE signal
    acts as the write strobe.

6-12                                                                                        May 14, 1999 (Version 1.6)

                                   XC4000E and XC4000X Series Field Programmable Gate Arrays

tions of the CLB, with the exception of the redefinition of the                                                                                  nals. An internal write pulse is generated that performs the
control signals. In 16x2 and 16x1 modes, the H' function                                                                                         write. See Figure 4 and Figure 5 for block diagrams of a
generator can be used to implement Boolean functions of                                                                                          CLB configured as 16x2 and 32x1 edge-triggered, sin-
F', G', and D1, and the D flip-flops can latch the F', G', H', or                                                                                gle-port RAM.
D0 signals.
                                                                                                                                                 The relationships between CLB pins and RAM inputs and
Single-Port Edge-Triggered Mode                                                                                                                  outputs for single-port, edge-triggered mode are shown in
                                                                                                                                                 Table 5.
Edge-triggered (synchronous) RAM simplifies timing
requirements. XC4000 Series edge-triggered RAM timing                                                                                            The Write Clock input (WCLK) can be configured as active
operates like writing to a data register. Data and address                                                                                       on either the rising edge (default) or the falling edge. It uses
are presented. The register is enabled for writing by a logic                                                                                    the same CLB pin (K) used to clock the CLB flip-flops, but it
High on the write enable input, WE. Then a rising or falling                                                                                     can be independently inverted. Consequently, the RAM
clock edge loads the data into the register, as shown in                                                                                         output can optionally be registered within the same CLB
Figure 3.                                                                                                                                        either by the same clock edge as the RAM, or by the oppo-
                                                                                                                                                 site edge of this clock. The sense of WCLK applies to both
                                             TWPS                                                                                                function generators in the CLB when both are configured
                                                                                                                                                 as RAM.

                 TWSS                  TWHS                                                                                                      The WE pin is active-High and is not invertible within the

       WE                   TDSS       TDHS                                                                                                      Note: The pulse following the active edge of WCLK (TWPS
DATA IN                                                                                                                                          in Figure 3) must be less than one millisecond wide. For

                                                                                                                                                 most applications, this requirement is not overly restrictive;

                                                                                                                                                 however, it must not be forgotten. Stopping WCLK at this          6

                            TASS                                                                                                                 point in the write cycle could result in excessive current and

                                       TAHS                                                                                                      even damage to the larger devices if many CLBs are con-

ADDRESS                                                                                                                                          figured as edge-triggered RAM.

                                                                                                                                                 Table 5: Single-Port Edge-Triggered RAM Signals

           TILO                   TWOS       TILO                                                                                                   RAM Signal  CLB Pin                 Function
                                                                                                                                                                                  Data In
                                                                                                                                                 D              D0 or D1 (16x2,

DATA OUT                          OLD        NEW                                                                                                                16x1), D0 (32x1)

                                                                                                                                          X6461  A[3:0]         F1-F4 or G1-G4    Address
                                                                                                                                                 A[4]           D1 (32x1)         Address
Figure 3: Edge-Triggered RAM Write Timing                                                                                                        WE             WE                Write Enable

Complex timing relationships between address, data, and                                                                                          WCLK           K                 Clock
write enable signals are not required, and the external write                                                                                    SPO            F' or G'          Single Port Out
enable pulse becomes a simple clock enable. The active                                                                                           (Data Out)                       (Data Out)
edge of WCLK latches the address, input data, and WE sig-

May 14, 1999 (Version 1.6)                                                                                                                                                                        6-13

XC4000E and XC4000X Series Field Programmable Gate Arrays

                   C1 C4

                                            WE            D1      D0          EC


                                                                                              WRITE         16-LATCH         MUX  G'
                                                                                           DECODER           ARRAY
                   G1 G4                     4
                                                                                              1 of 16


                                                                                                       WRITE PULSE          READ


                                                                                             WRITE          16-LATCH         MUX  F'
                                                                                          DECODER            ARRAY
                   F1 F4                  4
                                                                                             1 of 16

                             K                                                LATCH
                   (CLOCK)                                                    ENABLE

                                                                                                       WRITE PULSE          READ


Figure 4: 16x2 (or 16x1) Edge-Triggered Single-Port RAM

                         4                                            EC
      C1 C4
                                                D1/A4         D0          EC
      G1 G4
      F1 F4                                                             WRITE                    16-LATCH                   G'
                                                                              DECODER                  ARRAY          MUX
                                                       4              4                                                                X6754

                                                                              1 of 16


                                                                                       WRITE PULSE                     READ


                                                                              WRITE                    16-LATCH

                                                                              DECODER                  ARRAY          MUX

                                                   4                  4

                                                                              1 of 16

                K                                                 LATCH
      (CLOCK)                                                     ENABLE

                                                                                       WRITE PULSE                     READ

Figure 5: 32x1 Edge-Triggered Single-Port RAM (F and G addresses are identical)

6-14                                                                                                                              May 14, 1999 (Version 1.6)

                                       XC4000E and XC4000X Series Field Programmable Gate Arrays

Dual-Port Edge-Triggered Mode                                                                                                                                                                 Table 6: Dual-Port Edge-Triggered RAM Signals

In dual-port mode, both the F and G function generators                                                                                                                                       RAM Signal CLB Pin                  Function
are used to create a single 16x1 RAM array with one write
port and two read ports. The resulting RAM array can be                                                                                                                                       D             D0     Data In

                                                                                                                                                                                              A[3:0]        F1-F4  Read Address for F,

read and written simultaneously at two independent                                                                                                                                                                 Write Address for F and G

addresses. Simultaneous read and write operations at the                                                                                                                                      DPRA[3:0] G1-G4      Read Address for G

same address are also supported.                                                                                                                                                              WE            WE     Write Enable
Dual-port mode always has edge-triggered write timing, as                                                                                                                                     WCLK          K      Single Port Out
                                                                                                                                                                                              SPO           F'     (addressed by A[3:0])
shown in Figure 3.

Figure 6 shows a simple model of an XC4000 Series CLB                                                                                                                                         DPO           G'     Dual Port Out

configured as dual-port RAM. One address port, labeled                                                                                                                                                             (addressed by DPRA[3:0])

A[3:0], supplies both the read and write address for the F                                                                                                                                    Note: The pulse following the active edge of WCLK (TWPS
function generator. This function generator behaves the                                                                                                                                       in Figure 3) must be less than one millisecond wide. For
same as a 16x1 single-port edge-triggered RAM array. The                                                                                                                                      most applications, this requirement is not overly restrictive;
RAM output, Single Port Out (SPO), appears at the F func-                                                                                                                                     however, it must not be forgotten. Stopping WCLK at this
tion generator output. SPO, therefore, reflects the data at                                                                                                                                   point in the write cycle could result in excessive current and
address A[3:0].                                                                                                                                                                               even damage to the larger devices if many CLBs are con-
                                                                                                                                                                                              figured as edge-triggered RAM.
The other address port, labeled DPRA[3:0] for Dual Port
Read Address, supplies the read address for the G function                                                                                                                                    Single-Port Level-Sensitive Timing Mode
generator. The write address for the G function generator,

however, comes from the address A[3:0]. The output from Note: Edge-triggered mode is recommended for all new
this 16x1 RAM array, Dual Port Out (DPO), appears at the
G function generator output. DPO, therefore, reflects the                                                                                                                                     designs. Level-sensitive mode, also called asynchronous         6
                                                                                                                                                                                              mode, is still supported for XC4000 Series backward-com-
data at address DPRA[3:0].
                                                                                                                                                                                              patibility with the XC4000 family.

Therefore, by using A[3:0] for the write address and                                                                                                                                          Level-sensitive RAM timing is simple in concept but can be
DPRA[3:0] for the read address, and reading only the DPO                                                                                                                                      complicated in execution. Data and address signals are
output, a FIFO that can read and write simultaneously is                                                                                                                                      presented, then a positive pulse on the write enable pin
easily generated. Simultaneous access doubles the effec-                                                                                                                                      (WE) performs a write into the RAM at the designated
tive throughput of the FIFO.                                                                                                                                                                  address. As indicated by the "level-sensitive" label, this

The relationships between CLB pins and RAM inputs and                                                                                                                                         RAM acts like a latch. During the WE High pulse, changing
outputs for dual-port, edge-triggered mode are shown in                                                                                                                                       the data lines results in new data written to the old address.
Table 6. See Figure 7 on page 16 for a block diagram of a                                                                                                                                     Changing the address lines while WE is High results in spu-
CLB configured in this mode.                                                                                                                                                                  rious data written to the new address--and possibly at
                                                                                                                                                                                              other addresses as well, as the address lines inevitably do

         WE    RAM16X1D Primitive     D  Q  DPO (Dual Port Out)                                                                                                                               not all change simultaneously.
            D                               Registered DPO
                             WE                                                                                                                                                               The user must generate a carefully timed WE signal. The
DPRA[3:0]                    D                                                                                                                                                                delay on the WE signal and the address lines must be care-
                             AR[3:0]                                                                                                                                                          fully verified to ensure that WE does not become active
                             AW[3:0]                                                                                                                                                          until after the address lines have settled, and that WE goes

               G Function Generator   D  Q  SPO (Single Port Out)                                                                                                                             inactive before the address lines change again. The data
                                            Registered SPO                                                                                                                                    must be stable before and after the falling edge of WE.
                   D                                                                                                                                                                          In practical terms, WE is usually generated by a 2X clock. If
                                                                                                                                                                                              a 2X clock is not available, the falling edge of the system

A[3:0]              AR[3:0]                                                                                                                                                                   clock can be used. However, there are inherent risks in this
                    AW[3:0]                                                                                                                                                                   approach, since the WE pulse must be guaranteed inactive

               F Function Generator                                                                                                                                                           before the next rising edge of the system clock. Several
                                                                                                                                                                                              older application notes are available from Xilinx that dis-
WCLK                                                                                                                                                                                          cuss the design of level-sensitive RAMs. These application

                                                                                                                                                                                       X6755  notes include XAPP031, "Using the XC4000 RAM Capabil-
                                                                                                                                                                                              ity," and XAPP042, "High-Speed RAM Design in XC4000."
Figure 6: XC4000 Series Dual-Port RAM, Simple                                                                                                                                                 However, the edge-triggered RAM available in the XC4000

                                                                                                                                                                                              Series is superior to level-sensitive RAM for almost every


May 14, 1999 (Version 1.6)                                                                                                                                                                                                                   6-15

XC4000E and XC4000X Series Field Programmable Gate Arrays

      C1 C4

                            WE     D1  D0                                                        EC


                                                                                                      WRITE         16-LATCH

                                                                                                      DECODER       ARRAY     MUX                G'


                                                                                                      1 of 16


      G1 G4               4                                                                                WRITE PULSE        READ


                                                                                                        WRITE       16-LATCH  MUX                   F'
                                                                                                      DECODER        ARRAY                X6748

      F1 F4               4                                                                 4     1 of 16

                K                                                                             LATCH
      (CLOCK)                                                                                 ENABLE

                                                                                                                 WRITE PULSE        READ

Figure 7: 16x1 Edge-Triggered Dual-Port RAM

Figure 8 shows the write timing for level-sensitive, sin-                                             attached to the RAM or ROM symbol, as described in the
gle-port RAM.                                                                                         schematic library guide. If not defined, all RAM contents
                                                                                                      are initialized to all zeros, by default.
The relationships between CLB pins and RAM inputs and
outputs for single-port level-sensitive mode are shown in                                             RAM initialization occurs only during configuration. The
Table 7.                                                                                              RAM content is not affected by Global Set/Reset.

Figure 9 and Figure 10 show block diagrams of a CLB con-                                              Table 7: Single-Port Level-Sensitive RAM Signals
figured as 16x2 and 32x1 level-sensitive, single-port RAM.
                                                                                                        RAM Signal         CLB Pin              Function
Initializing RAM at Configuration                                                                     D             D0 or D1              Data In
                                                                                                      A[3:0]        F1-F4 or G1-G4        Address
Both RAM and ROM implementations of the XC4000                                                        WE            WE                    Write Enable
Series devices are initialized during configuration. The ini-                                         O             F' or G'              Data Out
tial contents are defined via an INIT attribute or property



                                                                                         TAS          TWP                     TAH
                      WRITE ENABLE                                                                                                TDH
                                   DATA IN                                                                       REQUIRED

Figure 8: Level-Sensitive RAM Write Timing                                                                                                X6462

6-16                                                                                                                          May 14, 1999 (Version 1.6)

                                              XC4000E and XC4000X Series Field Programmable Gate Arrays

             C1 C4

                                   WE         D1         D0          EC

                                                             Enable                   DIN

                                                                     WRITE       16-LATCH                                                                                     G'

                                                             DECODER             ARRAY                                                                                   MUX

             G1 G4                          4

                                                                     1 of 16

                                                                                                                  READ ADDRESS

                                                             Enable                   DIN

                                                                     WRITE       16-LATCH                                                                                     F'

                                                             DECODER             ARRAY                                                                                   MUX

             F1 F4                          4

                                                                     1 of 16


                          X6746                                                            READ ADDRESS


Figure 9: 16x2 (or 16x1) Level-Sensitive Single-Port RAM

C1 C4

                          WE           D1/A4         D0      EC

                                                             Enable              DIN

                                                             WRITE               16-LATCH  MUX                                                                                G'
G1 G4                                   4              DECODER             ARRAY
F1 F4                                                                                                                                                                   F'
                                                             1 of 16                                                                                                                  X6749

                                                                              4                                                                                                              6-17
                                                                                                           READ ADDRESS

                                                             Enable              DIN

                                                             WRITE               16-LATCH  MUX

                                       4                     DECODER             ARRAY

                                                             1 of 16

                                                                                                                                                           READ ADDRESS

Figure 10: 32x1 Level-Sensitive Single-Port RAM (F and G addresses are identical)

May 14, 1999 (Version 1.6)

XC4000E and XC4000X Series Field Programmable Gate Arrays

Fast Carry Logic                                               XC4000." This discussion also applies to XC4000E
                                                               devices, and to XC4000X devices when the minor logic
Each CLB F and G function generator contains dedicated         changes are taken into account.
arithmetic logic for the fast generation of carry and borrow
signals. This extra output is passed on to the function gen-   The fast carry logic can be accessed by placing special
erator in the adjacent CLB. The carry chain is independent     library symbols, or by using Xilinx Relationally Placed Mac-
of normal routing resources.                                   ros (RPMs) that already include these symbols.

Dedicated fast carry logic greatly increases the efficiency    CLB  CLB  CLB  CLB
and performance of adders, subtractors, accumulators,
comparators and counters. It also opens the door to many       CLB  CLB  CLB  CLB
new applications involving arithmetic operation, where the
previous generations of FPGAs were not fast enough or too      CLB  CLB  CLB  CLB
inefficient. High-speed address offset calculations in micro-
processor or graphics systems, and high-speed addition in      CLB  CLB  CLB  CLB
digital signal processing are two typical applications.
The two 4-input function generators can be configured as a
2-bit adder with built-in hidden carry that can be expanded    Figure 11: Available XC4000E Carry Propagation
to any length. This dedicated carry circuitry is so fast and   Paths
efficient that conventional speed-up methods like carry
generate/propagate are meaningless even at the 16-bit          CLB  CLB  CLB  CLB
level, and of marginal benefit at the 32-bit level.
                                                               CLB  CLB  CLB  CLB
This fast carry logic is one of the more significant features
of the XC4000 Series, speeding up arithmetic and counting      CLB  CLB  CLB  CLB
into the 70 MHz range.
                                                               CLB  CLB  CLB  CLB
The carry chain in XC4000E devices can run either up or
down. At the top and bottom of the columns where there             X6610
are no CLBs above or below, the carry is propagated to the
right. (See Figure 11.) In order to improve speed in the       Figure 12: Available XC4000X Carry Propagation
high-capacity XC4000X devices, which can potentially           Paths (dotted lines use general interconnect)
have very long carry chains, the carry chain travels upward
only, as shown in Figure 12. Additionally, standard intercon-
nect can be used to route a carry signal in the downward

Figure 13 on page 19 shows an XC4000E CLB with dedi-
cated fast carry logic. The carry logic in the XC4000X is
similar, except that COUT exits at the top only, and the sig-
nal CINDOWN does not exist. As shown in Figure 13, the
carry logic shares operand and control inputs with the func-
tion generators. The carry outputs connect to the function
generators, where they are combined with the operands to
form the sums.

Figure 14 on page 20 shows the details of the carry logic
for the XC4000E. This diagram shows the contents of the
box labeled "CARRY LOGIC" in Figure 13. The XC4000X
carry logic is very similar, but a multiplexer on the
pass-through carry chain has been eliminated to reduce
delay. Additionally, in the XC4000X the multiplexer on the
G4 path has a memory-programmable 0 input, which per-
mits G4 to directly connect to COUT. G4 thus becomes an
additional high-speed initialization path for carry-in.

The dedicated carry logic is discussed in detail in Xilinx
document XAPP 013: "Using the Dedicated Carry Logic in

6-18                                                                     May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

CARRY  C OUT C IN DOWN                                D IN
                                   G                                                                 Y

G3                                                 G
                                     COUT0                                       H          S/R

H1                                                                               G       D       Q   YQ






                                  F                                              H          S/R
                                                                                 G       D       Q   XQ
F2                                                                                          EC



       CINUP                                C OUT     K                             S/R          EC


Figure 13: Fast Carry Logic in XC4000E CLB (shaded area not present in XC4000X)

May 14, 1999 (Version 1.6)                                                                                                                         6-19

XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                                        C OUT


      G1                                                          1                                   M
      G4                                                                                  G2
                                                                     0     1

                                                               I  0

                                                                                                  G3     TO
                                                                               C OUT0                    FUNCTION

      F2                                                          1                                  M
      F1                                                                                  F4
                                                                        0      1
                     M                                         M  0

                        M  0  1

                        M                                         3

                                                                  1                                   M



                                                                     M     1      0

                                        X2000                           C IN UP
                                                                               C IN DOWN
Figure 14: Detail of XC4000E Dedicated Carry Logic

Input/Output Blocks (IOBs)                                        The choice is made by placing the appropriate library sym-
                                                                  bol. For example, IFD is the basic input flip-flop (rising edge
User-configurable input/output blocks (IOBs) provide the          triggered), and ILD is the basic input latch (transpar-
interface between external package pins and the internal          ent-High). Variations with inverted clocks are available, and
logic. Each IOB controls one package pin and can be con-          some combinations of latches and flip-flops can be imple-
figured for input, output, or bidirectional signals.              mented in a single IOB, as described in the XACT Libraries
Figure 15 shows a simplified block diagram of the
XC4000E IOB. A more complete diagram which includes               The XC4000E inputs can be globally configured for either
the boundary scan logic of the XC4000E IOB can be found           TTL (1.2V) or 5.0 volt CMOS thresholds, using an option in
in Figure 40 on page 43, in the "Boundary Scan" section.          the bitstream generation software. There is a slight input
                                                                  hysteresis of about 300mV. The XC4000E output levels are
The XC4000X IOB contains some special features not                also configurable; the two global adjustments of input
included in the XC4000E IOB. These features are high-             threshold and output level are independent.
lighted in a simplified block diagram found in Figure 16, and
discussed throughout this section. When XC4000X special           Inputs on the XC4000XL are TTL compatible and 3.3V
features are discussed, they are clearly identified in the        CMOS compatible. Outputs on the XC4000XL are pulled to
text. Any feature not so identified is present in both            the 3.3V positive supply.
XC4000E and XC4000X devices.
                                                                  The inputs of XC4000 Series 5-Volt devices can be driven
IOB Input Signals                                                 by the outputs of any 3.3-Volt device, if the 5-Volt inputs are
                                                                  in TTL mode.
Two paths, labeled I1 and I2 in Figure 15 and Figure 16,
bring input signals into the array. Inputs also connect to an     Supported sources for XC4000 Series device inputs are
input register that can be programmed as either an                shown in Table 8.
edge-triggered flip-flop or a level-sensitive latch.

6-20                                                                                                  May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                                   Slew Rate              Passive
                                                                     Control              Pull-Up/

        T                   Flip-Flop                                                  Output                  Pad
                             DQ                                                        Buffer
  Clock                      Flip-                                           Input
        I1                  Flop/                                           Buffer
        I2                  QD                             Delay

  Clock                     CE

                    Input                                                                                      X6704                               6

Figure 15: Simplified Block Diagram of XC4000E IOB

                                                                                         Slew Rate   Passive
                                                                                           Control   Pull-Up/

                                           Output MUX



            Out                                            DQ                            Output
                                                           CE                            Buffer
Output Clock
               I1                                                                                                                       Pad

                                                       Flip-Flop/           Delay Delay



Clock Enable                                           CE            Fast   Latch
  Input Clock                                                      Capture



Figure 16: Simplified Block Diagram of XC4000X IOB (shaded areas indicate differences from XC4000E)

May 14, 1999 (Version 1.6)                                                                                                                   6-21

XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 8: Supported Sources for XC4000 Series Device               Optional Delay Guarantees Zero Hold Time
                                                                  The data input to the register can optionally be delayed by
                           XC4000E/EX XC4000XL                    several nanoseconds. With the delay enabled, the setup
                           Series Inputs Series Inputs            time of the input flip-flop is increased so that normal clock
                                                                  routing does not result in a positive hold-time requirement.
            Source         5 V, 5 V,         3.3 V                A positive hold time requirement can lead to unreliable,
                           TTL CMOS         CMOS                  temperature- or processing-dependent operation.

Any device, Vcc = 3.3 V,                                          The input flip-flop setup time is defined between the data
CMOS outputs                                                      measured at the device I/O pin and the clock input at the
                                 Unreli                           IOB (not at the clock pin). Any routing delay from the device
XC4000 Series, Vcc = 5 V,        -able                            clock pin to the clock input of the IOB must, therefore, be
TTL outputs                       Data                            subtracted from this setup time to arrive at the real setup
                                                                  time requirement relative to the device pins. A short speci-
Any device, Vcc = 5 V,                                            fied setup time might, therefore, result in a negative setup
TTL outputs (Voh  3.7 V)                                          time at the device pins, i.e., a positive hold-time require-
Any device, Vcc = 5 V,                     
CMOS outputs                                                      When a delay is inserted on the data line, more clock delay
                                                                  can be tolerated without causing a positive hold-time
XC4000XL 5-Volt Tolerant I/Os                                     requirement. Sufficient delay eliminates the possibility of a
                                                                  data hold-time requirement at the external pin. The maxi-
The I/Os on the XC4000XL are fully 5-volt tolerant even           mum delay is therefore inserted as the default.
though the VCC is 3.3 volts. This allows 5 V signals to
directly connect to the XC4000XL inputs without damage,           The XC4000E IOB has a one-tap delay element: either the
as shown in Table 8. In addition, the 3.3 volt VCC can be         delay is inserted (default), or it is not. The delay guarantees
applied before or after 5 volt signals are applied to the I/Os.   a zero hold time with respect to clocks routed through any
This makes the XC4000XL immune to power supply                    of the XC4000E global clock buffers. (See "Global Nets and
sequencing problems.                                              Buffers (XC4000E only)" on page 35 for a description of the
                                                                  global clock buffers in the XC4000E.) For a shorter input
Registered Inputs                                                 register setup time, with non-zero hold, attach a NODELAY
                                                                  attribute or property to the flip-flop.
The I1 and I2 signals that exit the block can each carry
either the direct or registered input signal.                     The XC4000X IOB has a two-tap delay element, with
                                                                  choices of a full delay, a partial delay, or no delay. The
The input and output storage elements in each IOB have a          attributes or properties used to select the desired delay are
common clock enable input, which, through configuration,          shown in Table 10. The choices are no added attribute,
can be activated individually for the input or output flip-flop,  MEDDELAY, and NODELAY. The default setting, with no
or both. This clock enable operates exactly like the EC pin       added attribute, ensures no hold time with respect to any of
on the XC4000 Series CLB. It cannot be inverted within the        the XC4000X clock buffers, including the Global Low-Skew
IOB.                                                              buffers. MEDDELAY ensures no hold time with respect to
                                                                  the Global Early buffers. Inputs with NODELAY may have a
The storage element behavior is shown in Table 9.                 positive hold time with respect to all clock buffers. For a
                                                                  description of each of these buffers, see "Global Nets and
Table 9: Input Register Functionality                             Buffers (XC4000X only)" on page 37.
(active rising edge is shown)
                                                                  Table 10: XC4000X IOB Input Delay Element
Mode                Clock  Clock         D                 Q

Power-Up or         X        X           X    SR


Flip-Flop           __/      1*          D                 D

                    0        X           X                 Q              Value                    When to Use
                                                                  full delay        Zero Hold with respect to Global
Latch               1        1*          X                 Q      (default, no      Low-Skew Buffer, Global Early Buffer
                                                                  attribute added)
                    0        1*          D                 D      MEDDELAY          Zero Hold with respect to Global Early
Both                X        0           X                 Q      NODELAY           Short Setup, positive Hold time

Legend:      Don't care
         X   Rising edge
       __/   Set or Reset value. Reset is default.
       SR    Input is Low or unconnected (default value)
        0*   Input is High or unconnected (default value)

6-22                                                                                May 14, 1999 (Version 1.6)

                                               XC4000E and XC4000X Series Field Programmable Gate Arrays

Additional Input Latch for Fast Capture (XC4000X only) the desired delay based on the discussion in the previous

The XC4000X IOB has an additional optional latch on the subsection.

input. This latch, as shown in Figure 16, is clocked by the                                                                           IOB Output Signals
output clock -- the clock used for the output flip-flop --
rather than the input clock. Therefore, two different clocks                                                                          Output signals can be optionally inverted within the IOB,
can be used to clock the two input storage elements. This                                                                             and can pass directly to the pad or be stored in an
additional latch allows the very fast capture of input data,                                                                          edge-triggered flip-flop. The functionality of this flip-flop is
which is then synchronized to the internal clock by the IOB                                                                           shown in Table 11.

flip-flop or latch.                                                                                                                   An active-High 3-state signal can be used to place the out-

To use this Fast Capture technique, drive the output clock                                                                            put buffer in a high-impedance state, implementing 3-state
pin (the Fast Capture latching signal) from the output of one                                                                         outputs or bidirectional I/O. Under configuration control, the
of the Global Early buffers supplied in the XC4000X. The                                                                              output (OUT) and output 3-state (T) signals can be
second storage element should be clocked by a Global                                                                                  inverted. The polarity of these signals is independently con-
Low-Skew buffer, to synchronize the incoming data to the                                                                              figured for each IOB.

internal logic. (See Figure 17.) These special buffers are                                                                            The 4-mA maximum output current specification of many
described in "Global Nets and Buffers (XC4000X only)" on                                                                              FPGAs often forces the user to add external buffers, which
page 37.                                                                                                                              are especially cumbersome on bidirectional I/O lines. The

The Fast Capture latch (FCL) is designed primarily for use XC4000E and XC4000EX/XL devices solve many of these
with a Global Early buffer. For Fast Capture, a single clock problems by providing a guaranteed output sink current of
signal is routed through both a Global Early buffer and a 12 mA. Two adjacent outputs can be interconnected exter-
Global Low-Skew buffer. (The two buffers share an input nally to sink up to 24 mA. The XC4000E and XC4000EX/XL
pad.) The Fast Capture latch is clocked by the Global Early FPGAs can thus directly drive buses on a printed circuit
buffer, and the standard IOB flip-flop or latch is clocked by board.

the Global Low-Skew buffer. This mode is the safest way to By default, the output pull-up structure is configured as a

use the Fast Capture latch, because the clock buffers on TTL-like totem-pole. The High driver is an n-channel pull-up

both storage elements are driven by the same pad. There is transistor, pulling to a voltage one transistor threshold

no external skew between clock pads to create potential below Vcc. Alternatively, the outputs can be globally config-

problems.                                                                                                                             ured as CMOS drivers, with p-channel pull-up transistors

To place the Fast Capture latch in a design, use one of the                                                                           pulling to Vcc. This option, applied using the bitstream gen-
special library symbols, ILFFX or ILFLX. ILFFX is a trans-                                                                            eration software, applies to all outputs on the device. It is
parent-Low Fast Capture latch followed by an active-High                                                                              not individually programmable. In the XC4000XL, all out-
input flip-flop. ILFLX is a transparent-Low Fast Capture                                                                              puts are pulled to the positive supply rail.

latch followed by a transparent-High input latch. Any of the                                                                          Table 11: Output Flip-Flop Functionality (active rising
clock inputs can be inverted before driving the library ele-                                                                          edge is shown)
ment, and the inverter is absorbed into the IOB. If a single

BUFG output is used to drive both clock inputs, the soft-                                                                                             Clock
ware automatically runs the clock through both a Global
Low-Skew buffer and a Global Early buffer, and clocks the                                                                             Mode Clock Enable T        D                             Q

Fast Capture latch appropriately.                                                                                                     Power-Up   X    X      0*  X                             SR

Figure 16 on page 21 also shows a two-tap delay on the                                                                                or GSR
input. By default, if the Fast Capture latch is used, the Xilinx
                                                                                                                                                 X    0      0*  X                             Q

software assumes a Global Early buffer is driving the clock,                                                                          Flip-Flop  __/  1*     0*  D                             D

and selects MEDDELAY to ensure a zero hold time. Select                                                                                          X    X      1   X                             Z

                                                                                                                                                 0    X      0*  X                             Q

IPAD                          ILFFX  Q  to internal                                                                                   Legend:    Don't care
                BUFGE                                                                                                                        X   Rising edge
                       D                logic                                                                                               __/  Set or Reset value. Reset is default.
                                                                                                                                            SR   Input is Low or unconnected (default value)
                       GF                                                                                                                    0*  Input is High or unconnected (default value)
                       CE                                                                                                                    1*  3-state




Figure 17: Examples Using XC4000X FCL

May 14, 1999 (Version 1.6)                                                                                                                                                                     6-23

XC4000E and XC4000X Series Field Programmable Gate Arrays

Any XC4000 Series 5-Volt device with its outputs config-        Power/Ground pin pairs are connected to special Power
ured in TTL mode can drive the inputs of any typical            and Ground planes within the packages, to reduce ground
3.3-Volt device. (For a detailed discussion of how to inter-    bounce. Therefore, the maximum total capacitive load is
face between 5 V and 3.3 V devices, see the 3V Products         300 pF between each external Power/Ground pin pair.
section of The Programmable Logic Data Book.)                   Maximum loading may vary for the low-voltage devices.

Supported destinations for XC4000 Series device outputs         For slew-rate limited outputs this total is two times larger for
are shown in Table 12.                                          each device type: 400 pF for XC4000E devices and 600 pF
                                                                for XC4000X devices. This maximum capacitive load
An output can be configured as open-drain (open-collector)      should not be exceeded, as it can result in ground bounce
by placing an OBUFT symbol in a schematic or HDL code,          of greater than 1.5 V amplitude and more than 5 ns dura-
then tying the 3-state pin (T) to the output signal, and the    tion. This level of ground bounce may cause undesired
input pin (I) to Ground. (See Figure 18.)                       transient behavior on an output, or in the internal logic. This
                                                                restriction is common to all high-speed digital ICs, and is
Table 12: Supported Destinations for XC4000 Series              not particular to Xilinx or the XC4000 Series.
                                                                XC4000 Series devices have a feature called "Soft
                                            XC4000 Series       Start-up," designed to reduce ground bounce when all out-
                                                                puts are turned on simultaneously at the end of configura-
                                            Outputs             tion. When the configuration process is finished and the
                                                                device starts up, the first activation of the outputs is auto-
            Destination                   3.3 V, 5 V, 5 V,      matically slew-rate limited. Immediately following the initial
                                                                activation of the I/O, the slew rate of the individual outputs
Any typical device, Vcc = 3.3 V,          CMOS TTL CMOS         is determined by the individual configuration option for each
CMOS-threshold inputs                                           IOB.
Any device, Vcc = 5 V,                                   some1
TTL-threshold inputs                                            Global Three-State
Any device, Vcc = 5 V,                                       
CMOS-threshold inputs                                           A separate Global 3-State line (not shown in Figure 15 or
                                          Unreliable            Figure 16) forces all FPGA outputs to the high-impedance
                                                                state, unless boundary scan is enabled and is executing an
                                            Data                EXTEST instruction. This global net (GTS) does not com-
                                                                pete with other routing resources; it uses a dedicated distri-
      1. Only if destination device has 5-V tolerant inputs     bution network.

                                   OBUFT    OPAD                GTS can be driven from any user-programmable pin as a
Figure 18: Open-Drain Output                                    global 3-state input. To use this global net, place an input
                                                 X6702          pad and input buffer in the schematic or HDL code, driving
                                                                the GTS pin of the STARTUP symbol. A specific pin loca-
Output Slew Rate                                                tion can be assigned to this input using a LOC attribute or
                                                                property, just as with any other user-programmable pad. An
The slew rate of each output buffer is, by default, reduced,    inverter can optionally be inserted after the input buffer to
to minimize power bus transients when switching non-criti-      invert the sense of the Global 3-State signal. Using GTS is
cal signals. For critical signals, attach a FAST attribute or   similar to GSR. See Figure 2 on page 11 for details.
property to the output buffer or flip-flop.
                                                                Alternatively, GTS can be driven from any internal node.
For XC4000E devices, maximum total capacitive load for
simultaneous fast mode switching in the same direction is
200 pF for all package pins between each Power/Ground
pin pair. For XC4000X devices, additional internal

6-24                                                            May 14, 1999 (Version 1.6)

                                 XC4000E and XC4000X Series Field Programmable Gate Arrays

Output Multiplexer/2-Input Function Generator                         Other IOB Options
(XC4000X only)
                                                                      There are a number of other programmable options in the
As shown in Figure 16 on page 21, the output path in the              XC4000 Series IOB.
XC4000X IOB contains an additional multiplexer not avail-
able in the XC4000E IOB. The multiplexer can also be con-             Pull-up and Pull-down Resistors

figured as a 2-input function generator, implementing a               Programmable pull-up and pull-down resistors are useful
pass-gate, AND-gate, OR-gate, or XOR-gate, with 0, 1, or 2            for tying unused pins to Vcc or Ground to minimize power
inverted inputs. The logic used to implement these func-              consumption and reduce noise sensitivity. The configurable
tions is shown in the upper gray area of Figure 16.                   pull-up resistor is a p-channel transistor that pulls to Vcc.

When configured as a multiplexer, this feature allows two             The configurable pull-down resistor is an n-channel transis-
output signals to time-share the same output pad; effec-              tor that pulls to Ground.

tively doubling the number of device outputs without requir-          The value of these resistors is 50 k - 100 k. This high
ing a larger, more expensive package.                                 value makes them unsuitable as wired-AND pull-up resis-
When the MUX is configured as a 2-input function genera-

tor, logic can be implemented within the IOB itself. Com- The pull-up resistors for most user-programmable IOBs are

bined with a Global Early buffer, this arrangement allows active during the configuration process. See Table 22 on

very high-speed gating of a single signal. For example, a page 58 for a list of pins with pull-ups active before and dur-

wide decoder can be implemented in CLBs, and its output ing configuration.

gated with a Read or Write Strobe Driven by a BUFGE                   After configuration, voltage levels of unused pads, bonded
buffer, as shown in Figure 19. The critical-path pin-to-pin           or un-bonded, must be valid logic levels, to reduce noise
delay of this circuit is less than 6 nanoseconds.                     sensitivity and avoid excess current. Therefore, by default,

As shown in Figure 16, the IOB input pins Out, Output                 unused pads are configured with the internal pull-up resis-       6
Clock, and Clock Enable have different delays and different           tor active. Alternatively, they can be individually configured

flexibilities regarding polarity. Additionally, Output Clock with the pull-down resistor, or as a driven output, or to be

sources are more limited than the other inputs. Therefore, driven by an external source. To activate the internal

the Xilinx software does not move logic into the IOB func- pull-up, attach the PULLUP library component to the net

tion generators unless explicitly directed to do so.                  attached to the pad. To activate the internal pull-down,

The user can specify that the IOB function generator be               attach the PULLDOWN library component to the net
used, by placing special library symbols beginning with the           attached to the pad.

letter "O." For example, a 2-input AND-gate in the IOB func-          Independent Clocks
tion generator is called OAND2. Use the symbol input pin
labelled "F" for the signal on the critical path. This signal is      Separate clock signals are provided for the input and output
placed on the OK pin -- the IOB input with the shortest               flip-flops. The clock can be independently inverted for each
delay to the function generator. Two examples are shown in            flip-flop within the IOB, generating either falling-edge or ris-
Figure 20.                                                            ing-edge triggered flip-flops. The clock inputs for each IOB
                                                                      are independent, except that in the XC4000X, the Fast

IPAD                                                                  Capture latch shares an IOB input with the output clock pin.

               BUFGE                         F     OPAD               Early Clock for IOBs (XC4000X only)
                                            OAND2  FAST
         from                                                         Special early clocks are available for IOBs. These clocks
         internal                                                     are sourced by the same sources as the Global Low-Skew
         logic                                                        buffers, but are separately buffered. They have fewer loads
                                                                      and therefore less delay. The early clock can drive either
                                                      X9019           the IOB output clock or the IOB input clock, or both. The
                                                                      early clock allows fast capture of input data, and fast
Figure 19: Fast Pin-to-Pin Path in XC4000X

                                                                      clock-to-output on output data. The Global Early buffers

                                                                      that drive these clocks are described in "Global Nets and

      F                                                 OMUX2         Buffers (XC4000X only)" on page 37.


                                            D1                        Global Set/Reset

      OAND2                                 S0                        As with the CLB registers, the Global Set/Reset signal
                                     X6598                            (GSR) can be used to set or clear the input and output reg-
                                                                      isters, depending on the value of the INIT attribute or prop-
                                                               X6599  erty. The two flip-flops can be individually configured to set

Figure 20: AND & MUX Symbols in XC4000X IOB

May 14, 1999 (Version 1.6)                                                                                 6-25

XC4000E and XC4000X Series Field Programmable Gate Arrays

or clear on reset and after configuration. Other than the glo-       Standard 3-State Buffer
bal GSR net, no user-controlled set/reset signal is available
to the I/O flip-flops. The choice of set or clear applies to         All three pins are used. Place the library element BUFT.
both the initial state of the flip-flop and the response to the      Connect the input to the I pin and the output to the O pin.
Global Set/Reset pulse. See "Global Set/Reset" on                    The T pin is an active-High 3-state (i.e. an active-Low
page 11 for a description of how to use GSR.                         enable). Tie the T pin to Ground to implement a standard
JTAG Support
                                                                     Wired-AND with Input on the I Pin
Embedded logic attached to the IOBs contains test struc-
tures compatible with IEEE Standard 1149.1 for boundary              The buffer can be used as a Wired-AND. Use the WAND1
scan testing, permitting easy chip and board-level testing.          library symbol, which is essentially an open-drain buffer.
More information is provided in "Boundary Scan" on                   WAND4, WAND8, and WAND16 are also available. See the
page 42.                                                             XACT Libraries Guide for further information.

Three-State Buffers                                                  The T pin is internally tied to the I pin. Connect the input to
                                                                     the I pin and the output to the O pin. Connect the outputs of
A pair of 3-state buffers is associated with each CLB in the         all the WAND1s together and attach a PULLUP symbol.
array. (See Figure 27 on page 30.) These 3-state buffers
can be used to drive signals onto the nearest horizontal             Wired OR-AND
longlines above and below the CLB. They can therefore be
used to implement multiplexed or bidirectional buses on the          The buffer can be configured as a Wired OR-AND. A High
horizontal longlines, saving logic resources. Programmable           level on either input turns off the output. Use the
pull-up resistors attached to these longlines help to imple-         WOR2AND library symbol, which is essentially an
ment a wide wired-AND function.                                      open-drain 2-input OR gate. The two input pins are func-
                                                                     tionally equivalent. Attach the two inputs to the I0 and I1
The buffer enable is an active-High 3-state (i.e. an                 pins and tie the output to the O pin. Tie the outputs of all the
active-Low enable), as shown in Table 13.                            WOR2ANDs together and attach a PULLUP symbol.

Another 3-state buffer with similar access is located near           Three-State Buffer Examples
each I/O block along the right and left edges of the array.
(See Figure 33 on page 34.)                                          Figure 21 shows how to use the 3-state buffers to imple-
                                                                     ment a wired-AND function. When all the buffer inputs are
The horizontal longlines driven by the 3-state buffers have          High, the pull-up resistor(s) provide the High output.
a weak keeper at each end. This circuit prevents undefined
floating levels. However, it is overridden by any driver, even       Figure 22 shows how to use the 3-state buffers to imple-
a pull-up resistor.                                                  ment a multiplexer. The selection is accomplished by the
                                                                     buffer 3-state signal.
Special longlines running along the perimeter of the array
can be used to wire-AND signals coming from nearby IOBs              Pay particular attention to the polarity of the T pin when
or from internal longlines. These longlines form the wide            using these buffers in a design. Active-High 3-state (T) is
edge decoders discussed in "Wide Edge Decoders" on                   identical to an active-Low output enable, as shown in
page 27.                                                             Table 13.

Three-State Buffer Modes                                             Table 13: Three-State Buffer Functionality

The 3-state buffers can be configured in three modes:                         IN   T                           OUT

Standard 3-state buffer                                                     X    1                           Z
Wired-AND with input on the I pin
Wired OR-AND                                                                IN   0                           IN

                                                  Z = DA q DB q (DC+DD) q (DE+DF)                    P

                                                                                                     U  U

                                                                                                     L  P


      DA                               DB                        DC                DE
                                WAND1                            DD                DF


Figure 21: Open-Drain Buffers Implement a Wired-AND Function

6-26                                                                                                 May 14, 1999 (Version 1.6)

                                 XC4000E and XC4000X Series Field Programmable Gate Arrays

         ~100 k                                    Z = DA A + DB B + DC C + DN N

                            DA                     DB                        DC                    DN

                                             BUFT                   BUFT                     BUFT                   BUFT
                             A                       B                        C                     N


         "Weak Keeper"

                         Figure 22: 3-State Buffers Implement a Multiplexer

Wide Edge Decoders

Dedicated decoder circuitry boosts the performance of         LUP symbol. Location attributes or properties such as L
wide decoding functions. When the address or data field is    (left edge) or TR (right half of top edge) should also be used
wider than the function generator inputs, FPGAs need          to ensure the correct placement of the decoder inputs.
multi-level decoding and are thus slower than PALs.
XC4000 Series CLBs have nine inputs. Any decoder of up                                        INTERCONNECT
to nine inputs is, therefore, compact and fast. However,
there is also a need for much wider decoders, especially for              IOB                      IOB
address decoding in large microprocessor systems.
                                                                          .I1                             .I1

An XC4000 Series FPGA has four programmable decoders                      A               C               B

located on each edge of the device. The inputs to each                                                                                                                                 6

decoder are any of the IOB I1 signals on that edge plus one

local interconnect per CLB row or column. Each row or col-

umn of CLBs provides up to three variables or their compli-                                                                                               (  C) .....
ments., as shown in Figure 23. Each decoder generates a
High output (resistor pull-up) when the AND condition of                                                                                                  (A B C) .....
the selected inputs, or their complements, is true. This is
analogous to a product term in typical PAL devices.                                                                                                       (A B C) .....

                                                                                                                                                          (A B C) .....

Each of these wired-AND gates is capable of accepting up                                                                                                                        X2627
to 42 inputs on the XC4005E and 72 on the XC4013E.
                                                              Figure 23: XC4000 Series Edge Decoding Example

There are up to 96 inputs for each decoder on the

XC4028X and 132 on the XC4052X. The decoders may                                          OSC4
also be split in two when a larger number of narrower

decoders are required, for a maximum of 32 decoders per                                            F8M

device.                                                                                            F500K

The decoder outputs can drive CLB inputs, so they can be                                                           F16K
combined with other logic to form a PAL-like AND/OR struc-                                                         F490
ture. The decoder outputs can also be routed directly to the
chip outputs. For fastest speed, the output should be on the                                                        F15
same chip edge as the decoder. Very large PALs can be
emulated by ORing the decoder outputs in a CLB. This                                                                                                                X6703
decoding feature covers what has long been considered a
weakness of older FPGAs. Users often resorted to external     Figure 24: XC4000 Series Oscillator Symbol
PALs for simple but fast decoding functions. Now, the dedi-
cated decoders in the XC4000 Series device can imple-         On-Chip Oscillator
ment these functions fast and efficiently.
                                                              XC4000 Series devices include an internal oscillator. This
To use the wide edge decoders, place one or more of the       oscillator is used to clock the power-on time-out, for config-
WAND library symbols (WAND1, WAND4, WAND8,                    uration memory clearing, and as the source of CCLK in
WAND16). Attach a DECODE attribute or property to each        Master configuration modes. The oscillator runs at a nomi-
WAND symbol. Tie the outputs together and attach a PUL-       nal 8 MHz frequency that varies with process, Vcc, and
                                                              temperature. The output frequency falls between 4 and 10

May 14, 1999 (Version 1.6)                                                                                                                                   6-27

XC4000E and XC4000X Series Field Programmable Gate Arrays

The oscillator output is optionally available after configura-    Global routing consists of dedicated networks primarily
tion. Any two of four resynchronized taps of a built-in divider      designed to distribute clocks throughout the device with
are also available. These taps are at the fourth, ninth, four-       minimum delay and skew. Global routing can also be
teenth and nineteenth bits of the divider. Therefore, if the         used for other high-fanout signals.
primary oscillator output is running at the nominal 8 MHz,
the user has access to an 8 MHz clock, plus any two of 500       Five interconnect types are distinguished by the relative
kHz, 16kHz, 490Hz and 15Hz (up to 10% lower for low-volt-        length of their segments: single-length lines, double-length
age devices). These frequencies can vary by as much as           lines, quad and octal lines (XC4000X only), and longlines.
-50% or +25%.                                                    In the XC4000X, direct connects allow fast data flow
                                                                 between adjacent CLBs, and between IOBs and CLBs.
These signals can be accessed by placing the OSC4
library element in a schematic or in HDL code (see               Extra routing is included in the IOB pad ring. The XC4000X
Figure 24).                                                      also includes a ring of octal interconnect lines near the
                                                                 IOBs to improve pin-swapping and routing to locked pins.
The oscillator is automatically disabled after configuration if
the OSC4 symbol is not used in the design.                       XC4000E/X devices include two types of global buffers.
                                                                 These global buffers have different properties, and are
Programmable Interconnect                                        intended for different purposes. They are discussed in
                                                                 detail later in this section.
All internal connections are composed of metal segments
with programmable switching points and switching matrices        CLB Routing Connections
to implement the desired routing. A structured, hierarchical
matrix of routing resources is provided to achieve efficient     A high-level diagram of the routing resources associated
automated routing.                                               with one CLB is shown in Figure 25. The shaded arrows
                                                                 represent routing present only in XC4000X devices.
The XC4000E and XC4000X share a basic interconnect
structure. XC4000X devices, however, have additional rout-       Table 14 shows how much routing of each type is available
ing not available in the XC4000E. The extra routing              in XC4000E and XC4000X CLB arrays. Clearly, very large
resources allow high utilization in high-capacity devices. All   designs, or designs with a great deal of interconnect, will
XC4000X-specific routing resources are clearly identified        route more easily in the XC4000X. Smaller XC4000E
throughout this section. Any resources not identified as         designs, typically requiring significantly less interconnect,
XC4000X-specific are present in all XC4000 Series                do not require the additional routing.
                                                                 Figure 27 on page 30 is a detailed diagram of both the
This section describes the varied routing resources avail-       XC4000E and the XC4000X CLB, with associated routing.
able in XC4000 Series devices. The implementation soft-          The shaded square is the programmable switch matrix,
ware automatically assigns the appropriate resources             present in both the XC4000E and the XC4000X. The
based on the density and timing requirements of the              L-shaped shaded area is present only in XC4000X devices.
design.                                                          As shown in the figure, the XC4000X block is essentially an
                                                                 XC4000E block with additional routing.
Interconnect Overview
                                                                 CLB inputs and outputs are distributed on all four sides,
There are several types of interconnect.                         providing maximum routing flexibility. In general, the entire
                                                                 architecture is symmetrical and regular. It is well suited to
CLB routing is associated with each row and column of          established placement and routing algorithms. Inputs, out-
    the CLB array.                                               puts, and function generators can freely swap positions
                                                                 within a CLB to avoid routing congestion during the place-
IOB routing forms a ring (called a VersaRing) around           ment and routing operation.
    the outside of the CLB array. It connects the I/O with the
    internal logic blocks.

6-28                                                             May 14, 1999 (Version 1.6)

                                   XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                                        CLB                     Quad



               Quad Long Global Long Double Single Global Carry Direct

                                Clock                          Clock Chain Connect


Figure 25: High-Level Routing Diagram of XC4000 Series CLB (shaded arrows indicate XC4000X only)

Table 14: Routing per CLB in XC4000 Series Devices                                                                                                                 6

               XC4000E                     XC4000X                      Double Singles  Double

           Vertical Horizontal Vertical Horizontal

Singles    8                8          8   8

Doubles    4                4          4   4                   Double

Quads      0                0          12  12

Longlines  6                6          10  6                   Singles                          Six Pass Transistors
                                                               Double                             Per Switch Matrix
Direct     0                0          2   2                                                     Interconnect Point


Globals    4                0          8   0

Carry Logic 2               0          1   0                                                                                                           X6600

Total      24               18         45  32                  Figure 26: Programmable Switch Matrix (PSM)

Programmable Switch Matrices                                   Single-Length Lines

The horizontal and vertical single- and double-length lines    Single-length lines provide the greatest interconnect flexi-
intersect at a box called a programmable switch matrix         bility and offer fast routing between adjacent blocks. There
(PSM). Each switch matrix consists of programmable pass        are eight vertical and eight horizontal single-length lines
transistors used to establish connections between the lines    associated with each CLB. These lines connect the switch-
(see Figure 26).                                               ing matrices that are located in every row and a column of
For example, a single-length signal entering on the right
side of the switch matrix can be routed to a single-length     Single-length lines are connected by way of the program-
line on the top, left, or bottom sides, or any combination     mable switch matrices, as shown in Figure 28. Routing
thereof, if multiple branches are required. Similarly, a dou-  connectivity is shown in Figure 27.
ble-length signal can be routed to a double-length line on
any or all of the other three edges of the programmable        Single-length lines incur a delay whenever they go through
switch matrix.                                                 a switching matrix. Therefore, they are not suitable for rout-
                                                               ing signals for long distances. They are normally used to
                                                               conduct signals within a localized area and to provide the
                                                               branching for nets with fanout greater than one.

May 14, 1999 (Version 1.6)                                                                                                                                   6-29

XC4000E and XC4000X Series Field Programmable Gate Arrays




                                                           F4 C4 G4               YQ    DIRECT




                                                               CLB G3





                                                           XQ             F2 C2 G2



                        Common to XC4000E and XC4000X
                        XC4000X only
                        Programmable Switch Matrix

Figure 27: Detail of Programmable Interconnect Associated with XC4000 Series CLB

6-30                                                                              May 14, 1999 (Version 1.6)

                             XC4000E and XC4000X Series Field Programmable Gate Arrays

CLB                    CLB  PSM  CLB                                                                                                                                                CLB  CLB                              CLB
                  PSM  CLB                   Doubles                                                                                                                                CLB  CLB                              CLB
CLB                                          Doubles


     PSM                    PSM

CLB                    CLB       CLB                                                                                                                                                CLB  CLB                              CLB

                                                                                                                                                                             X6601                                        X9014

Figure 28: Single- and Double-Length Lines, with                                                                                                                                    Figure 29: Quad Lines (XC4000X only)
Programmable Switch Matrices (PSMs)

Double-Length Lines                                                                                                                                                                 and up to two independent outputs. Only one of the inde-

The double-length lines consist of a grid of metal segments, pendent inputs can be buffered.                                                                                                                                                       6

each twice as long as the single-length lines: they run past                                                                                                                        The place and route software automatically uses the timing
two CLBs before entering a switch matrix. Double-length                                                                                                                             requirements of the design to determine whether or not a
lines are grouped in pairs with the switch matrices stag-                                                                                                                           quad line signal should be buffered. A heavily loaded signal
gered, so that each line goes through a switch matrix at                                                                                                                            is typically buffered, while a lightly loaded one is not. One
every other row or column of CLBs (see Figure 28).                                                                                                                                  scenario is to alternate buffers and pass transistors. This

There are four vertical and four horizontal double-length allows both vertical and horizontal quad lines to be buffered

lines associated with each CLB. These lines provide faster at alternating buffered switch matrices.

signal routing over intermediate distances, while retaining                                                                                                                         Due to the buffered switch matrices, quad lines are very
routing flexibility. Double-length lines are connected by way                                                                                                                       fast. They provide the fastest available method of routing
of the programmable switch matrices. Routing connectivity                                                                                                                           heavily loaded signals for long distances across the device.
is shown in Figure 27.

Quad Lines (XC4000X only)                                                                                                                                                           Longlines

XC4000X devices also include twelve vertical and twelve                                                                                                                             Longlines form a grid of metal interconnect segments that
horizontal quad lines per CLB row and column. Quad lines                                                                                                                            run the entire length or width of the array. Longlines are
are four times as long as the single-length lines. They are                                                                                                                         intended for high fan-out, time-critical signal nets, or nets
interconnected via buffered switch matrices (shown as dia-                                                                                                                          that are distributed over long distances. In XC4000X
monds in Figure 27 on page 30). Quad lines run past four                                                                                                                            devices, quad lines are preferred for critical nets, because
CLBs before entering a buffered switch matrix. They are                                                                                                                             the buffered switch matrices make them faster for high
grouped in fours, with the buffered switch matrices stag-                                                                                                                           fan-out nets.
gered, so that each line goes through a buffered switch
matrix at every fourth CLB location in that row or column.                                                                                                                          Two horizontal longlines per CLB can be driven by 3-state
(See Figure 29.)                                                                                                                                                                    or open-drain drivers (TBUFs). They can therefore imple-
                                                                                                                                                                                    ment unidirectional or bidirectional buses, wide multiplex-
The buffered switch matrixes have four pins, one on each                                                                                                                            ers, or wired-AND functions. (See "Three-State Buffers" on
edge. All of the pins are bidirectional. Any pin can drive any                                                                                                                      page 26 for more details.)
or all of the other pins.
                                                                                                                                                                                    Each horizontal longline driven by TBUFs has either two
Each buffered switch matrix contains one buffer and six                                                                                                                             (XC4000E) or eight (XC4000X) pull-up resistors. To acti-
pass transistors. It resembles the programmable switch                                                                                                                              vate these resistors, attach a PULLUP symbol to the
matrix shown in Figure 26, with the addition of a program-                                                                                                                          long-line net. The software automatically activates the
mable buffer. There can be up to two independent inputs                                                                                                                             appropriate number of pull-ups. There is also a weak
                                                                                                                                                                                    keeper at each end of these two horizontal longlines. This

May 14, 1999 (Version 1.6)                                                                                                                                                                                                       6-31

XC4000E and XC4000X Series Field Programmable Gate Arrays

circuit prevents undefined floating levels. However, it is                                                                                            I/O Routing
overridden by any driver, even a pull-up resistor.
                                                                                                                                                      XC4000 Series devices have additional routing around the
Each XC4000E longline has a programmable splitter switch                                                                                              IOB ring. This routing is called a VersaRing. The VersaRing
at its center, as does each XC4000X longline driven by                                                                                                facilitates pin-swapping and redesign without affecting
TBUFs. This switch can separate the line into two indepen-                                                                                            board layout. Included are eight double-length lines span-
dent routing channels, each running half the width or height                                                                                          ning two CLBs (four IOBs), and four longlines. Global lines
of the array.                                                                                                                                         and Wide Edge Decoder lines are provided. XC4000X
                                                                                                                                                      devices also include eight octal lines.
Each XC4000X longline not driven by TBUFs has a buff-
ered programmable splitter switch at the 1/4, 1/2, and 3/4                                                                                            A high-level diagram of the VersaRing is shown in
points of the array. Due to the buffering, XC4000X longline                                                                                           Figure 31. The shaded arrows represent routing present
performance does not deteriorate with the larger array                                                                                                only in XC4000X devices.
sizes. If the longline is split, the resulting partial longlines
are independent.                                                                                                                                      Figure 33 on page 34 is a detailed diagram of the XC4000E
                                                                                                                                                      and XC4000X VersaRing. The area shown includes two
Routing connectivity of the longlines is shown in Figure 27                                                                                           IOBs. There are two IOBs per CLB row or column, there-
on page 30.                                                                                                                                           fore this diagram corresponds to the CLB routing diagram
                                                                                                                                                      shown in Figure 27 on page 30. The shaded areas repre-
Direct Interconnect (XC4000X only)                                                                                                                    sent routing and routing connections present only in
                                                                                                                                                      XC4000X devices.
The XC4000X offers two direct, efficient and fast connec-
tions between adjacent CLBs. These nets facilitate a data                                                                                             Octal I/O Routing (XC4000X only)
flow from the left to the right side of the device, or from the
top to the bottom, as shown in Figure 30. Signals routed on                                                                                           Between the XC4000X CLB array and the pad ring, eight
the direct interconnect exhibit minimum interconnect prop-                                                                                            interconnect tracks provide for versatility in pin assignment
agation delay and use no general routing resources.                                                                                                   and fixed pinout flexibility. (See Figure 32 on page 33.)

The direct interconnect is also present between CLBs and                                                                                              These routing tracks are called octals, because they can be
adjacent IOBs. Each IOB on the left and top device edges                                                                                              broken every eight CLBs (sixteen IOBs) by a programma-
has a direct path to the nearest CLB. Each CLB on the right                                                                                           ble buffer that also functions as a splitter switch. The buffers
and bottom edges of the array has a direct path to the near-                                                                                          are staggered, so each line goes through a buffer at every
est two IOBs, since there are two IOBs for each row or col-                                                                                           eighth CLB location around the device edge.
umn of CLBs.
                                                                                                                                                      The octal lines bend around the corners of the device. The
The place and route software uses direct interconnect                                                                                                 lines cross at the corners in such a way that the segment
whenever possible, to maximize routing resources and min-                                                                                             most recently buffered before the turn has the farthest dis-
imize interconnect delays.                                                                                                                            tance to travel before the next buffer, as shown in
                                                                                                                                                      Figure 32.

      IOB  IOB               IOB  IOB  IOB  IOB

IOB             ~~ ~~ ~~ ~~                      IOB

      CLB                    CLB       CLB

IOB                                              IOB

      ~~ ~~ ~~ ~~ ~~ ~~

IOB                                              IOB

      CLB                    CLB       CLB

IOB                                              IOB

      IOB  IOB               IOB  IOB  IOB  IOB


Figure 30: XC4000X Direct Interconnect

6-32                                                                                                                                                  May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

IOB      WED
              INTERCONNECT                                                      Single

IOB                                                                             Double


Direct       Edge Double Long Global Octal                                                                6
              Decode                                      Clock                 X5995

Figure 31: High-Level Routing Diagram of XC4000 Series VersaRing (Left Edge)
WED = Wide Edge Decoder, IOB = I/O Block (shaded arrows indicate XC4000X only)

                                                     IOB                                                   IOB
                      IOB                                                                                                             IOB

Figure 32: XC4000X Octal I/O Routing                      Segment with nearest buffer
May 14, 1999 (Version 1.6)                                connects to segment with furthest buffer



XC4000E and XC4000X Series Field Programmable Gate Arrays

                                DECODER          IOB                                            QUAD

                                                 I1  I2                                               T
                                                 OK CE
                                                 T   O                                         L SINGLE







                                DECODER          IOB

                                                 T   O

                                                 OK CE

                                DECODER          IK

                                                 I1  I2


      DOUBLE  LONG  DEECDOGDEE           GLOBAL          OCTAL

                        Common to XC4000E and XC4000X
                        XC4000X only

Figure 33: Detail of Programmable Interconnect Associated with XC4000 Series IOB (Left Edge)

6-34                                                     May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

IOB inputs and outputs interface with the octal lines via the Two different types of clock buffers are available in the

single-length interconnect lines. Single-length lines are XC4000E:

also used for communication between the octals and dou-          Primary Global Buffers (BUFGP)
ble-length lines, quads, and longlines within the CLB array.    Secondary Global Buffers (BUFGS)

Segmentation into buffered octals was found to be optimal       Four Primary Global buffers offer the shortest delay and
for distributing signals over long distances around the         negligible skew. Four Secondary Global buffers have
device.                                                         slightly longer delay and slightly more skew due to poten-

Global Nets and Buffers                                         tially heavier loading, but offer greater flexibility when used
                                                                to drive non-clock CLB inputs.

Both the XC4000E and the XC4000X have dedicated glo-            The Primary Global buffers must be driven by the
bal networks. These networks are designed to distribute         semi-dedicated pads. The Secondary Global buffers can
clocks and other high fanout control signals throughout the     be sourced by either semi-dedicated pads or internal nets.
devices with minimal skew. The global buffers are

described in detail in the following sections. The text Each CLB column has four dedicated vertical Global lines.

descriptions and diagrams are summarized in Table 15. Each of these lines can be accessed by one particular Pri-

The table shows which CLB and IOB clock pins can be mary Global buffer, or by any of the Secondary Global buff-

sourced by which global buffers.                                ers, as shown in Figure 34. Each corner of the device has

In both XC4000E and XC4000X devices, placement of a one Primary buffer and one Secondary buffer.

library symbol called BUFG results in the software choos- IOBs along the left and right edges have four vertical global

ing the appropriate clock buffer, based on the timing longlines. Top and bottom IOBs can be clocked from the

requirements of the design. The detailed information in global lines in the adjacent CLB column.

these sections is included only for reference.                  A global buffer should be specified for all timing-sensitive

Global Nets and Buffers (XC4000E only)                          global signal distribution. To use a global buffer, place a      6

                                                                BUFGP (primary buffer), BUFGS (secondary buffer), or

Four vertical longlines in each CLB column are driven BUFG (either primary or secondary buffer) element in a

exclusively by special global buffers. These longlines are schematic or in HDL code. If desired, attach a LOC

in addition to the vertical longlines used for standard inter- attribute or property to direct placement to the designated

connect. The four global lines can be driven by either of two location. For example, attach a LOC=L attribute or property

types of global buffers. The clock pins of every CLB and to a BUFGS symbol to direct that a buffer be placed in one

IOB can also be sourced from local interconnect.                of the two Secondary Global buffers on the left edge of the

                                                                device, or a LOC=BL to indicate the Secondary Global

                                                                buffer on the bottom edge of the device, on the left.

Table 15: Clock Pin Access

                                                    XC4000E             XC4000X                      Local
                                                                          L&R                         Inter-
                                                BUFGP BUFGS     BUFGLS   BUFGE    T&B               connect
All CLBs in Quadrant                                                                                   
All CLBs in Device                                                                                    
IOBs on Adjacent Vertical                                                                              
Half Edge                                                                           
IOBs on Adjacent Vertical                                                                              
Full Edge
IOBs on Adjacent Horizontal                                                                           
Half Edge (Direct)
IOBs on Adjacent Horizontal                                                                           
Half Edge (through CLB globals)
IOBs on Adjacent Horizontal                                                                           
Full Edge (through CLB globals)
L = Left, R = Right, T = Top, B = Bottom

May 14, 1999 (Version 1.6)                                                                                             6-35

XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                                       IOB          IOB                        IOB                IOB

                              BUFGS                                    locals                                                                                                                       BUFGP
                  SGCK1                                                                 locals                                                                                                               PGCK4

           PGCK1                                                                                                                                                                                                           SGCK4

BUFGP                                                                                 4                               4                                                                                                                      BUFGS
                                     4                                                                                                                                                                           4
                                                                            locals                                        locals
                                                                                                  CLB  CLB

      IOB                                             Any BUFGS             X4                                     X4                                                          Any BUFGS                                                   IOB
                                                                            locals                             locals
                           locals                     One BUFGP                                                                                                                One BUFGP                           locals
                                              X4      per Global Line                                                                                                          per Global Line      X4

                           locals                                                                                                                                                                                  locals

      IOB                                                                                                                                                                                                                                  IOB

                                                                                         CLB           CLB

BUFGS                                                                                                                                                                                                                            BUFGP

           SGCK2  PGCK2                                                locals                                                                                                                                 SGCK3        PGCK3
                            BUFGP                                                       locals                                                                                                      BUFGS

                                                                       IOB          IOB                        IOB                IOB                                                                                            X6604

Figure 34: XC4000E Global Net Distribution

                      BUFGLS                                           IOB  IOB                                IOB                IOB                                                               BUFGLS

           GCK1 GCK8                                                                                                                                                                                               GCK7    GCK6
                                        BUFGE                                                                                                                                                       BUFGE

BUFGLS            BUFGE                                                locals                                                                                                                                    BUFGE           BUFGLS

                                                                                                 CLB   CLB
                                         X4           BUFGLS 8 X8                                                                 X8 8 BUFGLS                                                   X8
                                                      locals                                                                                locals                                                    8 BUFGLS
                      BUFGLS 8                                                                                                                                                                           locals
                      locals                                                                                                                                8



      IOB                                             IOB                 CLB CLOCKS                           CLB CLOCKS                                                             IOB                                  IOB
                                                      CLOCKS           (PER COLUMN)                            (PER COLUMN)                                                    CLOCKS

                                        locals                                                                                                                                                      locals

                                        locals                                                                                                                                                      locals

                                                      IOB              CLB CLOCKS                              CLB CLOCKS                                                      IOB

      IOB                                             CLOCKS (PER COLUMN)                                      (PER COLUMN) CLOCKS                                                                                         IOB

                                                                                      8                     8

                      locals                          4                                                                                               8                                                 locals
                      BUFGLS 8                                 locals                                                                  locals                                                       8 BUFGLS

                                                  X4  BUFGLS 8                                                                        8 BUFGLS                                                  X8

                                                                       X8                                                         X8

                                                                                         CLB           CLB

BUFGLS            BUFGE                                                locals                                                                                                                                       BUFGE        BUFGLS
                           BUFGE                                                   locals                                                                                                                   BUFGE

           GCK2 GCK3                                                                                                                                                                                             GCK4 GCK5

                      BUFGLS                                           IOB  IOB                                IOB                IOB                                                               BUFGLS                        X9018

Figure 35: XC4000X Global Net Distribution

6-36                                                                                                                                                                                                May 14, 1999 (Version 1.6)

                                  XC4000E and XC4000X Series Field Programmable Gate Arrays

Global Nets and Buffers (XC4000X only)                            Early and Global Low-Skew buffers share a common input;

Eight vertical longlines in each CLB column are driven by they cannot be driven by two different signals.

special global buffers. These longlines are in addition to the    Choosing an XC4000X Clock Buffer
vertical longlines used for standard interconnect. The glo-
bal lines are broken in the center of the array, to allow faster  The clocking structure of the XC4000X provides a large
distribution and to minimize skew across the whole array.         variety of features. However, it can be simple to use, with-
Each half-column global line has its own buffered multi-          out understanding all the details. The software automati-
plexer, as shown in Figure 35. The top and bottom global          cally handles clocks, along with all other routing, when the
lines cannot be connected across the center of the device,        appropriate clock buffer is placed in the design. In fact, if a
as this connection might introduce unacceptable skew. The         buffer symbol called BUFG is placed, rather than a specific
top and bottom halves of the global lines must be sepa-           type of buffer, the software even chooses the buffer most
rately driven -- although they can be driven by the same          appropriate for the design. The detailed information in this
global buffer.                                                    section is provided for those users who want a finer level of
                                                                  control over their designs.
The eight global lines in each CLB column can be driven by
either of two types of global buffers. They can also be           If fine control is desired, use the following summary and
driven by internal logic, because they can be accessed by         Table 15 on page 35 to choose an appropriate clock buffer.

single, double, and quad lines at the top, bottom, half, and The simplest thing to do is to use a Global Low-Skew

quarter points. Consequently, the number of different             buffer.

clocks that can be used simultaneously in an XC4000X If a faster clock path is needed, try a BUFG. The

device is very large.                                             software will first try to use a Global Low-Skew Buffer. If

There are four global lines feeding the IOBs at the left edge     timing requirements are not met, a faster buffer will

of the device. IOBs along the right edge have eight global        automatically be used.

lines. There is a single global line along the top and bottom If a single quadrant of the chip is sufficient for the             6
                                                                  clocked logic, and the timing requires a faster clock than
edges with access to the IOBs. All IOB global lines are bro-
                                                                  the Global Low-Skew buffer, use a Global Early buffer.
ken at the center. They cannot be connected across the

center of the device, as this connection might introduce          Global Low-Skew Buffers
unacceptable skew.
                                                                  Each corner of the XC4000X device has two Global
IOB global lines can be driven from two types of global buff-     Low-Skew buffers. Any of the eight Global Low-Skew buff-
ers, or from local interconnect. Alternatively, top and bottom    ers can drive any of the eight vertical Global lines in a col-
IOBs can be clocked from the global lines in the adjacent         umn of CLBs. In addition, any of the buffers can drive any of
CLB column.                                                       the four vertical lines accessing the IOBs on the left edge of

Two different types of clock buffers are available in the the device, and any of the eight vertical lines accessing the

XC4000X:                                                          IOBs on the right edge of the device. (See Figure 36 on

Global Low-Skew Buffers (BUFGLS)                                page 38.)

Global Early Buffers (BUFGE)                                    IOBs at the top and bottom edges of the device are

Global Low-Skew Buffers are the standard clock buffers.           accessed through the vertical Global lines in the CLB array,
They should be used for most internal clocking, whenever a        as in the XC4000E. Any Global Low-Skew buffer can,
large portion of the device must be driven.                       therefore, access every IOB and CLB in the device.

Global Early Buffers are designed to provide a faster clock       The Global Low-Skew buffers can be driven by either
access, but CLB access is limited to one-fourth of the            semi-dedicated pads or internal logic.

device. They also facilitate a faster I/O interface.              To use a Global Low-Skew buffer, instantiate a BUFGLS

Figure 35 is a conceptual diagram of the global net struc-        element in a schematic or in HDL code. If desired, attach a
ture in the XC4000X.                                              LOC attribute or property to direct placement to the desig-
                                                                  nated location. For example, attach a LOC=T attribute or

Global Early buffers and Global Low-Skew buffers share a property to direct that a BUFGLS be placed in one of the

single pad. Therefore, the same IPAD symbol can drive one two Global Low-Skew buffers on the top edge of the device,

buffer of each type, in parallel. This configuration is particu- or a LOC=TR to indicate the Global Low-Skew buffer on the

larly useful when using the Fast Capture latches, as top edge of the device, on the right.

described in "IOB Input Signals" on page 20. Paired Global

May 14, 1999 (Version 1.6)                                                                                               6-37

XC4000E and XC4000X Series Field Programmable Gate Arrays

    8     IOB              IOB  7                                     8   IOB                IOB            7

1        CLB              CLB       6                             1      CLB                CLB                 6

    I                              I                                  I                                        I
   O                              O                                  O                                        O
   B                              B                                  B                                        B

      I                                      I                    I                                            I

      O  CLB              CLB                O                    O      CLB                CLB                O

      B                                      B                    B                                            B

2                                            5                    2                                            5

                     IOB  IOB                                                          IOB  IOB

    3                                   4                            3                                      4

                                X6753                                                                       X6751

Figure 36: Any BUFGLS (GCK1 - GCK8) Can                           Figure 37: Left and Right BUFGEs Can Drive Any or
Drive Any or All Clock Inputs on the Device
                                                                  All Clock Inputs in Same Quadrant or Edge (GCK1 is

                                                                  shown. GCK2, GCK5 and GCK6 are similar.)

Global Early Buffers                                              The left-side Global Early buffers can each drive two of the
                                                                  four vertical lines accessing the IOBs on the entire left edge
Each corner of the XC4000X device has two Global Early            of the device. The right-side Global Early buffers can each
buffers. The primary purpose of the Global Early buffers is       drive two of the eight vertical lines accessing the IOBs on
to provide an earlier clock access than the potentially           the entire right edge of the device. (See Figure 37.)
heavily-loaded Global Low-Skew buffers. A clock source
applied to both buffers will result in the Global Early clock     Each left and right Global Early buffer can also drive half of
edge occurring several nanoseconds earlier than the Glo-          the IOBs along either the top or bottom edge of the device,
bal Low-Skew buffer clock edge, due to the lighter loading.       using a dedicated line that can only be accessed through
                                                                  the Global Early buffers.
Global Early buffers also facilitate the fast capture of device
inputs, using the Fast Capture latches described in "IOB          The top and bottom Global Early buffers can drive half of
Input Signals" on page 20. For Fast Capture, take a single        the IOBs along either the left or right edge of the device, as
clock signal, and route it through both a Global Early buffer     shown in Figure 38. They can only access the top and bot-
and a Global Low-Skew buffer. (The two buffers share an           tom IOBs via the CLB global lines.
input pad.) Use the Global Early buffer to clock the Fast
Capture latch, and the Global Low-Skew buffer to clock the            8   IOB                IOB  7
normal input flip-flop or latch, as shown in Figure 17 on
page 23.                                                          1      CLB                CLB       6

The Global Early buffers can also be used to provide a fast           I                              I
Clock-to-Out on device output pins. However, an early clock          O                              O
in the output flip-flop IOB must be taken into consideration         B                              B
when calculating the internal clock speed for the design.
                                                                     I                                      I
The Global Early buffers at the left and right edges of the
chip have slightly different capabilities than the ones at the       O   CLB                CLB             O
top and bottom. Refer to Figure 37, Figure 38, and
Figure 35 on page 36 while reading the following explana-            B                                      B
                                                                  2                         IOB       5
Each Global Early buffer can access the eight vertical Glo-
bal lines for all CLBs in the quadrant. Therefore, only                                IOB        4
one-fourth of the CLB clock pins can be accessed. This
restriction is in large part responsible for the faster speed of      3                              X6747
the buffers, relative to the Global Low-Skew buffers.
                                                                  Figure 38: Top and Bottom BUFGEs Can Drive Any
                                                                  or All Clock Inputs in Same Quadrant (GCK8 is
                                                                  shown. GCK3, GCK4 and GCK7 are similar.)

6-38                                                                                        May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

The top and bottom Global Early buffers are about 1 ns                      GND
slower clock to out than the left and right Global Early buff-
ers.                                                                                                  Ground and
                                                                                                      Vcc Ring for
The Global Early buffers can be driven by either semi-ded-                                            I/O Drivers
icated pads or internal logic. They share pads with the Glo-
bal Low-Skew buffers, so a single net can drive both global
buffers, as described above.

To use a Global Early buffer, place a BUFGE element in a        Vcc                   Vcc
schematic or in HDL code. If desired, attach a LOC
attribute or property to direct placement to the designated                                           Logic
location. For example, attach a LOC=T attribute or property                                           Power Grid
to direct that a BUFGE be placed in one of the two Global
Early buffers on the top edge of the device, or a LOC=TR to                 GND                                  X5422
indicate the Global Early buffer on the top edge of the
device, on the right.                                           Figure 39: XC4000 Series Power Distribution

Power Distribution

Power for the FPGA is distributed through a grid to achieve Pin Descriptions
high noise immunity and isolation between logic and I/O.
Inside the FPGA, a dedicated Vcc and Ground ring sur-           There are three types of pins in the XC4000 Series
rounding the logic array provides power to the I/O drivers,     devices:

as shown in Figure 39. An independent matrix of Vcc and Permanently dedicated pins

Ground lines supplies the interior logic of the device.          User I/O pins that can have special functions               6

This power distribution grid provides a stable supply and Unrestricted user-programmable I/O pins.

ground for all internal logic, providing the external package Before and during configuration, all outputs not used for the

power pins are all connected and appropriately de-coupled. configuration process are 3-stated with a 50 k - 100 k

Typically, a 0.1 F capacitor connected between each Vcc pull-up resistor.

pin and the board's Ground plane will provide adequate          After configuration, if an IOB is unused it is configured as
de-coupling.                                                    an input with a 50 k - 100 k pull-up resistor.

Output buffers capable of driving/sinking the specified 12      XC4000 Series devices have no dedicated Reset input.
mA loads under specified worst-case conditions may be           Any user I/O can be configured to drive the Global
capable of driving/sinking up to 10 times as much current       Set/Reset net, GSR. See "Global Set/Reset" on page 11
under best case conditions.                                     for more information on GSR.

Noise can be reduced by minimizing external load capaci-        XC4000 Series devices have no Powerdown control input,
tance and reducing simultaneous output transitions in the       as the XC3000 and XC2000 families do. The
same direction. It may also be beneficial to locate heavily     XC3000/XC2000 Powerdown control also 3-stated all of the
loaded output buffers near the Ground pads. The I/O Block       device
output buffers have a slew-rate limited mode (default) which    I/O pins. For XC4000 Series devices, use the global 3-state
should be used where output rise and fall times are not         net, GTS, instead. This net 3-states all outputs, but does
speed-critical.                                                 not place the device in low-power mode. See "IOB Output

                                                                Signals" on page 23 for more information on GTS.

                                                                Device pins for XC4000 Series devices are described in
                                                                Table 16. Pin functions during configuration for each of the
                                                                seven configuration modes are summarized in Table 22 on
                                                                page 58, in the "Configuration Timing" section.

May 14, 1999 (Version 1.6)                                                                                              6-39

XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 16: Pin Descriptions

            I/O             I/O

            During After

Pin Name Config. Config.                                         Pin Description

Permanently Dedicated Pins

                                 Eight or more (depending on package) connections to the nominal +5 V supply voltage

      VCC   I               I (+3.3 V for low-voltage devices). All must be connected, and each must be decoupled

                                 with a 0.01 - 0.1 F capacitor to Ground.

      GND   I               I    Eight or more (depending on package type) connections to Ground. All must be con-

                                 During configuration, Configuration Clock (CCLK) is an output in Master modes or Asyn-

                                 chronous Peripheral mode, but is an input in Slave mode and Synchronous Peripheral

      CCLK  I or O          I    mode. After configuration, CCLK has a weak pull-up resistor and can be selected as the
                                 Readback Clock. There is no CCLK High or Low time restriction on XC4000 Series de-

                                 vices, except during Readback. See "Violating the Maximum High and Low Time Spec-

                                 ification for the Readback Clock" on page 56 for an explanation of this exception.

                                 DONE is a bidirectional signal with an optional internal pull-up resistor. As an output, it

                                 indicates the completion of the configuration process. As an input, a Low level on DONE

      DONE  I/O             O can be configured to delay the global logic initialization and the enabling of outputs.

                                 The optional pull-up resistor is selected as an option in the XACTstep program that cre-

                                 ates the configuration bitstream. The resistor is included by default.

                                 PROGRAM is an active Low input that forces the FPGA to clear its configuration mem-

                                 ory. It is used to initiate a configuration cycle. When PROGRAM goes High, the FPGA

PROGRAM     I               I    finishes the current clear cycle and executes another complete clear cycle, before it
                                 goes into a WAIT state and releases INIT.

                                 The PROGRAM pin has a permanent weak pull-up, so it need not be externally pulled

                                 up to Vcc.

User I/O Pins That Can Have Special Functions

                                 During Peripheral mode configuration, this pin indicates when it is appropriate to write

                                 another byte of data into the FPGA. The same status is also available on D7 in Asyn-

RDY/BUSY    O               I/O chronous Peripheral mode, if a read operation is performed when the device is selected.

                                 After configuration, RDY/BUSY is a user-programmable I/O pin.

                                 RDY/BUSY is pulled High with a high-impedance pull-up prior to INIT going High.

                                 During Master Parallel configuration, each change on the A0-A17 outputs (A0 - A21 for

      RCLK  O               I/O  XC4000X) is preceded by a rising edge on RCLK, a redundant output signal. RCLK is
                                 useful for clocked PROMs. It is rarely used during configuration. After configuration,

                                 RCLK is a user-programmable I/O pin.

                                 As Mode inputs, these pins are sampled after INIT goes High to determine the configu-

                                 ration mode to be used. After configuration, M0 and M2 can be used as inputs, and M1

                                 can be used as a 3-state output. These three pins have no associated input or output


                    I (M0), During configuration, these pins have weak pull-up resistors. For the most popular con-

M0, M1, M2  I O (M1), figuration mode, Slave Serial, the mode pins can thus be left unconnected. The three

                    I (M2) mode inputs can be individually configured with or without weak pull-up or pull-down re-
                               sistors. A pull-down resistor value of 4.7 k is recommended.
                               These pins can only be used as inputs or outputs when called out by special schematic

                                 definitions. To use these pins, place the library components MD0, MD1, and MD2 in-

                                 stead of the usual pad symbols. Input or output buffers must still be used.

                                 If boundary scan is used, this pin is the Test Data Output. If boundary scan is not used,

                                 this pin is a 3-state output without a register, after configuration is completed.

      TDO   O               O This pin can be user output only when called out by special schematic definitions. To

                                 use this pin, place the library component TDO instead of the usual pad symbol. An out-

                                 put buffer must still be used.

6-40                                                                              May 14, 1999 (Version 1.6)

                                    XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 16: Pin Descriptions (Continued)

            I/O             I/O

            During After

Pin Name Config. Config.                      Pin Description

                                 If boundary scan is used, these pins are Test Data In, Test Clock, and Test Mode Select

                                 inputs respectively. They come directly from the pads, bypassing the IOBs. These pins

TDI, TCK,   I          I/O       can also be used as inputs to the CLB logic after configuration is completed.
   TMS                 or I      If the BSCAN symbol is not placed in the design, all boundary scan functions are inhib-
                     (JTAG)      ited once configuration is completed, and these pins become user-programmable I/O.
                                 In this case, they must be called out by special schematic definitions. To use these pins,

                                 place the library components TDI, TCK, and TMS instead of the usual pad symbols. In-

                                 put or output buffers must still be used.

                                 High During Configuration (HDC) is driven High until the I/O go active. It is available as

HDC         O               I/O a control output indicating that configuration is not yet completed. After configuration,

                                 HDC is a user-programmable I/O pin.

                                 Low During Configuration (LDC) is driven Low until the I/O go active. It is available as a

LDC         O               I/O control output indicating that configuration is not yet completed. After configuration,

                                 LDC is a user-programmable I/O pin.

                                 Before and during configuration, INIT is a bidirectional signal. A 1 k - 10 k external
                                 pull-up resistor is recommended.

                                 As an active-Low open-drain output, INIT is held Low during the power stabilization and

INIT        I/O             I/O  internal clearing of the configuration memory. As an active-Low input, it can be used       6
                                 to hold the FPGA in the internal WAIT state before the start of configuration. Master

                                 mode devices stay in a WAIT state an additional 30 to 300 s after INIT has gone High.
                                 During configuration, a Low on this output indicates that a configuration data error has

                                 occurred. After the I/O go active, INIT is a user-programmable I/O pin.

                                 Four Primary Global inputs each drive a dedicated internal global net with short delay

PGCK1 -                          and minimal skew. If not used to drive a global buffer, any of these pins is a user-pro-

PGCK4      Weak     I or I/O    grammable I/O.
(XC4000E    Pull-up              The PGCK1-PGCK4 pins drive the four Primary Global Buffers. Any input pad symbol

only)                            connected directly to the input of a BUFGP symbol is automatically placed on one of

                                 these pins.

                                 Four Secondary Global inputs each drive a dedicated internal global net with short delay

SGCK1 -                          and minimal skew. These internal global nets can also be driven from internal logic. If

SGCK4      Weak     I or I/O    not used to drive a global net, any of these pins is a user-programmable I/O pin.
(XC4000E    Pull-up              The SGCK1-SGCK4 pins provide the shortest path to the four Secondary Global Buff-

only)                            ers. Any input pad symbol connected directly to the input of a BUFGS symbol is auto-

                                 matically placed on one of these pins.

                                 Eight inputs can each drive a Global Low-Skew buffer. In addition, each can drive a Glo-

GCK1 -                          bal Early buffer. Each pair of global buffers can also be driven from internal logic, but
(XC4000X    Weak     I or I/O    must share an input signal. If not used to drive a global buffer, any of these pins is a
   only)    Pull-up              user-programmable I/O.

                                 Any input pad symbol connected directly to the input of a BUFGLS or BUFGE symbol

                                 is automatically placed on one of these pins.

FCLK1 -                          Four inputs can each drive a Fast Clock (FCLK) buffer which can deliver a clock signal

FCLK4                            to any IOB clock input in the octant of the die served by the Fast Clock buffer. Two Fast

(XC4000XLA  Weak     I or I/O    Clock buffers serve the two IOB octants on the left side of the die and the other two Fast
      and   Pull-up              Clock buffers serve the two IOB octants on the right side of the die. On each side of the

XC4000XV                         die, one Fast Clock buffer serves the upper octant and the other serves the lower octant.

only)                            If not used to drive a Fast Clock buffer, any of these pins is a user-programmable I/O.

May 14, 1999 (Version 1.6)                                                                                6-41

XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 16: Pin Descriptions (Continued)

            I/O      I/O

            During After

Pin Name Config. Config.                                       Pin Description

                          These four inputs are used in Asynchronous Peripheral mode. The chip is selected

                          when CS0 is Low and CS1 is High. While the chip is selected, a Low on Write Strobe

                          (WS) loads the data present on the D0 - D7 inputs into the internal data buffer. A Low

CS0, CS1,   I        I/O  on Read Strobe (RS) changes D7 into a status output -- High if Ready, Low if Busy --
WS, RS                   and drives D0 - D6 High.

                          In Express mode, CS1 is used as a serial-enable signal for daisy-chaining.

                          WS and RS should be mutually exclusive, but if both are Low simultaneously, the Write

                          Strobe overrides. After configuration, these are user-programmable I/O pins.

A0 - A17    O        I/O  During Master Parallel configuration, these 18 output pins address the configuration
                          EPROM. After configuration, they are user-programmable I/O pins.

A18 - A21                 During Master Parallel configuration with an XC4000X master, these 4 output pins add

(XC4003XL to O       I/O 4 more bits to address the configuration EPROM. After configuration, they are user-pro-

XC4085XL)                 grammable I/O pins. (See Master Parallel Configuration section for additional details.)

D0 - D7     I        I/O  During Master Parallel and Peripheral configuration, these eight input pins receive con-
                          figuration data. After configuration, they are user-programmable I/O pins.

                          During Slave Serial or Master Serial configuration, DIN is the serial configuration data

      DIN   I        I/O input receiving data on the rising edge of CCLK. During Parallel configuration, DIN is

                          the D0 input. After configuration, DIN is a user-programmable I/O pin.

                          During configuration in any mode but Express mode, DOUT is the serial configuration

                          data output that can drive the DIN of daisy-chained slave FPGAs. DOUT data changes

                          on the falling edge of CCLK, one-and-a-half CCLK periods after it was received at the

      DOUT  O        I/O DIN input.

                          In Express modefor XC4000E and XC4000X only, DOUT is the status output that can

                          drive the CS1 of daisy-chained FPGAs, to enable and disable downstream devices.

                          After configuration, DOUT is a user-programmable I/O pin.

Unrestricted User-Programmable I/O Pins

      I/O   Weak              These pins can be configured to be input and/or output after configuration is completed.
            Pull-up  I/O Before configuration is completed, these pins have an internal high-value pull-up resis-

                              tor (25 k - 100 k) that defines the logic level as High.

Boundary Scan                                                  of how to enable this circuitry are covered later in this sec-
The `bed of nails' has been the traditional method of testing
electronic assemblies. This approach has become less           By exercising these input signals, the user can serially load
appropriate, due to closer pin spacing and more sophisti-      commands and data into these devices to control the driv-
cated assembly methods like surface-mount technology           ing of their outputs and to examine their inputs. This
and multi-layer boards. The IEEE Boundary Scan Standard        method is an improvement over bed-of-nails testing. It
1149.1 was developed to facilitate board-level testing of      avoids the need to over-drive device outputs, and it reduces
electronic assemblies. Design and test engineers can           the user interface to four pins. An optional fifth pin, a reset
imbed a standard test logic structure in their device to       for the control logic, is described in the standard but is not
achieve high fault coverage for I/O and internal logic. This   implemented in Xilinx devices.
structure is easily implemented with a four-pin interface on
any boundary scan-compatible IC. IEEE 1149.1-compati-          The dedicated on-chip logic implementing the IEEE 1149.1
ble devices may be serial daisy-chained together, con-         functions includes a 16-state machine, an instruction regis-
nected in parallel, or a combination of the two.               ter and a number of data registers. The functional details
                                                               can be found in the IEEE 1149.1 specification and are also
The XC4000 Series implements IEEE 1149.1-compatible            discussed in the Xilinx application note XAPP 017: "Bound-
BYPASS, PRELOAD/SAMPLE and EXTEST boundary                     ary Scan in XC4000 Devices."
scan instructions. When the boundary scan configuration
option is selected, three normal user I/O pins become ded-     Figure 40 on page 43 shows a simplified block diagram of
icated inputs for these functions. Another user output pin     the XC4000E Input/Output Block with boundary scan
becomes the dedicated boundary scan output. The details        implemented. XC4000X boundary scan logic is identical.

6-42                                                                                 May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

Figure 41 on page 44 is a diagram of the XC4000 Series                                            data register, respectively, and BSCANT.UPD, which is
boundary scan logic. It includes three bits of Data Register                                      always the last bit of the data register. These three bound-
per IOB, the IEEE 1149.1 Test Access Port controller, and                                         ary scan bits are special-purpose Xilinx test signals.
the Instruction Register with decodes.
                                                                                                  The other standard data register is the single flip-flop
XC4000 Series devices can also be configured through the                                          BYPASS register. It synchronizes data being passed
boundary scan logic. See "Readback" on page 55.                                                   through the FPGA to the next downstream boundary scan
Data Registers
                                                                                                  The FPGA provides two additional data registers that can
The primary data register is the boundary scan register. For                                      be specified using the BSCAN macro. The FPGA provides
each IOB pin in the FPGA, bonded or not, it includes three                                        two user pins (BSCAN.SEL1 and BSCAN.SEL2) which are
bits for In, Out and 3-State Control. Non-IOB pins have                                           the decodes of two user instructions. For these instructions,
appropriate partial bit population for In or Out only. PRO-                                       two corresponding pins (BSCAN.TDO1 and
GRAM, CCLK and DONE are not included in the boundary                                              BSCAN.TDO2) allow user scan data to be shifted out on
scan register. Each EXTEST CAPTURE-DR state captures                                              TDO. The data register clock (BSCAN.DRCK) is available
all In, Out, and 3-state pins.                                                                    for control of test logic which the user may wish to imple-
                                                                                                  ment with CLBs. The NAND of TCK and RUN-TEST-IDLE
The data register also includes the following non-pin bits:                                       is also provided (BSCAN.IDLE).
TDO.T, and TDO.O, which are always bits 0 and 1 of the

                                                                                                       EXTEST           SLEW   PULL            PULL
                                                                                                                        RATE  DOWN              UP
                                                             TS INV M

            3-State TS                           TS/OE
                                                             TS - capture                                                                            VCC               6
                                                             TS - update



            Ouput Data O                                                sd

                                                         M INVERT

Ouput Clock OK                                                                                     M                                                      PAD

                                                                                    rd            OUT
                                                         M S/R                                    SEL


            Clock Enable                                 Boundary    O - capture
                                           M                   Scan  Q - capture

                                                                     O - update

            I - capture

Boundary                                                                                                                      Input Data 1 I1
      Scan                                                                                                                    Input Data 2 I2

            I - update                                                                                              MM
                                DELAY                        M INVERT                      sd
                                              M                                                   FLIP-FLOP/LATCH


Input Clock IK                                                                         rd
                                                             M S/R


                                                 GLOBAL                                                                                                   X5792

Figure 40: Block Diagram of XC4000E IOB with Boundary Scan (some details not shown).
XC4000X Boundary Scan Logic is Identical.

May 14, 1999 (Version 1.6)                                                                                                                                       6-43

XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                          IOB.T   DATA IN                                  0

                                                                               1                    sd     1
                                                                                  D  Q          D       Q

                      IOB IOB IOB IOB IOB                                                       LE

                 IOB                        IOB                            1                        sd
                 IOB                        IOB                                   D  Q          D       Q
                 IOB                        IOB                            0
                 IOB                        IOB                                                 LE

      TDI                                   IOB            IOB.I                                           1
                                            IOB           IOB.Q
                                                          IOB.T            1                        sd
                                                   M TDO                   0      D  Q          D       Q
                                                   X                                            LE

                                  BYPASS                                                                   0
                                                                           1                        sd     1
                      INSTRUCTION REGISTER
                                                                                  D  Q          D       Q


                                                                           1                        sd

                                                                           0      D  Q          D       Q


                                                          IOB.I                                            1
                                                                  DATAOUT               UPDATE
                                                                SHIFT/  CLOCK DATA
                                                              CAPTURE    REGISTER                                                          X9016

Figure 41: XC4000 Series Boundary Scan Logic

Instruction Set                                                   BSDL (Boundary Scan Description Language) files for
                                                                  XC4000 Series devices are available on the Xilinx FTP site.
The XC4000 Series boundary scan instruction set also
includes instructions to configure the device and read back       Including Boundary Scan in a Schematic
the configuration data. The instruction set is coded as
shown in Table 17.                                                If boundary scan is only to be used during configuration, no
                                                                  special schematic elements need be included in the sche-
Bit Sequence                                                      matic or HDL code. In this case, the special boundary scan
                                                                  pins TDI, TMS, TCK and TDO can be used for user func-
The bit sequence within each IOB is: In, Out, 3-State. The        tions after configuration.
input-only M0 and M2 mode pins contribute only the In bit
to the boundary scan I/O data register, while the out-            To indicate that boundary scan remain enabled after config-
put-only M1 pin contributes all three bits.                       uration, place the BSCAN library symbol and connect the
                                                                  TDI, TMS, TCK and TDO pad symbols to the appropriate
The first two bits in the I/O data register are TDO.T and         pins, as shown in Figure 43.
TDO.O, which can be used for the capture of internal sig-
nals. The final bit is BSCANT.UPD, which can be used to           Even if the boundary scan symbol is used in a schematic,
drive an internal net. These locations are primarily used by      the input pins TMS, TCK, and TDI can still be used as
Xilinx for internal testing.                                      inputs to be routed to internal logic. Care must be taken not
                                                                  to force the chip into an undesired boundary scan state by
From a cavity-up view of the chip (as shown in XDE or             inadvertently applying boundary scan input patterns to
Epic), starting in the upper right chip corner, the boundary      these pins. The simplest way to prevent this is to keep TMS
scan data-register bits are ordered as shown in Figure 42.        High, and then apply whatever signal is desired to TDI and
The device-specific pinout tables for the XC4000 Series           TCK.
include the boundary scan locations for each IOB pin.

6-44                                                                                                                          May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 17: Boundary Scan Instructions                                          Optional
Instruction I2       Test                        I/O Data                                              To User
     I1 I0        Selected                       Source                                                 Logic

                            TDO Source

0 0 0 EXTEST                DR                      DR                             BSCAN

0 0 1 SAMPLE/PR DR                      Pin/Logic              TDI            TDI                TDO       TDO
                         ELOAD                                TMS
                                                              TCK             TMS   DRCK               To User
010               USER 1    BSCAN. User Logic                           From  TCK                IDLE
                             TDO1                               User Logic                                   X2675
                                                                              TDO1  SEL1

011               USER 2    BSCAN. User Logic                                 TDO2  SEL2

1 0 0 READBACK Readback Pin/Logic                             Figure 43: Boundary Scan Schematic Example

                            Data                              Configuration

1 0 1 CONFIGURE DOUT Disabled                                 Configuration is the process of loading design-specific pro-
                                                              gramming data into one or more FPGAs to define the func-
1 1 0 Reserved                 --                   --        tional operation of the internal blocks and their
                                                              interconnections. This is somewhat like loading the com-
1 1 1 BYPASS Bypass                                 --


                                                              mand registers of a programmable peripheral chip. XC4000

Bit 0 ( TDO end)  TDO.T                                       Series devices use several hundred bits of configuration
Bit 1             TDO.O                                       data per CLB and its associated interconnects. Each con-
Bit 2                                                         figuration bit defines the state of a static memory cell that
                  Top-edge IOBs (Right to Left)

                                                              controls either a function look-up table bit, a multiplexer    6

                  Left-edge IOBs (Top to Bottom)              input, or an interconnect pass transistor. The XACTstep

                  MD1.T                                       development system translates the design into a netlist file.
                  MD1.O                                       It automatically partitions, places and routes the logic and
                  MD1.I                                       generates the configuration data in PROM format.
                  MD2.I                                       Special Purpose Pins

                  Bottom-edge IOBs (Left to Right)

                                                              Three configuration mode pins (M2, M1, M0) are sampled

                  Right-edge IOBs (Bottom to Top)             prior to configuration to determine the configuration mode.

(TDI end)         B SCANT.UPD                                 After configuration, these pins can be used as auxiliary
                                                              connections. M2 and M0 can be used as inputs, and M1

                                                 X6075        can be used as an output. The XACTstep development sys-

Figure 42: Boundary Scan Bit Sequence                         tem does not use these resources unless they are explicitly
                                                              specified in the design entry. This is done by placing a spe-

Avoiding Inadvertent Boundary Scan                            cial pad symbol called MD2, MD1, or MD0 instead of the
                                                              input or output pad symbol.
If TMS or TCK is used as user I/O, care must be taken to
ensure that at least one of these pins is held constant dur-  In XC4000 Series devices, the mode pins have weak
ing configuration. In some applications, a situation may      pull-up resistors during configuration. With all three mode
occur where TMS or TCK is driven during configuration.        pins High, Slave Serial mode is selected, which is the most
This may cause the device to go into boundary scan mode       popular configuration mode. Therefore, for the most com-
and disrupt the configuration process.                        mon configuration mode, the mode pins can be left uncon-
                                                              nected. (Note, however, that the internal pull-up resistor
To prevent activation of boundary scan during configura-      value can be as high as 100 k.) After configuration, these
tion, do either of the following:                             pins can individually have weak pull-up or pull-down resis-

TMS: Tie High to put the Test Access Port controller        tors, as specified in the design. A pull-down resistor value
    in a benign RESET state                                   of 4.7 k is recommended.

TCK: Tie High or Low--don't toggle this clock input.        These pins are located in the lower left chip corner and are

For more information regarding boundary scan, refer to the    near the readback nets. This location allows convenient
Xilinx Application Note XAPP 017.001, "Boundary Scan in       routing if compatibility with the XC2000 and XC3000 family
XC4000E Devices."                                             conventions of M0/RT, M1/RD is desired.

May 14, 1999 (Version 1.6)                                                                                          6-45

XC4000E and XC4000X Series Field Programmable Gate Arrays

Configuration Modes                                            Additional Address lines in XC4000 devices

XC4000E devices have six configuration modes. XC4000X          The XC4000X devices have additional address lines
devices have the same six modes, plus an additional con-       (A18-A21) allowing the additional address space required
figuration mode. These modes are selected by a 3-bit input     to daisy-chain several large devices.
code applied to the M2, M1, and M0 inputs. There are three
self-loading Master modes, two Peripheral modes, and a         The extra address lines are programmable in XC4000EX
Serial Slave mode, which is used primarily for                 devices. By default these address lines are not activated. In
daisy-chained devices. The coding for mode selection is        the default mode, the devices are compatible with existing
shown in Table 18.                                             XC4000 and XC4000E products. If desired, the extra
                                                               address lines can be used by specifying the address lines
Table 18: Configuration Modes                                  option in bitgen as 22 (bitgen -g AddressLines:22). The
                                                               lines (A18-A21) are driven when a master device detects,
      Mode     M2 M1 M0  CCLK                     Data         via the bitstream, that it should be using all 22 address
Master Serial   000      output                Bit-Serial      lines. Because these pins will initially be pulled high by
Slave Serial    111      input                 Bit-Serial      internal pull-ups, designers using Master Parallel Up mode
Master          100      output               Byte-Wide,       should use external pull down resistors on pins A18-A21. If
Parallel Up                                    increment       Master Parallel Down mode is used external resistors are
                                              from 00000       not necessary.
Master         1 1 0 output                   Byte-Wide,
                                              decrement        All 22 address lines are always active in Master Parallel
Parallel Down                                 from 3FFFF       modes with XC4000XL devices. The additional address
                                               Byte-Wide       lines behave identically to the lower order address lines. If
Peripheral     0 1 1 input                                     the Address Lines option in bitgen is set to 18, it will be
                                               Byte-Wide       ignored by the XC4000XL device.
                                                    --         The additional address lines (A18-A21) are not available in
Peripheral     1 0 1 output                         --         the PC84 package.

Asynchronous                                                   Peripheral Modes

Reserved       010       --                                    The two Peripheral modes accept byte-wide data from a
                                                               bus. A RDY/BUSY status is available as a handshake sig-
Reserved       001       --                                    nal. In Asynchronous Peripheral mode, the internal oscilla-
                                                               tor generates a CCLK burst signal that serializes the
* Can be considered byte-wide Slave Parallel                   byte-wide data. CCLK can also drive slave devices. In the
                                                               synchronous mode, an externally supplied clock input to
A detailed description of each configuration mode, with tim-   CCLK serializes the data.
ing information, is included later in this data sheet. During
configuration, some of the I/O pins are used temporarily for   Slave Serial Mode
the configuration process. All pins used during configura-
tion are shown in Table 22 on page 58.                         In Slave Serial mode, the FPGA receives serial configura-
                                                               tion data on the rising edge of CCLK and, after loading its
Master Modes                                                   configuration, passes additional data out, resynchronized
                                                               on the next falling edge of CCLK.
The three Master modes use an internal oscillator to gener-
ate a Configuration Clock (CCLK) for driving potential slave   Multiple slave devices with identical configurations can be
devices. They also generate address and timing for exter-      wired with parallel DIN inputs. In this way, multiple devices
nal PROM(s) containing the configuration data.                 can be configured simultaneously.

Master Parallel (Up or Down) modes generate the CCLK           Serial Daisy Chain
signal and PROM addresses and receive byte parallel data.
The data is internally serialized into the FPGA data-frame     Multiple devices with different configurations can be con-
format. The up and down selection generates starting           nected together in a "daisy chain," and a single combined
addresses at either zero or 3FFFF (3FFFFF when 22              bitstream used to configure the chain of slave devices.
address lines are used), for compatibility with different
microprocessor addressing conventions. The Master Serial       To configure a daisy chain of devices, wire the CCLK pins
mode generates CCLK and receives the configuration data        of all devices in parallel, as shown in Figure 51 on page
in serial form from a Xilinx serial-configuration PROM.        60. Connect the DOUT of each device to the DIN of the
                                                               next. The lead or master FPGA and following slaves each
CCLK speed is selectable as either 1 MHz (default) or 8        passes resynchronized configuration data coming from a
MHz. Configuration always starts at the default slow fre-      single source. The header data, including the length count,
quency, then can switch to the higher frequency during the
first frame. Frequency tolerance is -50% to +25%.

6-46                                                           May 14, 1999 (Version 1.6)

                                     XC4000E and XC4000X Series Field Programmable Gate Arrays

is passed through and is captured by each FPGA when it tiated and most boundary scan instructions cannot be

recognizes the 0010 preamble. Following the length-count used.

data, each FPGA outputs a High on DOUT until it has             The user has some control over the relative timing of these
received its required number of data frames.                    events and can, therefore, make sure that they occur at the

After an FPGA has received its configuration data, it proper time and the finish point F is reached. Timing is con-

passes on any additional frame start bits and configuration trolled using options in the bitstream generation software.

data on DOUT. When the total number of configuration            XC3000 Master with an XC4000 Series Slave
clocks applied after memory initialization equals the value

of the 24-bit length count, the FPGAs begin the start-up Some designers want to use an inexpensive lead device in

sequence and become operational together. FPGA I/O are peripheral mode and have the more precious I/O pins of the

normally released two CCLK cycles after the last configura- XC4000 Series devices all available for user I/O. Figure 44

tion bit is received. Figure 47 on page 53 shows the provides a solution for that case.

start-up timing for an XC4000 Series device.                    This solution requires one CLB, one IOB and pin, and an

The daisy-chained bitstream is not simply a concatenation internal oscillator with a frequency of up to 5 MHz as a

of the individual bitstreams. The PROM file formatter must clock source. The XC3000 master device must be config-

be used to combine the bitstreams for a daisy-chained con- ured with late Internal Reset, which is the default option.

figuration.                                                     One CLB and one IOB in the lead XC3000-family device

Multi-Family Daisy Chain                                        are used to generate the additional CCLK pulse required by

                                                                the XC4000 Series devices. When the lead device removes
All Xilinx FPGAs of the XC2000, XC3000, and XC4000 the internal RESET signal, the 2-bit shift register responds
Series use a compatible bitstream format and can, there- to its clock input and generates an active Low output signal
fore, be connected in a daisy chain in an arbitrary for the duration of the subsequent clock period. An external
sequence. There is, however, one limitation. The lead connection between this output and CCLK thus creates the
device must belong to the highest family in the chain. If the extra CCLK pulse.                                              6

chain contains XC4000 Series devices, the master nor-

mally cannot be an XC2000 or XC3000 device.

The reason for this rule is shown in Figure 47 on page 53.                                           OE/T  Output
Since all devices in the chain store the same length count                                                 Connected
value and generate or receive one common sequence of            Reset            Active Low Output         to CCLK
CCLK pulses, they all recognize length-count match on the                        Active High Output
same CCLK edge, as indicated on the left edge of                00                                                X5223
Figure 47. The master device then generates additional          10
CCLK pulses until it reaches its finish point F. The different  11
families generate or require different numbers of additional    01
CCLK pulses until they reach F. Not reaching F means that       01
the device does not really finish its configuration, although
DONE may have gone High, the outputs became active,             .. etc ..
and the internal reset was released. For the XC4000 Series
device, not reaching F means that readback cannot be ini-       Figure 44: CCLK Generation for XC3000 Master
                                                                Driving an XC4000 Series Slave

May 14, 1999 (Version 1.6)                                                                                    6-47

XC4000E and XC4000X Series Field Programmable Gate Arrays

Setting CCLK Frequency                                      Data Stream Format

For Master modes, CCLK can be generated in either of two    The data stream ("bitstream") format is identical for all con-
frequencies. In the default slow mode, the frequency        figuration modes.
ranges from 0.5 MHz to 1.25 MHz for XC4000E and
XC4000EX devices and from 0.6 MHz to 1.8 MHz for            The data stream formats are shown in Table 19. Bit-serial
XC4000XL devices. In fast CCLK mode, the frequency          data is read from left to right, and byte-parallel data is effec-
ranges from 4 MHz to 10 MHz for XC4000EX devices and        tively assembled from this serial bitstream, with the first bit
from 5 MHz to 15 MHz for XC4000XL devices. The fre-         in each byte assigned to D0.
quency is selected by an option when running the bitstream
generation software. If an XC4000 Series Master is driving  The configuration data stream begins with a string of eight
an XC3000- or XC2000-family slave, slow CCLK mode           ones, a preamble code, followed by a 24-bit length count
must be used. In addition, an XC4000XL device driving a     and a separator field of ones. This header is followed by the
XC4000E or XC4000EX should use slow mode. Slow mode         actual configuration data in frames. The length and number
is the default.                                             of frames depends on the device type (see Table 20 and
                                                            Table 21). Each frame begins with a start field and ends
Table 19: XC4000 Series Data Stream Formats                 with an error check. A postamble code is required to signal
                                                            the end of data for a single device. In all cases, additional
              Data Type            All Other                start-up bytes of data are required to provide four clocks for
                                Modes (D0...)               the startup sequence at the end of configuration. Long
Fill Byte                11111111b                          daisy chains require additional startup bytes to shift the last
Preamble Code            0010b                              data through the chain. All startup bytes are don't-cares;
Length Count             COUNT(23:0)                        these bytes are not included in bitstreams created by the
Fill Bits                1111b                              Xilinx software.
Start Field              0b
Data Frame               DATA(n-1:0)                        A selection of CRC or non-CRC error checking is allowed
CRC or Constant          xxxx (CRC)                         by the bitstream generation software. The non-CRC error
Field Check              or 0110b                           checking tests for a designated end-of-frame field for each
Extend Write Cycle       --                                 frame. For CRC error checking, the software calculates a
Postamble                01111111b                          running CRC and inserts a unique four-bit partial check at
Start-Up Bytes           xxh                                the end of each frame. The 11-bit CRC check of the last
Legend:                                                     frame of an FPGA includes the last seven data bits.
Not shaded               Once per bitstream
Light                    Once per data frame                Detection of an error results in the suspension of data load-
Dark                     Once per device                    ing and the pulling down of the INIT pin. In Master modes,
                                                            CCLK and address signals continue to operate externally.
                                                            The user must detect INIT and initialize a new configuration
                                                            by pulsing the PROGRAM pin Low or cycling Vcc.

6-48                                                        May 14, 1999 (Version 1.6)

                                     XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 20: XC4000E Program Data

        Device       XC4003E     XC4005E    XC4006E            XC4008E    XC4010E    XC4013E    XC4020E    XC4025E
Max Logic Gates        3,000       5,000      6,000              8,000     10,000     13,000     20,000     25,000
CLBs                    100         196        256                324        400        576        784       1,024
(Row x Col.)                                                              (20 x 20)  (24 x 24)  (28 x 28)  (32 x 32)
IOBs                 (10 x 10)   (14 x 14)  (16 x 16)          (18 x 18)     160        192        224        256
Flip-Flops               80         112        128                144       1,120      1,536      2,016      2,560
Bits per Frame          360         616        768                936        226        266        306        346
Frames                  126         166        186                206        788        932       1,076      1,220
Program Data            428         572        644                716      178,096    247,920    329,264    422,128
PROM Size                                                                  178,144    247,968    329,312    422,176
(bits)                53,936      94,960     119,792            147,504
                      53,984      95,008     119,840            147,552

Notes:  1. Bits per Frame = (10 x number of rows) + 7 for the top + 13 for the bottom + 1 + 1 start bit + 4 error check bits
           Number of Frames = (36 x number of columns) + 26 for the left edge + 41 for the right edge + 1
           Program Data = (Bits per Frame x Number of Frames) + 8 postamble bits
           PROM Size = Program Data + 40 (header) + 8

        2. The user can add more "one" bits as leading dummy bits in the header, or, if CRC = off, as trailing dummy bits at the end of
           any frame, following the four error check bits. However, the Length Count value must be adjusted for all such extra "one"
           bits, even for extra leading ones at the beginning of the header.

Table 21: XC4000EX/XL Program Data

     Device  XC4002XL XC4005 XC4010 XC4013 XC4020 XC4028 XC4036 XC4044 XC4052 XC4062 XC4085                                                      6
Max Logic       2,000 5,000 10,000 13,000 20,000 28,000 36,000 44,000 52,000 62,000 85,000


CLBs             64         196  400        576  784 1,024 1,296 1,600                    1,936  2,304     3,136
(Row x
Column)      (8 x 8) (14 x 14) (20 x 20) (24 x 24) (28 x 28) (32 x 32) (36 x 36) (40 x 40) (44 x 44) (48 x 48) (56 x 56)

IOBs             64         112  160        192  224           256        288        320  352    384       448

Flip-Flops   256            616 1,120 1,536 2,016 2,560 3,168 3,840                       4,576  5,376     7,168

Bits per     133            205  277        325  373           421        469        517  565    613       709

Frames       459            741 1,023 1,211 1,399 1,587 1,775 1,963                       2,151  2,339     2,715

Program Data 61,052 151,910 283,376 393,580 521,832 668,124 832,480 1,014,876 1,215,320 1,433,804 1,924,940

PROM Size    61,104 151,960 283,424 393,632 521,880 668,172 832,528 1,014,924 1,215,368 1,433,852 1,924,992

Notes:    1. Bits per frame = (13 x number of rows) + 9 for the top + 17 for the bottom + 8 + 1 start bit + 4 error check bits.
             Frames = (47 x number of columns) + 27 for the left edge + 52 for the right edge + 4.
             Program data = (bits per frame x number of frames) + 5 postamble bits.
             PROM size = (program data + 40 header bits + 8 start bits) rounded up to the nearest byte.
            2. The user can add more "one" bits as leading dummy bits in the header, or, if CRC = off, as trailing dummy bits at the end
             of any frame, following the four error check bits. However, the Length Count value must be adjusted for all such extra "one"
             bits, even for extra leading "ones" at the beginning of the header.

Cyclic Redundancy Check (CRC) for                              figuration process with a potentially corrupted bitstream is
Configuration and Readback                                     terminated. The FPGA pulls the INIT pin Low and goes into
                                                               a Wait state.
The Cyclic Redundancy Check is a method of error detec-
tion in data transmission applications. Generally, the trans-  During Readback, 11 bits of the 16-bit checksum are added
mitting system performs a calculation on the serial            to the end of the Readback data stream. The checksum is
bitstream. The result of this calculation is tagged onto the   computed using the CRC-16 CCITT polynomial, as shown
data stream as additional check bits. The receiving system     in Figure 45. The checksum consists of the 11 most signif-
performs an identical calculation on the bitstream and com-    icant bits of the 16-bit code. A change in the checksum indi-
pares the result with the received checksum.                   cates a change in the Readback bitstream. A comparison
                                                               to a previous checksum is meaningful only if the readback
Each data frame of the configuration bitstream has four        data is independent of the current device state. CLB out-
error bits at the end, as shown in Table 19. If a frame data   puts should not be included (Read Capture option not
error is detected during the loading of the FPGA, the con-

May 14, 1999 (Version 1.6)                                                                                                                 6-49

XC4000E and XC4000X Series Field Programmable Gate Arrays

used), and if RAM is present, the RAM content must be                                                           VCC                   No
                                                                                        Boundary Scan           >3.5 V
Statistically, one error out of 2048 might go undetected.                                 Instructions
Configuration Sequence                                                                                               Yes

There are four major steps in the XC4000 Series power-up                                                         Test M0 Generate          PROGRAM
configuration sequence.                                                                                         One Time-Out Pulse            = Low

Configuration Memory Clear                                                                                        of 16 or 64 ms                  Yes
Configuration                                                                                                      Keep Clearing
Start-Up                                                                                                      Configuration Memory

The full process is illustrated in Figure 46.                                           EXTEST*

Configuration Memory Clear                                                              SAMPLE/PRELOAD Completely Clear
When power is first applied or is reapplied to an FPGA, an                                                      Configuration Memory       ~1.3 s per Frame
internal circuit forces initialization of the configuration logic.                      CONFIGURE*
When Vcc reaches an operational level, and the circuit                                                          Once More
passes the write and read test of a sample pair of configu-
ration bits, a time delay is started. This time delay is nomi-                          (* if PROGRAM = High)
nally 16 ms, and up to 10% longer in the low-voltage
devices. The delay is four times as long when in Master                                                             INIT              No
Modes (M0 Low), to allow ample time for all slaves to reach                                                       High? if
a stable Vcc. When all INIT pins are tied together, as rec-                                                       Master                Master Waits 50 to 250 s
ommended, the longest delay takes precedence. There-                                                                                    Before Sampling Mode Lines
fore, devices with different time delays can easily be mixed                                                    Yes
and matched in a daisy chain.
                                                                                                               Sample                                               LDC Output = L, HDC Output = H
This delay is applied only on power-up. It is not applied                                                    Mode Lines
when re-configuring an FPGA by pulsing the PROGRAM
pin                                                                                     Master CCLK
                                                                                         Goes Active

                                                                                                              Load One
                                                                                                            Data Frame

                                                                                                                Frame                 Yes  Pull INIT Low
                                                                                                                                             and Stop

      X2                                                X15                                                     No


01        2 3 4 5 6 7 8 9 10 11 12 13 14                                       15       SAMPLE/PRELOAD          Config-
                                                                                                                uration               No


                                                               SERIAL DATA IN                                       Full
                       Polynomial: X16 + X15 + X2 + 1

                                                                                                                Data to DOUT

      1 1 1 1 1 0 15 14 13 12 11 10 9 8 7 6 5


                                  Readback Data Stream  X1789                                                        CCLK
                                                                                                                Count Equals No
Figure 45: Circuit for Generating CRC-16




                                                                                                       EXTEST            Operational                                I/O Active
                                                                                        SAMPLE PRELOAD
                                                                                                                If Boundary Scan
                                                                                                       BYPASS   is Selected
                                                                                                        USER 1
                                                                                                        USER 2                                                      X6076

                                                                                        Figure 46: Power-up Configuration Sequence

6-50                                                                                                                                  May 14, 1999 (Version 1.6)

                                XC4000E and XC4000X Series Field Programmable Gate Arrays

Low. During this time delay, or as long as the PROGRAM rise time is excessive or poorly defined. As long as PRO-

input is asserted, the configuration logic is held in a Config- GRAM is Low, the FPGA keeps clearing its configuration

uration Memory Clear state. The configuration-memory memory. When PROGRAM goes High, the configuration

frames are consecutively initialized, using the internal oscil- memory is cleared one more time, followed by the begin-

lator.                                                            ning of configuration, provided the INIT input is not exter-

At the end of each complete pass through the frame                nally held Low. Note that a Low on the PROGRAM input
addressing, the power-on time-out delay circuitry and the         automatically forces a Low on the INIT output. The XC4000
level of the PROGRAM pin are tested. If neither is asserted,      Series PROGRAM pin has a permanent weak pull-up.

the logic initiates one additional clearing of the configura- Using an open-collector or open-drain driver to hold INIT

tion frames and then tests the INIT input.                        Low before the beginning of configuration causes the

Initialization                                                    FPGA to wait after completing the configuration memory
                                                                  clear operation. When INIT is no longer held Low exter-

During initialization and configuration, user pins HDC, LDC, nally, the device determines its configuration mode by cap-

INIT and DONE provide status outputs for the system inter- turing its mode pins, and is ready to start the configuration

face. The outputs LDC, INIT and DONE are held Low and process. A master device waits up to an additional 250 s

HDC is held High starting at the initial application of power. to make sure that any slaves in the optional daisy chain

The open drain INIT pin is released after the final initializa- have seen that INIT is High.

tion pass through the frame addresses. There is a deliber- Start-Up

ate delay of 50 to 250 s (up to 10% longer for low-voltage
devices) before a Master-mode device recognizes an inac- Start-up is the transition from the configuration process to
tive INIT. Two internal clocks after the INIT pin is recognized the intended user operation. This transition involves a
as High, the FPGA samples the three mode lines to deter- change from one clock source to another, and a change
                                                                  from interfacing parallel or serial configuration data where
mine the configuration mode. The appropriate interface            most outputs are 3-stated, to normal operation with I/O pins    6
lines become active and the configuration preamble and
                                                                  active in the user-system. Start-up must make sure that the
data can be loaded.Configuration
                                                                  user-logic `wakes up' gracefully, that the outputs become

The 0010 preamble code indicates that the following 24 bits active without causing contention with the configuration sig-

represent the length count. The length count is the total nals, and that the internal flip-flops are released from the

number of configuration clocks needed to load the com- global Reset or Set at the right time.

plete configuration data. (Four additional configuration          Figure 47 describes start-up timing for the three Xilinx fam-
clocks are required to complete the configuration process,        ilies in detail. The configuration modes can use any of the
as discussed below.) After the preamble and the length            four timing sequences.
count have been passed through to all devices in the daisy

chain, DOUT is held High to prevent frame start bits from To access the internal start-up signals, place the STARTUP

reaching any daisy-chained devices.                               library symbol.

A specific configuration bit, early in the first frame of a mas-  Start-up Timing
ter device, controls the configuration-clock rate and can
increase it by a factor of eight. Therefore, if a fast configu-   Different FPGA families have different start-up sequences.
ration clock is selected by the bitstream, the slower clock
rate is used until this configuration bit is detected.            The XC2000 family goes through a fixed sequence. DONE
                                                                  goes High and the internal global Reset is de-activated one
Each frame has a start field followed by the frame-configu-       CCLK period after the I/O become active.
ration data bits and a frame error field. If a frame data error
is detected, the FPGA halts loading, and signals the error        The XC3000A family offers some flexibility. DONE can be
by pulling the open-drain INIT pin Low. After all configura-      programmed to go High one CCLK period before or after
tion frames have been loaded into an FPGA, DOUT again             the I/O become active. Independent of DONE, the internal
follows the input data so that the remaining data is passed       global Reset is de-activated one CCLK period before or
on to the next device.                                            after the I/O become active.

Delaying Configuration After Power-Up                             The XC4000 Series offers additional flexibility. The three
                                                                  events -- DONE going High, the internal Set/Reset being
There are two methods of delaying configuration after             de-activated, and the user I/O going active -- can all occur
power-up: put a logic Low on the PROGRAM input, or pull           in any arbitrary sequence. Each of them can occur one
the bidirectional INIT pin Low, using an open-collector           CCLK period before or after, or simultaneous with, any of
(open-drain) driver. (See Figure 46 on page 50.)                  the others. This relative timing is selected by means of soft-
                                                                  ware options in the bitstream generation software.
A Low on the PROGRAM input is the more radical
approach, and is recommended when the power-supply

May 14, 1999 (Version 1.6)                                                                     6-51

XC4000E and XC4000X Series Field Programmable Gate Arrays

The default option, and the most practical one, is for DONE     received since INIT went High equals the loaded value of
to go High first, disconnecting the configuration data source   the length count.
and avoiding any contention when the I/Os become active
one clock later. Reset/Set is then released another clock       The next rising clock edge sets a flip-flop Q0, shown in
period later to make sure that user-operation starts from       Figure 48. Q0 is the leading bit of a 5-bit shift register. The
stable internal conditions. This is the most common             outputs of this register can be programmed to control three
sequence, shown with heavy lines in Figure 47, but the          events.
designer can modify it to meet particular requirements.
                                                                The release of the open-drain DONE output
Normally, the start-up sequence is controlled by the internal    The change of configuration-related pins to the user
device oscillator output (CCLK), which is asynchronous to
the system clock.                                                   function, activating all IOBs.
                                                                The termination of the global Set/Reset initialization of
XC4000 Series offers another start-up clocking option,
UCLK_NOSYNC. The three events described above need                  all CLB and IOB storage elements.
not be triggered by CCLK. They can, as a configuration
option, be triggered by a user clock. This means that the       The DONE pin can also be wire-ANDed with DONE pins of
device can wake up in synchronism with the user system.         other FPGAs or with other external signals, and can then
                                                                be used as input to bit Q3 of the start-up register. This is
When the UCLK_SYNC option is enabled, the user can              called "Start-up Timing Synchronous to Done In" and is
externally hold the open-drain DONE output Low, and thus        selected by either CCLK_SYNC or UCLK_SYNC.
stall all further progress in the start-up sequence until
DONE is released and has gone High. This option can be          When DONE is not used as an input, the operation is called
used to force synchronization of several FPGAs to a com-        "Start-up Timing Not Synchronous to DONE In," and is
mon user clock, or to guarantee that all devices are suc-       selected by either CCLK_NOSYNC or UCLK_NOSYNC.
cessfully configured before any I/Os go active.
                                                                As a configuration option, the start-up control register
If either of these two options is selected, and no user clock   beyond Q0 can be clocked either by subsequent CCLK
is specified in the design or attached to the device, the chip  pulses or from an on-chip user net called STARTUP.CLK.
could reach a point where the configuration of the device is    These signals can be accessed by placing the STARTUP
complete and the Done pin is asserted, but the outputs do       library symbol.
not become active. The solution is either to recreate the bit-
stream specifying the start-up clock as CCLK, or to supply      Start-up from CCLK
the appropriate user clock.
                                                                If CCLK is used to drive the start-up, Q0 through Q3 pro-
Start-up Sequence                                               vide the timing. Heavy lines in Figure 47 show the default
                                                                timing, which is compatible with XC2000 and XC3000
The Start-up sequence begins when the configuration             devices using early DONE and late Reset. The thin lines
memory is full, and the total number of configuration clocks    indicate all other possible timing options.

6-52                                                            May 14, 1999 (Version 1.6)

                        XC4000E and XC4000X Series Field Programmable Gate Arrays

                                 Length Count Match                                         CCLK Period





                            Global Reset

                                                                                   F                                            F = Finished, no more
                                                                                                                                configuration clocks needed
XC3000                      DONE                                                                                                Daisy-chain lead device
                                                                                                                                must have latest F
                                                                                                                                Heavy lines describe
                                                                                                                                default timing

                            Global Reset



                                                                     C1  C2        C3                                C4

XC4000E/X                   I/O

CCLK_NOSYNC                                                              C2        C3                                C4

                            GSR Active                                                                                                                             6

                                                                         C2        C3                                C4

                                  DONE IN



XC4000E/X                            C1, C2 or C3                        Di+1
CCLK_SYNC                   I/O


                            GSR Active
                                                       Di Di+1

                            DONE                                               U2  U3           U4
UCLK_NOSYNC                 I/O

                                                                               U2  U3           U4

                            GSR Active

                                                                               U2  U3           U4

                                                                         DONE IN

                            DONE                                               U2
UCLK_SYNC                   I/O

                                                                                   Di Di+1      Di+2

                                                         GSR Active                Di Di+1      Di+2
                                                                                   UCLK Period
Figure 47: Start-up Timing

May 14, 1999 (Version 1.6)                                                                                                                                   6-53

XC4000E and XC4000X Series Field Programmable Gate Arrays

Start-up from a User Clock (STARTUP.CLK)                         Release of User I/O After DONE Goes High

When, instead of CCLK, a user-supplied start-up clock is         By default, the user I/O are released one CCLK cycle after
selected, Q1 is used to bridge the unknown phase relation-       the DONE pin goes High. If CCLK is not clocked after
ship between CCLK and the user clock. This arbitration           DONE goes High, the outputs remain in their initial state --
causes an unavoidable one-cycle uncertainty in the timing        3-stated, with a 50 k - 100 k pull-up. The delay from
of the rest of the start-up sequence.                            DONE High to active user I/O is controlled by an option to
                                                                 the bitstream generation software.
DONE Goes High to Signal End of Configuration
                                                                 Release of Global Set/Reset After DONE Goes
XC4000 Series devices read the expected length count             High
from the bitstream and store it in an internal register. The
length count varies according to the number of devices and       By default, Global Set/Reset (GSR) is released two CCLK
the composition of the daisy chain. Each device also counts      cycles after the DONE pin goes High. If CCLK is not
the number of CCLKs during configuration.                        clocked twice after DONE goes High, all flip-flops are held
                                                                 in their initial set or reset state. The delay from DONE High
Two conditions have to be met in order for the DONE pin to       to GSR inactive is controlled by an option to the bitstream
go high:                                                         generation software.

the chip's internal memory must be full, and                   Configuration Complete After DONE Goes High
the configuration length count must be met, exactly.
                                                                 Three full CCLK cycles are required after the DONE pin
This is important because the counter that determines            goes High, as shown in Figure 47 on page 53. If CCLK is
when the length count is met begins with the very first          not clocked three times after DONE goes High, readback
CCLK, not the first one after the preamble.                      cannot be initiated and most boundary scan instructions
                                                                 cannot be used.
Therefore, if a stray bit is inserted before the preamble, or
the data source is not ready at the time of the first CCLK,      Configuration Through the Boundary Scan
the internal counter that holds the number of CCLKs will be      Pins
one ahead of the actual number of data bits read. At the
end of configuration, the configuration memory will be full,     XC4000 Series devices can be configured through the
but the number of bits in the internal counter will not match    boundary scan pins. The basic procedure is as follows:
the expected length count.
                                                                  Power up the FPGA with INIT held Low (or drive the
As a consequence, a Master mode device will continue to              PROGRAM pin Low for more than 300 ns followed by a
send out CCLKs until the internal counter turns over to              High while holding INIT Low). Holding INIT Low allows
zero, and then reaches the correct length count a second             enough time to issue the CONFIG command to the
time. This will take several seconds [224  CCLK period] --           FPGA. The pin can be used as I/O after configuration if
which is sometimes interpreted as the device not configur-           a resistor is used to hold INIT Low.
ing at all.
                                                                  Issue the CONFIG command to the TMS input
If it is not possible to have the data ready at the time of the   Wait for INIT to go High
first CCLK, the problem can be avoided by increasing the          Sequence the boundary scan Test Access Port to the
number in the length count by the appropriate value. The
XACT User Guide includes detailed information about man-             SHIFT-DR state
ually altering the length count.                                  Toggle TCK to clock data into TDI pin.

Note that DONE is an open-drain output and does not go           The user must account for all TCK clock cycles after INIT
High unless an internal pull-up is activated or an external      goes High, as all of these cycles affect the Length Count
pull-up is attached. The internal pull-up is activated as the    compare.
default by the bitstream generation software.
                                                                 For more detailed information, refer to the Xilinx application
                                                                 note XAPP017, "Boundary Scan in XC4000 Devices." This
                                                                 application note also applies to XC4000E and XC4000X

6-54                                                             May 14, 1999 (Version 1.6)

                                              XC4000E and XC4000X Series Field Programmable Gate Arrays

                  Q3                   Q1/Q4
                  Q2                   IN

                  *                                                                               IOBs OPERATIONAL PER CONFIGURATION
                                                                                                  GLOBAL SET/RESET OF
                  *                                                                               ALL CLB AND IOB FLIP-FLOP

                                    1            GSR ENABLE      CONTROLLED BY STARTUP SYMBOL
                                    0            GSR INVERT      IN THE USER SCHEMATIC (SEE
                                                 STARTUP.GSR     LIBRARIES GUIDE)
                                    1            STARTUP.GTS
                                                 GTS INVERT
                               1                 GTS ENABLE
                                                                                                  GLOBAL 3-STATE OF ALL IOBs



                                                                                                                              1         " FINISHED "

                                                                                                                                        ENABLES BOUNDARY

                                                                                                                              0         SCAN, READBACK AND

                                                                                                                                        CONTROLS THE OSCILLATOR

                         Q0                         Q1           Q2                               Q3        Q4

                FULL                                                 1                                                                                            6
                      S  Q                    D  Q            D  Q   0  D                      Q      D  Q


                      K                       K               K      *  K                             K


CCLK                        0

STARTUP.CLK                 1



                            *  * CONFIGURATION BIT OPTIONS SELECTED BY USER IN "MAKEBITS"                                        X1528

Figure 48: Start-up Logic

Readback                                                                BACK library symbol and attach the appropriate pad sym-
                                                                        bols, as shown in Figure 49.
The user can read back the content of configuration mem-
ory and the level of certain internal nodes without interfer-           After Readback has been initiated by a High level on
ing with the normal operation of the device.                            RDBK.TRIG after configuration, the RDBK.RIP (Read In
                                                                        Progress) output goes High on the next rising edge of
Readback not only reports the downloaded configuration                  RDBK.CLK. Subsequent rising edges of this clock shift out
bits, but can also include the present state of the device,             Readback data on the RDBK.DATA net.
represented by the content of all flip-flops and latches in
CLBs and IOBs, as well as the content of function genera-               Readback data does not include the preamble, but starts
tors used as RAMs.                                                      with five dummy bits (all High) followed by the Start bit
                                                                        (Low) of the first frame. The first two data bits of the first
Note that in XC4000 Series devices, configuration data is               frame are always High.
not inverted with respect to configuration as it is in XC2000
and XC3000 families.                                                    Each frame ends with four error check bits. They are read
                                                                        back as High. The last seven bits of the last frame are also
XC4000 Series Readback does not use any dedicated                       read back as High. An additional Start bit (Low) and an
pins, but uses four internal nets (RDBK.TRIG, RDBK.DATA,                11-bit Cyclic Redundancy Check (CRC) signature follow,
RDBK.RIP and RDBK.CLK) that can be routed to any IOB.                   before RDBK.RIP returns Low.
To access the internal Readback signals, place the READ-

May 14, 1999 (Version 1.6)                                                                                                                                  6-55

XC4000E and XC4000X Series Field Programmable Gate Arrays

                                                               IF UNCONNECTED,
                                                                 DEFAULT IS CCLK

                                              CLK                           DATA               READ_DATA                   MD1
                                             TRIG                           RIP        OBUF
                  READ_TRIGGER                                    READBACK


Figure 49: Readback Schematic Example

Readback Options

Readback options are: Read Capture, Read Abort, and                         I/O                                                                                       I/O

Clock Select. They are set with the bitstream generation                               PROGRAMMABLE
software.                                                                              INTERCONNECT

Read Capture                                                                TRIG
When the Read Capture option is selected, the readback                             RIP
data stream includes sampled values of CLB and IOB sig-                                                                                                            I
nals. The rising edge of RDBK.TRIG latches the inverted
values of the four CLB outputs, the IOB output flip-flops and                    rdbk  I/O                                 I/O  I/O  rdclk
the input signals I1 and I2. Note that while the bits describ-
ing configuration (interconnect, function generators, and                                                                                                                                                                        X1787
RAM content) are not inverted, the CLB and IOB output sig-
nals are inverted.                                                Figure 50: READBACK Symbol in Graphical Editor

When the Read Capture option is not selected, the values          Violating the Maximum High and Low Time
of the capture bits reflect the configuration data originally     Specification for the Readback Clock
written to those memory locations.
                                                                  The readback clock has a maximum High and Low time
If the RAM capability of the CLBs is used, RAM data are           specification. In some cases, this specification cannot be
available in readback, since they directly overwrite the F        met. For example, if a processor is controlling readback, an
and G function-table configuration of the CLB.                    interrupt may force it to stop in the middle of a readback.
                                                                  This necessitates stopping the clock, and thus violating the
RDBK.TRIG is located in the lower-left corner of the device,      specification.
as shown in Figure 50.
                                                                  The specification is mandatory only on clocking data at the
Read Abort                                                        end of a frame prior to the next start bit. The transfer mech-
                                                                  anism will load the data to a shift register during the last six
When the Read Abort option is selected, a High-to-Low             clock cycles of the frame, prior to the start bit of the follow-
transition on RDBK.TRIG terminates the readback opera-            ing frame. This loading process is dynamic, and is the
tion and prepares the logic to accept another trigger.            source of the maximum High and Low time requirements.

After an aborted readback, additional clocks (up to one           Therefore, the specification only applies to the six clock
readback clock per configuration frame) may be required to        cycles prior to and including any start bit, including the
re-initialize the control logic. The status of readback is indi-  clocks before the first start bit in the readback data stream.
cated by the output control net RDBK.RIP. RDBK.RIP is             At other times, the frame data is already in the register and
High whenever a readback is in progress.                          the register is not dynamic. Thus, it can be shifted out just
                                                                  like a regular shift register.
Clock Select
                                                                  The user must precisely calculate the location of the read-
CCLK is the default clock. However, the user can insert           back data relative to the frame. The system must keep track
another clock on RDBK.CLK. Readback control and data              of the position within a data frame, and disable interrupts
are clocked on rising edges of RDBK.CLK. If readback              before frame boundaries. Frame lengths and data formats
must be inhibited for security reasons, the readback control      are listed in Table 19, Table 20 and Table 21.
nets are simply not connected.
                                                                  Readback with the XChecker Cable
RDBK.CLK is located in the lower right chip corner, as
shown in Figure 50.                                               The XChecker Universal Download/Readback Cable and
                                                                  Logic Probe uses the readback feature for bitstream verifi-
                                                                  cation. It can also display selected internal signals on the
                                                                  PC or workstation screen, functioning as a low-cost in-cir-
                                                                  cuit emulator.

6-56                                                                                                                       May 14, 1999 (Version 1.6)

                                        XC4000E and XC4000X Series Field Programmable Gate Arrays

XC4000E/EX/XL Program Readback Switching Characteristic Guidelines

Testing of the switching parameters is modeled after testing methods specified by MIL-M-38510/605. All devices are 100%
functionally tested. Internal timing parameters are not measured directly. They are derived from benchmark timing patterns
that are taken at device introduction, prior to any process improvements.
The following guidelines reflect worst-case values over the recommended operating conditions.

         Internal Net

           rdbk.TRIG                     TRCRT  2       1 TRTRC  TRCRT 2
                                1 TRTRC
                                         TRCH 5
                               4 TRCL



         rdbk.DATA                       DUMMY DUMMY             VALID  VALID
                                           TRCRD 7



           Description                                                     Symbol          Min  Max         Units

rdbk.TRIG  rdbk.TRIG setup to initiate and abort Readback 1                    TRTRC       200  -           ns

           rdbk.TRIG hold to initiate and abort Readback 2                     TRCRT       50   -           ns

rdclk.1    rdbk.DATA delay                                              7      TRCRD       -    250         ns
           rdbk.RIP delay
           High time                                                    6      TRCRR       -    250         ns
           Low time
                                                                        5      TRCH        250  500         ns

                                                                        4      TRCL        250  500         ns

Note 1: Timing parameters apply to all speed grades.
Note 2: If rdbk.TRIG is High prior to Finished, Finished will trigger the first Readback.


           Description                                                     Symbol          Min  Max         Units

rdbk.TRIG  rdbk.TRIG setup to initiate and abort Readback 1                    TRTRC       200  -           ns

           rdbk.TRIG hold to initiate and abort Readback 2                     TRCRT       50   -           ns

rdclk.1    rdbk.DATA delay                                              7      TRCRD       -    250         ns

           rdbk.RIP delay                                               6      TRCRR       -    250         ns
           High time
           Low time                                                     5      TRCH        250  500         ns

                                                                        4      TRCL        250  500         ns

Note 1: Timing parameters apply to all speed grades.
Note 2: If rdbk.TRIG is High prior to Finished, Finished will trigger the first Readback.

May 14, 1999 (Version 1.6)                                                                                      6-57

XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 22: Pin Functions During Configuration

                            CONFIGURATION MODE

    SLAVE        MASTER         SYNCH.        ASYNCH.       MASTER            MASTER             USER
    SERIAL        SERIAL    PERIPHERAL                                    PARALLEL UP       OPERATION
    <1:1:1>       <0:0:0>                     PERIPHERAL PARALLEL DOWN
M2(HIGH) (I)   M2(LOW) (I)      <0:1:1>                                        <1:0:0>             (I)
M1(HIGH) (I)   M1(LOW) (I)                    <1:0:1>       <1:1:0>        M2(HIGH) (I)            (O)
M0(HIGH) (I)   M0(LOW) (I)                                                  M1(LOW) (I)            (I)
HDC (HIGH)    HDC (HIGH)   M2(LOW) (I)       M2(HIGH) (I)  M2(HIGH) (I)    M0(LOW) (I)            I/O
LDC (LOW)     LDC (LOW)                                                   HDC (HIGH)              I/O
                            M1(HIGH) (I)      M1(LOW) (I)   M1(HIGH) (I)    LDC (LOW)              I/O
      INIT          INIT                                                                        DONE
     DONE          DONE     M0(HIGH) (I) M0(HIGH) (I)       M0(LOW) (I)          INIT        PROGRAM
PROGRAM (I)   PROGRAM (I)                                                       DONE           CCLK (I)
   CCLK (I)      CCLK (O)   HDC (HIGH)        HDC (HIGH)    HDC (HIGH)    PROGRAM (I)              I/O
                                                                             CCLK (O)              I/O
     DIN (I)       DIN (I)  LDC (LOW)         LDC (LOW)     LDC (LOW)        RCLK (O)              I/O
     DOUT          DOUT                                                                            I/O
                            INIT              INIT          INIT             DATA 7 (I)            I/O
       TDI           TDI                                                     DATA 6 (I)            I/O
      TCK           TCK     DONE              DONE          DONE             DATA 5 (I)            I/O
      TMS           TMS                                                      DATA 4 (I)            I/O
      TDO           TDO     PROGRAM (I) PROGRAM (I) PROGRAM (I)              DATA 3 (I)            I/O
                                                                             DATA 2 (I)            I/O
                            CCLK (I)          CCLK (O)      CCLK (O)         DATA 1 (I)            I/O
                                                                             DATA 0 (I)  SGCK4-GCK5-I/O
                            RDY/BUSY (O) RDY/BUSY (O)       RCLK (O)                            TDI-I/O
                                                                                DOUT           TCK-I/O
                                              RS (I)                              TDI          TMS-I/O
                                                                                 TCK           TDO-(O)
                                              CS0 (I)                            TMS               I/O
                                                                                 TDO     PGCK4-GCK6-I/O
                            DATA 7 (I)        DATA 7 (I)    DATA 7 (I)            A0               I/O
                                                                                  A1               I/O
                            DATA 6 (I)        DATA 6 (I)    DATA 6 (I)            A2               I/O
                                                                                  A3               I/O
                            DATA 5 (I)        DATA 5 (I)    DATA 5 (I)            A4               I/O
                                                                                  A5               I/O
                            DATA 4 (I)        DATA 4 (I)    DATA 4 (I)            A6               I/O
                                                                                  A7               I/O
                            DATA 3 (I)        DATA 3 (I)    DATA 3 (I)            A8               I/O
                                                                                  A9               I/O
                            DATA 2 (I)        DATA 2 (I)    DATA 2 (I)           A10               I/O
                                                                                 A11               I/O
                            DATA 1 (I)        DATA 1 (I)    DATA 1 (I)           A12               I/O
                                                                                 A13     SGCK1-GCK7-I/O
                            DATA 0 (I)        DATA 0 (I)    DATA 0 (I)           A14     PGCK1-GCK8-I/O
                                                                                 A15               I/O
                            DOUT              DOUT          DOUT                 A16               I/O
                                                                                 A17               I/O
                            TDI               TDI           TDI                  A18*              I/O
                                                                                 A19*              I/O
                            TCK               TCK           TCK                  A20*      ALL OTHERS
                            TMS               TMS           TMS

                            TDO               TDO           TDO

                                              WS (I)        A0


                                              CS1           A2




















6-58                                                                      May 14, 1999 (Version 1.6)

                                      XC4000E and XC4000X Series Field Programmable Gate Arrays

Table 23: Pin Functions During Configuration

                            CONFIGURATION MODE

SLAVE         MASTER            SYNCH.        ASYNCH.       MASTER                               MASTER          USER
SERIAL        SERIAL        PERIPHERAL                                                                       OPERATION
<1:1:1>        <0:0:0>                        PERIPHERAL PARALLEL DOWN PARALLEL UP
                                              <1:0:1>       <1:1:0>                              <1:0:0>

M2(HIGH) (I)  M2(LOW) (I)   M2(LOW) (I)       M2(HIGH) (I)  M2(HIGH) (I)  M2(HIGH) (I)                       (I)

M1(HIGH) (I)  M1(LOW) (I)   M1(HIGH) (I)      M1(LOW) (I)   M1(HIGH) (I)  M1(LOW) (I)                        (O)

M0(HIGH) (I)  M0(LOW) (I)   M0(HIGH) (I)      M0(HIGH) (I)  M0(LOW) (I)   M0(LOW) (I)                        (I)

HDC (HIGH)    HDC (HIGH)    HDC (HIGH)        HDC (HIGH)    HDC (HIGH)    HDC (HIGH)                         I/O

LDC (LOW)     LDC (LOW)     LDC (LOW)         LDC (LOW)     LDC (LOW)                            LDC (LOW)   I/O

INIT          INIT          INIT              INIT          INIT                                 INIT        I/O

DONE          DONE          DONE              DONE          DONE                                 DONE        DONE

PROGRAM (I) PROGRAM (I) PROGRAM (I) PROGRAM (I) PROGRAM (I)               PROGRAM (I)                        PROGRAM

CCLK (I)      CCLK (O)      CCLK (I)          CCLK (O)      CCLK (O)                             CCLK (O)    CCLK (I)

                            RDY/BUSY (O) RDY/BUSY (O)       RCLK (O)                             RCLK (O)    I/O

                                              RS (I)                                                         I/O

                                              CS0 (I)                                                        I/O

                            DATA 7 (I)        DATA 7 (I)    DATA 7 (I)                           DATA 7 (I)  I/O

                            DATA 6 (I)        DATA 6 (I)    DATA 6 (I)                           DATA 6 (I)  I/O

                            DATA 5 (I)        DATA 5 (I)    DATA 5 (I)                           DATA 5 (I)  I/O

                            DATA 4 (I)        DATA 4 (I)    DATA 4 (I)                           DATA 4 (I)  I/O

                            DATA 3 (I)        DATA 3 (I)    DATA 3 (I)                           DATA 3 (I)  I/O

                            DATA 2 (I)        DATA 2 (I)    DATA 2 (I)                           DATA 2 (I)  I/O

                            DATA 1 (I)        DATA 1 (I)    DATA 1 (I)                           DATA 1 (I)  I/O             6

DIN (I)       DIN (I)       DATA 0 (I)        DATA 0 (I)    DATA 0 (I)                           DATA 0 (I)  I/O

DOUT          DOUT          DOUT              DOUT          DOUT                                 DOUT        SGCK4-GCK5-I/O

TDI           TDI           TDI               TDI           TDI                                  TDI         TDI-I/O

TCK           TCK           TCK               TCK           TCK                                  TCK         TCK-I/O

TMS           TMS           TMS               TMS           TMS                                  TMS         TMS-I/O

TDO           TDO           TDO               TDO           TDO                                  TDO         TDO-(O)

                                              WS (I)        A0                                   A0          I/O

                                                            A1                                   A1          PGCK4-GCK6-I/O

                                              CS1           A2                                   A2          I/O

                                                            A3                                   A3          I/O

                                                            A4                                   A4          I/O

                                                            A5                                   A5          I/O

                                                            A6                                   A6          I/O

                                                            A7                                   A7          I/O

                                                            A8                                   A8          I/O

                                                            A9                                   A9          I/O

                                                            A10                                  A10         I/O

                                                            A11                                  A11         I/O

                                                            A12                                  A12         I/O

                                                            A13                                  A13         I/O

                                                            A14                                  A14         I/O

                                                            A15                                  A15         SGCK1-GCK7-I/O

                                                            A16                                  A16         PGCK1-GCK8-I/O

                                                            A17                                  A17         I/O

                                                            A18*                                 A18*        I/O

                                                            A19*                                 A19*        I/O

                                                            A20*                                 A20*        I/O

                                                            A21*                                 A21*        I/O

                                                                                                             ALL OTHERS

* XC4000X only
Notes 1. A shaded table cell represents a 50 k - 100 k pull-up before and during configuration.

           2. (I) represents an input; (O) represents an output.
           3. INIT is an open-drain output during configuration.

May 14, 1999 (Version 1.6)                                                                                             6-59

XC4000E and XC4000X Series Field Programmable Gate Arrays

Configuration Timing                                                                    There is an internal delay of 0.5 CCLK periods, which
                                                                                        means that DOUT changes on the falling CCLK edge, and
The seven configuration modes are discussed in detail in                                the next FPGA in the daisy chain accepts data on the sub-
this section. Timing specifications are included.                                       sequent rising CCLK edge.

Slave Serial Mode                                                                       Figure 51 shows a full master/slave system. An XC4000
                                                                                        Series device in Slave Serial mode should be connected as
In Slave Serial mode, an external signal drives the CCLK                                shown in the third device from the left.
input of the FPGA. The serial configuration bitstream must
be available at the DIN input of the lead FPGA a short                                  Slave Serial mode is selected by a <111> on the mode pins
setup time before each rising CCLK edge.                                                (M2, M1, M0). Slave Serial is the default mode if the mode
                                                                                        pins are left unconnected, as they have weak pull-up resis-
The lead FPGA then presents the preamble data--and all                                  tors during configuration.
data that overflows the lead device--on its DOUT pin.

            NOTE:                                                                                                          NOTE:
            M2, M1, M0 can be shorted                                                                                      M2, M1, M0 can be shorted
            to Ground if not used as I/O                                                                                   to VCC if not used as I/O

                                                                                             N/C                   VCC     4.7 K         4.7 K

            4.7 K     4.7 K                                                                                         4.7 K

                                4.7 K

                         M0 M1                                                          N/C    M0 M1                          M0 M1      PWRDN
                      M2                                                                     M2                            M2                    DOUT

                                          DOUT                                               DIN            DOUT           DIN

                             XC4000E/X            VCC                                        CCLK                          CCLK
                              SERIAL                    4.7 K  XC1700D +5 V                       XC4000E/X,                      XC3100A
                                                                                                    XC5200                         SLAVE
                                          CCLK                 CLK       VPP
                                                               DATA      CEO
                                          DIN                  CE
                      PROGRAM             LDC                                                PROGRAM                       RESET

                      DONE                INIT                                               DONE            INIT          D/P                  INIT

                                                               (Low Reset Option Used)

      PROGRAM                                                                                                                                          X9025

Figure 51: Master/Slave Serial Mode Circuit Diagram

                 DIN                              Bit n                                      Bit n + 1

               CCLK                       1 TDCC         2 TCCD                                               5 TCCL

              DOUT                                                  4 TCCH                              3 TCCO
            (Output)                                              Bit n - 1
                                                                                                                                  Bit n


                             Description                          Symbol                                Min                Max                         Units
                                                                                                                            30                           ns
               DIN setup                                       1         TDCC                           20                  10                           ns
               DIN hold                                                                                                                                  ns
               DIN to DOUT                                     2         TCCD                           0                                                ns
               High time                                                                                                                                 ns
      CCLK     Low time                                        3         TCCO                                                                          MHz
                                                               4         TCCH                           45

                                                               5         TCCL                           45


Note: Configuration must be delayed until the INIT pins of all daisy-chained FPGAs are High.

Figure 52: Slave Serial Mode Programming Switching Characteristics

6-60                                                                                                                       May 14, 1999 (Version 1.6)

                              XC4000E and XC4000X Series Field Programmable Gate Arrays

Master Serial Mode                                                 For actual timing values please refer to "Configuration
                                                                   Switching Characteristics" on page 68. Be sure that the
In Master Serial mode, the CCLK output of the lead FPGA            serial PROM and slaves are fast enough to support this
drives a Xilinx Serial PROM that feeds the FPGA DIN input.         data rate. XC2000, XC3000/A, and XC3100A devices do
Each rising edge of the CCLK output increments the Serial          not support the Fast ConfigRate option.
PROM internal address counter. The next data bit is put on
the SPROM data output, connected to the FPGA DIN pin.              The SPROM CE input can be driven from either LDC or
The lead FPGA accepts this data on the subsequent rising           DONE. Using LDC avoids potential contention on the DIN
CCLK edge.                                                         pin, if this pin is configured as user-I/O, but LDC is then
                                                                   restricted to be a permanently High user output after con-
The lead FPGA then presents the preamble data--and all             figuration. Using DONE can also avoid contention on DIN,
data that overflows the lead device--on its DOUT pin.              provided the early DONE option is invoked.
There is an internal pipeline delay of 1.5 CCLK periods,
which means that DOUT changes on the falling CCLK                  Figure 51 on page 60 shows a full master/slave system.
edge, and the next FPGA in the daisy chain accepts data            The leftmost device is in Master Serial mode.
on the subsequent rising CCLK edge.
                                                                   Master Serial mode is selected by a <000> on the mode
In the bitstream generation software, the user can specify         pins (M2, M1, M0).
Fast ConfigRate, which, starting several bits into the first
frame, increases the CCLK frequency by a factor of eight.


                                               2 TCKDS

                                 1 TDSCK                                                                                               6

Serial Data In                   n                            n+1             n+2

Serial DOUT                 n3           n2                        n1           n

                            Description           Symbol                  Min      Max                                 Units

CCLK            DIN setup                      1              TDSCK       20                                           ns

                DIN hold                       2              TCKDS       0                                            ns

Notes: 1. At power-up, Vcc must rise from 2.0 V to Vcc min in less than 25 ms, otherwise delay configuration by pulling PROGRAM

Low until Vcc is valid.

2. Master Serial mode timing is based on testing in slave mode.

Figure 53: Master Serial Mode Programming Switching Characteristics

May 14, 1999 (Version 1.6)                                                                                                       6-61

XC4000E and XC4000X Series Field Programmable Gate Arrays

Master Parallel Modes                                                     Master Parallel Down mode is selected by a <110> on the
                                                                          mode pins. The EPROM addresses start at 3FFFF and
In the two Master Parallel modes, the lead FPGA directly                  decrement.
addresses an industry-standard byte-wide EPROM, and
accepts eight data bits just before incrementing or decre-                Additional Address lines in XC4000 devices
menting the address outputs.
                                                                          The XC4000X devices have additional address lines
The eight data bits are serialized in the lead FPGA, which                (A18-A21) allowing the additional address space required
then presents the preamble data--and all data that over-                  to daisy-chain several large devices.
flows the lead device--on its DOUT pin. There is an inter-
nal delay of 1.5 CCLK periods, after the rising CCLK edge                 The extra address lines are programmable in XC4000EX
that accepts a byte of data (and also changes the EPROM                   devices. By default these address lines are not activated. In
address) until the falling CCLK edge that makes the LSB                   the default mode, the devices are compatible with existing
(D0) of this byte appear at DOUT. This means that DOUT                    XC4000 and XC4000E products. If desired, the extra
changes on the falling CCLK edge, and the next FPGA in                    address lines can be used by specifying the address lines
the daisy chain accepts data on the subsequent rising                     option in bitgen as 22 (bitgen -g AddressLines:22). The
CCLK edge.                                                                lines (A18-A21) are driven when a master device detects,
                                                                          via the bitstream, that it should be using all 22 address
The PROM address pins can be incremented or decre-                        lines. Because these pins will initially be pulled high by
mented, depending on the mode pin settings. This option                   internal pull-ups, designers using Master Parallel Up mode
allows the FPGA to share the PROM with a wide variety of                  should use external pull down resistors on pins A18-A21. If
microprocessors and micro controllers. Some processors                    Master Parallel Down mode is used external resistors are
must boot from the bottom of memory (all zeros) while oth-                not necessary.
ers must boot from the top. The FPGA is flexible and can
load its configuration bitstream from either end of the mem-              All 22 address lines are always active in Master Parallel
ory.                                                                      modes with XC4000XL devices. The additional address
                                                                          lines behave identically to the lower order address lines. If
Master Parallel Up mode is selected by a <100> on the                     the Address Lines option in bitgen is set to 18, it will be
mode pins (M2, M1, M0). The EPROM addresses start at                      ignored by the XC4000XL device.
00000 and increment.
                                                                          The additional address lines (A18-A21) are not available in
                                                                          the PC84 package.

                              4.7K  HIGH                   TO DIN OF OPTIONAL
                                                           DAISY-CHAINED FPGAS
                                    LOW N/C

                                 M0 M1  M2                                                                                                                       N/C
                              DOUT                         TO CCLK OF OPTIONAL
                                          CCLK             DAISY-CHAINED FPGAS
      NOTE:M0 can be shorted                 A17      ...                                                M0 M1 M2
      to Ground if not used   PROGRAM        A16
      as I/O.                 D7             A15      ...                                                DIN                                                          DOUT
                              D6             A14
                      VCC     D5             A13      ...      EPROM
                              D4             A12
             4.7K             D3             A11      ...      (8K x 8)                                  CCLK
                              D2             A10           (OR LARGER)                                           XC4000E/X
                              D0               A9     ...                 USER CONTROL OF HIGHER
                                               A8                         ORDER PROM ADDRESS BITS
                                               A6          A12            CAN BE USED TO SELECT BETWEEN        SLAVE
                                               A5                         ALTERNATIVE CONFIGURATIONS
                                               A3          A11
                                               A2                                                                                                   PROGRAM
                                               A0          A10
                                                           A9                                            DONE                                                         INIT


                                                           A7         D7

                                                           A6         D6

                                                           A5         D5

                                                           A4         D4

                                                           A3         D3

                                                           A2         D2

                                                           A1         D1

                                                           A0         D0



                              DATA BUS             8



Figure 54: Master Parallel Mode Circuit Diagram

6-62                                                                                                                                                                  May 14, 1999 (Version 1.6)

                                  XC4000E and XC4000X Series Field Programmable Gate Arrays

A0-A17                                          Address for Byte n                                   Address for Byte n + 1
(output)                                                                                              1 TRAC
D0-D7                                                                       2 TDRC                     3 TRCD
                                                              7 CCLKs                                     CCLK
(output)                                                                                     D6                              D7
                                                                                         Byte n - 1
  CCLK                                                                                                                                     X6078


                                   Description     Symbol                            Min             Max                     Units                6

          Delay to Address valid                1         TRAC                       0               200                     ns

RCLK      Data setup time                       2         TDRC                       60                                      ns

          Data hold time                        3         TRCD                       0                                       ns

Notes: 1. At power-up, Vcc must rise from 2.0 V to Vcc min in less than 25 ms, otherwise delay configuration by pulling PROGRAM

          Low until Vcc is valid.

          2. The first Data byte is loaded and CCLK starts at the end of the first RCLK active cycle (rising edge).

This timing diagram shows that the EPROM requirements are extremely relaxed. EPROM access time can be longer than

500 ns. EPROM data output has no hold-time requirements.

Figure 55: Master Parallel Mode Programming Switching Characteristics

May 14, 1999 (Version 1.6)                                                                                                          6-63

XC4000E and XC4000X Series Field Programmable Gate Arrays

Synchronous Peripheral Mode                                     The lead FPGA serializes the data and presents the pre-
                                                                amble data (and all data that overflows the lead device) on
Synchronous Peripheral mode can also be considered              its DOUT pin. There is an internal delay of 1.5 CCLK peri-
Slave Parallel mode. An external signal drives the CCLK         ods, which means that DOUT changes on the falling CCLK
input(s) of the FPGA(s). The first byte of parallel configura-  edge, and the next FPGA in the daisy chain accepts data
tion data must be available at the Data inputs of the lead      on the subsequent rising CCLK edge.
FPGA a short setup time before the rising CCLK edge.
Subsequent data bytes are clocked in on every eighth con-       In order to complete the serial shift operation, 10 additional
secutive rising CCLK edge.                                      CCLK rising edges are required after the last data byte has
                                                                been loaded, plus one more CCLK cycle for each
The same CCLK edge that accepts data, also causes the           daisy-chained device.
RDY/BUSY output to go High for one CCLK period. The pin
name is a misnomer. In Synchronous Peripheral mode it is        Synchronous Peripheral mode is selected by a <011> on
really an ACKNOWLEDGE signal. Synchronous operation             the mode pins (M2, M1, M0).
does not require this response, but it is a meaningful signal
for test purposes. Note that RDY/BUSY is pulled High with
a high-impedance pullup prior to INIT going High.

                                           M2 can be shorted to Ground
                                           if not used as I/O

                                 N/C       4.7 k                                     N/C

          CLOCK                    M0 M1 M2                                      M0 M1 M2
                           8     CCLK                                          CCLK

      DATA BUS                   D0-7                           OPTIONAL
                            VCC                                 FPGAs

                      4.7 k                DOUT                                DIN        DOUT

                                  XC4000E/X                                    XC4000E/X
                                  SYNCHRO-                                       SLAVE


      CONTROL                    RDY/BUSY
                     4.7 k       INIT      DONE                                INIT       DONE

          PROGRAM                PROGRAM                                       PROGRAM


Figure 56: Synchronous Peripheral Mode Circuit Diagram

6-64                                                                                 May 14, 1999 (Version 1.6)

                                    XC4000E and XC4000X Series Field Programmable Gate Arrays


INIT                        BYTE                                                           BYTE
                            0                                                              1
               RDY/BUSY                                           BYTE 0 OUT                           BYTE 1 OUT

                                                    0  1  2       3  4                  5  6        7  0  1


                            Description                   Symbol        Min                      Max      Units

                            INIT (High) setup time        TIC                 5                                                    s

                            D0 - D7 setup time            TDC                 60                                                   ns        6
                            D0 - D7 hold time
      CCLK                  CCLK High time                TCD                 0                                                    ns

                                                          TCCH                50                                                   ns

                            CCLK Low time                 TCCL                60                                                   ns

                            CCLK Frequency                FCC                                    8        MHz

Notes: 1. Peripheral Synchronous mode can be considered Slave Parallel mode. An external CCLK provides timing, clocking in the

      first data byte on the second rising edge of CCLK after INIT goes High. Subsequent data bytes are clocked in on every

      eighth consecutive rising edge of CCLK.

      2. The RDY/BUSY line goes High for one CCLK period after data has been clocked in, although synchronous operation does

      not require such a response.

      3. The pin name RDY/BUSY is a misnomer. In Synchronous Peripheral mode this is really an ACKNOWLEDGE signal.

      4. Note that data starts to shift out serially on the DOUT pin 0.5 CCLK periods after it was loaded in parallel. Therefore,

      additional CCLK pulses are clearly required after the last byte has been loaded.

Figure 57: Synchronous Peripheral Mode Programming Switching Characteristics

May 14, 1999 (Version 1.6)                                                                                                             6-65

XC4000E and XC4000X Series Field Programmable Gate Arrays

Asynchronous Peripheral Mode                                                The READY/BUSY handshake can be ignored if the delay
                                                                            from any one Write to the end of the next Write is guaran-
Write to FPGA                                                               teed to be longer than 10 CCLK periods.

Asynchronous Peripheral mode uses the trailing edge of                      Status Read
the logic AND condition of WS and CS0 being Low and RS
and CS1 being High to accept byte-wide data from a micro-                   The logic AND condition of the CS0, CS1and RS inputs
processor bus. In the lead FPGA, this data is loaded into a                 puts the device status on the Data bus.
double-buffered UART-like parallel-to-serial converter and
is serially shifted into the internal logic.                                 D7 High indicates Ready
                                                                            D7 Low indicates Busy
The lead FPGA presents the preamble data (and all data                      D0 through D6 go unconditionally High
that overflows the lead device) on its DOUT pin. The
RDY/BUSY output from the lead FPGA acts as a hand-                          It is mandatory that the whole start-up sequence be started
shake signal to the microprocessor. RDY/BUSY goes Low                       and completed by one byte-wide input. Otherwise, the pins
when a byte has been received, and goes High again when                     used as Write Strobe or Chip Enable might become active
the byte-wide input buffer has transferred its information                  outputs and interfere with the final byte transfer. If this
into the shift register, and the buffer is ready to receive new             transfer does not occur, the start-up sequence is not com-
data. A new write may be started immediately, as soon as                    pleted all the way to the finish (point F in Figure 47 on page
the RDY/BUSY output has gone Low, acknowledging&