Digitale elektronica --1--
Inhoud Inhoud
Synthese van sequentiële netwerken – incrementele gedragsbeschrijvingen– toestandsminimalisatie– toestandsassignatie
Digitale elektronica --2--
Het syntheseprobleemHet syntheseprobleem
Opgave:• gegeven het gewenst sequentieel I/O-gedrag,
leid een circuit af dat dit gedrag correct realiseert, en dit op een optimale manier
• Deelproblemen:– hoe gewenst gedrag specificeren– wat zijn de optimaliteitscriteria?– wat zijn de synthesestappen en de optimalisaties?
Digitale elektronica --3--
Incrementele gedragsbeschrijvingen
Incrementele gedragsbeschrijvingen
Sequentieel gedrag is relatie tussen ingangs- en uitgangssequenties– Niet rechtstreeks te vertalen naar structuur
van circuit– Relatie naar circuit wel duidelijk vanuit een
incrementeel gedragsmodel: ttt of transitiediagram
Doel: zo snel mogelijk komen tot incrementeel model uitgaande van initiële gedragsbeschrijving
Digitale elektronica --4--
Incrementele gedragsbeschrijvingen
Incrementele gedragsbeschrijvingen
Methode– vertaal opgelegde I/O-sequenties naar
‘algoritme’ in goto-stijl, dat de correcte outputs berekent
– elke plaats in algoritme stelt informatie voor over voorbije inputs
– doel: hou zo weinig mogelijk informatie bij om outputs correct te kunnen berekenen
– gedrag is realiseerbaar als eindige automaat als procedure een eindig algoritme oplevert
Digitale elektronica --5--
Incrementele gedragsbeschrijvingen
voorbeeld 1
Incrementele gedragsbeschrijvingen
voorbeeld 1Opgave
– realiseer synchroon sequentieel circuit dat alle optredens van 11010 detecteert in een binaire sequentie. Input =X, output=Y
Analyse– synchroon = aanwezigheid van kloksignaal,
inputsymbolen aangelegd één per klokperiode
– timing van output: twee mogelijkheden
Digitale elektronica --6--
Incrementele gedragsbeschrijvingen
voorbeeld 1
Incrementele gedragsbeschrijvingen
voorbeeld 1Algoritme
Stap Kennis Y X=0 X=1
1 [begin] 0 2 3
2 [0 gezien] 0 4 5
3 [1 gezien] 0
4 [00 gezien] 0
5 [01 gezien] 0
Digitale elektronica --7--
Incrementele gedragsbeschrijvingen
voorbeeld 1
Incrementele gedragsbeschrijvingen
voorbeeld 1Algoritme
Stap Kennis Y X=0 X=1
1 [begin] 0 2 3
2 […(11+1101)’0 gezien] 0 2 3
3 […(1+110)’1 gezien] 0 2 4
4 [..11 gezien] 0 5 4
5 [..110 gezien] 0
Digitale elektronica --8--
Incrementele gedragsbeschrijvingen
voorbeeld 1
Incrementele gedragsbeschrijvingen
voorbeeld 1Algoritme
Stap Kennis Y X=0 X=1
1 [begin] 0 2 3
2 […(11+1101)’0 gezien] 0 2 3
3 […(1+110)’1 gezien] 0 2 4
4 [..11 gezien] 0 5 4
5 [..110 gezien] 0 2 6
…
…
nn-1 [..1101 gezien] 0 nn 4
nn [..11010 gezien] 1 2 3
Digitale elektronica --9--
Incrementele gedragsbeschrijvingen
voorbeeld 2
Incrementele gedragsbeschrijvingen
voorbeeld 2Opgave
– realiseer asynchroon sequentieel circuit dat de waarde op D opslaat en naar buiten brengt bij een stijgflank op C
Analyse– asynchroon = afwezigheid van kloksignaal,
inputveranderingen aangelegd volgens SIC en fundamentele mode
C
DQ
Digitale elektronica --10--
Incrementele gedragsbeschrijvingen
voorbeeld 2
Incrementele gedragsbeschrijvingen
voorbeeld 2Algoritme
D=0 D=1Stap Kennis Q
C=0 C=1 C=1 C=0
1 [begin] 0 1 2 4
2 [C ,D=0 gezien] 0 3 2 5
3 [C ,D=0 gezien] 0 3 2 3
4 [C=0,D gezien] 0 7 6 4
5 [C ,D gezien] 0 8 5 9
Digitale elektronica --11--
Incrementele gedragsbeschrijvingen
voorbeeld 2
Incrementele gedragsbeschrijvingen
voorbeeld 2Algoritme= primitieve ttt
D=0 D=1Stap Kennis Q
C=0 C=1 C=1 C=0
1 [begin] 0 1 2 4
2 [C ,D=0 gezien] 0 3 2 5
3 [C ,D=0 gezien] 0 3 2 4
4 [C=0,D gezien] 0 3 6 4
5 [C ,D gezien] 0 2 5 4
6 [D ,C gezien] 1 7 6 8
7 [D=1, C , D gezien] 1 9 7 6
8 [D=1, C gezien] 1 9 6 8
Digitale elektronica --12--
Incrementele gedragsbeschrijvingen
voorbeeld 3
Incrementele gedragsbeschrijvingen
voorbeeld 3Opgave
– realiseer synchroon sequentieel circuit dat Y=1 genereert telkens een priem aantal maal X=1 is geweest
Analyse– synchroon = aanwezigheid van kloksignaal,
inputsymbolen aangelegd één per klokperiode
C
XY 1 2 2 3 3 4 5 6 7
Digitale elektronica --13--
Incrementele gedragsbeschrijvingen
voorbeeld 3
Incrementele gedragsbeschrijvingen
voorbeeld 3Algoritme ... termineert niet!
gedrag niet realiseerbaar met eindige automaat
Stap Kennis Y X=0 X=1
0 [0 maal 1 gezien] 0 0 1
1 [1 maal 1 gezien] 1 1 2
2 [2 maal 1 gezien] 1 2 3
3 [3 maal 1 gezien] 1 3 4
4 [4 maal 1 gezien] 0 4 5
Digitale elektronica --14--
Toestandsminimalisatiedoelstelling
Toestandsminimalisatiedoelstelling
Waarom?– Meestal bevat primitieve ttt te veel rijen en
kan men een ttt vinden met minder rijen, die zelfde gedrag heeft
– Wanneer mag men een rij uit een tabel schrappen?
Toestandsequivalentie
Digitale elektronica --15--
Toestandsminimalisatieequivalentie
Toestandsminimalisatieequivalentie
Definities– (ttt A,a) (dit is ttt A in toestand a) is equivalent
met (ttt B, b) als beide onder alle inputsequenties precies dezelfde outputs genereren vanuit resp. a en b als begintoestand
– toestanden a en b zijn equivalent, a~b, in dezelfde ttt a.s.a (ttt,a) ~ (ttt,b)
– als a equivalent is met b, mag men de rij die correspondeert met a schrappen, als alle referenties naar a vervangen worden door referenties naar b
Digitale elektronica --16--
Toestandsminimalisatieequivalentie
Toestandsminimalisatieequivalentie
Berekening– verfijn de definitie van equivalentie:
– op basis hiervan kan men een effectieve procedure uitwerken, aangezien S eindig is
– twee toestanden zijn niet equivalent als zij verschillende outputs generen, of als zij leiden naar een niet-equivalent koppel
~ a.s.a x X: ( , ) ( , )
( , ) ~ ( , )u u
S S
a b f a x f b x
f a x f b x
Digitale elektronica --17--
Toestandsminimalisatieequivalentie
Toestandsminimalisatieequivalentie
Voorbeeld 1: tabel volledig bepaald
0 1
0
0
0
0
0
0
1
X X Y
A B C
B B C
C B D
D E D
E B F
F G D
G B C
, ,
, ,,
, ,
,, , ,
,
, , ,, ,
, , ,
B
C C D C D
B E B ED B E
C D C D
B EE C F C F D F
D F
B G B G B GF B G E G
C D C D D F
G
A B C D E F
( )
( )
( )
( )
( )
( )
AB
C
D
E
F
G
Digitale elektronica --18--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Voorbeeld 1: tabel volledig bepaald
0 1
0
0
0
0
0
1
X X Y
A C
C D
D E D
E F
F G
A
D
A
G A C
A
~A B
Digitale elektronica --19--
Toestandsminimalisatieequivalentie
Toestandsminimalisatieequivalentie
Voorbeeld 2: tabel NIET volledig bepaald
00 01 11 10
0
0
0
0
0
1
0
1
1
1
y
A A B C
B D B E
C A F C
D D B G
E B E G
F H F I
G D F G
H J H F
I J F I
J J B I
,
,
,
,,
,
,,
,
, , , ,
, ,
B A D
A DC
E F
A DD C G
C G
E FE C G
C G
F
G A D E F A D E F
H
I
J H B H B
A B C D E F G H I
Digitale elektronica --20--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Is geen equivalentierelatie meer!
00 01 11 10
0
0
0
0
0
1
0
1
1
1
y
A A B C
B D B E
C A F C
D D B G
E B E G
F H F I
G D F G
H J H F
I J F I
J J B I
( , , , , )
( , )
( , )
( , )
( , )
( )
( )
AB AC AD AE AG
BD BE
CD CG
DE DG
FH FI
HI
I J
Digitale elektronica --21--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Zoeken van maximaal compatibele klassen
( , , , , )
( , )
( , )
( , )
( , )
( )
( )
AB AC AD AE AG
BD BE
CD CG
DE DG
FH FI
HI
I J
AB
C
D
EF
G
H
I
J
( )
( )
( )
( )
ABDE
ACDG
FHI
I J
Digitale elektronica --22--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Zoeken van minimale stabiele bedekking
– stabiel: opvolgerverzamelingen steeds volledig in een originele verzameling– bedekking: alle originele toestanden aanwezig– minimaal: met minimum aantal blokken
Digitale elektronica --23--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Zoeken van minimale stabiele bedekking
( )
Opzoeken
priemcompatibelen
( ) ( , )
( ) ( , )
( ) ()
(
( )
( ) (
()
)
)
AB AD
ABDE AD CG
ACDG AD CG
FHI
I J
BDE
00 01 11 10
0
0
0
0
0
1
0
1
1
1
y
A A B C
B D B E
C A F C
D D B G
E B E G
F H F I
G D F G
H J H F
I J F I
J J B I
Minimale bedekking:
( ) ( , )
( ) ( , )
( ) ()
( ) ()
ABDE AD CG
ACDG AD CG
FHI
I J
Digitale elektronica --24--
Toestandsminimalisatiereductie
Toestandsminimalisatiereductie
Zoeken van minimale stabiele bedekking
00 01 11 10
0
0
0
0
0
1
0
1
1
1
y
A A B C
B D B E
C A F C
D D B G
E B E G
F H F I
G D F G
H J H F
I J F I
J J B I
Minimale bedekking:
( )
( )
( )
( )
a ABDE
b ACDG
c FHI
d I J
00 01 11 10
0
0
1
1
y
a a a a b
b b a c b
c d c c c
d d a c d
Digitale elektronica --25--
ToestandsassignatieToestandsassignatie
Doelstelling:
• vastleggen van minimum aantal toestandsvariabelen (cellen, lussen)
• optimale afbeelding van toestanden op bitpatronen:– voor synchrone automaten: economie– voor asynchrone automaten: correctheid, dan
economie
Digitale elektronica --26--
Toestandsassignatiesynchrone automaten
Toestandsassignatiesynchrone automaten
Aantal mogelijkheden:
2
Minimum aantal bits:
log
Aantal mogelijkheden:
2 (2 )!!
(2 )!
Aantal wezenlijk verschillende mogelijkheden:
(2 1)!
2 ! (2 )! !
n n
n
n
D n n
n r
N rr r
NN
n r n
Digitale elektronica --27--
Toestandsassignatiesynchrone automaten: afstandsmethode
Toestandsassignatiesynchrone automaten: afstandsmethode
Concept:– probeer assignatie zo te doen dat twee-niveauminimalisatie van functies zo eenvoudig mogelijk wordt– dit kan door eentjes in karnaugh-kaarten te clusteren– aantal heuristische regels die “aantrekkingskracht” tussen toestanden voorstellen
Digitale elektronica --28--
Toestandsassignatiesynchrone automaten: afstandsmethode
Toestandsassignatiesynchrone automaten: afstandsmethode
Regels:
1 2 1
1 2
naburig met als
1 ( ) {0,1} : ( , ) ( , )
2 ( 1) {0,1} : ( , ) ( , )
( , ) ( , )
3 ( 1) , {0,1} met , naburig:
( , ) ( , )
4 ( 1) {0,1} : ( , ) ( ,
i
i
i
i
nS S S
nS S
S Sn
S Sn
u uS
p q
w n X f p X f q X
w X f p X p f q X q
f p X q f q X p
w X X X X
f r X p f r X q
w n X f p X f q X )
Digitale elektronica --29--
Toestandsassignatiesynchrone automaten: afstandsmethode
Toestandsassignatiesynchrone automaten: afstandsmethode
1 2 1 2
1 2
( , , , , , , , , , )
naburig met als
1 ( 3) {0,1} : ( , ) ( , )
2 ( 1) {0,1} : ( , ) ( , )
( , ) ( , )
()
3 ( 1) , {0,1} met , naburig:
( , )
(
( , )
i
i
i
nS S
nS S
S S
n
S S
AC AE AG CE CG EG AG
p q
w X f p X f q X
w X f p X p f q X q
f p X q f q X p
w X X X X
f r X p f r
CD
X
CF D
q
F
4 ( 2
, , , , , )
( , , , , , ,
) {0,1}
, , , )
: ( , ) ( , )inu uw X f p X
AC AD ED AF GD AC
AC AD AE AF C
f q
D CE CF DE D
X
F EF
0 1
0
0
0
0
0
1
X X Y
A C
C D
D E D
E F
F G
A
D
A
G A C
A
Digitale elektronica --30--
Toestandsassignatiesynchrone automaten: afstandsmethode
Toestandsassignatiesynchrone automaten: afstandsmethode
A
C
D
E
F
G6 5
7
95
77
73
57
13
4
DF7
000
001
010
100
110
111
C
A
F
D
G
E
Digitale elektronica --31--
Toestandsassignatiesynchrone automaten: afstandsmethode
Toestandsassignatiesynchrone automaten: afstandsmethode
0 1
001 001 000 0
000 001 100 0
100 111 100 0
111 001 010 0
010 110 100 0
110 001 000 1
X X Y
0000
0001
0011
0010
0100
0101
0111
0110
1100
1101
1111
1110
1000
1001
1011
1010
X
S1
S2
S3
0000
0001
0011
0010
0100
0101
0111
0110
1100
1101
1111
1110
1000
1001
1011
1010
X
S1
S2
S3
0000
0001
0011
0010
0100
0101
0111
0110
1100
1101
1111
1110
1000
1001
1011
1010
X
S1
S2
S3
0000
0001
0011
0010
0100
0101
0111
0110
1100
1101
1111
1110
1000
1001
1011
1010
X
S1
S2
S3
d
d
d
d
S1 S2
S3 Y
000
001
010
100
110
111
C
A
F
D
G
E
d
d
d
d
d
d
d
d
d
d
d
d
Digitale elektronica --32--
Toestandsassignatiesynchrone automaten: eindresultaat
Toestandsassignatiesynchrone automaten: eindresultaat
0 1
001 001 000 0
000 001 100 0
100 111 100 0
111 001 010 0
010 110 100 0
110 001 000 1
X X Y
1
2
3
X S2' S3' + X' S1 S2' + S1' S2
X' S1 S2' + X' S1' S2 + X S2 S3
X' S2' + X' S1
S1 S2 S3'
s
s
s
Y
Digitale elektronica --33--
Toestandsassignatiesynchrone automaten: partitiemethode
Toestandsassignatiesynchrone automaten: partitiemethode
Methode steunt op concept stabiele partitie• is partitie van toestandsruimte
• voor elke input X wordt elk blok afgebeeld door fs op een verzameling volledig begrepen in een blok:
1 2( , , , ) met
, :
, {0,1} : ( , )I
k
i j
ii
nS i j
B B B
i j B B
B S
i X j f X B B
Digitale elektronica --34--
Toestandsassignatiesynchrone automaten: partitiemethode
Toestandsassignatiesynchrone automaten: partitiemethode
Essentie van stabiele partitie:
• Wanneer men een stabiele partitie heeft met k blokken kan men j = log2 k bits (S1,...,Sj) gebruiken om het blok aan te geven
• de waarde van fS op deze bits hangt enkel af van de huidige waarde van deze bits (en de input)
• de overige bits (Sj+1,...,Sj+m) dienen om in elk blok de toestand uniek te identificeren; m = max log2 |Bi|
Digitale elektronica --35--
Toestandsassignatieeigenschappen van stabiele partities
Toestandsassignatieeigenschappen van stabiele partities
Beide operaties bewaren stabiliteit: stabiele partities vormen tralie
• Minimaal element: alle singletons• Maximaal element: hele toestandsruimteTralie kan gegenereerd worden uit atomen
1 2 1 2
1 2
1 2 1 2
1 2
Twee operaties: lub en glb
lub( , ) ( ) transitieve sluiting van paarsgewijze
unies van blokken uit en
glb( , ) ( ) paarsgewijze doorsneden van
blokken uit en
Digitale elektronica --36--
Toestandsassignatiezoeken naar stabiele partities
Toestandsassignatiezoeken naar stabiele partities
Tralie van stabiele partities kan berekend worden door
• alle atomen op te sporen. Atomen zijn kleinste niet-triviale elementen.
• Atomen kunnen gevonden worden door voor elk koppel toestanden de minimale stabiele partitie te zoeken die dit koppel bevat
• alle andere elementen te vormen door herhaalde combinaties van gekende elementen: leidt tot dekpunt
Digitale elektronica --37--
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
0 1
0
0
0
0
0
1
X X Y
A A C
C A D
D E D
E A F
F G D
G A C
EG: (AEG)(CF)(D)
A,CC,D
A,E
C,F
A,D
A,G
A,F
C,G
C,E
D,F
D,G
E,F
E,G
F,GD,E
Digitale elektronica --38--
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
0 1
0
0
0
0
0
1
X X Y
A A C
C A D
D E D
E A F
F G D
G A C
EG: (AEG)(CF)(D)
DF: (AEG)(CDF)
A,CC,D
A,E
C,F
A,D
A,G
A,F
C,G
C,E
D,F
D,G
E,F
E,G
F,GD,E
Digitale elektronica --39--
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
Toestandsassignatiezoeken naar stabiele partities: voorbeeld
0 1
0
0
0
0
0
1
X X Y
A A C
C A D
D E D
E A F
F G D
G A C
EG: (AEG)(CF)(D)
DF: (AEG)(CDF)CG: (ACDEFG)
A,CC,D
A,E
C,F
A,D
A,G
A,F
C,G
C,E
D,F
D,G
E,F
E,G
F,GD,E
Digitale elektronica --40--
Toestandsassignatieencoderen met stabiele partities: voorbeeld
Toestandsassignatieencoderen met stabiele partities: voorbeeld
0 1
0
0
0
0
0
1
X X Y
A A C
C A D
D E D
E A F
F G D
G A C
(AEG)(CF)(D)
(AEG)(CDF)
(ACDEFG)
(AG)(CF)(D)(E)
(A)(C)(D)(E)(F)(G)
bit 1
bit 2
bit 3
1 2 3
0 0 0
1 0 0
1 1 1
0 1 0
1 0 1
0 0 1
S S S
A
C
D
E
F
G
Digitale elektronica --41--
Toestandsassignatieencoderen met stabiele partities: voorbeeld
Toestandsassignatieencoderen met stabiele partities: voorbeeld
(AEG)(CF)(D)
(AEG)(CDF)
(ACDEFG)
(AG)(CF)(D)(E)
(A)(C)(D)(E)(F)(G)
bit 1
bit 2
bit 3
1 2 3
0 0 0
1 0 0
1 1 1
0 1 0
1 0 1
0 0 1
S S S
A
C
D
E
F
G
0 1
000 000 100 0
100 000 111 0
111 010 111 0
010 000 101 0
101 001 111 0
001 000 100 1
X X Y
1
2 1 2
3 1 2 3
1
1 3
1 2
'
'
S
s X
s S S
s S S S S X
X
S X
Y S S
Digitale elektronica --42--
Toestandsassignatieencoderen met stabiele partities: resultaat
Toestandsassignatieencoderen met stabiele partities: resultaat
1 2 3
0 0 0
1 0 0
1 1 1
0 1 0
1 0 1
0 0 1
S S S
A
C
D
E
F
G
0 1
000 000 100 0
100 000 111 0
111 010 111 0
010 000 101 0
101 001 111 0
001 000 100 1
X X Y
1
2 1 2
3 1 2 3
1
1 3
1 2
'
'
S
s X
s S S
s S S S S X
X
S X
Y S S