0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
XC5210-5PC84C

XC5210-5PC84C

  • 厂商:

    XILINX(赛灵思)

  • 封装:

    LCC-84

  • 描述:

    IC FPGA 65 I/O 84PLCC

  • 数据手册
  • 价格&库存
XC5210-5PC84C 数据手册
Product Obsolete or Under Obsolescence 0 XC5200 Series Field Programmable Gate Arrays R November 5, 1998 (Version 5.2) 0 7* Product Specification Features - • Low-cost, register/latch rich, SRAM based reprogrammable architecture - 0.5µm three-layer metal CMOS process technology - 256 to 1936 logic cells (3,000 to 23,000 “gates”) - Price competitive with Gate Arrays • System Level Features - System performance beyond 50 MHz - 6 levels of interconnect hierarchy - VersaRing™ I/O Interface for pin-locking - Dedicated carry logic for high-speed arithmetic functions - Cascade chain for wide input functions - Built-in IEEE 1149.1 JTAG boundary scan test circuitry on all I/O pins - Internal 3-state bussing capability - Four dedicated low-skew clock or signal distribution nets • Versatile I/O and Packaging - Innovative VersaRing™ I/O interface provides a high logic cell to I/O ratio, with up to 244 I/O signals - Programmable output slew-rate control maximizes performance and reduces noise - Zero Flip-Flop hold time for input registers simplifies system timing - Independent Output Enables for external bussing • Footprint compatibility in common packages within the XC5200 Series and with the XC4000 Series - Over 150 device/package combinations, including advanced BGA, TQ, and VQ packaging available Fully Supported by Xilinx Development System - Automatic place and route software - Wide selection of PC and Workstation platforms - Over 100 3rd-party Alliance interfaces - Supported by shrink-wrap Foundation software Description The XC5200 Field-Programmable Gate Array Family is engineered to deliver low cost. Building on experiences gained with three previous successful SRAM FPGA families, the XC5200 family brings a robust feature set to programmable logic design. The VersaBlock™ logic module, the VersaRing I/O interface, and a rich hierarchy of interconnect resources combine to enhance design flexibility and reduce time-to-market. Complete support for the XC5200 family is delivered through the familiar Xilinx software environment. The XC5200 family is fully supported on popular workstation and PC platforms. Popular design entry methods are fully supported, including ABEL, schematic capture, VHDL, and Verilog HDL synthesis. Designers utilizing logic synthesis can use their existing tools to design with the XC5200 devices. . Table 1: XC5200 Field-Programmable Gate Array Family Members Device XC5202 XC5204 XC5206 XC5210 XC5215 256 480 784 1,296 1,936 3,000 6,000 10,000 16,000 23,000 2,000 - 3,000 4,000 - 6,000 6,000 - 10,000 8x8 10 x 12 14 x 14 18 x 18 22 x 22 CLBs 64 120 196 324 484 Flip-Flops 256 480 784 1,296 1,936 I/Os 84 124 148 196 244 TBUFs per Longline 10 14 16 20 24 Logic Cells Max Logic Gates Typical Gate Range VersaBlock Array November 5, 1998 (Version 5.2) 10,000 - 16,000 15,000 - 23,000 7-83 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays XC5200 Family Compared to XC4000/Spartan™ and XC3000 Series Table 2: Xilinx Field-Programmable Gate Array Families For readers already familiar with the XC4000/Spartan and XC3000 FPGA Families, this section describes significant differences between them and the XC5200 family. Unless otherwise indicated, comparisons refer to both XC4000/Spartan and XC3000 devices. CLB function generators 4 3 3 2 CLB inputs 20 9 9 5 CLB outputs 12 4 4 2 Configurable Logic Block (CLB) Resources Global buffers 4 8 8 2 Each XC5200 CLB contains four independent 4-input function generators and four registers, which are configured as four independent Logic Cells™ (LCs). The registers in each XC5200 LC are optionally configurable as edge-triggered D-type flip-flops or as transparent level-sensitive latches. User RAM no yes yes no Edge decoders no no yes no Cascade chain yes no no no The XC5200 CLB includes dedicated carry logic that provides fast arithmetic carry capability. The dedicated carry logic may also be used to cascade function generators for implementing wide arithmetic functions. Fast carry logic yes yes yes no Internal 3-state yes yes yes yes Boundary scan yes yes yes no Slew-rate control yes yes yes yes XC4000 family: XC5200 devices have no wide edge decoders. Wide decoders are implemented using cascade logic. Although sacrificing speed for some designs, lack of wide edge decoders reduces the die area and hence cost of the XC5200. XC4000/Spartan family: XC5200 dedicated carry logic differs from that of the XC4000/Spartan family in that the sum is generated in an additional function generator in the adjacent column. This design reduces XC5200 die size and hence cost for many applications. Note, however, that a loadable up/down counter requires the same number of function generators in both families. XC3000 has no dedicated carry. XC4000/Spartan family: XC5200 lookup tables are optimized for cost and hence cannot implement RAM. Input/Output Block (IOB) Resources The XC5200 family maintains footprint compatibility with the XC4000 family, but not with the XC3000 family. To minimize cost and maximize the number of I/O per Logic Cell, the XC5200 I/O does not include flip-flops or latches. For high performance paths, the XC5200 family provides direct connections from each IOB to the registers in the adjacent CLB in order to emulate IOB registers. Each XC5200 I/O Pin provides a programmable delay element to control input set-up time. This element can be used to avoid potential hold-time problems. Each XC5200 I/O Pin is capable of 8-mA source and sink currents. IEEE 1149.1-type boundary scan is supported in each XC5200 I/O. 7-84 Parameter XC5200 Spartan XC4000 XC3000 Routing Resources The XC5200 family provides a flexible coupling of logic and local routing resources called the VersaBlock. The XC5200 VersaBlock element includes the CLB, a Local Interconnect Matrix (LIM), and direct connects to neighboring VersaBlocks. The XC5200 provides four global buffers for clocking or high-fanout control signals. Each buffer may be sourced by means of its dedicated pad or from any internal source. Each XC5200 TBUF can drive up to two horizontal and two vertical Longlines. There are no internal pull-ups for XC5200 Longlines. Configuration and Readback The XC5200 supports a new configuration mode called Express mode. XC4000/Spartan family: The XC5200 family provides a global reset but not a global set. XC5200 devices use a different configuration process than that of the XC3000 family, but use the same process as the XC4000 and Spartan families. XC3000 family: Although their configuration processes differ, XC5200 devices may be used in daisy chains with XC3000 devices. XC3000 family: The XC5200 PROGRAM pin is a single-function input pin that overrides all other inputs. The PROGRAM pin does not exist in XC3000. November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays XC3000 family: XC5200 devices support an additional programming mode: Peripheral Synchronous. Input/Output Blocks (IOBs) XC3000 family: The XC5200 family does not support Power-down, but offers a Global 3-state input that does not reset any flip-flops. VersaRing GRM GRM VersaRing VersaBlock Architectural Overview Figure 1 presents a simplified, conceptual overview of the XC5200 architecture. Similar to conventional FPGAs, the XC5200 family consists of programmable IOBs, programmable logic blocks, and programmable interconnect. Unlike other FPGAs, however, the logic and local routing resources of the XC5200 family are combined in flexible VersaBlocks (Figure 2). General-purpose routing connects to the VersaBlock through the General Routing Matrix (GRM). GRM VersaBlock GRM VersaBlock GRM VersaBlock GRM VersaBlock GRM VersaBlock GRM VersaBlock VersaRing XC3000 family: The XC5200 family does not provide an on-chip crystal oscillator amplifier, but it does provide an internal oscillator from which a variety of frequencies up to 12 MHz are available. GRM VersaBlock VersaBlock VersaRing X4955 Figure 1: XC5200 Architectural Overview VersaBlock: Abundant Local Routing Plus Versatile Logic GRM The basic logic element in each VersaBlock structure is the Logic Cell, shown in Figure 3. Each LC contains a 4-input function generator (F), a storage device (FD), and control logic. There are five independent inputs and three outputs to each LC. The independence of the inputs and outputs allows the software to maximize the resource utilization within each LC. Each Logic Cell also contains a direct feedthrough path that does not sacrifice the use of either the function generator or the register; this feature is a first for FPGAs. The storage device is configurable as either a D flip-flop or a latch. The control logic consists of carry logic for fast implementation of arithmetic functions, which can also be configured as a cascade chain allowing decode of very wide input functions. 4 4 24 24 7 TS CLB LC3 4 LC2 4 4 4 4 LC1 LC0 LIM 4 4 Direct Connects X5707 Figure 2: VersaBlock CO DO DI D F4 Q FD F3 F2 F F1 X CI CE CK CLR X4956 Figure 3: XC5200 Logic Cell (Four LCs per CLB) November 5, 1998 (Version 5.2) 7-85 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays The XC5200 CLB consists of four LCs, as shown in Figure 4. Each CLB has 20 independent inputs and 12 independent outputs. The top and bottom pairs of LCs can be configured to implement 5-input functions. The challenge of FPGA implementation software has always been to maximize the usage of logic resources. The XC5200 family addresses this issue by surrounding each CLB with two types of local interconnect — the Local Interconnect Matrix (LIM) and direct connects. These two interconnect resources, combined with the CLB, form the VersaBlock, represented in Figure 2. LC3 CO DO DI D F4 Q FD F3 F2 F F1 X LC2 DO The LIM provides 100% connectivity of the inputs and outputs of each LC in a given CLB. The benefit of the LIM is that no general routing resources are required to connect feedback paths within a CLB. The LIM connects to the GRM via 24 bidirectional nodes. The direct connects allow immediate connections to neighboring CLBs, once again without using any of the general interconnect. These two layers of local routing resource improve the granularity of the architecture, effectively making the XC5200 family a “sea of logic cells.” Each Versa-Block has four 3-state buffers that share a common enable line and directly drive horizontal and vertical Longlines, creating robust on-chip bussing capability. The VersaBlock allows fast, local implementation of logic functions, effectively implementing user designs in a hierarchical fashion. These resources also minimize local routing congestion and improve the efficiency of the general interconnect, which is used for connecting larger groups of logic. It is this combination of both fine-grain and coarse-grain architecture attributes that maximize logic utilization in the XC5200 family. This symmetrical structure takes full advantage of the third metal layer, freeing the placement software to pack user logic optimally with minimal routing restrictions. DI D F4 Q FD F3 F2 F F1 X LC1 DO DI D F4 Q FD F3 F2 F F1 X LC0 DO DI D F4 Q VersaRing I/O Interface The interface between the IOBs and core logic has been redesigned in the XC5200 family. The IOBs are completely decoupled from the core logic. The XC5200 IOBs contain dedicated boundary-scan logic for added board-level testability, but do not include input or output registers. This approach allows a maximum number of IOBs to be placed around the device, improving the I/O-to-gate ratio and decreasing the cost per I/O. A “freeway” of interconnect cells surrounding the device forms the VersaRing, which provides connections from the IOBs to the internal logic. These incremental routing resources provide abundant connections from each IOB to the nearest VersaBlock, in addition to Longline connections surrounding the device. The VersaRing eliminates the historic trade-off between high logic utilization and pin placement flexibility. These incremental edge resources give users increased flexibility in preassigning (i.e., locking) I/O pins before completing their logic designs. This ability accelerates time-to-market, since PCBs and other system components can be manufactured concurrent with the logic design. General Routing Matrix FD F3 F2 F F1 X CI CE CK CLR X4957 Figure 4: Configurable Logic Block 7-86 The GRM is functionally similar to the switch matrices found in other architectures, but it is novel in its tight coupling to the logic resources contained in the VersaBlocks. Advanced simulation tools were used during the development of the XC5200 architecture to determine the optimal level of routing resources required. The XC5200 family contains six levels of interconnect hierarchy — a series of November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays single-length lines, double-length lines, and Longlines all routed through the GRM. The direct connects, LIM, and logic-cell feedthrough are contained within each Versa-Block. Throughout the XC5200 interconnect, an efficient multiplexing scheme, in combination with three layer metal (TLM), was used to improve the overall efficiency of silicon usage. Performance Overview The XC5200 family has been benchmarked with many designs running synchronous clock rates beyond 66 MHz. The performance of any design depends on the circuit to be implemented, and the delay through the combinatorial and sequential logic elements, plus the delay in the interconnect routing. A rough estimate of timing can be made by assuming 3-6 ns per logic level, which includes direct-connect routing delays, depending on speed grade. More accurate estimations can be made using the information in the Switching Characteristic Guideline section. Taking Advantage of Reconfiguration FPGA devices can be reconfigured to change logic function while resident in the system. This capability gives the system designer a new degree of freedom not available with any other type of logic. Hardware can be changed as easily as software. Design updates or modifications are easy, and can be made to products already in the field. An FPGA can even be reconfigured dynamically to perform different functions at different times. Reconfigurable logic can be used to implement system self-diagnostics, create systems capable of being reconfigured for different environments or operations, or implement multi-purpose hardware for a given application. As an added benefit, using reconfigurable FPGA devices simplifies hardware design and debugging and shortens product time-to-market. Detailed Functional Description Configurable Logic Blocks (CLBs) Figure 4 shows the logic in the XC5200 CLB, which consists of four Logic Cells (LC[3:0]). Each Logic Cell consists of an independent 4-input Lookup Table (LUT), and a D-Type flip-flop or latch with common clock, clock enable, and clear, but individually selectable clock polarity. Additional logic features provided in the CLB are: • An independent 5-input LUT by combining two 4-input LUTs. • High-speed carry propagate logic. • High-speed pattern decoding. • High-speed direct connection to flip-flop D-inputs. • Individual selection of either a transparent, level-sensitive latch or a D flip-flop. • Four 3-state buffers with a shared Output Enable. 5-Input Functions Figure 5 illustrates how the outputs from the LUTs from LC0 and LC1 can be combined with a 2:1 multiplexer (F5_MUX) to provide a 5-input function. The outputs from the LUTs of LC2 and LC3 can be similarly combined. 7 CO DO DI Q D FD I1 I2 I3 I4 F4 F3 F2 F1 F X LC1 F5_MUX DO I5 DI Q D out Qout FD F4 F3 F2 F1 F X CI CE CK 5-Input Function CLR LC0 X5710 Figure 5: Two LUTs in Parallel Combined to Create a 5-input Function November 5, 1998 (Version 5.2) 7-87 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays carry out A3 or B3 A3 and B3 to any two CO DO XOR X half sum3 F4 F3 F2 F1 FD XOR X LC3 A2 or B2 A2 and B2 to any two D F4 F3 F2 F1 DO DI Q D FD CY_MUX XOR X half sum2 F4 F3 F2 F1 XOR X A1 and B1 to any two D F4 F3 F2 F1 DO DI Q D FD CY_MUX XOR X half sum1 F4 F3 F2 F1 A0 and B0 to any two DO DI XOR X F4 F3 F2 F1 XOR X CI LC1 DO DI CE CK CLR Q D FD CY_MUX sum1 carry0 Q D Q FD LC1 A0 or B0 sum2 LC2 DO carry1 DI Q FD LC2 A1 or B1 sum3 LC3 DO carry2 DI Q D FD CY_MUX CO DI Q D F4 F3 F2 F1 carry3 DO DI half sum0 LC0 F4 F3 F2 F1 FD XOR X CI CE CK CLR sum0 LC0 carry in 0 CY_MUX F=0 Initialization of carry chain (One Logic Cell) X5709 Figure 6: XC5200 CY_MUX Used for Adder Carry Propagate Carry Function The XC5200 family supports a carry-logic feature that enhances the performance of arithmetic functions such as counters, adders, etc. A carry multiplexer (CY_MUX) symbol is used to indicate the XC5200 carry logic. This symbol represents the dedicated 2:1 multiplexer in each LC that performs the one-bit high-speed carry propagate per logic cell (four bits per CLB). While the carry propagate is performed inside the LC, an adjacent LC must be used to complete the arithmetic function. Figure 6 represents an example of an adder function. The carry propagate is performed on the CLB shown, 7-88 which also generates the half-sum for the four-bit adder. An adjacent CLB is responsible for XORing the half-sum with the corresponding carry-out. Thus an adder or counter requires two LCs per bit. Notice that the carry chain requires an initialization stage, which the XC5200 family accomplishes using the carry initialize (CY_INIT) macro and one additional LC. The carry chain can propagate vertically up a column of CLBs. The XC5200 library contains a set of Relationally-Placed Macros (RPMs) and arithmetic functions designed to take advantage of the dedicated carry logic. Using and modifying these macros makes it much easier to implement cus- November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays tomized RPMs, freeing the designer from the need to become an expert on architectures. results or other incoming data in flip-flops, and connect their outputs to the interconnect network as well. The CLB storage elements can also be configured as latches. Table 3: CLB Storage Element Functionality (active rising edge is shown) cascade out CO Q Mode Power-Up or GR X Flip-Flop DO DI D A15 F4 A14 F3 A13 F2 A12 F1 out FD CY_MUX AND LC3 DO DI D A11 A10 A9 A8 F4 F3 F2 F1 Latch Q FD CY_MUX Both Legend: X __/ 0* 1* AND X LC2 DO DI D A7 F4 A6 F3 A5 F2 A4 F1 A1 F2 A0 F1 Q FD CY_MUX X CE CK CLR LC0 cascade in CY_MUX F=0 Initialization of carry chain (One Logic Cell) X5708 Figure 7: XC5200 CY_MUX Used for Decoder Cascade Logic Cascade Function Each CY_MUX can be connected to the CY_MUX in the adjacent LC to provide cascadable decode logic. Figure 7 illustrates how the 4-input function generators can be configured to take advantage of these four cascaded CY_MUXes. Note that AND and OR cascading are specific cases of a general decode. In AND cascading all bits are decoded equal to logic one, while in OR cascading all bits are decoded equal to logic zero. The flexibility of the LUT achieves this result. The XC5200 library contains gate macros designed to take advantage of this function. CLB Flip-Flops and Latches The CLB can pass the combinatorial output(s) to the interconnect network, but can also store the combinatorial November 5, 1998 (Version 5.2) X X X X 0 X __/ 0 1 0 X X 1* X 1* 1* 0 1 0* 0* 0* 0* 0* X D X X D X 0 D Q Q D Q Don’t care Rising edge Input is Low or unconnected (default value) Input is High or unconnected (default value) Four fast feed-through paths from DI to DO are available, as shown in Figure 4. This bypass is sometimes used by the automated router to repower internal signals. In addition to the storage element (Q) and direct (DO) outputs, there is a combinatorial output (X) that is always sourced by the Lookup Table. AND CI Q The source of a storage element data input is programmable. It is driven by the function F, or by the Direct In (DI) block input. The flip-flops or latches drive the Q CLB outputs. X DO F3 D Data Inputs and Outputs AND D F4 CLR Q DI A2 CE FD CY_MUX LC1 A3 CK The four edge-triggered D-type flip-flops or level-sensitive latches have common clock (CK) and clock enable (CE) inputs. Any of the clock inputs can also be permanently enabled. Storage element functionality is described in Table 3. Clock Input The flip-flops can be triggered on either the rising or falling clock edge. The clock pin is shared by all four storage elements with individual polarity control. Any inverter placed on the clock input is automatically absorbed into the CLB. Clock Enable The clock enable signal (CE) is active High. The CE pin is shared by the four storage elements. If left unconnected for any, the clock enable for that storage element defaults to the active state. CE is not invertible within the CLB. Clear An asynchronous storage element input (CLR) can be used to reset all four flip-flops or latches in the CLB. This input 7-89 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays can also be independently disabled for any flip-flop. CLR is active High. It is not invertible within the CLB. STARTUP PAD IBUF GR GTS Q2 Q3 Q1Q4 CLK DONEIN X9009 Figure 8: Schematic Symbols for Global Reset Global Reset A separate Global Reset line clears each storage element during power-up, reconfiguration, or when a dedicated Reset net is driven active. This global net (GR) does not compete with other routing resources; it uses a dedicated distribution network. GR can be driven from any user-programmable pin as a global reset input. To use this global net, place an input pad and input buffer in the schematic or HDL code, driving the GR pin of the STARTUP symbol. (See Figure 9.) A specific pin location can be assigned to this input using a LOC attribute or property, just as with any other user-programmable pad. An inverter can optionally be inserted after the input buffer to invert the sense of the Global Reset signal. Alternatively, GR can be driven from any internal node. Using FPGA Flip-Flops and Latches The abundance of flip-flops in the XC5200 Series invites pipelined designs. This is a powerful way of increasing performance by breaking the function into smaller subfunctions and executing them in parallel, passing on the results through pipeline flip-flops. This method should be seriously considered wherever throughput is more important than latency. To include a CLB flip-flop, place the appropriate library symbol. For example, FDCE is a D-type flip-flop with clock enable and asynchronous clear. The corresponding latch symbol is called LDCE. In XC5200-Series devices, the flip-flops can be used as registers or shift registers without blocking the function generators from performing a different, perhaps unrelated task. This ability increases the functional capacity of the devices. The CLB setup time is specified between the function generator inputs and the clock input CK. Therefore, the specified CLB flip-flop setup time includes the delay through the function generator. Three-State Buffers The XC5200 family has four dedicated Three-State Buffers (TBUFs, or BUFTs in the schematic library) per CLB (see Figure 9). The four buffers are individually configurable through four configuration bits to operate as simple non-inverting buffers or in 3-state mode. When in 3-state mode the CLB output enable (TS) control signal drives the enable to all four buffers. Each TBUF can drive up to two horizontal and/or two vertical Longlines. These 3-state buffers can be used to implement multiplexed or bidirectional buses on the horizontal or vertical longlines, saving logic resources. The 3-state buffer enable is an active-High 3-state (i.e. an active-Low enable), as shown in Table 4. Table 4: Three-State Buffer Functionality IN X IN T 1 0 OUT Z IN Another 3-state buffer with similar access is located near each I/O block along the right and left edges of the array. The longlines driven by the 3-state buffers have a weak keeper at each end. This circuit prevents undefined floating levels. However, it is overridden by any driver. To ensure the longline goes high when no buffers are on, add an additional BUFT to drive the output High during all of the previously undefined states. Figure 10 shows how to use the 3-state buffers to implement a multiplexer. The selection is accomplished by the buffer 3-state signal. TS CLB CLB LC3 LC2 LC1 LC0 Horizontal Longlines X9030 Figure 9: XC5200 3-State Buffers 7-90 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Z = DA • A + DB • B + DC • C + DN • N ~100 kΩ DA DB BUFT DC BUFT A B DN BUFT C BUFT N X6466 "Weak Keeper" Figure 10: 3-State Buffers Implement a Multiplexer Input/Output Blocks User-configurable input/output blocks (IOBs) provide the interface between external package pins and the internal logic. Each IOB controls one package pin and can be configured for input, output, or bidirectional signals. The I/O block, shown in Figure 11, consists of an input buffer and an output buffer. The output driver is an 8-mA full-rail CMOS buffer with 3-state control. Two slew-rate control modes are supported to minimize bus transients. Both the output buffer and the 3-state control are invertible. The input buffer has globally selected CMOS or TTL input thresholds. The input buffer is invertible and also provides a programmable delay line to assure reliable chip-to-chip set-up and hold times. Minimum ESD protection is 3 KV using the Human Body Model. Vcc Source Any device, Vcc = 3.3 V, CMOS outputs Any device, Vcc = 5 V, TTL outputs Any device, Vcc = 5 V, CMOS outputs XC5200 Input Mode 5 V, 5 V, TTL CMOS √ √ √ Unreliable Data √ Optional Delay Guarantees Zero Hold Time XC5200 devices do not have storage elements in the IOBs. However, XC5200 IOBs can be efficiently routed to CLB flip-flops or latches to store the I/O signals. Input Buffer Pullup Delay I PAD Output Buffer Pulldown O T X9001 Table 5: Supported Sources for XC5200-Series Device Inputs Slew Rate Control Figure 11: XC5200 I/O Block IOB Input Signals The XC5200 inputs can be globally configured for either TTL (1.2V) or CMOS thresholds, using an option in the bitstream generation software. There is a slight hysteresis of about 300mV. The inputs of XC5200-Series 5-Volt devices can be driven by the outputs of any 3.3-Volt device, if the 5-Volt inputs are in TTL mode. Supported sources for XC5200-Series device inputs are shown in Table 5. November 5, 1998 (Version 5.2) The data input to the register can optionally be delayed by several nanoseconds. With the delay enabled, the setup time of the input flip-flop is increased so that normal clock routing does not result in a positive hold-time requirement. A positive hold time requirement can lead to unreliable, temperature- or processing-dependent operation. The input flip-flop setup time is defined between the data measured at the device I/O pin and the clock input at the CLB (not at the clock pin). Any routing delay from the device clock pin to the clock input of the CLB must, therefore, be subtracted from this setup time to arrive at the real setup time requirement relative to the device pins. A short specified setup time might, therefore, result in a negative setup time at the device pins, i.e., a positive hold-time requirement. When a delay is inserted on the data line, more clock delay can be tolerated without causing a positive hold-time requirement. Sufficient delay eliminates the possibility of a data hold-time requirement at the external pin. The maximum delay is therefore inserted as the software default. The XC5200 IOB has a one-tap delay element: either the delay is inserted (default), or it is not. The delay guarantees a zero hold time with respect to clocks routed through any of the XC5200 global clock buffers. (See “Global Lines” on page 96 for a description of the global clock buffers in the XC5200.) For a shorter input register setup time, with 7-91 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays non-zero hold, attach a NODELAY attribute or property to the flip-flop or input buffer. IOB Output Signals Output signals can be optionally inverted within the IOB, and pass directly to the pad. As with the inputs, a CLB flip-flop or latch can be used to store the output signal. An active-High 3-state signal can be used to place the output buffer in a high-impedance state, implementing 3-state outputs or bidirectional I/O. Under configuration control, the output (OUT) and output 3-state (T) signals can be inverted. The polarity of these signals is independently configured for each IOB. The XC5200 devices provide a guaranteed output sink current of 8 mA. Supported destinations for XC5200-Series device outputs are shown in Table 6.(For a detailed discussion of how to interface between 5 V and 3.3 V devices, see the 3V Products section of The Programmable Logic Data Book.) An output can be configured as open-drain (open-collector) by placing an OBUFT symbol in a schematic or HDL code, then tying the 3-state pin (T) to the output signal, and the input pin (I) to Ground. (See Figure 12.) Table 6: Supported Destinations for XC5200-Series Outputs XC5200 Output Mode 5 V, CMOS Destination XC5200 device, VCC=3.3 V, CMOS-threshold inputs Any typical device, VCC = 3.3 V, CMOS-threshold inputs Any device, VCC = 5 V, TTL-threshold inputs Any device, VCC = 5 V, CMOS-threshold inputs √ some1 √ √ 1. Only if destination device has 5-V tolerant inputs For XC5200 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 some XC5200 devices, additional internal Power/Ground pin pairs are connected to special Power and Ground planes within the packages, to reduce ground bounce. For slew-rate limited outputs this total is two times larger for each device type: 400 pF for XC5200 devices. This maximum capacitive load should not be exceeded, as it can result in ground bounce of greater than 1.5 V amplitude and more than 5 ns duration. This level of ground bounce may cause undesired transient behavior on an output, or in the internal logic. This restriction is common to all high-speed digital ICs, and is not particular to Xilinx or the XC5200 Series. XC5200-Series devices have a feature called “Soft Start-up,” designed to reduce ground bounce when all outputs are turned on simultaneously at the end of configuration. When the configuration process is finished and the device starts up, the first activation of the outputs is automatically slew-rate limited. Immediately following the initial activation of the I/O, the slew rate of the individual outputs is determined by the individual configuration option for each IOB. Global Three-State A separate Global 3-State line (not shown in Figure 11) forces all FPGA outputs to the high-impedance state, unless boundary scan is enabled and is executing an EXTEST instruction. This global net (GTS) does not compete with other routing resources; it uses a dedicated distribution network. GTS can be driven from any user-programmable pin as a global 3-state input. To use this global net, place an input pad and input buffer in the schematic or HDL code, driving the GTS pin of the STARTUP symbol. A specific pin location can be assigned to this input using a LOC attribute or property, just as with any other user-programmable pad. An inverter can optionally be inserted after the input buffer to invert the sense of the Global 3-State signal. Using GTS is similar to Global Reset. See Figure 8 on page 90 for details. Alternatively, GTS can be driven from any internal node. OPAD Other IOB Options OBUFT X6702 Figure 12: Open-Drain Output There are a number of other programmable options in the XC5200-Series IOB. Pull-up and Pull-down Resistors Output Slew Rate The slew rate of each output buffer is, by default, reduced, to minimize power bus transients when switching non-critical signals. For critical signals, attach a FAST attribute or property to the output buffer or flip-flop. 7-92 Programmable IOB pull-up and pull-down resistors are useful for tying unused pins to Vcc or Ground to minimize power consumption and reduce noise sensitivity. The configurable pull-up resistor is a p-channel transistor that pulls November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays to Vcc. The configurable pull-down resistor is an n-channel transistor that pulls to Ground. The value of these resistors is 20 kΩ − 100 kΩ. This high value makes them unsuitable as wired-AND pull-up resistors. The pull-up resistors for most user-programmable IOBs are active during the configuration process. See Table 13 on page 124 for a list of pins with pull-ups active before and during configuration. After configuration, voltage levels of unused pads, bonded or unbonded, must be valid logic levels, to reduce noise sensitivity and avoid excess current. Therefore, by default, unused pads are configured with the internal pull-up resistor active. Alternatively, they can be individually configured with the pull-down resistor, or as a driven output, or to be driven by an external source. To activate the internal pull-up, attach the PULLUP library component to the net attached to the pad. To activate the internal pull-down, attach the PULLDOWN library component to the net attached to the pad. JTAG Support Embedded logic attached to the IOBs contains test structures compatible with IEEE Standard 1149.1 for boundary scan testing, simplifying board-level testing. More information is provided in “Boundary Scan” on page 98. Oscillator XC5200 devices include an internal oscillator. This oscillator is used to clock the power-on time-out, clear configuration memory, and source CCLK in Master configuration modes. The oscillator runs at a nominal 12 MHz frequency that varies with process, Vcc, and temperature. The output CCLK frequency is selectable as 1 MHz (default), 6 MHz, or 12 MHz. The XC5200 oscillator divides the internal 12-MHz clock or a user clock. The user then has the choice of dividing by 4, 16, 64, or 256 for the “OSC1” output and dividing by 2, 8, 32, 128, 1024, 4096, 16384, or 65536 for the “OSC2” output. The division is specified via a “DIVIDEn_BY=x” attribute on the symbol, where n=1 for OSC1, or n=2 for OSC2. These frequencies can vary by as much as -50% or + 50%. The OSC5 macro is used where an internal oscillator is required. The CK_DIV macro is applicable when a user clock input is specified (see Figure 13). November 5, 1998 (Version 5.2) OSCS OSC1 OSC2 CK_DIV OSC1 OSC2 5200_14 Figure 13: XC5200 Oscillator Macros VersaBlock Routing The General Routing Matrix (GRM) connects to the Versa-Block via 24 bidirectional ports (M0-M23). Excluding direct connections, global nets, and 3-statable Longlines, all VersaBlock inputs and outputs connect to the GRM via these 24 ports. Four 3-statable unidirectional signals (TQ0-TQ3) drive out of the VersaBlock directly onto the horizontal and vertical Longlines. Two horizontal global nets and two vertical global nets connect directly to every CLB clock pin; they can connect to other CLB inputs via the GRM. Each CLB also has four unidirectional direct connects to each of its four neighboring CLBs. These direct connects can also feed directly back to the CLB (see Figure 14). In addition, each CLB has 16 direct inputs, four direct connections from each of the neighboring CLBs. These direct connections provide high-speed local routing that bypasses the GRM. Local Interconnect Matrix The Local Interconnect Matrix (LIM) is built from input and output multiplexers. The 13 CLB outputs (12 LC outputs plus a Vcc/GND signal) connect to the eight VersaBlock outputs via the output multiplexers, which consist of eight fully populated 13-to-1 multiplexers. Of the eight VersaBlock outputs, four signals drive each neighboring CLB directly, and provide a direct feedback path to the input multiplexers. The four remaining multiplexer outputs can drive the GRM through four TBUFs (TQ0-TQ3). All eight multiplexer outputs can connect to the GRM through the bidirectional M0-M23 signals. All eight signals also connect to the input multiplexers and are potential inputs to that CLB. 7-93 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays To GRM M0-M23 24 TS 4 Global Nets 8 COUT North 4 South 4 East 4 West 4 4 4 To Longlines and GRM TQ0-TQ3 4 Direct to East CLB 5 Input Multiplexers LC3 5 LC2 5 LC1 5 LC0 3 3 VCC /GND Output Multiplexers 3 8 4 3 Direct North CLK 4 Feedback 4 Direct West CE CLR CIN 4 4 Direct South X5724 Figure 14: VersaBlock Details CLB inputs have several possible sources: the 24 signals from the GRM, 16 direct connections from neighboring VersaBlocks, four signals from global, low-skew buffers, and the four signals from the CLB output multiplexers. Unlike the output multiplexers, the input multiplexers are not fully populated; i.e., only a subset of the available signals can be connected to a given CLB input. The flexibility of LUT input swapping and LUT mapping compensates for this limitation. For example, if a 2-input NAND gate is required, it can be mapped into any of the four LUTs, and use any two of the four inputs to the LUT. Direct Connects The unidirectional direct-connect segments are connected to the logic input/output pins through the CLB input and output multiplexer arrays, and thus bypass the general routing matrix altogether. These lines increase the routing channel utilization, while simultaneously reducing the delay incurred in speed-critical connections. 7-94 The direct connects also provide a high-speed path from the edge CLBs to the VersaRing input/output buffers, and thus reduce pin-to-pin set-up time, clock-to-out, and combinational propagation delay. Direct connects from the input buffers to the CLB DI pin (direct flip-flop input) are only available on the left and right edges of the device. CLB look-up table inputs and combinatorial/registered outputs have direct connects to input/output buffers on all four sides. The direct connects are ideal for developing customized RPM cells. Using direct connects improves the macro performance, and leaves the other routing channels intact for improved routing. Direct connects can also route through a CLB using one of the four cell-feedthrough paths. General Routing Matrix The General Routing Matrix, shown in Figure 15, provides flexible bidirectional connections to the Local Interconnect November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Matrix through a hierarchy of different-length metal segments in both the horizontal and vertical directions. A pro- GRM GRM VersaBlock GRM GRM VersaBlock VersaBlock GRM VersaBlock 1 GRM VersaBlock VersaBlock 2 GRM GRM VersaBlock GRM VersaBlock VersaBlock 3 4 Six Levels of Routing Hierarchy 1 Single-length Lines 2 Double-length Lines 3 Direct Connects GRM 4 7 4 24 24 TS CLB LC3 4 4 4 4 Longlines and Global Lines LC2 4 4 LC1 6 LC0 5 LIM 6 Local Interconnect Matrix LIM Logic Cell Feedthrough Path (Contained within each Logic Cell) 4 5 4 Direct Connects X4963 Figure 15: XC5200 Interconnect Structure grammable interconnect point (PIP) establishes an electrical connection between two wire segments. The PIP, consisting of a pass transistor switch controlled by a memory element, provides bidirectional (in some cases, unidirectional) connection between two adjoining wires. A collection of PIPs inside the General Routing Matrix and in the Local Interconnect Matrix provides connectivity between various types of metal segments. A hierarchy of PIPs and associated routing segments combine to provide a powerful interconnect hierarchy: • • • November 5, 1998 (Version 5.2) Forty bidirectional single-length segments per CLB provide ten routing channels to each of the four neighboring CLBs in four directions. Sixteen bidirectional double-length segments per CLB provide four routing channels to each of four other (non-neighboring) CLBs in four directions. Eight horizontal and eight vertical bidirectional Longline 7-95 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays segments span the width and height of the chip, respectively. Two low-skew horizontal and vertical unidirectional global-line segments span each row and column of the chip, respectively. Single- and Double-Length Lines The single- and double-length bidirectional line segments make up the bulk of the routing channels. The double-length lines hop across every other CLB to reduce the propagation delays in speed-critical nets. Regenerating the signal strength is recommended after traversing three or four such segments. Xilinx place-and-route software automatically connects buffers in the path of the signal as necessary. Single- and double-length lines cannot drive onto Longlines and global lines; Longlines and global lines can, however, drive onto single- and double-length lines. As a general rule, Longline and global-line connections to the general routing matrix are unidirectional, with the signal direction from these lines toward the routing matrix. Longlines Longlines are used for high-fan-out signals, 3-state busses, low-skew nets, and faraway destinations. Row and column splitter PIPs in the middle of the array effectively double the total number of Longlines by electrically dividing them into two separated half-lines. Longlines are driven by the 3-state buffers in each CLB, and are driven by similar buffers at the periphery of the array from the VersaRing I/O Interface. Bus-oriented designs are easily implemented by using Longlines in conjunction with the 3-state buffers in the CLB and in the VersaRing. Additionally, weak keeper cells at the periphery retain the last valid logic level on the Longlines when all buffers are in 3-state mode. carry/cascade logic described above, implementing a wide logic function in place of the wired function. In the case of 3-state bus applications, the user must insure that all states of the multiplexing function are defined. This process is as simple as adding an additional TBUF to drive the bus High when the previously undefined states are activated. Global Lines Global buffers in Xilinx FPGAs are special buffers that drive a dedicated routing network called Global Lines, as shown in Figure 16. This network is intended for high-fanout clocks or other control signals, to maximize speed and minimize skewing while distributing the signal to many loads. The XC5200 family has a total of four global buffers (BUFG symbol in the library), each with its own dedicated routing channel. Two are distributed vertically and two horizontally throughout the FPGA. The global lines provide direct input only to the CLB clock pins. The global lines also connect to the General Routing Matrix to provide access from these lines to the function generators and other control signals. Four clock input pads at the corners of the chip, as shown in Figure 16, provide a high-speed, low-skew clock network to each of the four global-line buffers. In addition to the dedicated pad, the global lines can be sourced by internal logic. PIPs from several routing channels within the VersaRing can also be configured to drive the global-line buffers. Details of all the programmable interconnect for a CLB is shown in Figure 17. GCK1 GCK4 GCK2 GCK3 Longlines connect to the single-length or double-length lines, or to the logic inside the CLB, through the General Routing Matrix. The only manner in which a Longline can be driven is through the four 3-state buffers; therefore, a Longline-to-Longline or single-line-to-Longline connection through PIPs in the General Routing Matrix is not possible. Again, as a general rule, long- and global-line connections to the General Routing Matrix are unidirectional, with the signal direction from these lines toward the routing matrix. The XC5200 family has no pull-ups on the ends of the Longlines sourced by TBUFs, unlike the XC4000 Series. Consequently, wired functions (i.e., WAND and WORAND) and wide multiplexing functions requiring pull-ups for undefined states (i.e., bus applications) must be implemented in a different way. In the case of the wired functions, the same functionality can be achieved by taking advantage of the 7-96 X5704 Figure 16: Global Lines November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays CARRY DOUBLE SINGLE CLB LONG x9010 . SINGLE GLOBAL DOUBLE LONG DIRECT DIRECT DIRECT GLOBAL 7 Figure 17: Detail of Programmable Interconnect Associated with XC5200 Series CLB November 5, 1998 (Version 5.2) 7-97 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays VersaRing Input/Output Interface The VersaRing, shown in Figure 18, is positioned between the core logic and the pad ring; it has all the routing resources of a VersaBlock without the CLB logic. The VersaRing decouples the core logic from the I/O pads. Each VersaRing Cell provides up to four pad-cell connections on one side, and connects directly to the CLB ports on the other side. Boundary-scan operation is independent of individual IOB configuration and package type. All IOBs are treated as independently controlled bidirectional pins, including any unbonded IOBs. Retaining the bidirectional test capability after configuration provides flexibility for interconnect testing. VersaRing 8 2 8 8 2 2 Pad 2 GRM Pad 10 Interconnect Pad 4 4 VersaBlock Pad 8 8 2 Pad 2 GRM Pad 10 Interconnect Pad 4 VersaBlock 4 Pad 2 8 2 8 X5705 Figure 18: VersaRing I/O Interface Boundary Scan The “bed of nails” has been the traditional method of testing electronic assemblies. This approach has become less appropriate, due to closer pin spacing and more sophisticated assembly methods like surface-mount technology and multi-layer boards. The IEEE boundary scan standard 1149.1 was developed to facilitate board-level testing of electronic assemblies. Design and test engineers can imbed a standard test logic structure in their device to achieve high fault coverage for I/O and internal logic. This structure is easily implemented with a four-pin interface on any boundary scan-compatible IC. IEEE 1149.1-compatible devices may be serial daisy-chained together, connected in parallel, or a combination of the two. 7-98 XC5200 devices support all the mandatory boundary-scan instructions specified in the IEEE standard 1149.1. A Test Access Port (TAP) and registers are provided that implement the EXTEST, SAMPLE/PRELOAD, and BYPASS instructions. The TAP can also support two USERCODE instructions. When the boundary scan configuration option is selected, three normal user I/O pins become dedicated inputs for these functions. Another user output pin becomes the dedicated boundary scan output. Also, internal signals can be captured during EXTEST by connecting them to unbonded IOBs, or to the unused outputs in IOBs used as unidirectional input pins. This technique partially compensates for the lack of INTEST support. The user can serially load commands and data into these devices to control the driving of their outputs and to examine their inputs. This method is an improvement over bed-of-nails testing. It avoids the need to over-drive device outputs, and it reduces the user interface to four pins. An optional fifth pin, a reset for the control logic, is described in the standard but is not implemented in Xilinx devices. The dedicated on-chip logic implementing the IEEE 1149.1 functions includes a 16-state machine, an instruction register and a number of data registers. The functional details can be found in the IEEE 1149.1 specification and are also discussed in the Xilinx application note XAPP 017: “Boundary Scan in XC4000 and XC5200 Series devices” Figure 19 on page 99 is a diagram of the XC5200-Series boundary scan logic. It includes three bits of Data Register per IOB, the IEEE 1149.1 Test Access Port controller, and the Instruction Register with decodes. The public boundary-scan instructions are always available prior to configuration. After configuration, the public instructions and any USERCODE instructions are only available if specified in the design. While SAMPLE and BYPASS are available during configuration, it is recommended that boundary-scan operations not be performed during this transitory period. In addition to the test instructions outlined above, the boundary-scan circuitry can be used to configure the FPGA device, and to read back the configuration data. All of the XC4000 boundary-scan modes are supported in the XC5200 family. Three additional outputs for the UserRegister are provided (Reset, Update, and Shift), repre- November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays senting the decoding of the corresponding state of the boundary-scan internal state machine. DATA IN 1 0 sd D Q D Q LE 1 0 IOB.O IOB.T 0 1 0 IOB IOB IOB IOB sd D Q D 1 LE IOB IOB Q IOB 1 sd D Q D Q 0 IOB IOB IOB IOB IOB IOB IOB IOB IOB IOB LE 1 IOB.I 0 1 IOB 0 Q D Q LE 1 0 IOB.O IOB BYPASS REGISTER sd D IOB.T TDI 7 0 M TDO U X INSTRUCTION REGISTER 1 0 sd D Q D Q 1 LE M U TDO X TDI INSTRUCTION REGISTER 1 BYPASS REGISTER IOB IOB IOB IOB IOB IOB 0 sd D Q D Q LE 1 IOB.I 0 IOB IOB 1 0 IOB IOB IOB IOB sd D Q D Q LE IOB IOB 0 1 IOB.O DATAOUT IOB IOB IOB IOB IOB SHIFT/ CAPTURE UPDATE EXTEST CLOCK DATA REGISTER X1523_01 Figure 19: XC5200-Series Boundary Scan Logic November 5, 1998 (Version 5.2) 7-99 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays XC5200-Series devices can also be configured through the boundary scan logic. See XAPP 017 for more information. Data Registers The primary data register is the boundary scan register. For each IOB pin in the FPGA, bonded or not, it includes three bits for In, Out and 3-State Control. Non-IOB pins have appropriate partial bit population for In or Out only. PROGRAM, CCLK and DONE are not included in the boundary scan register. Each EXTEST CAPTURE-DR state captures all In, Out, and 3-State pins. The data register also includes the following non-pin bits: TDO.T, and TDO.O, which are always bits 0 and 1 of the data register, respectively, and BSCANT.UPD, which is always the last bit of the data register. These three boundary scan bits are special-purpose Xilinx test signals. The other standard data register is the single flip-flop BYPASS register. It synchronizes data being passed through the FPGA to the next downstream boundary scan device. The FPGA provides two additional data registers that can be specified using the BSCAN macro. The FPGA provides two user pins (BSCAN.SEL1 and BSCAN.SEL2) which are the decodes of two user instructions, USER1 and USER2. For these instructions, two corresponding pins (BSCAN.TDO1 and BSCAN.TDO2) allow user scan data to be shifted out on TDO. The data register clock (BSCAN.DRCK) is available for control of test logic which the user may wish to implement with CLBs. The NAND of TCK and RUN-TEST-IDLE is also provided (BSCAN.IDLE). Instruction Set The XC5200-Series boundary scan instruction set also includes instructions to configure the device and read back the configuration data. The instruction set is coded as shown in Table 7. Table 7: Boundary Scan Instructions Instruction I2 I1 I0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 7-100 Test TDO Source Selected EXTEST DR SAMPLE/PR DR ELOAD USER 1 BSCAN. TDO1 USER 2 BSCAN. TDO2 READBACK Readback Data CONFIGURE DOUT Reserved — BYPASS Bypass Register I/O Data Source DR Pin/Logic Bit Sequence The bit sequence within each IOB is: 3-State, Out, In. The data-register cells for the TAP pins TMS, TCK, and TDI have an OR-gate that permanently disables the output buffer if boundary-scan operation is selected. Consequently, it is impossible for the outputs in IOBs used by TAP inputs to conflict with TAP operation. TAP data is taken directly from the pin, and cannot be overwritten by injected boundary-scan data. The primary global clock inputs (PGCK1-PGCK4) are taken directly from the pins, and cannot be overwritten with boundary-scan data. However, if necessary, it is possible to drive the clock input from boundary scan. The external clock source is 3-stated, and the clock net is driven with boundary scan data through the output driver in the clock-pad IOB. If the clock-pad IOBs are used for non-clock signals, the data may be overwritten normally. Pull-up and pull-down resistors remain active during boundary scan. Before and during configuration, all pins are pulled up. After configuration, the choice of internal pull-up or pull-down resistor must be taken into account when designing test vectors to detect open-circuit PC traces. From a cavity-up view of the chip (as shown in XDE or Epic), starting in the upper right chip corner, the boundary scan data-register bits are ordered as shown in Table 8. The device-specific pinout tables for the XC5200 Series include the boundary scan locations for each IOB pin. Table 8: Boundary Scan Bit Sequence Bit Position Bit 0 (TDO) Bit 1 ... ... ... Bit N (TDI) I/O Pad Location Top-edge I/O pads (right to left) ... Left-edge I/O pads (top to bottom) Bottom-edge I/O pads (left to right) Right-edge I/O pads (bottom to top) BSCANT.UPD BSDL (Boundary Scan Description Language) files for XC5200-Series devices are available on the Xilinx web site in the File Download area. Including Boundary Scan User Logic Pin/Logic If boundary scan is only to be used during configuration, no special elements need be included in the schematic or HDL code. In this case, the special boundary scan pins TDI, TMS, TCK and TDO can be used for user functions after configuration. Disabled — — To indicate that boundary scan remain enabled after configuration, include the BSCAN library symbol and connect pad symbols to the TDI, TMS, TCK and TDO pins, as shown in Figure 20. User Logic November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Optional To User Logic IBUF Output buffers capable of driving/sinking the specified 8 mA loads under specified worst-case conditions may be capable of driving/sinking up to 10 times as much current under best case conditions. BSCAN RESET UPDATE SHIFT TDO TDI From User Logic Typically, a 0.1 µF capacitor connected near the Vcc and Ground pins of the package will provide adequate decoupling. TMS DRCK TCK IDLE TDO1 SEL1 TDO2 SEL2 To User Logic X9000 Figure 20: Boundary Scan Schematic Example Noise can be reduced by minimizing external load capacitance and reducing simultaneous output transitions in the same direction. It may also be beneficial to locate heavily loaded output buffers near the Ground pads. The I/O Block output buffers have a slew-rate limited mode (default) which should be used where output rise and fall times are not speed-critical. Even if the boundary scan symbol is used in a schematic, the input pins TMS, TCK, and TDI can still be used as inputs to be routed to internal logic. Care must be taken not to force the chip into an undesired boundary scan state by inadvertently applying boundary scan input patterns to these pins. The simplest way to prevent this is to keep TMS High, and then apply whatever signal is desired to TDI and TCK. GND Ground and Vcc Ring for I/O Drivers Avoiding Inadvertent Boundary Scan Vcc Vcc 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 during configuration. In some applications, a situation may occur where TMS or TCK is driven during configuration. This may cause the device to go into boundary scan mode and disrupt the configuration process. Logic Power Grid GND To prevent activation of boundary scan during configuration, do either of the following: • • TMS: Tie High to put the Test Access Port controller in a benign RESET state TCK: Tie High or Low—do not toggle this clock input. For more information regarding boundary scan, refer to the Xilinx Application Note XAPP 017, “Boundary Scan in XC4000 and XC5200 Devices.“ Power Distribution Power for the FPGA is distributed through a grid to achieve high noise immunity and isolation between logic and I/O. Inside the FPGA, a dedicated Vcc and Ground ring surrounding the logic array provides power to the I/O drivers, as shown in Figure 21. An independent matrix of Vcc and Ground lines supplies the interior logic of the device. This power distribution grid provides a stable supply and ground for all internal logic, providing the external package power pins are all connected and appropriately decoupled. November 5, 1998 (Version 5.2) X5422 Figure 21: XC5200-Series Power Distribution Pin Descriptions There are three types of pins in the XC5200-Series devices: • • • Permanently dedicated pins User I/O pins that can have special functions Unrestricted user-programmable I/O pins. Before and during configuration, all outputs not used for the configuration process are 3-stated and pulled high with a 20 kΩ - 100 kΩ pull-up resistor. After configuration, if an IOB is unused it is configured as an input with a 20 kΩ - 100 kΩ pull-up resistor. Device pins for XC5200-Series devices are described in Table 9. Pin functions during configuration for each of the seven configuration modes are summarized in “Pin Func- 7-101 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays tions During Configuration” on page 124, in the “Configuration Timing” section. Table 9: Pin Descriptions I/O I/O After During Config. Config. Pin Name Permanently Dedicated Pins Pin Description Five or more (depending on package) connections to the nominal +5 V supply voltage. All must be connected, and each must be decoupled with a 0.01 - 0.1 µF capacitor to Ground. Four or more (depending on package type) connections to Ground. All must be conGND I I nected. During configuration, Configuration Clock (CCLK) is an output in Master modes or Asynchronous Peripheral mode, but is an input in Slave mode, Synchronous Peripheral mode, and Express mode. After configuration, CCLK has a weak pull-up resistor and can be selected as the Readback Clock. There is no CCLK High time restriction on CCLK I or O I XC5200-Series devices, except during Readback. See “Violating the Maximum High and Low Time Specification for the Readback Clock” on page 113 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 can be configured to delay the global logic initialization and the enabling of outputs. DONE I/O O The exact timing, the clock source for the Low-to-High transition, and the optional pull-up resistor are selected as options in the program that creates the configuration bitstream. The resistor is included by default. PROGRAM is an active Low input that forces the FPGA to clear its configuration memory. It is used to initiate a configuration cycle. When PROGRAM goes High, the FPGA PROGRAM I I executes a complete clear cycle, before it goes into a WAIT state and releases INIT. The PROGRAM pin has an optional weak pull-up after configuration. 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 Asynchronous Peripheral mode, if a read operation is performed when the device is selected. RDY/BUSY O I/O 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 is preceded by a rising edge on RCLK, a redundant output signal. RCLK is useful for clocked RCLK O I/O PROMs. It is rarely used during configuration. After configuration, RCLK is a user-programmable I/O pin. As Mode inputs, these pins are sampled before the start of configuration to determine the configuration mode to be used. After configuration, M0, M1, and M2 become user-programmable I/O. M0, M1, M2 I I/O During configuration, these pins have weak pull-up resistors. For the most popular configuration mode, Slave Serial, the mode pins can thus be left unconnected. A pull-down resistor value of 3.3 kΩ is recommended for other modes. 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, 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 output buffer must still be used. VCC 7-102 I I November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Table 9: Pin Descriptions (Continued) Pin Name I/O I/O After During Config. Config. TDI, TCK, TMS I HDC O LDC O INIT I/O GCK1 GCK4 Weak Pull-up CS0, CS1, WS, RS I A0 - A17 O D0 - D7 I DIN I DOUT O 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 can also be used as inputs to the CLB logic after configuration is completed. I/O If the BSCAN symbol is not placed in the design, all boundary scan functions are inhibor I ited once configuration is completed, and these pins become user-programmable I/O. (JTAG) 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. Input or output buffers must still be used. High During Configuration (HDC) is driven High until the I/O go active. It is available as 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 control output indicating that configuration is not yet completed. After configuration, I/O 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 internal clearing of the configuration memory. As an active-Low input, it can be used I/O to hold the FPGA in the internal WAIT state before the start of configuration. Master mode devices stay in a WAIT state an additional 50 to 250 µ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 Global inputs each drive a dedicated internal global net with short delay and minimal skew. These internal global nets can also be driven from internal logic. If not used to drive a global net, any of these pins is a user-programmable I/O pin. I or I/O The GCK1-GCK4 pins provide the shortest path to the four Global Buffers. Any input pad symbol connected directly to the input of a BUFG symbol is automatically placed on one of these pins. 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 on Read Strobe (RS) changes D7 into a status output — High if Ready, Low if Busy — I/O 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. During Master Parallel configuration, these 18 output pins address the configuration I/O EPROM. After configuration, they are user-programmable I/O pins. During Master Parallel, Peripheral, and Express configuration, these eight input pins reI/O ceive configuration data. After configuration, they are user-programmable I/O pins. During Slave Serial or Master Serial configuration, DIN is the serial configuration data 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. In Express mode, DOUT is the status output that can drive the CS1 of daisy-chained I/O FPGAs, to enable and disable downstream devices. After configuration, DOUT is a user-programmable I/O pin. November 5, 1998 (Version 5.2) 7-103 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Table 9: Pin Descriptions (Continued) I/O I/O After During Pin Description Config. Config. Pin Name Unrestricted User-Programmable I/O Pins These pins can be configured to be input and/or output after configuration is completed. Weak I/O Before configuration is completed, these pins have an internal high-value pull-up resisI/O Pull-up tor (20 kΩ - 100 kΩ) that defines the logic level as High. Configuration Configuration is the process of loading design-specific programming data into one or more FPGAs to define the functional operation of the internal blocks and their interconnections. This is somewhat like loading the command registers of a programmable peripheral chip. XC5200-Series devices use several hundred bits of configuration data per CLB and its associated interconnects. Each configuration bit defines the state of a static memory cell that controls either a function look-up table bit, a multiplexer input, or an interconnect pass transistor. The development system translates the design into a netlist file. It automatically partitions, places and routes the logic and generates the configuration data in PROM format. Special Purpose Pins Three configuration mode pins (M2, M1, M0) are sampled prior to configuration to determine the configuration mode. After configuration, these pins can be used as auxiliary I/O connections. The development system does not use these resources unless they are explicitly specified in the design entry. This is done by placing a special pad symbol called MD2, MD1, or MD0 instead of the input or output pad symbol. In XC5200-Series devices, the mode pins have weak pull-up resistors during configuration. With all three mode pins High, Slave Serial mode is selected, which is the most popular configuration mode. Therefore, for the most common configuration mode, the mode pins can be left unconnected. (Note, however, that the internal pull-up resistor value can be as high as 100 kΩ.) After configuration, these pins can individually have weak pull-up or pull-down resistors, as specified in the design. A pull-down resistor value of 3.3kΩ is recommended. These pins are located in the lower left chip corner and are near the readback nets. This location allows convenient routing if compatibility with the XC2000 and XC3000 family conventions of M0/RT, M1/RD is desired. Configuration Modes XC5200 devices have seven configuration modes. These modes are selected by a 3-bit input code applied to the M2, 7-104 M1, and M0 inputs. There are three self-loading Master modes, two Peripheral modes, and a Serial Slave mode, Table 10: Configuration Modes Mode Master Serial Slave Serial Master Parallel Up M2 0 1 1 M1 0 1 0 M0 0 1 0 CCLK output input output Master Parallel Down 1 1 0 output Peripheral Synchronous* Peripheral Asynchronous Express Reserved 0 1 1 input Data Bit-Serial Bit-Serial Byte-Wide, increment from 00000 Byte-Wide, decrement from 3FFFF Byte-Wide 1 0 1 output Byte-Wide 0 0 1 0 0 1 input — Byte-Wide — Note :*Peripheral Synchronous can be considered byte-wide Slave Parallel which is used primarily for daisy-chained devices. The seventh mode, called Express mode, is an additional slave mode that allows high-speed parallel configuration. The coding for mode selection is shown in Table 10. Note that the smallest package, VQ64, only supports the Master Serial, Slave Serial, and Express modes.A detailed description of each configuration mode, with timing information, is included later in this data sheet. During configuration, some of the I/O pins are used temporarily for the configuration process. All pins used during configuration are shown in Table 13 on page 124. Master Modes The three Master modes use an internal oscillator to generate a Configuration Clock (CCLK) for driving potential slave devices. They also generate address and timing for external PROM(s) containing the configuration data. Master Parallel (Up or Down) modes generate the CCLK signal and PROM addresses and receive byte parallel data. The data is internally serialized into the FPGA data-frame format. The up and down selection generates starting addresses at either zero or 3FFFF, for compatibility with different microprocessor addressing conventions. The November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Master Serial mode generates CCLK and receives the configuration data in serial form from a Xilinx serial-configuration PROM. CCLK speed is selectable as 1 MHz (default), 6 MHz, or 12 MHz. Configuration always starts at the default slow frequency, then can switch to the higher frequency during the first frame. Frequency tolerance is -50% to +50%. Peripheral Modes The two Peripheral modes accept byte-wide data from a bus. A RDY/BUSY status is available as a handshake signal. In Asynchronous Peripheral mode, the internal oscillator generates a CCLK burst signal that serializes the byte-wide data. CCLK can also drive slave devices. In the synchronous mode, an externally supplied clock input to CCLK serializes the data. Slave Serial Mode In Slave Serial mode, the FPGA receives serial configuration data on the rising edge of CCLK and, after loading its configuration, passes additional data out, resynchronized on the next falling edge of CCLK. Multiple slave devices with identical configurations can be wired with parallel DIN inputs. In this way, multiple devices can be configured simultaneously. Serial Daisy Chain Multiple devices with different configurations can be connected together in a “daisy chain,” and a single combined bitstream used to configure the chain of slave devices. To configure a daisy chain of devices, wire the CCLK pins of all devices in parallel, as shown in Figure 28 on page 114. Connect the DOUT of each device to the DIN of the next. The lead or master FPGA and following slaves each passes resynchronized configuration data coming from a single source. The header data, including the length count, is passed through and is captured by each FPGA when it recognizes the 0010 preamble. Following the length-count data, each FPGA outputs a High on DOUT until it has received its required number of data frames. After an FPGA has received its configuration data, it passes on any additional frame start bits and configuration data on DOUT. When the total number of configuration clocks applied after memory initialization equals the value of the 24-bit length count, the FPGAs begin the start-up sequence and become operational together. FPGA I/O are normally released two CCLK cycles after the last configuration bit is received. Figure 25 on page 109 shows the start-up timing for an XC5200-Series device. The daisy-chained bitstream is not simply a concatenation of the individual bitstreams. The PROM file formatter must be used to combine the bitstreams for a daisy-chained configuration. November 5, 1998 (Version 5.2) Multi-Family Daisy Chain All Xilinx FPGAs of the XC2000, XC3000, XC4000, and XC5200 Series use a compatible bitstream format and can, therefore, be connected in a daisy chain in an arbitrary sequence. There is, however, one limitation. If the chain contains XC5200-Series devices, the master normally cannot be an XC2000 or XC3000 device. The reason for this rule is shown in Figure 25 on page 109. Since all devices in the chain store the same length count value and generate or receive one common sequence of CCLK pulses, they all recognize length-count match on the same CCLK edge, as indicated on the left edge of Figure 25. The master device then generates additional CCLK pulses until it reaches its finish point F. The different families generate or require different numbers of additional CCLK pulses until they reach F. Not reaching F means that the device does not really finish its configuration, although DONE may have gone High, the outputs became active, and the internal reset was released. For the XC5200-Series device, not reaching F means that readback cannot be initiated and most boundary scan instructions cannot be used. The user has some control over the relative timing of these events and can, therefore, make sure that they occur at the proper time and the finish point F is reached. Timing is controlled using options in the bitstream generation software. XC5200 devices always have the same number of CCLKs in the power up delay, independent of the configuration mode, unlike the XC3000/XC4000 Series devices. To guarantee all devices in a daisy chain have finished the power-up delay, tie the INIT pins together, as shown in Figure 27. XC3000 Master with an XC5200-Series Slave Some designers want to use an XC3000 lead device in peripheral mode and have the I/O pins of the XC5200-Series devices all available for user I/O. Figure 22 provides a solution for that case. This solution requires one CLB, one IOB and pin, and an internal oscillator with a frequency of up to 5 MHz as a clock source. The XC3000 master device must be configured with late Internal Reset, which is the default option. One CLB and one IOB in the lead XC3000-family device are used to generate the additional CCLK pulse required by the XC5200-Series devices. When the lead device removes the internal RESET signal, the 2-bit shift register responds to its clock input and generates an active Low output signal for the duration of the subsequent clock period. An external connection between this output and CCLK thus creates the extra CCLK pulse. 7-105 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Pseudo Daisy Chain OE/T Reset 0 0 1 0 1 1 0 1 0 1 . etc . . . Output Connected to CCLK Active Low Output Active High Output X5223 Figure 22: CCLK Generation for XC3000 Master Driving an XC5200-Series Slave Express Mode Express mode is similar to Slave Serial mode, except the data is presented in parallel format, and is clocked into the target device a byte at a time rather than a bit at a time. The data is loaded in parallel into eight different columns: it is not internally serialized. Eight bits of configuration data are loaded with every CCLK cycle, therefore this configuration mode runs at eight times the data rate of the other six modes. In this mode the XC5200 family is capable of supporting a CCLK frequency of 10 MHz, which is equivalent to an 80 MHz serial rate, because eight bits of configuration data are being loaded per CCLK cycle. An XC5210 in the Express mode, for instance, can be configured in about 2 ms. The Express mode does not support CRC error checking, but does support constant-field error checking. A length count is not used in Express mode. In the Express configuration mode, an external signal drives the CCLK input(s). The first byte of parallel configuration data must be available at the D inputs of the FPGA devices a short set-up time before the second rising CCLK edge. Subsequent data bytes are clocked in on each consecutive rising CCLK edge. See Figure 38 on page 123. Bitstream generation currently generates a bitstream sufficient to program in all configuration modes except Express. Extra CCLK cycles are necessary to complete the configuration, since in this mode data is read at a rate of eight bits per CCLK cycle instead of one bit per cycle. Normally the entire start-up sequence requires a number of bits that is equal to the number of CCLK cycles needed. An additional five CCLKs (equivalent to 40 extra bits) will guarantee completion of configuration, regardless of the start-up options chosen. Multiple slave devices with identical configurations can be wired with parallel D0-D7 inputs. In this way, multiple devices can be configured simultaneously. 7-106 Multiple devices with different configurations can be connected together in a pseudo daisy chain, provided that all of the devices are in Express mode. A single combined bitstream is used to configure the chain of Express mode devices, but the input data bus must drive D0-D7 of each device. Tie High the CS1 pin of the first device to be configured, or leave it floating in the XC5200 since it has an internal pull-up. Connect the DOUT pin of each FPGA to the CS1 pin of the next device in the chain. The D0-D7 inputs are wired to each device in parallel. The DONE pins are wired together, with one or more internal DONE pull-ups activated. Alternatively, a 4.7 kΩ external resistor can be used, if desired. (See Figure 37 on page 122.) CCLK pins are tied together. The requirement that all DONE pins in a daisy chain be wired together applies only to Express mode, and only if all devices in the chain are to become active simultaneously. All devices in Express mode are synchronized to the DONE pin. User I/O for each device become active after the DONE pin for that device goes High. (The exact timing is determined by options to the bitstream generation software.) Since the DONE pin is open-drain and does not drive a High value, tying the DONE pins of all devices together prevents all devices in the chain from going High until the last device in the chain has completed its configuration cycle. The status pin DOUT is pulled LOW two internal-oscillator cycles (nominally 1 MHz) after INIT is recognized as High, and remains Low until the device’s configuration memory is full. Then DOUT is pulled High to signal the next device in the chain to accept the configuration data on the D7-D0 bus. All devices receive and recognize the six bytes of preamble and length count, irrespective of the level on CS1; but subsequent frame data is accepted only when CS1 is High and the device’s configuration memory is not already full. Setting CCLK Frequency For Master modes, CCLK can be generated in one of three frequencies. In the default slow mode, the frequency is nominally 1 MHz. In fast CCLK mode, the frequency is nominally 12 MHz. In medium CCLK mode, the frequency is nominally 6 MHz. The frequency range is -50% to +50%. The frequency is selected by an option when running the bitstream generation software. If an XC5200-Series Master is driving an XC3000- or XC2000-family slave, slow CCLK mode must be used. Slow mode is the default. Table 11: XC5200 Bitstream Format Data Type Fill Byte Preamble Length Counter Fill Byte Value 11111111 11110010 COUNT(23:0) 11111111 Occurrences Once per bitstream November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Table 11: XC5200 Bitstream Format Data Type Start Byte Data Frame * Cyclic Redundancy Check or Constant Field Check Fill Nibble Extend Write Cycle Postamble Fill Bytes (30) Start-Up Byte Value 11111110 DATA(N-1:0) CRC(3:0) or 0110 1111 FFFFFF 11111110 FFFF…FF FF Occurrences Once per data frame Table 12: Internal Configuration Data Structure Device Once per device Once per bitstream *Bits per Frame (N) depends on device size, as described for table 11. Data Stream Format The data stream (“bitstream”) format is identical for all configuration modes, with the exception of Express mode. In Express mode, the device becomes active when DONE goes High, therefore no length count is required. Additionally, CRC error checking is not supported in Express mode. The data stream formats are shown in Table 11. Express mode data is shown with D0 at the left and D7 at the right. For all other modes, bit-serial data is read from left to right, and byte-parallel data is effectively assembled from this serial bitstream, with the first bit in each byte assigned to D0. The configuration data stream begins with a string of eight ones, a preamble code, followed by a 24-bit length count and a separator field of ones (or 24 fill bits, in Express mode). This header is followed by the actual configuration data in frames. The length and number of frames depends on the device type (see Table 12). Each frame begins with a start field and ends with an error check. In all modes except Express mode, a postamble code is required to signal the end of data for a single device. In all cases, additional start-up bytes of data are required to provide four clocks for the startup sequence at the end of configuration. Long daisy chains require additional startup bytes to shift the last data through the chain. All startup bytes are don’t-cares; these bytes are not included in bitstreams created by the Xilinx software. In Express mode, only non-CRC error checking is supported. In all other modes, a selection of CRC or non-CRC error checking is allowed by the bitstream generation software. The non-CRC error checking tests for a designated end-of-frame field for each frame. For CRC error checking, the software calculates a running CRC and inserts a unique four-bit partial check at the end of each frame. The 11-bit CRC check of the last frame of an FPGA includes the last seven data bits. Detection of an error results in the suspension of data loading and the pulling down of the INIT pin. In Master modes, November 5, 1998 (Version 5.2) 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. XC5202 XC5204 XC5206 XC5210 XC5215 VersaBlock Array 8x8 10 x 12 14 x 14 18 x 18 22 x 22 PROM Size (bits) 42,416 70,704 106,288 165,488 237,744 Xilinx Serial PROM Needed XC1765E XC17128E XC17128E XC17256E XC17256E Bits per Frame = (34 x number of Rows) + 28 for the top + 28 for the bottom + 4 splitter bits + 8 start bits + 4 error check bits + 4 fill bits * + 24 extended write bits = (34 x number of Rows) + 100 * In the XC5202 (8 x 8), there are 8 fill bits per frame, not 4 Number of Frames = (12 x number of Columns) + 7 for the left edge + 8 for the right edge + 1 splitter bit = (12 x number of Columns) + 16 Program Data = (Bits per Frame x Number of Frames) + 48 header bits + 8 postamble bits + 240 fill bits + 8 start-up bits = (Bits per Frame x Number of Frames) + 304 PROM Size = Program Data 7 Cyclic Redundancy Check (CRC) for Configuration and Readback The Cyclic Redundancy Check is a method of error detection in data transmission applications. Generally, the transmitting system performs a calculation on the serial bitstream. The result of this calculation is tagged onto the data stream as additional check bits. The receiving system performs an identical calculation on the bitstream and compares the result with the received checksum. Each data frame of the configuration bitstream has four error bits at the end, as shown in Table 11. If a frame data error is detected during the loading of the FPGA, the configuration process with a potentially corrupted bitstream is terminated. The FPGA pulls the INIT pin Low and goes into a Wait state. During Readback, 11 bits of the 16-bit checksum are added to the end of the Readback data stream. The checksum is computed using the CRC-16 CCITT polynomial, as shown in Figure 23. The checksum consists of the 11 most significant bits of the 16-bit code. A change in the checksum indicates a change in the Readback bitstream. A comparison to a previous checksum is meaningful only if the readback data is independent of the current device state. CLB outputs should not be included (Read Capture option not used). Statistically, one error out of 2048 might go undetected. 7-107 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Initialization X15 X16 15 2 3 4 5 6 7 8 9 10 11 12 13 14 SERIAL DATA IN Polynomial: X16 + X15 + X2 + 1 1 1 1 1 0 15 14 13 12 11 10 9 START BIT 1 LAST DATA FRAME 8 7 6 5 CRC – CHECKSUM Readback Data Stream X1789 Figure 23: Circuit for Generating CRC-16 Configuration Sequence There are four major steps in the XC5200-Series power-up configuration sequence. • • • • Power-On Time-Out Initialization Configuration Start-Up The full process is illustrated in Figure 24. Power-On Time-Out An internal power-on reset circuit is triggered when power is applied. When VCC reaches the voltage at which portions of the FPGA begin to operate (i.e., performs a write-and-read test of a sample pair of configuration memory bits), the programmable I/O buffers are 3-stated with active high-impedance pull-up resistors. A time-out delay — nominally 4 ms — is initiated to allow the power-supply voltage to stabilize. For correct operation the power supply must reach VCC(min) by the end of the time-out, and must not dip below it thereafter. This phase clears the configuration memory and establishes the configuration mode. The configuration memory is cleared at the rate of one frame per internal clock cycle (nominally 1 MHz). An open-drain bidirectional signal, INIT, is released when the configuration memory is completely cleared. The device then tests for the absence of an external active-low level on INIT. The mode lines are sampled two internal clock cycles later (nominally 2 µs). The master device waits an additional 32 µs to 256 µs (nominally 64-128 µs) to provide adequate time for all of the slave devices to recognize the release of INIT as well. Then the master device enters the Configuration phase. VCC 3V Boundary Scan Instructions Available: No Yes Generate One Time-Out Pulse of 4 ms PROGRAM = Low Yes EXTEST* SAMPLE/PRELOAD* BYPASS CONFIGURE* Completely Clear Configuration Memory ~1.3 µs per Frame (*only when PROGRAM = High) INIT High? if Master No Yes Sample Mode Lines Master CCLK Goes Active after 50 to 250 µs Load One Configuration Data Frame Frame Error Yes Pull INIT Low and Stop LDC Output = L, HDC Output = H X2 0 1 No If the time-out delay is insufficient, configuration should be delayed by holding the INIT pin Low until the power supply has reached operating levels. This delay is applied only on power-up. It is not applied when reconfiguring an FPGA by pulsing the PROGRAM pin Low. During all three phases — Power-on, Initialization, and Configuration — DONE is held Low; HDC, LDC, and INIT are active; DOUT is driven; and all I/O buffers are disabled. 7-108 SAMPLE/PRELOAD BYPASS Configuration memory Full Yes No Pass Configuration Data to DOUT CCLK Count Equals Length Count Yes No Start-Up Sequence F EXTEST SAMPLE PRELOAD BYPASS USER 1 USER 2 CONFIGURE READBACK Operational If Boundary Scan is Selected I/O Active There is no distinction between master and slave modes with regard to the time-out delay. Instead, the INIT line is used to ensure that all daisy-chained devices have completed initialization. Since XC2000 devices do not have this signal, extra care must be taken to guarantee proper operation when daisy-chaining them with XC5200 devices. For proper operation with XC3000 devices, the RESET signal, which is used in XC3000 to delay configuration, should be connected to INIT. X9017 Figure 24: Configuration Sequence November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Length Count Match CCLK Period CCLK F DONE XC2000 I/O Global Reset F = Finished, no more configuration clocks needed Daisy-chain lead device must have latest F F XC3000 DONE I/O Heavy lines describe default timing Global Reset F DONE C1 XC4000E/EX XC5200/ C2 C3 C4 C2 C3 C4 C2 C3 C4 I/O CCLK_NOSYNC GSR Active 7 DONE IN F DONE C1, C2 or C3 XC4000E/EX XC5200/ I/O Di CCLK_SYNC Di+1 GSR Active Di Di+1 F DONE C1 XC4000E/EX XC5200/ U2 U3 U4 U2 U3 U4 U2 U3 U4 I/O UCLK_NOSYNC GSR Active DONE IN F DONE C1 XC4000E/EX XC5200/ U2 I/O Di Di+1 Di+2 Di+1 Di+2 UCLK_SYNC GSR Active Synchronization Uncertainty Di UCLK Period X6700 Figure 25: Start-up Timing November 5, 1998 (Version 5.2) 7-109 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Configuration Start-Up The length counter begins counting immediately upon entry into the configuration state. In slave-mode operation it is important to wait at least two cycles of the internal 1-MHz clock oscillator after INIT is recognized before toggling CCLK and feeding the serial bitstream. Configuration will not begin until the internal configuration logic reset is released, which happens two cycles after INIT goes High. A master device’s configuration is delayed from 32 to 256 µs to ensure proper operation with any slave devices driven by the master device. Start-up is the transition from the configuration process to the intended user operation. This transition involves a change from one clock source to another, and a change from interfacing parallel or serial configuration data where most outputs are 3-stated, to normal operation with I/O pins active in the user-system. Start-up must make sure that the user-logic ‘wakes up’ gracefully, that the outputs become active without causing contention with the configuration signals, and that the internal flip-flops are released from the global Reset at the right time. The 0010 preamble code, included for all modes except Express mode, indicates that the following 24 bits represent the length count. The length count is the total number of configuration clocks needed to load the complete configuration data. (Four additional configuration clocks are required to complete the configuration process, as discussed below.) After the preamble and the length count have been passed through to all devices in the daisy chain, DOUT is held High to prevent frame start bits from reaching any daisy-chained devices. In Express mode, the length count bits are ignored, and DOUT is held Low, to disable the next device in the pseudo daisy chain. Figure 25 describes start-up timing for the three Xilinx families in detail. Express mode configuration always uses either CCLK_SYNC or UCLK_SYNC timing, the other configuration modes can use any of the four timing sequences. A specific configuration bit, early in the first frame of a master device, controls the configuration-clock rate and can increase it by a factor of eight. Therefore, if a fast configuration clock is selected by the bitstream, the slower clock rate is used until this configuration bit is detected. Each frame has a start field followed by the frame-configuration data bits and a frame error field. If a frame data error is detected, the FPGA halts loading, and signals the error by pulling the open-drain INIT pin Low. After all configuration frames have been loaded into an FPGA, DOUT again follows the input data so that the remaining data is passed on to the next device. In Express mode, when the first device is fully programmed, DOUT goes High to enable the next device in the chain. Delaying Configuration After Power-Up To delay master mode configuration after power-up, pull the bidirectional INIT pin Low, using an open-collector (open-drain) driver. (See Figure 12.) Using an open-collector or open-drain driver to hold INIT Low before the beginning of master mode configuration causes the FPGA to wait after completing the configuration memory clear operation. When INIT is no longer held Low externally, the device determines its configuration mode by capturing its mode pins, and is ready to start the configuration process. A master device waits up to an additional 250 µs to make sure that any slaves in the optional daisy chain have seen that INIT is High. 7-110 To access the internal start-up signals, place the STARTUP library symbol. Start-up Timing Different FPGA families have different start-up sequences. The XC2000 family goes through a fixed sequence. DONE goes High and the internal global Reset is de-activated one CCLK period after the I/O become active. The XC3000A family offers some flexibility. DONE can be programmed to go High one CCLK period before or after the I/O become active. Independent of DONE, the internal global Reset is de-activated one CCLK period before or after the I/O become active. The XC4000/XC5200 Series offers additional flexibility. The three events — DONE going High, the internal Reset being de-activated, and the user I/O going active — can all occur in any arbitrary sequence. Each of them can occur one CCLK period before or after, or simultaneous with, any of the others. This relative timing is selected by means of software options in the bitstream generation software. The default option, and the most practical one, is for DONE to go High first, disconnecting the configuration data source and avoiding any contention when the I/Os become active one clock later. Reset is then released another clock period later to make sure that user-operation starts from stable internal conditions. This is the most common sequence, shown with heavy lines in Figure 25, but the designer can modify it to meet particular requirements. Normally, the start-up sequence is controlled by the internal device oscillator output (CCLK), which is asynchronous to the system clock. XC4000/XC5200 Series offers another start-up clocking option, UCLK_NOSYNC. The three events described above need not be triggered by CCLK. They can, as a configuration option, be triggered by a user clock. This means that the device can wake up in synchronism with the user system. November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays When the UCLK_SYNC option is enabled, the user can externally hold the open-drain DONE output Low, and thus stall all further progress in the start-up sequence until DONE is released and has gone High. This option can be used to force synchronization of several FPGAs to a common user clock, or to guarantee that all devices are successfully configured before any I/Os go active. If either of these two options is selected, and no user clock is specified in the design or attached to the device, the chip could reach a point where the configuration of the device is complete and the Done pin is asserted, but the outputs do not become active. The solution is either to recreate the bitstream specifying the start-up clock as CCLK, or to supply the appropriate user clock. Start-up Sequence The Start-up sequence begins when the configuration memory is full, and the total number of configuration clocks received since INIT went High equals the loaded value of the length count. The next rising clock edge sets a flip-flop Q0, shown in Figure 26. Q0 is the leading bit of a 5-bit shift register. The outputs of this register can be programmed to control three events. • • • The release of the open-drain DONE output The change of configuration-related pins to the user function, activating all IOBs. The termination of the global Set/Reset initialization of all CLB and IOB storage elements. The DONE pin can also be wire-ANDed with DONE pins of other FPGAs or with other external signals, and can then be used as input to bit Q3 of the start-up register. This is called “Start-up Timing Synchronous to Done In” and is selected by either CCLK_SYNC or UCLK_SYNC. When DONE is not used as an input, the operation is called “Start-up Timing Not Synchronous to DONE In,” and is selected by either CCLK_NOSYNC or UCLK_NOSYNC. As a configuration option, the start-up control register beyond Q0 can be clocked either by subsequent CCLK pulses or from an on-chip user net called STARTUP.CLK. These signals can be accessed by placing the STARTUP library symbol. Start-up from CCLK If CCLK is used to drive the start-up, Q0 through Q3 provide the timing. Heavy lines in Figure 25 show the default timing, which is compatible with XC2000 and XC3000 devices using early DONE and late Reset. The thin lines indicate all other possible timing options. ship between CCLK and the user clock. This arbitration causes an unavoidable one-cycle uncertainty in the timing of the rest of the start-up sequence. DONE Goes High to Signal End of Configuration In all configuration modes except Express mode, XC5200-Series devices read the expected length count from the bitstream and store it in an internal register. The length count varies according to the number of devices and the composition of the daisy chain. Each device also counts the number of CCLKs during configuration. Two conditions have to be met in order for the DONE pin to go high: • • the chip's internal memory must be full, and the configuration length count must be met, exactly. This is important because the counter that determines when the length count is met begins with the very first CCLK, not the first one after the preamble. Therefore, if a stray bit is inserted before the preamble, or the data source is not ready at the time of the first CCLK, the internal counter that holds the number of CCLKs will be one ahead of the actual number of data bits read. At the end of configuration, the configuration memory will be full, but the number of bits in the internal counter will not match the expected length count. As a consequence, a Master mode device will continue to send out CCLKs until the internal counter turns over to zero, and then reaches the correct length count a second time. This will take several seconds [224 ∗ CCLK period] — which is sometimes interpreted as the device not configuring at all. If it is not possible to have the data ready at the time of the first CCLK, the problem can be avoided by increasing the number in the length count by the appropriate value. In Express mode, there is no length count. The DONE pin for each device goes High when the device has received its quota of configuration data. Wiring the DONE pins of several devices together delays start-up of all devices until all are fully configured. Note that DONE is an open-drain output and does not go High unless an internal pull-up is activated or an external pull-up is attached. The internal pull-up is activated as the default by the bitstream generation software. Release of User I/O After DONE Goes High By default, the user I/O are released one CCLK cycle after the DONE pin goes High. If CCLK is not clocked after DONE goes High, the outputs remain in their initial state — 3-stated, with a 20 kΩ - 100 kΩ pull-up. The delay from Start-up from a User Clock (STARTUP.CLK) When, instead of CCLK, a user-supplied start-up clock is selected, Q1 is used to bridge the unknown phase relation- November 5, 1998 (Version 5.2) 7-111 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays DONE High to active user I/O is controlled by an option to the bitstream generation software. Q3 STARTUP Q1/Q4 DONE IN Q2 * IOBs OPERATIONAL PER CONFIGURATION * GLOBAL RESET OF ALL CLB FLIP-FLOPS/LATCHES 1 0 GR ENABLE GR INVERT STARTUP.GR CONTROLLED BY STARTUP SYMBOL IN THE USER SCHEMATIC (SEE LIBRARIES GUIDE) STARTUP.GTS GTS INVERT GTS ENABLE 0 GLOBAL 3-STATE OF ALL IOBs 1 Q S R * DONE 1 1 0 0 Q0 FULL LENGTH COUNT Q1 Q2 Q3 " FINISHED " ENABLES BOUNDARY SCAN, READBACK AND CONTROLS THE OSCILLATOR Q4 1 S Q D Q D Q 0 D Q D Q M K K K * K K CLEAR MEMORY CCLK 0 STARTUP.CLK USER NET 1 M * * CONFIGURATION BIT OPTIONS SELECTED BY USER X9002 Figure 26: Start-up Logic Release of Global Reset After DONE Goes High By default, Global Reset (GR) is released two CCLK cycles after the DONE pin goes High. If CCLK is not clocked twice after DONE goes High, all flip-flops are held in their initial reset state. The delay from DONE High to GR inactive is controlled by an option to the bitstream generation software. Configuration Complete After DONE Goes High Three full CCLK cycles are required after the DONE pin goes High, as shown in Figure 25 on page 109. If CCLK is not clocked three times after DONE goes High, readback cannot be initiated and most boundary scan instructions cannot be used. 7-112 Configuration Through the Boundary Scan Pins XC5200-Series devices can be configured through the boundary scan pins. For detailed information, refer to the Xilinx application note XAPP017, “Boundary Scan in XC4000 and XC5200 Devices.” Readback The user can read back the content of configuration memory and the level of certain internal nodes without interfering with the normal operation of the device. Readback not only reports the downloaded configuration bits, but can also include the present state of the device, represented by the content of all flip-flops and latches in CLBs. November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Note that in XC5200-Series devices, configuration data is not inverted with respect to configuration as it is in XC2000 and XC3000 families. Readback of Express mode bitstreams results in data that does not resemble the original bitstream, because the bitstream format differs from other modes. XC5200-Series Readback does not use any dedicated pins, but uses four internal nets (RDBK.TRIG, RDBK.DATA, RDBK.RIP and RDBK.CLK) that can be routed to any IOB. To access the internal Readback signals, place the READBACK library symbol and attach the appropriate pad symbols, as shown in Figure 27. After Readback has been initiated by a Low-to-High transition on RDBK.TRIG, the RDBK.RIP (Read In Progress) output goes High on the next rising edge of RDBK.CLK. Subsequent rising edges of this clock shift out Readback data on the RDBK.DATA net. Readback data does not include the preamble, but starts with five dummy bits (all High) followed by the Start bit (Low) of the first frame. The first two data bits of the first frame are always High. Each frame ends with four error check bits. They are read back as High. The last seven bits of the last frame are also read back as High. An additional Start bit (Low) and an 11-bit Cyclic Redundancy Check (CRC) signature follow, before RDBK.RIP returns Low. IF UNCONNECTED, DEFAULT IS CCLK DATA CLK MD0 READ_TRIGGER TRIG READBACK RIP READ_DATA MD1 OBUF IBUF X1786 Figure 27: Readback Schematic Example Readback Options Readback options are: Read Capture, Read Abort, and Clock Select. They are set with the bitstream generation software. Read Capture When the Read Capture option is selected, the readback data stream includes sampled values of CLB and IOB signals. The rising edge of RDBK.TRIG latches the inverted values of the CLB outputs and the IOB output and input signals. Note that while the bits describing configuration (interconnect and function generators) are not inverted, the CLB and IOB output signals are inverted. When the Read Capture option is not selected, the values of the capture bits reflect the configuration data originally written to those memory locations. November 5, 1998 (Version 5.2) The readback signals are located in the lower-left corner of the device. Read Abort When the Read Abort option is selected, a High-to-Low transition on RDBK.TRIG terminates the readback operation and prepares the logic to accept another trigger. After an aborted readback, additional clocks (up to one readback clock per configuration frame) may be required to re-initialize the control logic. The status of readback is indicated by the output control net RDBK.RIP. RDBK.RIP is High whenever a readback is in progress. Clock Select CCLK is the default clock. However, the user can insert another clock on RDBK.CLK. Readback control and data are clocked on rising edges of RDBK.CLK. If readback must be inhibited for security reasons, the readback control nets are simply not connected. Violating the Maximum High and Low Time Specification for the Readback Clock The readback clock has a maximum High and Low time specification. In some cases, this specification cannot be met. For example, if a processor is controlling readback, an interrupt may force it to stop in the middle of a readback. This necessitates stopping the clock, and thus violating the specification. The specification is mandatory only on clocking data at the end of a frame prior to the next start bit. The transfer mechanism will load the data to a shift register during the last six clock cycles of the frame, prior to the start bit of the following frame. This loading process is dynamic, and is the source of the maximum High and Low time requirements. Therefore, the specification only applies to the six clock cycles prior to and including any start bit, including the clocks before the first start bit in the readback data stream. At other times, the frame data is already in the register and the register is not dynamic. Thus, it can be shifted out just like a regular shift register. The user must precisely calculate the location of the readback data relative to the frame. The system must keep track of the position within a data frame, and disable interrupts before frame boundaries. Frame lengths and data formats are listed in Table 11 and Table 12. Readback with the XChecker Cable The XChecker Universal Download/Readback Cable and Logic Probe uses the readback feature for bitstream verification. It can also display selected internal signals on the PC or workstation screen, functioning as a low-cost in-circuit emulator. 7-113 7 Product Obsolete or Under Obsolescence R XC5200 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 next FPGA in the daisy chain accepts data on the subsequent rising CCLK edge. The seven configuration modes are discussed in detail in this section. Timing specifications are included. Slave Serial Mode Figure 28 shows a full master/slave system. An XC5200-Series device in Slave Serial mode should be connected as shown in the third device from the left. In Slave Serial mode, an external signal drives the CCLK input of the FPGA. The serial configuration bitstream must be available at the DIN input of the lead FPGA a short setup time before each rising CCLK edge. Slave Serial mode is selected by a on the mode pins (M2, M1, M0). Slave Serial is the default mode if the mode pins are left unconnected, as they have weak pull-up resistors during configuration. The lead FPGA then presents the preamble data—and all data that overflows the lead device—on its DOUT pin. NOTE: M2, M1, M0 can be shorted to VCC if not used as I/O NOTE: M2, M1, M0 can be shorted to Ground if not used as I/O VCC 3.3 KΩ 3.3 KΩ N/C 3.3 KΩ 3.3 KΩ M0 M1 M2 N/C DOUT XC1700E +5 V 4.7 KΩ CLK DATA CCLK DIN PROGRAM DONE M0 M1 M2 VPP CEO CE RESET/OE LDC INIT DOUT CCLK VCC 3.3 KΩ M0 M1 PWRDN M2 DIN XC5200 MASTER SERIAL 3.3 KΩ DIN DOUT CCLK Spartan, XC4000E/EX, XC5200 SLAVE PROGRAM DONE XC3100A SLAVE INIT RESET D/P INIT (Low Reset Option Used) PROGRAM X9003_01 Figure 28: Master/Slave Serial Mode Circuit Diagram DIN Bit n 1 TDCC Bit n + 1 2 TCCD 5 TCCL CCLK 4 TCCH DOUT (Output) 3 TCCO Bit n - 1 Bit n X5379 CCLK Note: Description DIN setup DIN hold DIN to DOUT High time Low time Frequency 1 2 3 4 5 Symbol TDCC TCCD TCCO TCCH TCCL FCC Min 20 0 Max 30 45 45 10 Units ns ns ns ns ns MHz Configuration must be delayed until the INIT pins of all daisy-chained FPGAs are High. Figure 29: Slave Serial Mode Programming Switching Characteristics 7-114 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Master Serial Mode The value increases from a nominal 1 MHz, to a nominal 12 MHz. Be sure that the serial PROM and slaves are fast enough to support this data rate. The Medium ConfigRate option changes the frequency to a nominal 6 MHz. XC2000, XC3000/A, and XC3100A devices do not support the Fast or Medium ConfigRate options. In Master Serial mode, the CCLK output of the lead FPGA drives a Xilinx Serial PROM that feeds the FPGA DIN input. Each rising edge of the CCLK output increments the Serial PROM internal address counter. The next data bit is put on the SPROM data output, connected to the FPGA DIN pin. The lead FPGA accepts this data on the subsequent rising CCLK edge. The SPROM CE input can be driven from either LDC or DONE. Using LDC avoids potential contention on the DIN pin, if this pin is configured as user-I/O, but LDC is then restricted to be a permanently High user output after configuration. Using DONE can also avoid contention on DIN, provided the DONE before I/O enable option is invoked. The lead FPGA then presents the preamble data—and all data that overflows the lead device—on its DOUT pin. There is an internal pipeline delay of 1.5 CCLK periods, which means that DOUT changes on the falling CCLK edge, and the next FPGA in the daisy chain accepts data on the subsequent rising CCLK edge. Figure 28 on page 114 shows a full master/slave system. The leftmost device is in Master Serial mode. Master Serial mode is selected by a on the mode pins (M2, M1, M0). In the bitstream generation software, the user can specify Fast ConfigRate, which, starting several bits into the first frame, increases the CCLK frequency by a factor of twelve. CCLK (Output) 2 TCKDS 1 Serial Data In Serial DOUT (Output) TDSCK n n–3 n+1 n+2 n–2 n–1 7 n X3223 CCLK Description DIN setup DIN hold Symbol 1 TDSCK 2 TCKDS Min 20 0 Max Units ns 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 30: Master Serial Mode Programming Switching Characteristics In the two Master Parallel modes, the lead FPGA directly addresses an industry-standard byte-wide EPROM, and accepts eight data bits just before incrementing or decrementing the address outputs. The eight data bits are serialized in the lead FPGA, which then presents the preamble data—and all data that overflows the lead device—on its DOUT pin. There is an internal delay of 1.5 CCLK periods, after the rising CCLK edge that accepts a byte of data (and also changes the EPROM address) until the falling CCLK edge that makes the LSB (D0) of this byte appear at DOUT. This means that DOUT changes on the falling CCLK edge, and the next FPGA in the daisy chain accepts data on the subsequent rising CCLK edge. November 5, 1998 (Version 5.2) The PROM address pins can be incremented or decremented, depending on the mode pin settings. This option allows the FPGA to share the PROM with a wide variety of microprocessors and microcontrollers. Some processors must boot from the bottom of memory (all zeros) while others must boot from the top. The FPGA is flexible and can load its configuration bitstream from either end of the memory. Master Parallel Up mode is selected by a on the mode pins (M2, M1, M0). The EPROM addresses start at 00000 and increment. Master Parallel Down mode is selected by a on the mode pins. The EPROM addresses start at 3FFFF and decrement. 7-115 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays 3.3 K M0 TO DIN OF OPTIONAL DAISY-CHAINED FPGAS HIGH or LOW N/C M1 M2 N/C TO CCLK OF OPTIONAL DAISY-CHAINED FPGAS CCLK NOTE:M0 can be shorted to Ground if not used as I/O. DOUT XC5200 Master Parallel VCC 4.7K INIT A17 ... A16 ... A15 ... A14 ... A13 ... M0 M1 DIN EPROM (8K x 8) (OR LARGER) A12 A11 A11 A10 A10 PROGRAM A9 A9 D7 A8 A8 D6 A7 A7 D7 D5 A6 A6 D6 D4 A5 A5 D5 D3 A4 A4 D4 D2 A3 A3 D3 D1 A2 A2 D2 D0 A1 A1 D1 A0 A0 D0 DONE OE DOUT CCLK USER CONTROL OF HIGHER ORDER PROM ADDRESS BITS CAN BE USED TO SELECT BETWEEN ALTERNATIVE CONFIGURATIONS A12 M2 XC5200/ XC4000E/EX/ Spartan SLAVE PROGRAM DONE INIT CE DATA BUS 8 PROGRAM X9004_01 Figure 31: Master Parallel Mode Circuit Diagram 7-116 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays . A0-A17 (output) Address for Byte n Address for Byte n + 1 1 TRAC D0-D7 Byte 3 TRCD 2 TDRC RCLK (output) 7 CCLKs CCLK CCLK (output) DOUT (output) D6 D7 Byte n - 1 CCLK Note: Description Delay to Address valid Data setup time Data hold time 1 2 3 Symbol TRAC TDRC TRCD Min 0 60 0 X6078 Max 200 Units ns ns ns 7 1. At power-up, VCC must rise from 2.0 V to VCC min in less then 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 32: Master Parallel Mode Programming Switching Characteristics November 5, 1998 (Version 5.2) 7-117 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Synchronous Peripheral Mode Synchronous Peripheral mode can also be considered Slave Parallel mode. An external signal drives the CCLK input(s) of the FPGA(s). The first byte of parallel configuration data must be available at the Data inputs of the lead FPGA a short setup time before the rising CCLK edge. Subsequent data bytes are clocked in on every eighth consecutive rising CCLK edge. The same CCLK edge that accepts data, also causes the RDY/BUSY output to go High for one CCLK period. The pin name is a misnomer. In Synchronous Peripheral mode it is really an ACKNOWLEDGE signal. Synchronous operation 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. The lead FPGA serializes the data and presents the preamble data (and all data that overflows the lead device) on its DOUT pin. There is an internal delay of 1.5 CCLK periods, which means that DOUT changes on the falling CCLK edge, and the next FPGA in the daisy chain accepts data on the subsequent rising CCLK edge. In order to complete the serial shift operation, 10 additional CCLK rising edges are required after the last data byte has been loaded, plus one more CCLK cycle for each daisy-chained device. Synchronous Peripheral mode is selected by a on the mode pins (M2, M1, M0). NOTE: M2 can be shorted to Ground if not used as I/O N/C M0 M1 N/C 3.3 kΩ M2 M0 M1 OPTIONAL DAISY-CHAINED FPGAs 8 DATA BUS D0-7 DOUT VCC 4.7 kΩ M2 CCLK CCLK CLOCK XC5200 SYNCHRONOUS PERIPHERAL DIN DOUT XC5200E/EX SLAVE RDY/BUSY CONTROL SIGNALS INIT DONE INIT DONE 3.3 kΩ PROGRAM PROGRAM PROGRAM X9005 Figure 33: Synchronous Peripheral Mode Circuit Diagram 7-118 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays TCCL CCLK 1 TIC 3 2 INIT D0 - D7 BYTE 0 BYTE 1 BYTE 0 OUT 0 DOUT TCD TDC 1 2 3 4 BYTE 1 OUT 5 6 7 0 1 RDY/BUSY X6096 CCLK Description INIT (High) setup time D0 - D7 setup time D0 - D7 hold time CCLK High time CCLK Low time CCLK Frequency Symbol 1 TIC 2 TDC 3 TCD TCCH TCCL FCC Min 5 60 0 50 60 Max 8 Units µs ns ns ns ns MHz 7 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 34: Synchronous Peripheral Mode Programming Switching Characteristics November 5, 1998 (Version 5.2) 7-119 Product Obsolete or Under Obsolescence R XC5200 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 guaranteed to be longer than 10 CCLK periods. Write to FPGA Asynchronous Peripheral mode uses the trailing edge of the logic AND condition of WS and CS0 being Low and RS and CS1 being High to accept byte-wide data from a microprocessor bus. In the lead FPGA, this data is loaded into a double-buffered UART-like parallel-to-serial converter and is serially shifted into the internal logic. The lead FPGA presents the preamble data (and all data that overflows the lead device) on its DOUT pin. The RDY/BUSY output from the lead FPGA acts as a handshake signal to the microprocessor. RDY/BUSY goes Low when a byte has been received, and goes High again when the byte-wide input buffer has transferred its information into the shift register, and the buffer is ready to receive new data. A new write may be started immediately, as soon as the RDY/BUSY output has gone Low, acknowledging receipt of the previous data. Write may not be terminated until RDY/BUSY is High again for one CCLK period. Note that RDY/BUSY is pulled High with a high-impedance pull-up prior to INIT going High. The length of the BUSY signal depends on the activity in the UART. If the shift register was empty when the new byte was received, the BUSY signal lasts for only two CCLK periods. If the shift register was still full when the new byte was received, the BUSY signal can be as long as nine CCLK periods. Note that after the last byte has been entered, only seven of its bits are shifted out. CCLK remains High with DOUT equal to bit 6 (the next-to-last bit) of the last byte entered. Status Read The logic AND condition of the CS0, CS1 and RS inputs puts the device status on the Data bus. • • • D7 High indicates Ready D7 Low indicates Busy D0 through D6 go unconditionally High It is mandatory that the whole start-up sequence be started and completed by one byte-wide input. Otherwise, the pins used as Write Strobe or Chip Enable might become active outputs and interfere with the final byte transfer. If this transfer does not occur, the start-up sequence is not completed all the way to the finish (point F in Figure 25 on page 109). In this case, at worst, the internal reset is not released. At best, Readback and Boundary Scan are inhibited. The length-count value, as generated by the software, ensures that these problems never occur. Although RDY/BUSY is brought out as a separate signal, microprocessors can more easily read this information on one of the data lines. For this purpose, D7 represents the RDY/BUSY status when RS is Low, WS is High, and the two chip select lines are both active. Asynchronous Peripheral mode is selected by a on the mode pins (M2, M1, M0). N/C N/C N/C 3.3 kΩ M0 8 DATA BUS M1 D0–7 CCLK DOUT 4.7 kΩ ... 4.7 kΩ M1 M2 CCLK OPTIONAL DAISY-CHAINED FPGAs VCC ADDRESS BUS M0 M2 ADDRESS DECODE LOGIC DOUT DIN CS0 XC5200 ASYNCHRONOUS PERIPHERAL XC5200/ XC4000E/EX SLAVE CS1 RS WS CONTROL SIGNALS RDY/BUSY REPROGRAM INIT INIT DONE DONE PROGRAM PROGRAM 3.3 kΩ X9006 Figure 35: 7-120 Asynchronous Peripheral Mode Circuit Diagram November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Write to LCA Read Status RS, CS0 WS/CS0 RS, CS1 WS, CS1 1 TCA 2 3 TDC TCD 4 7 READY BUSY D0-D7 D7 CCLK TWTRB 4 6 TBUSY RDY/BUSY Previous Byte D6 DOUT D7 D0 D1 D2 X6097 Write RDY Description Effective Write time (CSO, WS=Low; RS, CS1=High DIN setup time DIN hold time RDY/BUSY delay after end of Write or Read RDY/BUSY active after beginning of Read RDY/BUSY Low output (Note 4) Symbol 1 TCA 2 3 4 TDC TCD TWTRB Min 100 60 0 7 6 TBUSY Max 2 Units ns 60 ns ns ns 60 ns 9 CCLK periods Notes: 1. Configuration must be delayed until INIT pins of all daisy-chained FPGAs are high. 2. The time from the end of WS to CCLK cycle for the new byte of data depends on the completion of previous byte processing and the phase of internal timing generator for CCLK. 3. CCLK and DOUT timing is tested in slave mode. 4. TBUSY indicates that the double-buffered parallel-to-serial converter is not yet ready to receive new data. The shortest TBUSY occurs when a byte is loaded into an empty parallel-to-serial converter. The longest TBUSY occurs when a new word is loaded into the input register before the second-level buffer has started shifting out data. This timing diagram shows very relaxed requirements. Data need not be held beyond the rising edge of WS. RDY/BUSY will go active within 60 ns after the end of WS. A new write may be asserted immediately after RDY/BUSY goes Low, but write may not be terminated until RDY/BUSY has been High for one CCLK period. Figure 36: Asynchronous Peripheral Mode Programming Switching Characteristics November 5, 1998 (Version 5.2) 7-121 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Express Mode Express mode is similar to Slave Serial mode, except that data is processed one byte per CCLK cycle instead of one bit per CCLK cycle. An external source is used to drive CCLK, while byte-wide data is loaded directly into the configuration data shift registers. A CCLK frequency of 10 MHz is equivalent to an 80 MHz serial rate, because eight bits of configuration data are loaded per CCLK cycle. Express mode does not support CRC error checking, but does support constant-field error checking. In Express mode, an external signal drives the CCLK input of the FPGA device. The first byte of parallel configuration data must be available at the D inputs of the FPGA a short setup time before the second rising CCLK edge. Subsequent data bytes are clocked in on each consecutive rising CCLK edge. If the first device is configured in Express mode, additional devices may be daisy-chained only if every device in the chain is also configured in Express mode. CCLK pins are tied together and D0-D7 pins are tied together for all devices along the chain. A status signal is passed from DOUT to CS1 of successive devices along the chain. The lead device in the chain has its CS1 input tied High (or floating, since there is an internal pullup). Frame data is accepted only when CS1 is High and the device’s configu- ration memory is not already full. The status pin DOUT is pulled Low two internal-oscillator cycles after INIT is recognized as High, and remains Low until the device’s configuration memory is full. DOUT is then pulled High to signal the next device in the chain to accept the configuration data on the D0-D7 bus. The DONE pins of all devices in the chain should be tied together, with one or more active internal pull-ups. If a large number of devices are included in the chain, deactivate some of the internal pull-ups, since the Low-driving DONE pin of the last device in the chain must sink the current from all pull-ups in the chain. The DONE pull-up is activated by default. It can be deactivated using an option in the bitstream generation software. XC5200 devices in Express mode are always synchronized to DONE. The device becomes active after DONE goes High. DONE is an open-drain output. With the DONE pins tied together, therefore, the external DONE signal stays low until all devices are configured, then all devices in the daisy chain become active simultaneously. If the DONE pin of a device is left unconnected, the device becomes active as soon as that device has been configured. Express mode is selected by a on the mode pins (M2, M1, M0). VCC NOTE: M2, M1, M0 can be shorted to Ground if not used as I/O 3.3 kΩ 8 M0 M1 CS1 DATA BUS 8 M2 M1 CS1 DOUT 8 D0-D7 VCC M0 M2 To Additional Optional Daisy-Chained Devices DOUT D0-D7 Optional Daisy-Chained XC5200 XC5200 4.7KΩ PROGRAM INIT PROGRAM INIT PROGRAM DONE CCLK CCLK INIT DONE CCLK To Additional Optional Daisy-Chained Devices X6611_01 Figure 37: Express Mode Circuit Diagram 7-122 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays CCLK 1 TIC INIT TCD 3 2 T DC D0-D7 BYTE 0 BYTE 1 BYTE 2 BYTE 3 Serial Data Out (DOUT) FPGA Filled Internal INIT RDY/BUSY CS1 CCLK Description INIT (High) Setup time required DIN Setup time required DIN hold time required CCLK High time CCLK Low time CCLK frequency X5087 1 2 3 Symbol TIC TDC TCD TCCH TCCL FCC Min 5 30 0 30 30 Max 10 Units µs ns ns ns ns MHz Note: If not driven by the preceding DOUT, CS1 must remain high until the device is fully configured. Figure 38: Express Mode Programming Switching Characteristics November 5, 1998 (Version 5.2) 7-123 7 Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Table 13. Pin Functions During Configuration CONFIGURATION MODE: SLAVE MASTER-SER SYN.PERIPH ASYN.PERIPH MASTER-HIGH MASTER-LOW EXPRESS A16 A17 TDI TCK TMS TDI TCK TMS TDI TCK TMS TDI TCK TMS TDI TCK TMS TDI TCK TMS A16 A17 TDI TCK TMS M1 (HIGH) (I) M0 (HIGH) (I) M2 (HIGH) (I) M1 (LOW) (I) M0 (LOW) (I) M2 (LOW) (I) M1 (HIGH) (I) M0 (HIGH) (I) M2 (LOW) (I) M1 (LOW) (I) M0 (HIGH) (I) M2 (HIGH) (I) M1 (HIGH) (I) M0 (LOW) (I) M2 (HIGH) (I) M1 (LOW) (I) M0 (LOW) (I) M2 (HIGH) (I) M1 (HIGH) (I) M0 (LOW) (I) M2 (LOW) (I) HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR HDC (HIGH) LDC (LOW) INIT-ERROR DONE PROGRAM (I) DONE PROGRAM (I) DONE PROGRAM (I) DATA 7 (I) DONE PROGRAM (I) DATA 7 (I) DONE PROGRAM (I) DATA 7 (I) DONE PROGRAM (I) DATA 7 (I) DONE PROGRAM (I) DATA 7 (I) DATA 6 (I) DATA 5 (I) DATA 6 (I) DATA 5 (I) CSO (I) DATA 4 (I) DATA 3 (I) RS (I) DATA 2 (I) DATA 1 (I) RDY/BUSY DATA 0 (I) DOUT CCLK (O) TDO WS (I) DATA 6 (I) DATA 5 (I) DATA 6 (I) DATA 5 (I) DATA 6 (I) DATA 5 (I) DATA 4 (I) DATA 3 (I) DATA 4 (I) DATA 3 (I) DATA 4 (I) DATA 3 (I) DATA 2 (I) DATA 1 (I) RCLK DATA 0 (I) DOUT CCLK (O) TDO A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 DATA 2 (I) DATA 1 (I) RCLK DATA 0 (I) DOUT CCLK (O) TDO A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 DATA 2 (I) DATA 1 (I) DATA 4 (I) DATA 3 (I) DIN (I) DOUT CCLK (I) TDO DIN (I) DOUT CCLK (O) TDO DATA 2 (I) DATA 1 (I) RDY/BUSY DATA 0 (I) DOUT CCLK (I) TDO CS1 (I) DATA 0 (I) DOUT CCLK (I) TDO CS1 (I) USER OPERATION GCK1-I/O I/O TDI-I/O TCK-I/O TMS-I/O I/O I/O I/O I/O GCK2-I/O I/O I/O I/O I/O DONE PROGRAM I/O GCK3-I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O CCLK (I) TDO-I/O I/O GCK4-I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O ALL OTHERS Notes: 1. A shaded table cell represents a 20-kΩ to 100-kΩ pull-up resistor before and during configuration. 2. (I) represents an input (O) represents an output. 3. INIT is an open-drain output during configuration. 7-124 November 5, 1998 (Version 5.2) Product Obsolete or Under Obsolescence R XC5200 Series Field Programmable Gate Arrays Configuration Switching Characteristics T POR Vcc RE-PROGRAM >300 ns PROGRAM T PI INIT T ICCK TCCLK CCLK OUTPUT or INPUT
XC5210-5PC84C 价格&库存

很抱歉,暂时无法提供与“XC5210-5PC84C”相匹配的价格&库存,您可以联系我们找货

免费人工找货