690 likes | 695 Views
This book explores the use of Petri nets as a formal model to specify causality, concurrency, and choice between events in asynchronous circuit verification and synthesis.
E N D
Asynchronous Circuit Verification and Synthesis with Petri Nets J. Cortadella Universitat Politècnica de Catalunya, Barcelona Thanks to: Michael Kishinevsky (Intel Corporation) Alex Kondratyev (The University of Aizu) Luciano Lavagno (Politecnico di Torino) Enric Pastor (Universitat Politècnica de Catalunya) Alex Taubin (The University of Aizu) Alex Yakovlev (University of Newcastle upon Tyne)
Motivation • Interfaces are often asynchronous • Subsystems with different clocks often want to talk to each other • Self timing provides functional and temporal modularity • … and no clock skew, low power,low EMI, average performance, ...
Why Petri nets ? • Formal model to specify causality, concurrency and choice between events • Simple enough to easily derive state-level information (logic synthesis) • Powerful enough to implicitly represent a large state space
Outline • Design flow • Synthesis • Specification • State encoding • Logic decomposition • Synthesis of Petri nets • Formal verification
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist Design flow
x x y y z z z+ x- x+ y+ z- y- Signal Transition Graph (STG)
x y z z+ x- x+ y+ z- y-
xyz 000 x+ 100 y+ z+ z+ x- 110 101 x- x+ y+ z- y- y+ z+ 001 111 y- y+ x- 011 z- 010
xyz 000 x+ 100 y+ z+ Currentstate Nextstate 110 101 x- y- y+ z+ 001 111 y+ x- 011 z- Currentstate Nextstate 010 Synchronous Asynchronous
xyz 000 x+ 100 y+ z+ 110 101 x- y- y+ z+ 001 111 y+ x- 011 z- 010 Next-state functions
Next-state functions x y z
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Design flow Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist
Bus Data Transceiver DSr LDS Device D LDTACK DSr LDS VME Bus Controller DSw LDTACK D DTACK DTACK Read Cycle VME bus
STG for the READ cycle DSr+ DTACK- LDS+ LDTACK+ D+ DTACK+ DSr- D- LDTACK- LDS- D LDS DSr VME Bus Controller LDTACK DTACK
DSr+ DSw+ LDS+ D+ LDTACK+ LDS+ LDTACK- DTACK- DTACK- LDTACK- D+ LDTACK+ DTACK+ D- LDS- LDS- DSr- DTACK+ D- DSw- Choice: Read and Write cycles
DSr+ DSw+ LDS+ D+ LDTACK+ LDS+ LDTACK- DTACK- DTACK- LDTACK- D+ LDTACK+ DTACK+ D- LDS- LDS- DSr- DTACK+ D- DSw- Choice: Read and Write cycles
Circuitsynthesis • Goal: • Derive a hazard-free circuitunder a given delay model andmode of operation
Modes of operation • Fundamental mode • Single-input changes • Multiple-input changes • Input / Output mode • Concurrencycircuit / environment Currentstate Nextstate
STG for the READ cycle DSr+ DTACK- LDS+ LDTACK+ D+ DTACK+ DSr- D- LDTACK- LDS- D LDS DSr VME Bus Controller LDTACK DTACK
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 • Output persistency
Other synthesis approaches • Burst-mode machines • Mealy-like FSMs • Fundamental mode (slow environment) • VLSI programming • Syntax-directed translation from CSP(“Communicating Sequential Processes”) • No logic synthesis • Circuit size ~ Size of the specification
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Design flow Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist
State Graph (Read cycle) DSr+ DTACK- LDS+ LDTACK- LDTACK- LDTACK- DSr+ DTACK- LDS- LDS- LDS- LDTACK+ DSr+ DTACK- D+ D- DTACK+ DSr-
LDS + LDS = 0 LDS - LDS = 1 Binary encoding of signals DSr+ DTACK- LDS+ LDTACK- LDTACK- LDTACK- DSr+ DTACK- LDS- LDS- LDS- LDTACK+ DSr+ DTACK- D+ D- DTACK+ DSr-
01100 00110 Binary encoding of signals 10000 DSr+ DTACK- LDS+ LDTACK- LDTACK- LDTACK- DSr+ DTACK- 10010 LDS- LDS- LDS- LDTACK+ DSr+ DTACK- 10110 01110 10110 D+ D- DTACK+ DSr- (DSr , DTACK , LDTACK , LDS , D)
ER (LDS+) LDS+ QR (LDS-) LDS- LDS- LDS- ER (LDS-) QR (LDS+) Excitation / Quiescent Regions
LDS+ LDS- LDS- LDS- 10110 10110 Next-state function 0 1 0 0 1 1 1 0
DTACK DSr DTACK DSr D LDTACK D LDTACK 00 00 01 01 11 11 10 10 00 00 01 01 11 11 10 10 Karnaugh map for LDS LDS = 1 LDS = 0 - - - 0 0 - 1 1 - - - - - - - - 1 1 1 - - - - - 0 0 - 0 0 0 - 0/1?
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Design flow Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist
DSr+ DSr+ DSr+ Concurrency reduction LDS+ LDS- LDS- LDS- 10110 10110
Concurrency reduction DSr+ DTACK- LDS+ LDTACK+ D+ DTACK+ DSr- D- LDTACK- LDS- (See today’s presentation in this workshop for more details)
State encoding conflicts LDS+ LDTACK- LDS- LDTACK+ 10110 10110
CSC+ CSC- Signal Insertion LDS+ LDTACK- LDS- LDTACK+ 101101 101100 D- DSr-
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Design flow Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist
Specification(STG) Reachability analysis State Graph State encoding SG withCSC Design flow Boolean minimization Next-state functions Logic decomposition Decomposed functions Technology mapping Gate netlist
abcx 1000 b+ 0 1 0 1 a 1100 1 x 0 1 1 0 b a- 0 c 1 0 0 0100 c+ 0110 Hazards
abcx 1000 b+ 0 1 0 1 0 0 0 1 a 0 0 1 1 0 0 1 1 z 1100 1 1 b x 1 1 1 0 1 1 1 0 0 0 0 0 0 1 c a- 0 0 1 1 0 1 0 1 0100 c+ 0110 Hazards 1000 1100 1100 0100 0110
Decomposition • Global acknowledgement • Generating candidates • Hazard-free signal insertion • Event insertion • Signal insertion
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- c z b a a y b d Global acknowledgement
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- c z b a a y b d How about 2-input gates ?
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- How about 2-input gates ? c z b a a y b d
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- How about 2-input gates ? 0 c 0 z b a a y b d
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- How about 2-input gates ? c z b a a y b d
d- b+ d+ y+ a- y- c+ d- c- d+ z- b- z+ c+ a+ c- a b How about 2-input gates ? c z y d
Strategy for correct logic decomposition • Each decomposition defines a new internal signal of the circuit • Method: Insert new internal signals such that • After resynthesis,some large gates are decomposed • The new specification is hazard-free under unbounded gate delays
y- y- 1001 1011 z- w- 1000 0001 w+ y+ w- z- x+ z- w- w+ 1010 0000 0101 0011 w- y+ x+ z- y+ x+ x- 0010 0100 x- x+ y+ z+ 0110 0111 z+ Decomposition example
x y- y- y w 1001 1001 1011 1011 z z- z- w- w- y 1000 1000 0001 0001 w+ w+ z y+ y+ x w- w- z- z- x+ x+ w 1010 1010 0000 0000 0101 0101 0011 0011 w w- w- y+ y+ x+ x+ z- z- C z y z 0010 0010 0100 0100 x- x- x+ x+ y+ y+ y z+ z+ C 0110 0110 0111 0111 x z y yz=0 yz=1
x s=1 w y 1001 1011 z- s- z w+ 1001 1000 z- x s- y+ w- w 0011 1000 0001 1010 w y+ s- w- z- x+ x- C z y 1010 0000 0101 z w- y+ x+ z- 0111 y 0010 0100 C x z s+ x+ y+ s=0 z+ y 0111 0110 y- s
y- 1001 1011 z- s- s- s- s- s- s- s- s- w+ 1001 1000 z- y+ w- 0011 1000 0001 z- w- w+ 1010 y+ w- z- x+ x- 1010 0000 0101 w- y+ x+ z- y+ x+ x- 0111 0010 0100 x+ y+ s+ s+ s+ s+ s+ s+ s+ s+ z+ z+ 0111 0110 s=1 y- s- s- s- s+ s=0