1 / 36

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.

joella
Download Presentation

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. clock Rejestr Q Q Q Q D D D D 1 2 3 4 1 2 3 4 Rejestr adresowy 1 1 0 0 CLK 1 0 0 1 1100 1100 0010 4

  5. X0 n ROM N  m A Xi XN-1 m Y Pamięci typu ROM N = 2n N słów (komórek) m-bitowych W każdym komórce pamięci zapisane jest słowo m-bitowe Pamięć ROM jest uniwersalnym układem kombinacyjnym 5

  6. 0 1 2 3 4 5 6 7 Adres ROM 8  4 Pamięci typu ROM 0 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 6

  7. 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 0 000 REJESTR - S2 S4 S1 1 - - - - S1 S4 S2 S3 2 010 S3 ROM 10 001 S2 25 100 S5 PRZYKŁAD x1 x2 0 0 0 0 0 0 0 0 1 0 CLK q1 q2 q3 WY 0 1 0 0 0 0 7

  8. 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 8

  9. 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 9

  10. 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Ć ??? 10

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

  12. 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 12

  13. 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 13

  14. PRZYKŁAD – podział tablicy 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 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 14

  15. PRZYKŁAD – kodowanie wstępne Przyjęty podział tablicy wymusza odpowiednie kodowanie tzw. kodowanie wstępne x1,x2 q1 U = {x1,x2,q1} V = {q2,q3} Kodowanie wstępne koduje tylko jedną zmienną q, czyli q1 oraz zmienne zewnętrzne x 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 – wyznaczenie podziału P(U)|PF 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 – wyznaczenie podziału P(V) 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 – wyznaczenie podziału 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)) G x1x2 6, 7,8 4, 5, 13, 14, 15, 16 9, 10, 11, 12 Przyjmujemy: W = {x1} 18

  19. PRZYKŁAD – wyznaczenie podziału G 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 – schemat układu 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 – 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 – 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 – schemat układu x1 q2 q3 g x1 x2 q1 G REJESTR ROM Tablica H określa zawartość pamięci ROM q1 q2 q3 24

  25. x x q q q 2 3 1 1 2 UMA Rejestr ROM Out PRZYKŁAD - ten sam automat… …ale w innej strukturze I1 I2 I3 I4 S1 S1 S2 S4 - S2 - - S5 S4 S3 S3 S2 S1 S3 S4 S2 - S4 S1 Teraz są dwa wyjścia z UMA S5 S3 S1 S4 S2 Konsekwencją takiego podziału jest: U = {q1,q2} V = {q3, x1,x2} 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 Zakodowaliśmy bloki podziału G 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ŁAD – schemat układu x2 q3 g q1q2x1 UMA REJESTR ROM q1 q2 q3 Można uzyskać UMA o dwóch wejściach i jednym wyjściu 33

  34. PRZYKŁADOWE BENCHMARKI 34

  35. 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 35

  36. ODWZOROWANIE UKŁADU TBK tbk: 16 384 bitów lub 759 komórek log. tbk: 4096 bitów oraz 333 komórek log. Po dekompozycji Przed dekompozycją 36

More Related