Fast Boolean Minimizer for Completely Specified Functions

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

New Ways of Generating Large Realistic Benchmarks for Testing Synthesis Tools Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical.
Fast Firewall Implementation for Software and Hardware-based Routers Lili Qiu, Microsoft Research George Varghese, UCSD Subhash Suri, UCSB 9 th International.
Scalable Test Pattern Generator Design Method for BIST Petr Fišer, Hana Kubátová Czech Technical University in Prague Faculty of Electrical Engineering.
It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
6/14/2015 6:48 AM(2,4) Trees /14/2015 6:48 AM(2,4) Trees2 Outline and Reading Multi-way search tree (§3.3.1) Definition Search (2,4)
Boolean Functions and their Representations
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
1 B-Trees Disk Storage What is a multiway tree? What is a B-tree? Why B-trees? Comparing B-trees and AVL-trees Searching a B-tree Insertion in a B-tree.
B + -Trees (Part 1). Motivation AVL tree with N nodes is an excellent data structure for searching, indexing, etc. –The Big-Oh analysis shows most operations.
B-Trees and B+-Trees Disk Storage What is a multiway tree?
ECE Synthesis & Verification - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
 2001 CiesielskiBDD Tutorial1 Decision Diagrams Maciej Ciesielski Electrical & Computer Engineering University of Massachusetts, Amherst, USA
ECE 667 Synthesis and Verification of Digital Systems
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
1 B Trees - Motivation Recall our discussion on AVL-trees –The maximum height of an AVL-tree with n-nodes is log 2 (n) since the branching factor (degree,
Faster Logic Manipulation for Large Designs Alan Mishchenko Robert Brayton University of California, Berkeley.
Identifying Reversible Functions From an ROBDD Adam MacDonald.
Binary Decision Diagrams (BDDs)
Flexible Two-Level Boolean Minimizer BOOM ‑ II and Its Applications Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical.
Pseudo-Random Pattern Generator Design for Column ‑ Matching BIST Petr Fišer Czech Technical University Dept. of Computer Science and Engineering.
BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering.
Boolean Minimizer FC-Min: Coverage Finding Process Petr Fišer, Hana Kubátová Czech Technical University Department of Computer Science and Engineering.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Two-Level Boolean Minimizer BOOM-II Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University Karlovo nam. 13,
Fall 2006 CSC311: Data Structures 1 Chapter 10: Search Trees Objectives: Binary Search Trees: Search, update, and implementation AVL Trees: Properties.
On Logic Synthesis of Conventionally Hard to Synthesize Circuits Using Genetic Programming Petr Fišer, Jan Schmidt Faculty of Information Technology, Czech.
On the Relation between SAT and BDDs for Equivalence Checking Sherief Reda Rolf Drechsler Alex Orailoglu Computer Science & Engineering Dept. University.
Daniel Kroening and Ofer Strichman 1 Decision Procedures An Algorithmic Point of View BDDs.
Survey of the Algorithms in the Column-Matching BIST Method Survey of the Algorithms in the Column-Matching BIST Method Petr Fišer, Hana Kubátová Department.
Binary-Decision-Diagram (BDD) Application on Pass-Transistor Logic Design Tao Lin School of EECS, Ohio University March 12, 1998.
Output Grouping Method Based on a Similarity of Boolean Functions Petr Fišer, Pavel Kubalík, Hana Kubátová Czech Technical University in Prague Department.
1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, Prague 2
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
State university of New York at New Paltz Electrical and Computer Engineering Department Logic Synthesis Optimization Lect18: Multi Level Logic Minimization.
Mohammed I DAABO COURSE CODE: CSC 355 COURSE TITLE: Data Structures.
Reducing Structural Bias in Technology Mapping
Lecture Trees Professor Sin-Min Lee.
Digital Logic.
Prof. Sin-Min Lee Department of Computer Science
Hybrid BDD and All-SAT Method for Model Checking
SINGLE-LEVEL PARTITIONING SUPPORT IN BOOM-II
Delay Optimization using SOP Balancing
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Faster Logic Manipulation for Large Designs
Alan Mishchenko Satrajit Chatterjee Robert Brayton UC Berkeley
COP3530- Data Structures B Trees
Propositional Calculus: Boolean Algebra and Simplification
Faster Logic Manipulation for Large Designs
(2,4) Trees /26/2018 3:48 PM (2,4) Trees (2,4) Trees
CSE140 HW2 Preparation Xinyuan Wang 04/20/2018.
Alan Mishchenko University of California, Berkeley
Lecture 6 Logistics Last lecture Today’s lecture
Lecture 7 Logistics Last lecture Today HW2 due now Lab2 going on
(2,4) Trees (2,4) Trees (2,4) Trees.
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
B-Trees Disk Storage What is a multiway tree? What is a B-tree?
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
(2,4) Trees /24/2019 7:30 PM (2,4) Trees (2,4) Trees
Combinational Circuits
Pruning 24-Feb-19.
Recording Synthesis History for Sequential Verification
Delay Optimization using SOP Balancing
(2,4) Trees /6/ :26 AM (2,4) Trees (2,4) Trees
Robert Brayton Alan Mishchenko Niklas Een
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
Lecture 7 Logistics Last lecture Today HW2 due now Lab2 going on
CS210- Lecture 20 July 19, 2005 Agenda Multiway Search Trees 2-4 Trees
Presentation transcript:

Fast Boolean Minimizer for Completely Specified Functions Petr Fišer1, Přemysl Rucký1, Irena Váňová2 1Czech Technical University in Prague Dept. of Computer Science and Engineering 2UTIA, CAS

Outline Motivation Ternary tree The minimization algorithm Experimental results Conclusions DDECS’2008, Bratislava

Motivation Standard two-level minimizers are not able to handle “huge” functions “Normal” functions → Espresso Many input variables → BOOM Many output variables → FC-Min Many defined terms → ??? DDECS’2008, Bratislava

Motivation Functions having many (up to millions) product terms often emerge in logic synthesis (e.g., collapsing, Boolean manipulations with functions, etc.) These functions often contain redundancies, easily detectable absorptions, … Early detection of these would significantly reduce memory consumption and the computation time → There is a need for a two-level minimizer able to handle such functions. The priority is speed, not the result quality: “Do something with it, but I want the result immediately” DDECS’2008, Bratislava

Ternary Tree Recall: Many terms = tenths of thousands, millions There could occur redundancies (duplicate terms) → An efficient storage structure is needed DDECS’2008, Bratislava

Ternary Tree Used as a storage of terms. It is not a function representation (like BDDs)! Ternary tree node: 1 - Depth = number of input variables DDECS’2008, Bratislava

Ternary Tree a b c d e 00000 0001- -0-10 -0-11 101-1 11--0 11111 DDECS’2008, Bratislava

Ternary Tree Properties: Insertion of a term in O(n) Looking up a term in O(n) Size: between n and 3n+1 Comparison of look-up speeds: On success On failure Ternary tree n 1 … (n-1) Truth table n … n.p n.p DDECS’2008, Bratislava

Ternary Tree Look-up Example Searching: ab‘c‘d (1001-) a b failure c d e 00000 0001- -0-10 -0-11 101-1 11--0 11111 DDECS’2008, Bratislava

TT Minimization Absorption of one variable Complement property Very simple. Only two rules applicable to the leaves only: Absorption of one variable a + ab = a (00-) + (001) = (00-) Complement property ab + a’b = b (000) + (001) = (00-) ???- ???1 ???- ???0 ???1 ???- DDECS’2008, Bratislava

TT Minimization Example 001 010 011 100 101 110 111 001 01- 10- 11- DDECS’2008, Bratislava

Tree Rotation The operations can be performed on leaves only => the tree must be rotated Cut off the root node → TT is split into three (at most) Append the root variable to all the leaves Merge the trees DDECS’2008, Bratislava

Tree Rotation Example DDECS’2008, Bratislava

TT Minimization Example cont. … 10- 00- 01- 11- 001 -1- 10- DDECS’2008, Bratislava

Experimental Results - Collapsing Benchmark Size (n / p) Espresso TT-Min TT-min + Espresso Terms Time [s] c880_3 60 / 212290 15673 470 57853 23.11 305 c880_4 60 / 67136 440 37 12046 6.44 439 8.5 c1908_4 33 / 32768 7040 20 20990 1.1 17 c1908_5 33 / 6464 2144 1 4640 0.19 2 c1908_6 33 / 13700 3200 4 8704 0.41 4.5 c3540_1 50 / 403298 32455 4740 101512 32.9 32396 1569 c3540_2 50 / 42568 10202 254 19620 4.2 10065 193 c3540_3 50 / 4464 1022 2112 0.34 2.5 c3540_4 50 / 1912 184 0.1 459 0.07 c3540_5 50 / 6657 1516 5 3654 0.62 1522 c3540_6 50 / 159920 14397 900 43442 9.09 382 c3540_7 50 / 6933 611 2360 0.37 DDECS’2008, Bratislava

Experimental Results - Collapsing Benchmark Size (n / p) Espresso TT-Min TT-min + Espresso Terms Time [s] c880_3 60 / 212290 15673 470 57853 23.11 305 c880_4 60 / 67136 440 37 12046 6.44 439 8.5 c1908_4 33 / 32768 7040 20 20990 1.1 17 c1908_5 33 / 6464 2144 1 4640 0.19 2 c1908_6 33 / 13700 3200 4 8704 0.41 4.5 c3540_1 50 / 403298 32455 4740 101512 32.9 32396 1569 c3540_2 50 / 42568 10202 254 19620 4.2 10065 193 c3540_3 50 / 4464 1022 2112 0.34 2.5 c3540_4 50 / 1912 184 0.1 459 0.07 c3540_5 50 / 6657 1516 5 3654 0.62 1522 c3540_6 50 / 159920 14397 900 43442 9.09 382 c3540_7 50 / 6933 611 2360 0.37 DDECS’2008, Bratislava

Experimental Results – Random Functions Benchmark Espresso TT-Min Terms Time [s] 30 / 5000 35 17.82 1004 0.63 35 / 5000 1169 1306.34 1719 1.01 35 / 8000 200 400.98 3703 2.41 40 / 5000 - > 24 h 3033 5.5 40 / 10000 5054 7.0 40 / 20000 6606 13.72 50 / 30000 13232 33.6 60 / 50000 38203 94.9 DDECS’2008, Bratislava

Conclusions A new two-level minimizer based on ternary trees Good for functions described by many terms Ternary tree is a good “storage” for a large number of terms The minimization is very fast, the result quality is not optimum, though Anyway, we are lucky that at least some minimization is done, since standard tools are completely unusable for these functions Practice has shown that such a fast minimization is essential for many logic synthesis processes (multi-level network collapsing, Boolean manipulation with functions…) DDECS’2008, Bratislava