BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering.

Slides:



Advertisements
Similar presentations
Boolean Algebra and Logic Gates
Advertisements

Hybrid BDD and All-SAT Method for Model Checking Orna Grumberg Joint work with Assaf Schuster and Avi Yadgar Technion – Israel Institute of Technology.
Switching circuits Composed of switching elements called “gates” that implement logical blocks or switching expressions Positive logic convention (active.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
New Ways of Generating Large Realistic Benchmarks for Testing Synthesis Tools Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical.
Chapter 2 Logic Circuits.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
ECE 331 – Digital System Design
Computer organization at the logic level Some not so famous last words.
Boolean Functions and their Representations
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
A Compressed Breadth-First Search for Satisfiability DoRon B. Motter and Igor L. Markov University of Michigan, Ann Arbor.
DAG-Aware AIG Rewriting Alan Mishchenko, Satrajit Chatterjee, Robert Brayton Department of EECS, University of California Berkeley Presented by Rozana.
Solving Boolean Satisfiability (SAT) Problem Using the Unate Recursive Paradigm Priyank Kalla, Maciej Ciesielski Dept. of Elec. & Comp. Engineering University.
1 Boolean Algebra & Logic Design. 2 Developed by George Boole in the 1850s Mathematical theory of logic. Shannon was the first to use Boolean Algebra.
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 & Verification - BDD 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Binary Decision Diagrams (BDD)
 2000 M. CiesielskiPTL Synthesis1 Synthesis for Pass Transistor Logic Maciej Ciesielski Dept. of Electrical & Computer Engineering University of Massachusetts,
ECE 331 – Digital System Design Multi-level Logic Circuits and NAND-NAND and NOR-NOR Circuits (Lecture #8) The slides included herein were taken from the.
ECE 667 Synthesis and Verification of Digital Systems
Fast binary and multiway prefix searches for pachet forwarding Author: Yeim-Kuan Chang Publisher: COMPUTER NETWORKS, Volume 51, Issue 3, pp , February.
Combinational Logic Design
Unit 7 Multi-Level Gate Circuits / NAND and NOR Gates Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information.
Faster Logic Manipulation for Large Designs Alan Mishchenko Robert Brayton University of California, Berkeley.
Binary Decision Diagrams (BDDs)
Lecture 4 4. Boolean functions – advanced
MBSat Satisfiability Program and Heuristics Brief Overview VLSI Testing B Marc Boulé April 2001 McGill University Electrical and Computer Engineering.
Flexible Two-Level Boolean Minimizer BOOM ‑ II and Its Applications Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical.
ECE 331 – Digital System Design NAND and NOR Circuits, Multi-level Logic Circuits, and Multiple-output Logic Circuits (Lecture #9) The slides included.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE COS302 MICHAEL L. LITTMAN FALL 2001 Satisfiability.
ENG241 Digital Design Week #4 Combinational Logic Design.
Copyright © 2004 by Miguel A. Marin1 COMBINATIONAL CIRCUIT SYNTHESIS CLASSIC TWO-LEVEL CIRCUIT SYNTHESIS MULTILEVEL-CIRCUIT SYNTHESIS FACTORIZATION DECOMPOSITION.
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.
ETE 204 – Digital Electronics
Multi-Level Gate Networks NAND and NOR Gates
Two-Level Boolean Minimizer BOOM-II Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University Karlovo nam. 13,
LDK R Logics for Data and Knowledge Representation Propositional Logic: Reasoning First version by Alessandro Agostini and Fausto Giunchiglia Second version.
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.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
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
Introduction to Computing Systems and Programming Digital Logic Structures.
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.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
CSE 461. Binary Logic Binary logic consists of binary variables and logical operations. Variables are designated by letters such as A, B, C, x, y, z etc.
Lecture 1 Gunjeet kaur Dronacharya group of institutions.
Computer Organization CS345 David Monismith Based upon notes by Dr. Bill Siever and notes from the Patternson and Hennessy Text.
Hybrid BDD and All-SAT Method for Model Checking
Lecture 6: Universal Gates
Logic gates Boolean Algebra
Boolean Algebra A Boolean algebra is a set B of values together with:
Delay Optimization using SOP Balancing
Faster Logic Manipulation for Large Designs
Computer Science 210 Computer Organization
Propositional Calculus: Boolean Algebra and Simplification
Faster Logic Manipulation for Large Designs
Lecture 6: Universal Gates
CSE 370 – Winter Combinational Logic - 1
SAT-Based Area Recovery in Technology Mapping
Alan Mishchenko University of California, Berkeley
Lecture 6: Universal Gates
Chapter 2 Introduction to Logic Circuits
Lecture 5 Logistics Last lecture Today’s lecture
Delay Optimization using SOP Balancing
Fast Boolean Minimizer for Completely Specified Functions
Presentation transcript:

BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering

IWSBP’082 Outline Motivation Basic description of BoolTool Network representation & manipulation Ternary tree & its minimization Experimental results Conclusions

IWSBP’083 Basics & Motivation BoolTool is a tool for manipulation of Boolean functions (Boolean networks) Why? No simple tools performing elementary Boolean operations upon logic functions (or Boolean networks), like AND, OR, XOR, …, are not available Command-line tool is required, to enable scripting

IWSBP’084 BoolTool BoolTool is a tool for manipulation of Boolean functions (Boolean networks) Operations supported: Basic Boolean operations (NOT, AND, OR, XOR, …) Computation of a complement of a Boolean function Transformation of a Boolean network into an AND-OR-NOT representation Transformation of a Boolean network into a network consisted of 2-input NAND or NOR gates only Transformation of a Boolean network into a CNF or DNF representation, thus, collapsing the multi-level network to obtain a two-level representation Satisfiability (SAT) solving Cofactor computation

IWSBP’085 BoolTool BoolTool is a tool for manipulation of Boolean functions (Boolean networks) Interface: Source file: PLA (2-level) or structural VHDL (multi-level), CNF (DIMACS) Individual PLA outputs are considered as independent functions Destination: PLA, VHDL, BLIF, CNF Operation description: in a VHDL-like style, or interactively

IWSBP’086 BoolTool Example of the usage x <= a or (b and not c); y <= b or c; input.vhdl z <= x xor y; operation.vhdl BoolTool input.vhdl output.vhdl operation.vhdl z <= ( a or ( b and ( not c ) ) ) xor ( b or c ); output.vhdl

IWSBP’087 BoolTool Example of the usage x <= a or (b and not c); y <= b or c; input.vhdl z <= x xor y; operation.vhdl BoolTool input.vhdl output.pla operation.vhdl.i 3.o 1.ilb a b c.ob z output.pla a b c a c b 11 1 a c b

IWSBP’088 Internal Network Representation One binary tree for each function Internal nodes are operations (binary, unary), leaves are variables (x1 nor x3) or (x0 and x2’)

IWSBP’089 Network Manipulation Simple Boolean operations upon two trees The new operator just becomes a root, the trees are its children. Complementation of the tree (NOT) By recursively traversing the tree from root to leaves. DeMorgan’s laws may be used, to produce an AND-OR-NOT tree only. Network collapsing The tree is recursively converted into AND-OR-NOT tree. Then negations are propagated to leaves. SAT solving The tree is recursively converted into AND-OR-NOT tree. Then ‘1’ value is propagated to leaves. Conflicting variables are easily identified during recursion. All the solutions to the SAT are found by this way

IWSBP’0810 Ternary Tree - Motivation Collapsing the tree into a two-level representation (PLA) is extremely time and memory consuming Duplicate terms are often produced during the collapsing procedure Terms that can be absorbed by already produced terms are often produced Proof: try yourself manually. I.e. (ab+ac+bc)’

IWSBP’0811 Ternary Tree - Motivation An efficient structure to represent a set of terms is needed. Requirements: Duplicities are avoided Large number of stored terms is expected (up to millions) Short insertion time Low memory demands Fast and on-line minimization

IWSBP’0812 Ternary Tree Depth = number of input variables Used as a storage of terms. It is not a function representation (like BDDs)! Ternary tree node:

IWSBP’0813 Ternary Tree a b c d e a’b’c’d’e’ + a’b’c’d + b’de’ + b’de + ab’ce + abe’ + abcde

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

IWSBP’0815 Ternary Tree Look-up Example a b c d e Searching: ab‘c‘d (1001-) failure

IWSBP’0816 TT Minimization 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-) ???0 ???1???- ???1???-

IWSBP’0817 TT Minimization Example

IWSBP’0818 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

IWSBP’0819 Tree Rotation Example

IWSBP’0820 TT Minimization Example contd …

IWSBP’0821 Some Experimental Results Not too positive … (???) CNF to DNF conversion results: Time [s]Terms BenchmarkBoolToolMVSISBoolToolMVSIS cordic cps duke ex ex misex3c pdc rd spla IRRELEVANT!

IWSBP’0822 Conclusions BoolTool is a tool for doing Boolean operations upon Boolean functions, or, better, Boolean networks No such a general tool is known to exist It cannot compete in performance with dedicated tools (synthesis tools, SAT solvers) Ternary tree minimization algorithm has been developed as a byproduct The tool is available to publics at