Method for Multiplier Verication Employing Boolean Equivalence Checking and Arithmetic Bit Level Description



Similar documents
Chapter 4 Register Transfer and Microoperations. Section 4.1 Register Transfer Language

Let s put together a Manual Processor

Understanding Logic Design

EE361: Digital Computer Organization Course Syllabus

CHAPTER 3 Boolean Algebra and Digital Logic

Multipliers. Introduction

Sistemas Digitais I LESI - 2º ano

Example-driven Interconnect Synthesis for Heterogeneous Coarse-Grain Reconfigurable Logic

Module-I Lecture-I Introduction to Digital VLSI Design Flow

Aims and Objectives. E 3.05 Digital System Design. Course Syllabus. Course Syllabus (1) Programmable Logic

EE360: Digital Design I Course Syllabus

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

Binary Adders: Half Adders and Full Adders

Circuits and Boolean Expressions

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Implementation of Modified Booth Algorithm (Radix 4) and its Comparison with Booth Algorithm (Radix-2)

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

Design Cycle for Microprocessors

Life Cycle of a Memory Request. Ring Example: 2 requests for lock 17

FORDHAM UNIVERSITY CISC Dept. of Computer and Info. Science Spring, The Binary Adder

System on Chip Design. Michael Nydegger

COMBINATIONAL CIRCUITS

Floating Point Fused Add-Subtract and Fused Dot-Product Units

Eingebettete Systeme. 4: Entwurfsmethodik, HW/SW Co-Design. Technische Informatik T T T

Digital Logic Design. Basics Combinational Circuits Sequential Circuits. Pu-Jen Cheng

Digital Electronics Detailed Outline

FPGA. AT6000 FPGAs. Application Note AT6000 FPGAs. 3x3 Convolver with Run-Time Reconfigurable Vector Multiplier in Atmel AT6000 FPGAs.

Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8

Two's Complement Adder/Subtractor Lab L03

EE 261 Introduction to Logic Circuits. Module #2 Number Systems

Karnaugh Maps & Combinational Logic Design. ECE 152A Winter 2012

Lab 1: Full Adder 0.0

University of St. Thomas ENGR Digital Design 4 Credit Course Monday, Wednesday, Friday from 1:35 p.m. to 2:40 p.m. Lecture: Room OWS LL54

SIM-PL: Software for teaching computer hardware at secondary schools in the Netherlands

Computer Science 281 Binary and Hexadecimal Review

An Efficient RNS to Binary Converter Using the Moduli Set {2n + 1, 2n, 2n 1}

Chapter 1: Digital Systems and Binary Numbers

Binary Numbering Systems

RN-Codings: New Insights and Some Applications

5 Combinatorial Components. 5.0 Full adder. Full subtractor

INTEGRATED CIRCUITS. For a complete data sheet, please also download:

Chapter 2 Logic Gates and Introduction to Computer Architecture

FORDHAM UNIVERSITY CISC Dept. of Computer and Info. Science Spring, Lab 2. The Full-Adder

The string of digits in the binary number system represents the quantity

Gates, Circuits, and Boolean Algebra

VHDL Test Bench Tutorial

Systems I: Computer Organization and Architecture

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

ECE232: Hardware Organization and Design. Part 3: Verilog Tutorial. Basic Verilog

1. True or False? A voltage level in the range 0 to 2 volts is interpreted as a binary 1.

9/14/ :38

RN-coding of Numbers: New Insights and Some Applications

Register File, Finite State Machines & Hardware Control Language

Digital Design. Assoc. Prof. Dr. Berna Örs Yalçın

An Effective Deterministic BIST Scheme for Shifter/Accumulator Pairs in Datapaths

Combinational Logic Design

CS101 Lecture 26: Low Level Programming. John Magee 30 July 2013 Some material copyright Jones and Bartlett. Overview/Questions

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

Fault Modeling. Why model faults? Some real defects in VLSI and PCB Common fault models Stuck-at faults. Transistor faults Summary

Lecture 8: Binary Multiplication & Division

Testing & Verification of Digital Circuits ECE/CS 5745/6745. Hardware Verification using Symbolic Computation

Design and Development of Virtual Instrument (VI) Modules for an Introductory Digital Logic Course

Digital Logic Design:

THE EXACT DOT PRODUCT AS BASIC TOOL FOR LONG INTERVAL ARITHMETIC

NEW adder cells are useful for designing larger circuits despite increase in transistor count by four per cell.

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

INTRODUCTION TO DIGITAL SYSTEMS. IMPLEMENTATION: MODULES (ICs) AND NETWORKS IMPLEMENTATION OF ALGORITHMS IN HARDWARE

COMPOSITION, EQUIVALENCE AND INTEROPERABILITY: AN EXAMPLE

Useful Number Systems

Coding Guidelines for Datapath Synthesis

COMPUTER SCIENCE TRIPOS

AN IMPROVED DESIGN OF REVERSIBLE BINARY TO BINARY CODED DECIMAL CONVERTER FOR BINARY CODED DECIMAL MULTIPLICATION

Lecture 2. Binary and Hexadecimal Numbers

DEPARTMENT OF INFORMATION TECHNLOGY

Digital Systems Design! Lecture 1 - Introduction!!

This Unit: Floating Point Arithmetic. CIS 371 Computer Organization and Design. Readings. Floating Point (FP) Numbers

Model Checking based Software Verification

Verification & Design Techniques Used in a Graduate Level VHDL Course

Boolean Algebra Part 1

(Refer Slide Time: 00:01:16 min)

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

To convert an arbitrary power of 2 into its English equivalent, remember the rules of exponential arithmetic:

2014 HSC Software Design and Development Marking Guidelines

Adaptive Stable Additive Methods for Linear Algebraic Calculations

Number Systems and Radix Conversion

FPGA Implementation of an Extended Binary GCD Algorithm for Systolic Reduction of Rational Numbers

Properties of Real Numbers

Numeral Systems. The number twenty-five can be represented in many ways: Decimal system (base 10): 25 Roman numerals:

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Section 1.4 Place Value Systems of Numeration in Other Bases

Verification of Triple Modular Redundancy (TMR) Insertion for Reliable and Trusted Systems

Lecture 7: NP-Complete Problems

Reconfigurable Low Area Complexity Filter Bank Architecture for Software Defined Radio

Today. Binary addition Representing negative numbers. Andrew H. Fagg: Embedded Real- Time Systems: Binary Arithmetic

Transcription:

Method for Multiplier Verication Employing Boolean ing and Arithmetic Bit Level Description U. Krautz 1, M. Wedler 1, W. Kunz 1 & K. Weber 2, C. Jacobi 2, M. Panz 2 1 University of Kaiserslautern - Germany 2 IBM Forschung und Entwicklungs GmbH - Germany 13th Asia and South Pacic Design Automation Conference, 2008 U.Krautz et al. Multiplier Verication 1

Outline 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 2

Basic Problem Outline 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 3

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem General Arithmetic Circuit Verication formal property checking of signicant importance arithmetic circuits still show stoppers no universal framework for arithmetics, instead special engineered solutions useful for highly regular designs limited in case of full custom logic designs multipliers particular hard to verify hardware multipliers common in processors hard to generate compact canonical representation from bit level for verication often equivalence check against reference (reference and design have to share large structural similarities) U.Krautz et al. Multiplier Verication 4

Basic Problem Outline 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 5

Basic Problem Previous Work Binary Moment Diagrams (*BMD) [Bryant, Cheng, Hamaguchi] lack of robustness functional decomposition [Chang, Cheng, Fujita, Chen, Aagaard, Seger, Kaivola, Narasimhan] prove internal properties compose global proof of sub-goals manual decomposition non-trivial mapping of lowest proof level to design comparison of reference and design based on 1bit-adder network [Stoel, Wedler] extraction of adder network from design and reference (exponential number of possibilities) equivalence proven by simple calculus U.Krautz et al. Multiplier Verication 6

Basic Problem Previous Work Binary Moment Diagrams (*BMD) [Bryant, Cheng, Hamaguchi] lack of robustness functional decomposition [Chang, Cheng, Fujita, Chen, Aagaard, Seger, Kaivola, Narasimhan] prove internal properties compose global proof of sub-goals manual decomposition non-trivial mapping of lowest proof level to design comparison of reference and design based on 1bit-adder network [Stoel, Wedler] extraction of adder network from design and reference (exponential number of possibilities) equivalence proven by simple calculus U.Krautz et al. Multiplier Verication 6

Basic Problem Previous Work Binary Moment Diagrams (*BMD) [Bryant, Cheng, Hamaguchi] lack of robustness functional decomposition [Chang, Cheng, Fujita, Chen, Aagaard, Seger, Kaivola, Narasimhan] prove internal properties compose global proof of sub-goals manual decomposition non-trivial mapping of lowest proof level to design comparison of reference and design based on 1bit-adder network [Stoel, Wedler] extraction of adder network from design and reference (exponential number of possibilities) equivalence proven by simple calculus U.Krautz et al. Multiplier Verication 6

Outline Motivation 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 7

A Simple Multiplier Motivation Algorithm integer multiplication ((a0,...,an) (b0,...,bm) = p) basic multiplication (grade school algorithm): (a0,...,an) 2 0 b0 +(a0,...,an) 2 1 b1. +(a0,...,an) 2 m 1 bm 1 +(a0,...,an) 2 m bm. Structure A B Partial product generation Addition network Product U.Krautz et al. Multiplier Verication 8

Full Custom Multipliers custom multipliers @IBM developed on bit-level various optimizations no half-adder instances (just AND, XOR-gates) full-adders spread across cycles no booth-encoder instances (just shifter, multiplexer) constant bits in adder-tree hot-one/ hot-two representation no word level information available (hard to extract) U.Krautz et al. Multiplier Verication 9

Outline Motivation 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 10

Arithmetic Reference Description Language utilized in verication specify multiplier on word level: arithmetic by functions structure by interconnection between functions syntax close to HD languages (Verilog / VHDL) used by designer, not verication engineer developed at beginning of design process formalization of typical considerations before implementing a design U.Krautz et al. Multiplier Verication 11

Extract - 3Bit Radix2 Multiplier Example variables { a: in (0 to 2); b: in (0 to 2);...} pp_def{ ppb(0) <= gen_pp(a(0 to 2), booth22(0 & 0 & b(0))); ppb(1) <= gen_pp(a(0 to 2), booth22(b( 0 to 2)));...} tree_def{ s1a <= sum32 (ppb(0), ppb(1), ppb(2)); c1a <= carry32 (ppb(0), ppb(1), ppb(2)); sum <= s1a; carry <= c1a...} U.Krautz et al. Multiplier Verication 12

Outline Motivation 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 13

Approach Motivation Reference () Design (gate netlist) Fix Reference Extract adder network Convert to gate netlist Fix Design Reference (adder network) Reference (gate netlist) no correct arithmetic function? is equivalent? no yes yes Design correct U.Krautz et al. Multiplier Verication 14

Outline Motivation 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 15

Reference () Design (gate netlist) Fix Reference Extract adder network Convert to gate netlist Fix Design Reference (adder network) Reference (gate netlist) no correct arithmetic function? is equivalent? no yes yes Design correct U.Krautz et al. Multiplier Verication 16

to Structure Motivation structural view functional view a = (a0,...,an), b = (b0,...,bm) ppj = a Bj, Bj = 2abj+1 + abj + abj 1 input: of multiplier design (given by designer) prod = m j=0 pp j arithm. functions derived from structure (automatically) Booth encoding adder network U.Krautz et al. Multiplier Verication 17

Structure to Bit Arithmetic functional view a = (a0,...,an), b = (b0,...,bm) ppj = a Bj, Bj = 2abj+1 + abj + abj 1 prod = m j=0 pp j arithm. functions derived from structure (automatically) Booth encoding adder network bit arithmetic 0 0 0 2a0b2 0 a0b1 a1b1 a2b1 a1b0 a0b2 a1b2 a2b2 transformation to basic multiplier denition (automatically) successful/unsuccessful correct/incorrect arithmetic U.Krautz et al. Multiplier Verication 18

Example Booth encoded 3bit multiplier initial situation 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2a0b2 2a1b2 2a2b2 0 0 a0b1 a1b1 a2b1 0 0 0 0 a0b2 a1b2 a2b2 0 0 0 0 2a0b0 2a1b0 2a2b0 0 0 a0b0 a1b0 a2b0 0 0 0 0 0 0 0 0 0 0 0 p 1 p0 p1 p2 p3 p4 U.Krautz et al. Multiplier Verication 19

Example Booth encoded 3bit multiplier after transformation 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a0b2 a1b2 a2b2 0 0 0 a0b1 a1b1 a2b1 0 0 0 0 0 2a0b2 2a1b2 2a2b2 0 0 a0b0 a1b0 a2b0 0 0 0 0 2a0b0 2a1b0 2a2b0 0 0 0 0 0 0 0 0 0 0 p 1 p0 p1 p2 p3 p4 U.Krautz et al. Multiplier Verication 20

Example Booth encoded 3bit multiplier after summation 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 a0b1 a1b1 a2b1 0 0 0 0 0 a0b2 a1b2 a2b2 0 0 0 0 0 0 0 0 0 a0b0 a1b0 a2b0 0 0 0 0 0 0 0 0 0 0 p 1 p0 p1 p2 p3 p4 U.Krautz et al. Multiplier Verication 21

Outline Motivation 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 22

- Reference () Design (gate netlist) Fix Reference Extract adder network Convert to gate netlist Fix Design Reference (adder network) Reference (gate netlist) no correct arithmetic function? is equivalent? no yes yes Design correct U.Krautz et al. Multiplier Verication 23

Motivation structure translated into gate-list reference functions synthesized into pre-dened blocks (Booth-encoder, adder,...) equivalence checked of reference against design (standard SAT solver) successful check requires similarities between reference and design similar inputs to adder-tree (same Booth-encoding) adder-tree topology assignments to adders (order of inputs) similarities through design concept in similarities result through methodology designer's responsibility U.Krautz et al. Multiplier Verication 24

- Final Motivation Reference () Design (gate netlist) Fix Reference Extract adder network Convert to gate netlist Fix Design Reference (adder network) Reference (gate netlist) no correct arithmetic function? is equivalent? no yes yes Design correct U.Krautz et al. Multiplier Verication 25

Scope of Method Motivation arithmetic circuits modeled at word-level, with easy to derive bit-level data-path verication arithmetic otherwise hard to obtain from gate netlist exible multicycle operations through unrolling U.Krautz et al. Multiplier Verication 26

Main Results Outline 1 Motivation The Basic Problem 2 3 Main Results U.Krautz et al. Multiplier Verication 27

Main Results Implementation/ Experiments prototype implementation (PERL) used on several industrial multipliers (IBM) complex instructions parallel operations in wide multipliers require dierent for each instruction Operation cpu time (operand's bit width) AP EC 4x4 0.6s 2s 8x8 1s 2s 8x8+8x8+8x8+8x8 9s 2s 16x16+16x16 9s 10s 24x24 7s 10s 53x53 8min 15s 64x64 14min 21s U.Krautz et al. Multiplier Verication 28

Main Results Conclusion suited for binary multiplier designs (FPU, FXU,...) manual eort negligible (formalization of typical design considerations) applied to complex instructions (multiply-add) unsigned, signed multiplication possible U.Krautz et al. Multiplier Verication 29

Verication method for multipliers: special reference description in (Arithmetic Reference Description Language) reference for simple bit arithmetic check - transformation to basic multiplication reference for construction of gate-list representation - equivalence check against design U.Krautz et al. Multiplier Verication 30

Thank you Questions? U.Krautz et al. Multiplier Verication 31