CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 5: AOIs, WITH-SELECT-WHEN, WHEN-ELSE Instructor: Francis G. Wolff Case Western.

Slides:



Advertisements
Similar presentations
CWRU EECS 317 EECS 317 CAD Computer Aided Design LECTURE 2: Delay models, std_ulogic and with-select-when Instructor: Francis G. Wolff
Advertisements

Static CMOS Circuits.
CT455: Computer Organization Logic gate
VLSI lecture, 2000 Lecture 4 MOS Circuits Department of Computer Engineering, Prince of Songkla University by Wannarat Suntiamorntut.
Morgan Kaufmann Publishers
LECTURE 4: The VHDL N-bit Adder
ELEC Digital Logic Circuits Fall 2014 Logic Synthesis (Chapters 2-5) Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and.
CWRU EECS 317 EECS 317 Computer Design LECTURE 6: State machines Instructor: Francis G. Wolff Case Western Reserve University This.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 4: Delay models & std_ulogic Instructor: Francis G. Wolff Case Western Reserve.
1 Lecture 13 VHDL 3/16/09. 2 VHDL VHDL is a hardware description language. The behavior of a digital system can be described (specified) by writing a.
Quad 2-to-1 and Quad 4-to-1 Multiplexers Discussion D2.4 Example 7.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
George Mason University ECE 448 – FPGA and ASIC Design with VHDL Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448.
W. G. Oldham EECS 40 Fall 2001 Lecture 2 Copyright Regents of University of California The CMOS Inverter: Current Flow during Switching V IN V OUT V DD.
Modern VLSI Design 4e: Chapter 3 Copyright  2008 Wayne Wolf Topics n Combinational logic functions. n Static complementary logic gate structures.
Data Flow Modeling of Combinational Logic Simple Testbenches
Transistors and Logic Circuits. Transistor control voltage in voltage out control high allows current to flow -- switch is closed (on) control low stops.
A.7 Concurrent Assignment Statements Used to assign a value to a signal in an architecture body. Four types of concurrent assignment statements –Simple.
CWRU EECS 317 EECS 317 CAD Computer Aided Design LECTURE 3: Synopsys Simulator Instructor: Francis G. Wolff Case Western Reserve University.
LECTURE 8: VHDL PROCESSES
Apr. 3, 2000Systems Architecture I1 Systems Architecture I (CS ) Lecture 3: Review of Digital Circuits and Logic Design Jeremy R. Johnson Mon. Apr.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #17 – Introduction.
Complementary CMOS Logic Style Construction (cont.) Digital Integrated Circuits© Prentice Hall 1995 Introduction.
Complementary CMOS Logic Style Construction (cont.)
LECTURE 7: VHDL Standard Cell Library Package
Sneha.  Gates Gates  Characteristics of gates Characteristics of gates  Basic Gates Basic Gates  AND Gate AND Gate  OR gate OR gate  NOT gate NOT.
CWRU EECS 317 EECS 317 Computer Design LECTURE 1: The VHDL Adder Instructor: Francis G. Wolff Case Western Reserve University.
Logic Design CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Chapter 5 Boolean Algebra and Reduction Techniques 1.
Computer Organization and Design Transistors & Logic - II Montek Singh Wed, Oct 16, 2013 Lecture 10.
ECE 332 Digital Electronics and Logic Design Lab Lab 6 Concurrent Statements & Adders.
Computer Organization and Design Transistors & Logic - II Montek Singh Oct {21,28}, 2015 Lecture 10.
ECE 331 – Digital System Design Multiplexers and Demultiplexers (Lecture #13)
George Mason University Data Flow Modeling in VHDL ECE 545 Lecture 7.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 3: The VHDL N-bit Adder Instructor: Francis G. Wolff Case Western Reserve.
9/9/2006DSD,USIT,GGSIPU1 Concurrent vs Sequential Combinational vs Sequential logic –Combinational logic is that in which the output of the circuit depends.
CS/EE 3700 : Fundamentals of Digital System Design
 Seattle Pacific University EE Logic System DesignMux-Decoder-1 Multiplexers Two alternative forms for a 2:1 Mux Truth Table Functional form Logical.
ECOM 4311—Digital System Design with VHDL
Data Flow Modeling in VHDL
Apr. 3, 2000Systems Architecture I1 Introduction to VHDL (CS 570) Jeremy R. Johnson Wed. Nov. 8, 2000.
May 9, 2001Systems Architecture I1 Systems Architecture I (CS ) Lab 5: Introduction to VHDL Jeremy R. Johnson May 9, 2001.
Computer Organization and Design Transistors & Logic - II Montek Singh Mon, Mar 14, 2011 Lecture 9.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE Simulator 2: Textio, Wait, Clocks, and Test Benches Instructor: Francis G. Wolff
CDA 4253 FPGA System Design Behavioral modeling of Combinational Circuits Hao Zheng Dept of Comp Sci & Eng USF.
George Mason University Data Flow Modeling of Combinational Logic ECE 545 Lecture 5.
Computer Organization and Design Transistors & Logic - II Montek Singh Wed, Oct 17, 2012 Lecture 11.
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 6: State machines Instructor: Francis G. Wolff Case Western Reserve University.
Mu.com.lec 9. Overview Gates, latches, memories and other logic components are used to design computer systems and their subsystems Good understanding.
Combinational logic circuit
Universal Gate – NOR Universal Gate - NOR Digital Electronics
Universal Gate – NAND Universal Gate - NAND Digital Electronics
Transistors and Logic Circuits
Universal Gate – NAND Universal Gate - NAND Digital Electronics
Combinational Circuits Using VHDL
Advanced Digital design
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Universal Gate – NAND Universal Gate - NAND Digital Electronics
Universal Gate – NOR Universal Gate - NOR Digital Electronics
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Universal Gate – NAND Universal Gate - NAND Digital Electronics
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
Data Flow Modeling of Combinational Logic
CSE 370 – Winter Combinational Implementation - 1
VHDL Structural Architecture
Concurrent vs Sequential
Universal Gate – NOR Universal Gate - NOR Digital Electronics
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
ECE 331 – Digital System Design
4-Input Gates VHDL for Loops
Presentation transcript:

CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 5: AOIs, WITH-SELECT-WHEN, WHEN-ELSE Instructor: Francis G. Wolff Case Western Reserve University This presentation uses powerpoint animation: please viewshow

CWRU EECS 318 DeMorgan’s laws: review X Y = X + Y X + Y = X Y General Rule:1. Exchange the AND with OR 2. Invert the NOTs

CWRU EECS 318 CMOS logic gate: review 4 transistors 2 transistors

CWRU EECS 318 CMOS logic gate: layout sizes (1X output drive)

CWRU EECS 318 AOI: AND-OR-Invert gates Suppose you want to transform a circuit to all nands & nots 16 transistors Final 14 Transistors

CWRU EECS 318 AOI: AND-OR-Invert gates AOIs provide a way at the gate level to use less transistors than separate ANDs and a NORs ASIC design logic builds upon a standard logic cell library, therefore, do not optimize transistors only logic gates For example, 2-wide 2-input AOI will only use 8 transistors Whereas 2 ANDs (12 transistors) and 1 NOR (4 transistors) will use a total of 16 transistors {14 by DeMorgans law} Although, there were no tricks to make AND gates better

CWRU EECS 318 AOI: AND-OR-Invert cmos 2x2 example For example, 2-wide 2-input AOI (2x2 AOI) O <= NOT((D1 AND C1) NOR (B1 AND A1));

CWRU EECS 318 AOI: AND-OR-Invert cmos 2x2 example This means AOIs use less chip area, less power, and delay

CWRU EECS 318 AOI: other Standard Cell examples AOI22 Cell: 2x2 AOI (8 transistors) Y <= (A AND B) NOR (C AND D); AOI23 Cell: 2x3 AOI (10 transistors) Y <= (A AND B) NOR (C AND D AND E); AOI21 Cell: 2x1 AOI (6 transistors) Y <= (A AND B) NOR C; Total transistors = 2 times # inputs

CWRU EECS 318 AOI: XOR implementation The XOR is not as easy as it appears Y <= NOT( (A AND B) OR (NOT B AND NOT A)); This design uses 22 transistors Y <= (A AND NOT B) OR (NOT B AND A); Y <= NOT( A XNOR B); This newer design uses 18 transistors But wait, we can exploit the AOI22 structure now we have =12 transistors Y <= NOT( (A AND B) OR (B NOR A) ); The total of transistors is now 10 Finally, by applying DeMorgan’s law

CWRU EECS 318 OAI: Or-And-Invert Or-And-Inverts are dual of the AOIs

CWRU EECS 318 with-select-when: 2-to-1 Multiplexor 0101 abab S Y abab Y S Y <= (a AND NOT s) OR (b AND s); WITH s SELECT Y <= a WHEN ‘0’, b WHEN ‘1’; WITH s SELECT Y <= a WHEN ‘0’, b WHEN OTHERS; or alternatively structural combinatorial logic behavioral Only values allowed Transistors

CWRU EECS 318 with-select-when: 2 to 4-line Decoder WITH S SELECT Y <= “1000” WHEN “11”, “0100” WHEN “10”, “0010” WHEN “01”, “0001” WHEN OTHERS; Y1Y1 Y0Y0 Y2Y2 Y3Y3 S0S0 S1S1 SIGNAL S: std_logic_vector(1 downto 0); SIGNAL Y: std_logic_vector(3 downto 0); SIGNAL S: std_logic_vector(1 downto 0); SIGNAL Y: std_logic_vector(3 downto 0); S1S1 S0S0 Y1Y1 Y0Y0 Y2Y2 Y3Y Transistors Replace this with a NOR, then 26 total transistors

CWRU EECS 318 ROM: 4 byte Read Only Memory Y1Y1 Y0Y0 Y2Y2 Y3Y3 A0A0 A1A1 D7D7 D6D6 D5D5 D4D4 D3D3 D2D2 D1D1 D0D0 OEOE 4 byte by 8 bit ROM ARRAY

CWRU EECS 318 ROM: 4 byte Read Only Memory ENTITY rom_4x8 IS PORT(A:IN std_logic_vector(1 downto 0); OE:IN std_logic; -- Tri-State Output D:OUT std_logic_vector(7 downto 0) ); END; ARCHITECTURE rom_4x8_arch OF rom_4x8 IS SIGNAL ROMout: std_logic_vector(7 downto 0); BEGIN BufferOut: TriStateBuffer GENERIC MAP(8) PORT MAP(D, ROMout, OE); WITH A SELECT ROMout <= “ ” WHEN “00”, “ ” WHEN “01”, “ ” WHEN “10”, “ ” WHEN “11”;

CWRU EECS 318 when-else: 2-to-1 Multiplexor 0101 abab S Y WITH s SELECT Y <= a WHEN ‘0’, b WHEN ‘1’; WITH s SELECT Y <= a WHEN ‘0’, b WHEN OTHERS; or alternatively Y <= a WHEN s = ‘0’ ELSE b WHEN s = ‘1’; Y <= a WHEN s = ‘0’ ELSE b; WHEN-ELSE condition allows a condition as part of the WHEN whereas the WITH-SELECT only allows only a value as part of the WHEN. WHEN-ELSE condition allows a condition as part of the WHEN whereas the WITH-SELECT only allows only a value as part of the WHEN.

CWRU EECS 318 with-select-when: 4-to-1 Multiplexor WITH s SELECT Y <=a WHEN “00”, b WHEN “01”, c WHEN “10”, d WHEN OTHERS; abcdabcd S Y Y <=a WHEN s = “00” ELSE b WHEN s = “01” ELSE c WHEN s = “10” ELSE d ; As long as each WHEN- ELSE condition is mutually exclusive, then it is equivalent to the WITH-SELECT statement. As long as each WHEN- ELSE condition is mutually exclusive, then it is equivalent to the WITH-SELECT statement.

CWRU EECS 318 when-else: 2-level priority selector Y <= a WHEN s(1) = ‘1’ ELSE b WHEN s(0) = ‘1’ ELSE ‘0’; WITH s SELECT Y <=a WHEN “11”, a WHEN “10”, b WHEN “01”, ‘0’ WHEN OTHERS; abab Y S1S1 S0S0 WHEN-ELSE are useful for sequential or priority encoders WITH-SELECT-WHEN are useful for parallel or multiplexors WHEN-ELSE are useful for sequential or priority encoders WITH-SELECT-WHEN are useful for parallel or multiplexors Transistors

CWRU EECS 318 when-else: 3-level priority selector Y <= a WHEN s(2) = ‘1’ ELSE b WHEN s(1) = ‘1’ ELSE c WHEN s(0) = ‘1’ ELSE ‘0’; WITH s SELECT Y <=a WHEN “111”, a WHEN “110”, a WHEN “101”, a WHEN “100”, b WHEN “011”, b WHEN “010”, c WHEN “001”, ‘0’ WHEN OTHERS; abcabc Y S1S1 S0S0 S2S Transistors 14

CWRU EECS 318 when-else: 2-Bit Priority Encoder (~74LS148) I1I1 I0I0 I2I2 A0A0 A1A1 GS I3I3 Priority encoders are typically used as interrupt controllers The example below is based on the 74LS148 I3I2I1I0GSA1A00XXX00010XX001110X I3I2I1I0GSA1A00XXX00010XX001110X I3I2I1I0GSA1A00XXX00010XX001110X I3I2I1I0GSA1A00XXX00010XX001110X

CWRU EECS 318 when-else: 2-Bit Priority Encoder (~74LS148) I1I1 I0I0 I2I2 A0A0 A1A1 GS I3I3 A <= “00” WHEN I 3 = 0 ELSE “01” WHEN I 2 = 0 ELSE “10” WHEN I 1 = 0 ELSE “11” WHEN I 0 = 0 ELSE “11” WHEN OTHERS; ENTITY PriEn2 IS PORT( I:IN std_logic_vector(3 downto 0); GS:OUT std_logic; A:OUT std_logic_vector(1 downto 0); ); END; I 3 I 2 I 1 I 0 G S A 1 A 0 0 X X X X X X

CWRU EECS 318 when-else: 2-Bit Priority Encoder (~74LS148) I1I1 I0I0 I2I2 A0A0 A1A1 GS I3I3 I 3 I 2 I 1 I 0 G S A 1 A 0 0 X X X X X X GS <= NOT( NOT(I 3 ) OR NOT(I 2 ) OR NOT(I 1 ) OR NOT(I 0 ) ) Structural model GS <= WITH I SELECT ‘1’ WHEN “1111”, ‘0’ WHEN OTHERS; Behavioral model GS <= I 3 AND I 2 AND I 1 AND I 0 Structural model