Fpga
Fpga
Programmable logic
Mask programmable gate arrays and standard cell designs are programmable
the user programs the connection patterns High NRE, not reprogrammable, highvolume applications
Programmable logic usually refers to devices with less NRE and more flexible programming techniques
PROM Complex Programmable Logic Devices (CPLDs) and Field Programmable Logic Devices (FPGAs)
Standard Logic
Simple PLDs
CPLDs FPGAs
Increasing NRE Cost and Development Time Increasing density, speed and complexity
Simple PLDs
Devices that can be programmed to implement a wide variety of combinational circuits Typically two layers: an AND plane and an OR plane
Can implement sum of products functions
Simple PLDs
Programmable ROM
Programmable OR plane selects from all possible minterms Decoder maps input pattern to appropriate minterm Sum of minterms realisation
PLA Devices
Programmable logic array device has both a programmable AND plane and a programmable OR plane Flexible, efficient implementation of sum of products combinatorial circuits
PAL Devices
Programmable array logic (PAL) has programmable AND terms and fixed OR plane Simpler, better performance than PLA
PLDs have limited interconnect programmability Typically require a special-purpose programmer to program fusible connections Field-programmable PLDs incorporate EEPROM style transistors to form/ program connections in system Limited size and complexity
Some PAL devices have additional circuitry in addition to or OR gate for each output (a macrocell)
can register the outputs feed outputs back as inputs
CPLDs
A large scale device consisting of arrays of simple PLD macrocells.
Sum of products Registers to store cell output Clock and control logic Local connections to neighbouring blocks
Atmel ATF1500
Main blocks
Logic Array Blocks (LAB)
36 inputs, 16 output, 16 macrocells with flip-flop and combinational logic
I/O blocks
Connection/config of pins with PIA and LABs
Altera MAX7000
Stratix II
FPGAs
More complex, register rich Flexible but complicated interconnections Performance more dependent on routing
FPGAs
FPGAs are modeled after Mask Programmable Gate Arrays (MPGAs) Look-up table based logic elements Design to silicon in minutes (or less) Dominant technology is SRAM based programming
volatile! EEPROM and anti-fuse technologies also exist
Architecture
Array of programmable logic elements implementing simple sequential and combinational functions Fixed but programmable interconnection channels to route signals Configurable I/O pin interfaces
RAM based FPGAs programmed by downloading configuration into CMOS RAM Downloaded from host or from associated PROM Highly reconfigurable but startup time to reconfigure
Short programming time facilitates rapidprototyping
Tradeoff between complexity of logic elements and routing resources and wasted cell array/logic elements
FPGA/CPLD resources
Large designs can be limited by various resources
Gates (Marketted as equivalent useable gates) Interconnects I/O Pins Memory
Design Flow
Large chips have too many gates for schematic capture Hardware description language (HDL) based approaches dominate Verilog and VHDL most widely supported and used Designs are automatically synthesised from high-level HDL descriptions
IP Cores
Many vendors provide library and macros or predesigned cores for common operations (multiplexors, ALUs, multipliers ) More specialised IP available: network controllers, serial interfaces High end FPGA have significant power and can include capable processors (e.g. NIOS)