Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Minimalizacja formuł Boolowskich
Teoria układów logicznych
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
Architektura systemów komputerowych
Przetwarzanie i rozpoznawanie obrazów
Badania operacyjne. Wykład 2
Michał Łasiński Paweł Witkowski
Macierze Maria Guzik.
Algorytm Rochio’a.
Metody Sztucznej Inteligencji w Sterowaniu 2009/2010 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania.
Układy logiczne kombinacyjne sekwencyjne
Minimalizacja funkcji boolowskich
I T P W ZPT 1 Jak smakuje Espresso I T P W ZPT 2.
Struktury układów logicznych
gdzie A dowolne wyrażenie logiczne ; x negacja x Tablice Karnaugha Minimalizacja A x+ A x=A gdzie A dowolne wyrażenie logiczne ;
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
Tytuł prezentacji Warszawa, r..
Matematyka.
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.
O relacjach i algorytmach
Technika Mikroprocesorowa 1
Układy kombinacyjne.
Podstawy układów logicznych
Układy sekwencyjne - pojęcie automatu
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Problem kodowania stanów w układach sekwencyjnych (automatach)
Espresso mankamenty.
Problem kodowania x s 1 A B C D Wariant I A = 00 B = 01 C = 10 D = 11
Espresso mankamenty.
Podstawy analizy matematycznej II
A. Sumionka. Starodawna gra marynarska; Gra dwu i wieloosobowa; Gracze wykonują ruchy naprzemian; Złożona ze stosów, w których znajduje się pewna ilość
II Zadanie programowania liniowego PL
Kinematyka prosta.
Zakładamy a priori istnienie rozwiązania α układu równań.
Systemy wspomagania decyzji
Minimalizacja funkcji boolowskich
Minimalizacja funkcji boolowskich
Minimalizacja automatu
Modelowanie i Identyfikacja 2011/2012 Metoda propagacji wstecznej Dr hab. inż. Kazimierz Duzinkiewicz, Katedra Inżynierii Systemów Sterowania 1 Warstwowe.
Dekompozycja Kalmana systemów niesterowalnych i nieobserwowalnych
Podstawy analizy matematycznej I
II. Matematyczne podstawy MK
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Struktury układów logicznych
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Sterowanie – metody alokacji biegunów II
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Matematyka i system dwójkowy
II Zadanie programowania liniowego PL
Urządzenia Techniki Komputerowej
Bramki logiczne i układy kombinatoryczne
przedmiot i metody analizy
Działania w systemie binarnym
Wyznaczniki, równania liniowe, przestrzenie liniowe Algebra 1
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Kalendarz 2020.
Elementy geometryczne i relacje
I T P W ZPT 1. I T P W ZPT 2 Synteza logicznaInżynieria informacji Dekompozycja funkcjonalna Odwzorowanie technologiczne FPGA Hierarchiczne podejmowanie.
I T P W ZPT 1 Minimalizacja funkcji boolowskich c.d. Pierwsze skuteczne narzędzie do minimalizacji wieloargumentowych i wielowyjściowych funkcji boolowskich.
ZPT f Gate ArrayStandard Cell Programmable Logic Devices PAL, PLA 1 Omówione do tej pory metody syntezy dotyczą struktur bramkowych… Dekompozycja funkcji.
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Dr Galina Cariowa. Legenda  Optymalizacja układów dwupoziomowych.  Kryterium kosztu realizacji.  Tablica (mapa) Karnaugh’a.  Metoda Quine’a – Mc Cluske’a.
Elementy cyfrowe i układy logiczne
Metoda klasyczna (wg książki Sasao)
Wstęp do Informatyki - Wykład 6
Zapis prezentacji:

Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej (rozdz. 3.3 książka SUL lub rozdz. 4 Ulog w zadaniach) Łączy idee metody Quine’a McCluskey’a oraz metody Espresso: a)  generacja implikantów prostych (wg Espresso) b) selekcja implikantów (wg Quine’a McCluskey’a) Metoda ta zrealizowana w programach Pandor oraz Instant jest udostępniona na stronie przedmiotu w katalogu: Komputerowe narzędzia syntezy logicznej

Pojęcia podstawowe Kostka K to krotka o składowych 0, 1,  reprezentująca zbiór wektorów zero-jedynkowych. K = (01), to zbiór wektorów: 0010 0011 0110 0111  Kostka reprezentuje niepełny iloczyn: K = 01 = Nie każda kostka jest implikantem, ale każdy implikant jest kostką. Kostka może być zbiorem wektorów fałszywych, albo prawdziwych i fałszywych.

Oznaczenia W standardzie espresso wektory (w ogólności kostki), dla których funkcja f = 1 oznacza się zbiorem F. Wektory (kostki) dla których funkcja f = 0 oznacza się zbiorem R. f = (F, R)

Przykład (EXTL) x1 x2 x3 x4 x5 x6 x7 f 1 k1 k2 k3 k4 k5

Ekspansja Ekspansja jest procesem działającym na kostkach zbiorów F i R, a jej celem jest uzyskanie dla danej k Î F kostki k' tak dużej, jak to tylko możliwe (tzn. z możliwie dużą liczbą pozycji o wartości ) i nie pokrywającej żadnego wektora zbioru R. W swoich obliczeniach Ekspansja wykorzystuje tzw. macierz blokującą B. Macierz blokująca dla danej kostki k  F powstaje z macierzy R przez zanegowanie tych kolumn R, których pozycje są wyznaczone przez pozycje jedynek w kostce k  F.

Tworzenie macierzy blokującej Wyznaczymy macierz blokującą dla kostki k1 wiedząc, że F i R są opisane macierzami: Skoro k1 = (0100101), to dla uzyskania B wystarczy w macierzy R "zanegować" kolumny drugą, piątą i siódmą. Zatem B(k1,R):

Pokrycie kolumnowe Przykład i interpretacja: Pokryciem kolumnowym macierzy B jest zbiór kolumn L (L  {1,...,n}) taki, że dla każdego wiersza i istnieje kolumna j  L, która w wierszu i ma jedynkę. Pokryciem kolumnowym Zbiór L jest minimalnym pokryciem kolumnowym macierzy B, jeśli nie istnieje zbiór L’ (tworzący pokrycie) taki, że L  L’. Przykład i interpretacja: L = {L4, L7} jest pokryciem kolumnowym. L = {L2, L3} – nie L = {L2, L3, L6} jest pokryciem kolumnowym. L = {L2, L6} – nie L = {L3, L6} – nie Obliczenie jakiegokolwiek minimalnego pokrycia kolumnowego nie jest trudne!

Jak obliczyć wszystkie… minimalne pokrycia kolumnowe! Zapisać zbiory kolumn wskazywane 1 (jedynkami) (Li, Lj ,Lk …) (Lk, Lp,Lq …) w postaci iloczynu sum (Li + Lj + Lk) (Lk + Lp + Lq) … Koniunkcję sum przekształcić do minimalnego wyrażenia boolowskiego typu suma iloczynów Li Lk + Lj LpLq + … Składniki tego iloczynu reprezentują minimalne pokrycia

Obliczanie pokrycia kolumnowego Przykład… {L6, L7} Korzystamy z własności algebry Boole’a {L3, L4} {L2, L4} {L2, L3, L7} (L6 + L7) (L3 + L4) (L2 + L4) (L2 + L3 + L7) = (L4 + L2)(L4 + L3)( L7 + L6)(L7 + L2 + L3) = (L4 + L2 L3)(L7 + L6(L2 + L3)) = (L4 + L2 L3)(L7 + L2L6+ L3L6) = L4 L7 + L2 L4L6 + L3L4L6 + L2 L3L7 + L2 L3L6 + L2 L3L6

Obliczanie pokrycia kolumnowego Obliczona i zminimalizowana suma iloczynów reprezentuje wszystkie minimalne pokrycia kolumnowe {L6, L7} {L3, L4} {L2, L4} {L2, L3, L7} L4 L7 + L2 L4L6 + L3L4L6 + L2 L3L7 + L2 L3L6 {L4, L7} {L2, L4, L6} {L3, L4, L6}... Pokrycie kolumnowe jest pojęciem ogólnym, można go tworzyć dla każdej macierzy binarnej

Generacja (obliczanie) implikantów Pokrycie kolumnowe macierzy blokującej B(k,R) pozwala wyznaczyć ekspansję kostki k oznaczaną k+(L,k) w sposób następujący: wszystkie składowe kostki k należące do L nie ulegają zmianie, natomiast składowe nie należące do L przyjmują wartość . Ekspansja kostki k jest implikantem funkcji f = (F,R). W szczególności k+(L,k) jest implikantem prostym, gdy L jest minimalnym pokryciem kolumnowym macierzy B(k,R).

Obliczanie implikantów - przykład Dla k2 = (1000110) i macierzy B= zbiór L = {4,7} jest pokryciem kolumnowym B, a więc k2 = (1000110) k+(L, k2) = (00), czyli implikantem F jest Natomiast dla L = {2,3,6} (inne pokrycie kolumnowe), k+(L,k) = (001) =

Ekspansja - interpretacja W interpretacji tablic Karnaugha ekspansja to powiększenie kostki pierwotnej, czyli zakreślenie wokół tej kostki jak największej pętelki. Kostka 0111 x3x4 x1x2 00 01 11 10 1 – Ekspansja 0*1*

Zmodyfikowana procedura Ekspansji Wszystkie minimalne pokrycia kolumnowe Macierz blokująca Wszystkie (najkrótsze) implikanty proste 1 ••• k1 k2 • kj kn Zbiór implikantów prostych Powtarzamy dla każdej kostki kj  F Uzyskane zbiory implikantów prostych porządkujemy wyrzucając implikanty powtarzające się

Implikanty proste x x x x x Obliczając kolejno implikanty proste dla każdej k Î F uzyskuje się: x1 x2 x3 x4 x5 x6 x7 f 1 Dla k 1 x 7 4 x Dla k 2 k1 k2 k3 k4 k5 5 x Dla k 3 Dla k 4 7 x 6 3 x Dla k 5 2

Implikanty proste Porządkując i oznaczając kolejno uzyskujemy następujący zbiór implikantów prostych: Na ogół jest to zbiór za duży, zatem trzeba wybrać „najlepsze” implikanty.

… przystępujemy do procesu selekcji Selekcji minimalnej liczby implikantów prostych umożliwiających realizację (pokrycie) funkcji boolowskiej dokonuje się za pomocą tzw. Tablicy implikantów (prostych) Pojęciem pomocniczym umożliwiającym konstrukcję TI jest: Relacja pokrycia dla kostek * r lub t T) (R T pokrywa R i = Ê jeśli (101) Ê / 1 * (0 ) (0010)

) (0 * k Ê ) 1 ( * , k Ê 0) ( * k , Ê Relacja pokrycia dla kostek Tablica F: x1 x2 x3 x4 x5 x6 x7 k1 1 k2 k3 k4 k5 ) (0 * 1 k Ê ) 1 ( * , 5 1 k Ê 0) ( * 4 3 2 k , Ê

Tablica implikantów prostych Korzystając z informacji jakie wektory (kostki) funkcji pierwotnej pokrywają poszczególne implikanty tworzymy tablicę implikantów prostych: 4 3 2 5 1 k , I Ê W tablicy tej wiersze reprezentują: kostki funkcji pierwotnej, a kolumny – implikanty (kostki po ekspansji). Jeśli i k Ê I1 I2 I3 I4 I5 k1 k2 k3 k4 k5 1 1 1 1 to w przecięciu wiersza i, kolumny j, stawiamy 1, w przeciwnym przypadku – 0.

Tablica implikantów prostych Tablica implikantów prostych umożliwia wybór (selekcję) takiego minimalnego zbioru implikantów, który pokrywa wszystkie kostki funkcji pierwotnej

Selekcja implikantów prostych Jak z tej tablicy znaleźć minimalny zbiór implikantów „pokrywający” każdą k1,…, k5 I1 I2 I3 I4 I5 k1 k2 k3 k4 k5 Pokrycie kolumnowe 1 1 1 1 Inny zapis tablicy: I1, I4 I2 I2 ,I3, I5 I2 I4, I5 I1, I4 I4, I5 Minimalne pokrycie: I2,I4 Minimalna formuła:

Implementacja metody – program Pandor Implicants table of function y1 10010 01000 01101 00011 ....................... All results of function y1 y1 = !x4!x7 + x2!x6 Fragment pliku wyjściowego Pandora: Trochę inny zapis Metoda ta zrealizowana w programach Pandor oraz Instant jest udostępniona na stronie przedmiotu w katalogu: Komputerowe narzędzia syntezy logicznej

Więcej na temat formatu espresso w książce SUL Taki sam wynik generuje Espresso… .type fr .i 7 .o 1 .p 9 .ilb x1 x2 x3 x4 x5 x6 x7 .ob y 1000101 0 1011110 0 1101110 0 1110111 0 0100101 1 1000110 1 1010000 1 1010110 1 1110101 1 .e Więcej na temat formatu espresso w książce SUL .i 7 .o 1 .ilb x1 x2 x3 x4 x5 x6 x7 .ob y .p 2 -1---0- 1 ---0--0 1 .e Espresso …funkcja EXTL w formacie espresso

Procedury systemu ESPRESSO F,D Complement Expand Essential primes Irredundant-Cover Reduce F M Last-gasp (rozdział 6 w książce SUL)

Plik wejściowy i wyjściowy przykładu .type fr .i 7 .o 1 .p 9 .ilb x1 x2 x3 x4 x5 x6 x7 .ob y 1000101 0 1011110 0 1101110 0 1110111 0 0100101 1 1000110 1 1010000 1 1010110 1 1110101 1 .e .i 7 .o 1 .ilb x1 x2 x3 x4 x5 x6 x7 .ob y .p 2 -1---0- 1 ---0--0 1 .e Skoro wyszło to samo co w obliczeniach za pomocą tylko jednej procedury ekspansji... ...to po co są inne procedury ESPRESSO To jest za prosty przykład!

A jak w jest w rzeczywistym Espresso... F,D Complement Expand Essential primes Irredundant-Cover Reduce F M Last-gasp

A jak w jest w rzeczywistym Espresso... Oblicza się ekspansję kostki k1 (ozn. E(k1)) – tylko jedną Wykreśla się z macierzy F wszystkie wektory pokrywane przez E(k1) Powstaje nowa macierz F’, w której bierzemy pierwszą kostkę i postępujemy tak samo… Proces kończy się, gdy pokryjemy (wykreślimy) wszystkie kostki F Wynik (zminimalizowaną funkcję) tworzą kolejno obliczone ekspansje

Przykład obliczany oryginalną ekspansją x1 x2 x3 x4 x5 x6 x7 f 1 k1 k2 k3 k4 k5

Przykład… 1 2 3 4 5 6 7 1 2 3 4 5 6 7 é ù ê ú ê ú ê ú ê ú ê ú ë û 7 6 1 1 1 ù k1 ê ú 1 1 1 k2 ê ú F = ê 1 1 ú k3 ê ú 1 1 1 1 k4 ê ú ë 1 1 1 1 1 û k5 7 6 5 4 3 2 1

Przykład… Taki może być wynik Ekspansji z Espresso 1 2 3 4 5 6 7 F = 7 k5 F = 7 6 5 4 3 2 ú û ù ê ë é = 1 7 6 5 4 3 2 B Taki może być wynik Ekspansji z Espresso

Procedury systemu ESPRESSO F,D Complement Expand 6 2 x + Essential primes Irredundant-Cover Reduce F M Last-gasp