EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 5 Programmable.

Slides:



Advertisements
Similar presentations
Lecture 11-1 FPGA We have finished combinational circuits, and learned registers. Now are ready to see the inside of an FPGA.
Advertisements

컴퓨터구조론 교수 채수환. 교재 Computer Systems Organization & Architecture John D. Carpinelli, 2001, Addison Wesley.
Digital Design: Combinational Logic Blocks
Functions and Functional Blocks
Figure 4.1. The function f (x1, x2, x3) =  m(0, 2, 4, 5, 6).
Xilinx CPLDs and FPGAs Module F2-1. CPLDs and FPGAs XC9500 CPLD XC4000 FPGA Spartan FPGA Spartan II FPGA Virtex FPGA.
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.
©2004 Brooks/Cole FIGURES FOR CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES Click the mouse to move to the next page. Use the ESC key.
Implementing Logic Gates and Circuits Discussion D5.1.
ECE Synthesis & Verification - Lecture 0 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits VLSI.
Implementing Logic Gates and Circuits Discussion D5.3 Section 11-2.
ENGN3213: Digital Systems and Microprocessors L#8 1 Lecture 8 Overview Review of Combinational Logic Technologies Logic Implementation Programmable Logic.
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.
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.
CS 151 Digital Systems Design Lecture 38 Programmable Logic.
Introduction to FPGA’s FPGA (Field Programmable Gate Array) –ASIC chips provide the highest performance, but can only perform the function they were designed.
EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 3 ASIC.
Figure to-1 Multiplexer and Switch Analog
CSET 4650 Field Programmable Logic Devices
Chapter 4 Gates and Circuits. 4–2 Chapter Goals Identify the basic gates and describe the behavior of each Describe how gates are implemented using transistors.
Digital Computer Design Fundamental
EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 7 Programmable.
FPGA-Based System Design: Chapter 3 Copyright  2004 Prentice Hall PTR Topics n Circuit design for FPGAs: –Logic elements. –Interconnect.
EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 2 CMOS.
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.
Unit 9 Multiplexers, Decoders, and Programmable Logic Devices Ku-Yaw Chang Assistant Professor, Department of Computer Science.
System Arch 2008 (Fire Tom Wada) /10/9 Field Programmable Gate Array.
Programmable Logic Devices
Digital Logic Problems (II) Prof. Sin-Min Lee Department of Mathematics and Computer Science.
CHAPTER 9 MULTIPLEXERS, DECODERS, AND PROGRAMMABLE LOGIC DEVICES
Basic Sequential Components CT101 – Computing Systems Organization.
CHAPTER-2 Fundamentals of Digital Logic. Digital Logic Digital electronic circuits are used to build computer hardware as well as other products (digital.
Computer Architecture and Organization Unit -1. Digital Logic Circuits – Logic Gates – Boolean Algebra – Map Simplification – Combinational Circuits –
ENGN3213: Digital Systems and Microprocessors L#8 1 Lecture 8 Overview Review of Combinational Logic Technologies Logic Implementation Programmable Logic.
ESS | FPGA for Dummies | | Maurizio Donna FPGA for Dummies Basic FPGA architecture.
Digital Logic Design Basics Combinational Circuits Sequential Circuits Pu-Jen Cheng Adapted from the slides prepared by S. Dandamudi for the book, Fundamentals.
Introduction to Field Programmable Gate Arrays (FPGAs) EDL Spring 2016 Johns Hopkins University Electrical and Computer Engineering March 2, 2016.
IMPLEMENTATION STRATEGIES
1 Digital Logic Design (41-135) Chapter 6 Combinational Circuit Building Blocks Younglok Kim Dept. of Electrical Engineering Sogang University Spring 2006.
Programmable Logic Devices
This chapter in the book includes: Objectives Study Guide
ETE Digital Electronics
Sequential Programmable Devices
Sequential Logic Design
This chapter in the book includes: Objectives Study Guide
Instructor: Alexander Stoytchev
XILINX FPGAs Xilinx lunched first commercial FPGA XC2000 in 1985
This chapter in the book includes: Objectives Study Guide
Basics Combinational Circuits Sequential Circuits Ahmad Jawdat
Field Programmable Gate Array
Field Programmable Gate Array
Field Programmable Gate Array
We will be studying the architecture of XC3000.
CPE 528: Session #12 Department of Electrical and Computer Engineering University of Alabama in Huntsville.
Multiplexer Implementation of Digital Logic Functions
The Xilinx Virtex Series FPGA
Instructor: Alexander Stoytchev
Instructor: Alexander Stoytchev
Topics Circuit design for FPGAs: Logic elements. Interconnect.
Instructor: Alexander Stoytchev
Computer Architecture and Organization: L02: Logic design Review
Instructor: Alexander Stoytchev
Implementation Technology
Instructor: Alexander Stoytchev
The Xilinx Virtex Series FPGA
FIGURE 5-1 MOS Transistor, Symbols, and Switch Models
Implementing Logic Gates and Circuits
Presentation transcript:

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Chapter 5 Programmable ASIC Logic Cells Application-Specific Integrated Circuits Michael John Sebastian Smith Addison Wesley, 1997

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 ASIC Logic Cells All FPGAs contain a basic logic cell replicated in a regular array across the chip There are three different types of basic logic cells: multiplexer based look-up table based programmable array based

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Actel ACT1 Multiplexer Based Logic Cell Figure 5.1The Actel ACT1 architecture. (a) Organization of the basic cells. (b) The ACT1 logic module. (c) An implementation using pass transistors. (d) An example logic macro. Logic functions can be built by connecting logic signals to some or all of the Logic Module’s inputs and by connecting the remaining Logic Module inputs to VDD or GND

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Shannon’s Expansion Theorem We can use Shannon’s expansion theorem to expand a function: F = A · F (A = ‘1’) + A' · F (A = ‘0’) Where F(A=‘1’) is the function evaluated with A=‘1’ and F(A=‘0’) is the function evaluated with A=‘0’ Example: F = A' · B + A · B · C' + A' · B' · C = A · (B · C') + A' · (B + B' · C) F (A = '1') = B · C' is the cofactor of F with respect to ( wrt ) A or F A Eventually we reach the unique canonical form, which uses only minterms (A minterm is a product term that contains all the variables of F—such as A · B' · C) Final result for example above should be: F = A' · B · C + A' · B' · C + A · B · C' + A' · B · C'

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Using Shannon’s Expansion Theorem to Map a Function to an ACT1 Logic Module Another example: F = (A · B) + (B' · C) + D Expand F wrt B: F = B · (A + D) + B' · (C + D) = B · F2 + B' · F1 Where F1= (C + D) and F2 = (A + D) The function F can be implemented by 2:1 MUX, with B selecting between two inputs: F (B = '1') and F (B = '0') F also describes the output of the ACT 1 LM Now we need to split up F1 and F2 Expand F1 wrt C: F1 = C + D = (C · 1) + (C' · D) Expand F2 wrt A: F2 = A + D = (A · 1) + (A' · D); C connects to the select line of a first-level mux in the ACT1 LM with ‘1’ and D as the inputs to the mux A connects to the select line of another first-level mux in the ACT1 LM with ‘1’ and ‘D’ as inputs to the mux B connects to the select line of the output mux with F1 and F2, the outputs of the first level muxes, connected to the inputs See Figure 5.1(d) for implementation

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Ways to Arrange a Karnaugh Map of 2 Variables Figure 5.2The logic functions of two variables.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Boolean Functions of Two Variables Using a 2:1 Mux

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 ACT1 LM as a Function Wheel (cont.) A 2:1 MUX is a function wheel that can generate BUF, INV, AND-11, AND1-1, OR, AND Define a function WHEEL (A, B) = MUX (A0, A1, SA) MUX (A0, A1, SA) = A0 · SA' + A1 · SA Each of the inputs (A0, A1, and SA) may be A, B, '0', or '1' The ACT 1 LM is built from two function wheels, a 2:1 MUX, and a two-input OR gate: ACT 1 LM = MUX [WHEEL1, WHEEL2, OR (S0, S1)]

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 ACT1 LM as a Function Wheel Figure 5.3The ACT1 logic module as a boolean function generator. (a) A 2:1 MUX viewed as a logic wheel. (b) The ACT1 logic module viewed as two function wheels.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Example of Implementing a Function with an ACT1 LM Example of using the WHEEL functions to implement: F = NAND (A, B) = (A · B)’ 1. First express F as the output of a 2:1 MUX: expand F wrt A (or wrt B; since F is symmetric) F = A · (B') + A' · ('1') 2. Assign WHEEL1 to implement INV (B), and WHEEL2 to implement '1' 3. Set the select input to the MUX connecting WHEEL1 and WHEEL2, S0 + S1 = A. We can do this using S0 = A, S1 = '1' A single Actel ACT1 LM can implement all combinational two- input functions, most three input functions and many four input functions A transparent D latch can be implemented with one ACT1 LM and an edge triggered D flip-flop can be implemented with two LM’s

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Actel ACT2 and ACT3 Logic Modules Figure 5.4The ACT2 and ACT3 logic modules. (a) The C- module. (b) The ACT2 S-module. (c) The ACT3 S- module. (d) The equivalent circuit of the SE. (e) The SE configured as a positive edge- triggered D flip-flop.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Actel Timing Model Figure 5.5The Actel ACT timing model. (a) The timing parameters for a ‘std’ speed grade ACT3. (b) Flip-flop timing. (c) An example of flip-flop timing based on ACT3 parameters. Exact delay values in Actel FPGAs can not be determined until interconnect delay is known - i.e., place and route are done Critical path delay between registers is: t PD + t SUD + t CO There is also a hold time for the flip- flops - t H The combinational logic delay t PD is dependent on the logic function (which may take more than one LM) and the wiring delays The flip-flop output delay t CO can also be influenced by the number of gates it drives (fanout)

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Xilinx Configurable Logic Block (CLB) Figure 5.6The Xilinx XC3000 CLB (configurable logic block).

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Xilinx CLB (cont.) The combinational function in a CLB is implemented with a 32 bit look-up table (LUT) LUT values are stored in 32 bits of SRAM CLB delay is fixed and equal to the LUT access time There are seven inputs to the LUT, the five CLB inputs (A-E) and the flip-flop outputs (QX and QY) and two outputs (F,G) There are several ways to use the LUT: You can use five of the seven possible inputs (A-E<QX,QY) with the entire LUT - the outputs (F,G) are identical You can split the 32-bit LUT in half to implement two functions of four variables  The input variable can be chosen from A-E,QX,QY  Two of the inputs must come from A-E You can split the LUT in half and use one of the seven input variables to select between the F and G output - allows some functions of seven variables to be implemented

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Xilinx XC4000 Logic Block Figure 5.7The Xilinx XC4000 CLB (configurable logic block). Cell contains 2 four-input LUTs that feed a three input LUT Cell also has special fast carry logic hard-wired between CLBs

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Xilinx XC5200 Logic Block Figure 5.8The Xilinx XC5200 LC (logic cell) and CLB (configurable logic block). Basic Cell is called a Logic Cell (LC) and is similar to, but simpler than, CLBs in other Xilinx families Term CLB is used here to mean a group of 4 LCs (LC0-LC3)

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Implementing Functions with Xilinx CLBs Combinational logic functions all have the same delay - a 5 input NAND is as slow (fast) as an inverter For maximum efficiency, the tools must group logic functions into blocks the utilize the CLB efficiently (i.e., utilize an high percentage of its functionality) LUT simplifies the timing model when using synchronous logic The LUT matches the Xilinx SRAM programming technology well SRAM within the LUT can be used a general purpose, on-chip SRAM, but it is expensive

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Xilinx Timing Model Figure 5.9The Xilinx LCA timing model.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Altera FLEX Architecture Figure 5.10The Altera FLEX architecture. (a) Chip floorplan. (b) LAB (Logic Array Block). (c) Details of the LE (logic element). Basic Cell is called a Logic Element (LE) and resembles the Xilinx XC5200 LC architecture Altera FLEX uses the same SRAM programming technology as Xilinx

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Programmable Logic Array Figure 5.11Logic Arrays. (a) Two-level logic. (b) Organized sum of products. (c) A programmable- AND plane. (d) EPROM logic array. (e) Wired logic. Programmable AND array feeding into an OR array can implement a canonical sum-of-products form of an expression n-channel EPROM transistors wired to a pull- up resistor can implement a wired-AND function of the inputs Output is high only when all the inputs are high The inputs must be inverted

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Registered PAL Figure 5.12A registered PAL with I inputs, j product terms, and k macrocells.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Logic Expander A logic expander is an output line of the AND array that feeds back as an input to the array itself Logic expanders can help implement functions that require more product terms than are available in a simple PAL Consider implementing this function in in a three-wide OR array: F = A’ · C · D + B’ · C · D + A · B + B · C’ This can be rewritten as a “sum of (products of products): F = (A’ + B’) · C · D + (A + C’) · B F = (A · B)’ (C · D) + (A’ · C)’ · B Logic expanders can be used to form the expander terms (A · B)’ and (A’ · C)’ Logic expanders require an extra pass through the AND array, increasing delay

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Logic Expander Implementation Figure 5.13Expander logic and programmable inversion.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Simplifying Logic with Programmed Inversion Figure 5.14Use of programmed inversion to simplify logic. (a) The function F = A  B’+ A  C’+ A  D’+ A’  C  D requires four product terms to implement while (b) the complement F’ = A  B  C  D+ A’  D’+ A’  C’ requires only three product terms.

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Altera MAX Architecture Figure 5.15The Altera MAX architecture. (a) Organization of logic and interconnect. (b) A MAX family LAB (Logic Array Block). (c) A MAX family macrocell. Macrocell features: Wide, programmable AND array Narrow, fixed OR array Logic Expanders Programmable inversion

EGRE 427 Advanced Digital Design Figures from Application-Specific Integrated Circuits, Michael John Sebastian Smith, Addison Wesley, 1997 Altera MAX Timing Model Figure 5.16The timing model for the Altera MAX architecture. (a) A direct path through the logic array and a register. (b) Timing for the direct path. (c) Using a parallel expander. (d) Parallel expander timing. (e) Making two passes through the logic array to use a shared expander. (f) Timing for the shared expander.