810 likes | 1.07k Views
J. Cortadella (Univ. Politècnica Catalunya) Mike Kishinevsky (Intel Corporation) Alex Kondratyev (University of Aizu) Luciano Lavagno (Universitá di Udine) Enric Pastor (Univ. Politècnica Catalunya) Alexander Taubin (University of Aizu) Alex Yakovlev (Univ. Newcastle upon Tyne).
E N D
J. Cortadella (Univ. Politècnica Catalunya)Mike Kishinevsky (Intel Corporation)Alex Kondratyev (University of Aizu)Luciano Lavagno (Universitá di Udine)Enric Pastor (Univ. Politècnica Catalunya) Alexander Taubin (University of Aizu) Alex Yakovlev (Univ. Newcastle upon Tyne) STG-based synthesis and Petrify
What is it about? • This tutorial is about the synthesis of asynchronous circuits from behavioral specifications. • STGs can specify I/O concurrency(based on Petri nets). • STGs specify behavior at a level in which logic synthesis techniques can be applied. • Speed-independent and timed circuits can be derived.
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
Outline • Overview • Synthesis steps • Specification (STGs) • State encoding • Logic synthesis, decomposition and mapping • Synthesis with relative timing • Conclusions
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+ 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
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
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
STG for the READ cycle DSr+ DTACK- LDS+ LDTACK+ D+ DTACK+ DSr- D- LDTACK- LDS- D LDS DSr VME Bus Controller LDTACK DTACK
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-
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 logic decomposition • Each decomposition defines a new internal signal • Method: Insert new internal signals such that • After resynthesis, some large gates are decomposed • The new specification is hazard-free • Generation of candidates for decomposition: • Algebraic factorization • Boolean factorization (boolean relations)
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