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

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Teoria układów logicznych
Automaty asynchroniczne
Minimalizacja formuł Boolowskich
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel
Układy sekwencyjne - pojęcie automatu
Modelem układu sekwencyjnego jest AUTOMAT
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Michał Łasiński Paweł Witkowski
Architektura szynowa systemu mikroprocesorowego szyna danych szyna sterująca szyna adresowa µP szyna danych szyna adresowa D7,..., D1, D0 A15,..., A1,
Zamiana GWIAZDA-TRÓJKĄT
Budowa komputera Wstęp do informatyki Wykład 15
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Od algebry Boole’a do komputera
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Minimalizacja funkcji boolowskich
I T P W ZPT 1 Jak smakuje Espresso I T P W ZPT 2.
Struktury układów logicznych
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Tytuł prezentacji Warszawa, r..
Jak usprawnić obliczanie MKZ?
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
Architektura komputerów
Układy sekwencyjne pojęcia podstawowe.
minimalizacja automatów
Technika Mikroprocesorowa 1
Technika Mikroprocesorowa 1
Układy sekwencyjne - pojęcie automatu
Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej
Synteza logiczna w projektowaniu układów cyfrowych
Problem kodowania stanów w układach sekwencyjnych (automatach)
Problem kodowania stanów w układach sekwencyjnych (automatach)
Zadanie treningowe… …do wykładów ULOG cz. 6 i cz. 7 Rozwiązanie: E S 1
Problem kodowania x s 1 A B C D Wariant I A = 00 B = 01 C = 10 D = 11
Cyfrowe układy logiczne
Sekwencyjne bloki funkcjonalne
Kalendarz 2011 Real Madryt Autor: Bartosz Trzciński.
KALENDARZ 2011r. Autor: Alicja Chałupka klasa III a.
1/34 HISTORIA BUDOWY /34 3/34 6 MAJA 2011.
UKŁADY MIKROPROGRAMOWANE
Podstawy adresowania hostów w sieciach komputerowych
Plan prezentacji Zarys projektu Geneza tematu
Układy cyfrowe.
Analiza wpływu regulatora na jakość regulacji (1)
Minimalizacja funkcji boolowskich
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Minimalizacja automatu
Minimalizacja automatu
Dekompozycja Kalmana systemów niesterowalnych i nieobserwowalnych
Synteza logiczna w projektowaniu…
Kalendarz 2011r. styczeń pn wt śr czw pt sb nd
Problematyka wykładu Podział rejestrów i liczników
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Struktury układów logicznych
Obserwowalność i odtwarzalność
(C) Jarosław Jabłonka, ATH, 5 kwietnia kwietnia 2017
EcoCondens BBS 2,9-28 E.
Złożone układy kombinacyjne
Bramki logiczne i układy kombinatoryczne
Działania w systemie binarnym
Własności bramek logicznych RÓZGA DARIUSZ 20061
Układy asynchroniczne
Kalendarz 2020.
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
315.W jakim czasie ciało swobodnie spadające przebędzie piąty metr swojej drogi?
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji.
ZPT 1 Dekompozycja nierozłączna Pojęcie r - przydatności Dekompozycja zrównoważona Dekompozycja równoległa.
Zapis prezentacji:

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

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

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

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

PRZYKŁAD x1 x2 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 q1 q2 q3 S1 0 0 0 S2 0 0 1 S3 0 1 0 S4 0 1 1 S5 1 0 0 - 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 0 0 1 0 1 0 0 0 0 5

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

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

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

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

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

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

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

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

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

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 1 2 Out q 1 00 01 11 10 S1 S2 S4 - S5 S3 15

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 S1 0 ? ? S2 0 ? ? S4 0 ? ? S3 1 ? ? S5 1 ? ? 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

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

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

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

PRZYKŁAD c.d. – tablica funkcji G 1 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 8 7 - 6 16 15 14 13 12 11 10 9 5 4 3 2 1 01 00 0 0 0 x1x2 1 0 0 0 0 1 1 20

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

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

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

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

PRZYKŁAD - ten sam automat… …ale w innej strukturze UMA ROM Rejestr x x 1 2 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

PRZYKŁAD c.d. - wyznaczenie P(U) U = {q1,q2} V = {q3, x1,x2 } Kodowanie wstępne 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 - - 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

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

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

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

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

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

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

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

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

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