Logic Synthesis by Branch and Bound A C++ Program Aditya Prasad.

Slides:



Advertisements
Similar presentations
Logic Gates.
Advertisements

Logical Design.
Combinational Circuits ENEL 111. Common Combinationals Circuits NAND gates and Duality Adders Multiplexers.
1 Tutorial: ITI1100 Dewan Tanvir Ahmed SITE, UofO.
Universal Gates Sum of Products Products of Sum
A Programmable Logic Device Lecture 4.3. A Programmable Logic Device Multiple-input Gates A 2-Input, 1-Output PLD.
Dominance Fault Collapsing - Alok Doshi ELEC 7250 Spring 2004.
Technology Mapping.
Classical and Quantum Circuit Synthesis An Algorithmic Approach.
Technology Mapping Outline Goal What is Technology Mapping?
Digital Integrated Circuits© Prentice Hall 1995 Combinational Logic COMBINATIONAL LOGIC.
Part 2: DESIGN CIRCUIT. LOGIC CIRCUIT DESIGN x y z F F = x + y’z x y z F Truth Table Boolean Function.

GK-12 Student designed project (AP physics) Digital logic and Boolean algebra exercise. IC logic gates brought from Stevens were used in making simple.
XOR, XNOR, and Binary Adders
Module 3.  Binary logic consists of :  logic variables  designated by alphabet letters, e.g. A, B, C… x, y, z, etc.  have ONLY 2 possible values:
XOR and XNOR Logic Gates. XOR Function Output Y is TRUE if input A OR input B are TRUE Exclusively, else it is FALSE. Logic Symbol  Description  Truth.
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.
EE2420 – Digital Logic Summer II 2013 Hassan Salamy Ingram School of Engineering Texas State University Set 4: Other Gates.
CS231 Boolean Algebra1 K-map Summary K-maps are an alternative to algebra for simplifying expressions. – The result is a minimal sum of products, which.
Chapter 33 Basic Logic Gates. 2 Objectives –After completing this chapter, the student should be able to: Identify and explain the function of the basic.
Sneha.  Gates Gates  Characteristics of gates Characteristics of gates  Basic Gates Basic Gates  AND Gate AND Gate  OR gate OR gate  NOT gate NOT.
Use CMOS Transistors to bit a 4-bit Adder. NAND2 symbol Schematic.
Module 1.2 Introduction to Verilog
4. Computer Maths and Logic 4.2 Boolean Logic Logic Circuits.
Logic Design CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
Logic Gates. The Inverter The inverter (NOT circuit) performs the operation called inversion or complementation. Standard logic symbols: 1 1 input output.
1 Ethics of Computing MONT 113G, Spring 2012 Session 5 Binary Addition.
Combinational Logic Design Process © 2014 Project Lead The Way, Inc.Digital Electronics.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Introduction to VHDL Coding Wenchao Cao, Teaching Assistant Department of EECS University of Tennessee.
1 Digital Design Debdeep Mukhopadhyay Associate Professor Dept of Computer Science and Engineering NYU Shanghai and IIT Kharagpur.
Appendix B: Digital Logic
Gates AND, OR, NOT NAND, NOR Combinational logic No memory A set of inputs uniquely and unambiguously specifies.
How does a Computer Add ? Logic Gates within chips: AND Gate A B Output OR Gate A B Output A B A B
ECE 2110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices XOR and parity check Circuits.
WORKING PRINCIPLE OF DIGITAL LOGIC
Logic Gates and Boolean Algebra Introduction to Logic II.
PICo Arithmetic and Logic Unit The Need for Speed (with minimal area and power)
Basic Gates and ICs 74LS00 Quad 2-Input NAND gate 74LS02 Quad 2-Input NOR gate 74LS04 Quad 2-Input NOT gate 74LS08 Quad 2-Input AND gate 74LS32 Quad 2-Input.
Logic Gates Learning Objectives Learn that there is a one-to-one relationship between logic gates and Boolean expressions Learn how logic gates are combined.
Chapter 5 Combinational Logic 组合逻辑
Combinational Circuits and Boolean
ECE 3130 Digital Electronics and Design
Eng. Mai Z. Alyazji October, 2016
ECE 3130 Digital Electronics and Design
Combinational Circuits
Logic Gates.
Exclusive OR Gate.
Digital Signals Digital Signals have two basic states:
ABB i-bus® EIB Logic Module LM/S 1.1
CSE 370 – Winter 2002 – Comb. Logic building blocks - 1
King Fahd University of Petroleum and Minerals
Logic Gates.
Boolean Algebra.
Logic Gates.
Logic Gates.
Sungho Kang Yonsei University
Gates Type AND denoted by X.Y OR denoted by X + Y NOR denoted by X + Y
Logic Gates.
Discussion D5.1 Section Sections 13-3, 13-4
Technology Mapping I based on tree covering
Special Gates Combinational Logic Gates
XOR Function Logic Symbol  Description  Truth Table 
LOGIC Circuits.
ELEC Digital Logic Circuits Fall 2015 Logic Testing (Chapter 12)
Eng. Ahmed M Bader El-Din October, 2018
Introduction to Logic diagrams and truth tables
Introduction to Logic diagrams and truth tables
Presentation transcript:

Logic Synthesis by Branch and Bound A C++ Program Aditya Prasad

What is the program’s goal? The program should be able to: Synthesize arbitrary Boolean functions Use a user-defined gate library It should be: Fast Flexible Optimal

How does it work? Depth-first search branch-and-bound design Recursive function adds a gate and recurses, for each pair of existing gates Bounds when A) Reaches pre-defined gate limit B) Determines that it is on a non-optimal path C) It sees symmetrical solutions

What are its inputs? Takes a file from a cmd-line argument: Gate library specification (choose from NAND, AND, NOR, OR, XOR, XNOR, IMP, NOT) Number of inputs (up to 5 currently) Number of desired outputs List of desired outputs, in horizontal truth-table format, including don’t-cares e.g.: specifies 2-bit OR X X X 0 specifies all 2-bit functions with fn(1,1) = 0

What are its outputs? Produces text output to file showing each gate’s inputs e.g.: 2: 0 NAND 1 Produces output in.gvz format, to be used as input to AT&T’s GraphViz program. GraphViz can produce.ps output.

Sample output: 2-bit full adder

Timing results Version 13, using NAND only, was VERY slow… function #22 took over 8 hours, and didn’t finish Version 13 with AND, NAND, NOR took 531 sec. for #22, 8 hours overall Version 15 using same lib, took 20 sec for #22, only 15 min overall Version 16 now takes 1 second, and 11 seconds overall

Version13 timing results

Version15 timing results

Implemented speed-ups Version 14 checked the gate fan-outs Version 15 checked directed paths to each gate Version 16 uses the Implication gate and XOR/XNOR, all of which are VERY useful

Larger inputs 3-input now takes 13 seconds overall with the gate lib. 4-input and 5-input take VERY long for several reasons… Each function should take many more gates? Increase in number of gates causes exp. time increase

Potential speedups Bounding on same collections of gates Increasing the gate library to include more gates Restricting the gate library to the most useful gates

Questions?