Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałAntoni Skwarski Został zmieniony 11 lat temu
1
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
w strukturach z (wbudowanymi) pamięciami ROM 1
2
Nowoczesne struktury FPGA…
EMB ROM LC oprócz komórek logicznych zawierają również wbudowane pamięci 2
3
Realizacja automatów za pomocą pamięci ROM
Takie wyposażenie umożliwia realizację automatu w strukturze… X F Q Pamięć ROM Rejestr q x x + q y Rejestr adresowy Pamięć mikroprogramu 3
4
Rejestr adresowy i pamięć ROM
N m X0 Xi XN-1 n Y m 1100 1100 Rejestr clock 0010 4
5
PRZYKŁAD x1 x2 q1 q2 q3 S S S S S - S1 10 11 01 00 x1x2 S4 S2 S5 S3 CLK REJESTR 000 (S1) - - - - 010 (S3) 001 (S2) … ... ROM 1 2 .. 8 .. q1 q2 q3 WY 5
6
Bardzo dobra realizacja, ale…
X F Q Pamięć mikroprogramu (ROM) Rejestr adresowy q x x + q y Niestety taka realizacja wiąże się z ogromnymi wymaganiami na pojemność pamięci 6
7
UKŁADY MIKROPROGRAMOWANE
Takt RA ROM A UO UA X X Multiplekser warunków 7
8
MODYFIKACJA ADRESU Komórki logiczne Wbudowana pamięć X
Pamięć mikroprogramu (ROM) Rejestr Modyfikator adresu q x a b c < b (a + c) < (x + q) y Komórki logiczne Wbudowana pamięć F Q 8
9
JAK TO ZREALIZOWAĆ ??? X F Q Funkcja H X F Q Pamięć mikroprogramu
Rejestr Funkcja G q x a b c < b (a + c) < (x + q) y X F Q Pamięć mikroprogramu (ROM) Rejestr Modyfikator adresu q x a b c < b (a + c) < (x + q) y 9
10
Dekompozycja Szeregowa Funkcja G reprezentuje modyfikator adresu
JAK TO ZREALIZOWAĆ ??? Funkcja G reprezentuje modyfikator adresu Funkcja H opisuje zawartość pamięci U W V LUTs G Dekompozycja Szeregowa Rejestr H EMB F = H(U, G(V W)) 10
11
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
12
PRZYKŁAD Wejścia (x1 , x2) x1 x2 00 01 11 10 Wyj-ścia S1 S2 S4 - W Y J Ś C I A S5 S3 Stany MODYFIKATOR ADRESU REJESTR ROM Odpowiednie zakodowanie stanów i wejść może pomóc w podziale zmiennych wejściowych na zbiory U i V WY 12
13
Przestawiliśmy wiersze S3 oraz S4
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 S2 S4 - S5 S3 Przestawiliśmy wiersze S3 oraz S4 13
14
PRZYKŁAD c.d. Przyjęty podział tablicy wymusza odpowiednie kodowanie
tzw. kodowanie wstępne oraz pozwala wyznaczyć zbiory U i V x1x2 00 01 11 10 S1 0 S1 S2 S4 - S2 0 S5 S4 0 S3 1 S3 S5 1 U = {x1,x2,q1} V = {q2,q3} Kodowanie wstępne koduje tylko jedną zmienną q, czyli q1 oraz zmienne zewnętrzne x 14
15
PRZYKŁAD c.d. Na tej podstawie możemy określić strukturę, czyli schemat blokowy realizowanego automatu. U = {x1,x2,q1} V = {q2,q3} Modyfikator Adresu MA ROM Rejestr x x Out q 1 00 01 11 10 S1 S2 S4 - S5 S3 15
16
Uzyskane kodowanie trzeba zapisać w rachunku podziałów
PRZYKŁAD c.d. Uzyskane kodowanie trzeba zapisać w rachunku podziałów U = {x1,x2,q1} V = {q2,q3} 10 11 01 00 x1x2 q1 q2 q3 S ? ? S ? ? S ? ? S ? ? S ? ? 00 01 11 10 S1 0 S1 S2 S4 - S2 0 S5 S4 0 S3 1 S3 S5 1 - 3 2 1 5 4 - 8 7 - 6 16 15 14 13 12 11 10 9 P(U)|PF = ((1)(6) ; (2) ; (3,7)(4) ; (5)(8) ; (9,13) ; (10)(14) ; (11)(15) ;(12)(16)) 16
17
PRZYKŁAD c.d. Kodowanie wtórne U = {x1,x2,q1} V = {q2,q3} 00 01 11 10
q1 q2 q3 S1 0 S2 0 S4 0 S3 1 S5 1 0 0 0 1 1 0 1 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 17
18
PRZYKŁAD c.d. G 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)) 10 11 01 00 G x1x2 8 7 - 6 16 15 14 13 12 11 10 9 5 4 3 2 1 3 1, 2, 6, 7, 8 4, 5, 13, 14, 15, 16 9, 10, 11, 12 Przyjmujemy: W = {x1} 18
19
Synteza układów logicznych
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)) Uwaga: jest to inne rozwiązanie niż w książce Synteza układów logicznych ale oba rozwiązania są dobre 19
20
PRZYKŁAD c.d. – tablica funkcji G
1 x1 q2 q3 g q1q2q3 S S S S S 8 7 - 6 16 15 14 13 12 11 10 9 5 4 3 2 1 01 00 x1x2 1 20
21
PRZYKŁAD c.d. x1 q2 q3 g x1 x2 q1 G REJESTR H q1 q2 q3 21
22
PRZYKŁAD c.d. – tablica funkcji H
q1 q2 q3 S S S S S 8 7 - 6 16 15 14 13 12 11 10 9 5 4 3 2 1 01 00 I1 I2 I3 I4 S1 S2 S4 - S5 S3 x1x2 P(U) = (1,6 ; 2 ; 3,4,7 ; 5,8 ; 9,13 ; 10,14 ; 11,15 ; 12,16) P(U) G = (1; 6; 2; 3,7; 4; 5; 8; 9; 13; 10; 14; 11; 15; 12; 16) 22
23
PRZYKŁAD c.d. – tablica funkcji H
q1 q2 q3 S S S S S 8 7 - 6 16 15 14 13 12 11 10 9 5 4 3 2 1 01 00 x1x2 I1 I2 I3 I4 S1 S2 S4 - S5 S3 P(U) G = (1; 6; 2; 3,7; 4; 5; 8; 9; 13; 10; 14; 11; 15; 12; 16) x1 x2 q1 g 1 S1 1 S2 6 1 S2 2 1 3,7 S4 23
24
Tablica H określa zawartość pamięci ROM
PRZYKŁAD c.d. x1 q2 q3 g x1 x2 q1 G REJESTR ROM Tablica H określa zawartość pamięci ROM q1 q2 q3 24
25
PRZYKŁAD - ten sam automat…
…ale w innej strukturze UMA ROM Rejestr x x Out q 1 3 2 U = {q1,q2} V = {q3, x1,x2 } I1 I2 I3 I4 S1 S1 S2 S4 - S2 - - S5 S4 Teraz są dwa wyjścia z UMA S3 S3 S2 S1 S3 S4 S2 - S4 S1 S5 S3 S1 S4 S2 25
26
PRZYKŁAD c.d. - wyznaczenie P(U)
U = {q1,q2} V = {q3, x1,x2 } Kodowanie wstępne x1x2 q1 q2 q3 S ? S ? S ? S ? S ? 00 01 11 10 I1 I2 I3 I4 S1 S1 S2 S4 - - 3 2 1 S2 - - S5 S4 5 4 - 9 8 7 6 S3 S3 S2 S1 S3 16 15 14 13 12 11 - 10 S4 S2 - S4 S1 S5 S3 S1 S4 S2 P(U) = P(U)|PF= 26
27
PRZYKŁAD c.d. - wyznaczenie P(V)
U = {q1,q2} V = {q3, x1,x2 } Kodowanie wtórne x1x2 q1 q2 q3 S S S S S 00 00 01 11 10 - 3 2 1 5 4 - 9 8 7 6 16 15 14 13 12 11 - 10 27
28
PRZYKŁAD c.d. – obliczenie G
9 8 7 6 16 15 14 13 12 11 - 10 5 4 3 2 1 01 00 x1x2 q1q2q3 000 001 010 101 111 P(U)|PF= 00 01 10 11 G (1) (3,5) (2) (4) 28
29
PRZYKŁAD c.d. – tablice dla UMA i ROM
x1 x2 q3 q1 q2 G g1 g2 REJESTR H q1 q2 q3 29
30
PRZYKŁAD c.d. – tablice dla UMA i ROM
9 8 7 6 16 15 14 13 12 11 - 10 5 4 3 2 1 01 00 x1x2 1 g1 x1 q3 g2 x2 q1q2q3 000 001 010 101 111 00 01 10 11 G 30
31
PRZYKŁAD c.d. – tablice dla UMA i ROM
9 8 7 6 16 15 14 13 12 11 - 10 5 4 3 2 1 01 00 x1x2 S2 S4 S1 S3 - S5 I4 I3 I2 I1 q1q2q3 1 g2 q2 q1 q1 q2 q3 g1 0 0 0 1 0 1 0 0 1 000 001 010 101 111 ( P(U) = 00 01 10 11 G … P(U) G = 31
32
Jeszcze inna struktura (najlepsza)
U = {q1,q2, x1 } V = {q3, x2 } x1x2 q1 q2 q3 S S S S S 00 01 11 10 I1 I2 I3 I4 S1 S1 S2 S4 - - 3 2 1 S2 - - S5 S4 5 4 - 9 8 7 6 S3 S3 S2 S1 S3 16 15 14 13 12 11 - 10 S4 S2 - S4 S1 S5 S3 S1 S4 S2 P(U) = (1,2 ; 3,4,5 ; 6,7 ; 8,9 ; ... 32
33
PRZYKŁADOWE BENCHMARKI
TEST Wejścia Wyjścia Stany d14 3 5 7 cse 16 ex4 6 9 14 mark1 15 s1 8 20 tbk 32 sse 33
34
Implementacja automatu w układzie EPF 10K10
3 x EAB (2048 bitów) 576 Komórek logicznych Implementation not possible – not enough memory recourses Implementation not possible – not enough CLB recourses 34
35
ODWZOROWANIE UKŁADU TBK
tbk: bitów lub 759 komórek log. tbk: 4093 bitów oraz 333 komórek log. Przed dekompozycją Po dekompozycji 35
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.