Delay models (I) A B C Real (analog) behaviorAbstract behavior A B C Abstractions are necessary to define delay models manageable for design, synthesis.

Slides:



Advertisements
Similar presentations
Abdullah Said Alkalbani University of Buraimi
Advertisements

Date of Birth Design Problem
Boolean Algebra Variables: only 2 values (0,1)
CSE 370 Sample Final Exam Questions. 1) Logic Minimization CD AB F = Σm(0,6,7,8,9,11,15) + d(1,13)
- 1 - Using an SMT Solver and Craig Interpolation to Detect and Remove Redundant Linear Constraints in Representations of Non-Convex Polyhedra Christoph.
15 October 2013Birkbeck College, U. London1 Introduction to Computer Systems Lecturer: Steve Maybank Department of Computer Science and Information Systems.
A Simple ALU Binary Logic.
Lab 8 : Multiplexer and Demultiplexer Systems:
Part 4: combinational devices
Basics Combinational Circuits Sequential Circuits
ASIC 121: Practical VHDL Digital Design for FPGAs Tutorial 2 October 4, 2006.
Digital Logic & Design Lecture No. 3. Number System Conversion Conversion between binary and octal can be carried out by inspection.  Each octal digit.
ELECTRONICS TECHNOLOGY Digital Devices I Karnaugh Maps
Synthesis For Finite State Machines. FSM (Finite State Machine) Optimization State tables State minimization State assignment Combinational logic optimization.
Finite State Machines Finite state machines with output
Node Optimization. Simplification Represent each node in two level form Use espresso to minimize each node Several simplification procedures which vary.
FUNCTION OPTIMIZATION Switching Function Representations can be Classified in Terms of Levels Number of Levels, k, is Number of Unique Boolean (binary)
Ch.6 Logic Verification Standard Cell Design TAIST ICTES Program VLSI Design Methodology Hiroaki Kunieda Tokyo Institute of Technology.
Glitches & Hazards.
Reading1: An Introduction to Asynchronous Circuit Design Al Davis Steve Nowick University of Utah Columbia University.
Timed Automata.
1 BalsaOpt a tool for Balsa Synthesis Francisco Fernández-Nogueira, UPC (Spain) Josep Carmona, UPC (Spain)
1 Advanced Digital Design Synthesis of Control Circuits by A. Steininger and J. Lechner Vienna University of Technology.
RTL Hardware Design by P. Chu Chapter 161 Clock and Synchronization.
Hazard-free logic synthesis and technology mapping I Jordi Cortadella Michael Kishinevsky Alex Kondratyev Luciano Lavagno Alex Yakovlev Univ. Politècnica.
Hardware and Petri nets Synthesis of asynchronous circuits from Signal Transition Graphs.
Logic Decomposition of Asynchronous Circuits Using STG Unfoldings Victor Khomenko School of Computing Science, Newcastle University, UK.
Logic Synthesis for Asynchronous Circuits Based on Petri Net Unfoldings and Incremental SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University.
Detecting State Coding Conflicts in STGs Using Integer Programming Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne.
Hardware and Petri nets: application to asynchronous circuit design Jordi CortadellaUniversitat Politècnica de Catalunya, Spain Michael KishinevskyIntel.
Formal Verification of Safety Properties in Timed Circuits Marco A. Peña (Univ. Politècnica de Catalunya) Jordi Cortadella (Univ. Politècnica de Catalunya)
Introduction to asynchronous circuit design: specification and synthesis Jordi Cortadella, Universitat Politècnica de Catalunya, Spain Michael Kishinevsky,
Introduction to asynchronous circuit design: specification and synthesis Part IV: Synthesis from HDL Other synthesis paradigms.
© Ran GinosarAsynchronous Design and Synchronization 1 VLSI Architectures Lecture 2: Theoretical Aspects (S&F 2.5) Data Flow Structures.
Introduction to asynchronous circuit design: specification and synthesis Part III: Advanced topics on synthesis of control circuits from STGs.
1 Logic design of asynchronous circuits Part II: Logic synthesis from concurrent specifications.
Introduction to asynchronous circuit design: specification and synthesis Part II: Synthesis of control circuits from STGs.
Combining Decomposition and Unfolding for STG Synthesis (application paper) Victor Khomenko 1 and Mark Schaefer 2 1 School of Computing Science, Newcastle.
1 Logic synthesis from concurrent specifications Jordi Cortadella Universitat Politecnica de Catalunya Barcelona, Spain In collaboration with M. Kishinevsky,
1 Clockless Logic Prof. Montek Singh Feb. 3, 2004.
Asynchronous Interface Specification, Analysis and Synthesis M. Kishinevsky Intel Corporation J. Cortadella Technical University of Catalonia.
1 Logic design of asynchronous circuits Part III: Advanced topics on synthesis.
Jordi Cortadella, Universitat Politècnica de Catalunya, Spain
Visualisation and Resolution of Coding Conflicts in Asynchronous Circuit Design A. Madalinski, V. Khomenko, A. Bystrov and A. Yakovlev University of Newcastle.
Bridging the gap between asynchronous design and designers Part II: Logic synthesis from concurrent specifications.
Resolution of Encoding Conflicts by Signal Insertion and Concurrency Reduction based on STG Unfoldings V. Khomenko, A. Madalinski and A. Yakovlev University.
STG-based synthesis and Petrify J. Cortadella (Univ. Politècnica Catalunya) Mike Kishinevsky (Intel Corporation) Alex Kondratyev (University of Aizu) Luciano.
Engineering Models and Design Methods for Quantum State Machines.
1 Exact Two-Level Minimization of Hazard-Free Logic with Multiple Input Changes Montek Singh Tue, Oct 16, 2007.
1 State Encoding of Large Asynchronous Controllers Josep Carmona and Jordi Cortadella Universitat Politècnica de Catalunya Barcelona, Spain.
Synthesis of Asynchronous Control Circuits with Automatically Generated Relative Timing Assumptions Jordi Cortadella, University Politècnica de Catalunya.
A New Type of Behaviour- Preserving Transition Insertions in Unfolding Prefixes Victor Khomenko.
Detecting State Coding Conflicts in STGs Using SAT Victor Khomenko, Maciej Koutny, and Alex Yakovlev University of Newcastle upon Tyne.
1 Petrify: Method and Tool for Synthesis of Asynchronous Controllers and Interfaces Jordi Cortadella (UPC, Barcelona, Spain), Mike Kishinevsky (Intel Strategic.
Charles Kime & Thomas Kaminski © 2008 Pearson Education, Inc. (Hyperlinks are active in View Show mode) Chapter 3 – Combinational Logic Design Part 1 –
Automatic synthesis and verification of asynchronous interface controllers Jordi CortadellaUniversitat Politècnica de Catalunya, Spain Michael KishinevskyIntel.
Derivation of Monotonic Covers for Standard C Implementation Using STG Unfoldings Victor Khomenko.
Asynchronous Circuit Verification and Synthesis with Petri Nets J. Cortadella Universitat Politècnica de Catalunya, Barcelona Thanks to: Michael Kishinevsky.
Sequential Circuits Chapter 4 S. Dandamudi To be used with S. Dandamudi, “Fundamentals of Computer Organization and Design,” Springer,  S.
Reading1: An Introduction to Asynchronous Circuit Design Al Davis Steve Nowick University of Utah Columbia University.
Curtis A. Nelson 1 Technology Mapping of Timed Circuits Curtis A. Nelson University of Utah September 23, 2002.
Specification mining for asynchronous controllers Javier de San Pedro† Thomas Bourgeat ‡ Jordi Cortadella† † Universitat Politecnica de Catalunya ‡ Massachusetts.
Structural methods for synthesis of large specifications
Synthesis from HDL Other synthesis paradigms
Asynchronous Interface Specification, Analysis and Synthesis
Synthesis of Speed Independent Circuits Based on Decomposition
Part IV: Synthesis from HDL Other synthesis paradigms
Synthesis of asynchronous controllers from Signal Transition Graphs:
Clockless Logic: Asynchronous Pipelines
Introduction to Silicon Programming in the Tangram/Haste language
Presentation transcript:

Delay models (I) A B C Real (analog) behaviorAbstract behavior A B C Abstractions are necessary to define delay models manageable for design, synthesis and verification. Abstractions introduce optimistic and pessimistic simplifications that must be carefully taken into account.

Delay models (II) Separation between functionality and timing [Muller] Every gate has a zero-delay atomic evaluator (Boolean function) A delay is associated to every output (gate delay model) or every input (wire delay model) Delays can be: Unbounded (arbitrary finite delays) Bounded (within given min/max bounds) Gate delay model Wire delay model

Delay models (III) Gate delay model: delays in gates, no delays in wires Wire delay model: delays in gates and wires

Delay models (IV) Speed-independent circuit Speed-independent circuit: hazard-free under the unbounded gate delay model Delay-insensitive circuit Delay-insensitive circuit: hazard-free under the unbounded wire delay model Quasi-delay -insensitive circuit Quasi-delay -insensitive circuit: delay-insensitive with some isochronic forks

Speed-independent model Pessimistic, since delays are typically bounded Optimistic, since it assumes isochronic forks (negligible skew wrt the receiving gate delays) Efficient synthesis methods exist Isochronic fork

Fundamental mode of operation Circuit Inputs Outputs [Huffman 1964] : The circuit/environment interact with two phases (1) The environment sends inputs to the circuit (2) The circuit computes the outputs and the state signals The environment does not send new inputs until the circuit stabilizes Normal Fundamental Mode: Only one input changes at each communication cycle

Input/Output mode of operation Computation and communication can overlap (according to some specified protocol) Event-based specification models are often used to describe the behavior (e.g., Petri nets). This tutorial will cover the synthesis of speed-independent circuits that work under the I/O mode of operation and are specified using Petri nets.

Delay models for async. circuits Bounded delays (BD): realistic for gates and wires. Technology mapping is easy, verification is difficult Speed independent (SI): Unbounded (pessimistic) delays for gates and negligible (optimistic) delays for wires. Technology mapping is more difficult, verification is easy Delay insensitive (DI): Unbounded (pessimistic) delays for gates and wires. DI class (built out of basic gates) is almost empty Quasi-delay insensitive (QDI): Delay insensitive except for critical wire forks (isochronic forks). In practice it is the same as speed independent BD SI QDI DI

Outline Overview of the synthesis flow Specification State graph and next-state functions State encoding Implementability conditions Speed-independent circuit Complex gates C-element architecture Review of some advanced topics

Book and synthesis tool J. Cortadella, M. Kishinevsky, A. Kondratyev, L. Lavagno and A. Yakovlev, Logic synthesis for asynchronous controllers and interfaces, Springer-Verlag, 2002 petrify:

Design flow Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping

Specification x y z x+ x- y+ y- z+ z- Signal Transition Graph (STG) x y z

Token flow x y z x+ x- y+ y- z+ z-

State graph x+ x- y+ y- z+ z- xyz 000 x+ 100 y+ z+ y x y+ z- 010 y-

Next-state functions xyz 000 x+ 100 y+ z+ y x y+ z- 010 y-

Gate netlist x z y

Design flow Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping

VME bus Device LDS LDTACK D DSr DSw DTACK VME Bus Controller Data Transceiver Bus DSr LDS LDTACK D DTACK Read Cycle

STG for the READ cycle LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ LDS LDTACK D DSr DTACK VME Bus Controller

Choice: Read and Write cycles DSr+ LDS+ LDTACK+ D+ DTACK+ DSr- D- DTACK- LDS- LDTACK- DSw+ D+ LDS+ LDTACK+ D- DTACK+ DSw- DTACK- LDS- LDTACK-

Choice: Read and Write cycles DTACK- DSr+ LDS+ LDTACK+ D+ DTACK+ DSr- D- LDS- LDTACK- DSw+ D+ LDS+ LDTACK+ D- DTACK+ DSw-

Circuit synthesis Goal: Derive a hazard-free circuit under a given delay model and mode of operation

Speed independence Delay model Unbounded gate / environment delays Certain wire delays shorter than certain paths in the circuit Conditions for implementability: Consistency Complete State Coding Persistency

Design flow Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping

STG for the READ cycle LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ LDS LDTACK D DSr DTACK VME Bus Controller

Binary encoding of signals DSr+ DTACK- LDS- LDTACK- D- DSr-DTACK+ D+ LDTACK+ LDS+

Binary encoding of signals DSr+ DTACK- LDS- LDTACK- D- DSr-DTACK+ D+ LDTACK+ LDS (DSr, DTACK, LDTACK, LDS, D)

Excitation / Quiescent Regions QR (LDS+) QR (LDS-) ER (LDS+) ER (LDS-) LDS- LDS+ LDS-

Next-state function 0 1 LDS- LDS+ LDS

Karnaugh map for LDS DTACK DSr D LDTACK DTACK DSr D LDTACK LDS = 0 LDS = /1?

Design flow Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping

Concurrency reduction LDS- LDS+ LDS DSr+

Concurrency reduction LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+

State encoding conflicts LDS- LDTACK- LDTACK+ LDS

Signal Insertion LDS- LDTACK- D- DSr- LDTACK+ LDS+ CSC- CSC

Design flow Specification (STG) State Graph SG with CSC Next-state functions Decomposed functions Gate netlist Reachability analysis State encoding Boolean minimization Logic decomposition Technology mapping

Complex-gate implementation

Implementability conditions Consistency Rising and falling transitions of each signal alternate in any trace Complete state coding (CSC) Next-state functions correctly defined Persistency No event can be disabled by another event (unless they are both inputs)

Implementability conditions Consistency + CSC + persistency There exists a speed-independent circuit that implements the behavior of the STG (under the assumption that ay Boolean function can be implemented with one complex gate)

Persistency a- c+ b+b+ b+b+ a c b a c b is this a pulse ? Speed independence glitch-free output behavior under any delay

a+ b+ c+ d+ a- b- d- a+ c-a a+ b+ c+ a- b- c- a+ c- a- d- d+

a+ b+ c+ a- b- c- a+ c- a- d- d+ ab cd ER(d+) ER(d-)

ab cd a+ b+ c+ a- b- c- a+ c- a- d- d+ Complex gate

Implementation with C elements C R S z S+ z+ S- R+ z- R- S (set) and R (reset) must be mutually exclusive S must cover ER(z+) and must not intersect ER(z-) QR(z-) R must cover ER(z-) and must not intersect ER(z+) QR(z+)

ab cd a+ b+ c+ a- b- c- a+ c- a- d- d+ C S R d

a+ b+ c+ a- b- c- a+ c- a- d- d+ C S R d but...

a+ b+ c+ a- b- c- a+ c- a- d- d+ C S R d Assume that R=ac has an unbounded delay Starting from state 0000 (R=1 and S=0): a+ ; R- ; b+ ; a- ; c+ ; S+ ; d+ ; R+ disabled (potential glitch)

ab cd a+ b+ c+ a- b- c- a+ c- a- d- d+ C S R d Monotonic covers

C-based implementations C S R d C d a b c a b c d weak a c d generalized C elements (gC) weak

Speed-independent implementations Implementability conditions Consistency Complete state coding Persistency Circuit architectures Complex (hazard-free) gates C elements with monotonic covers...

Synthesis exercise y- z-w- y+x+ z+ x- w y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ Derive circuits for signals x and z (complex gates and monotonic covers)

Synthesis exercise y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ wx yz Signal x

Synthesis exercise y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ wx yz Signal z

Logic decomposition: example y- z-w- y+x+ z+ x- w y- y+ x- x+ w+ w- z+ z- w- z- y+ x+

Logic decomposition: example yz=1 yz= y- y+ x- x+ w+ w- z+ z- w- z- y+ x y- y+ x- x+ w+ w- z+ z- w- z- y+ x+ C C x y x y w z x y z y z w z w z y

Logic decomposition: example s- s+ s- s=1 s= y+ x- w+ z+ z x+ w- z- y+ x y+ z C C x y x y w z x y z w z w z y s y-

Logic decomposition: example y- z-w- y+x+ z+ x- w+ s- s+ s- s+ s- s=1 s= y+ x- w+ z+ z x+ w- z- y+ x y+ z y-

Speed-independent Netlist LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map

Adding timing assumptions LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map LDTACK- before DSr+ FAST SLOW

Adding timing assumptions DTACK D DSr LDS LDTACK csc map LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ LDTACK- before DSr+

State space domain LDTACK- before DSr+ LDTACK- DSr+

State space domain LDTACK- before DSr+ LDTACK- DSr+

State space domain LDTACK- before DSr+ LDTACK- DSr+ Two more unreachable states

Boolean domain DTACK DSr D LDTACK DTACK DSr D LDTACK LDS = 0 LDS = /1?

Boolean domain DTACK DSr D LDTACK DTACK DSr D LDTACK LDS = 0 LDS = One more DC vector for all signalsOne state conflict is removed

Netlist with one constraint LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK csc map

Netlist with one constraint LDS+LDTACK+D+DTACK+DSr-D- DTACK- LDS-LDTACK- DSr+ DTACK D DSr LDS LDTACK LDTACK- before DSr+ TIMING CONSTRAINT

Signal insertion New signals need to be inserted to solve some synthesis problems (e.g., state encoding, logic decomposition) For each signal s, the events s+ and s- must be inserted while preserving certain behavioral properties (consistency, persistency). Each new signal determines a new partition of states (s=0, s=1)

Signal insertion s=0s=1 s+ s-

From state graphs to Petri nets A state graph may require transformations to meet certain properties (e.g., state encoding). The visualization of a state graph is not very informative. Event-based specifications explicitly represent the relations between events. Resort to the theory of regions

From state graphs to Petri nets a b c c d d e e f f d a b c d ef Region: {2,3}

From state graphs to Petri nets a b c c d d e e f f d a b c d ef Region: {1}

From state graphs to Petri nets a b c c d d e e f f d a b c d ef Not a region: {3,5}

From state graphs to Petri nets a b c c d d e e f f d a b c d ef Region: {0,3,5}

Theory of regions Region: all arcs of any event have the same relationship with the region (enter, exit, no cross). Minimal region: not included in any other region Pre-/post-region of an event: region such that the event exits/enters the region Property: excitation closure The intersection of all pre-regions of an event is the excitation region of the event

Thanks to Steve Nowick (Columbia Univ.)

Burst-Mode Specifications How to specify burst-mode behavior?: Hazard-Free Combinational Network inputs outputs state (several bits) A B C X Y Z input burst output burst A+ C-/ Y- Z+ 1 current state input burst/ output burst 2 next state

Note: -input bursts: must be non-empty (at least 1 input per burst) -output bursts: may be empty (0 or more outputs per burst) Burst-Mode Specifications Example: Burst-Mode (BM) Specification: - Inputs in specified input burst can arrive in any order and at any time - After all inputs arrive, generate output burst A+ C+/ Z- C-/ Z+ C+/ Y+ A-/ Y- A+ B+/ Y+ Z- B- C+/ Z+ C-/ -- Initial Values: ABC = 000 YZ = 01

Burst-Mode Specifications Extended Burst-Mode (XBM): [Yun/Dill ICCAD-93/95] 1. directed dont cares (Rin*): allow concurrent inputs & outputs 2. conditionals ( ): allow sampling of level signals Handles glitchy inputs, mixed sync/async inputs, etc ok+ Rin*/ FRout+ FAin+ Rin*/ FRout- FAin- Rin+/ Aout+ Rin* FAin+/ FRout- Rin-/ Aout- FRout+ Rin-/ Aout- ok- Rin*/ -- Rin+ FAin-/ Aout+ New Features:

Syntax-directed translation 2-Place Ripple Register (= FIFO) [van Berkel] proc (a?T & b!T) begin x0, x1: var T | forever do b! x1; x1 := x0; a? x0 od end Tangram Program Intermediate Handshake Circuit

A Larger Example Intermediate Handshake Circuit

Components communicate using 4-phase handshaking O1: initiates communication O2: completes communication Channel impltn. => use 2 wires: req => start operation ack => operation done (… can be extended to handle data) Background: Channel-Based Communication O1O2 Channel A req ack Active phase Return-to-zero (RTZ) phase passive port active port

Handshake Components: Sequencer 2-Way Sequencer: activated on channel P; then activates 2 processes in sequence on channels A1 and A2 P A1 SEQ A2 Goal: Goal: activate two sequential processes (i.e. operations) Process X1 Process X2 Operation X1; X2

Handshake Components: PAR Component PAR Component: activated on channel P; then activates 2 processes in parallel on channels A1 and A2 P A1 PAR A2 Goal: Goal: activate two parallel processes Process X1 Process X2 Operation X1 || X2

procedure Buf1 ( input i: byte; output o: byte) is local variable x : byte begin loop begin i -> x ; o <- x end Intermediate Representation ; #Start X I O Tangram Spec Handshake Circuit Syntax-Directed Translation unoptimized

Conclusions STGs have a high expressiveness power at a low level of granularity (similar to FSMs for synchronous systems) Synthesis from STGs can be fully automated Synthesis tools often suffer from the state explosion problem (symbolic techniques are used) The theory of logic synthesis from STGs can be found in: J. Cortadella, M. Kishinevsky, A. Kondratyev, L. Lavagno and A. Yakovlev, Logic Synthesis of Asynchronous Controllers and Interfaces, Springer Verlag, 2002.