Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM
description
Transcript of Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM
ZPT 1
ZPT
EMBEMB
NowoczesneNowoczesne struktury FPGA…struktury FPGA…
LC ROM
oprócz komórek oprócz komórek logicznychlogicznych
zawierają również zawierają również wbudowane pamięci wbudowane pamięci
2
ZPT
Realizacja automatów za pomocą pamięci ROM
X
F Q
Pamięć ROM
Rejestr
qx
x + q
y
3
Takie wyposażenie umożliwia realizację automatu Takie wyposażenie umożliwia realizację automatu w strukturze…w strukturze…
Rejestr adresowy
Pamięć mikroprogramu
ZPT
Rejestr adresowy i pamięć ROM
1100
Rejestrclock
0010
1100
4
A ROMN m
X0
Xi
XN-1
n
Y
m
ZPT
PRZYKŁAD
q1 q2 q3
S1 0 0 0
S2 0 0 1
S3 0 1 0
S4 0 1 1
S5 1 0 0
-
--
-S1
10110100x1x2
S4S2
S4S5
S2
S2 S1 S3S3
S4 S1
S3S1 S4 S2
REJESTR
WY
x1 x2
q1 q2 q3
5
CLK
000 (S1)
- - - -
010 (S3)
001 (S2)
…
...ROM
0 0 0 0 0
0 0 0
0 0 0 1 0
0 1 0
0
1
2
8
.
.
.
.
0 1 0 0 0
0 0 1
ZPT
Bardzo dobra realizacja, ale…
X
F Q
Pamięć mikroprogramu(ROM)
Rejestr adresowy
qx
x + q
y
Niestety taka realizacja wiąże się z ogromnymi wymaganiami na
pojemność pamięci
6
ZPT
X
Multiplekser warunków
UKŁADY MIKROPROGRAMOWANE
TaktRA
ROM
A
UO
UA X
7
ZPT
MODYFIKACJA ADRESU
Komórki logiczne
Wbudowana pamięć
X
F Q
Pamięć mikroprogramu(ROM)
Rejestr
Modyfikator adresu
qx
a
b
c < b
(a + c) < (x + q)
y
8
ZPT
JAK TO ZREALIZOWAĆ ???
X
F Q
Pamięć mikroprogramu(ROM)
Rejestr
Modyfikator adresu
qx
a
b
c < b
(a + c) < (x + q)
y
X
F Q
Funkcja H
Rejestr
Funkcja G
qx
a
b
c < b
(a + c) < (x + q)
y
9
ZPT
Funkcja G reprezentuje modyfikator adresu
Funkcja H opisuje zawartość pamięci
U W V
G
Rejestr
H
LUTs
EMB
F = H(U, G(V W))
JAK TO ZREALIZOWAĆ ???
10
ZPT
Algorytm syntezy automatu(algebra podziałów)
1. Wybór zbioru U (wstępne kodowanie)
2. Określenie podziałów:
P(U), Pg = P(V)
3. Szukanie podziału g Pg
P(U) g PF
(czasami istnieje potrzeba wprowadzenia zbioru W)
4. Obliczenie funkcji G oraz H
11
ZPT
PRZYKŁAD
Odpowiednie zakodowanie stanów i wejść może pomóc w podziale zmiennych wejściowych na zbiory U i V
00 01 11 10Wyj
-ścia
S1 S1 S2 S4 - WYJŚCIA
S2 - - S5 S4
S3 S3 S2 S1 S3
S4 S2 - S4 S1
S5 S3 S1 S4 S2
Wejścia (x1 , x2)
Stany
ROM
REJESTR
WY
x1 x2
MODYFIKATOR ADRESU
12
ZPT
PRZYKŁAD c.d.
Kluczem do rozwiązania tego problemu jest permutacja wierszy i/lub kolumn tablicy przejść oraz odpowiedni podział tablicy przejść na podtablice z minimalna liczbą stanów następnych
00 01 11 10
S1 S1 S2 S4 -
S2 - - S5 S4
S4 S2 - S4 S1
S3 S3 S2 S1 S3
S5 S3 S1 S4 S2
Przestawiliśmy wiersze S3 oraz S4
13
ZPT
PRZYKŁAD c.d.
U = {x1,x2,q1}V = {q2,q3}
x1x2 00 01 11 10
S1 0 S1 S2 S4 -
S2 0 - - S5 S4
S4 0 S2 - S4 S1
S3 1 S3 S2 S1 S3
S5 1 S3 S1 S4 S2
Przyjęty podział tablicy wymusza odpowiednie kodowanie tzw. kodowanie wstępne oraz pozwala wyznaczyć
zbiory U i V
Kodowanie wstępne koduje tylko jedną zmienną q, czyli q1
oraz zmienne zewnętrzne x
14
ZPT
PRZYKŁAD c.d.
Na tej podstawie możemy określić strukturę, czyli schemat blokowy realizowanego automatu.
Modyfikator Adresu
MA
ROM
Rejestr
x x1 2
Out
q 1
00 01 11 10
S1 S1 S2 S4 -
S2 - - S5 S4
S4 S2 - S4 S1
S3 S3 S2 S1 S3
S5 S3 S1 S4 S2
15
U = {x1,x2,q1}V = {q2,q3}
ZPT
PRZYKŁAD c.d.
q1 q2 q3
S1 0 ? ?
S2 0 ? ?
S4 0 ? ?
S3 1 ? ?
S5 1 ? ?16151413
1211109
87-6
54--
-321
10110100x1x2
P(U)|PF =
U = {x1,x2,q1}V = {q2,q3}
00 01 11 10
S1 0 S1 S2 S4 -
S2 0 - - S5 S4
S4 0 S2 - S4 S1
S3 1 S3 S2 S1 S3
S5 1 S3 S1 S4 S2
((1)(6) ; (2) ; (3,7)(4) ;
(9,13) ; (10)(14) ; (11)(15) ;(12)(16))
(5)(8) ;
Uzyskane kodowanie trzeba zapisać w rachunku podziałów
16
ZPT
PRZYKŁAD c.d.
q1 q2 q3
S1 0
S2 0
S4 0
S3 1
S5 1
87-6
16151413
1211109
54--
-321
10110100x1x2U = {x1,x2,q1}
V = {q2,q3}
0 0
0 1
1 0
1 1
0 1
;1,2,3 ;15,164,5,13,14,P(V) ;6,7,8 9,10,11,12
Kodowanie wtórne
17
ZPT
PRZYKŁAD c.d.
U = {x1, x2, q1} V = {q2, q3}
P(U)|PF = ((1)(6) ; (2) ; (3,7)(4) ; (5)(8) ; (9,13) ; (10)(14) ;
(11)(15) ; (12)(16))
9,10,11,12;6,7,8;15,164,5,13,14,;1,2,3P(V)
Przyjmujemy: W = {x1}
31, 2, 6, 7, 8
10110100
87-6
16151413
1211109
54--
-321
x1x2
9, 10, 11, 124, 5, 13, 14, 15, 16
G
18
ZPT
PRZYKŁAD c.d.
V’ = {x1, q2, q3}
P(U)|PF = ((1)(6) ; (2) ; (3,7)(4) ; (5)(8) ; (9,13) ; (10)(14) ;
(11)(15) ; (12)(16))
)11,12 ; 9,10 ; 7,8 ; 6 ; 4,5,15,16 ; 13,14 ; 3 ; 1,2( )P(V'
)4,15,164,5,6,13,1 ; 9,10,11,121,2,3,7,8,(g
Uwaga: jest to inne rozwiązanie niż w książce
Synteza układów logicznych
ale oba rozwiązania są dobre
19
ZPT
PRZYKŁAD c.d. – tablica funkcji G
)11,12 ; 9,10 ; 7,8 ; 6 ; 4,5,15,16 ; 13,14 ; 3 ; 1,2( )P(V'
)4,15,164,5,6,13,1 ; 9,10,11,121,2,3,7,8,(g
0 1
q1q2q3
S1 0 0 0
S2 0 0 1
S4 0 1 0
S3 1 1 1
S5 1 0 1
87-6
16151413
1211109
54--
-321
10110100x1x2
x1 q2 q3 g
0 0 0 0
1 0 0 0
0 0 1 1
20
ZPT
PRZYKŁAD c.d.
x1 x2 q1
REJESTR
q1 q2 q3
G
H
x1
q2
q3
g
32321 qqqqxg
21
ZPT
PRZYKŁAD c.d. – tablica funkcji H
q1 q2 q3
S1 0 0 0
S2 0 0 1
S4 0 1 0
S3 1 1 1
S5 1 0 1
87-6
16151413
1211109
54--
-321
10110100x1x2
P(U) = (1,6 ; 2 ; 3,4,7 ; 5,8 ; 9,13 ; 10,14 ; 11,15 ; 12,16)
I1 I2 I3 I4
S1 S1 S2 S4 -
S2 - - S5 S4
S4 S2 - S4 S1
S3 S3 S2 S1 S3
S5 S3 S1 S4 S2
)4,15,164,5,6,13,1 ; 9,10,11,121,2,3,7,8,(ΠG
P(U) G = (1; 6; 2; 3,7; 4; 5; 8; 9; 13; 10; 14; 11; 15; 12; 16)
22
ZPT
PRZYKŁAD c.d. – tablica funkcji H
0 0 0 1
q1 q2 q3
S1 0 0 0
S2 0 0 1
S4 0 1 0
S3 1 1 1
S5 1 0 1
87-6
16151413
1211109
54--
-321
10110100x1x2
I1 I2 I3 I4
S1 S1 S2 S4 -
S2 - - S5 S4
S4 S2 - S4 S1
S3 S3 S2 S1 S3
S5 S3 S1 S4 S2
P(U) G = (1; 6; 2; 3,7; 4; 5; 8; 9; 13; 10; 14; 11; 15; 12; 16)
x1 x2 q1 g
0 0 0 0
0 1 0 01 1 0 0
S1
S2
S2
S4
)4,15,164,5,6,13,1 ; 9,10,11,121,2,3,7,8,(g1
6
2
3,7
23
ZPT
PRZYKŁAD c.d.
x1 x2 q1
REJESTR
q1 q2 q3
G
ROM
x1
q2
q3
g
32321 qqqqxg
Tablica H określa zawartość pamięci ROM
24
ZPT
PRZYKŁAD - ten sam automat…
…ale w innej strukturze
S3S1S2S3S3
S2S4S1S3S5
S1S4-S2S4
S4S5--S2
-S4S2S1S1
I4I3I2I1
U = {q1,q2}V = {q3, x1,x2 }
UMA
ROM
Rejestr
x x1 2
Out
q 1
q 3
q 2
Teraz są dwa wyjścia z UMA
25
ZPT
PRZYKŁAD c.d. - wyznaczenie P(U)
q1 q2 q3
S1 0 0 ?
S2 0 0 ?
S3 0 1 ?
S4 1 0 ?
S5 1 1 ?
16151413
1211-10
9876
54--
-321
10110100x1x2
U = {q1,q2}V = {q3, x1,x2 }
Kodowanie wstępne
S3S1S2S3S3
S2S4S1S3S5
S1S4-S2S4
S4S5--S2
-S4S2S1S1
I4I3I2I1
( ;1,2,3,4,5 )613,14,15,1;6,7,8,9 ;11,12 10, P(U)
;(4)(2),(3,5),(1), ;(8)(7),6,9),( ;(12)(11),10),( P(U)|PF=
(16)(15),(14),(13),26
ZPT
q1 q2 q3
S1 0 0 0
S2 0 0 1
S3 0 1 0
S4 1 0 1
S5 1 1 116151413
1211-10
9876
54--
-321
10110100x1x2
U = {q1,q2}V = {q3, x1,x2 }
Kodowanie wtórne
)5,12,16;9 ; 4,11,15 ; 3,8 ; 14 ; 2,7 ; 10,13 ; 1,6( P(V)
PRZYKŁAD c.d. - wyznaczenie P(V)
00
27
ZPT
PRZYKŁAD c.d. – obliczenie G
q1q2q3
;(4)(2),(3,5),(1), ;(8)(7),6,9),(
;(12)(11),10),(
P(U)|PF=
(16)(15),(14),(13), 9876
16151413
1211-10
54--
-321
10110100x1x2
000
001
010
101
111 )5,12,16;9 ; 4,11,15 ; 3,8 ; 14 ; 2,7 ; 10,13 ; 1,6( P(V)
G
(1) (3,5) (2) (4)
1,6 3,8 2,7
5,12,16
4,11,15
9 10,13 14
4,11,15;2,7,10,13 ;16 3,5,8,12, ;1,6,9,1401 1000 11
28
ZPT
PRZYKŁAD c.d. – tablice dla UMA i ROM
q1 q2
REJESTR
q1 q2 q3
G
H
x1
x2
q3
g2g1
29
ZPT
PRZYKŁAD c.d. – tablice dla UMA i ROM
100
1001
0000
g1x1q3 g2x2
1,6
10,13
2,7
00
1 09876
161514131211-10
54---321
10110100x1x2
000
001
010
101
111
)5,12,16;9 ; 4,11,15 ; 3,8 ; 14 ; 2,7 ; 10,13 ; 1,6( P(V)
4,11,15;2,7,10,13 ;16 3,5,8,12, ;1,6,9,1401 1000 11
G
q1q2q3
30
ZPT
PRZYKŁAD c.d. – tablice dla UMA i ROM
100
1000
0000
g2q2q1 q1 q2 q3g1
1
3,5
2
0 0 0
1 0 1
0 0 0 19876
161514131211-10
54---321
10110100x1x2
000
001
010
101
111
q1q2q3
S2S4S1S3
S1S4-S2
S3S1S2S3
S4S5---S4S2S1
I4I3I2I1
;1,2,3,4,5 )613,14,15,1;6,7,8,9 ;11,12 10, P(U)
4,11,15;2,7,10,13 ;16 3,5,8,12, ;1,6,9,1401 1000 11
G
P(U) G = 2 ; 3,5 ;1 …31
ZPT
Jeszcze inna struktura (najlepsza)
q1 q2 q3
S1 0 0 0
S2 0 0 1
S3 0 1 1
S4 1 0 1
S5 1 1 0
16151413
1211-10
9876
54--
-321
10110100x1x2
U = {q1,q2, x1 }V = {q3, x2 }
S3S1S2S3S3
S2S4S1S3S5
S1S4-S2S4
S4S5--S2
-S4S2S1S1
I4I3I2I1
....) 14,15 2,3, ; 16 1,13,( P(V)
P(U) = (1,2 ; 3,4,5 ; 6,7 ; 8,9 ; ...
32
ZPT
PRZYKŁADOWE BENCHMARKI
TEST Wejścia Wyjścia Stany
d14 3 5 7
cse 7 7 16
ex4 6 9 14
mark1 5 16 15
s1 8 6 20
tbk 6 3 32
sse 7 7 16
33
ZPT
Implementacja automatu w układzie EPF 10K10
AM implementation Benchmark
ROM Implementation
#bits
FF implementation #LCs
#LCs #bits
d14 512 60 21 256 cse 22528 1) 92 2 5632 ex4 13312 1) 28 2 3328 mark1 10240 1) 40 2 5120 s1 24576 1) 137 96 5632 tbk 16384 1) 759 2) 333 4093 sse 22528 1) 52 3 5632
1) Implementation not possible – not enough memory recourses2) Implementation not possible – not enough CLB recourses
34
ZPT
tbk
E P F 10K6144 b its
576 LC s
ODWZOROWANIE UKŁADU TBK
tbk
E P F 10 K6144 b its
576 LC s
Przed dekompozycją Po dekompozycji
tbk: 16 384 bitów lub 759 komórek log.
tbk: 4093 bitów oraz 333 komórek log.
35