Field Programmable Gate Arrays (FPGAs)

Similar documents
March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

RELATED WORK Integrated circuits and programmable devices

Why FPGAs? FPGA Overview. Why FPGAs?

L11/12: Reconfigurable Logic Architectures

L12: Reconfigurable Logic Architectures

CSE140L: Components and Design Techniques for Digital Systems Lab. CPU design and PLDs. Tajana Simunic Rosing. Source: Vahid, Katz

FPGA Design. Part I - Hardware Components. Thomas Lenzi

Chapter 7 Memory and Programmable Logic

FPGA and CPLD Architectures: A Tutorial

Integrated circuits/5 ASIC circuits

Examples of FPLD Families: Actel ACT, Xilinx LCA, Altera MAX 5000 & 7000

Reconfigurable Architectures. Greg Stitt ECE Department University of Florida

DIGITAL CIRCUIT LOGIC UNIT 9: MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

High Performance Carry Chains for FPGAs

Objectives. Combinational logics Sequential logics Finite state machine Arithmetic circuits Datapath

Introduction Actel Logic Modules Xilinx LCA Altera FLEX, Altera MAX Power Dissipation

CDA 4253 FPGA System Design FPGA Architectures. Hao Zheng Dept of Comp Sci & Eng U of South Florida

FPGA Design with VHDL

9 Programmable Logic Devices

CSE140L: Components and Design Techniques for Digital Systems Lab. FSMs. Tajana Simunic Rosing. Source: Vahid, Katz

EN2911X: Reconfigurable Computing Topic 01: Programmable Logic. Prof. Sherief Reda School of Engineering, Brown University Fall 2014

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

Combinational vs Sequential

Digital Systems Design

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

Investigation of Look-Up Table Based FPGAs Using Various IDCT Architectures

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

Lecture 2: Basic FPGA Fabric. James C. Hoe Department of ECE Carnegie Mellon University

A Fast Constant Coefficient Multiplier for the XC6200

A Generic Platform for the Evolution of Hardware

CS150 Fall 2012 Solutions to Homework 4

Chapter Contents. Appendix A: Digital Logic. Some Definitions

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

EE 459/500 HDL Based Digital Design with Programmable Logic. Lecture 9 Field Programmable Gate Arrays (FPGAs)

Designing for High Speed-Performance in CPLDs and FPGAs

COE328 Course Outline. Fall 2007

Lab #12: 4-Bit Arithmetic Logic Unit (ALU)

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

FPGA Implementation of DA Algritm for Fir Filter

An Application Specific Reconfigurable Architecture Diagnosis Fault in the LUT of Cluster Based FPGA

Microprocessor Design

Electrical and Telecommunications Engineering Technology_TCET3122/TC520. NEW YORK CITY COLLEGE OF TECHNOLOGY The City University of New York

12-bit Wallace Tree Multiplier CMPEN 411 Final Report Matthew Poremba 5/1/2009

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 3 Logistics

An Application Specific Reconfigurable Architecture Diagnosis Fault in the LUT of Cluster Based FPGA

CHAPTER 4 RESULTS & DISCUSSION

A Tour of PLDs. PLD ARCHITECTURES. [Prof.Ben-Avi]

Lecture 10: Programmable Logic

S.K.P. Engineering College, Tiruvannamalai UNIT I

Computer Systems Architecture

Prototyping an ASIC with FPGAs. By Rafey Mahmud, FAE at Synplicity.

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

TYPICAL QUESTIONS & ANSWERS

Modeling Latches and Flip-flops

Design and Implementation of FPGA Configuration Logic Block Using Asynchronous Static NCL

PROGRAMMABLE ASIC LOGIC CELLS

Programmable Logic Design I


Optimizing area of local routing network by reconfiguring look up tables (LUTs)

Towards Trusted Devices in FPGA by Modeling Radiation Induced Errors

Solution to Digital Logic )What is the magnitude comparator? Design a logic circuit for 4 bit magnitude comparator and explain it,

PHYSICS 5620 LAB 9 Basic Digital Circuits and Flip-Flops

BIST-Based Diagnostics of FPGA Logic Blocks

XC4000E and XC4000X Series. Field Programmable Gate Arrays. Low-Voltage Versions Available. XC4000E and XC4000X Series. Features

MUHAMMAD NAEEM LATIF MCS 3 RD SEMESTER KHANEWAL

Principles of Computer Architecture. Appendix A: Digital Logic

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

A S. x sa1 Z 1/0 1/0

Modeling Latches and Flip-flops

FPGA Hardware Resource Specific Optimal Design for FIR Filters

FPGAs for bits & giggles

VU Mobile Powered by S NO Group

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

Outline Synchronous Systems Introduction Field Programmable Gate Arrays (FPGAs) Introduction Review of combinational logic

When the OR-array is pre-programed (fixed) and the AND-array. is programmable, you have what is known as a PAL/GAL. These are very low

Implementation of Low Power and Area Efficient Carry Select Adder

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

VLSI IEEE Projects Titles LeMeniz Infotech

A clock is a free-running signal with a cycle time. A clock may be either high or low, and alternates between the two states.

Synchronous Digital Logic Systems. Review of Digital Logic. Philosophy. Combinational Logic. A Full Adder. Combinational Logic

Chapter 3. Boolean Algebra and Digital Logic

Level and edge-sensitive behaviour

Computer Architecture and Organization

EECS150 - Digital Design Lecture 2 - CMOS

2. Logic Elements and Logic Array Blocks in the Cyclone III Device Family

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98

Fault Location in FPGA-Based Reconfigurable Systems

Step 1 - shaft decoder to generate clockwise/anticlockwise signals

Lucent ORCA OR2C15A-2S208 FPGA Circuit Analysis

Where Are We Now? e.g., ADD $S0 $S1 $S2?? Computed by digital circuit. CSCI 402: Computer Architectures. Some basics of Logic Design (Appendix B)

WINTER 15 EXAMINATION Model Answer

EEM Digital Systems II

University of Maiduguri Faculty of Engineering Seminar Series Volume 6, december 2015

FIELD programmable gate arrays (FPGA s) are widely

Overview: Logic BIST

Bit Swapping LFSR and its Application to Fault Detection and Diagnosis Using FPGA

In-System Testing of Configurable Logic Blocks in Xilinx 7-Series FPGAs

Transcription:

Field Programmable Gate Arrays (FPGAs) Introduction Simulations and prototyping have been a very important part of the electronics industry since a very long time now. Before heading in for the actual fabrication of a dedicated hardware, everyone would want to be sure that what they are making will work the way they want it to. Over all these years while electronics companies offered dedicated hardware in their products, it was not possible for the end user to reconfigure them to his own needs. This need led to the growth of a new market segment of customer configurable Field Programmable integrated circuits called Field Programmable Gate Arrays or FPGAs. History The FPGA share a common history with most Programmable Logic Devices. The first of this kind of devices was the Programmable Read Only Memory. Further driven by need of specifically implementing logic circuits, Philips invented the Field-Programmable Logic Array (FPLA) in the 1970s. This consisted of two planes, a programmable wired AND-plane and the other as wired OR. It could implement functions in the Sum of Products form. To overcome difficulties of cost and speed, Programmable Array Logics were developed which had only one programmable AND plane fed into fixed OR gates. PALs and PLAs along with other variants are grouped as Simple Programmable Logic Devices (SPLDs). In order to cater to growing technological demands, SPLDs were integrated onto a single chip and interconnects were provided to programmably connect the SPLD blocks. These were called Complex PLDs and were first pioneered by Altera, the first in the family being Classic EPLDs and then, MAX series. Then another class of Electronic devices, Mask-Programmable Gate Arrays consisting of transistor arrays which could be connected using custom wires motivated the design of the FPGAs. Transistors gave way to Logic Blocks and the customization could now be performed by the user on the field and not in the manufacturing lab. The credit to develop the first commercially viable FPGA goes to Xilinx co-founders Ross Freeman and Bernard Vonderschmitt. The XC2064 was invented in 1985 consisting of 64 Configurable Logic Blocks with 3 Look Up Tables. It was in late 1980s when Steve Casselman s proposed experiment to implement a computer with 6,00,000 reprogrammable gates found sponsors in US Naval Surface Warfare department and later a patent in 1992. By the end of 1990, a lot of competition sprung up in manufacturing FPGAs when Xilinx s market share started to decline. Players like Actel, Altera, Lattice, QuickLogic, Cypress, Lucent and SiliconBlue started entering this field and carving their niche in the world FPGA Market along with Xilinx, as FPGA started gaining acceptance in applications like Digital Signal Processing and Telecommunications. In 1997, Adrian Thompson succeeded in merging a genetic algorithm technology with FPGA and started a new age of Evolvable hardware.

Programming Technologies FPGA s can be considered to be building bricks which allow desired customization of the hardware. These are a special form of PLDs with higher densities and with increased capability of implementing functionality in a shorter time span using CAD. The FPGA s are available in various flavours based on the programming technology used. These may be programmed using: 1. Antifuse Technology, which can be programmed only once. Devices manufactured by QuickLogic are examples of this type. Configuration is done by burning a set of fuses. These act as replacements for Application Specific ICs (ASIC) and used in places where protection of intellectual property is top priority. 2. Flash Technology based Programming, like devices from Actel. The FPGA may be reprogrammed several thousand times, taking a few minutes in the field itself for reprogramming and has non-volatile memory. 3. SRAM Technology based FPGAs, the currently dominating technology offering unlimited reprogramming and very fast reconfiguration and even partial reconfiguration during operation itself with little additional circuitry. Most companies like Altera, Actel, Atmel and Xilinx manufacture such devices.

Defining the Parts of an FPGA Every FPGA chip is made up of a finite number of predefined resources with programmable interconnects to implement a reconfigurable digital circuit and I/O blocks to allow the circuit to access the outside world. The Different Parts of an FPGA FPGA resource specifications often include the number of configurable logic blocks, number of fixed function logic blocks such as multipliers, and size of memory resources like embedded block RAM. Of the many FPGA chip parts, these are typically the most important when selecting and comparing FPGAs for a particular application. The configurable logic blocks (CLBs) are the basic logic unit of an FPGA. Sometimes referred to as slices or logic cells, CLBs are made up of two basic components: flip-flops and lookup tables (LUTs). Various FPGA families differ in the way flip-flops and LUTs are packaged together, so it is important to understand flipflops and LUTs. Flip-Flops Flip-Flop Symbol Flip-flops are binary shift registers used to synchronize logic and save logical states between clock cycles within an FPGA circuit. On every clock edge, a flip-flop latches the 1 or 0 (TRUE or FALSE) value on its input and holds that value constant until the next clock edge.

Lookup Tables (LUTs) Four-Input LUT Much of the logic in a CLB is implemented using very small amounts of RAM in the form of LUTs. It is easy to assume that the number of system gates in an FPGA refers to the number of NAND gates and NOR gates in a particular chip. But, in reality, all combinatorial logic (ANDs, ORs, NANDs, XORs, and so on) is implemented as truth tables within LUT memory. A truth table is a predefined list of outputs for every combination of inputs. Irrespective of the different manufacturers and slightly different architectures and feature sets, most of the FPGA s have a common generic approach. The main component blocks of any FPGA are a flexible programmable Configurable Logic Block (CLB), surrounded by programmable Input/ Output Blocks with a hierarchy of routing channels interconnecting various blocks on the board. Additionally, these may consist of Clock DLLs for clock distribution and control and Dedicated Block RAM memories. Configurable Logic Block The basic building block of a Configurable Logic Block is the logic cell. A logic cell may consist of an input function generator, carry logic and a storage element. The function generators are implemented as Look Up Tables depending on the input. For example, a Xilinx Spartan II has 4 inputs LUT where each LUT can provide a 16X1 bit Synchronous RAM which can be further multiplexed using multiplexers. An LUT may also be used as a Shift register which is used to capture burst-mode data. The storage elements may be

used as edge sensitive flip-flops or level sensitive latches. The arithmetic logic includes an XOR gate for full adder operation along with dedicated carry logic lines. The figure below shows an FPGA slice: Input/Output Block This block features inputs and outputs supporting a wide range of signaling standards and interfaces. A basic Input/ Output block is shown below:

The buffers in the Input and output paths route the input and output signals to the internal logic and the output pads either directly or via a flip-flop. The buffer can be set to conform to various supported signaling standards which might even be user defined and externally set. Routing Matrix In any assembly line it is often the slowest segment which sets the overall production rate. Much in the same way, it is the route that takes the longest delay that eventually determines the performance of the entire electronic system. Thus routing algorithms are brought into place for the design of the most efficient paths to deliver optimum performance. Routing is on various levels like Local, between LUTs, flip-flops and the General Routing Matrix, General Purpose Routing between various CLBs, I/O Routing between I/O Blocks and CLBs, Dedicated Routing for a certain classes of signals for maximizing performance and Global Routing for distributing clocks and other signals with very high fanout. The Spartan 3E starter kit The key featuresof the Spartan-3E starter kit board are: Xilinx XC3S500E Spartan-3E FPGA 1. Up to 232 user I/O pins 2. 320 pin FBGA package 3. Over 10,000 logic cells