1 / 35

Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM

Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM. 1. Nowoczesne struktury FPGA…. LC. ROM. FPGA. EMB. zawierają również wbudowane pamięci. oprócz komórek logicznych. 2. X. x. q. Rejestr. x + q. Pamięć ROM. y. F. Q.

devi
Télécharger la présentation

Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Synteza układów sekwencyjnych w strukturach z (wbudowanymi) pamięciami ROM 1

  2. Nowoczesnestruktury FPGA… LC ROM FPGA EMB zawierają również wbudowane pamięci oprócz komórek logicznych 2

  3. X x q Rejestr x + q Pamięć ROM y F Q Realizacja automatów za pomocą pamięci ROM Takie wyposażenie umożliwia realizację automatu w strukturze… Rejestr adresowy Pamięć mikroprogramu 3

  4. X0 n clock Rejestr ROM N  m A Xi XN-1 m Y Rejestr adresowy i pamięć ROM 1100 1100 0010 4

  5. x1x2 00 01 11 10 q1 q2 q3 S1 0 0 0 S2 0 0 1 S3 0 1 0 S4011 S5 1 0 0 S2 S1 - S4 S5 S4 - - S3 S2 S1 S3 (S1) 000 REJESTR - S2 S4 S1 - - - - S1 S4 S2 S3 010 (S3) 001 (S2) … ROM ... PRZYKŁAD x1 x2 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 CLK 0 1 2 .. 8 .. q1 q2 q3 WY 0 0 1 0 1 0 0 0 0 5

  6. x q Rejestr adresowy x + q Pamięć mikroprogramu (ROM) y F Q Bardzo dobra realizacja, ale… X Niestety taka realizacja wiąże się z ogromnymi wymaganiami na pojemność pamięci 6

  7. Takt RA X UA A X ROM Multiplekser warunków UO UKŁADY MIKROPROGRAMOWANE 7

  8. x q b Modyfikator adresu a c < b Rejestr (a + c) < (x + q) Pamięć mikroprogramu (ROM) y MODYFIKACJA ADRESU X Komórki logiczne Wbudowana pamięć F Q 8

  9. X X x x q q b b Funkcja G Modyfikator adresu a a c < b c < b Rejestr Rejestr (a + c) < (x + q) (a + c) < (x + q) Pamięć mikroprogramu (ROM) Funkcja H y y F Q F Q JAK TO ZREALIZOWAĆ ??? 9

  10. JAK TO ZREALIZOWAĆ ??? • Funkcja G reprezentuje modyfikator adresu • Funkcja H opisuje zawartość pamięci U W V LUTs G Dekompozycja Szeregowa Rejestr EMB H F = H(U, G(V W)) 10

  11. Algorytm syntezy automatu(algebra podziałów) 1. Wybór zbioruU (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 zbioruW) 4. Obliczenie funkcji G oraz H 11

  12. MODYFIKATOR ADRESU REJESTR PRZYKŁAD Wejścia (x1 ,x2) x1 x2 Odpowiedniezakodowanie stanów i wejść może pomócw podziale zmiennych wejściowych na zbiory U i V Stany ROM WY 12

  13. PRZYKŁAD c.d. 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 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 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 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. x x q 1 2 1 00 01 11 10 MA S1 S1 S2 S4 - Modyfikator Adresu Rejestr S2 - - S5 S4 S4 S2 - S4 S1 ROM S3 S3 S2 S1 S3 S5 S3 S1 S4 S2 Out Na tej podstawie możemy określić strukturę, czyli schemat blokowy realizowanego automatu. U = {x1,x2,q1} V = {q2,q3} 15

  16. x1x2 00 01 11 10 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 PRZYKŁAD c.d. Uzyskane kodowanie trzeba zapisać w rachunku podziałów U = {x1,x2,q1} V = {q2,q3} q1 q2 q3 S1 0 ?? S2 0 ?? S4 0 ?? S3 1 ?? S5 1 ?? 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} x1x2 00 01 11 10 q1 q2 q3 S1 0 S2 0 S4 0 S3 1 S5 1 • 0 0 • 0 1 • 1 0 • 1 • 0 1 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 17

  18. 00 01 11 10 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 1, 2, 3 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)) G x1x2 6, 7,8 4, 5, 13, 14, 15, 16 9, 10, 11, 12 Przyjmujemy: W = {x1} 18

  19. 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. x1 q2 q3 g q1q2q3 S1 0 0 0 S2 0 0 1 S4 0 1 0 S3 1 1 1 S5 1 0 1 00 01 11 10 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 PRZYKŁAD c.d. – tablica funkcji G 0 1 0 0 0 0 x1x2 0 1 0 0 0 0 1 1 20

  21. PRZYKŁAD c.d. x1 q2 q3 g x1 x2 q1 G REJESTR H q1 q2 q3 21

  22. q1 q2 q3 S1 0 0 0 S2 0 0 1 S4 0 1 0 S3 1 1 1 S5 1 0 1 00 01 11 10 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 PRZYKŁAD c.d. – tablica funkcji H 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. q1 q2 q3 S1 0 0 0 S2 0 0 1 S4 0 1 0 S3 1 1 1 S5 1 0 1 x1x2 00 01 11 10 1 2 3 - - - 4 5 6 - 7 8 9 10 11 12 13 14 15 16 PRZYKŁAD c.d. – tablica funkcji H P(U)  G = (1; 6; 2; 3,7; 4; 5; 8; 9; 13; 10; 14; 11; 15; 12; 16) 1 6 2 3,7 23

  24. 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. q q q x x 2 3 1 1 2 UMA Rejestr ROM Out PRZYKŁAD - ten sam automat… …ale w innej strukturze U = {q1,q2} V = {q3, x1,x2} I1 I2 I3 I4 S1 S1 S2 S4 - Teraz są dwa wyjścia z UMA S2 - - S5 S4 S3 S3 S2 S1 S3 S4 S2 - S4 S1 S5 S3 S1 S4 S2 25

  26. 1 2 3 - - - 4 5 6 7 8 9 10 - 11 12 13 14 15 16 PRZYKŁAD c.d. - wyznaczenie P(U) Kodowanie wstępne U = {q1,q2} V = {q3, x1,x2} x1x2 q1 q2 q3 S1 0 0 ? S2 0 0 ? S3 0 1 ? S4 1 0 ? S5 1 1 ? 00 01 11 10 I1 I2 I3 I4 S1 S1 S2 S4 - S2 - - S5 S4 S3 S3 S2 S1 S3 S4 S2 - S4 S1 S5 S3 S1 S4 S2 = P(U) P(U)|PF= 26

  27. 1 2 3 - - - 4 5 6 7 8 9 10 - 11 12 13 14 15 16 PRZYKŁAD c.d. - wyznaczenie P(V) U = {q1,q2} V = {q3, x1,x2} Kodowanie wtórne x1x2 q1 q2 q3 S1 0 00 S2 0 01S3 0 10 S4 1 01 S5 1 11 00 00 01 11 10 27

  28. x1x2 00 01 11 10 1 2 3 - - - 4 5 6 7 8 9 10 - 11 12 13 14 15 16 PRZYKŁAD c.d. – obliczenie G q1q2q3 000 001 010 101 111 P(U)|PF= 11 00 01 10 G (1) (3,5) (2) (4) 28

  29. PRZYKŁAD c.d. – tablice dla UMA i ROM x1 x2 q3 q1q2 G g1 g2 REJESTR H q1 q2 q3 29

  30. x1x2 00 01 11 10 1 2 3 - - - 4 5 6 7 8 9 10 - 11 12 13 14 15 16 g1 q3 x1 x2 g2 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 PRZYKŁAD c.d. – tablice dla UMA i ROM q1q2q3 000 001 010 101 111 11 00 01 10 G 30

  31. x1x2 00 01 11 10 I1 I2 I3 I4 1 2 3 - - - 4 5 S1 S2 S4 - 6 7 8 9 - - S5 S4 10 - 11 12 S3 S2 S1 S3 13 14 15 16 S2 - S4 S1 S3 S1 S4 S2 q1 q2 g1 g2 q1 q2 q3 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 PRZYKŁAD c.d. – tablice dla UMA i ROM q1q2q3 000 001 010 101 111 ( = P(U) 11 00 01 10 G … P(U)  G = 31

  32. 1 2 3 - - - 4 5 6 7 8 9 10 - 11 12 13 14 15 16 Jeszcze inna struktura (najlepsza) U = {q1,q2, x1 } V = {q3, x2} x1x2 q1 q2 q3 S1 0 0 0 S2 0 0 1 S3 0 1 1 S4 1 0 1 S5 1 1 0 00 01 11 10 I1 I2 I3 I4 S1 S1 S2 S4 - S2 - - S5 S4 S3 S3 S2 S1 S3 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 33

  34. Implementacja automatu wukł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: 16 384 bitów lub 759 komórek log. tbk: 4093 bitów oraz 333 komórek log. Po dekompozycji Przed dekompozycją 35

More Related