Kanupriya Gulati * Mathew Lovell ** Sunil P. Khatri * * Computer Engineering, Texas A&M University ** Hewlett Packard Company, Fort Collins, CO Efficient.

Slides:



Advertisements
Similar presentations
Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Advertisements

Robust Window-based Multi-node Technology- Independent Logic Minimization Jeff L.Cobb Kanupriya Gulati Sunil P. Khatri Texas Instruments, Inc. Dept. of.
Basic HDL Coding Techniques
The BDS Circuit Synthesis System What it Does and Doesn’t Do.
Fast Algorithms For Hierarchical Range Histogram Constructions
SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
Chop-SPICE: An Efficient SPICE Simulation Technique For Buffered RC Trees Myung-Chul Kim, Dong-Jin Lee and Igor L. Markov Dept. of EECS, University of.
Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
FPGA Latency Optimization Using System-level Transformations and DFG Restructuring Daniel Gomez-Prado, Maciej Ciesielski, and Russell Tessier Department.
A Robust Algorithm for Approximate Compatible Observability Don’t Care (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P.
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Introduction.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi.
TH EDA NTHU-CS VLSI/CAD LAB 1 A Probabilistic Approach to Logic Equivalence Checking Chun-Yao Wang ( 王俊堯 ) Dept. CS NTHU
1 Generalized Buffering of PTL Logic Stages using Boolean Division and Don’t Cares Rajesh Garg Sunil P. Khatri Department of Electrical and Computer Engineering,
A High Performance Application Representation for Reconfigurable Systems Wenrui GongGang WangRyan Kastner Department of Electrical and Computer Engineering.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Sanjit A. Seshia and Randal E. Bryant Computer Science Department
EE290A 1 Retiming of AND- INVERTER graphs with latches Juliet Holwill 290A Project 10 May 2005.
Rajeev K. Ranjan Advanced Technology Group Synopsys Inc. Using Combinational Verification for Sequential Circuits Joint work with: Vigyan Singhal, Cadence.
DAG-Aware AIG Rewriting Alan Mishchenko, Satrajit Chatterjee, Robert Brayton Department of EECS, University of California Berkeley Presented by Rozana.
A Probabilistic Method to Determine the Minimum Leakage Vector for Combinational Designs Kanupriya Gulati Nikhil Jayakumar Sunil P. Khatri Department of.
A Survey of Parallel Tree- based Methods on Option Pricing PRESENTER: LI,XINYING.
PJSISSTA '001 Black-Box Test Reduction Using Input-Output Analysis ISSTA ‘00 Patrick J. Schroeder, Bogdan Korel Department of Computer Science Illinois.
USING SAT-BASED CRAIG INTERPOLATION TO ENLARGE CLOCK GATING FUNCTIONS Ting-Hao Lin, Chung-Yang (Ric) Huang Graduate Institute of Electrical Engineering,
Presented by Tienwei Tsai July, 2005
Electrical and Computer Engineering Archana Rengaraj ABC Logic Synthesis basics ECE 667 Synthesis and Verification of Digital Systems Spring 2011.
A Metadata Based Approach For Supporting Subsetting Queries Over Parallel HDF5 Datasets Vignesh Santhanagopalan Graduate Student Department Of CSE.
Approximate Frequency Counts over Data Streams Gurmeet Singh Manku, Rajeev Motwani Standford University VLDB2002.
Minimization of P-Circuits using Boolean Relations Anna Bernasconi University of Pisa Valentina Ciriani and Gabriella Trucco University of Milano Tiziano.
Toggle Equivalence Preserving (TEP) Logic Optimization Eugene Goldberg (Cadence), Kanupriya Gulati (Texas A&M University) Sunil Khatri (Texas A&M University)
05/04/06 1 Integrating Logic Synthesis, Tech mapping and Retiming Presented by Atchuthan Perinkulam Based on the above paper by A. Mishchenko et al, UCAL.
The Fast Optimal Voltage Partitioning Algorithm For Peak Power Density Minimization Jia Wang, Shiyan Hu Department of Electrical and Computer Engineering.
Reconfigurable Computing Using Content Addressable Memory (CAM) for Improved Performance and Resource Usage Group Members: Anderson Raid Marie Beltrao.
Combinational and Sequential Mapping with Priority Cuts Alan Mishchenko Sungmin Cho Satrajit Chatterjee Robert Brayton UC Berkeley.
LatchPlanner:Latch Placement Algorithm for Datapath-oriented High-Performance VLSI Design Minsik Cho, Hua Xiang, Haoxing Ren, Matthew M. Ziegler, Ruchir.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
1 Synthesizing Datapath Circuits for FPGAs With Emphasis on Area Minimization Andy Ye, David Lewis, Jonathan Rose Department of Electrical and Computer.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Optimality Study of Logic Synthesis for LUT-Based FPGAs Jason Cong and Kirill Minkovich.
Ohio State University Department of Computer Science and Engineering Servicing Range Queries on Multidimensional Datasets with Partial Replicas Li Weng,
Boundary-Scan driven Vectorless Testing on Active Components Steve Hird Loveland, CO.
03/02/20061 Evaluating Top-k Queries Over Web-Accessible Databases Amelie Marian Nicolas Bruno Luis Gravano Presented By: Archana and Muhammed.
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
1 Alan Mishchenko Research Update June-September 2008.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
A Semi-Canonical Form for Sequential Circuits Alan Mishchenko Niklas Een Robert Brayton UC Berkeley Michael Case Pankaj Chauhan Nikhil Sharma Calypto Design.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
SOFTWARE TESTING LECTURE 9. OBSERVATIONS ABOUT TESTING “ Testing is the process of executing a program with the intention of finding errors. ” – Myers.
BDD-based Synthesis of Reversible Logic for Large Functions Robert Wille Rolf Drechsler DAC’09 Presenter: Meng-yen Li.
Evolutionary Computation Evolving Neural Network Topologies.
CLARANS: A Method for Clustering Objects for Spatial Data Mining IEEE Transactions on Knowledge and Data Enginerring, 2002 Raymond T. Ng et al. 22 MAR.
Global Delay Optimization using Structural Choices Alan Mishchenko Robert Brayton UC Berkeley Stephen Jang Xilinx Inc.
Hybrid BDD and All-SAT Method for Model Checking
Software Testing.
IIT Kharagpur & Kingston Uni
The Analysis of Cyclic Circuits with Boolean Satisfiability
Interpolating Functions from Large Boolean Relations
Samuel Luckenbill1, Ju-Yueh Lee2, Yu Hu3, Rupak Majumdar1, and Lei He2
New Directions in the Development of ABC
Applying Logic Synthesis for Speeding Up SAT
Introduction to cosynthesis Rabi Mahapatra CSCE617
Spatial Online Sampling and Aggregation
SAT-Based Area Recovery in Technology Mapping
SAT-Based Optimization with Don’t-Cares Revisited
Accelerating Regular Path Queries using FPGA
Presentation transcript:

Kanupriya Gulati * Mathew Lovell ** Sunil P. Khatri * * Computer Engineering, Texas A&M University ** Hewlett Packard Company, Fort Collins, CO Efficient Don’t Care Computation for Hierarchical Designs

2 Overview Introduction Introduction Previous Work Previous Work Our Approach Our Approach Approximate Version Approximate Version Example Example Experimental Results Experimental Results Conclusions Conclusions

3 Introduction Synthesis tools typically flatten a hierarchical design. Advantage: provides good flexibility for optimizations. Disadvantage: Potentially huge representation after circuit flattening. We describe a BDD-based method for computing Don’t Cares while retaining Hierarchy. Advantage: we can compute Don’t Cares for circuits in which the flattened approach fails. Advantage: literal count reduction is superior compared with other approaches Disadvantage: cannot invoke the complete flexibility in theory Disadvantage: good partitioning of the circuit important.

4 Additional Advantages Enables existing tools to handle significantly larger designs. Designers can concentrate on critical modules and optimize them more aggressively Alternately, a designer can optimize different modules with different objectives. Instances of the same module can be optimized separately. If all modules need to be identical after optimization, we can intersect the don’t cares of all identical modules and then optimize them

5 Previous Work Very little, to the best of our knowledge Very little, to the best of our knowledge Hierarchical optimization approach proposed by Hachtel and Lightner [1] about 19 years ago, but its implementation and effectiveness were not validated Hierarchical optimization approach proposed by Hachtel and Lightner [1] about 19 years ago, but its implementation and effectiveness were not validated In [2], sub-circuits were treated as black-boxes for optimization purposes, and all information across hierarchy boundaries was lost In [2], sub-circuits were treated as black-boxes for optimization purposes, and all information across hierarchy boundaries was lost In [3], hierarchy was exploited in don’t care computation of MUX-based networks. Don’t cares were extracted from the datapath, and used to optimize the control logic. In [3], hierarchy was exploited in don’t care computation of MUX-based networks. Don’t cares were extracted from the datapath, and used to optimize the control logic. Circuit model therefore quite restrictive. Circuit model therefore quite restrictive. [1] G. Hachtel and M. Lightner, “Don't care conditions in top down synthesis,” ICCAD 87. [2] T.-H. Liu, K. Sajid, A. Aziz, et al., “Optimizing designs containing black boxes," DAC 97. [3] S. Bhattacharya, F. Brglez, and S. Dey, “Transformation and resynthesis for testability for RTL-level control-data path Specifications”, IEEE TVLSI, Sept. 1993

6 Our Approach - Overview Hierarchical blocks (sub-circuits) of the design initially sorted in topological order from top-level primary inputs to top-level primary outputs Hierarchical blocks (sub-circuits) of the design initially sorted in topological order from top-level primary inputs to top-level primary outputs Compute don’t cares at input and output interfaces of hierarchical blocks Compute don’t cares at input and output interfaces of hierarchical blocks Don’t cares computed by performing image computation Don’t cares computed by performing image computation Perform approximate image computation if full image cannot be computed Perform approximate image computation if full image cannot be computed Don’t cares of a sub-circuit n are used by other sub-circuits whose inputs are driven by n. Don’t cares of a sub-circuit n are used by other sub-circuits whose inputs are driven by n. Sequential designs handled easily (make latch PIs = sub-circuit POs, latch POs = sub-circuit PIs). Sequential designs handled easily (make latch PIs = sub-circuit POs, latch POs = sub-circuit PIs). Finally, optimize each hierarchical block using the don’t cares computed for it. Finally, optimize each hierarchical block using the don’t cares computed for it.

7 x1x1 x2x2 x3x3 y1y1 y2y2 01 Computation of Interface Don’t cares Our Approach

8 x1x1 x2x2 x3x3 y1y1 y2y2 01

9 x1x1 x2x2 x3x3 y1y1 y2y2 01 y w

10 Approximate Computation ROBDDs of the characteristic functions T(x,y) and T(y,w) ROBDDs of the characteristic functions T(x,y) and T(y,w) Could be badly behaved, and may result in a memory explosion Could be badly behaved, and may result in a memory explosion Might cause image computation to fail. Might cause image computation to fail. Calculate Approximate Characteristic functions T’(x’,y) and T’(y’,w) such that the size of the ROBDD is bounded by a size S Calculate Approximate Characteristic functions T’(x’,y) and T’(y’,w) such that the size of the ROBDD is bounded by a size S This computation is conservative. (proof in paper) This computation is conservative. (proof in paper)

11 Approximate Computation In general, there are common variables between x and x’, as well as between y and y’. In general, there are common variables between x and x’, as well as between y and y’. Hence the care sets found during the input interface care set computation can be used for output interface care set computation. Hence the care sets found during the input interface care set computation can be used for output interface care set computation.

12 Example Topologically sort blocks DC for Q2’s input is NULL DC for Q2’s output is { 10 } DC for Q1’s input is {00-, 11-} DC for top level circuit is {0001, 100-, -10-, -11-} on variables Q1 y, Q1 x, Q2 y and Q2 x

13 Algorithm Compute_Don’t_Cares(hrcNode, careSet) { Create network for hrcNode i.e. for the current level; Topologically order children; for each child in topological order do inputImage ← Compute child’s input care set; outputPreImage ← outputPreImage ^ Compute_Don’t_Care(child, inputImage); end for outputImage ← Compute this level’s output care set; write out blif file for optimization in SIS return outputImage; }

14 Implementation Don’t Care computation implemented in VIS Don’t Care computation implemented in VIS Takes into account several details Takes into account several details Computing the conjunction of don’t care sets of different sub-circuits at the same level of hierarchy Computing the conjunction of don’t care sets of different sub-circuits at the same level of hierarchy Conduct variable substitution to change the support variables for the don’t cares from formal variables to actual variables (and vice versa) Conduct variable substitution to change the support variables for the don’t cares from formal variables to actual variables (and vice versa) Extensions to sequential designs Extensions to sequential designs Create hierarchical data structures in VIS to Create hierarchical data structures in VIS to Compute input and output interface don’t cares, while retaining hierarchy Compute input and output interface don’t cares, while retaining hierarchy What we currently do not account for What we currently do not account for True sequential don’t cares, or CODCs of sub-circuits True sequential don’t cares, or CODCs of sub-circuits Also, cyclic dependencies between sub-circuits not handled (can handle it using a fixpoint computation) Also, cyclic dependencies between sub-circuits not handled (can handle it using a fixpoint computation) Sub-circuit optimization done in SIS Sub-circuit optimization done in SIS

15 Experimental Setup Used benchmark designs from VIS-2.0 Used benchmark designs from VIS-2.0 Designs that had hierarchy Designs that had hierarchy No non-deterministic variables. No non-deterministic variables. Also used randomly generated benchmarks using the MCNC benchmark suite (denoted “rex” in the results) Also used randomly generated benchmarks using the MCNC benchmark suite (denoted “rex” in the results) Threshold S set as 50,000 BDD nodes. Threshold S set as 50,000 BDD nodes. Experiments conducted on 2.4GHz Celeron CPU with 512 MB RAM, running Linux. Experiments conducted on 2.4GHz Celeron CPU with 512 MB RAM, running Linux. Our approach was compared with Our approach was compared with Flat optimization of the hierarchical design in SIS Flat optimization of the hierarchical design in SIS Optimization of the individual sub-circuits in the hierarchy without any interface don’t cares, using SIS Optimization of the individual sub-circuits in the hierarchy without any interface don’t cares, using SIS

16 Results

17 Conclusions We compute don’t cares at the input and output interfaces of a hierarchical design using an image computation process. We compute don’t cares at the input and output interfaces of a hierarchical design using an image computation process. In case exact image cannot be computed, compute the largest approximate image. In case exact image cannot be computed, compute the largest approximate image. Hierarchical instances are optimized separately using traditional techniques (full_simplify in SIS). Hierarchical instances are optimized separately using traditional techniques (full_simplify in SIS). Circuit never flattened Circuit never flattened Allows don’t care computation for significantly larger designs than a traditional flat approach Allows don’t care computation for significantly larger designs than a traditional flat approach Experimental results demonstrate an 8-10% reduction in literal count for large hierarchical designs, with good run times. Experimental results demonstrate an 8-10% reduction in literal count for large hierarchical designs, with good run times. In many cases, flattened optimization is infeasible, while our approach completes successfully. In many cases, flattened optimization is infeasible, while our approach completes successfully.

18 Thank You !!