Determination of Logic Reversibility in Reduced Ordered Binary Decision Diagrams Zakaria Hamza CS6805: Logic Synthesis Final Project Professor: Dr. Gerhard.

Slides:



Advertisements
Similar presentations
Operating System Structures
Advertisements

Operating Systems Manage system resources –CPU scheduling –Process management –Memory management –Input/Output device management –Storage device management.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Logic Circuits Design presented by Amr Al-Awamry
DETAILED DESIGN, IMPLEMENTATIONA AND TESTING Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 Combinational Logic Design&Analysis. 2 Introduction We have learned all the prerequisite material: – Truth tables and Boolean expressions describe functions.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
Realization of Incompletely Specified Reversible Functions Manjith Kumar Ying Wang Natalie Metzger Bala Iyer Marek Perkowski Portland Quantum Logic Group.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
MotoHawk Training Model-Based Design of Embedded Systems.
1 Homework Reading –Tokheim, Section 5-10, 7-4 Machine Projects –Continue on MP4 Labs –Continue labs with your assigned section.
PRIME Antenna Inc. Antenna Test Team Adam Straubinger Alan Condino Thanh Hong Ronnie Berg Sam Gregorio.
A Transformation Based Algorithm for Reversible Logic Synthesis D. Michael Miller Dmitri Maslov Gerhard W. Dueck Design Automation Conference, 2003.
Exploiting Symmetry in SAT-Based Boolean Matching for Heterogeneous FPGA Technology Mapping Yu Hu 1, Victor Shih 2, Rupak Majumdar 2 and Lei He 1 1 Electrical.
Marakas: Decision Support Systems, 2nd Edition © 2003, Prentice-Hall Chapter Chapter 7: Expert Systems and Artificial Intelligence Decision Support.
Students:Gilad Goldman Lior Kamran Supervisor:Mony Orbach Mid-Semester Presentation Spring 2005 Network Sniffer.
WSN Simulation Template for OMNeT++
Engineering Models and Circuit Realization of Quantum State Machines.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Applying Edge Partitioning to SPFD's 1 Applying Edge Partitioning to SPFD’s 219B Project Presentation Trevor Meyerowitz Mentor: Subarna Sinha Professor:
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Combinational Logic Design
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
9/15/09 - L22 Sequential Circuit Design Copyright Joanne DeGroat, ECE, OSU1 Sequential Circuit Design Creating a sequential circuit to address a.
File System. NET+OS 6 File System Architecture Design Goals File System Layer Design Storage Services Layer Design RAM Services Layer Design Flash Services.
Linux Basics CS 302. Outline  What is Unix?  What is Linux?  Virtual Machine.
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: BDD BDDs applied in equivalence checking.
University of Maryland Compiler-Assisted Binary Parsing Tugrul Ince PD Week – 27 March 2012.
UPC/SHMEM PAT High-level Design v.1.1 Hung-Hsun Su UPC Group, HCS lab 6/21/2005.
©2008 Pearson Education, Inc., Upper Saddle River, NJ. All rights reserved. This material is protected under all copyright laws as they currently exist.
An Introduction to Software Architecture
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
Grob Systems, Inc., the customer, requires an industrial computer system that will have a function of acquiring raw data, processing the data, presenting.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
S2008Final_part1.ppt CS11 Introduction to Programming Final Exam Part 1 S A computer is a mechanical or electrical device which stores, retrieves,
BE-SECBS FISA 2003 November 13th 2003 page 1 DSR/SAMS/BASP IRSN BE SECBS – IRSN assessment Context application of IRSN methodology to the reference case.
The Performance of Micro-Kernel- Based Systems H. Haertig, M. Hohmuth, J. Liedtke, S. Schoenberg, J. Wolter Presentation by: Seungweon Park.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Introduction to structured VLSI Projects 4 and 5 Rakesh Gangarajaiah
Compilers for Embedded Systems Ram, Vasanth, and VJ Instructor : Dr. Edwin Sha Synthesis and Optimization of High-Performance Systems.
GAYA Analyzer SDD Presentation. GAYA Analyzer Introduction OMS40G256 is a hardware device used for detection of radioactive radiation for medical imaging.
OPERATING SYSTEM - program that is loaded into the computer and coordinates all the activities among computer hardware devices. -controls the hardware.
Final Presentation Implementation of DSP Algorithm on SoC Student : Einat Tevel Supervisor : Isaschar Walter Accompanying engineer : Emilia Burlak The.
Wiimote/Kinect Lab Midterm Update Senior Design December 2011, Group 16 Adviser: Dr. Tom Daniels Brenton Hankins Rick Hanton Harsh Goel Jeff Kramer.
Lecture 18: Object-Oriented Design
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
Full and Para Virtualization
1 CS 151: Digital Design Chapter 3: Combinational Logic Design 3-1Design Procedure CS 151: Digital Design.
CS151 Introduction to Digital Design Chapter 3: Combinational Logic Design 3-1 Design Procedure 1Created by: Ms.Amany AlSaleh.
Chapter – 8 Software Tools.
1 Operating System Software What, Where, Why, and How? Startup routines ROM BIOS POST Device Drivers User Interface – Text or GUI Menus and dialog boxes.
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
Hello world !!! ASCII representation of hello.c.
PROWIND (Positioning Relay over Wirelessly Networked Devices) Team Members: Alexander Smithson, Dian Ding, Yeh Cheng Yuan Graduate Advisor: Eric Liao Faculty.
Simulation Production System Science Advisory Committee Meeting UW-Madison March 1 st -2 nd 2007 Juan Carlos Díaz Vélez.
Circuit Synthesis A logic function can be represented in several different forms:  Truth table representation  Boolean equation  Circuit schematic 
Computer System Structures
The Analysis of Cyclic Circuits with Boolean Satisfiability
Chapter 2: The Linux System Part 2
Modern web applications
Resources and Schedule
MySQL Migration Toolkit
An Introduction to Software Architecture
Modern web applications
13 Digital Logic Circuits.
Operating Systems Lecture 3.
Discrete Controller Synthesis
Presentation transcript:

Determination of Logic Reversibility in Reduced Ordered Binary Decision Diagrams Zakaria Hamza CS6805: Logic Synthesis Final Project Professor: Dr. Gerhard Dueck

Outline Achieved Goals Achieved Goals Milestones of Project Milestones of Project Outstanding Issues Outstanding Issues Results Results Logic Synthesis Algorithm Logic Synthesis Algorithm Discussions and Conclusion Discussions and Conclusion Zakaria Hamza CS6805: Logic Synthesis Final Project

Achieved Goals Determination of basic function properties: Determination of basic function properties: Tautological Tautological Reversible Reversible Contradictory Contradictory Module-based interpreter included for function development Module-based interpreter included for function development Ability to map to and from PLA and SPEC files directly Ability to map to and from PLA and SPEC files directly BDD graph generation BDD graph generation Zakaria Hamza CS6805: Logic Synthesis Final Project

Achieved Goals Demonstration of the logic synthesis algorithm: Demonstration of the logic synthesis algorithm: Detect input type Detect input type Use fastest algorithm to derive properties of a binary function and output Use fastest algorithm to derive properties of a binary function and output 1 st image: sample dual variable ROBDD 1 st image: sample dual variable ROBDD 2 nd image: sample truth table derived from specification and PLA file. 2 nd image: sample truth table derived from specification and PLA file. Zakaria Hamza CS6805: Logic Synthesis Final Project

Milestones of Project Zakaria Hamza CS6805: Logic Synthesis Final Project : Pending : Completed

Outstanding Issues Generate reversible functions from logic function specifications Generate reversible functions from logic function specifications Determine if patterns are found within functions: Determine if patterns are found within functions: Transitivity Transitivity Symmetry Symmetry Simplification patterns Simplification patterns Decide best option to analyze any given PLA/SPEC configuration Decide best option to analyze any given PLA/SPEC configuration Optimize incompletely specified functions Optimize incompletely specified functions Zakaria Hamza CS6805: Logic Synthesis Final Project

Results (Runtime) Java-Based Logic Engine: Java-Based Logic Engine: Cross-platform (requires or newer) Cross-platform (requires or newer) Compatible with UNIX command line based packages (i.e.: CUDD) Compatible with UNIX command line based packages (i.e.: CUDD) Includes powerful source code for handling BDD structures using JDD Includes powerful source code for handling BDD structures using JDD Relies on a virtual machine and does not drivers or platform specific features Relies on a virtual machine and does not drivers or platform specific features Uses system calls if available Uses system calls if available Zakaria Hamza CS6805: Logic Synthesis Final Project

Results (Toolbox) Includes C and POSIX command line verification programs Includes C and POSIX command line verification programs PLA and SPEC interchangeability PLA and SPEC interchangeability Programmed adaptability to GraphViz based graph data structures (for large numbers of variables) Programmed adaptability to GraphViz based graph data structures (for large numbers of variables) Supports modifying logic functions Supports modifying logic functions Determines if a function is reversible or could be made reversible using an exponential algorithm Determines if a function is reversible or could be made reversible using an exponential algorithm Zakaria Hamza CS6805: Logic Synthesis Final Project

Results (GUI) Planned support for modification of Karnaugh maps, Toffoli networks, BDD and other logic display formalisms Planned support for modification of Karnaugh maps, Toffoli networks, BDD and other logic display formalisms Allow user input and interaction with display formalism structures Allow user input and interaction with display formalism structures UI engine used to define customizable operations and functions UI engine used to define customizable operations and functions Toolbox is integrated with UI Toolbox is integrated with UI Zakaria Hamza CS6805: Logic Synthesis Final Project

Logic Synthesis Algorithm Input PLA/SPEC/BDD data structures Input PLA/SPEC/BDD data structures Use dynamic programming to analyze function and generate as much information about it as possible Use dynamic programming to analyze function and generate as much information about it as possible Module section for specific functionality Module section for specific functionality Reversibility Reversibility Simplification/Reduction Simplification/Reduction Contradiction Contradiction Quine-McCluskey/SAT/Circuit optional (brute force) algorithms, etc. Quine-McCluskey/SAT/Circuit optional (brute force) algorithms, etc. Create BDD Create BDD Convert to ROBDD Convert to ROBDD User interface manual specifications (inherited functions from Quiver/RevLib as well) User interface manual specifications (inherited functions from Quiver/RevLib as well) Heuristic algorithm to generate output function or graph Heuristic algorithm to generate output function or graph Zakaria Hamza CS6805: Logic Synthesis Final Project

Further Works Resolve outstanding issues (further developing a thesis base) Resolve outstanding issues (further developing a thesis base) Optimize code for better performance and increased range of operability Optimize code for better performance and increased range of operability Use sparse matrices to store truth tables Use sparse matrices to store truth tables Optimize algorithm runtime for large numbers of variables (>20) or use hardware with larger addressing modes Optimize algorithm runtime for large numbers of variables (>20) or use hardware with larger addressing modes Zakaria Hamza CS6805: Logic Synthesis Final Project

Discussions and Conclusions Current algorithm consumes exponential resources relative to the number of input variables Current algorithm consumes exponential resources relative to the number of input variables Functions may or may not terminate depending on how effectively virtual memory is used Functions may or may not terminate depending on how effectively virtual memory is used Storing large truth tables is simply infeasible and a graph structure is almost indispensable Storing large truth tables is simply infeasible and a graph structure is almost indispensable Tree-based compression structures may reduce runtime dramatically if properly encoded Tree-based compression structures may reduce runtime dramatically if properly encoded Zakaria Hamza CS6805: Logic Synthesis Final Project