Programmable Logic Devices by Abdulqadir Alaqeeli 1/27/98.

Slides:



Advertisements
Similar presentations
PLDs ROM : Programmable OR array
Advertisements

Lecture 15 Finite State Machine Implementation
Programmable Logic Devices
Xilinx CPLDs and FPGAs Module F2-1. CPLDs and FPGAs XC9500 CPLD XC4000 FPGA Spartan FPGA Spartan II FPGA Virtex FPGA.
® Xilinx FPGA Architecture Overview. ® Virtex/Spartan-II Top-level Architecture  Gate-array like architecture  Configurable logic blocks.
Programmable Logic Devices
Spartan II Features  Plentiful logic and memory resources –15K to 200K system gates (up to 5,292 logic cells) –Up to 57 Kb block RAM storage  Flexible.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR SRAM-based FPGA n SRAM-based LE –Registers in logic elements –LUT-based logic element.
PLD Technology Basics. Basic PAL Architecture DQ Q CLK OE Fuse.
Implementing Logic Gates and Circuits Discussion D5.1.
Implementing Logic Gates and Circuits Discussion D5.3 Section 11-2.
The Xilinx CPLD Lecture 4.2. XC9500 CPLDs 5 volt in-system programmable (ISP) CPLDs 5 ns pin-to-pin 36 to 288 macrocells (6400 gates) Industry’s.
Introduction to Computer Engineering by Richard E. Haskell Xilinx CPLDs Lab 2b Module M2.4.
The Spartan 3e FPGA. CS/EE 3710 The Spartan 3e FPGA  What’s inside the chip? How does it implement random logic? What other features can you use?  What.
Evolution of implementation technologies
Programmable logic and FPGA
FPGAs and VHDL Lecture L13.1 Sections 13.1 – 13.3.
Multiplexers, Decoders, and Programmable Logic Devices
ECE 331 – Digital System Design Tristate Buffers, Read-Only Memories and Programmable Logic Devices (Lecture #16) The slides included herein were taken.
CMPUT Computer Organization and Architecture II1 CMPUT329 - Fall 2003 Topic: Internal Organization of an FPGA José Nelson Amaral.
Implementing Digital Circuits Lecture L3.1. Implementing Digital Circuits Transistors and Integrated Circuits Transistor-Transistor Logic (TTL) Programmable.
1. 2 FPGAs Historically, FPGA architectures and companies began around the same time as CPLDs FPGAs are closer to “programmable ASICs” -- large emphasis.
Adv. Digital Circuit Design
Programmable Array Logic (PAL) Fixed OR array programmable AND array Fixed OR array programmable AND array Easy to program Easy to program Poor flexibility.
Xilinx CPLDs and FPGAs Lecture L1.1. CPLDs and FPGAs XC9500 CPLD Spartan II FPGA Virtex FPGA.
1 DIGITAL DESIGN I DR. M. MAROUF FPGAs AUTHOR J. WAKERLY.
EE 261 – Introduction to Logic Circuits Module #8 Page 1 EE 261 – Introduction to Logic Circuits Module #8 – Programmable Logic & Memory Topics A.Programmable.
Lecture 2: Field Programmable Gate Arrays September 13, 2004 ECE 697F Reconfigurable Computing Lecture 2 Field Programmable Gate Arrays.
Memory and Programmable Logic
EE4OI4 Engineering Design Programmable Logic Technology.
Unit 9 Multiplexers, Decoders, and Programmable Logic Devices
EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 4 Programmable.
Section II Basic PLD Architecture. Section II Agenda  Basic PLD Architecture —XC9500 and XC4000 Hardware Architectures —Foundation and Alliance Series.
Electronics in High Energy Physics Introduction to Electronics in HEP Field Programmable Gate Arrays Part 1 based on the lecture of S.Haas.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
PROGRAMMABLE LOGIC DEVICES (PLD)
Memory and Programmable Logic Memory device: Device to which binary information is transferred for storage, and from which information is available for.
J. Christiansen, CERN - EP/MIC
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR FPGA Fabric n Elements of an FPGA fabric –Logic element –Placement –Wiring –I/O.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
Programmable Logic Devices
Sept. 2005EE37E Adv. Digital Electronics Lesson 1 CPLDs and FPGAs: Technology and Design Features.
Field Programmable Gate Arrays (FPGAs) An Enabling Technology.
Basic Sequential Components CT101 – Computing Systems Organization.
BR 1/991 Issues in FPGA Technologies Complexity of Logic Element –How many inputs/outputs for the logic element? –Does the basic logic element contain.
“Supporting the Total Product Life Cycle”
Chapter 3 How transistors operate and form simple switches
CPLD Vs. FPGA Positioning Presentation
M.Mohajjel. Why? TTM (Time-to-market) Prototyping Reconfigurable and Custom Computing 2Digital System Design.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
FPGA-Based System Design: Chapter 1 Copyright  2004 Prentice Hall PTR Moore’s Law n Gordon Moore: co-founder of Intel. n Predicted that number of transistors.
FPGA: Field Programmable Gate Array
EE121 John Wakerly Lecture #15
PLDS Mohammed Anvar P.K AP/ECE Al-Ameen Engineering College.
Delivered by.. Love Jain p08ec907. Design Styles  Full-custom  Cell-based  Gate array  Programmable logic Field programmable gate array (FPGA)
Tools - Hardware Optimization - Chapter 12 slide 1 Version 1.5 FPGA Tools Training Class Hardware Optimization.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n FPGA fabric architecture concepts.
Programmable Logic Devices
Issues in FPGA Technologies
ETE Digital Electronics
Sequential Logic Design
Topics SRAM-based FPGA fabrics: Xilinx. Altera..
We will be studying the architecture of XC3000.
Chapter 13 – Programmable Logic Device Architectures
Xilinx FPGA Architecture
The Xilinx Virtex Series FPGA
XC4000E Series Xilinx XC4000 Series Architecture 8/98
Xilinx FPGA Architecture Overview
The Xilinx Virtex Series FPGA
Implementing Logic Gates and Circuits
Presentation transcript:

Programmable Logic Devices by Abdulqadir Alaqeeli 1/27/98

2  Programmable Logic —Programming Methods —Programmable Logic Devices –SPLDs –CPLDs –FPGAs  Designing for FPGAs –Metastability –Synchronous Designs –Designing State Machine

3 Programming Methods

4 FUSE  Fuses are the basic storage element in TTL programmable circuits.  Passing a large current through fuse layer blows it. This allows the IC to store data by having the fuses selectively blown.

5 EPROM  In CMOS the metal fuse is replaced by FAMOS transistor.  By hot electron injection, a charge is placed onto the floating gate and switch action is provided.  UV erasable.

6 EEPROM and SRAM  EEPROM —Electrically erasable floating gate. —No UV.  SRAM —Loads configuration memory cells that control the logic and interconnect. (i.e. pass-transistors) —To erase, turn the power off.

7 Programming Technologies 1) Bipolar fusible link - Closed device, burned open by high current 2) SRAM based - Uses pass transistors controlled by SRAM - CMOS based 3) E/EEPROM based - Floating gate - CMOS based

8 Programmable Logic Devices  Simple PLDs: –PALs –PLAs –PROMs –GALs  Complex PLDs  FPGAs

9 Programmable Array Logic PALs  Programmable AND array.  Fixed OR array.  Bipolar, Fuse.  Large number of Inputs.  Each Output relatively independent.

10 Programmable Logic Arrays PLAs  Programmable AND array.  Programmable OR array.  Bipolar, Fuse.  Large number of Inputs.  Output functions share some product terms.

11 Programmable ROM PROM  Fixed AND array.  programmable OR array.  Fuse.  Limited number of Inputs.  Strong independence among the Outputs.

12  PALs : most popular PLD architecture.  PLAs : most flexible of combinatorial PLDs.  PROMs:can be used to store any logic function.

13 Generic Array Logic GALs  Configurable PAL-type.  CMOS.  Electrically Erasable CMOS technology  Replaces many PAL devices.

14 Complex Programmable Logic Devices ( CPLDs )

15 XC7300 Dual Block Architecture UIM I/O FO Universal Interconnect Matrix - SMARTswitch FAST 5 ns Pin to Pin f CLK =167 MHz I/O FAST t SU = 4.0 ns t C0 = 5.5 ns High Density Function Block Fast Function Block Fast Function Block High Density Function Block Input Registers High Drive - 24 mA 3.3 /5 Volt I/O PAL-like Function Block

16 XC Flexible Architecture Function Block 1 JTAG Controller Function Block 2 I/O Function Block n 3 Global Tri-States 2 or 4 Function Block 3 I/O In-System Programming Controller FastCONNECT Switch Matrix JTAG Port 3 I/O Global Set/Reset Global Clocks I/O Blocks 1

17 XC9500 Function Block To FastCONNECT From FastCONNECT 2 or 4 3 Global Tri-State Global Clocks I/O 36 Product- Term Allocator Macrocell 1 AND Array Macrocell 18

18 XC9500 Architectural Features  Uniform, PAL-like architecture  Flexible function block —36 inputs with 18 outputs —Expandable to 90 product terms per macrocell —Product term and global 3-state enables —Product term and global clocks  3.3V/5V I/O operation

19 XC9500 Optimizes Pin-Locking Inputs QD/T Fixed Output Pin FastCONNECT Switch Matrix Function Block Logic Add more logic Add another FB input Add another pin or FB output 36 Inputs

20 XC9500 Product Family F F F Macrocells Usable Gates t PD (ns) Registers Max. User I/Os Packages 44PC 1 44VQ 84PC 1 100TQ 100PQ 1 84PC 1 100TQ 100PQ 1 160PQ 1 100PQ 160PQ 208HQ HQ 304HQ 0.6µ Phase I Family 160PQ 208HQ

21 Field Programmable Gate Arrays ( FPGAs )

22 FPGA Architecture Programmable Interconnect I/O Blocks (IOBs) Configurable Logic Blocks (CLBs)

23 XC4000 Configurable Logic Blocks  2 Four-input function generators (Look Up Tables) —16x1 RAM or Logic function  2 Registers  - Each can be configured as Flip Flop or Latch  - Independent clock polarity  - Synchronous and asynchronous Set/Reset

24 Look Up Tables  Capacity is limited by number of inputs, not complexity  Choose to use each function generator as 4 input logic (LUT) or as high speed sync.dual port RAM  Combinatorial Logic is stored in 16x1 SRAM Look Up Tables (LUTs) in a CLB  Example: A B C D Z Look Up Table Combinatorial Logic A B C D Z 4-bit address G Func. Gen. G4 G3 G2 G1 WE 2 (2 ) 4 = 64K !

25 ROM is Equivalent to Logic  When using ROM, it is simply defining logic functions in a look-up table format —Memory might be an easier way to define logic —Xilinx provides ROM library cells  FPGA lookup tables are essentially blocks of RAM —Data is written during configuration —Data is read after configuration –Effectively operate as a ROM O = I1*I2 I1 I2 O F1 F2 X DATA(0)=0 DATA(1)=0 DATA(2)=0 DATA(3)=1 A0 A1 DOUT F1 F2 X As GatesAs ROM

26 RAM Provides 16X the Storage of Flip-Flops  32 bits versus 2 bits of storage —Two 16x1 RAMS or One 32X1 Single Port Ram fit in one CLB —One 16x1 Dual Port RAM fits in one CLB  32x8 shift register with RAM = 11 CLBs —Using flip-flops, takes 128 CLBs for data alone —Address decoders not included 32 bits A0 A1 A2 A3 A4 O1 2 bits DQ DQ Q1 Q2 CLB D1 D2 WE CLK D1

27 Using Function Generator As RAM

28 RAM Guidelines  Less than 32 words is best —32x1 or 16x2 per RAM requires only one CLB –Delays are short, (one level of logic) —Data and output MUXes are required to expand depth  Less than 256 words recommended per RAM —Use external memory for 256 words or more  Width easily expanded —Connect the address lines to multiple blocks  Recommendation: Use less than 1/2 of max memory resources —Maximum memory uses all logic resources of CLBs

29 XC4000E I/O Block Diagram D Q Slew Rate Control Passive Pull-Up, Pull-Down Delay Vcc Output Buffer Input Buffer Q D OK (Output Clock) IK (Input Clock) I 1 2 I O T/OE Pad CE Elements in BLUE are not in the XC3000 family.

30 Xilinx FPGA Routing  Fast Direct Interconnect - CLB to CLB  General Purpose Interconnect - Uses switch matrix CLB Switch Matrix Switch Matrix  Long Lines —Segmented across chip —Global clocks, lowest skew —2 Tri-states per CLB for busses

31 Fast Direct Interconnect  Direct connections from CLB to adjacent CLB or IOB  Fastest interconnect —Less than 1 ns delay CLB

32 Flexible General-Purpose Interconnect  Flexible but slow if crosses many channels  XC3000 —5 lines per channel  XC4000 —8 similar Single- Length lines —4 Double-Length lines skip every other switch matrix —4 Quadrable-Length Lines skip three switch matrices. CLB Switch Matrix Switch Matrix

33  Single metal lines that traverse length & width of chip  Lowest skew  Ideal for high fan-out signals  Ideal for clocking  Internal three-state buffers for buses and wide functions Use Long Lines for High Fanout Nets CLB

34 CPLD or FPGA?  CPLD  Non-volatile  Wide fan-in  Fast counters, state machines  Combinational Logic  FPGA  SRAM reconfiguration  Excellent for computer architecture, DSP, registered designs  PROM required for non- volatile operation

35 Designing For FPGAs

36 Avoiding Metastability  Metastability caused by violation of timing specifications such as setup  In-between state takes unknown time to resolve —Two destinations could be responding to different values  Error rate decreases by a factor of 40 for every additional 1ns of delay before destinations respond to signal  Be aware but not paranoid! DQ Data and Clock Change Simultaneously Metastable Output

37 Use Synchronous Design  Easy to analyze internal timing of synchronous designs  Hold time is not an issue —Clock skew is guaranteed to be much shorter than the minimum clock-to-Q of any CLB  Use global clock distribution networks —If not, check for clock skew problems DQDQ 3.0ns3.1ns 2.5ns

38 Avoid Gated Clock or Asynchronous Reset  Move gating to non-clock pin to prevent glitch from affecting logic  Or separate input signal changes by at least a CLB delay to minimize the likelihood of a glitch DQ Carry Q0 Q1 Q2 3-Bit Counter DQ Carry-1 Q0 Q1 Q2 3-Bit Counter

39 Pipeline for Speed  Register-rich FPGAs encourage pipelining  Pipelining improves speed —Consider wherever latency is not an issue —Use for terminal counts, carry lookahead, etc.  Clock period will be approximately —2 x (number of combinatorial levels) x (speed grade) —XC3100A-3: 3 levels x 2 x 3ns = 18 ns clock period

40 Use Dedicated Carry for Large Counters  Use XC4000/XC5000 carry logic to improve counter speed and density —Especially for counters of >5 bits AdderAdder RegReg t ADDER t CO t NET

41 Use One-Hot Encoding for State Machines  Shift register is always fast and dense —“One-hot” uses one flip-flop for each count —Useful for state machine encoding  Use MooreType state machines. DQDQDQDQDQ

42 Use LFSRs for Fixed Count  Consider Linear Feedback Shift Register for speed when terminal count is all that is needed —Or when any regular sequence is acceptable (e.g., FIFO)  Maximal length sequence of 2 n -1  Use XNOR feedback to make lockup state all 1s 10-bit Shift Register Q1Q10Q7 D1

43 Use Global Clock Buffers  Use clock buffers for highest fanout clocks —Drive low-skew, high-speed long line resources —Use BUFG primitive to be family-independent  Limit number of clocks to ease placement issues —XC3000: 2 (GCLK, ACLK) —XC4000/XC5000: 4 (BUFGP / BUFG)  Additional clocks might be routable on long lines —Otherwise routed on general interconnect –Slower and higher skew

44 Using a Clock Generated Off-Chip  Connect IPAD directly to clock buffer primitive —Required for BUFGP  Provides higher speed and uses fewer routing resources IPAD BUFG D

45 Generating Clock On-Chip  XC4000 —Internal clock available after configuration —Use OSC4 primitive OSC4 F15 F500k F16k F490 F8M BUFGS

46 Use Clock Enables Instead of Gating Clock  Use clock enable when using most of or all logic inputs —Not recommended to gate clock signal directly  Use muxed data when using only 1-2 logic inputs —Easier to route  Some macros use logic for clock enable while others use the CE pin —Make sure CE, if unused, is always connected to VCC DQ CE DQ FDxE