BR 1/991 Programmable Logic There has to be a better way to implement a logic function than to hook together discrete 74XX packages or create a custom.

Slides:



Advertisements
Similar presentations
Overview Programmable Implementation Technologies (section 6.8)
Advertisements

CS370 – Spring 2003 Programmable Logic Devices PALs/PLAs.
Programmable Logic PAL, PLA.
Programmable Logic Devices
1 Programmable Logic. 2 Prgrammable Logic Organization Pre-fabricated building block of many AND/OR gates (or NOR, NAND) "Personalized" by making or breaking.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
Programmable Logic Devices
ECE 3110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices Programmable Logic Devices.
CSET 4650 Field Programmable Logic Devices Dan Solarek Introduction to PALs Programmable Array Logic.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 6 – Selected Design Topics Part 4 – Programmable.
1 Other Technologies Off-the-shelf logic (SSI) IC –Logic IC has a few gates, connected to IC's pins Known as Small Scale Integration (SSI) –Popular logic.

Chapter # 4: Programmable and Steering Logic Section 4.1
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.
Programmable Array Logic (PAL) Fixed OR array programmable AND array Fixed OR array programmable AND array Easy to program Easy to program Poor flexibility.
Charles Kime & Thomas Kaminski © 2004 Pearson Education, Inc. Terms of Use (Hyperlinks are active in View Show mode) Terms of Use Lecture 13 – Programmable.
Figure to-1 Multiplexer and Switch Analog
Chapter 4 Gates and Circuits.
EET 252 Unit 4 Programmable Logic: SPLDs & CPLDs  Read Floyd, Sections 11-1 to  Study Unit 4 e-Lesson.  Do Lab #4.  Homework #4 and Lab #4 due.
Memory and Programmable Logic Dr. Ashraf Armoush © 2010 Dr. Ashraf Armoush.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Fundamentals Tenth Edition Floyd.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 6 – Selected Design Topics Part 4 – Programmable.
The Digital Logic Level
ECE 331 – Digital System Design NAND and NOR Circuits, Multi-level Logic Circuits, and Multiple-output Logic Circuits (Lecture #9) The slides included.
Memory and Programmable Logic Memory device: Device to which binary information is transferred for storage, and from which information is available for.
Basic Logic Operations and Standard Logic Gates (Lecture #1) ECE 331 – Digital System Design.
Programmable Logic Devices
1 Lecture #10 EGR 277 – Digital Logic Multiplexers (Data Selectors) A multiplexer (MUX) is a device that allows several low-speed signals to be sent over.
1 Lecture 9 Demultiplexers Programmable Logic Devices  Programmable logic array (PLA)  Programmable array logic (PAL)
CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES
Chapter 5 Designing Combinational Systems Tell me what you Have in Have out And want done in between Then I can build a program to do anything. Capt. Ed.
Chapter 4 Programmable Logic Devices: CPLDs with VHDL Design Copyright ©2006 by Pearson Education, Inc. Upper Saddle River, New Jersey All rights.
ETE 204 – Digital Electronics
Fall 2004EE 3563 Digital Systems Design EE 3563 Combinational Design Practices  Change in reading assignment: 5.3.1,  SSI – Small Scale Integration.
1 CSE370, Lecture 11 Lecture 11  Logistics  HW3 due now  Lab4 goes on as normal next week  Tuesday review 6pm, place TBD  Last lecture  "Switching-network"
Programmable Logic Devices (PLDs)
EE207: Digital Systems I, Semester I 2003/2004
ENGN3213: Digital Systems and Microprocessors L#8 1 Lecture 8 Overview Review of Combinational Logic Technologies Logic Implementation Programmable Logic.
1 Multiplexers (Data Selectors) A multiplexer (MUX) is a device that allows several low-speed signals to be sent over one high-speed output line. “Select.
CSET 4650 Field Programmable Logic Devices
Programmable logic devices. CS Digital LogicProgrammable Logic Device2 Outline PLAs PALs ROMs.
Programmable Logic Devices. Principle of Operation: Example: X = A.B + A’.B’ requires that fuses f1 and f4 to be “blown”.
ECE 3110: Introduction to Digital Systems Chapter 5 Combinational Logic Design Practices Programmable Logic Devices.
PLDS Mohammed Anvar P.K AP/ECE Al-Ameen Engineering College.
Programmable Logic Devices
 Seattle Pacific University EE Logic System DesignProgrammable-1 Implementing Sums-of-Products Z A B C D E F We find And-Or structures like this.
1 Programmable Logic There are other ways to implement a logic function than to hook together discrete 74XX packages or create a custom Integrated Circuit.
This chapter in the book includes: Objectives Study Guide
EET 1131 Unit 4 Programmable Logic Devices
ETE Digital Electronics
Digital Design Lecture 14
Sequential Programmable Devices
ECE 331 – Digital System Design
Overview The Design Space Programmable Implementation Technologies
Logic and Computer Design Fundamentals
Lecture 9 Logistics Last lecture Today HW3 due Wednesday
This chapter in the book includes: Objectives Study Guide
Programmable Logic Devices: CPLDs and FPGAs with VHDL Design
Digital Logic & Design Dr. Waseem Ikram Lecture 13.
CSCE 211: Digital Logic Design
Programmable Logic.
ECE 331 – Digital System Design
Programmable Configurations
Unit -06 PLDs.
Digital Fundamentals Tenth Edition Floyd Chapter 11.
Lecture 11 Logistics Last lecture Today HW3 due now
CSCE 211: Digital Logic Design
Overview Last lecture Timing; Hazards/glitches
Presentation transcript:

BR 1/991 Programmable Logic There has to be a better way to implement a logic function than to hook together discrete 74XX packages or create a custom Integrated Circuit. Memory - can use semiconductor memory to implement logic equations Programmable Logic - can use integrated circuits known as “Programmable Logic Devices” to implement logic.

BR 1/992 Memory Typically think of a memory device as used for storing data. A Memory chip is characterized by how many locations it contains and how many bits per location it can hold. Memories are classified as K x N devices, K is the # of locations, N is the number bits per location (16 x 2 would be 16 locations, each storing 2 bits). To access a LOCATION within a memory device, a group of inputs known as the ADDRESS BUS is used. The number of address lines needed is log2(K) (I.e., for 16 locations would need 4 address lines). The data at a location is placed on some outputs known as the DATAOUT bus.

BR 1/993 Memory Examples AddrAddr doutdout 32 x 8 32 x 8 memory (32 locations, 8 bits per location). Needs 5 address lines, 8 data lines 5 8 AddrAddr doutdout 64 x 2 64 x 2 memory (64 locations, 2 bits per location). Needs 6 address lines, 2 data lines 6 2 A[4:0] A[5:0] Q[7:0] Q[1:0]

BR 1/994 LookUp Table (LUT) Loc A B C D F(A,B,C,D) A B C D A memory device can be thought of as a LookUp Table (LUT), where each location contains 1 or more bits. A3 A2 A1 A0 Q 16 x 1 Memory

BR 1/995 Using Memory to implement a Boolean Function Need to use one address line for each boolean variable. 3 variables use 3 address lines, need 8 locations in memory. 4 variables use 4 address lines, need 16 locations in memory 5 variables use 5 address lines, need 32 locations in memory… etc. For N variables, need 2 N locations in memory. For each FUNCTION to be implemented, need a bit at each location. K x 1 Memory can implement 1 boolean function of log2(K) variables (16 x 1 memory can implement F(A,B,C,D). K x 2 Memory can implement 2 boolean functions of the same log2(K) variables (32 x 2 memory can implement F(A,B,C,D,E) and G(A,B,C,D,E). Etc..

BR 1/996 Implement 2 functions of 3 variables F (A,B,C) = A xor B xor C G = AB + AC + BC A B C F G Recall that Exclusive OR (xor) is A B Y Y = A  B = A xor B A0 A1 A2 8 x 2 Memory A B C QO G LookUp Table (LUT) Q1 F A[2:0] is 3 bit address bus, D[1:0] is 2 bit output bus. Location 0 has “00”, Location 1 has “10”, Location 2 has “10”, etc….

BR 1/997 Memory can be INEFFICIENT What if I wanted to implement: F(A,B,C, D) and G (W,X,Y, Z) These are two INDEPENDENT functions - they use DIFFERENT inputs! Note that the variables are different. I could use two different memory devices (need 32 locations total between the two devices): A B C D A3 A2 A1 A1 Q 16 x 1 Memory W X Y Z A3 A2 A1 A1 Q 16 x 1 Memory FG

BR 1/998 Memory can be INEFFICIENT (cont). What if I wanted to use only a single memory device??? A B C D A7 A6 A5 A4 Q1 Q0 256 x 2 Memory W X Y Z A3 A2 A1 A0 F G Most of the locations are wasted because I have to repeat the G function for every F input. Went from 32 locations to 256 locations!!!

BR 1/999 Another Inefficiency Implement: F(A,B,C,D,E,F,G,H) = ABCD + EFGH Looks like a simple equation, would only take two 4 input NANDs, one two input NAND (NAND-NAND form). Yet takes a 256 x 1 memory device because of the number of input variables!!! A B C D A7 A6 A5 A4Q 256 x 1 Memory E F G H A3 A2 A1 A0 F

BR 1/9910 Memory Summary To implement N functions of the same K variables, need a memory with 2 K locations and N bits per location (use one address line for each variable, use data out line for each function). Memory is not efficient at implementing wide functions (functions with lots of input variables) or multiple functions with different inputs.

BR 1/9911 Programmable Logic Devices (PLDs) PLDs were invented to address the inefficiencies of implementing logic using memories. PLDs can implement wide functions efficiently (functions with many input variables). PLDs can implement multiple functions of different variables efficiently. The logic in PLDs is programmable -- it can be defined by the user and programmed on the desktop –Most PLDs can be erased and reprogrammed many times.

BR 1/9912 PLD types There are MANY different types of PLDs. Densities ranges from from 10’s of gates to 100’s of thousands of gates. We will look at a type called PALs (Programmable Array Logic). The Digital System class (EE 4743) uses a programmable logic type called a Field Programmable Gate Array (FPGA).

BR 1/9913 PALs (Programmable Array Logic) An early type of programmable logic - still in common use today. Logic is represented in SOP form (Sum of Products) The number of PRODUCTs in an SOP form will be limited to a fixed number (usually 4-10 Product terms). The number of VARIABLEs in each product term limited by number of input pins on PLD (usually a LOT, minimum of 10 inputs The number of independent functions limited by number of OUTPUT pins.

BR 1/9914 A Sample PAL A B C D E F G H I J K P Q R

BR 1/9915 Comments on Sample PAL 11 inputs, 3 outputs –Can implement three functions - functions can share inputs or not share inputs Each output implements a SOP equation with Four product terms. –Each product term can include complemented or uncomplemented form of an input.

BR 1/9916 DJ P Understanding the Diagram Vertical Lines indicate a product term. Horizontal lines provide True and Complemented forms of external inputs. Even though a product term looks like it has only one input, it actually has 2 * N inputs, where N is the number of external inputs.

BR 1/9917 Product Term This looks like an AND gate with one input. Is actually: B B’A A’ C C’ D D’I I’ J J’ E E’ F F’ K K’GG’H H’ B B’ A A’ C C’ H’ H Only drawn with a single line to save space.

BR 1/9918 DJ P Fuse Points A cross over of a Vertical input line and a horizontal product term line is a FUSE LOCATION. When the PAL is in its blank or erased state, all FUSES are connected. This means that each product term implements the equation: ( A A’ B B’ C C’……. KK’) will be ‘0’! This means that the output will be high!

BR 1/9919 DJ P Programming To program, will want to BLOW most of the fuses (break the vertical/horizontal crossover connection). To indicate a logic function, will use a ‘ X ‘ over a fuse that I want to KEEP INTACT. Will mark Intact fuse location. When a fuse is blown, that product term input acts as a ‘1’ so that the input no longer effects the product term.

BR 1/9920 DJ P P’ = D + J’ When implementing an equation, sometimes will not want to use all available product terms. If ALL fuses along product term are left intact, then product term value will be ‘0’ and will not affect equation. Mark unused PT’s by placing an X over them -- all fuses in that PT row are assumed intact. Note that P’ must be implemented!

BR 1/9921 Example Product Term AC’H’ The connections will be: B B’A A’ C C’ D D’I I’ J J’ E E’ F F’ K K’GG’H H’ 1 1 A 1 1 C’ H’ 1 Fuse blown Fuse intact Fuse blown Fuse intact Fuse blown Fuse intact Actually, fuses are not ‘blown’ in eraseable PLDs - the connection is broken in a non-destructive way for eraseable PLDs.

BR 1/9922 Another Example A B C D G H I J P P’ = A’BGH’ + CD’ + HIJ + BG’H

BR 1/9923 An Optimization Question P’ = A’B’C’D’ + A’BC’D’ + A’B’CD’ P’ = A’C’D’ + A’B’D’ (minimized form) The following two equations are the same: Does it make a difference which form we implement in the previous PLD? NO!!!!!!!!!! Each SOP equation in the PLD has four Product terms allocated. An unused PT cannot be used elsewhere - so makes no difference in terms of the amount of resources used in the PLD!!!

BR 1/9924 Optimization is Dependent upon Implementation Technology!!! How we minimize Boolean equations is affected by the IMPLEMENTATION TECHNOLOGY!!!! When wiring up individual 74xx packages, want as few as gates as possible, and as few connections as possible. For PALs, want get the SOP equation into the number of allowed Products terms - getting fewer than this will not help us unless it can eliminate an input variable. For other PLD technologies, saving product terms may definitely help. It all DEPENDS on the ARCHITECTURE of the programmable logic device!!!!

BR 1/9925 Part of a 22V10 PLD

BR 1/9926 Comments on 22V10 PLD The 22V10 PLD is a example of a more complex PAL. We will use this device in Lab. The ‘macrocell’ has a memory device called a Flip- Flop inside of it - we will discuss this later in the course. –In our initial use of the 22V10 PLD, the macrocell will just pass the OR gate output unchanged to the output pin. The output of the Macrocell is passed back into the array as an input - this way complex functions be created by ‘chaining’ functions together.

BR 1/9927 Other PLD types Other types of programmable logic have much different internal structures from PALs. You must understand the internal structure of whatever PLD you are using so that you can understand the LIMITATIONS and ADVANTAGES of the particular PLD that you are using. –These advantages/limitations can affect how you implement a particular logic function

BR 1/9928 What do you need to know? How to implement boolean equations in memory devices. Structure of PAL programmable logic How show the implementation of a boolean equation on a PAL architecture diagram Optimization goals for boolean equations targeted at a PAL architecture