Programmable Logic- How do they do that? Class 1: An Introduction to Programmable Logic 1/12/2015 Warren Miller
This Week’s Agenda 1/12/15 An Introduction to Programmable Logic 1/13/15 Switches and Logic 1/14/15 Specialized Functions 1/15/15 Adding Processors 1/16/15 Software Tools
Course Description Often we don't think about the details of how a particular device or technology are implemented- we just use them in our designs. However sometimes you can’t help but wonder- “What did they do that?” This course will dig into the details of how programmable logic devices and the associated tools are implemented so you can better understand some of the ‘How’ behind common trade-offs you are faced with in your designs. Programmable logic starts first with the technology used to implement the configurable logic that makes up a programmable logic device. This class will review the primary technology use to implement the configurable elements common to all programmable logic devices.
Today’s Topics Goals and Objectives A Review of Common Programmable Logic Elements and Technologies Configurable Fabric (Logic, Interconnect and I/O) SRAM, Flash, Anti-fuse A Short History of Programmable Devices Gate Arrays, PLAs, FPLAs, PALs, FPGAs, etc Implementation Technology Fuse, Anti-Fuse, Flash, SRAM Software Tools Place and Route, Synthesis, Simulation and Debug Programmable logic starts first with the technology used to implement the configurable logic that makes up a programmable logic device. This class will review the primary technology use to implement the configurable elements common to all programmable logic devices.
Goals and Objectives Understand, at the overview level, key concepts we will use in the rest of the class Programmable Logic Devices Technology and Architecture History and Evolution of Common Elements Software Key Development Steps Why These Steps?
Before Programmable Logic Gate Array: Fixed Gates Interconnect Matrix Very High Capacity Low Cost Changes require new mask Programmable Logic Array (PLA): Array of AND and OR gates Interconnect using ‘vias’ Low Cost High Capacity Changes require new mask
Programmable Logic Begins PROMs: Programmable Read Only Memory Full Address Decode Programmable OR Implements ANY Function of Inputs High Cost Software Easy Costly to Extend Registered PROMs: Added an Output Register Used for Microcode Storage in Bit-Sliced processors Could also be used for implementing state machines! Register
FPLAs FPLAs: Field Programmable Logic Array Full Interconnect One Time Programmable Low Capacity Low Cost Software Easy Architecture Difficult to Extend
PALs PLDs: Programmable Array Full Interconnect One Time Programmable Low Capacity Low Cost Software Easy Architecture Difficult to Extend
And Evolves CPLDs: CMOS Technology Blocks of PLA/PAL Programmable Interconnect Low Capacity Low Cost Software More Difficult Architecture Extendable Note: Logic Tied to I/Os
FPGAs FPGAs: Look-up Tables for Logic Switched Interconnect High Capacity High Cost Software Very Difficult Architecture Very Extendable Easy to add Fixed Blocks
Implementation Technology 1 Fuse Anti-Fuse
Implementation Technology 2 SRAM Flash
Programmable Logic Software Begins Define Hardware Determine Connections Program the Device Debug
Programmable Logic Software Now Define Hardware Hardware Description Language Determine Connections Synthesis Place and Route Simulation Test out the design Test bench Program the Device Generate configuration file Program configuration device Debug On-chip debug facility
Conclusion Technology Implementation History Software
Additional Resources Max Maxfield: Bebop to the Boolean Boogie http://www.amazon.com/Bebop-Boolean-Boogie-Third-Unconventional/dp/1856175073 What is Programmable Logic? http://www.xilinx.com/company/about/programmable.html Programmable Logic Wikibook (Work in progress- want to help?) http://en.wikibooks.org/wiki/Programmable_Logic Altera, Lattice, Microsemi, Xilinx web sites for data sheets, users manuals and software downloads
This Week’s Agenda 1/12/15 An Introduction to Programmable Logic 1/13/15 Switches and Logic 1/14/15 Specialized Functions 1/15/15 Adding Processors 1/16/15 Software Tools