Virtex-6 FPGA Configurable Logic Block
|
|
|
- Colleen Golden
- 9 years ago
- Views:
Transcription
1 Virtex- FPGA Configurable Logic Block User Guide
2 Notice of isclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To the maximum extent permitted by applicable law: (1) Materials are made available "AS IS" and with all faults, Xilinx hereby ISCLAIMS ALL WARRANTIES AN CONITIONS, EXPRESS, IMPLIE, OR STATUTORY, INCLUING BUT NOT LIMITE TO WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and (2) Xilinx shall not be liable (whether in contract or tort, including negligence, or under any other theory of liability) for any loss or damage of any kind or nature related to, arising under, or in connection with, the Materials (including your use of the Materials), including for any direct, indirect, special, incidental, or consequential loss or damage (including loss of data, profits, goodwill, or any type of loss or damage suffered as a result of any action brought by a third party) even if such damage or loss was reasonably foreseeable or Xilinx had been advised of the possibility of the same. Xilinx assumes no obligation to correct any errors contained in the Materials or to notify you of updates to the Materials or to product specifications. You may not reproduce, modify, distribute, or publicly display the Materials without prior written consent. Certain products are subject to the terms and conditions of the Limited Warranties which can be viewed at IP cores may be subject to warranty and support terms contained in a license issued to you by Xilinx. Xilinx products are not designed or intended to be failsafe or for use in any application requiring fail-safe performance; you assume sole risk and liability for use of Xilinx products in Critical Applications: Xilinx, Inc. Xilinx, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Zynq, and other designated brands included herein are trademarks of Xilinx in the United States and other countries. All other trademarks are the property of their respective owners. Revision History The following table shows the revision history for this document. ate Version Revision 0/24/ Initial Xilinx release. 09/1/ Add Virtex- HXT devices to Table 2. Updated discussions at Look-Up Table (LUT), page 11, and Static Read Operation, page 29. CLB labeling change in figures throughout document (Figure through Figure 13, Figure 1, Figure 17, Figure 27 through Figure 29), including clarifying the T S /T H functions, descriptions, and notes in Table 7, page 39 and Table 8, page /03/ In Enable /, updated second sentence to say that an inactive write enable prevents writing to memory cells. In Inverting Clock Pins, updated second sentence to positive edge of the clock. Virtex- FPGA CLB User Guide
3 Table of Contents Revision History Preface: About This Guide Additional ocumentation Additional Support Resources Virtex- FPGA CLB CLB Overview Slice escription CLB / Slice Timing Models General Slice Timing Model and Parameters Slice istributed RAM Timing Model and Parameters (Available in SLIM only) 38 Slice L Timing Model and Parameters (Available in SLIM only) Slice Carry-Chain Timing Model and Parameters CLB Primitives istributed RAM Primitives Shift Registers (Ls) Primitive Other Shift Register Applications Multiplexer Primitives Carry Chain Primitive Virtex- FPGA CLB User Guide 3
4 4 Virtex- FPGA CLB User Guide
5 Preface About This Guide Additional ocumentation This guide serves as a technical reference describing the Virtex - FPGA configurable logic blocks (CLBs). Usually, the logic synthesis software assigns the CLB resources without system designer intervention. It can be advantageous for the designer to understand certain CLB details, including the varying capabilities of the look-up tables (LUTs), the physical direction of the carry propagation, the number and distribution of the available flip-flops, and the availability of the very efficient shift registers. This guide describes these and other features of the CLB in detail. The following documents are also available for download at Virtex- Family Overview The features and product selection of the Virtex- family are outlined in this overview. Virtex- FPGA ata Sheet: C and Switching Characteristics This data sheet contains the C and Switching Characteristic specifications for the Virtex- family. Virtex- FPGA Packaging and Pinout Specifications This specification includes the tables for device/package combinations and maximum I/Os, pin definitions, pinout tables, pinout diagrams, mechanical drawings, and thermal specifications. Virtex- FPGA Configuration Guide This all-encompassing configuration guide includes chapters on configuration interfaces (serial and SelectMAP), bitstream encryption, boundary-scan and JTAG configuration, reconfiguration techniques, and readback through the SelectMAP and JTAG interfaces. Virtex- FPGA Clocking Resources User Guide This guide describes the clocking resources available in all Virtex- devices, including the MMCM and PLLs. Virtex- FPGA Memory Resources User Guide The functionality of the block RAM and FIFO are described in this user guide. Virtex- FPGA SelectIO Resources User Guide This guide describes the SelectIO resources available in all Virtex- devices. Virtex- FPGA CLB User Guide
6 Preface: About This Guide Virtex- FPGA GTH Transceivers User Guide This guide describes the GTH transceivers available in all Virtex- HXT FPGAs except the XCVHX20T and the XCVHX380T in the FF114 package.. Virtex- FPGA GTX Transceivers User Guide This guide describes the GTX transceivers available in all Virtex- FPGAs except the XCVLX70. Virtex- FPGA Embedded Tri-Mode Ethernet MAC User Guide This guide describes the dedicated Tri-Mode Ethernet Media Access Controller available in all Virtex- FPGAs except the XCVLX70. Virtex- FPGA SP48E1 Slice User Guide This guide describes the architecture of the SP48E1 slice in Virtex- FPGAs and provides configuration examples. Virtex- FPGA System Monitor User Guide The System Monitor functionality available in all Virtex- devices is outlined in this guide. Virtex- FPGA PCB esign Guide This guide provides information on PCB design for Virtex- devices, with a focus on strategies for making design decisions at the PCB and interface level. Additional Support Resources To search the database of silicon and software questions and answers or to create a technical support case in WebCase, see the Xilinx website at: Virtex- FPGA CLB User Guide
7 Virtex- FPGA CLB CLB Overview The Configurable Logic Blocks (CLBs) are the main logic resources for implementing sequential as well as combinatorial circuits. Each CLB element is connected to a switch matrix for access to the general routing matrix (shown in Figure 1). A CLB element contains a pair of slices. These two slices do not have direct connections to each other, and each slice is organized as a column. Each slice in a column has an independent carry chain. For each CLB, slices in the bottom of the CLB are labeled as SLI(0), and slices in the top of the CLB are labeled as SLI(1). X-Ref Target - Figure 1 COUT COUT CLB Slice(1) Switch Matrix Slice(0) CIN CIN ug34_01_ Figure 1: Arrangement of Slices within the CLB The Xilinx tools designate slices with the following definitions. An X followed by a number identifies the position of each slice in a pair as well as the column position of the slice. The X number counts slices starting from the bottom in sequence 0, 1 (the first CLB column); 2, 3 (the second CLB column); etc. A Y followed by a number identifies a row of slices. The number remains the same within a CLB, but counts up in sequence from one CLB row to the next CLB row, starting from the bottom. Figure 2 shows four CLBs located in the bottom-left corner of the die. Virtex- FPGA CLB User Guide 7
8 X-Ref Target - Figure 2 COUT COUT COUT COUT CLB Slice X1Y1 CLB Slice X3Y1 Slice X0Y1 Slice X2Y1 CIN CIN CIN CIN CLB COUT Slice X1Y0 COUT CLB COUT Slice X3Y0 COUT Slice X0Y0 Slice X2Y0 ug34_02_ Figure 2: Row and Column Relationship between CLBs and Slices Slice escription Every slice contains four logic-function generators (or look-up tables), eight storage elements, wide-function multiplexers, and carry logic. These elements are used by all slices to provide logic, arithmetic, and ROM functions. In addition to this, some slices support two additional functions: storing data using distributed RAM and shifting data with 32-bit registers. Slices that support these additional functions are called SLIM; others are called SLIL. SLIM (shown in Figure 3) represents a superset of elements and connections found in all slices. SLIL is shown in Figure 4. Each CLB can contain zero or one SLIM. Every other CLB column contains a SLIMs. In addition, the two CLB columns to the left of the SP48E columns both contain a SLIL and a SLIM. 8 Virtex- FPGA CLB User Guide
9 X-Ref Target - Figure 3 COUT HI LO INIT1 INIT0 Reset Type Sync/Async FF/LAT X :1 I I2 A:A1 W:W1 O I1 N MC31 HI LO INIT1 INIT0 X FF/LAT INIT1 INIT0 HI LO MUX CX C:1 CI I2 A:A1 W:W1 O I1 N MC31 HI LO INIT1 INIT0 C CX FF/LAT INIT1 INIT0 HI LO CMUX C C BX B:1 BI I2 A:A1 W:W1 O I1 N MC31 HI LO INIT1 INIT0 B BX FF/LAT INIT1 INIT0 HI LO BMUX B B AX A:1 AI I2 A:A1 W:W1 O I1 N MC31 0/1 N CIN A AX FF/LAT INIT1 INIT0 HI LO AMUX A A ug34_03_ Figure 3: iagram of SLIM Virtex- FPGA CLB User Guide 9
10 X-Ref Target - Figure 4 X COUT HI LO INIT1 INIT0 Reset Type Sync/Async FF/LAT MUX :1 A:A1 O HI LO INIT1 INIT0 X FF/LAT INIT1 INIT0 HI LO CX CMUX C:1 A:A1 O HI LO INIT1 INIT0 C CX FF/LAT INIT1 INIT0 HI LO C C BX BMUX B:1 A:A1 O HI LO INIT1 INIT0 B BX FF/LAT INIT1 INIT0 HI LO B B AX AMUX A:1 A:A1 O A AX FF/LAT INIT1 INIT0 HI LO A A 0/1 CIN ug34_04_ Figure 4: iagram of SLIL 10 Virtex- FPGA CLB User Guide
11 CLB/Slice Configurations Table 1 summarizes the logic resources in one CLB. Each CLB or slice can be implemented in one of the configurations listed. Table 2 shows the available resources in all CLBs. Table 1: Logic Resources in One CLB Slices LUTs Flip-Flops Arithmetic and Carry Chains istributed RAM (1) Shift Registers (1) bits 128 bits Notes: 1. SLIM only, SLIL does not have distributed RAM or shift registers. Table 2: Virtex- FPGA Logic Resources Available in All CLBs evice Total Slices SLILs SLIMs Number of -Input LUTs Maximum istributed RAM (Kb) Shift Register (Kb) Number of Flip-Flops XCVLX7T 11,40 7,40 4,180 4,0 1, ,120 XCVLX130T 20,000 13,040,90 80,000 1, ,000 XCVLX19T 31,200 19,040 12,10 124,800 3,140 1,70 249,00 XCVLX240T 37,80 23,080 14,00 10,720 3,770 1,88 301,440 XCVLX3T,880 40,30 1,20 227,20 4,130 2,0 4,040 XCVLX0T 8,920 1,120 24, ,80,200 3,100 87,30 XCVLX70 118,0 8,440 33, ,240 8,280 4, ,480 XCVSX31T 49,200 28,840 20,30 19,800,090 2,4 393,00 XCVSX47T 74,400 48,840 30,0 297,00 7,40 3,820 9,200 XCVHX20T 39,30 27,200 12,10 17,440 3,040 1,20 314,880 XCVHX2T 39,00 27,400 12,200 18,400 3,00 1,2 31,800 XCVHX380T 9,70 41,20 18, ,040 4,70 2,28 478,080 XCVHXT 88,0 3,080 2,480 34,240,370 3,18 708,480 Look-Up Table (LUT) The function generators in Virtex- FPGAs are implemented as six-input look-up tables (LUTs). There are six independent inputs (A inputs - A1 to A) and two independent outputs (O and ) for each of the four function generators in a slice (A, B, C, and ). The function generators can implement any arbitrarily defined six-input Boolean function. Each function generator can also implement two arbitrarily defined five-input Boolean functions, as long as these two functions share common inputs. Only the output of the function generator is used when a six-input function is implemented. Both O and are used for each of the five-input function generators implemented. In this case, A is driven High by the software. The propagation delay through a LUT is independent of the function implemented, or whether one six-input or two five-input generators are implemented. Signals from the function generators can exit the slice (through A, B, C, output for or AMUX, BMUX, CMUX, MUX output for O), enter the XOR dedicated gate from an output (see Fast Lookahead Carry Logic), enter the carry-logic chain from an O output (see Fast Lookahead Carry Logic), enter the select line of the carry-logic multiplexer from Virtex- FPGA CLB User Guide 11
12 output (see Fast Lookahead Carry Logic), feed the input of the storage element, or go to F7AMUX/F7BMUX from output. In addition to the basic LUTs, slices contain three multiplexers (F7AMUX, F7BMUX, and F8MUX). These multiplexers are used to combine up to four function generators to provide any function of seven or eight inputs in a slice. F7AMUX and F7BMUX are used to generate seven input functions from LUTs A and B, or C and, while F8MUX is used to combine all LUTs to generate eight input functions. Functions with more than eight inputs can be implemented using multiple slices. There are no direct connections between slices to form function generators greater than eight inputs within a CLB. Storage Elements As in previous Virtex architectures, there are four (original) storage elements in a slice that can be configured as either edge-triggered -type flip-flops or level-sensitive latches. The input can be driven directly by a LUT output via AFFMUX, BFFMUX, CFFMUX or FFMUX, or by the BYPASS slice inputs bypassing the function generators via AX, BX, CX, or X input. When configured as a latch, the latch is transparent when the is Low. In Virtex- devices, there are now four additional storage elements that can only be configured as edge-triggered -type flip-flops. The input can be driven by the O output of the LUT or the BYPASS slice inputs via AX, BX, CX, or X input. When the original 4 storage elements are configured as latches, these 4 additional storage elements can not be used. The control signals clock (), clock enable (), and set/reset () are common to all storage elements in one slice. When one flip-flop in a slice has or enabled, the other flip-flops used in the slice will also have or enabled by the common signal. Only the signal has independent polarity. Any inverter placed on the clock signal is automatically absorbed. The and signals are active High. All flip-flop and latch primitives have and non- versions. The signal forces the storage element into the state specified by the attribute HIGH or LOW. HIGH forces a logic High at the storage element output when is asserted, while LOW forces a logic Low at the storage element output (see Table 3). Table 3: Truth Table when using LOW and HIGH VAL Function 0 LOW (default) No Logic Change 1 LOW (default) 0 0 HIGH No Logic Change 1 HIGH 1 Figure shows both the register only and the register/latch configuration in a slice Virtex- FPGA CLB User Guide
13 X-Ref Target - Figure X LUT O FF INIT1 INIT0 HIGH LOW X LUT FF/LATCH FF LATCH INIT1 INIT0 HIGH LOW CX LUT C O CFF INIT1 INIT0 HIGH LOW C CX LUT C CFF/LATCH FF LATCH INIT1 INIT0 HIGH LOW C BX LUT B O BFF INIT1 INIT0 HIGH LOW Reset Type Sync Async B BX LUT B BFF/LATCH FF LATCH INIT1 INIT0 HIGH LOW Reset Type Sync Async B AX LUT A O AFF INIT1 INIT0 HIGH LOW A AX LUT A AFF/LATCH FF LATCH INIT1 INIT0 HIGH LOW A ug34_0_ Figure : Two Versions of Configuration in a Slice: 4 Registers Only and 4 Register/Latch HIGH and LOW can be set individually for each storage element in a slice. The choice of synchronous (SYNC) or asynchronous (ASYNC) set/reset (TYPE) cannot be set individually for each storage element in a slice. The initial state after configuration or global initial state is defined by separate INIT0 and INIT1 attributes. By default, setting the LOW attribute sets INIT0, and setting the HIGH attribute sets INIT1. Virtex- devices can set INIT0 and INIT1 independent of HIGH and LOW. The configuration options for the set and reset functionality of a register or the four storage elements capable of functioning as a latch are as follows: No set or reset Synchronous set Synchronous reset Asynchronous set (preset) Asynchronous reset (clear) Virtex- FPGA CLB User Guide 13
14 istributed RAM and Memory (Available in SLIM only) Multiple LUTs in a SLIM can be combined in various ways to store larger amount of data. The function generators (LUTs) in SLIMs can be implemented as a synchronous RAM resource called a distributed RAM element. RAM elements are configurable within a SLIM to implement the following: Single-Port 32 x 1-bit RAM ual-port 32 x 1-bit RAM uad-port 32 x 2-bit RAM Simple ual-port 32 x -bit RAM Single-Port 4 x 1-bit RAM ual-port 4 x 1-bit RAM uad-port 4 x 1-bit RAM Simple ual-port 4 x 3-bit RAM Single-Port 128 x 1-bit RAM ual-port 128 x 1-bit RAM Single-Port 2 x 1-bit RAM istributed RAM modules are synchronous (write) resources. A synchronous read can be implemented with a storage element or a flip-flop in the same slice. By placing this flip-flop, the distributed RAM performance is improved by decreasing the delay into the clock-to-out value of the flip-flop. However, an additional clock latency is added. The distributed elements share the same clock input. For a write operation, the Write Enable () input, driven by either the or pin of a SLIM, must be set High. Table 4 shows the number of LUTs (four per slice) occupied by each distributed RAM configuration. Table 4: istributed RAM Configuration RAM Number of LUTs 32 x 1S 1 32 x x 2 (2) 4 32 x SP (2) 4 4 x 1S 1 4 x x 1 (3) 4 4 x 3SP (3) x 1S x Virtex- FPGA CLB User Guide
15 Table 4: istributed RAM Configuration (Cont d) RAM Number of LUTs Notes: 2 x 1S 4 1. S = single-port configuration; = dual-port configuration; = quad-port configuration; SP = simple dual-port configuration. 2. RAM32M is the associated primitive for this configuration. 3. RAM4M is the associated primitive for this configuration. For single-port configurations, distributed RAM has a common address port for synchronous writes and asynchronous reads. For dual-port configurations, distributed RAM has one port for synchronous writes and asynchronous reads, and another port for asynchronous reads. In simple dual-port configuration, there is no data out (read port) from the write port. For quad-port configurations, distributed RAM has one port for synchronous writes and asynchronous reads, and three additional ports for asynchronous reads. In single-port mode, read and write addresses share the same address bus. In dual-port mode, one function generator is connected with the shared read and write port address. The second function generator has the A inputs connected to a second read-only port address and the WA inputs shared with the first read/write port address. Figure through Figure 14 illustrate various example distributed RAM configurations occupying one SLIM. When using x2 configuration (RAM32X2), A and WA are driven High by the software to keep O and independent. Virtex- FPGA CLB User Guide 1
16 X-Ref Target - Figure RAM 32X2 I[1] I[0] AR[4:0] W (I) (AX/BX/CX/X) [:1] () () PRAM32 I1 I2 A[:1] WA[:1] O O[0] O[1] PRAM32 ARC[4:0] C[:1] I1 I2 A[:1] WA[:1] O OC[0] OC[1] ARB[4:0] B[:1] PRAM32 I1 I2 A[:1] WA[:1] O OB[0] OB[1] ARA[4:0] A[:1] PRAM32 I1 I2 A[:1] WA[:1] O OA[0] OA[1] ug34_0_08009 Figure : istributed RAM (RAM32X2) 1 Virtex- FPGA CLB User Guide
17 X-Ref Target - Figure 7 RAM 32XSP unused unused WAR[:1] WAR[] = 1 W [:1] () () I1 I2 A[:1] WA[:1] PRAM32 ATA[1] ATA[2] RAR[:1] RAR[] = 1 C[:1] PRAM32 I1 I2 A[:1] WA[:1] O O[2] O[1] ATA[3] ATA[4] B[:1] PRAM32 I1 I2 A[:1] WA[:1] O O[4] O[3] ATA[] ATA[] A[:1] PRAM32 I1 I2 A[:1] WA[:1] O O[] O[] ug34_07_08009 Figure 7: istributed RAM (RAM32XSP) Virtex- FPGA CLB User Guide 17
18 X-Ref Target - Figure 8 RAM4X1S (I) I1 SPRAM4 O A[:0] W ([:1]) () (/) A[:1] WA[:1] Registered ug34_08_08009 Figure 8: istributed RAM (RAM4X1S) If four single-port 4 x 1-bit modules are built, the four RAM4X1S primitives can occupy a SLIM, as long as they share the same clock, write enable, and shared read and write port address inputs. This configuration equates to 4 x 4-bit single-port distributed RAM. X-Ref Target - Figure 9 RAM4X1 (I) I1 PRAM4 SPO A[:0] W ([:1]) () (/) A[:1] WA[:1] Registered I1 PRAM4 PO PRA[:0] (C[:1]) A[:1] WA[:1] Registered ug34_09_08009 Figure 9: istributed RAM (RAM4X1) If two dual-port 4 x 1-bit modules are built, the two RAM4X1 primitives can occupy a SLIM, as long as they share the same clock, write enable, and shared read and write port address inputs. This configuration equates to 4 x 2-bit dual-port distributed RAM Virtex- FPGA CLB User Guide
19 X-Ref Target - Figure 10 RAM4X1 I (I) I1 PRAM4 O AR W ([:1]) () () A[:1] WA[:1] Registered I1 PRAM4 OC ARC (C[:1]) A[:1] WA[:1] Registered I1 PRAM4 OB ARB (B[:1]) A[:1] WA[:1] Registered I1 PRAM4 OA ARA (A[:1]) A[:1] WA[:1] Registered ug34_10_08009 Figure 10: istributed RAM (RAM4X1) Virtex- FPGA CLB User Guide 19
20 X-Ref Target - Figure 11 RAM 4X3SP unused unused WAR[:1] W [:1] () () I1 I2 A[:1] WA[:1] PRAM4 ATA[1] RAR[:1] C[:1] PRAM4 I1 I2 A[:1] WA[:1] O O[1] ATA[2] B[:1] PRAM4 I1 I2 A[:1] WA[:1] O O[2] ATA[3] A[:1] PRAM4 I1 I2 A[:1] WA[:1] O O[3] ug34_11_08009 Figure 11: istributed RAM (RAM4X3SP) Implementation of distributed RAM configurations with depth greater than 4 requires the usage of wide-function multiplexers (F7AMUX, F7BMUX, and F8MUX) Virtex- FPGA CLB User Guide
21 X-Ref Target - Figure 12 A (CX) RAM128X1S (I) I1 SPRAM4 A[:0] W [:0] 7 () (/) A[:1] WA[7:1] 0 [:0] 7 SPRAM4 I1 A[:1] WA[7:1] F7BMUX Registered ug34_12_08009 Figure 12: istributed RAM (RAM128X1S) If two single-port 128 x 1-bit modules are built, the two RAM128X1S primitives can occupy a SLIM, as long as they share the same clock, write enable, and shared read and write port address inputs. This configuration equates to 128 x 2-bit single-port distributed RAM. Virtex- FPGA CLB User Guide 21
22 X-Ref Target - Figure 13 RAM128X1 A (CX) I I1 PRAM4 A[:0] W 7 () () A[:1] WA[7:1] SPO 7 PRAM4 I1 A[:1] WA[7:1] F7BMUX Registered I1 PRAM4 PRA[:0] 7 A[:1] WA[7:1] PO AX 7 PRAM4 I1 A[:1] WA[7:1] F7AMUX Registered ug34_13_08009 Figure 13: istributed RAM (RAM128X1) 22 Virtex- FPGA CLB User Guide
23 X-Ref Target - Figure 14 RAM2X1S I1 SPRAM4 A[7:0] W 8 () (/) A[:1] WA[8:1] A (CX) I1 SPRAM4 F7BMUX 8 A[:1] WA[8:1] A7 (BX) O I1 SPRAM4 F8MUX Registered 8 A[:1] WA[8:1] A (AX) I1 SPRAM4 F7AMUX 8 A[:1] WA[8:1] ug34_14_ Figure 14: istributed RAM (RAM2X1S) istributed RAM configurations greater than the provided examples require more than one SLIM. There are no direct connections between slices to form larger distributed RAM configurations within a CLB or between slices. istributed RAM ata Flow Synchronous Write Operation The synchronous write operation is a single clock-edge operation with an active-high write-enable () feature. When is High, the input () is loaded into the memory location at address A. Asynchronous Read Operation Virtex- FPGA CLB User Guide 23
24 The output is determined by the address A (for single-port mode output/spo output of dual-port mode), or address PRA (PO output of dual-port mode). Each time a new address is applied to the address pins, the data value in the memory location of that address is available on the output after the time delay to access the LUT. This operation is asynchronous and independent of the clock signal. istributed RAM Summary Single-port and dual-port modes are available in SLIMs. A write operation requires one clock edge. Read operations are asynchronous ( output). The data input has a setup-to-clock timing specification. Read Only Memory (ROM) Each function generator in SLIMs and SLILs can implement a 4 x 1-bit ROM. Three configurations are available: ROM4x1, ROM128x1, and ROM2x1. ROM contents are loaded at each device configuration. Table shows the number of LUTs occupied by each ROM configuration. Table : ROM Configuration ROM Number of LUTs 4 x x x 1 4 Shift Registers (Available in SLIM only) A SLIM function generator can also be configured as a 32-bit shift register without using the flip-flops available in a slice. Used in this way, each LUT can delay serial data anywhere from one to 32 clock cycles. The shiftin (I1 LUT pin) and shiftout 31 (MC31 LUT pin) lines cascade LUTs to form larger shift registers. The four LUTs in a SLIM are thus cascaded to produce delays up to 128 clock cycles. It is also possible to combine shift registers across more than one SLIM. Note that there are no direct connections between slices to form longer shift registers, nor is the MC31 output at LUT B/C/ available. The resulting programmable delays can be used to balance the timing of data pipelines. Applications requiring delay or latency compensation use these shift registers to develop efficient designs. Shift registers are also useful in synchronous FIFO and content addressable memory (CAM) designs. The write operation is synchronous with a clock input () and an optional clock enable (). A dynamic read access is performed through the -bit address bus, A[4:0]. The LSB of the LUT is unused and the software automatically ties it to a logic High. The configurable shift registers cannot be set or reset. The read is asynchronous; however, a storage element or flip-flop is available to implement a synchronous read. In this case, the clock-to-out of the flip-flop determines the overall delay and improves performance. However, one additional cycle of clock latency is added. Any of the 32 bits can be read out asynchronously (at the LUT outputs) by varying the -bit address. This capability is useful in creating smaller shift registers (less than 32 bits). For example, when building a 13-bit shift register, simply set the address to the 13 th bit. Figure 1 is a logic block diagram of a 32-bit shift register Virtex- FPGA CLB User Guide
25 X-Ref Target - Figure 1 SHIFTIN (MC31 of Previous LUT) LC32E SHIFTIN () A[4:0] (AI) (A[:2]) L32 I1 MC31 A[:2] SHIFTOUT (31) () (/) () (A) Registered ug34_1_08009 Figure 1: 32-bit Shift Register Configuration Figure 1 illustrates an example shift register configuration occupying one function generator. X-Ref Target - Figure 1 SHIFTIN () 32-bit Shift Register SHIFTOUT(31) Address (A[4:0]) MUX ug34_1_ Figure 1: Representation of a Shift Register Figure 17 shows two 1-bit shift registers. The example shown can be implemented in a single LUT. Virtex- FPGA CLB User Guide 2
26 X-Ref Target - Figure 17 L1 SHIFTIN1 (AI) I1 O A[3:0] 4 A[:2] L1 SHIFTIN2 (AX) I2 4 A[:2] MC31 ug34_17_08009 Figure 17: ual 1-bit Shift Register Configuration As mentioned earlier, an additional output (MC31) and a dedicated connection between shift registers allows connecting the last bit of one shift register to the first bit of the next, without using the LUT output. Longer shift registers can be built with dynamic access to any bit in the chain. The shift register chaining and the F7AMUX, F7BMUX, and F8MUX multiplexers allow up to a 128-bit shift register with addressable access to be implemented in one SLIM. Figure 18 through Figure 20 illustrate various example shift register configurations that can occupy one SLIM. X-Ref Target - Figure 18 L32 SHIFTIN () I1 A[:0] () (/) A[:2] MC31 A (AX) () I1 L32 F7AMUX (A) Registered A[:2] MC31 (MC31) SHIFTOUT (3) ug34_18_ Figure 18: 4-bit Shift Register Configuration 2 Virtex- FPGA CLB User Guide
27 X-Ref Target - Figure 19 CX (A) L32 SHIFTIN () I1 A[:0] () (/) A[:2] MC31 F7BMUX BX (A) (BMUX) () F8MUX (B) Registered L32 I1 A[:2] MC31 AX (A) I1 A[:2] L32 Not Used F7AMUX UG34_19_01209 Figure 19: 9-bit Shift Register Configuration Virtex- FPGA CLB User Guide 27
28 X-Ref Target - Figure 20 L32 SHIFTIN () I1 A[:0] () (/) A[:2] MC31 CX (A) I1 L32 F7BMUX A[:2] I1 MC31 L32 BX (A) F8MUX (BMUX) (B) () Registered A[:2] MC31 AX (A) I1 L32 F7AMUX A[:2] MC31 (MC31) SHIFTOUT (127) ug34_20_ Figure 20: 128-bit Shift Register Configuration It is possible to create shift registers longer than 128 bits across more than one SLIM. However, there are no direct connections between slices to form these shift registers. Shift Register ata Flow Shift Operation The shift operation is a single clock-edge operation, with an active-high clock enable feature. When enable is High, the input () is loaded into the first bit of the shift register. Each bit is also shifted to the next highest bit position. In a cascadable shift register configuration, the last bit is shifted out on the M31 output. The bit selected by the -bit address port (A[4:0]) appears on the output. ynamic Read Operation The output is determined by the -bit address. Each time a new address is applied to the -input address pins, the new bit position value is available on the output after the time 28 Virtex- FPGA CLB User Guide
29 delay to access the LUT. This operation is asynchronous and independent of the clock and clock-enable signals. Static Read Operation If the -bit address is fixed, the output always uses the same bit position. This mode implements any shift-register length from 1 to 32 bits in one LUT. The shift register length is (N+1), where N is the input address (0 31). The output changes synchronously with each shift operation. The previous bit is shifted to the next position and appears on the output. Shift Register Summary A shift operation requires one clock edge. ynamic-length read operations are asynchronous ( output). Static-length read operations are synchronous ( output). The data input has a setup-to-clock timing specification. In a cascadable configuration, the 31 output always contains the last bit value. The 31 output changes synchronously after each shift operation. Multiplexers Function generators and associated multiplexers in Virtex- FPGAs can implement the following: 4:1 multiplexers using one LUT 8:1 multiplexers using two LUTs 1:1 multiplexers using four LUTs These wide input multiplexers are implemented in one level or logic (or LUT) using the dedicated F7AMUX, F7BMUX, and F8MUX multiplexers. These multiplexers allow LUT combinations of up to four LUTs in a slice. esigning Large Multiplexers 4:1 Multiplexer Each LUT can be configured into a 4:1 MUX. The 4:1 MUX can be implemented with a flipflop in the same slice. Up to four 4:1 MUXes can be implemented in a slice, as shown in Figure 21. Virtex- FPGA CLB User Guide 29
30 X-Ref Target - Figure 21 SLI LUT () 4:1 MUX SEL [1:0], ATA [3:0] Input ([:1]) A[:1] () Registered LUT (C) 4:1 MUX SEL C [1:0], ATA C [3:0] Input (C[:1]) A[:1] (C) Registered LUT (B) 4:1 MUX SEL B [1:0], ATA B [3:0] Input (B[:1]) A[:1] (B) Registered LUT (A) 4:1 MUX SEL A [1:0], ATA A [3:0] Input (A[:1]) A[:1] (A) Registered () ug34_21_ :1 Multiplexer Figure 21: Four 4:1 Multiplexers in a Slice Each slice has an F7AMUX and an F7BMUX. These two muxes combine the output of two LUTs to form a combinatorial function up to 13 inputs (or an 8:1 MUX). Up to two 8:1 MUXes can be implemented in a slice, as shown in Figure Virtex- FPGA CLB User Guide
31 X-Ref Target - Figure 22 SLI LUT SEL [1:0], ATA [3:0] Input (1) ([:1]) A[:1] F7BMUX LUT (CMUX) 8:1 MUX (1) SEL C [1:0], ATA C [3:0] Input (1) (C[:1]) A[:1] (C) Registered SELF7(1) (CX) () LUT SEL B [1:0], ATA B [3:0] Input (2) (B[:1]) A[:1] F7AMUX LUT (AMUX) 8:1 MUX (2) SEL A [1:0], ATA A [3:0] Input (2) (A[:1]) A[:1] (A) Registered SELF7(2) (AX) ug34_22_ Figure 22: Two 8:1 Multiplexers in a Slice 1:1 Multiplexer Each slice has an F8MUX. F8MUX combines the outputs of F7AMUX and F7BMUX to form a combinatorial function up to 27 inputs (or a 1:1 MUX). Only one 1:1 MUX can be implemented in a slice, as shown in Figure 23. Virtex- FPGA CLB User Guide 31
32 X-Ref Target - Figure 23 SLI LUT SEL [1:0], ATA [3:0] Input ([:1]) A[:1] F7BMUX LUT SEL C [1:0], ATA C [3:0] Input (C[:1]) A[:1] F8MUX SELF7 (CX) LUT (BMUX) (B) 1:1 MUX Registered SEL B [1:0], ATA B [3:0] Input (B[:1]) A[:1] F7AMUX LUT SEL A [1:0], ATA A [3:0] Input (A[:1]) A[:1] SELF7 SELF8 (AX) (BX) () ug34_23_ Figure 23: 1:1 Multiplexer in a Slice It is possible to create multiplexers wider than 1:1 across more than one SLIM. However, there are no direct connections between slices to form these wide multiplexers. Fast Lookahead Carry Logic In addition to function generators, dedicated carry logic is provided to perform fast arithmetic addition and subtraction in a slice. A Virtex- FPGA CLB has two separate carry chains, as shown in Figure 1. The carry chains are cascadable to form wider add/subtract logic, as shown in Figure 2. The carry chain in the Virtex- device is running upward and has a height of four bits per slice. For each bit, there is a carry multiplexer (MUXCY) and a dedicated XOR gate for adding/subtracting the operands with a selected carry bits. The dedicated carry path and carry multiplexer (MUXCY) can also be used to cascade function generators for implementing wide logic functions. Figure 24 illustrates the carry chain with associated logic elements in a slice Virtex- FPGA CLB User Guide
33 X-Ref Target - Figure 24 COUT (To Next Slice) Carry Chain Block (CARRY4) From LUT S3 MUXCY CO3 MUX/* O From LUT X I3 O3 MUX From LUTC S2 MUXCY CO2 CMUX/C* O From LUTC CX I2 O2 CMUX C From LUTB S1 MUXCY CO1 BMUX/B* O From LUTB BX I1 O1 BMUX B From LUTA O From LUTA AX S0 I0 MUXCY CO0 O0 AMUX/A* ug34_09_ AMUX A CYINIT CIN 0 1 CIN (From Previous Slice) *Can be used if unregistered/registered outputs are free. ug34_24_ Figure 24: Fast Carry Logic Path and Associated Elements The carry chains carry lookahead logic along with the function generators. There are ten independent inputs (S inputs S0 to S3, I inputs I1 to I4, CYINIT and CIN) and eight independent outputs (O outputs O0 to O3, and CO outputs CO0 to CO3). The S inputs are used for the propagate signals of the carry lookahead logic. The propagate signals are sourced from the output of a function generator. The I inputs are used for the generate signals of the carry lookahead logic. The generate signals are sourced from either the O output of a function generator or the BYPASS input (AX, BX, CX, or X) of a slice. The former input is used to create a multiplier, while the latter is used to create an adder/accumulator. CYINIT is the CIN of the first bit in a carry chain. The CYINIT value can be 0 (for add), 1 (for subtract), or AX input (for the dynamic first carry bit). The CIN input is used to cascade slices to form a longer carry chain. The O outputs contain the sum of the addition/subtraction. The CO outputs compute the carry out for Virtex- FPGA CLB User Guide 33
34 CLB / Slice Timing Models CLB / Slice Timing Models each bit. CO3 is connected to COUT output of a slice to form a longer carry chain by cascading multiple slices. The propagation delay for an adder increases linearly with the number of bits in the operand, as more carry chains are cascaded. The carry chain can be implemented with a storage element or a flip-flop in the same slice. ue to the large size and complexity of Virtex- FPGAs, understanding the timing associated with the various paths and functional elements is a difficult and important task. Although it is not necessary to understand the various timing parameters to implement most designs using Xilinx software, a thorough timing model can assist advanced users in analyzing critical paths or planning speed-sensitive designs. Three timing model sections are described: Functional element diagram basic architectural schematic illustrating pins and connections Timing parameters definitions of Virtex- FPGA ata Sheet timing parameters Timing iagram - illustrates functional element timing parameters relative to each other Use the models in this chapter in conjunction with both the Xilinx Timing Analyzer software (TR) and the section on switching characteristics in the Virtex- FPGA ata Sheet. All pin names, parameter names, and paths are consistent with the post-route timing and pre-route static timing reports. Most of the timing parameters found in the section on switching characteristics are described in this chapter. All timing parameters reported in the Virtex- FPGA ata Sheet are associated with slices and CLBs. The following sections correspond to specific switching characteristics sections in the Virtex- FPGA ata Sheet: General Slice Timing Model and Parameters (CLB Switching Characteristics) Slice istributed RAM Timing Model and Parameters (Available in SLIM only) (CLB istributed RAM Switching Characteristics) Slice L Timing Model and Parameters (Available in SLIM only) (CLB L Switching Characteristics) Slice Carry-Chain Timing Model and Parameters (CLB Application Switching Characteristics) General Slice Timing Model and Parameters A simplified Virtex- FPGA slice is shown in Figure 2. Some elements of the slice are omitted for clarity. Only the elements relevant to the timing paths described in this section are shown Virtex- FPGA CLB User Guide
35 CLB / Slice Timing Models X-Ref Target - Figure 2 LUT Inputs O FF/LAT MUX X C Inputs LUT F7BMUX C O FF/LAT CMUX CX LUT F8MUX C B Inputs B O FF/LAT BMUX BX A Inputs LUT F7AMUX B A O AMUX AX FF/LAT A ug34_2_ Figure 2: Simplified Virtex- FPGA Slice Virtex- FPGA CLB User Guide 3
36 CLB / Slice Timing Models Timing Parameters Table shows the general slice timing parameters for a majority of the paths in Figure 2. Table : General Slice Timing Parameters Parameter Function escription Combinatorial elays T (1) ILO T ILO_2 T ILO_3 Sequential elays T O Flip-Flop/ Latch element T O Flip-Flop only element A/B/C/ inputs to A/B/C/ outputs A/B/C/ inputs to AMUX/CMUX outputs A/B/C/ inputs to BMUX output FF Clock () to A/B/C/ outputs FF Clock () to A/B/C/ outputs Propagation delay from the A/B/C/ inputs of the slice, through the look-up tables (LUTs), to the A/B/C/ outputs of the slice (six-input function). Propagation delay from the A/B/C/ inputs of the slice, through the LUTs and F7AMUX/F7BMUX to the AMUX/CMUX outputs (seven-input function). Propagation delay from the A/B/C/ inputs of the slice, through the LUTs, F7AMUX/F7BMUX, and F8MUX to the BMUX output (eight-input function). Time after the clock that data is stable at the A/B/C/ outputs of the slice sequential elements (configured as a flip-flop). Time after the clock that data is stable at the A/B/C/ outputs of the slice sequential elements. T LO Latch Clock () to A/B/C/ outputs Setup and Hold Times for Slice Sequential Elements (2) Time after the clock that data is stable at the A/B/C/ outputs of the slice sequential elements (configured as a latch). T I /T I Flip-Flop/ Latch element T I /T I Flip-Flop only element T /T Flip-Flop/ Latch element T /T Flip-Flop only element T /T Flip-Flop/ Latch element AX/BX/CX/X inputs AX/BX/CX/X inputs input input input Time before/after the that data from the AX/BX/CX/X inputs of the slice must be stable at the input of the slice sequential elements (configured as a flip-flop). Time before/after the that data from the AX/BX/CX/X inputs of the slice must be stable at the input of the slice sequential elements. Time before/after the that the input of the slice must be stable at the input of the slice sequential elements (configured as a flip-flop). Time before/after the that the input of the slice must be stable at the input of the slice sequential elements. Time before/after the that the (Set/Reset) of the slice must be stable at the inputs of the slice sequential elements (configured as a flipflop). 3 Virtex- FPGA CLB User Guide
37 CLB / Slice Timing Models Table : General Slice Timing Parameters (Cont d) Parameter Function escription T /T Flip-Flop only element Set/Reset T RPW T R F TOG input Time before/after the that the (Set/Reset) inputs of the slice must be stable at the inputs of the slice sequential elements Minimum Pulse Width for the (Set/Reset). Propagation delay for an asynchronous Set/Reset of the slice sequential elements. From the inputs to the A/B/C/ outputs. Toggle Frequency Maximum frequency that a CLB flip-flop can be clocked: 1/(T CH + T CL ). Notes: 1. This parameter includes a LUT configured as two five-input functions. 2. T XX = Setup Time (before clock edge), and T XX = Hold Time (after clock edge). Timing Characteristics Figure 2 illustrates the general timing characteristics of a Virtex- FPGA slice. X-Ref Target - Figure AX/BX/CX/X (ATA) (RESET) A/B/C/ (OUT) T O T I T O T T O ug34_2_ Figure 2: General Slice Timing Characteristics At time T O before clock event (1), the clock-enable signal becomes valid-high at the input of the slice register. At time T I before clock event (1), data from either AX, BX, CX, or X inputs become valid-high at the input of the slice register and is reflected on either the A, B, C, or pin at time T O after clock event (1). At time T before clock event (3), the signal (configured as synchronous reset) becomes valid-high, resetting the slice register. This is reflected on the A, B, C, or pin at time T O after clock event (3). Virtex- FPGA CLB User Guide 37
38 CLB / Slice Timing Models Slice istributed RAM Timing Model and Parameters (Available in SLIM only) Figure 27 illustrates the details of distributed RAM implemented in a Virtex- FPGA slice. Some elements of the slice are omitted for clarity. Only the elements relevant to the timing paths described in this section are shown. X-Ref Target - Figure 27 RAM I X input I1 I2 A[:0] WA[:0] O MUX RAM CI CX C input I1 I2 A[:0] WA[:0] O C CMUX RAM BI BX B input I1 I2 A[:0] WA[:0] O B BMUX RAM AI AX A input I1 I2 A[:0] WA[:0] O A AMUX ug34_27_08009 Figure 27: Simplified Virtex- FPGA SLIM istributed RAM 38 Virtex- FPGA CLB User Guide
39 CLB / Slice Timing Models istributed RAM Timing Parameters Table 7 shows the timing parameters for the distributed RAM in SLIM for a majority of the paths in Figure 27. Table 7: istributed RAM Timing Parameters Parameter Function escription Sequential elays for a Slice LUT Configured as RAM (istributed RAM) T (1) SHO to A/B/C/ outputs Time after the of a write operation that the data written to the distributed RAM is stable on the A/B/C/ output of the slice. Setup and Hold Times for a Slice LUT Configured as RAM (istributed RAM) (2) T S /T H (3) AI/BI/CI/I configured as data input (I1) Time before/after the clock that data must be stable at the AI/BI/CI/I input of the slice. T A /T A A/B/C/ address inputs Time before/after the clock that address signals must be stable at the A/B/C/ inputs of the slice LUT (configured as RAM). T WS /T WH input Time before/after the clock that the write enable signal must be stable at the input of the slice LUT (configured as RAM). Clock T WPH T WPL T WC Minimum Pulse Width, High Minimum Pulse Width, Low Minimum clock period to meet address write cycle time. Notes: 1. This parameters includes a LUT configured as a two-bit distributed RAM. 2. T XX = Setup Time (before clock edge), and T XX = Hold Time (after clock edge). 3. Parameter includes AX/BX/CX/X configured as a data input (I2). Virtex- FPGA CLB User Guide 39
40 CLB / Slice Timing Models istributed RAM Timing Characteristics The timing characteristics of a 1-bit distributed RAM implemented in a Virtex- FPGA slice (LUT configured as RAM) are shown in Figure 28. X-Ref Target - Figure T WC T WPH T WPL A/B/C/ (AR) T AS 2 F 3 4 E AI/BI/CI/I (I) 1 T S X X T WS TILO T ILO ATA_OUT A/B/C/ T SHO 1 MEM(F) WRITE REA WRITE WRITE WRITE REA MEM(E) ug34_28_08009 Figure 28: Clock Event 1: Write Operation uring a Write operation, the contents of the memory at the address on the AR inputs are changed. The data written to this memory location is reflected on the A/B/C/ outputs synchronously. At time T WS before clock event 1, the write-enable signal () becomes valid-high, enabling the RAM for a Write operation. At time T AS before clock event 1, the address (2) becomes valid at the A/B/C/ inputs of the RAM. At time T S before clock event 1, the ATA becomes valid (1) at the I input of the RAM and is reflected on the A/B/C/ output at time T SHO after clock event 1. This is also applicable to the AMUX, BMUX, CMUX, MUX, and COUT outputs at time T SHO and T WOSCO after clock event 1. Clock Event 2: Read Operation Slice istributed RAM Timing Characteristics All Read operations are asynchronous in distributed RAM. As long as is Low, the address bus can be asserted at any time. The contents of the RAM on the address bus are reflected on the A/B/C/ outputs after a delay of length T ILO (propagation delay through a LUT). The address (F) is asserted after clock event 2, and the contents of the RAM at address (F) are reflected at the output after a delay of length T ILO Virtex- FPGA CLB User Guide
41 CLB / Slice Timing Models Slice L Timing Model and Parameters (Available in SLIM only) Figure 29 illustrates shift register implementation in a Virtex- FPGA slice. Some elements of the slice have been omitted for clarity. Only the elements relevant to the timing paths described in this section are shown. X-Ref Target - Figure 29 L I I1 address A MC31 W L CI I1 C C address A MC31 L BI I1 B B address A MC31 L AI A address I1 A MC31 A MUX ug34_29_08009 Figure 29: Simplified Virtex- FPGA Slice L Virtex- FPGA CLB User Guide 41
42 CLB / Slice Timing Models Slice L Timing Parameters Table 8 shows the SLIM L timing parameters for a majority of the paths in Figure 29. Table 8: Slice L Timing Parameters Parameter Function escription Sequential elays for a Slice LUT Configured as an L T (1) REG to A/B/C/ outputs Time after the of a write operation that the data written to the L is stable on the A/B/C/ outputs of the slice. T (1) REG_MUX to AMUX - MUX output Time after the of a write operation that the data written to the L is stable on the MUX output of the slice. T REG_M31 to MUX output via MC31 output Setup and Hold Times for a Slice LUT Configured L (2) Time after the of a write operation that the data written to the L is stable on the MUX output via MC31 output. T WS /T WH input () Time before/after the clock that the write enable signal must be stable at the input of the slice LUT (configured as an L). T S /T H (3) AI/BI/CI/I configured as data input (I) Time before the clock that the data must be stable at the AI/BI/CI/I input of the slice (configured as an L). Notes: 1. This parameter includes a LUT configured as a two-bit shift register. 2. T XX = Setup Time (before clock edge), and T XX = Hold Time (after clock edge). 3. Parameter includes AX/BX/CX/X configured as a data input (I2) or two bits with a common shift. Slice L Timing Characteristics Figure 30 illustrates the timing characteristics of a 1-bit shift register implemented in a Virtex- FPGA slice (a LUT configured as an L). X-Ref Target - Figure Write Enable () Shift_In (I) Address (A/B/C/) ata Out (A/B/C/) MSB (MC31/MUX) T WS T S T REG T ILO T ILO X T REG X X X X X X X 0 ug34_30_ Figure 30: Slice L Timing Characteristics 42 Virtex- FPGA CLB User Guide
43 CLB / Slice Timing Models Clock Event 1: Shift In uring a write (Shift In) operation, the single-bit content of the register at the address on the A/B/C/ inputs is changed, as data is shifted through the L. The data written to this register is reflected on the A/B/C/ outputs synchronously, if the address is unchanged during the clock event. If the A/B/C/ inputs are changed during a clock event, the value of the data at the addressable output (A/B/C/ outputs) is invalid. At time T WS before clock event 1, the write-enable signal () becomes valid-high, enabling the L for the Write operation that follows. At time T S before clock event 1 the data becomes valid (0) at the I input of the L and is reflected on the A/B/C/ output after a delay of length T REG after clock event 1. Since the address 0 is specified at clock event 1, the data on the I input is reflected at A/B/C/ output, because it is written to register 0. Clock Event 2: Shift In At time T S before clock event 2, the data becomes valid (1) at the I input of the L and is reflected on the A/B/C/ output after a delay of length T REG after clock event 2. Since the address 0 is still specified at clock event 2, the data on the I input is reflected at the output, because it is written to register 0. Clock Event 3: Shift In/Addressable (Asynchronous) REA All Read operations are asynchronous to the signal. If the address is changed (between clock events), the contents of the register at that address are reflected at the addressable output (A/B/C/ outputs) after a delay of length T ILO (propagation delay through a LUT). At time T S before clock event 3, the data becomes valid (1) at the I input of the L and is reflected on the A/B/C/ output T REG time after clock event 3. The address is changed (from 0 to 2). The value stored in register 2 at this time is a 0 (in this example, this was the first data shifted in), and it is reflected on the A/B/C/ output after a delay of length T ILO. Clock Event 32: MSB (Most Significant Bit) Changes At time T REG after clock event 32, the first bit shifted into the L becomes valid (logical 0 in this case) on the MUX output of the slice via the MC31 output of LUT A (L). This is also applicable to the AMUX, BMUX, CMUX, MUX, and COUT outputs at time T REG and T WOSCO after clock event 1. Virtex- FPGA CLB User Guide 43
44 CLB / Slice Timing Models Slice Carry-Chain Timing Model and Parameters Figure 24, page 33 illustrates a carry chain in a Virtex- FPGA slice. Some elements of the slice have been omitted for clarity. Only the elements relevant to the timing paths described in this section are shown. Slice Carry-Chain Timing Parameters Table 9 shows the slice carry-chain timing parameters for a majority of the paths in Figure 24, page 33. Table 9: Slice Carry-Chain Timing Parameters Parameter Function escription Sequential elays for Slice LUT Configured as Carry Chain T AXCY /T BXCY /T CXCY /T XCY AX/BX/CX/X input to COUT output Propagation delay from the AX/BX/CX/X inputs of the slice to the COUT output of the slice. T BYP CIN input to COUT output Propagation delay from the CIN input of the slice to the COUT output of the slice. T OPCYA /T OPCYB /T OPCYC /T OPCY A/B/C/ input to COUT output Propagation delay from the A/B/C/ inputs of the slice to the COUT output of the slice. T CINA /T CINB /T CINC /T CIN A/B/C/ input to AMUX/BMUX/CMUX/MUX output Propagation delay from the A/B/C/ inputs of the slice to AMUX/BMUX/CMUX/MUX output of the slice using XOR (sum). Setup and Hold Times for a Slice LUT Configured as a Carry Chain (1) T CIN /T CIN CIN ata inputs Time before the that data from the CIN input of the slice must be stable at the input of the slice sequential elements (configured as a flip-flop). Notes: 1. T XX = Setup Time (before clock edge), and T XX = Hold Time (after clock edge). Slice Carry-Chain Timing Characteristics Figure 31 illustrates the timing characteristics of a slice carry chain implemented in a Virtex- FPGA slice. X-Ref Target - Figure C IN (ATA) (RESET) A/B/C/ (OUT) T CIN T O T T O ug34_31_ Figure 31: Slice Carry-Chain Timing Characteristics 44 Virtex- FPGA CLB User Guide
45 CLB Primitives CLB Primitives Table 10: At time T CIN before clock event 1, data from CIN input becomes valid-high at the input of the slice register. This is reflected on any of the A/B/C/ pins at time T O after clock event 1. At time T before clock event 3, the signal (configured as synchronous reset) becomes valid-high, resetting the slice register. This is reflected on any of the A/B/C/ pins at time T O after clock event 3. More information on the CLB primitives are available in the software libraries guide. istributed RAM Primitives Seven primitives are available; from 32 x 2 bits to 2 x 1 bit. Three primitives are singleport RAM, two primitives are dual-port RAM, and two primitives are quad-port RAM, as shown in Table 10. Single-Port, ual-port, and uad-port istributed RAM Primitive RAM Size Type Address Inputs RAM32X1S 32-bit Single-port A[4:0] (read/write) RAM32X1 32-bit ual-port A[4:0] (read/write) PRA[4:0] (read) RAM32M 32-bit uad-port ARA[4:0] (read) ARB[4:0] (read) ARC[4:0] (read) AR[4:0] (read/write) RAM4X1S 4-bit Single-port A[:0] (read/write) RAM4X1 4-bit ual-port A[:0] (read/write) PRA[:0] (read) RAM4M 4-bit uad-port ARA[:0] (read) ARB[:0] (read) ARC[:0] (read) AR[:0] (read/write) RAM128X1S 128-bit Single-port A[:0] (read/write) RAM128X1 128-bit ual-port A[:0], (read/write) PRA[:0] (read) RAM2X1S 2-bit Single-port A[7:0] (read/write) The input and output data are 1-bit wide (with the exception of the 32-bit RAM). Figure 32 shows generic single-port, dual-port, and quad-port distributed RAM primitives. The A, AR, and PRA signals are address buses. Virtex- FPGA CLB User Guide 4
46 CLB Primitives X-Ref Target - Figure 32 RAM#X1S RAM#X1 RAM#M O SPO I[A:][#:0] O[#:0] W W W A[#:0] A[#:0] R/W Port AR[#:0] R/W Port PRA[#:0] Read Port PO ARC[#:0] Read Port OC[#:0] ARB[#:0] Read Port OB[#:0] ARA[#:0] Read Port OA[#:0] ug34_32_ Figure 32: Single-Port, ual-port, and uad-port istributed RAM Primitives Instantiating several distributed RAM primitives can be used to implement wide memory blocks. Port Signals Each distributed RAM port operates independently of the other while reading the same set of memory cells. Clock W The clock is used for the synchronous write. The data and the address input pins have setup times referenced to the W pin. Enable / The enable pin affects the write functionality of the port. An inactive write enable prevents any writing to memory cells. An active write enable causes the clock edge to write the data input signal to the memory location pointed to by the address inputs. Address A[#:0], PRA[#:0], and ARA[#:0] AR[#:0] The address inputs A[#:0] (for single-port and dual-port), PRA[#:0] (for dual-port), and ARA[#:0] AR[#:0] (for quad-port) select the memory cells for read or write. The width of the port determines the required address inputs. Some of the address inputs are not buses in VHL or Verilog instantiations. Table 10 summarizes the function of each address pins. ata In, I[#:0] The data input (for single-port and dual-port) and I[#:0] (for quad-port) provide the new data value to be written into the RAM. ata Out O, SPO, PO and OA[#:0] O[#:0] The data out O (single-port or SPO), PO (dual-port), and OA[#:0] O[#:0] (quadport) reflects the contents of the memory cells referenced by the address inputs. Following an active write clock edge, the data out (O, SPO, or O[#:0]) reflects the newly written data. 4 Virtex- FPGA CLB User Guide
47 CLB Primitives Inverting Clock Pins The clock pin () has an individual inversion option. The clock signal can be active at the negative edge of the clock or the positive edge of the clock without requiring other logic resources. The default is at the positive clock edge. Global Set/Reset G The global set/reset (G) signal does not affect distributed RAM modules. Shift Registers (Ls) Primitive One primitive is available for the 32-bit shift register (LC32E). Figure 33 shows the 32-bit shift register primitive. X-Ref Target - Figure 33 LC32E A[4:0] 31 ug34_33_ Figure 33: 32-bit Shift Register Instantiating several 32-bit shift register with dedicated multiplexers (F7AMUX, F7BMUX, and F8MUX) allows a cascadable shift register chain of up to 128-bit in a slice. Figure 18 through Figure 20 in the Shift Registers (Available in SLIM only) section of this document illustrate the various implementation of cascadable shift registers greater than 32 bits. Port Signals Clock Either the rising edge or the falling edge of the clock is used for the synchronous shift operation. The data and clock enable input pins have setup times referenced to the chosen edge of. ata In The data input provides new data (one bit) to be shifted into the shift register. Clock Enable - The clock enable pin affects shift functionality. An inactive clock enable pin does not shift data into the shift register and does not write new data. Activating the clock enable allows the data in () to be written to the first location and all data to be shifted by one location. When available, new data appears on output pins () and the cascadable output pin (31). Address A[4:0] The address input selects the bit (range 0 to 31) to be read. The nth bit is available on the output pin (). Address inputs have no effect on the cascadable output pin (31). It is always the last bit of the shift register (bit 31). Virtex- FPGA CLB User Guide 47
48 CLB Primitives ata Out The data output provides the data value (1 bit) selected by the address inputs. ata Out 31 (optional) The data output 31 provides the last bit value of the 32-bit shift register. New data becomes available after each shift-in operation. Inverting Clock Pins The clock pin () has an individual inversion option. The clock signal can be active at the negative or positive edge of the clock without requiring other logic resources. The default is positive clock edge. Global Set/Reset G The global set/reset (G) signal does not affect the shift registers. Other Shift Register Applications Synchronous Shift Registers The shift-register primitive does not use the register available in the same slice. To implement a fully synchronous read and write shift register, output pin must be connected to a flip-flop. Both the shift register and the flip-flop share the same clock, as shown in Figure 34. X-Ref Target - Figure 34 LC32G FF Synchronous Address (Write Enable) 31 ug34_34_ Figure 34: Synchronous Shift Register This configuration provides a better timing solution and simplifies the design. Because the flip-flop must be considered to be the last register in the shift-register chain, the static or dynamic address should point to the desired length minus one. If needed, the cascadable output can also be registered in a flip-flop. Static-Length Shift Registers The cascadable 32-bit shift register implements any static length mode shift register without the dedicated multiplexers (F7AMUX, F7BMUX, and F8MUX). Figure 3 illustrates a 72-bit shift register. Only the last LC32E primitive needs to have its address inputs tied to 0b Alternatively, shift register length can be limited to 71 bits (address tied to 0b00110) and a flip-flop can be used as the last register. (In an LC32E primitive, the shift register length is the address input + 1) Virtex- FPGA CLB User Guide
49 CLB Primitives X-Ref Target - Figure 3 LUT LUT 31 LC32G 31 LC32G LUT LUT 31 LC32G 31 LC32G FF LUT A[4:0] 31 LC32G OUT (72-bit L) LUT A[4:0] 31 LC32G OUT (72-bit L) ug34_3_ Figure 3: Example Static-Length Shift Register Multiplexer Primitives Two primitives (MUXF7 and MUXF8) are available for access to the dedicated F7AMUX, F7BMUX and F8MUX in each slice. Combined with LUTs, these multiplexer primitives are also used to build larger width multiplexers (from 8:1 to 1:1). The esigning Large Multiplexers section provides more information on building larger multiplexers. Port Signals ata In I0, I1 The data input provides the data to be selected by the select signal (S). Control In S The select input signal determines the data input signal to be connected to the output O. Logic 0 selects the I0 input, while logic 1 selects the I1 input. ata Out O The data output O provides the data value (one bit) selected by the control inputs. Carry Chain Primitive The CARRY4 primitive represents the fast carry logic for a slice in the Virtex- architecture. This primitive works in conjunction with LUTs in order to build adders and multipliers. This primitive is generally inferred by synthesis tools from standard RTL code. The synthesis tool can identify the arithmetic and/or logic functionality that best maps to this Virtex- FPGA CLB User Guide 49
50 CLB Primitives logic in terms of performance and area. It also automatically uses and connects this function properly. Figure 24, page 33 illustrates the CARRY4 block diagram. Port Signals Sum s O[3:0] The sum outputs provide the final result of the addition/subtraction. Carry s CO[3:0] The carry outputs provide the carry out for each bit. A longer carry chain can be created if CO[3] is connected to CI input of another CARRY4 primitive. ata Inputs I[3:0] The data inputs are used as generate signals to the carry lookahead logic. The generate signals are sourced from LUT outputs. Select Inputs S[3:0] The select inputs are used as propagate signals to the carry lookahead logic. The propagate signals are sourced from LUT outputs. Carry Initialize CYINIT The carry initialize input is used to select the first bit in a carry chain. The value for this pin is either 0 (for add), 1 (for subtract), or AX input (for the dynamic first carry bit). Carry In CI The carry in input is used to cascade slices to form longer carry chain. To create a longer carry chain, the CO[3] output of another CARRY4 is simply connected to this pin. 0 Virtex- FPGA CLB User Guide
UltraScale Architecture Configurable Logic Block
UltraScale Architecture Configurable Logic Block User Guide Revision History The following table shows the revision history for this document. Date Version Revision 11/24/2015 1.4 Added UltraScale+ device
Modeling Latches and Flip-flops
Lab Workbook Introduction Sequential circuits are digital circuits in which the output depends not only on the present input (like combinatorial circuits), but also on the past sequence of inputs. In effect,
Memory Elements. Combinational logic cannot remember
Memory Elements Combinational logic cannot remember Output logic values are function of inputs only Feedback is needed to be able to remember a logic value Memory elements are needed in most digital logic
ChipScope Pro Tutorial
ChipScope Pro Tutorial Using an IBERT Core with ChipScope Pro Analyzer Xilinx is disclosing this user guide, manual, release note, and/or specification (the Documentation ) to you solely for use in the
PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing
Application Note: Spartan-6 Family XAPP7 (v1.1) October 6, 011 PLL Dynamic Reconfiguration Author: Karl Kurbjun and Carl Ribbing Summary This application note provides a method to dynamically change the
Chapter 9 Latches, Flip-Flops, and Timers
ETEC 23 Programmable Logic Devices Chapter 9 Latches, Flip-Flops, and Timers Shawnee State University Department of Industrial and Engineering Technologies Copyright 27 by Janna B. Gallaher Latches A temporary
Zynq-7000 Platform Software Development Using the ARM DS-5 Toolchain Authors: Simon George and Prushothaman Palanichamy
Application Note: Zynq-7000 All Programmable Soc XAPP1185 (v2.0) May 6, 2014 Zynq-7000 Platform Software Development Using the ARM DS-5 Toolchain Authors: Simon George and Prushothaman Palanichamy Summary
Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng
Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals of Computer Organization and Design. Introduction
L4: Sequential Building Blocks (Flip-flops, Latches and Registers)
L4: Sequential Building Blocks (Flip-flops, Latches and Registers) Acknowledgements: Materials in this lecture are courtesy of the following sources and are used with permission. Prof. Randy Katz (Unified
Achieving High Performance DDR3 Data Rates
WP383 (v1.2) August 29, 2013 Achieving High Performance DDR3 Data Rates By: Adrian Cosoroaba Programmable devices frequently require an external memory interface to buffer data that exceeds the capacity
Delay Characterization in FPGA-based Reconfigurable Systems
Institute of Computer Architecture and Computer Engineering University of Stuttgart Pfaffenwaldring 47 D 70569 Stuttgart Master s Thesis Nr. 3505 Delay Characterization in FPGA-based Reconfigurable Systems
Lecture 8: Synchronous Digital Systems
Lecture 8: Synchronous Digital Systems The distinguishing feature of a synchronous digital system is that the circuit only changes in response to a system clock. For example, consider the edge triggered
Engr354: Digital Logic Circuits
Engr354: igital Circuits Chapter 7 Sequential Elements r. Curtis Nelson Sequential Elements In this chapter you will learn about: circuits that can store information; Basic cells, latches, and flip-flops;
Flip-Flops, Registers, Counters, and a Simple Processor
June 8, 22 5:56 vra235_ch7 Sheet number Page number 349 black chapter 7 Flip-Flops, Registers, Counters, and a Simple Processor 7. Ng f3, h7 h6 349 June 8, 22 5:56 vra235_ch7 Sheet number 2 Page number
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
Post-Configuration Access to SPI Flash Memory with Virtex-5 FPGAs Author: Daniel Cherry
Application Note: Virtex-5 Family XAPP1020 (v1.0) June 01, 2009 Post-Configuration Access to SPI Flash Memory with Virtex-5 FPGAs Author: Daniel Cherry Summary Virtex -5 FPGAs support direct configuration
CHAPTER 3 Boolean Algebra and Digital Logic
CHAPTER 3 Boolean Algebra and Digital Logic 3.1 Introduction 121 3.2 Boolean Algebra 122 3.2.1 Boolean Expressions 123 3.2.2 Boolean Identities 124 3.2.3 Simplification of Boolean Expressions 126 3.2.4
Source-Synchronous Serialization and Deserialization (up to 1050 Mb/s) Author: NIck Sawyer
Application Note: Spartan-6 FPGAs XAPP1064 (v1.2) November 19, 2013 Source-Synchronous Serialization and Deserialization (up to 1050 Mb/s) Author: NIck Sawyer Summary Spartan -6 devices contain input SerDes
1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.
File: chap04, Chapter 04 1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1. 2. True or False? A gate is a device that accepts a single input signal and produces one
ETEC 2301 Programmable Logic Devices. Chapter 10 Counters. Shawnee State University Department of Industrial and Engineering Technologies
ETEC 2301 Programmable Logic Devices Chapter 10 Counters Shawnee State University Department of Industrial and Engineering Technologies Copyright 2007 by Janna B. Gallaher Asynchronous Counter Operation
BINARY CODED DECIMAL: B.C.D.
BINARY CODED DECIMAL: B.C.D. ANOTHER METHOD TO REPRESENT DECIMAL NUMBERS USEFUL BECAUSE MANY DIGITAL DEVICES PROCESS + DISPLAY NUMBERS IN TENS IN BCD EACH NUMBER IS DEFINED BY A BINARY CODE OF 4 BITS.
Chapter 7 Memory and Programmable Logic
NCNU_2013_DD_7_1 Chapter 7 Memory and Programmable Logic 71I 7.1 Introduction ti 7.2 Random Access Memory 7.3 Memory Decoding 7.5 Read Only Memory 7.6 Programmable Logic Array 77P 7.7 Programmable Array
Modeling Sequential Elements with Verilog. Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: [email protected]. Sequential Circuit
Modeling Sequential Elements with Verilog Prof. Chien-Nan Liu TEL: 03-4227151 ext:34534 Email: [email protected] 4-1 Sequential Circuit Outputs are functions of inputs and present states of storage elements
LogiCORE IP AXI Performance Monitor v2.00.a
LogiCORE IP AXI Performance Monitor v2.00.a Product Guide Table of Contents IP Facts Chapter 1: Overview Target Technology................................................................. 9 Applications......................................................................
WEEK 8.1 Registers and Counters. ECE124 Digital Circuits and Systems Page 1
WEEK 8.1 egisters and Counters ECE124 igital Circuits and Systems Page 1 Additional schematic FF symbols Active low set and reset signals. S Active high set and reset signals. S ECE124 igital Circuits
ASYNCHRONOUS COUNTERS
LB no.. SYNCHONOUS COUNTES. Introduction Counters are sequential logic circuits that counts the pulses applied at their clock input. They usually have 4 bits, delivering at the outputs the corresponding
Counters and Decoders
Physics 3330 Experiment #10 Fall 1999 Purpose Counters and Decoders In this experiment, you will design and construct a 4-bit ripple-through decade counter with a decimal read-out display. Such a counter
7. Latches and Flip-Flops
Chapter 7 Latches and Flip-Flops Page 1 of 18 7. Latches and Flip-Flops Latches and flip-flops are the basic elements for storing information. One latch or flip-flop can store one bit of information. The
PetaLinux SDK User Guide. Application Development Guide
PetaLinux SDK User Guide Application Development Guide Notice of Disclaimer The information disclosed to you hereunder (the "Materials") is provided solely for the selection and use of Xilinx products.
Modeling Registers and Counters
Lab Workbook Introduction When several flip-flops are grouped together, with a common clock, to hold related information the resulting circuit is called a register. Just like flip-flops, registers may
Sequential Logic Design Principles.Latches and Flip-Flops
Sequential Logic Design Principles.Latches and Flip-Flops Doru Todinca Department of Computers Politehnica University of Timisoara Outline Introduction Bistable Elements Latches and Flip-Flops S-R Latch
CHAPTER 11 LATCHES AND FLIP-FLOPS
CHAPTER 11 LATCHES AND FLIP-FLOPS This chapter in the book includes: Objectives Study Guide 11.1 Introduction 11.2 Set-Reset Latch 11.3 Gated D Latch 11.4 Edge-Triggered D Flip-Flop 11.5 S-R Flip-Flop
Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language
Chapter 4 Register Transfer and Microoperations Section 4.1 Register Transfer Language Digital systems are composed of modules that are constructed from digital components, such as registers, decoders,
Module 3: Floyd, Digital Fundamental
Module 3: Lecturer : Yongsheng Gao Room : Tech - 3.25 Email : [email protected] Structure : 6 lectures 1 Tutorial Assessment: 1 Laboratory (5%) 1 Test (20%) Textbook : Floyd, Digital Fundamental
So far we have investigated combinational logic for which the output of the logic devices/circuits depends only on the present state of the inputs.
equential Logic o far we have investigated combinational logic for which the output of the logic devices/circuits depends only on the present state of the inputs. In sequential logic the output of the
Prototyping ARM Cortex -A Processors using FPGA platforms
Prototyping ARM Cortex -A Processors using FPGA platforms Brian Sibilsky and Fredrik Brosser April 2016 Page 1 of 17 Contents Introduction... 3 Gating... 4 RAM Implementation... 7 esign Partitioning...
Latches, the D Flip-Flop & Counter Design. ECE 152A Winter 2012
Latches, the D Flip-Flop & Counter Design ECE 52A Winter 22 Reading Assignment Brown and Vranesic 7 Flip-Flops, Registers, Counters and a Simple Processor 7. Basic Latch 7.2 Gated SR Latch 7.2. Gated SR
Spartan-6 FPGA Block RAM Resources
Spartan-6 FPGA Block RAM Resources User Guide Xilinx is disclosing this user guide, manual, release note, and/or specification (the "Documentation") to you solely for use in the development of designs
Sequential Logic: Clocks, Registers, etc.
ENEE 245: igital Circuits & Systems Lab Lab 2 : Clocks, Registers, etc. ENEE 245: igital Circuits and Systems Laboratory Lab 2 Objectives The objectives of this laboratory are the following: To design
Sequential Logic. (Materials taken from: Principles of Computer Hardware by Alan Clements )
Sequential Logic (Materials taken from: Principles of Computer Hardware by Alan Clements ) Sequential vs. Combinational Circuits Combinatorial circuits: their outputs are computed entirely from their present
Contents COUNTER. Unit III- Counters
COUNTER Contents COUNTER...1 Frequency Division...2 Divide-by-2 Counter... 3 Toggle Flip-Flop...3 Frequency Division using Toggle Flip-flops...5 Truth Table for a 3-bit Asynchronous Up Counter...6 Modulo
Take-Home Exercise. z y x. Erik Jonsson School of Engineering and Computer Science. The University of Texas at Dallas
Take-Home Exercise Assume you want the counter below to count mod-6 backward. That is, it would count 0-5-4-3-2-1-0, etc. Assume it is reset on startup, and design the wiring to make the counter count
Reading User Data from Configuration PROMs
Application Note: XC18V00, and Platform Flash POMs; Spartan-II, Spartan-3, Virtex, and Virtex-II FPGA Families XAPP694 (v1.1.1) November 19, 2007 eading User Data from Configuration POMs Summary This application
Counters are sequential circuits which "count" through a specific state sequence.
Counters Counters are sequential circuits which "count" through a specific state sequence. They can count up, count down, or count through other fixed sequences. Two distinct types are in common usage:
LogiCORE IP Block Memory Generator v7.3
LogiCORE IP Block Memory Generator v7.3 Product Guide Table of Contents SECTION I: SUMMARY IP Facts Chapter 1: Overview Feature Summary..................................................................
Let s put together a Manual Processor
Lecture 14 Let s put together a Manual Processor Hardware Lecture 14 Slide 1 The processor Inside every computer there is at least one processor which can take an instruction, some operands and produce
CSE140: Components and Design Techniques for Digital Systems
CE4: Components and esign Techniques for igital ystems Tajana imunic osing ources: Where we are now What we ve covered so far (Chap -5, App. A& B) Number representations Boolean algebra OP and PO Logic
Lesson 12 Sequential Circuits: Flip-Flops
Lesson 12 Sequential Circuits: Flip-Flops 1. Overview of a Synchronous Sequential Circuit We saw from last lesson that the level sensitive latches could cause instability in a sequential system. This instability
Lecture 10 Sequential Circuit Design Zhuo Feng. Z. Feng MTU EE4800 CMOS Digital IC Design & Analysis 2010
EE4800 CMOS igital IC esign & Analysis Lecture 10 Sequential Circuit esign Zhuo Feng 10.1 Z. Feng MTU EE4800 CMOS igital IC esign & Analysis 2010 Sequencing Outline Sequencing Element esign Max and Min-elay
150127-Microprocessor & Assembly Language
Chapter 3 Z80 Microprocessor Architecture The Z 80 is one of the most talented 8 bit microprocessors, and many microprocessor-based systems are designed around the Z80. The Z80 microprocessor needs an
7 Series FPGA Overview
7 Series FPGA Overview 7 Series FPGA Families Maximum Capability Lowest Power and Cost Industry s Best Price/Performance Industry s Highest System Performance Logic Cells Block RAM DSP Slices Peak DSP
Lab 1: Introduction to Xilinx ISE Tutorial
Lab 1: Introduction to Xilinx ISE Tutorial This tutorial will introduce the reader to the Xilinx ISE software. Stepby-step instructions will be given to guide the reader through generating a project, creating
Having read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop.
Objectives Having read this workbook you should be able to: recognise the arrangement of NAND gates used to form an S-R flip-flop. describe how such a flip-flop can be SET and RESET. describe the disadvantage
Theory of Logic Circuits. Laboratory manual. Exercise 3
Zakład Mikroinformatyki i Teorii Automatów yfrowych Theory of Logic ircuits Laboratory manual Exercise 3 Bistable devices 2008 Krzysztof yran, Piotr zekalski (edt.) 1. lassification of bistable devices
DIGITAL COUNTERS. Q B Q A = 00 initially. Q B Q A = 01 after the first clock pulse.
DIGITAL COUNTERS http://www.tutorialspoint.com/computer_logical_organization/digital_counters.htm Copyright tutorialspoint.com Counter is a sequential circuit. A digital circuit which is used for a counting
The components. E3: Digital electronics. Goals:
E3: Digital electronics Goals: Basic understanding of logic circuits. Become familiar with the most common digital components and their use. Equipment: 1 st. LED bridge 1 st. 7-segment display. 2 st. IC
PROGETTO DI SISTEMI ELETTRONICI DIGITALI. Digital Systems Design. Digital Circuits Advanced Topics
PROGETTO DI SISTEMI ELETTRONICI DIGITALI Digital Systems Design Digital Circuits Advanced Topics 1 Sequential circuit and metastability 2 Sequential circuit - FSM A Sequential circuit contains: Storage
Combinational Logic Design Process
Combinational Logic Design Process Create truth table from specification Generate K-maps & obtain logic equations Draw logic diagram (sharing common gates) Simulate circuit for design verification Debug
ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path
ECE410 Design Project Spring 2008 Design and Characterization of a CMOS 8-bit Microprocessor Data Path Project Summary This project involves the schematic and layout design of an 8-bit microprocessor data
Arria 10 Core Fabric and General Purpose I/Os Handbook
Arria 10 Core Fabric and General Purpose I/Os Handbook Subscribe A10-HANDBOOK 101 Innovation Drive San Jose, CA 95134 www.altera.com TOC-2 Logic Array Blocks and Adaptive Logic Modules in Arria 10 Devices
USB - FPGA MODULE (PRELIMINARY)
DLP-HS-FPGA LEAD-FREE USB - FPGA MODULE (PRELIMINARY) APPLICATIONS: - Rapid Prototyping - Educational Tool - Industrial / Process Control - Data Acquisition / Processing - Embedded Processor FEATURES:
DDS. 16-bit Direct Digital Synthesizer / Periodic waveform generator Rev. 1.4. Key Design Features. Block Diagram. Generic Parameters.
Key Design Features Block Diagram Synthesizable, technology independent VHDL IP Core 16-bit signed output samples 32-bit phase accumulator (tuning word) 32-bit phase shift feature Phase resolution of 2π/2
Sequential Circuits. Combinational Circuits Outputs depend on the current inputs
Principles of VLSI esign Sequential Circuits Sequential Circuits Combinational Circuits Outputs depend on the current inputs Sequential Circuits Outputs depend on current and previous inputs Requires separating
Gates, Circuits, and Boolean Algebra
Gates, Circuits, and Boolean Algebra Computers and Electricity A gate is a device that performs a basic operation on electrical signals Gates are combined into circuits to perform more complicated tasks
CS311 Lecture: Sequential Circuits
CS311 Lecture: Sequential Circuits Last revised 8/15/2007 Objectives: 1. To introduce asynchronous and synchronous flip-flops (latches and pulsetriggered, plus asynchronous preset/clear) 2. To introduce
Chapter 7. Registers & Register Transfers. J.J. Shann. J. J. Shann
Chapter 7 Registers & Register Transfers J. J. Shann J.J. Shann Chapter Overview 7- Registers and Load Enable 7-2 Register Transfers 7-3 Register Transfer Operations 7-4 A Note for VHDL and Verilog Users
DEPARTMENT OF INFORMATION TECHNLOGY
DRONACHARYA GROUP OF INSTITUTIONS, GREATER NOIDA Affiliated to Mahamaya Technical University, Noida Approved by AICTE DEPARTMENT OF INFORMATION TECHNLOGY Lab Manual for Computer Organization Lab ECS-453
Technical Note. Micron NAND Flash Controller via Xilinx Spartan -3 FPGA. Overview. TN-29-06: NAND Flash Controller on Spartan-3 Overview
Technical Note TN-29-06: NAND Flash Controller on Spartan-3 Overview Micron NAND Flash Controller via Xilinx Spartan -3 FPGA Overview As mobile product capabilities continue to expand, so does the demand
Computer organization
Computer organization Computer design an application of digital logic design procedures Computer = processing unit + memory system Processing unit = control + datapath Control = finite state machine inputs
Set-Reset (SR) Latch
et-eset () Latch Asynchronous Level sensitive cross-coupled Nor gates active high inputs (only one can be active) + + Function 0 0 0 1 0 1 eset 1 0 1 0 et 1 1 0-? 0-? Indeterminate cross-coupled Nand gates
RAM & ROM Based Digital Design. ECE 152A Winter 2012
RAM & ROM Based Digital Design ECE 152A Winter 212 Reading Assignment Brown and Vranesic 1 Digital System Design 1.1 Building Block Circuits 1.1.3 Static Random Access Memory (SRAM) 1.1.4 SRAM Blocks in
Experiment # 9. Clock generator circuits & Counters. Eng. Waleed Y. Mousa
Experiment # 9 Clock generator circuits & Counters Eng. Waleed Y. Mousa 1. Objectives: 1. Understanding the principles and construction of Clock generator. 2. To be familiar with clock pulse generation
AES (Rijndael) IP-Cores
AES (Rijndael) IP-Cores Encryption/Decryption and Key Expansion Page 1 Revision History Date Version Description 24 February 2006 1.0 Initial draft. 15 March 2006 1.1 Block diagrams added. 26 March 2006
Using Altera MAX Series as Microcontroller I/O Expanders
2014.09.22 Using Altera MAX Series as Microcontroller I/O Expanders AN-265 Subscribe Many microcontroller and microprocessor chips limit the available I/O ports and pins to conserve pin counts and reduce
A New Paradigm for Synchronous State Machine Design in Verilog
A New Paradigm for Synchronous State Machine Design in Verilog Randy Nuss Copyright 1999 Idea Consulting Introduction Synchronous State Machines are one of the most common building blocks in modern digital
Clock and Data Recovery Unit based on Deserialized Oversampled Data
XAPP1240 (v2.0) September 24, 2015 Application Note: Xilinx 7 series devices and UltraScale devices Clock and Data Recovery Unit based on Deserialized Oversampled Data Authors: Paolo Novellini, Antonello
Programming Audio Applications in the i.mx21 MC9328MX21
Freescale Semiconductor Application Note Document Number: AN2628 Rev. 1, 10/2005 Programming Audio Applications in the MC9328MX21 by: Alfred Sin 1 Abstract The MC9328MX21 () processor has two dedicated
RETRIEVING DATA FROM THE DDC112
RETRIEVING DATA FROM THE by Jim Todsen This application bulletin explains how to retrieve data from the. It elaborates on the discussion given in the data sheet and provides additional information to allow
Lecture 11: Sequential Circuit Design
Lecture 11: Sequential Circuit esign Outline Sequencing Sequencing Element esign Max and Min-elay Clock Skew Time Borrowing Two-Phase Clocking 2 Sequencing Combinational logic output depends on current
System Performance Analysis of an All Programmable SoC
XAPP1219 (v1.1) November 5, 2015 Application Note: Zynq-7000 AP SoC System Performance Analysis of an All Programmable SoC Author: Forrest Pickett Summary This application note educates users on the evaluation,
NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell.
CHAPTER 4 THE ADDER The adder is one of the most critical components of a processor, as it is used in the Arithmetic Logic Unit (ALU), in the floating-point unit and for address generation in case of cache
Xilinx Design Tools: Installation and Licensing Guide. UG798 (v14.1) May 8, 2012
Xilinx Design Tools: Installation and Licensing Guide Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and use of Xilinx products. To
6-BIT UNIVERSAL UP/DOWN COUNTER
6-BIT UNIVERSAL UP/DOWN COUNTER FEATURES DESCRIPTION 550MHz count frequency Extended 100E VEE range of 4.2V to 5.5V Look-ahead-carry input and output Fully synchronous up and down counting Asynchronous
UDK3 Performance Monitor
UDK3 Performance Monitor The Cesys UDK3 Performance Monitor is a tool to measure data transfer speeds between a host PC and UDK3 compatible devices. It can also test data integrity by performing write-readbackcompare
Digital Fundamentals
igital Fundamentals with PL Programming Floyd Chapter 9 Floyd, igital Fundamentals, 10 th ed, Upper Saddle River, NJ 07458. All Rights Reserved Summary Latches (biestables) A latch is a temporary storage
Vivado Design Suite Tutorial
Vivado Design Suite Tutorial High-Level Synthesis UG871 (v2012.2) August 20, 2012 Notice of Disclaimer The information disclosed to you hereunder (the Materials ) is provided solely for the selection and
3.Basic Gate Combinations
3.Basic Gate Combinations 3.1 TTL NAND Gate In logic circuits transistors play the role of switches. For those in the TTL gate the conducting state (on) occurs when the baseemmiter signal is high, and
Chapter 2 Logic Gates and Introduction to Computer Architecture
Chapter 2 Logic Gates and Introduction to Computer Architecture 2.1 Introduction The basic components of an Integrated Circuit (IC) is logic gates which made of transistors, in digital system there are
Lecture 10: Sequential Circuits
Introduction to CMOS VLSI esign Lecture 10: Sequential Circuits avid Harris Harvey Mudd College Spring 2004 Outline q Sequencing q Sequencing Element esign q Max and Min-elay q Clock Skew q Time Borrowing
Manchester Encoder-Decoder for Xilinx CPLDs
Application Note: CoolRunner CPLDs R XAPP339 (v.3) October, 22 Manchester Encoder-Decoder for Xilinx CPLDs Summary This application note provides a functional description of VHDL and Verilog source code
NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter
NTE2053 Integrated Circuit 8 Bit MPU Compatible A/D Converter Description: The NTE2053 is a CMOS 8 bit successive approximation Analog to Digital converter in a 20 Lead DIP type package which uses a differential
CHAPTER IX REGISTER BLOCKS COUNTERS, SHIFT, AND ROTATE REGISTERS
CHAPTER IX-1 CHAPTER IX CHAPTER IX COUNTERS, SHIFT, AN ROTATE REGISTERS REA PAGES 249-275 FROM MANO AN KIME CHAPTER IX-2 INTROUCTION -INTROUCTION Like combinational building blocks, we can also develop
Counters & Shift Registers Chapter 8 of R.P Jain
Chapter 3 Counters & Shift Registers Chapter 8 of R.P Jain Counters & Shift Registers Counters, Syllabus Design of Modulo-N ripple counter, Up-Down counter, design of synchronous counters with and without
Logic Reference Guide
Logic eference Guide Advanced Micro evices INTOUCTION Throughout this data book and design guide we have assumed that you have a good working knowledge of logic. Unfortunately, there always comes a time
Open Flow Controller and Switch Datasheet
Open Flow Controller and Switch Datasheet California State University Chico Alan Braithwaite Spring 2013 Block Diagram Figure 1. High Level Block Diagram The project will consist of a network development
Chapter 5 :: Memory and Logic Arrays
Chapter 5 :: Memory and Logic Arrays Digital Design and Computer Architecture David Money Harris and Sarah L. Harris Copyright 2007 Elsevier 5- ROM Storage Copyright 2007 Elsevier 5- ROM Logic Data
Hardware Implementations of RSA Using Fast Montgomery Multiplications. ECE 645 Prof. Gaj Mike Koontz and Ryon Sumner
Hardware Implementations of RSA Using Fast Montgomery Multiplications ECE 645 Prof. Gaj Mike Koontz and Ryon Sumner Overview Introduction Functional Specifications Implemented Design and Optimizations
SEQUENTIAL CIRCUITS. Block diagram. Flip Flop. S-R Flip Flop. Block Diagram. Circuit Diagram
SEQUENTIAL CIRCUITS http://www.tutorialspoint.com/computer_logical_organization/sequential_circuits.htm Copyright tutorialspoint.com The combinational circuit does not use any memory. Hence the previous
Design Verification & Testing Design for Testability and Scan
Overview esign for testability (FT) makes it possible to: Assure the detection of all faults in a circuit Reduce the cost and time associated with test development Reduce the execution time of performing
