Date post: | 07-Apr-2018 |
Category: |
Documents |
Upload: | emailparacadastro |
View: | 233 times |
Download: | 0 times |
of 90
8/3/2019 Chapter 6 Speed Independent Control Circuits
1/90
Chapter 6 Speed-Independent
Control CircuitsIntroduction
Signal transition graphs
The basic synthesis procedure
Implementations using state-holding gates
Initialization
Summary of the synthesis process
Petrify: A tool for synthesizing SI circuits from STGs
Design examples using Petrify
8/3/2019 Chapter 6 Speed Independent Control Circuits
2/90
Control Circuits
Many methods, tools, assumptions, frameworks
Balsa generated both control and data-path
We now consider one method / tool for control-only
spec, verification and synthesis: Assumption: Speed independent control for speed
independent bundled data
Method: Signal Transition Graph
A special type of Petri net Tool: Petrify (mostly from Jordi Cortadella at UPC)
Universitat Politecnica de Catalunya (Technical Universityof Catalonia, Barcelona, Spain)
8/3/2019 Chapter 6 Speed Independent Control Circuits
3/90
Delay Models
Fixed delay: d=c
Min-max delay: choose d[m,M] Max delay: d[0,M]
Low-bounded delay: d[m,)
Unbounded delay: d[0,)
Pure delay (in VHDL = transport delay)
Simply shifts any signals waveform later in time Inertial delay: Glitches are filtered.
Pulses shorter than the reject time are filtered out
We dont assume inertial delays in async control design
8/3/2019 Chapter 6 Speed Independent Control Circuits
4/90
Hazards
Static-1 hazard
Desired signal: 1_1, actual signal: 1_101_1
Static-0 hazard
Desired signal: 0_0, actual signal: 0_010_0
Dynamic-10 hazard
Desired signal: 1_1 0_0, actual signal: 1_1010_0
Dynamic-01 hazard
Desired signal: 0_0 1_1, actual signal: 0_0101_1
8/3/2019 Chapter 6 Speed Independent Control Circuits
5/90
Minimalist
A comprehensive CAD package for the automatedsynthesis and optimization of asynchronouscontrollers
Principal Architects: Robert Fuhrer
Steven Nowick in Columbia Univ
Book: Sequential Optimization of Asynchronous andSynchronous Finite-State Machines: Algorithms and
Tools. Kluwer Academic Publishers, 2001.(TK7868 .A79 F84)
http://www1.cs.columbia.edu/~nowick/
http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-8http://www.wkap.nl/prod/b/0-7923-7425-88/3/2019 Chapter 6 Speed Independent Control Circuits
6/90
Minimalist -- book chapters Introduction (Async)
Background (FSM) Burst-mode synthesis path walk-through
CHASM: Optimal state assignment
OPTIMIST: Optimal state minimization for
synchronous FSMs OPTIMISTO: Synchronous state minimization for
optimum output logic
OPTIMISTA: Asynchronous state minimization for
optimum output logic MINIMALIST: An extensible toolkit for burst-mode
synthesis
Conclusions
8/3/2019 Chapter 6 Speed Independent Control Circuits
7/90
Petri net, Signal Transition Graph (STG)
Jordi Cortadella, Luciano Lavagno, and AlexYakovlev, Advanced tutorial HardwareDesign and Petri Nets, 21st Intl. Conf. onApplication and theory of Petri Nets, 2000
Jordi Cortadella, M. Kishinevsky, A.Kondratyev, Luciano Lavagno, and AlexYakovlev, Logic Synthesis for Asynchronous
Controllers and Interface, Springer, 2002(TK7868 .L6 L5864)
8/3/2019 Chapter 6 Speed Independent Control Circuits
8/90
Advanced tutorial Hardware Design and
Petri Nets
Introduction to hardware design and petri nets (0.5hrs)
Hardware modeling with petri nets (0.5 hrs)
Direct synthesis of petri nets (0.5 hrs) Logic synthesis of async circuits from STGs (1.5 hrs)
Analysis and verification (1 hr)
Petri nets and hardware description languages (1.5
hrs) Performance analysis (0.5 hrs)
Petri net models for quasi-static-scheduling (1 hr)
8/3/2019 Chapter 6 Speed Independent Control Circuits
9/90
Logic Synthesis for Asynchronous
Controllers and Interface Introduction
Design flow
Background
Logic synthesis State encoding
Logic decomposition
Synthesis with relative timing
Design examples Other work
Conclusions
8/3/2019 Chapter 6 Speed Independent Control Circuits
10/90
The classic design process involves the
following steps
The intended sequential circuit is specified inthe form of a primitive flow table
A minimum-row reduced flow table is
obtained by merging compatible states in theprimitive flow table
The states are encoded
Boolean equations for output variables andstate variables are derived
8/3/2019 Chapter 6 Speed Independent Control Circuits
11/90
The synthesis process involves the following
steps
Specify the desired behavior of the circuit andits (dummy) environment using STG
Check that the STG satisfies 5 properties
Check that the specification satisfiescomplete state encoding
Select an implementation template and
derive the Boolean equations
8/3/2019 Chapter 6 Speed Independent Control Circuits
12/90
The synthesis process involves the following
steps
Derive the Boolean equations for the desiredimplementation template
Manually modify the implementation such
that the circuit can be forced into the desiredinitial state by an explicit reset or initializationsignal
Enter the design into a CAD tool and performsimulation and layout of the circuit
8/3/2019 Chapter 6 Speed Independent Control Circuits
13/90
Petri net, Signal Transition Graph (STG)
a+ b+
c+
a- b-
c-
a+ b+
c+
a- b-
c-
8/3/2019 Chapter 6 Speed Independent Control Circuits
14/90
Separating Inputs, Outputs and Internals
a+ b+
c+
a- b-
c-
a+ b+
c+
a- b-
c-
8/3/2019 Chapter 6 Speed Independent Control Circuits
15/90
In the STG:
PN transition are signal transitions
PN places and arcs are causal relations
Simple places (one arc in, one arc out) areomitted
MARKING
assignment of tokens to places
state of the circuit
8/3/2019 Chapter 6 Speed Independent Control Circuits
16/90
State Graph (SG)
abc000
State:100 010
110
011 101
111
001
SG more complex than STG
Bad for design spec
Needed for synthesis
a+ b+
b+ a+
c+
a- b-
b- a-
c-
8/3/2019 Chapter 6 Speed Independent Control Circuits
17/90
State Graph (SG)
000
100 010
110
011 101
111
001
a+ b+
b+ a+
c+
a- b-
b- a-
c-
Quiescent Region QR(c=0)
Quiescent Region QR(c=1)
Excitation Region ER(c=R)
Excitation Region ER(c=F)
8/3/2019 Chapter 6 Speed Independent Control Circuits
18/90
State Graph (SG)
Quiescent Region QR(c=0)
Quiescent Region QR(c=1)
Excitation Region ER(c=R)
Excitation Region ER(c=F)
000
100 010
110
011 101
111
001
a+ b+
b+ a+
c+
a- b-
b- a-
c-
SET C
RESET C
KEEP C=1
KEEP C=0
8/3/2019 Chapter 6 Speed Independent Control Circuits
19/90
Synthesis: C Element
Two methods:
Using gates
Using SR latch
8/3/2019 Chapter 6 Speed Independent Control Circuits
20/90
Synthesis: C Element using gates
000
100 010
110
011 101
111
001
a+ b+
b+ a+
c+
a- b-
b- a-
c-
SET C
KEEP C=1
0 0 R 0
F 1 1 1
0
1
00 01 11 10c\ab
c=ab+ac+bc
a
bc
!
Hazardous
Material !
8/3/2019 Chapter 6 Speed Independent Control Circuits
21/90
Hazardous Hazards
SLOW
a
bc
ac
ab
bc
a
b
c
ac
ab
bc (slow)
8/3/2019 Chapter 6 Speed Independent Control Circuits
22/90
Hazardous Hazards
Hazards are no big deal in sync circuits
Hazards are deadly in (some) async circuits
Now you know why you were taught aboutthem in school
We can build hazard-free circuits
We can (sometimes) make timing
assumptions and add delays
8/3/2019 Chapter 6 Speed Independent Control Circuits
23/90
Hiding Hazards Behind Delays
SLOW
a
bd
ac
ab
bc
c
a
b
c
ac
abbc (slow rise)
d
Do you like slowing your circuit ?
8/3/2019 Chapter 6 Speed Independent Control Circuits
24/90
Avoiding Hazards with Complex Gates
ab c
c
a
b
a b
a
b
a b
c
cT1
Theoretically, samehazard problem
(e.g. T1 slow)
Must use cautionor delay output
8/3/2019 Chapter 6 Speed Independent Control Circuits
25/90
RESET C
KEEP C=0
Synthesis: C Element using SR Latch
000
100 010
110
011 101
111
001
a+ b+
b+ a+
c+
a- b-
b- a-
c-
SET C
KEEP C=1
0 0 R 0
F 1 1 1
0
1
00 01 11 10c\ab
set=ab reset=ab
ab c
S
R
Q
8/3/2019 Chapter 6 Speed Independent Control Circuits
26/90
Synthesis using SR latches
Needs SET, RESET regions
May use KEEP 0, KEEP 1 regions
May use unreachable states (more later)
Area / performance / power may be more orless than gate circuits
May use C elements instead of SR latches
SR latches enable implementation withstandard libraries
8/3/2019 Chapter 6 Speed Independent Control Circuits
27/90
Implementation using Latches or C
elements
S
R
QSETLOGIC
RESETLOGIC
CSETLOGIC
RESETLOGIC
8/3/2019 Chapter 6 Speed Independent Control Circuits
28/90
Generalized C Element
ab C
+
-cz
set(z) = ab
reset(z) = b'c'
z
reset
setb
a
c
b
z
a
b
c
z
reset
setb
a
c
b
a
b
cset
reset
DYNAMIC (Pseudostatic) STATIC
z
b c
b a
8/3/2019 Chapter 6 Speed Independent Control Circuits
29/90
More interesting PNs and STGs
FORKs
JOINs
(input) CHOICE
MERGE
CONTROLLEDCHOICE
MUTUALLYEXCLUSIVE
MUTUALLYEXCLUSIVE
x+
x+
x+
x+
8/3/2019 Chapter 6 Speed Independent Control Circuits
30/90
STG with Input Choice
x+y+
z+ b+
y- x-
z- b-
8/3/2019 Chapter 6 Speed Independent Control Circuits
31/90
A Simple Choice Net
a
b
c
d
a
bc
d
d+
a-
a+b+ c-
c+ b- b+
c+
d-
RR00b+
01R0c+
0F10
a+
b+
1R00
110R
c-
0F10b-
d+
11R1
a-
F110
111Fd- c+
I II
8/3/2019 Chapter 6 Speed Independent Control Circuits
32/90
Unreachable States
RR00b+
01R0c+
0F10
a+
b+
1R00
110R
c-
00F0b-
d+
11R1
a-
F110
111Fd- c+
00
01
00 01 11 10cd\ab
x x x
x x x
x
11
10
8/3/2019 Chapter 6 Speed Independent Control Circuits
33/90
Regions and Maps
RR00b+
01R0c+
0F10
a+
b+
1R00
110R
c-
00F0b-
d+
11R1
a-
F110
111Fd- c+
For c
00
01
00 01 11 10cd\ab
0 R 0 0
x x R x
x x 1 x
F 1 1 x
11
10
c=d+ab+bcset(c)=d+ab
reset(c)=b
8/3/2019 Chapter 6 Speed Independent Control Circuits
34/90
c=d+ab+bc
set(c)=d+ab
reset(c)=b
ab
cd
C cab
d
8/3/2019 Chapter 6 Speed Independent Control Circuits
35/90
Regions and Maps
RR00b+
01R0c+
0F10
a+
b+
1R00
110R
c-
00F0b-
d+
11R1
a-
F110
111Fd- c+
For d
00
01
00 01 11 10cd\ab
0 0 R 0
x x 1 x
x x F x
0 0 0 x
11
10
d=abcset(d)=abc
reset(d)=c
8/3/2019 Chapter 6 Speed Independent Control Circuits
36/90
Walks on SG and KM
RR00b+
01R0c+
0F10
a+
b+
1R00
110R
c-
00F0b-
d+
11R1
a-
F110
111Fd- c+
00
01
00 01 11 10cd\ab
x x x
x x x
x
11
10
I
II
I
Exercise: A decomposed gate implementationis not speed-independent due to hazards. Explain, using the walks.
II
8/3/2019 Chapter 6 Speed Independent Control Circuits
37/90
STG Rules
Any STG: Input free-choiceOnly mutex inputs may control the
choice)
1-BoundedMaximum 1 token per place
LivenessNo deadlocks
STG for Speed Independent circuits: Consistent state assignmentSignals strictly alternate
between + and
PersistencyExcited signals fire, namely they cannotbe disabled by another transition
Synthesizable STG: Complete state codingDifferent markings must
represent different states
8/3/2019 Chapter 6 Speed Independent Control Circuits
38/90
We use the following circuit to explain STGrules:
req
ack
REQ
ACK
8/3/2019 Chapter 6 Speed Independent Control Circuits
39/90
1-Bounded (Safety)
STG is safeif no place or arc can ever contain more than one token
Often caused by one-sided dependency
STG is not safe:If left cycle goes fast and right cycle lags,
then arc ack+REQ+accumulates tokens.(REQ+ depends on both ack+andACK- )
Possible solution: stop left cycle by right cycle
REQ+ ACK+
REQ-ACK-
req+ ack+
req-ack-
8/3/2019 Chapter 6 Speed Independent Control Circuits
40/90
Liveness
STG is liveif from every reachable marking, everytransition can eventually be fired
The STG is not live:
Transitions reset, reset_okcannot be repeated. But non-liveness is useful for initialization
reset_ok-reset- req+ ack+
req-ack-
8/3/2019 Chapter 6 Speed Independent Control Circuits
41/90
Consistent State Assignment
The following subset of STG makes no sense:
a+ a+
a- a-
8/3/2019 Chapter 6 Speed Independent Control Circuits
42/90
Persistency
STG is persistentif for all arcs a* b*, other arcs ensure that b*fires before opposite transition of a* (*is either + or -)
Non-persistency may be caused by one-sided relations
STG is not persistent (in addition to being unsafe):
If left cycle goes fast and right cycle lags,
then ack+ack-beforeREQ+.Danger: Logic design may be REQ+ = ack+Exception: Ifa*b*, assume that the environment assures persistency.Possible solution: stop left cycle by right cycle.
REQ+ ACK+
REQ-ACK-
req+ ack+
req-ack-
8/3/2019 Chapter 6 Speed Independent Control Circuits
43/90
Complete State Coding
STG has a complete state codingif no two differentmarkings have identical values for all signals.
REQ+ ACK+
REQ-ACK-
ack- req+
ack+req-
1000 1010
req,ack,REQ,ACK:
1011
100110001100
0100
0000
00
01
00 01 11 10cd\ab
11
10
Disaster!
8/3/2019 Chapter 6 Speed Independent Control Circuits
44/90
Complete State Coding
Possible solution: Add an internal statevariable
x- x+
req,ack,REQ,ACK,x:
REQ+ ACK+
REQ-ACK-
ack- req+
ack+req-
10000 10100
1000111001
8/3/2019 Chapter 6 Speed Independent Control Circuits
45/90
Petrify : A tool for synthesizing SI circuits
from STGs
Petrify Environment :
STG
EQNdraw_astg
ps
write_sg
SG
libpetrify
8/3/2019 Chapter 6 Speed Independent Control Circuits
46/90
Petrify
Unix (Linux) command line tool
petrify hfor help (flags etc.)
petrify cgfor complex gates
petrifygc
for generalized C-elements
petrify tmfor tech mapping
draw_astgto draw
write_sgto create state graphs
Documented on line, incl. tutorial See http://www.lsi.upc.es/~jordic/petrify/petrify.htm
8/3/2019 Chapter 6 Speed Independent Control Circuits
47/90
A faster STG?
Does it need an extra variable?
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
8/3/2019 Chapter 6 Speed Independent Control Circuits
48/90
Drawn bydraw_astg
Note reverse colors
Th SG
8/3/2019 Chapter 6 Speed Independent Control Circuits
49/90
The SGreq,ack,REQ,ACK:
0000
r+
1000
a+ R+1100 1010
r-
0100
R+
1110
a+ A+
1011A+
1111
a+r-
0110
R+a-
a- A+
0111
r-
0011
a-
R-
1001R-
1101
a+
R-
0101
r-
0001
a-R-
A-
1000A-
1100
a+
A-
0100
r-
a-A-1011
r+
1001
r+R-
A-
1111
a+
R-1101
a+
A-0111
r-
R-
0101
r-
A-
a-
a-
Th SG
8/3/2019 Chapter 6 Speed Independent Control Circuits
50/90
The SGreq,ack,REQ,ACK:
0000
r+
1000
a+ R+1100 1010
r-
0100
R+
1110
a+ A+
1011A+
1111
a+r-
0110
R+a-
a- A+
0111
r-
0011
a-
R-
1001R-
1101
a+
R-
0101
r-
0001
a-R-
A-
1000A-
1100
a+
A-
0100
r-
a-A-1011
r+
1001
r+R-
A-
1111
a+
R-1101
a+
A-0111
r-
R-
0101
r-
A-
a-
a-
R+
R+
R+
8/3/2019 Chapter 6 Speed Independent Control Circuits
51/90
Drawn bywrite_sg & draw_astg
8/3/2019 Chapter 6 Speed Independent Control Circuits
52/90
Extra states inserted bypetrify
8/3/2019 Chapter 6 Speed Independent Control Circuits
53/90
Rearranged STG
ack-
req+
ack+
req-
c1-
c1+
c0-
ACK-
REQ+
ACK+
REQ-
c2-
c2+
c0+
Initial Internal State: c0=c1=c2=1
8/3/2019 Chapter 6 Speed Independent Control Circuits
54/90
The new State Graph
8/3/2019 Chapter 6 Speed Independent Control Circuits
55/90
The Synthesized Complex Gates Circuit
INORDER = r A a R csc0 csc1 csc2;
OUTORDER = [a] [R] [csc0] [csc1] [csc2];
[a] = a (csc2 + csc0) + csc1';[R] = csc2 (csc0 (a + r) + R);
[csc0] = csc0 (csc1' + a') + R' csc2;
[csc1] = r' (csc0 + csc1);
[csc2] = A' (csc0' (csc1' + a') + csc2);
8/3/2019 Chapter 6 Speed Independent Control Circuits
56/90
Technology Mapping
INORDER = r A a R csc0 csc1 csc2;
OUTORDER = [a] [R] [csc0] [csc1] [csc2];
[0] = R'; # gate inv: combinational
[1] = [0]' A' + csc2'; # gate oai12: combinational
[a] = a csc0' + [1]; # gate sr_nor: asynch
[3] = csc1'; # gate inv: combinational
[4] = csc0' csc2' [3]'; # gate nor3: combinational
[5] = [4]' (csc1' + R'); # gate aoi12: combinational
[R] = [5]'; # gate inv: combinational
[7] = (csc2' + a') (csc0' + A'); # gate aoi22: combinational
[8] = csc0'; # gate inv: combinational
[csc0] = [8]' csc1' + [7]'; # gate oai12: combinational
[csc1] = A' (csc0 + csc1); # gate rs_nor: asynch
[11] = R'; # gate inv: combinational[12] = csc0' ([11]' + csc1'); # gate aoi12: combinational
[csc2] = [12] (r' + csc2) + r' csc2; # gate c_element1:asynch
8/3/2019 Chapter 6 Speed Independent Control Circuits
57/90
The Synthesized Gen-C Circuit
INORDER = r A a R csc0 csc1 csc2;
OUTORDER = [a] [R] [csc0] [csc1] [csc2];
[0] = csc0' csc1 (R' + A);
[1] = csc0 csc2 (a + r);
[2] = csc2' A;[R] = R [2]' + [1]; # mappable onto gC
[4] = a csc1 csc2';
[csc0] = csc0 [4]' + csc2; # mappable onto gC
[6] = r' csc0;
[csc1] = csc1 r' + [6]; # mappable onto gC
[8] = A' csc0' (csc1' + a');[csc2] = csc2 R' + [8]; # mappable onto gC
[a] = a [0]' + csc1'; # mappable onto gC
A f STG?
8/3/2019 Chapter 6 Speed Independent Control Circuits
58/90
A safer STG?
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
A f STG?
8/3/2019 Chapter 6 Speed Independent Control Circuits
59/90
A safer STG?
Th f STG i i l i i
8/3/2019 Chapter 6 Speed Independent Control Circuits
60/90
The safer STG is a serial circuit
INORDER = r A a R;
OUTORDER = [a] [R];
[a] = A;
[R] = r;
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
req
ack
REQ
ACK
Y h STG?
8/3/2019 Chapter 6 Speed Independent Control Circuits
61/90
Yet another STG?
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
Y h STG?
8/3/2019 Chapter 6 Speed Independent Control Circuits
62/90
Yet another STG?
8/3/2019 Chapter 6 Speed Independent Control Circuits
63/90
O H d h k Fi
8/3/2019 Chapter 6 Speed Independent Control Circuits
64/90
Output Handshake First
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
S ill i l ll
8/3/2019 Chapter 6 Speed Independent Control Circuits
65/90
Still a serial controller
S h i
8/3/2019 Chapter 6 Speed Independent Control Circuits
66/90
Synthesis
INORDER = r A a R csc0;
OUTORDER = [a] [R] [csc0];
[a] = csc0 A'; # gate and2_1: combinational
[R] = r csc0'; # gate and2_1: combinational
[2] = A' (csc0' + r'); # gate aoi12: combinational
[csc0] = [2]'; # gate inv: combinational
A
r
c0S
R
Q
Q
Aa
r R
c0
cA
r
c0
Aa
r R
c0
+
-=
A diff STG
8/3/2019 Chapter 6 Speed Independent Control Circuits
67/90
A different STG
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
Redundant,will be ignoredby petrify
A diff t STG
8/3/2019 Chapter 6 Speed Independent Control Circuits
68/90
A different STG
S th i
8/3/2019 Chapter 6 Speed Independent Control Circuits
69/90
Synthesis
INORDER = r A a R;OUTORDER = [a] [R];
[a] = R;
[1] = r A';
[2] = r' A;
[R] = R [2]' + [1]; # mappable onto gC
R = R(Ar)+Ar = R(A+r)+Ar = Ar + RA +Rr
A
r Rca
L t h C t l
8/3/2019 Chapter 6 Speed Independent Control Circuits
70/90
Latch Control
req
ack
REQ
ACK
req
ack
REQ
ACK
Enable
Data-less fifo:
Latch:Lt
Enable=0:transparent
8/3/2019 Chapter 6 Speed Independent Control Circuits
71/90
Constraints on sequence of events
Must keep input data available until after it islatched
Assume input data available only when req=1
Once ack+, req- (and input data invalid) canfollow very fast
Lt+ before ack+
L t h C ntr l STG Fr m nts
8/3/2019 Chapter 6 Speed Independent Control Circuits
72/90
Latch Control: STG Fragments
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
req+ ACK-
REQ+
Lt+
ack+
req- ACK+
REQ-
Lt-
ack-
Latch Control: Combined STG
8/3/2019 Chapter 6 Speed Independent Control Circuits
73/90
Latch Control: Combined STG
ack-
req+
ack+
req-
ACK-
REQ+
ACK+
REQ-
Lt+
Lt-
Latch Control: Combined STG
8/3/2019 Chapter 6 Speed Independent Control Circuits
74/90
Latch Control: Combined STG
8/3/2019 Chapter 6 Speed Independent Control Circuits
75/90
8/3/2019 Chapter 6 Speed Independent Control Circuits
76/90
INORDER = Rin Aout Ain Rout Lt;
OUTORDER = [Ain] [Rout] [Lt];
[Ain] = Lt;
[1] = Aout' Rin;
[2] = Aout Rin';[Rout] = Rout [2]' + [1]; # mappable onto gC
[Lt] = Rout;
R = R(Ar)+Ar = R(A+r)+Ar = Ar + RA +Rr
A
r Rc
Lt
a
MUX Control
8/3/2019 Chapter 6 Speed Independent Control Circuits
77/90
MUX Control
So far all examples are doable by hand
A deceptively simple example:Control for 4-phase bundled data mux
PUSHchannels
4 phase Bundled data Mux
8/3/2019 Chapter 6 Speed Independent Control Circuits
78/90
4-phase Bundled-data Mux
We have already drawn this (dual-rail control):
y z
x
yz
x
ctl.tctl.f
y-ackz-ack
x-ack
y-req
z-req
x-req
C
C
ctl
0
1
C
Cctl.f
ctl.t
ctl-ack
Easier to start with the dual-rail control
The environment
8/3/2019 Chapter 6 Speed Independent Control Circuits
79/90
The environment
Four independentenvironments (rCf, rCt share aC)
Must not specify any dependency by mistake:
a0-
r0+
a0+
r0-
a1-
r1+
a1+
r1-
aC-
rCf+
aC+
rCf-
A-
R+
A+
R-
In0 In0 Ctl.f Out
aC-
rCt+
aC+
rCt-
Ctl.t
The control
8/3/2019 Chapter 6 Speed Independent Control Circuits
80/90
The control
A+ must precede a0+ or a1+ (make sure datapassed through and were captured)
In0 and In1 handshakes must be made MUTEX
Choices are matches with Merges
8/3/2019 Chapter 6 Speed Independent Control Circuits
81/90
a0+
a1+
r0+
A+
rCf+
rCt+
aC-
r1+
R+
InputFreeChoice
P3 P1 aC+ P2
rCf-
rCt-
P4
r0-
r1-
P5
ControlledChoice
Merge
Duplicate arrow
mux g
8/3/2019 Chapter 6 Speed Independent Control Circuits
82/90
mux.g
mux gc
8/3/2019 Chapter 6 Speed Independent Control Circuits
83/90
mux.gc
Replicated transitions: R+,
R+/1
Inserted state variable toretain In0 vs. In1 info
Compact state graph
8/3/2019 Chapter 6 Speed Independent Control Circuits
84/90
Compact state graph
Mux Control Synthesis
8/3/2019 Chapter 6 Speed Independent Control Circuits
85/90
Mux Control Synthesis
INORDER = r0 r1 rCf rCt A a0 a1 aC R csc0 csc1;OUTORDER = [a0] [a1] [aC] [R] [csc0] [csc1];
[0] = r0 csc0;
[a1] = csc1 r1;
[2] = csc1 (A + csc0);
[3] = rCt' rCf' csc1';
[aC] = aC [3]' + [2]; # mappable onto gC
[R] = a0' csc0' csc1 r0 + csc0 csc1';
[6] = a0' csc1 A r0 + csc1' r1 A';
[7] = aC (r0' + a0);
[csc0] = csc0 [7]' + [6]; # mappable onto gC
[9] = r0 A' + csc0 A;
[10] = r0' csc0' r1';
[csc1] = csc1 [10]' + [9]; # mappable onto gC[a0] = a0 r0 + [0]; # mappable onto gC
8/3/2019 Chapter 6 Speed Independent Control Circuits
86/90
Another Mux (4p ctl, bd) (Fig 6.24)
SG for the Fig 6 24 mux
8/3/2019 Chapter 6 Speed Independent Control Circuits
87/90
SG for the Fig 6.24 mux
All-bundled Mux
8/3/2019 Chapter 6 Speed Independent Control Circuits
88/90
All bundled Mux
All-bundled Mux Synthesis
8/3/2019 Chapter 6 Speed Independent Control Circuits
89/90
All bundled Mux Synthesis
INORDER = In0Req OutAck In1Req Ctl CtlReq In1Ack In0Ack OutReq CtlAckcsc0;
OUTORDER = [In1Ack] [In0Ack] [OutReq] [CtlAck] [csc0];
[In1Ack] = OutAck csc0';
[In0Ack] = OutAck csc0;
[2] = CtlReq (In1Req csc0' + In0Req Ctl');
[3] = CtlReq' (In1Req' csc0' + In0Req' csc0);[OutReq] = OutReq [3]' + [2]; # mappable onto gC
[5] = OutAck' csc0;
[CtlAck] = CtlAck [5]' + OutAck; # mappable onto gC
[7] = OutAck' CtlReq';
[8] = CtlReq Ctl;
[csc0] = csc0 [8]' + [7]; # mappable onto gC
Reduced concurrency mux
8/3/2019 Chapter 6 Speed Independent Control Circuits
90/90
Reduced concurrency mux