CBSSS 2002: DeHon Universal Programming Organization André DeHon Tuesday, June 18, 2002.

Slides:



Advertisements
Similar presentations
Combinational Circuits
Advertisements

CS370 – Spring 2003 Programmable Logic Devices PALs/PLAs.
111 Basic Circuit Elements n Standard TTL Small-Scale Integration: 1 chip = 2-8 gates n Requires numerous chips to build interesting circuits n Alternative:
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 14: March 19, 2014 Compute 2: Cascades, ALUs, PLAs.
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day10: October 25, 2000 Computing Elements 2: Cascades, ALUs,
Caltech CS184a Fall DeHon1 CS184a: Computer Architecture (Structures and Organization) Day8: October 18, 2000 Computing Elements 1: LUTs.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: February 25, 2009 Two-Level Logic-Synthesis.
Chapter 4 Gates and Circuits.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 11: February 14, 2007 Compute 1: LUTs.
Chapter # 4: Programmable and Steering Logic Section 4.1
1 Boolean Algebra & Logic Design. 2 Developed by George Boole in the 1850s Mathematical theory of logic. Shannon was the first to use Boolean Algebra.
10/25/2004EE 42 fall 2004 lecture 231 Lecture #23 Synthesis Next week: Converting gates into circuits.
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 5: January 24, 2007 ALUs, Virtualization…
Penn ESE Spring DeHon 1 ESE (ESE534): Computer Organization Day 12: February 21, 2007 Compute 2: Cascades, ALUs, PLAs.
Figure to-1 Multiplexer and Switch Analog
Chapter 4 Gates and Circuits.
1 CHAPTER 4: PART I ARITHMETIC FOR COMPUTERS. 2 The MIPS ALU We’ll be working with the MIPS instruction set architecture –similar to other architectures.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Logic Circuits I.
Transistors and Logic Circuits. Transistor control voltage in voltage out control high allows current to flow -- switch is closed (on) control low stops.
CS1Q Computer Systems Lecture 8
CSC Intro. to Computing Lecture 5: Boolean Logic, Gates, & Circuits.
Penn ESE534 Spring DeHon 1 ESE534: Computer Organization Day 9: February 24, 2014 Operator Sharing, Virtualization, Programmable Architectures.
Digital Computer Concept and Practice Copyright ©2012 by Jaejin Lee Logic Circuits I.
Company LOGO DKT 122/3 DIGITAL SYSTEM 1 WEEK #7 COMBINATIONAL LOGIC ANALYSIS.
1 Boolean Algebra & Logic Gates. 2 Objectives Understand the relationship between Boolean logic and digital computer circuits. Learn how to design simple.
CBSSS 2002: DeHon Costs André DeHon Wednesday, June 19, 2002.
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /10/2013 Lecture 5: Combinational Logic Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE.
Basic Logic Operations and Standard Logic Gates (Lecture #1) ECE 331 – Digital System Design.
1 Lecture 9 Demultiplexers Programmable Logic Devices  Programmable logic array (PLA)  Programmable array logic (PAL)
Lecture 22: 11/19/2002CS170 Fall CS170 Computer Organization and Architecture I Ayman Abdel-Hamid Department of Computer Science Old Dominion University.
Sneha.  Gates Gates  Characteristics of gates Characteristics of gates  Basic Gates Basic Gates  AND Gate AND Gate  OR gate OR gate  NOT gate NOT.
4. Computer Maths and Logic 4.2 Boolean Logic Logic Circuits.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 4: October 5, 2005 Two-Level Logic-Synthesis.
Programmable Logic Devices (PLDs)
CS1Q Computer Systems Lecture 6 Simon Gay. Lecture 6CS1Q Computer Systems - Simon Gay2 Algebraic Notation Writing AND, OR, NOT etc. is long-winded and.
CS/COE0447 Computer Organization & Assembly Language
Chapter 3 Digital Logic Structures. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 3-2 Transistor: Building.
1 COMP541 Combinational Logic - 3 Montek Singh Jan 21, 2015.
Programmable logic devices. CS Digital LogicProgrammable Logic Device2 Outline PLAs PALs ROMs.
Introduction to Computing Systems and Programming Digital Logic Structures.
Logic and Computer Design Fundamentals, Fifth Edition Mano | Kime | Martin Copyright ©2016, 2008, 2004 by Pearson Education, Inc. All rights reserved.
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 10: January 31, 2003 Compute 2:
LECTURE 4 Logic Design. LOGIC DESIGN We already know that the language of the machine is binary – that is, sequences of 1’s and 0’s. But why is this?
Caltech CS184 Winter DeHon 1 CS184a: Computer Architecture (Structure and Organization) Day 11: January 31, 2005 Compute 1: LUTs.
MECH 1500 Chapter 4. MECH 1500 The Binary Concept 4.1.
Digital Logic. Boolean Algebra to Logic Gates Logic circuits are built from components called logic gates. The logic gates correspond to Boolean operations.
ESE534: Computer Organization
Transistors and Logic Circuits
Lecture 6: Universal Gates
CS184a: Computer Architecture (Structure and Organization)
Transistors and Logic Circuits
ESE534 Computer Organization
ECE 331 – Digital System Design
Logic Gates.
CS184a: Computer Architecture (Structure and Organization)
Lecture 9 Logistics Last lecture Today HW3 due Wednesday
CS105 Introduction to Computer Concepts GATES and CIRCUITS
Agenda – 2/12/18 Questions? Readings: CSI 4, P
ESE534: Computer Organization
Lecture 6: Universal Gates
Logic Gates.
Lecture 6: Universal Gates
Part I Background and Motivation
13 Digital Logic Circuits.
Recall: ROM example Here are three functions, V2V1V0, implemented with an 8 x 3 ROM. Blue crosses (X) indicate connections between decoder outputs and.
GCSE Computer Science – Logic Gates & Boolean Expressions
CS 140 Lecture 6: Other Types of Gates
Overview Last lecture Timing; Hazards/glitches
FIGURE 5-1 MOS Transistor, Symbols, and Switch Models
Digital Circuits and Logic
Presentation transcript:

CBSSS 2002: DeHon Universal Programming Organization André DeHon Tuesday, June 18, 2002

CBSSS 2002: DeHon Key Points Can express any function as a set of logic equations –With state: any Finite Automata Can implement any logical equation with gates –With only 2-input nor gates Can build substrates which can be programmed to perform any function –PLA, LUT –Spatial and temporal composition thereof

CBSSS 2002: DeHon Logical Equations

CBSSS 2002: DeHon Familiar with Basic Logic AND: true if all inputs are true –O=and(a,b) –O=a*b –O=a*b*c*d OR: true if any inputs are true –O=or(a,b) –O=a+b NOT: true if input false; false if input true –O=not(a) –O=!a

CBSSS 2002: DeHon Additional Logic NOR = Not OR –O=nor(a,b)=not(or(a,b)) NAND = Not AND –O=nand(a,b)=not(and(a,b)) XOR = exactly one input true –O=XOR(a,b)=a*!b+!a*b –Multi-input defined as cascaded 2 input XOR(a,b,c)=XOR(XOR(a,b),c)

CBSSS 2002: DeHon Boolean Expressions Write expressions –O=a*b*c+!b*!a+a*!c Distribute –O=a*(b+c) = a*b+a*c DeMorgan’s Equivalence –O=!(a+b)=!a*!b –O=!(a*b)=!a+!b

CBSSS 2002: DeHon Any Function Function: (Mathematical definition) –each input vector (set of truth values for input symbols) –maps to exactly one output vector –output is deterministic –output depends only on the input vector

CBSSS 2002: DeHon Sketch of “Any Function” Consider binary output function: –will have either true or false (1 or 0) for each input vector –can pick out each input vector with an and e.g. a b c d having values – we would pick this out with the term: – and(a,!b,c,d)=a*!b*c*d –or together all such terms for true outputs

CBSSS 2002: DeHon Any Function (cont.) e.g. if want true when a b c d has values: – , – , –or we get: –O=a*!b*c*d+!a*b*!c*!d+!a*!b*c*d

CBSSS 2002: DeHon Not Simplest Result is not necessarily the smallest way to express e.g. if want true when a b c d has values: – , , or we got: –O =a*!b*c*d+!a*b*!c*!d+!a*!b*c*d Also –O=!b*c*d+!a*b*!c*d

CBSSS 2002: DeHon Any Function Sketch Previous example showed single output bit For multiple output bit functions –simply write one equation for each output bit

CBSSS 2002: DeHon Logic Model We can express any function as a set of logic equations

CBSSS 2002: DeHon Gates

CBSSS 2002: DeHon Gates as Building Blocks Typical building block is small gates –Finite number of inputs (1—4) Gate is a small logic expression itself –and2(a,b)=a*b –xor2(a,b)=a*!b+!a*b To implement logic express as gates –Simply factor into gates

CBSSS 2002: DeHon Factor into gates Can always factor large and or or into small gates –a*b*c*d*e*f –and(a,and(b,and(c,and(d,and(e,f))))) –and(and(and(a,b),and(c,d)),and(e,f)) Sufficient to cover our expressions for any function Two-input gates sufficient to implement all logical expressions

CBSSS 2002: DeHon Minimal Gate Set Only need one kind of gate –If it has the right properties Consider nor: –O=!a=nor(a,a) –O=and(a,b)=nor((nor(a,a),nor(b,b)) =nor(!a,!b)=!(!a+!b)=a*b –O=a+b=nor((nor(a,b),nor(a,b)) Can implement all logical expressions using only 2-input nor gates

CBSSS 2002: DeHon Universal Gate Model Can implement any logical equation with finite-input gates –With only 2-input nor gates

CBSSS 2002: DeHon Programmable Building Blocks

CBSSS 2002: DeHon Specific  Programmable Previously argued could build any particular boolean function Can also build circuits which can perform more than one function –ultimately, any function

CBSSS 2002: DeHon Simple Version prog2gate(a,b,s)=s*(a*b)+!s*(a+b) If s is true –prog2gate1 performs: a*b Otherwise –prog2gate1 performs: a+b

CBSSS 2002: DeHon Programmable gate prog2gate1 –Is programmable –Can make it perform like either gate –By performing one operation or the other

CBSSS 2002: DeHon Extended Prog2gate(a,b,s0,s1,s2)= ((s0*s1*s2)* (a*b)+ (s0*s1*!s2)*!(a*b)+ (s0*!s1*s2)* (a+b)+ (s0*!s1*!s2)*!(a+b)+ (!s0*s1*s2)* (a*!b+!a*b)+ (!s0*s1*!s2)* (a*b+!a*!b))

CBSSS 2002: DeHon Programmable Wiring Mux(a,b,s)=!s*a + s*b Passes a or b to output based on s

CBSSS 2002: DeHon Can build Larger mux4(a,b,c,d,s0,s1)= mux2 (mux2(a,b,s0), mux2(c,d,s0),s1)

CBSSS 2002: DeHon Can also use for logic and2(a,b)=mux4(0,0,0,1,a,b) or2(a,b)=mux4(0,1,1,1,a,b) nand2(a,b)=mux4(1,1,1,0,a,b) Just by routing “data” into this mux4, –Can select any two input function

CBSSS 2002: DeHon Implication Just based on some extra bits –Can “program” how wired up –Can “program” which gate behavior

CBSSS 2002: DeHon Memory Cell –Gate which remembers a value Can build out of gates we have seen v=mux2(v,new_value,load_cell) usually a more direct/efficient implementation)

CBSSS 2002: DeHon Memory Array Often build into array A Memory: –Series of locations –Can write values into –Read values from

CBSSS 2002: DeHon Could build Memory w/ Muxes

CBSSS 2002: DeHon Programmable Gates Can use the memory cells to hold the personalization bits for programmable gates

CBSSS 2002: DeHon Look-Up Table Logic (LUTs)

CBSSS 2002: DeHon Lookup Table is a Programmable Gate Program any 2-input function

CBSSS 2002: DeHon K-LUT LUT = Look-Up Table K-input LUT –Can generalize memory to arbitrary k –Can be programmed to implement any function of k-inputs …but requires 2 K memory bits to do so

CBSSS 2002: DeHon Exponential Size Problem LUT – will need exponentially more gates to handle more inputs But many functions only need linearly more gates –O=a*b*c*d*e*f…. –Can be implemented with linear gates

CBSSS 2002: DeHon Programmable Array Logic (PLAs)

CBSSS 2002: DeHon PLA Directly implement flat (two-level) logic –O=a*b*c*d + !a*b*!d + b*!c*d Exploit substrate properties allow wired- OR

CBSSS 2002: DeHon Wired-or Connect series of inputs to wire Any of the inputs can drive the wire high

CBSSS 2002: DeHon Wired-or Obvious Implementation with Transistors

CBSSS 2002: DeHon Programmable Wired-or Use some memory function to programmable connect (disconnect) wires to OR Fuse:

CBSSS 2002: DeHon Programmable Wired-or Gate-memory model

CBSSS 2002: DeHon Diagram Wired-or

CBSSS 2002: DeHon Wired-or array Build into array –Compute many different or functions from set of inputs

CBSSS 2002: DeHon Combined or-arrays to PLA Combine two or (nor) arrays to produce PLA (and-or array)

CBSSS 2002: DeHon PLA Can implement each and on single line in first array Can implement each or on single line in second array

CBSSS 2002: DeHon PLA Efficiency questions: –Each and/or is linear in total number of potential inputs (not actual) –How many product terms between arrays?

CBSSS 2002: DeHon PLA Product Terms Can be exponential in number of inputs E.g. n-input xor (parity function) –When flatten to two-level logic, requires exponential product terms –a*!b+!a*b –a*!b*!c+!a*b*!c+!a*!b*c+a*b*c …and shows up in important functions –Like addition…

CBSSS 2002: DeHon Spatial Composition

CBSSS 2002: DeHon Decomposing Large PLAs, LUTs –Can be arbitrarily inefficient on some problems But gates seem efficient Try: finding a way to hook up –Small PLAs, LUTs, nor-gates

CBSSS 2002: DeHon Logic Blocks w/ Interconnect

CBSSS 2002: DeHon Logic Blocks w/ Interconnect

CBSSS 2002: DeHon Crossbar Use wired-or like property like PLA array –Implement efficiently

CBSSS 2002: DeHon Crossbar Efficiency Takes N 2 area –Better than exponential! –But seems expensive Will return –Talk about costs (tomorrow) –Talk about interconnect (following day)

CBSSS 2002: DeHon Spatial Composition Can implement any function programmably –Divide into small functions Use small PLAs/LUTs to implement gates –OR Transform into nor gates Other fixed/universal logic functions –Connect up with programmable interconnect

CBSSS 2002: DeHon Temporal Composition

CBSSS 2002: DeHon Temporal Don’t have to implement all the gates at once Can use one gate over time

CBSSS 2002: DeHon Temporal Decomposition Take Set of gates Sort topologically –All predecessors before successors Give a unique number to each gate –Hold value of its outputs Use a memory to hold the gate values Sequence through gates

CBSSS 2002: DeHon Example Logic

CBSSS 2002: DeHon Numbered Gates

CBSSS 2002: DeHon nor2 Memory/Datapath

CBSSS 2002: DeHon Programming? How do we program this network?

CBSSS 2002: DeHon Programming? Program gates –Tell each gate where to get its input Tell gate n where its two inputs come from Specify the memory location for the output of the associated gate –Each gate specified with two addresses This is the instruction for the gate

CBSSS 2002: DeHon Temporal Gate Architecture

CBSSS 2002: DeHon Programmable Variation Can use programmable gate in place of nor gate

CBSSS 2002: DeHon Processor Conventional Processor is a variant of this –Uses an ALU for the programmable gate

CBSSS 2002: DeHon Temporal-Spatial Variation Can have any number of gates –Extreme is spatial

CBSSS 2002: DeHon Temporal Composition Can implement any function programmably –Divide into small functions Use small PLAs/LUTs to implement gates –OR Transform into nor gates Other fixed/universal logic functions –Use single (or small number) such gates –Use memory to store function outputs –Connect up in time by sequencing through operations

CBSSS 2002: DeHon Wrapup

CBSSS 2002: DeHon Key Points Can express any function as a set of logic equations –With state: any Finite Automata Can implement any logical equation with gates –With only 2-input nor gates Can build substrates which can be programmed to perform any function –PLA, LUT –Spatial and temporal composition thereof

CBSSS 2002: DeHon Coming Soon… Not clear –Which preferred, when? –Right size for PLAs, LUTs… Depends on substrate costs –Discuss next time Need to understand interconnect costs –Discuss following time