01/25/2005 Combinationality of cyclic circuits EECS 290A – Spring 2005 UC Berkeley.

Slides:



Advertisements
Similar presentations
Switching circuits Composed of switching elements called “gates” that implement logical blocks or switching expressions Positive logic convention (active.
Advertisements

Chapter 9 Asynchronous Sequential Logic 9-1 Introduction Introduction 9-2 Analysis Procedure Analysis ProcedureAnalysis Procedure 9-3 Circuits With Latches.
Asynchronous Sequential Logic
ECE 553: TESTING AND TESTABLE DESIGN OF DIGITAL SYSTES Logic Simulation.
Timing Analysis Predicated on a topological ordering. l 1 = 1 level: l 2 = 1 x y x y z z c s g1g1 g4g4 g3g3 g2g2 g5g5 l 3 = 2 l 5 = 2 l 4 = 3.
Global Flow Optimization (GFO) in Automatic Logic Design “ TCAD91 ” by C. Leonard Berman & Louise H. Trevillyan CAD Group Meeting Prepared by Ray Cheung.
ISBN Chapter 3 Describing Syntax and Semantics.
Copyright © 2006 Addison-Wesley. All rights reserved. 3.5 Dynamic Semantics Meanings of expressions, statements, and program units Static semantics – type.
CS 355 – Programming Languages
RTL Hardware Design by P. Chu Chapter 161 Clock and Synchronization.
CS 151 Digital Systems Design Lecture 25 State Reduction and Assignment.
1 Basic abstract interpretation theory. 2 The general idea §a semantics l any definition style, from a denotational definition to a detailed interpreter.
Copyright 2001, Agrawal & BushnellDay-1 PM Lecture 4a1 Design for Testability Theory and Practice Lecture 4a: Simulation n What is simulation? n Design.
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Introduction.
Cyclic Combinational Circuits: Analysis for Synthesis Marc D. Riedel and Jehoshua Bruck California Institute of Technology.
The Synthesis of Cyclic Combinational Circuits Marc D. Riedel and Jehoshua Bruck California Institute of Technology {riedel,
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Asynchronous Sequential Logic
Cyclic Combinational Circuits Theory Marc D. Riedel California Institute of Technology Marrella splendensCyclic circuit (500 million year old Trilobite)(novel.
Asynchronous Machines
Marc Riedel Ph.D. Defense, Electrical Engineering, Caltech November 17, 2003 Combinational Circuits with Feedback.
4/25/08Prof. Hilfinger CS164 Lecture 371 Global Optimization Lecture 37 (From notes by R. Bodik & G. Necula)
Models of Computation for Embedded System Design Alvise Bonivento.
Continuous Retiming EECS 290A Sequential Logic Synthesis and Verification.
1 Exact Two-Level Minimization of Hazard-Free Logic with Multiple Input Changes Montek Singh Tue, Oct 16, 2007.
Cyclic Combinational Circuits and Other Novel Constructs Marc D. Riedel California Institute of Technology Marrella splendensCyclic circuit (500 million.
Data Flow Analysis Compiler Design Nov. 8, 2005.
Timing Analysis of Cyclic Combinational Circuits Marc D. Riedel and Jehoshua Bruck California Institute of Technology IWLS, Temecula Creek, CA, June 4,
01/27/2005 Combinationality of cyclic definitions EECS 290A – Spring 2005 UC Berkeley.
Describing Syntax and Semantics
Data Flow Analysis Compiler Design Nov. 8, 2005.
Programming Language Semantics Denotational Semantics Chapter 5 Part III Based on a lecture by Martin Abadi.
03/08/2005 © J.-H. Jiang1 Retiming and Resynthesis EECS 290A – Spring 2005 UC Berkeley.
ENGIN112 L25: State Reduction and Assignment October 31, 2003 ENGIN 112 Intro to Electrical and Computer Engineering Lecture 25 State Reduction and Assignment.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Digital Computer Design Fundamental
1 COMP541 State Machines Montek Singh Feb 8, 2012.
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
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.
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS 363 Comparative Programming Languages Semantics.
Linear Algebra. Circuits The circuits in computers and other input devices have inputs, each of which is either a 0 or 1, the output is also 0s and 1s.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
Timing Analysis Predicated on a topological ordering. l 1 = 1 level: l 2 = 1 x y x y z z c s g1g1 g4g4 g3g3 g2g2 g5g5 l 3 = 2 l 5 = 2 l 4 = 3.
Semantics In Text: Chapter 3.
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.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
Introduction to ASIC flow and Verilog HDL
The Synthesis of Cyclic Combinational Circuits Marc D.Riedel, Jehoshua Bruck California Institute of Technology Presenter : Chi-Yun Cheng.
03/31/031 ECE 551: Digital System Design & Synthesis Lecture Set 8 8.1: Miscellaneous Synthesis (In separate file) 8.2: Sequential Synthesis.
Chapter 8. Sequential machine. Sequential machine M = ( I, O, S, , ) I : set of input O : set of output S : set of states  (state transition) : I 
Manufacture Testing of Digital Circuits
1 COMP541 Finite State Machines - 1 Montek Singh Sep 22, 2014.
Classical Control in Quantum Programs Dominique Unruh IAKS, Universität Karlsruhe Founded by the European Project ProSecCo IST
Standard & Canonical Forms COE 202 Digital Logic Design Dr. Aiman El-Maleh College of Computer Sciences and Engineering King Fahd University of Petroleum.
DAOmap: A Depth-optimal Area Optimization Mapping Algorithm for FPGA Designs Deming Chen, Jason Cong , Computer Science Department , UCLA Presented.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
1 COMP541 Sequential Logic – 2: Finite State Machines Montek Singh Feb 29, 2016.
The Analysis of Cyclic Circuits with Boolean Satisfiability
VLSI Testing Lecture 5: Logic Simulation
Timing Model Start Simulation Delay Update Signals Execute Processes
VLSI Testing Lecture 4: Testability Analysis
CH7 Multilevel Gate Network
“Definition” of Combinational
VLSI Testing Lecture 4: Testability Analysis
ECE 551: Digital System Design & Synthesis
ECE 352 Digital System Fundamentals
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
Presentation transcript:

01/25/2005 Combinationality of cyclic circuits EECS 290A – Spring 2005 UC Berkeley

Outline Sequential circuits Synchronous vs. asynchronous Combinational circuits Definition Acyclic vs. cyclic circuits Cyclic circuits Origins and applications When cyclic circuits behave combinationally Up-bounded inertial delay model and ternary simulation Analysis and synthesis of cyclic circuits

Sequential circuits Synchronous vs. asynchronous implementations of finite state machines With/without reference clock Hybrid implementations (e.g. GALS, quasi delay- insensitive designs, de-synchronization, etc.) Strong/weak timing assumptions

Sequential circuits Sources of sequentiality (output valuation depends on input history) Feedback (cyclicity), or Delay

Combinational circuits Conceptual definition of combinational circuits For any input assignment, the output valuates to the same fixed value after a bounded amount of time Operational definition of combinational circuits Depending on timing and circuit (e.g. static CMOS, floating mode, etc.) model Here we use the up-bounded inertial (UIN) delay model [Brozowski & Seger 95] Ideal delay – glitches are persistent Inertial delay – small glitches are smoothed out

Up-bounded inertial delay model Up-bounded inertial delay model satisfies (0 <  (t) < D) 1. If z(t) changes from v to v’ at time t1, then there exists  > 0 such that x(t) = v’ for t1 –  ≤ t < t1. 2. If x(t) = v for t1 ≤ t < t1 + D, then there exists a time t2, t1 ≤ t2 < t1 + D such that z(t) = v for t2 ≤ t < t1 + D.

Combinationality and cyclicity Acyclic circuits are asymptotically combinational Circuits with delay elements without feedback are combinational in the asymptotic sense Cyclic circuits are not necessarily sequential or physically undesirable (e.g. oscillation, non- determinism, etc.) However, must be very careful in designing cyclic circuits

So cyclic combinational circuits? Why ? Possible area reduction for hardware (code-size reduction for software) Other advantages? Why not ? Sophisticated functional and timing analysis Still controversial

Early history about combinational cyclic circuits It is argued that, under some circumstances, cyclicity is a necessity to generate minimal combinational circuits [Kautz 70] This example is not good for all possible delay assignments [Shiple 96]

Early history about combinational cyclic circuits A more convincing family of examples [Rivest 77] The smallest acyclic implementation of the 2n output functions requires (3n – 2) two-fanin gates.

Recent interests in the EDA community Cyclic definitions occur commonly in high-level system designs [Stok 92] Not all cyclic dependencies are sequential or physically undesirable, e.g., z = if(c) then F(G(x)) else G(F(x)) More recently, make acyclic functions cyclic (to reduce area) [Riedel & Bruck 03]

Recent interests in the synchronous- language community Synchronous languages are popularly used in the design of real-time control systems Signals synchronized by global clock ticks Internal evaluations take zero time Instantaneous valuations of signals Esterel language allows simultaneous cyclic definitions of functional valuations Adopt the analysis of combinational cyclic circuits

Questions to be answered How to analyze if a cyclic circuit is “good” ? How to make cyclic circuits acyclic ? How to make acyclic circuits cyclic ?

Cyclic-circuit example 1 Combinational (Assume gates and wires can have arbitrary delays)

Cyclic-circuit example 2 Combinational but with internal oscillation (Assume gates and wires can have arbitrary delays)

Cyclic-circuit example Not combinational even though functional analysis says so

When cyclic circuits behave combinationally Malik’s procedure [Malik 94] Select a cutset Perform ternary simulation Circuit is combinational iff, for any input assignment, each output valuates to either 0 or 1 after the simulation reaches a fixed point.

Ternary simulation Let “  ” denote the unknown value (the least element in the lattice with information partial order) Monotonicity is important for a fixed- point computation to guarantee termination Some examples F: {0,1,  } → {0,1,  }

Ternary simulation – example 1 Select a cutset, at (y,Y) say Let y have unknown value  Valuate all signals w.r.t. some input assignment

Ternary simulation – example 2 Not combinational

Ternary simulation – example 3 Combinational

Symbolic analysis For each signal s in the circuit, introduce two characteristic functions f s 0 (x) and f s 1 (x) such that f s 0 (x) = 1 iff input assignment x makes s valuates to 0 f s 1 (x) = 1 iff input assignment x makes s valuates to 1 Thus f s  (x) = ¬(f s 0 (x)  f s 1 (x) ) Ternary simulation are performed with symbolic computation Initially, PI variable x i has f x i 0 = ¬x i and f x i 1 = x i, and all other signals s has f s 0 = 0 and f s 1 = 0 In every iteration, simulate the acyclic circuit (due a cutset) in topological order from PI to PO with symbolic computation for each gate E.g., for w := AND(u,v), we have f w 0 = f u 0  f v 0 and f w 1 = f u 1  f v 1 From iteration t-1 to iteration t, update cutset f y 0[t] (x) := f Y 0[t -1] (x) and f y 0[t] (x) := f Y 0[t -1] (x) Simulation terminates when all cutset variable y has f y 0[t] (x) = f y 0[t -1] (x) and f y 1[t] (x) = f y 1[t -1] (x) Upon termination, the circuit is combinational iff every PO variable z i has f z i  = 0

Exactness of combinationality analysis Combinationality analysis using ternary simulation is exact under the UIN delay model [Shiple 96] However, UIN delay model might seem somewhat conservative (large glitches may be persistent) The analysis is also exact under up-bounded ideal delay model (?)

Complexity of combinationality analysis For any input assignment, ternary simulation converges in at most k iterations, where k is the cutset size Determining if a cyclic circuit is combinational is co-NP complete Find some input vector that makes the output behave non-deterministically

Making cyclic circuits acyclic Why? Most CAD algorithms do not support cyclic circuits (not separated by registers) To avoid complicated analysis and optimization How? In symbolic analysis, we get f z i 0 and f z i 1 for every primary output z i. By that, we know the function for z i, and can derive an acyclic implementation. [Malik 94], [Halbwachs & Maraninchi 95], [Edwards 03]

Other applications of combinationality analysis Constructive semantics in Esterel language Translate a program (with cyclic definitions) into a circuit netlist and then perform combinationality analysis

Synthesis of cyclic circuits Perform Boolean resubstitution as much as possible [Riedel & Bruck 03] Not restricted to the topological constraint of acyclicity Generalized Boolean resubstitution

Boolean resubstitution Given a Boolean function f, try to express f with another function g. E.g. f := abc + acd’ + abd g := a (b + d’) Rewriting f in terms of g yields f := (c + d) g Note that resubstitution is performed at the functional level

Synthesis of cyclic circuits Requirement Phrase the ternary simulation at the functional level: For every input assignment, there must be some signal valuating to either 0 or 1 such that all cyclic dependencies are broken

Synthesis of cyclic circuits The marginal operator [Riedel & Bruck 03] f  (x 1,…,x n )   x 1,…,x n. (f  x 1 )    (f  x n ) (f  x i )  f  x i =0 xnor f  x i =1 Condition C for a “network” N to be combinational C(N) = (f 1  I 1 )  C(N  f 1 )    (f k  I k )  C(N  f k ), where I i is the set of internal variables that f i depends upon (f i  I i ) denotes the condition where the valuation of f i is independent of the variables in I i N  f i denotes the subnetwork with every occurrence of f i substituted with its corresponding global function (or target function in [Riedel & Bruck 03]) in terms of PI variables

Cyclify acyclic functions – example 1 Consider network N 1 d  e = a + b’c’ e  f = c + ab’ f  d = b C(N 1  d ) = C(N 1  e ) = C(N 1  f ) = 1 C(N 1 ) = a + b’c’ + c + ab’ + b = 1 Global functions: d = c’(a’+b’) + a’b’ e = a’bc’ + b’(a+c) f = b’(a’+c’) + ab Cyclified functions: d = b’c’ + a’e e = b’(a+c) + c’f’ f = ab + b’d

Cyclify acyclic functions – example 2 Consider network N 2 Global functions: d = c’(a’+b’) + a’b’ e = a’bc’ + b’(a+c) f = b’(a’+c’) + ab Cyclified functions: d = b’f + c’e e = d(a+f’) + b’c f = ae’ + b’d d  (e,f) = bc e  (d,f) = b’c f  (d,e) = a’b C(N 2  d ) = 1 C(N 2  e ) = 0 C(N 2  f ) = b’ + c C(N 2 ) = bc (1) + b’c (0) + a’b (b’+c) = bc

Cyclify acyclic functions General procedure [Riedel & Bruck 03] Branch-and-bound algorithms Start from a “dense” cyclic network. Iteratively delete some dependency edges until the network is combinational. Start from a set of global functions. Iteratively perform resubstitution until combinationality cannot be maintained for any further resubstitution.

What’s missing? Purely functional analysis cannot guarantee well- behaved circuitry! [JMB 04] Non-functional restrictions need to be imposed. f := ¬a h  ¬b ¬h g := ¬a ¬b f h := a b  ¬g

Some possible non-functional restrictions Exclude axioms (x  ¬x) = true and (x  ¬x) = false from the marginal operator Add additional minterms f := ¬a h  ¬b ¬h  ¬a ¬b g := ¬a ¬b f h := a b  ¬g Other approaches ?

Timing analysis of cyclic circuits Topological longest paths may not be an adequate upper bound Following the ternary simulation procedure to determine longest paths False paths?

Summaries What we learned How to tell if a cyclic circuit is combinational How to make cyclic circuits acyclic How to synthesize cyclic circuits from acyclic functions What’s coming Software synthesis rather than hardware Combinationality at a higher abstraction level

References [Kautz 70] W. Kautz. The necessity of closed loops in minimal combinational circuits. IEEE Trans. On Computers, pp , Feb [Rivest 77] R. Rivest. The necessity of feedback in minimal monotone combinational circuits. IEEE Trans. on Computers, pp , [Stok 92] L. Stok. False loops through resource sharing. In Proc. ICCAD, pp , [Malik 94] S. Malik. Analysis of cyclic combinational circuits. IEEE Trans. on CAD, pp , [Brozowski & Seger 95] J. Brozowski & C.-J. Seger. Asynchronous circuits. Springer-Verlag, [Halbwachs & Maraninchi 95] N. Halbwachs & F. Maraninchi. On the symbolic analysis of combinational loops in circuits and synchronous programs. In Proc. Euromicro, [Shiple 96] T. Shiple. Formal analysis of synchronous circuits. Ph.D. thesis, UCB, [Edwards 03] S. Edwards. Making cyclic circuits acyclic. In Proc. DAC, [Riedel & Bruck 03] M. Riedel & J. Bruck. The synthesis of cyclic combinational circuits. In Proc. DAC, Cyclic combinational circuits: analysis for synthesis. In Proc. IWLS, [JMB 04] On breakable cyclic definitions. In Proc. ICCAD, 2004.