Word-Level Aspects of ABC

Slides:



Advertisements
Similar presentations
Tutorial 2 Sequential Logic. Registers A register is basically a D Flip-Flop A D Flip Flop has 3 basic ports. D, Q, and Clock.
Advertisements

ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
How Computers Work Lecture 5 Page 1 How Computers Work Lecture 5 Memory Implementation.
ABC: A System for Sequential Synthesis and Verification BVSRC Berkeley Verification and Synthesis Research Center Robert Brayton, Niklas Een, Alan Mishchenko,
TEAM FRONT END ECEN 4243 Digital Computer Design.
CPS3340 COMPUTER ARCHITECTURE Fall Semester, /3/2013 Lecture 9: Memory Unit Instructor: Ashraf Yaseen DEPARTMENT OF MATH & COMPUTER SCIENCE CENTRAL.
A sequential logic circuit (a.k.a. state machine) consists of both combinational logic circuit(s) and memory devices (flip flops). The combinational circuits.
CS151 Introduction to Digital Design Chapter 5: Sequential Circuits 5-1 : Sequential Circuit Definition 5-2: Latches 1Created by: Ms.Amany AlSaleh.
1 To write any register, we need register address and a write signal A 3-bit write address is decoded if write signal is present One of the eight registers.
Sequential Logic Circuit Design Eng.Maha Alqubali.
Appendix C Basics of Logic Design. Appendix C — Logic Basic — 2 Logic Design Basics §4.2 Logic Design Conventions Objective: To understand how to build.
Global Delay Optimization using Structural Choices Alan Mishchenko Robert Brayton UC Berkeley Stephen Jang Xilinx Inc.
Sequential Equivalence Checking for Clock-Gated Circuits Hamid Savoj Robert Brayton Niklas Een Alan Mishchenko Department of EECS University of California,
A Toolbox for Counter-Example Analysis and Optimization
Computer Science 210 Computer Organization
Adapted from Krste Asanovic
Class Exercise 1B.
Computer Organization and Architecture + Networks
Registers and Counters
Sequential circuit design with metastability
Introduction to Advanced Digital Design (14 Marks)
Introduction to Registers
Synthesis for Verification
EE 1001 Digital Topics Introduction to Electrical Engineering
Power Optimization Toolbox for Logic Synthesis and Mapping
Prof. Hsien-Hsin Sean Lee
Seoul National University
Instructor: Dr. Phillip Jones
Computer Science 210 Computer Organization
ECE 434 Advanced Digital System L03
Chapter 11 Sequential Circuits.
Latches and Flip-flops
Definition Partial-scan architecture Historical background
Robert Brayton Alan Mishchenko Niklas Een
New Directions in the Development of ABC
Alan Mishchenko Robert Brayton UC Berkeley
Alan Mishchenko Satrajit Chatterjee Robert Brayton UC Berkeley
Applying Logic Synthesis for Speeding Up SAT
Instructor: Alexander Stoytchev
Integrating an AIG Package, Simulator, and SAT Solver
Synthesis for Verification
SmartOpt An Industrial Strength Framework for Logic Synthesis
Computer Science 210 Computer Organization
SAT-Based Area Recovery in Technology Mapping
Polynomial Construction for Arithmetic Circuits
Alan Mishchenko University of California, Berkeley
SAT-Based Optimization with Don’t-Cares Revisited
CSE 370 – Winter Sequential Logic - 1
ELEC-7250 VLSI Testing Scan Design Implementation on ISCAS ’89 Benchmark Circuits – s1423 and s1512 Completed by: Jonathan Harris.
Scalable and Scalably-Verifiable Sequential Synthesis
CSE 370 – Winter Sequential Logic-2 - 1
Instructor: Alexander Stoytchev
Topics Clocking disciplines. Flip-flops. Latches..
GLA: Gate-Level Abstraction Revisited
Integrating Logic Synthesis, Technology Mapping, and Retiming
Part I Background and Motivation
Registers.
Instructor: Alexander Stoytchev
Integrating an AIG Package, Simulator, and SAT Solver
Introduction to Logic Synthesis
Sequential Logic.
Memory and Repetitive Arithmetic Machines
Systems Architecture I
Canonical Computation without Canonical Data Structure
Reinventing The Wheel: Developing a New Standard-Cell Synthesis Flow
Outline Registers Counters 5/11/2019.
Robert Brayton Alan Mishchenko Niklas Een
Alan Mishchenko University of California, Berkeley
74LS273 D Flip Flops and 74LS Mux Zachary Ryan
Integrating AIG Package, Simulator, and SAT Solver
Presentation transcript:

Word-Level Aspects of ABC Alan Mishchenko UC Berkeley

Overview Data structures and exchange formats Word-level transformations Bit-blasting Optimization Word-level engines Multiplier abstraction Memory abstraction

Bit-Blasting Generate AIG for each word-level operator Tries to minimize the number of AIG nodes Support all major operators Circuits can be sequential Very fast computation (used in the inner loop) Currently, bit-blasting is performed for each operation is isolation A better solution is to make delay-aware or constant-propagation-aware blasting This could result in a better circuit structure

Multiplier Abstraction Many designs have multipliers Verification without abstraction does not work Abstraction has several “degrees of freedom” Black-boxing Replace each multiplier output with a new primary input Selective black-boxing Replace some output bits with bit-level primary inputs Adding uninterpreted function (UIF) constraints Without black-boxing With black-boxing In all these cases, the abstraction is conservative For more info, see papers in FMCAD 2016 and 2017

Memory Abstraction Many designs have memories Verification without abstraction does not work Memories are represented using “memory primitives” During abstraction, these are transformed in a certain way, resulting in a word-level circuit without memories The abstraction is conservative

Memory Primitives READ / WRITE ports Flip-flop Multiplixer Buffer Primary input “Memory wire”

Memory Modeling Using Primitives RD READ data (RD) READ RA  clock MEMORY enable MUX Memory wire (yellow line) 1 enable WRITE data (WD) WRITE WRITE addr (WA) clock READ addr (RA) FLOP WA WD

Black-Boxing vs. White-Boxing Design Black boxing RD1 RD2 RD3  PI PI PI Design No logic RD1 RD2 RD3 Memory primitives Design White boxing RD1 RA RD2 RD3 WA WD  Logic without mem primitives RA WA WD

Transformation with White-Boxing A separate logic cone is created for each READ port Create a new primary input to model the data output of this READ port Replace “memory wire” by “word-level data wire” whose bit-width is equal to that of READ data Replace memory MUXes by word-level MUXes Replace WRITE ports by MUXes controlled by address comparators

Transformation of WRITE Port RD RD READ Data wire …  Memory wire RA … … MUX 1 = WRITE WD RA WA Data wire Memory wire WA WD

Comments New primary input is added for each READ port Separate logic cone is added for each READ port Each primitive is modeled as discussed above If more than one READ connects to a memory wire, READ addresses can be compared The resulting abstraction is lossy but conservative

Summary Discussed word-level features of ABC Had a closer look at memory abstraction Models memories using “memory primitives” Transforms them into regular word-level nodes Can be combinational or sequential