The BDS Circuit Synthesis System What it Does and Doesn’t Do What it Is BDS (BDD Based Logic Optimization System?) is a multi-level circuit optimization system that uses local BDD representations for circuit optimization BDS is written by Congguang Yang and Maciej Ciesielski at the University of Massachusets How it Works (very briefly) Builds local BDDs to represent portions of a boolean network (and therefore can handle arbitrarily large circuits without memory blowup) Looks for dominators and generalized dominators to factor and simplify the BDD representation What’s a Dominator, Anyway? A “1-dominator” is a node in a BDD that is situated on every path from the root to the “1” terminal. Similarly, “0-dominators” are defined. It can be shown that the presence of one of these leads to a certain algebraic decomposition of the BDD. “Generalized dominators” are nodes with similar properties with respect to other decompositions. What it Does Takes input as a .blif (Berkeley Logic Interchange Format) file Outputs a circuit in terms of not, and, or, xnor, & implication gates Can output in either .blif or .dot (for GraphVis) Beats SIS (the standard multilevel circuit minimization tool) on a handful of benchmarks .BLIF files Might look something like this .model model_name .inputs i1 i2 i3 i4 .outputs o1 .names i1 i2 i3 i4 o1 1-1- 1 10-1 1 110- 1 .end # i am a comment What it Doesn’t Do Guarantee optimal circuits (even in small cases) – but it does find them for some large cases Use an arbitrary gate library Do any internal don’t care based optimization Circuit Optimization - starring don’t cares One paradigm of circuit optimization is to iteratively look at relatively small subcircuits, and replace them with optimized versions. It is almost inevitable that the subcircuits will never recieve certain input configurations, or alternatively that certain output configurations are completely equivalent. This yields more freedom in the choice of a replacement subcircuit – which of course can lead to smaller circuits. Don’t Cares -in two flavors Satisfiability: The set of inputs that will never occur to a given subcircuit. Observability: The set of inputs for which the subcircuit does not affect the circuit’s value The union of these sets form the don’t care set of a subcircuit Don’t Cares -in quantum circuits Quantum computers have don’t care’s of their own The “work bits” ubiquitous in quantum algorithms are the reversible equivalent of classical don’t cares (why?) Because of the probabilistic measurement step, a new sort of don’t cares (with no classical analogue) is introduced.