Polynomial Construction for Arithmetic Circuits

Slides:



Advertisements
Similar presentations
Kuliah Rangkaian Digital Kuliah 7: Unit Aritmatika
Advertisements

Digital Circuits. Review – Getting the truth table The first step in designing a digital circuit usually is to get the truth table. That is, for every.
Modular Combinational Logic
Digital Circuits.
Introduction So far, we have studied the basic skills of designing combinational and sequential logic using schematic and Verilog-HDL Now, we are going.
Combinational Circuits ENEL 111. Common Combinationals Circuits NAND gates and Duality Adders Multiplexers.
1 KU College of Engineering Elec 204: Digital Systems Design Lecture 9 Programmable Configurations Read Only Memory (ROM) – –a fixed array of AND gates.
Comparator.
ECE 331 – Digital System Design
CSE-221 Digital Logic Design (DLD)
Chapter # 5: Arithmetic Circuits Contemporary Logic Design Randy H
SUPLEMENTARY CHAPTER 1: An Introduction to Digital Logic The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
ECE 301 – Digital Electronics
Lecture 3. Boolean Algebra, Logic Gates
Chapter 5 Arithmetic Logic Functions. Page 2 This Chapter..  We will be looking at multi-valued arithmetic and logic functions  Bitwise AND, OR, EXOR,
Part 2: DESIGN CIRCUIT. LOGIC CIRCUIT DESIGN x y z F F = x + y’z x y z F Truth Table Boolean Function.
CS 105 Digital Logic Design
Calculator Lab Overview Note: Slides Updated 10/8/12
SUPLEMENTARY CHAPTER 1: An Introduction to Digital Logic The Architecture of Computer Hardware and Systems Software: An Information Technology Approach.
ADDERS Half Adders Recall that the basic rules of binary addition are as indicated below in Table 2-9. A circuit known as the half-adder carries out these.
ECE 3110: Introduction to Digital Systems Chapter 6 Combinational Logic Design Practices Adders, subtractors, ALUs.
Digital Logic Computer Organization 1 © McQuain Logic Design Goal:to become literate in most common concepts and terminology of digital.
درس مدارهای منطقی دانشگاه قم مدارهای منطقی محاسباتی تهیه شده توسط حسین امیرخانی مبتنی بر اسلایدهای درس مدارهای منطقی دانشگاه.
Computer Science 101 Circuit Design - Examples. Sum of Products Algorithm Identify each row of the output that has a 1. Identify each row of the output.
1 Lecture 6 BOOLEAN ALGEBRA and GATES Building a 32 bit processor PH 3: B.1-B.5.
Half Adder & Full Adder Patrick Marshall. Intro Adding binary digits Half adder Full adder Parallel adder (ripple carry) Arithmetic overflow.
EE2174: Digital Logic and Lab Professor Shiyan Hu Department of Electrical and Computer Engineering Michigan Technological University CHAPTER 8 Arithmetic.
1 Carry Lookahead Logic Carry Generate Gi = Ai Bi must generate carry when A = B = 1 Carry Propagate Pi = Ai xor Bi carry in will equal carry out here.
Logic Gates M. AL-Towaileb1. Introduction Boolean algebra is used to model the circuitry of electronic devices. Each input and each output of such a device.
Gates & Logic Computer Organization I 1 August 2009 © McQuain, Feng & Ribbens Logic Design Goal:to become literate in most common concepts.
1 Fundamentals of Computer Science Combinational Circuits.
ECE 3110: Introduction to Digital Systems Chapter 5 Combinational Logic Design Practices Adders,subtractors, ALUs.
Electrical Engineering Engineering the Future Digital Circuits Fundamentals Hands-on Full-Adder Simulation (afternoon)
1 The ALU l ALU includes combinational logic. –Combinational logic  a change in inputs directly causes a change in output, after a characteristic delay.
LOGIC CIRCUITLOGIC CIRCUIT. Goal To understand how digital a computer can work, at the lowest level. To understand what is possible and the limitations.
ETE 204 – Digital Electronics Combinational Logic Design Single-bit and Multiple-bit Adder Circuits [Lecture: 9] Instructor: Sajib Roy Lecturer, ETE,ULAB.
Chapter 12. Chapter Summary Boolean Functions Representing Boolean Functions Logic Gates Minimization of Circuits (not currently included in overheads)
Sequential Equivalence Checking for Clock-Gated Circuits Hamid Savoj Robert Brayton Niklas Een Alan Mishchenko Department of EECS University of California,
Computer Arthmetic Chapter Four P&H.
Combinational Circuits and Boolean
Combinational Circuits
Lecture 11: Hardware for Arithmetic
Synthesis for Verification
Combinational Logic Logic circuits for digital systems may be combinational or sequential. A combinational circuit consists of input variables, logic gates,
Boolean Expressions Lecture No. 10.
Computer Architecture CST 250
Summary Half-Adder Basic rules of binary addition are performed by a half adder, which has two binary inputs (A and B) and two binary outputs (Carry out.
FUNCTION OF COMBINATIONAL LOGIC CIRCUIT
Faster Logic Manipulation for Large Designs
New Directions in the Development of ABC
Basics Combinational Circuits Sequential Circuits
CSE Winter 2001 – Arithmetic Unit - 1
Faster Logic Manipulation for Large Designs
CSE 370 – Winter Combinational Logic - 1
Arithmetic Circuits (Part I) Randy H
SAT-Based Area Recovery in Technology Mapping
Digital Logic.
Resolution Proofs for Combinational Equivalence
COMS 361 Computer Organization
Combinational Circuits
Special Gates Combinational Logic Gates
XOR Function Logic Symbol  Description  Truth Table 
Spectral Approach to Verifying Nonlinear Arithmetic Circuits
Recording Synthesis History for Sequential Verification
Adder Circuits By: Asst Lec. Basma Nazar
A Practical Approach to Arithmetic Circuit Verification
Word-Level Aspects of ABC
SAT-based Methods: Logic Synthesis and Technology Mapping
More Example.
Alan Mishchenko Department of EECS UC Berkeley
Presentation transcript:

Polynomial Construction for Arithmetic Circuits Alan Mishchenko Robert Brayton Department of EECS UC Berkeley

Overview Introduction Half-adder and full-adder Adder tree detection Polynomial construction Using polynomials in verification Conclusion 2

Introduction Arithmetic circuit verification is the problem of proving that a given circuit implements a known arithmetic function two circuits containing arithmetic functions are equivalent It is one of the remaining strongholds in the well-studied field of formal verification and equivalence checking Many approaches have been tried, none of them seems to work well in practice This work is motivated by the need to have a reliable practical solution The most general approach is not practical, therefore… Assumption: cut-points between adders are preserved in the circuit structure

Terminology AIG is an And-Inverter Graph simple circuit data-structure only combinational AIGs are considered here AIG variable is a node in the AIG a node can be constant 0, a primary input, a two-input AND gate AIG literal is a AIG variable with a complemented attribute Bit-blasting is a process of translation into an AIG word-level operators such as adders, multipliers, selectors, etc are bit-blasted into equivalent networks composed of AIG nodes and included in the AIG representing the design CEC stands for combinational equivalence checking CEC miter is a combinational circuit whose output is equal to 0 iff two circuits are indeed equivalent LHS and RHS are parts of the CEC miter representing two copies of the design being compared

Half Adder XOR = a * !b + !a * b = !(!a * !b + a * b) Sum Carry A, B Carry Sum 00 01 1 10 11 Sum Carry HA Sum Carry XOR = a * !b + !a * b = !(!a * !b + a * b) = !(!a * !b) * !(a * b) 3 AND2 nodes

Full Adder HA FA HA Sum Carry Sum Carry Sum Carry Sum Carry A, B, C Carry Sum 000 001 1 010 011 100 101 110 111 Sum Carry Sum Carry HA FA Sum Carry HA 7 AND2 nodes A B C

Adder Tree Adder is a full-adder or a half-adder Adder tree (AT) is one or more adders feeding into each other, without any intermediate logic gates Example 1: Ripple-carry adder (RCA) Example 2: An array of RCAs adding partial products of a multiplier Example 3: Wallace tree adding partial products of a multiplier s0 s1 s2 s3 cin FA FA FA FA cout a0 b0 a1 b1 a2 b2 a3 b3 Ripple-carry adder Wallace tree of adders

Multiplier Multiplier is composed of the following blocks Product Adder tree Final stage adder (two-argument adder) Partial product accumulator (multi-argument adder) Partial product generator Multiplicants

Adder Tree Detection In this presentation, we assume that an adder tree is detected by reverse-engineering inputs/outputs and their polarity/order are known internal cut-points between FAs/HAs are known Combinational logic Adder tree Combinational logic

Polynomial Construction Rules !a => 1 – a a & b => ab a | b => a + b - ab a ^ b => a + b - 2ab MUX(a, b, c) => ab | (1 - a)c = ab + (1-a)c - ab(1-a)c = ab + c - ac

Polynomial Construction Performed from outputs to inputs It is important for smooth construction to have correct order, polarity and signedness of the outputs Otherwise polynomial will explode It is important for smooth construction to move through cuts, which cross logic only one FA/HA at a time After constructing polynomial in each cut, it should be “clean” Each monomial has only one literal and coefficient equal to the degree of 2

Using Polynomials to Verify Against the Specification Input: Polynomial constructed for a circuit and the specification of this circuit as an arithmetic expression Output: Result of checking their equivalence Solution: Construct polynomial for the specification Compare polynomial for the circuit with that for the specification

Conclusion Presented an approach to arithmetic circuit verification Procedures are being implemented in ABC and tested on industrial designs Future work includes extending the methodology to work for the case when the cut-points between adders are not present in the AIG