Programmable Logic Devices: Workshop On
Programmable Logic Devices: Workshop On
Programmable Logic Devices: Workshop On
PROGRAMMABLE
LOGIC DEVICES
Why VLSI?
VLSI Applications
VLSI is an implementation technology for electronic circuitry analog or digital
It is concerned with forming a pattern of interconnected switches and gates on the surface of a crystal of semiconductor
Microprocessors personal computers microcontrollers Memory - DRAM / SRAM Special Purpose Processors - ASICS (CD players, DSP applications) Has made highly sophisticated control systems mass-producable and therefore cheap
Moores Law
In 1965, Gordon Moore predicted that the number of transistors that can be integrated on a die would double every 18 to 14 months i.e., grow exponentially with time Amazing visionary million transistor/chip barrier was crossed in the 1980s. 2300 transistors, 1 MHz clock (Intel 4004) - 1971 42 Million, 2 GHz clock (Intel P4) - 2001 140 Million transistor (HP PA-8500)
IC technology
Full-custom/VLSI Semi-custom ASIC (gate array and standard cell) PLD (Programmable Logic Device)
Full-custom/VLSI
All layers are optimized for an embedded systems particular digital implementation
Placing transistors Sizing transistors Routing wires
Benefits
Excellent performance, small size, low power High NRE cost (e.g., $300k), long time-to-market
Drawbacks
Semi-custom
Lower layers are fully or partially built Benefits
Designers are left with routing of wires and maybe placing some blocks Good performance, good size, less NRE cost than a full-custom implementation (perhaps $10k to $100k) Still require weeks to months to develop
Drawbacks
DEFINITION
Devices in which logic function is programmed by the user and in some cases can be reprogrammed many times, are called as Programmable logic devices.
ADVANTAGES
1. More logic in smaller area.
4. In system programmability.
DISADVANTAGES
Programmable interconnects consumes most of the die area, more than an ASIC for the same functionality
Operating speed is less than ASIC, for the same functionality due to added interconnect delays in the path
Types of PLDs
1. Simple Programmable Logic Devices SPLDs
ROM
Input products are hard-wired and include all possible minterms. Output summation circuitry is programmable.
ROMs are based on this decoder implementation of functions. A blank ROM just provides a decoder and several OR gates. The connections between the decoder and the OR gates are programmable, so different functions can be implemented. To program a ROM, you just make the desired connections between the decoder outputs and the OR gate inputs.
PLA: Programmable Logic Array The first kind of programmable logic device (named Programmable Logic Array) was introduced in early 70's. PLAs were one-time programmable chips containing AND and OR gates and able to implement a simple logic function represented as a disjunctive normal form.
Contains AND and OR array. AND array infers product terms for input variables. OR array makes ORing of product terms to form output functions.
PLA
Programmable AND Plane Programmable OR Plane
X X Y Y
PAL
Programmable AND Plane Fix OR Plane
O1
O2
O3
O4
PLD Summary
The OR gates
GAL16V8
Each output is programmable as combinational or registered Also has programmable output polarity
And Plane
PLDs
can have 16 inputs (max) and/or 8 outputs (marcrocells) has 32 inputs to each of the AND gates (product terms)
22V10 (24 pins) can have 22 inputs and/or 10 outputs (max) has 44 inputs to each of the AND gates
CPLD
A CPLD comprises multiple PAL-like blocks on a single chip with programmable interconnect to connect the blocks. CPLD Architecture
I/O block I/O block I/O block PAL-like block PAL-like block
PAL-like block
PAL-like block
Manufacturer
Altera
Altmel Cypress Lattice Philips Vantis Xilinx
CPLD Products
URL
MAX 5000, 7000 & 9000 www.altera.com ATF & ATV www.atmel.com FLASH370, Ultra37000 www.cypress.com ispLSI 1000 to 8000 www.latticesemi.com XPLA www.philips.com MACH 1 to 5 www.vantis.com XC9500 www.xilinx.com
Modern CPLD
This is equivalent to13 22v10,s in single chip 128 FlipFlops or Logic Elements Electricaly Reprogrammable Can be programmed in number of different Languages
The internal PLDs are called Configurable Functional Blocks (FBs or CFBs) Each FB has 36 inputs and 18 Macrocells (effectively a 36V18) Each CLPD is packaged in a plastic-leaded chip carrier (PLCC) The number of I/O pins are much less than the total number of Macrocells in family of devices
Xinlinx CPLDs
36 Signal pins
18 outputs
Architecture of Xilinx FB
Most CLPDs have fewer AND terms per macrocell XC9500 has 5 whereas 16V8 has 8 and 22V10 has 8-16 Buteach macrocell can use unused ANDs from its neighboring macrocells using the product-term-allocators
ISP
Could be anything from a limited set of multiplexers to a full crossbar. Multiplexer -- small, fast, but difficult fitting Crossbar -- easy fitting but large and slow
1
Slide Switches
Reset Switch
8 LED outputs
On Board Regulators
AC Power 9V Adaptor
Pin Layout
Anti-Fuse Structure
Design Flow
Schematic Entry
Schematic Design Entry is used when a visual design process is desired (similar to Electronics WorkBench / Multisim). Examples of visual design components:
Logic Gates Latches and Flip-Flops
Takes much longer to design more complex circuits that may require extensive design time (especially Booleanbased circuits such as decoders). More complex circuits means difficulty routing wires and troubleshooting. Limited logic operations to the device models available. Files created are proprietary, so will only work with that manufacturers software and devices.
Verilog HDL
Structural Model
Levels of Abstraction
In this style of modeling the flow of data through the entity is expressed using concurrent signal assignment statements.
Standard Libraries
Include library ieee; before entity declaration.
ieee.std_logic_1164 defines a standard for designers to use in describing interconnection data types used in VHDL modeling.
ieee.std_logic_arith provides a set of arithmetic, conversion, comparison functions for signed, unsigned, std_ulogic, std_logic, std_logic_vector. Ieee.std_logic_unsigned provides a set of unsigned arithmetic, conversion, and comparison functions for std_logic_vector. See all available packages at
http://www.cs.umbc.edu/portal/help/VHDL/stdpkg.html
Entity Declaration
An entity declaration describes the interface of the component. Avoid using Alteras primitive names which can be found at
c:/altera/91/quartus/common/help/webhelp/master.htm#
PORT clause indicates input and output ports. An entity can be thought of as a symbol for a component.
Port Declaration
PORT declaration establishes the interface of the object to the outside world. Three parts of the PORT declaration
Name
Mode
Any identifier that is not a reserved word. In, Out, Inout, Buffer Any declared or predefined datatype.
Data type
Architecture Declaration
Architecture declarations describe the operation of the component.
Many architectures may exist for one entity, but only one may be active at a time.
An architecture is similar to a schematic of the component.
Synthesis
Check for syntax and logic errors
syntax: grammar of the language logic: how your Model responds to stimuli
entity declaration architecture body put each design unit in a separate file -- helps a lot.
Simulation
Discrete event simulation
Simulating a Design
Simulate a design:
Select Sources for: Behavioral Simulation Expand Xilinx ISE Simulator in the Processes for Source window Double-click Simulate Behavioral Model or Simulate Post-Place & Route Model
You can also simulate after Translate or after Map
What is Implementation?
More than just Place & Route Implementation includes many phases
o Translate: Merge multiple design files into a single netlist
o Map: Group logical symbols from the netlist (gates) into physical components (slices and IOBs) o Place & Route: Place components onto the chip, connect the components, and extract timing data into reports
Each phase generates files that allow you to use other Xilinx tools
o Floorplanner, FPGA Editor, XPower
Download
Once a design is implemented, you must create a file that the FPGA can understand
o This file is called a bitstream: a BIT file (.bit extension)
The BIT file can be downloaded directly into the FPGA, or the BIT file can be converted into a PROM file, which stores the programming information
In System Programmability
BIBLIOGRAPHY
www.xilinx.com www.wikipedia.com www.altera.com www.google.com
Books referred
Principles of VLSI Design, Kamran, Eshargian Pearson Education. Fundamentals of Digital Design, Brown Vranesic TM-Hill Publication.