Professional Documents
Culture Documents
T. Łuba - Układy Logiczne W Zadaniach
T. Łuba - Układy Logiczne W Zadaniach
w zadaniach
Tadeusz Luba
Danuta Ojrzeńska-W ó|ter
W ARSZAW A 2 0 1 1
OFICYNA W YDAW NICZA POLITECHNIKI WARSZAWSKIEJ
Opiniodawca
Marian Adamski
Opracowanie redakcyjne
Teresa Woźniak
Skład komputerowy
Beata Zalewska-Kraśniewska
Andrzej Kowalczyk
Utwór w całości ani we fragmentach nie może być powielany ani rozpowszechniany za pomocą
urządzeń elektronicznych, mechanicznych, kopiujących, nagrywających i innych, w tym nie może być
umieszczany ani rozpowszechniany w Internecie bez pisemnej zgody posiadacza praw autorskich
ISBN 978-83-7207-950-3
Oficyna Wydawnicza PW, ul. Potna 50, 00-644 Warszawa. Wydanie I. Zamówienie nr 567/2010
Druk i oprawa: Drukarnia Oficyny Wydawniczej Politechniki Warszawskiej, tel. 22 234-40-26
I
j{%
S P IS TREŚCI
' :I.': !
Przedmowa............. ......................................................................................................................... 7
1. WPROWADZENIE................................................................................................................... 9
2. METODY OBLICZENIOWE W SYNTEZIELOGICZNEJ UKŁADÓW CYFROWYCH . 13
2 .1. Algebra Boole’a .................................................................................................................. 13
2.2. Elementy teorii grafów ..................................................................................................... 16
2.3. Rachunek podziałów ........................................................................................................ 21
2.4. Zadania z rozwiązaniami.................................................................................................. 23
2.5. Zadania do samodzielnego rozwiązania.......................................................................... 26
3. UKŁADY KOMBINACYJNE................................................................................................. 28
3.1. Podstawy teoretyczne....................................................................................................... 28
3.2. Zadania do samodzielnego rozwiązania.......................................................................... 35
5
9. MlNIMALIZĄpjA.STANÓW AUTOMATU........................................................................... 136
9.1. Podstawy teoretyczne......................................................................................................... *3^
9.2. Zadania z rozwiązaniami.................................................................................................... 142
9.3. Zadania do samodzielnego rozwiązania.............................................................................145
Literatura............................................................................................................................................ 232
Skorowidz.......................................................................................................................................... 234
*
PRZEDMOWA
fii
Niestety zagadnienia te nie mają jeszcze swoich pełnych opracowań podręcz
nikowych, mogących stanowić odpowiednią pomoc dydaktyczną do wykładów,
ćwiczeń i laboratorium z układów logicznych i cyfrowych, prowadzonych na wy
działach Elektroniki, Informatyki i Telekomunikacji. Lista krajowych publikacji
z tej dziedziny jest wyjątkowo uboga, a w przypadku zbiorów zadań praktycznie
ogranicza się do przestarzałych, graficznych metod minimalizacji lub klasyczne
go, niestosowanego w praktyce, algorytmu Quine’a-McCluskey’a oraz do prze
sadnie formalizowanych metod obliczania funkcji wzbudzeń automatów. Absur
dalność tego podejścia polega na tym, że procedury obliczania funkcji wzbudzeń
są już (w komputerowych systemach projektowania) całkowicie zautomatyzo
wane, zatem jedyną czynnością projektanta jest zoptymalizowanie samej tabli
cy przejść-wyjść automatu.
Tematyka skryptu odzwierciedla najnowsze metody syntezy logicznej, przy
czym dla utrzymania ciągłości i jednolitości wykładu, klasyczne metody syntezy
ograniczono tylko do niezbędnego minimum. Dzięki temu w szerszy sposób przed
stawiono nowsze - niepublikowane w podręcznikach krajowych - i obecnie bar
dziej przydatne zagadnienia układów logicznych. W rezultacie skiypt wypełnia lukę
na lynlcu wydawniczym, na któiym brak jest pozycji, które w sposób systematycz
ny, nowoczesny i w miarę wyczerpujący omawiałyby zagadnienia sprzętowych im
plementacji algorytmów syntezy logicznej w strukturach programowalnych,
uwzględniając najnowsze osiągnięcia światowe w tym zakresie.
Jest miłym obowiązkiem autorów wyrażenie podziękowań współpracowni
kom z Instytutu Telekomunikacji PW: doc. dr. inż. Bogdanowi Zbierzchowskie-
mu, dr Mirosławie Nowickiej, dr. inż. Grzegorzowi Borowikowi oraz Pani Iza
beli Ignaczak za wiele cennych uwag dotyczących materiału prezentowanego
w skrypcie, za pomoc w rozwiązywaniu zadań oraz w opracowaniu redakcyjnym
i edytorskim.
Osobne podziękowania autorzy wyrażają Panu Profesorowi Marianowi Adam
skiemu z Uniwersytetu Zielonogórskiego za trud podjęcia się recenzji skryptu
i wyrażają nadzieję, że trud ten zostanie z nawiązką nagrodzony w przyszłości
zwiększonym zainteresowaniem zagadnieniami syntezy logicznej wśród studen
tów wydziałów elektroniki, informatyki i telekomunikacji uczelni technicznych
w Polsce.
Należy również podkreślić nieocenione zasługi przy redakcji skryptu Pani Te
resy Woźniak z Oficyny Wydawniczej Politechniki Warszawskiej.
Autorzy
8
W PROW ADZENIE
Synteza układów logicznych jest gałęzią wiedzy, która w ostatnich latach rozwi
jała się niezwykle intensywnie, a jej zastosowania szybko przekroczyły granice
tradycyjnej dziedziny układów cyfrowych, dochodząc do obszarów wiedzy zali
czanej do szeroko rozumianych technik informacyjnych, a nawet informatyki.
Rozwój nowoczesnej syntezy logicznej był stymulowany przede wszystkim roz
wojem technologii mikroelektronicznych.
Dzisiejsze możliwości technologiczne są ogromne. Technologia dostarcza
konstruktorom układów cyfrowych specjalizowane układy scalone {Application
Specific Integrated Circuits) o zasobach sprzętowych rzędu kilkudziesięciu milio
nów tranzystorów, co z punktu widzenia układów logicznych jest równoważne
kilku milionom bramek logicznych. Nie mniej zna
czące są gęstości upakowania w strukturach progra
mowalnych FPLD {Field Programmable Logic Devi ---- 1_i — W.i.alj
ces) - w tym przypadku dochodzące do kilkunastu o
milionów bramek, co przy jednoczesnej możliwości
teza lunlti
reprogramowania i rekonfiguracji zapewnia tym ukła
dom niespotykane do tej pory możliwości realizacyj
ne i obliczeniowe.
Rozwój technologii stymuluje też rozwój kompu Synlo/n log,
terowych narzędzi projektowania, co - za pośrednic
twem języków opisu sprzętu —tym bardziej poszerza V/_
związek techniki cyfrowej z informatyką. Jest to zro Odwzorawa,
technologies
zumiałe, gdyż sensowne przetworzenie milionów bra
mek w zamierzenia konstruktora układów cyfrowych 0
nie może się odbyć bez udziału komputerowych sys
temów projektowania.
Typowy komputerowy system projektowania
Rys. 1.1. Typowy schemat prze
(rys. 1.1) jest wyposażony w moduł syntezy funkcjo twarzania informacji w kom
nalnej, moduł syntezy logicznej oraz procedury od puterowym systemie projeklo-
wzorowania technologicznego.
Zadaniem takiego systemu jest realizacja algorytmu przetwarzania informacji
cyfrowej w układzie scalonym zbudowanym z bramek lub komórek logicznych.
Nie jest to zadanie łatwe i dlatego synteza układów logicznych jest jednym z naj
ważniejszych działów techniki cyfrowej. Trudności wynikają przede wszystkim
z faktu, iż inne były wymagania stawiane tym układom wtedy, gdy były one kon
struowane z pojedynczych tranzystorów (lata 50.) lub wtedy, gdy cyfrowe układy
scalone zwierały kilka bramek (lata 70.). Wobec dzisiejszych milionów bramek
zawartych w jednym, reprogramowalnym i rekonfigurowalnym module scalo
nym, jest to postęp ilościowy, który musiał całkowicie zmienić - i ciągle jeszcze
zmienia - metody syntezy układów cyfrowych, a w szczególności metody synte
zy układów logicznych.
Ze zrozumiałych względów komercyjne systemy projektowania nie nadążają za
rozwojem technologii. Dlatego powstają uniwersyteckie systemy syntezy logicz
nej. Systemy takie mogą skutecznie wspomagać standardowe procedury syntezy lo-
I gicznej i dzięki „elastyczności” języków HDL mogą być stosowane do dowolnych
fragmentów projektowanego układu cyfrowego. Z założenia są to systemy przysto-
( sowane do obsługi przez użytkownika o głębszej wiedzy z zakresu syntezy logicz-
jlriej, Spełniają więc rolę niejako „awaryjną”, tzn. są stosowane wówczas, gdy sys-
teiny komercyjne nie dają pozytywnych rezultatów ze względu na dużą złożoność
j [obliczeniową.
I Drugą, nie mniej ważną rolą systemów uniwersyteckich, jest zdobywanie wie
dzy i doświadczenia w zakresie skuteczności procedur obliczeniowych. Tak więc
z biegiem lat wiele programów i procedur obliczeniowych, stosowanych w syste
mach uniwersyteckich, weszło do wyposażenia systemów komercyjnych. Typo
wym przykładem mogą tu być systemy opracowane na uniwersytecie kalifornij
skim w Berkeley, na przykład ESPRESSO oraz SIS. Dziś proceduiy minimalizacji
funkcji boolowskich programu ESPRESSO są stosowane bezpośrednio (jako wbu
dowane do systemu) lub pośrednio (z możliwością wymiany danych) we wszyst
kich prawie systemach komputerowego projektowania układów cyfrowych.
Struktury programowalne uzyskują fizyczną postać konkretnego układu cy
frowego dopiero w trakcie programowania. Z tej przyczyny układy te określa się
mianem wirtualnych, gdyż do momentu zaprogramowania istniejątylko jako od-
< powiędnie pliki specyfikacji HDL na dyskach komputerów (a nawet na kartce pa
pieru). Takie układy wirtualne mogą być zarówno gotowymi produktami o zmien-
E pych funkcjach oraz właściwościach, jak i elastycznymi „klockami”, z których
można konstruować większe systemy. Z punktu widzenia gotowego produktu wy
twarzanego seryjnie możliwość modyfikacji i nadawania jego standardowej kon
strukcji indywidualnie wyspecjalizowanych funkcji i parametrów stwarza wspa
niałą perspektywę.
| Rynek produktów wirtualnych jest ogromnym wyzwaniem dla zaawan
sowanych metod optymalizacji logicznej. Konkurencję na tym rynku będąwygry-
10
11
skich, o wielowartościowych wejściach i o setkach argumentów, a czas obliczeń
jest stosunkowo krótki.
Struktury dwupoziomowe są, z natury rzeczy, przystosowane do realizacji na
bramkach AND, OR, NOT (ewentualnie NAND), a w konsekwencji wygodne
do implementacji w strukturach PLA i PAL, powszechnie stosowanych w ukła
dach PLD. Inne techniki realizacyjne, a w szczególności realizacje w strukturach
GA, SC i FPGA mają, niestety, całkiem odmienne wymagania dotyczące struk
tury układów kombinacyjnych. Ze względu na powierzchnię, jaką zajmuje układ
kombinacyjny w całej strukturze modułu scalonego, oszczędniejsze (pod wzglę
dem powierzchni) sątzw. struktury wielopoziomowe. Są one uzyskiwane metoda
mi transformacji sumo-iloczynowych wyrażeń boolowskich na wielopoziomowe
postaci wyrażeń silnie sfaktoryzowanych lub metodami dekompozycji funkcjo
nalnej. Zatem głównie na potrzeby układów Gate Array, Standard Cell oraz FPGA
zostały stworzone rozbudowane procedury syntezy wielopoziomowej, a w szcze
gólności dekompozycja funkcjonalna.
Klasycznymi zadaniami w procesie syntezy układów sekwencyjnych są: mini
malizacja liczby stanów wewnętrznych, kodowanie sygnałów wejściowych i wyj
ściowych oraz stanów elementów pamięci, wreszcie obliczanie funkcji wzbudzeń
(tzw. synteza kombinacyjna). Tradycyjnie minimalizacja liczby stanów, synteza
kombinacyjna oraz synteza układów asynchronicznych są zaliczane do zagadnień
podstawowych. Bardziej zaawansowane zagadnienia syntezy układów sekwen
cyjnych dotyczą przede wszystkim problemu kodowania stanów wewnętrznych
i są związane z tzw. syntezą strukturalną. Należy jednak podkreślić, że metody
syntezy układów sekwencyjnych ciągle znajdują się na etapie badań i dlatego od
powiednie narzędzia projektowania komputerowego znaleźć można wyłącznie
w oprogramowaniu uniwersyteckim.
Skrypt składa się z 13 rozdziałów. Rozdziały 1 i 2 mają charakter wstępny. Omó
wiono w nich znaczenie syntezy logicznej w projektowaniu układów cyfrowych
(rozdz. 1) oraz podstawowe pojęcia matematyczne (rozdz. 2) niezbędne w zrozu
mieniu następnych rozdziałów. Zagadnienia syntezy układów kombinacyjnych,
w tym minimalizację funkcji boolowskich, redukcję argumentów i dekompozycję
funkcjonalną przedstawiono w rozdz. 3 do 7. W następnych rozdziałach (8 do 11)
omówiono syntezę kombinacyjną i strukturalną układów sekwencyjnych, łącznie
z minimalizacją liczby stanów automatów oraz zagadnieniami projektowania mi-
kroprogramowanych układów sterujących. W rozdziale 12 podano procedury, moż
liwości i sposób obsługi uniwersyteckich systemów syntezy logicznej. Wreszcie
w rozdziale 13 pokazano związki syntezy logicznej z niektórymi zagadnieniami
analizy danych. Wszystkie rozdziały (oprócz 1 i 12) zaopatrzone są w zestawy za
dań z rozwiązaniami oraz zadania do samodzielnego rozwiązania.
12
METODY OBLICZENIOWE
W SYNTEZIE LOGICZNEJ J
UKŁADÓW CYFROWYCH
: 1*1 = 1
gdzie - oznacza operację AND. Operację AND realizuje bramka AND o symbolu
graficznym podanym na rys. 2.Ib.
Operacja negacji (NOT) zmienia wartość argumentu na przeciwny. Nega-
cją 0 jest 1, a negacją 1 jest 0, co zapisujemy:
1=0
0= 1
Operacja NOT zmiennej x Jest oznaczana x , a jej symbol graficzny (bramka NOT)
, pofiany jest na rys. 2.1c.
1 j ; Z punktu widzenia techniki cyfrowej specjalnemu zainteresowaniu podlega dwu-
, elementowa algebra Boole’a, którą będziemy rozumieli jako system (B, + , 0, 1),
uf jgdzie zbiorem jest B = {0, 1}. Dwuwartościowa (zwana również binarną) algebra
'' jBoole’a stanowi podstawę nowoczesnej syntezy logicznej, formułując prawa, jakim
podlegają zmienne boolowskie, tj. zmienne ze zbioru B. Prawa te podajemy w formie
I jzestawienia, w którym każde prawo (reguła) jest zaopatrzone w odpowiednią nazwę.
jWłasności stałych
: o + 0 = a, o- 0 = 0
o + l = l, <7-l=a
I Własności negacji
a + o = l, o -o = O
Podwójna negacja
o=o
Idempotentność
0 + 0 = 0, o o =o
Przemienność
a + b= b + a, a b —b a
Łączność
o + (b + ć) = (o + b) + c, o •(b ■c) = (o •b) •c
14
Rozdzielność
a + b-c = (a + b)-(a + c), a-(b + c) = a-b + a-c
Prawa De Morgana
y = a-b = d + b, y = a + b = d-b
W algebrze Boole’a, operacje „ + ” (dysjunkcja) i (koniunkcja) nazywa się
również przez analogię do arytmetyki odpowiednio dodawaniem i mnożeniem.
Operacje dodawania i mnożenia są przemienne oraz rozdzielne względem sie
bie. Elementy binarne 0 oraz 1 spełniają rolę elementu neutralnego odpowiednio
względem operacji dodawania i mnożenia. Dla każdego elementu a istnieje ele
ment a , nazywany negacją, spełniający odpowiednie własności.
Starszeństwo działań w algebrze Boole’a jest takie same jak w zwykłej arytme
tyce (np. wyrażenie a + b-c interpretuje się jako a + (bc), a nie jako (a + b)c; na
wiasy są opuszczane tam, gdzie nie prowadzi to do nieporozumień; opuścić można
także znak mnożenia a zamiast symbolu „ + ”, często używany jest symbol v.
Wyrażenie boolowskie jest formułą, w której zmienne boolowskie połączone
są operatorami: + (OR), • (AND), x (NOT). Na przykład:
a + b + c-d + e
a + b + cd + e
a + b{d + e)
W zapisie wyrażeń boolowskich często pomija się kropkę i przyjmuje nastę
pującą kolejność operacji:
1. NOT,
2. AND,
3. OR.
Kolejność tę można zmienić,przez zastosowanie nawiasów.
Typowym zastosowaniem algebry Boole’a jest upraszczanie wyrażeń boolow
skich. Na przykład:
15
2.2. ELEMENTY TEORII GRAFÓW
Grafem prostym nazywamy parę G = (V, E), gdzie V jest niepustym skończo
nym zbiorem wierzchołków, a £ jest skończonym zbiorem krawędzi - nieupo-
: rządkowanych par różnych elementów ze zbioru V. Przykład grafu podany jest
! na iys. 2.2. Jest to graf, w którym zbiór wierzchołków V= {v,, v2, v3, v4, v5, v6)
; oraz zbiór krawędzi E = {(v„ v6), (v2, v3), (v2, v4), (v2, v5), (v2, v6), (v3, v4), (v3, v6),
| (v5;v6)}.
I Dowolny podzbiór wierzchołków, w któiym każde dwa wierzchołki są połą
czone krawędzią, nazywamy kliką. Klika, która nie jest zawarta w żadnej istotnie
innej klice, nazywana jest maksymalną. Najlicz
niejszą klikę w danym grafie nazywamy najwięk
sza kliką. Klikami dla grafu z rys. 2.2 są następu
jące zbiory: V= {v2, v3, v4}, V= {v2, v3, v6},
V= {v2, v5, v6}.
Zbiorem niezależnym nazywamy dowolny zbiór
wierzchołków, które nie są sąsiednie w danym gra
fie. Analogicznie określamy pojęcie maksymalne
go zbioru niezależnego. Przykładami zbiorów nie
zależnych dla grafu z iys. 2.2 są: V= {v,, v4, v5},
v= (vi> v3>v5h K , v6}, V= {vt, v2}.
Obliczanie klik nie jest zadaniem łatwym. Można się zastanawiać, jak obliczyć
maksymalne kliki w grafie podanym na rys. 2.3. W tym celu problem obliczania
maksymalnych klik warto sprowadzić do problemu obliczania maksymalnych
klas zgodności definiowanych dla danej relacji zgodności. Najpierw zdefiniujemy
pojęcie iloczynu kartezjańskiego.
Iloczynem kartezjańskim zbiorów
A i B, oznaczanym A * B, nazywa
my zbiór wszystkich par uporządko
wanych (a, b), takich że pierwszy ele
ment pary należy do zbioru A (a e A),
natomiast drugi do B (b e B), czyli
A x B= {(a,b): a eA , b e B}
Przykład 2.1
Niech A = {p, q} oraz B = {r, s, (}.
Wtedy: A x B = {(p, r), (p, s), (p, i),
(q, r), (q, .s), (q, ()}.
16
Relacją nazywamy dowolny podzbiór iloczynu kartezjańskiego zbiorów A, B.
Typowe własności relacji na zbiorze A (czyli A x A) są definiowane następująco;
■ zwrotność i
Va e A aRa |
I
■ symetria I
i
\/a,b e A aRb => bRa '
■ przechodniość
Va,b,c s A aRb, bRc => aRc
Najważniejszymi relacjami stosowanymi w technice cyfrowej są relacje rów
noważności i zgodności.
Relację, która jest zwrotna, symetryczna i przechodnia, nazywamy relacją
równoważności.
Relację, która jest zwrotna, symetryczna, ale nie jest przechodnia, nazywamy
relacją zgodności.
Własności relacji zgodności pokrywają się z intuicyjnym rozumieniem zgod
ności:
a) każdy element jest zgodny z samym sobą,
b) jeśli element v, jest zgodny z v2, to również v2jest zgodny z vh
c) jeśli Vj jest zgodny z v2 oraz v2jest zgodny z v3, to z tego nie wynika, że v, jest
zgodny z v3, co obrazowo przedstawiono na rys. 2.4.
17
METODA WG PAR SPRZECZNYCH
Przykład 2.2
Dla grafu z rys. 2.2 parami zgodnymi są: (v„ v6), (v2, v3), (v2, v4), (v2, v5), (v2, v6),
(v3, v4), O 3, ';ć)> (v5>v6). Zatem parami sprzecznymi będą:
E = {0 |, v2), Oi, v3), (v„ v4), (v„ v5), (v3, v5), (v4, v5), 0 4, v6)}
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
Oi + v2)(v, + v3)(v, + v4)(v, + v5)(v3 + v5)(v4 + v5)(v4 + v6) =
= Ol + V2)(V! + v3)(v, + v4)(v, + v5)(v4 + v5)(v4 + v6)(v3 + vs) =
(stosujemy zasadę (a + b)(o + c) = a + bc)
= (v, + v2v3v4v5)(v4 + v5v6)(v3 + v5) =
(wymnaźamy i redukujemy zbędne składniki)
= O 1V4 + V,v5v6 + V2V3V4V5 + )(v3 + v5) =
= (v,v4 + v,v5v6 + v2v3v4v5)(v3 + v5) =
= V ,V 3V4 + + V2V3V4 V5 + V 1V4V5 + V 1V5V6 + =
= v,v3v4 + v,v4v5 + v,v5v6 + v2v3v4v5
Po odjęciu od zbioru {v,,..., v6} zbiorów reprezentowanych przez poszczegól
ne składniki uzyskanego wyrażenia otrzymujemy wszystkie maksymalne klasy
zgodne, czyli kliki:
Oi, v6} - 0 „ v3, v4} = {v2, v5, v6}
{v,,..., v6} - O ,, v4>vs) = O2, v3, v6}
Oi, v6} - (v„ v5, v6} = {v2, v3, v4}
Ol, - , v6} - {v2, v3, v4, v5} = {v„ v6}
W podobny sposób można sformułować algorytm obliczania maksymalnych
zbiorów niezależnych (MZN):
1. Zapisać pary ZGODNE (v„ vj), (vh v,), (vp, vq), ... w postaci koniunkcji
dwuskładnikowych sum (v/ + v/)(vk + V;)(v + v(/) ...
18
Przykład 2.3
Obliczyć wszystkie MZN dla grafu z rys. 2.2.
Zbiór par zgodnych:
E = (Oi, v6), (v2, v3), (v2, v4), (v2, v5), (v2, v6), (v3, v4), (v3, v6), (v5, v6)}
Obliczamy wyrażenie boolowskie typu „koniunkcja sum”:
Ot + v6)(v2 + v3)(v2 + v4)(v2 + v5)(v2 + v6)(v3 + v4)(v3 + v6)(v5 + v6) =
= (v2 + v3)(v2 + v4)(v2 + v5)(v2 + v6)(v6 + v,)(v6 + v3)(v6 + v5)(v3 + v4) =
= (v2 + V3v4v5v6)(v6 + v,v3v5)(v3 + v4) =
= (v2v6 + v,v2v3v5 + v3v4v5v6 + ) ( v 3 + V4 ) =
19
Przykład 2.4
Niech E będzie relacją na zbiorze V= {vt, ..., v„}, tzn. zbiorem par zgodnych
(sąsiednich) (v„ v;): i , j e {1, ..., n} oraz i &j. Obliczenie (maksymalnych) klas
Zgodności w zbiorze V przy danej relacji E sprowadza się do wykonania nastę
pujących czynności:
i
1. Zapisać elementy v w rodzinach Sf zgodnie z zasadą: v, e S, tylko wtedy, gdy
I (v/>vi) jest parą zgodną oraz i <j.
2. Jeżeli RKZ/cjest rodziną klas zgodności uzyskaną w /c-tym kroku algorytmu,
to rodzinę RKZi+ , uzyskuje się, obliczając przecięcie każdej KZ e RKZt ze
zbiorem Sk+ ,. Wyróżnia się przy tym następujące przypadki:
a) Sk+ , = 0 , wtedy RI<CZit+ , jest powiększona o klasę KZ = {k + 1},
b) KZ n S ł t l = 0 , wtedy klasa KZ nie ulega zmianie,
c) KZ n Sk+, ^ 0 , wtedy powstaje nowa klasa KZ' = KZ n Ą + , u {k + 1}.
20
:V'V-'’j|$iC||^|fp|^)|||||||p|^ • «»«nr^r! " ..
Przykład 2.5
Obliczyć maksymalne klasy zgodności dwiema metodami.
Najpierw zastosujemy algorytm wyznaczania klas zgodnych według par nie-!
zgodności: (v„ v4), (v,, v6), (v„ v7), (v2, v4), (v2, v6), (v2, v7), (v3, v6), (v4, v5) i (v5, v7).! j
Utworzone według par niezgodnych wyrażenie boolowskie i jego kolejne przekształ-1!
cenią są podane poniżej:
(v, + v4)(v, + v6)(v, + v7)(v2 + v4)(v2 + v6)(v2 + v7)(v3 + v6)(v4 + v5)(v5 + v7) =
= (v, + v4v6v7)(v2 + v4v6v7)(v3 + v6)(v5 + v4v7) = v,v2v3v5 + v,v2vsv6 +
+ v,v2v3v4v7 + v4v6v7
Klasy zgodne uzyskamy, odejmując od zbioru {V|,..., v7} zbioiy tych v„ które
występują w jednym składniku obliczonego powyżej wyrażenia typu „suma ilo
czynów”. Stąd
{v„ v7} - {v„ v2, v3, v5 } = {v4, v6, v7}
{v„ v7} - {v„ v2, v5, v6 } = {v3, v4, v7}
{v„ v7} - {v,, v2, v3, v4, v7} = {v5, v6}
{v„ ..., v7} - {v4, v6, v7} = {v„ v2, v3, vs } I i
|i:
Identyczny wynik uzyskamy, obliczając klasy zgodne algorytmem korzystają i1
cym z par zgodnych. Następujące pary są zgodne: (v„ v2), (v„ v3), (v„ v5), (v2, v3),
(v2, v5), (v3, v4), (v3, v5), (v3, v7), (v4, v6), (v4, v7), (v5, v6), (v6, v7). N a tej podstawie
wyznaczamy zbiory Ś- i tworzymy kolejne listy (rodziny RKZt) klas zgodnych,
które dla uproszczenia zapisów będziemy podawać w postaci zbiorów indeksów:
St = 0 {1}
S2={1} {1, 2}
Ą - {1,2} {1,2,3}
Ą ={3} {3,4}, {1,2, 3}
Ss ~ {1, 2, 3} {1,2, 3, 5}, {3,4}
^ = { 4 ,5 } {5,6}, {4,6}, {1,2, 3, 5}, {3,4}
S7={3, 4, 6} {4, 6, 7},-{3r?fc {3, 4, 7}, {5, 6}, {1, 2, 3, 5}
x, = 0 2 ;53 ;Ś3 ;W )
t2 = (T ^ ; 2 ^ ; 475 ; ^ 8 ; 9 )
Dla podziałów wprowadza się relację < oraz działanie iloczynu i sumy:
n , < n 2 <=>v ą e n , 3Bj e n 2 b, e Bj
Największym i najmniejszym podziałem zbioru S są odpowiednio:
n (l) = ( 1 ,2 .....n)
n ( 0 )= (I; 2 ;...)
Niech x3 = (1,2; 3; 4; 5,6; 7,8; 9). Wówczas x3 < x,. Analogiczny związek
nie zachodzi między x, i x2 ani między x2 i x3.
Podział n nazywamy iloczynem podziałów II, i n 2 (EL = Tl, • II2), jeżeli II
jest największym podziałem (tzn. podziałem mającym największe bloki) spełnia
jącym warunki: II < II, oraz II < II2. Podział TI, ■II2 można wyznaczyć bardzo
prosto, wyznaczając wszystkie możliwe iloczyny w sensie teorii mnogości każde
go bloku II,, z każdym blokiem II2; zbiór tak otrzymanych zbiorów jest poszuki
wanym podziałem.
Sumą podziałów II, + II2 nazywamy najmniejszy podział, nie mniejszy niż
11, oraz n 2. Wyznaczenie II, + II2jest nieco trudniejsze. Niech podziały II, i II2
mają odpowiednio bloki Bi i Bf takie, że Bi n 2?- & 0 . Tworzymy wtedy nowy blok
B, = Bj u Bi i sprawdzamy, czy II, i II2 zawiera taki blok Bk, że Bk n B^ ^ 0 . Jeże
li tak, to tworzymy nowy blok Bk u Bjt itd. W wyniku takiego postępowania otrzy
mamy stopniowo podział II, + II2.
Dla wprowadzonych podziałów mamy:
x,-x2 =(l; 2; 3; 4; 5; 6; 7 3 ; 9)
x3 -x, =(172; 3; 4; 5 3 ; 7 3 ; 9) = x3
22
.tiyiaV
Wygodne w zastosowaniach jest również pojęcie ilorazu podziałów (podzia
łu ilorazowego). Niech 11, i n 2 są podziałami na S oraz II, > n 2. Podział II, jn 2
jest podziałem ilorazowym n t i.n 2, jeżeli jego elementy są blokami II2, a bloki
sąblokami n ,. Na przykład: dlaó'= {1, 2, 3, 4, 5, 6}, El| = {1,2,5; 3,4,6}, n 2 =
= {1,2; 3,6; 4; 5} podziałem ilorazowym będzie:
ZADANIE 2.1
Wykazać, że (x + y)(x + z) = xz + x y .
Rozwiązanie
(x + y){x + z) = xx + xz + xy + yz = xz + xy + yz = xz + xy +1 ■yz =
= xz + xy + (x + x)yz —xz + xy + xyz + xyz = xz + xyz + xy + xyz =
= z( 1+ y) + xy( 1+ z) = xz.+ xy
W przekształceniach wykorzystano następujące własności algebry Boole’a:
a + a = 1, ab + ac = a(b + c) , a + 1= 1
ZADANIE 2.2
Podane wyrażenie typu „iloczyn sum”:
Rozwiązanie
23
im
ZADANIE 2.3
Rozwiązanie
Par zgodnych jest 13, par sprzecznych jest 14. Ze względu na dużą liczbę par,
lepszą metodą będzie metoda par zgodnych, wykorzystująca algorytm tworze
nia RKZ.
,
5 =0 {1}
{2 } { 1}
Ą =0
S3 = {1} {1,3} {2}
Ą ={3} {3,4} {1,3} {2}
Ą = { 2 ,3 ,4 } {3,4, 5 } - { 3 ^ ( 2 , 5} {1,3}
3,4} {3,4,6} {3,4,5} {2,5} {1,3}
S7 = { 1 .5 , 6} {6,7} {5,7} {1,7} {3,4,6} {3,4,5} {2,5} {1,3}
St = {2, 5,6} {6, 8} {2, 5, 8} {6,7} {5,7} {1,7} {3,4,6} {3,4,5} {1,3}
MKZ - {1, 3}, {1, 7}, {5, 7}, {6, 7}, {6, 8}, {2, 5, 8}, {3, 4, 5}, {3, 4, 6}
24
W celu wyznaczenia klas zgodnych należy w kolejnym kroku ze zbioru wszyst
kich stanów kolejno odjąć uzyskane w ostatecznym wyrażeniu pojedyncze zbiory
stanów niezgodnych. Stąd:
{1, 2, 3 ,4 , 5, 6, 7, 8} - 12578 = 346
(1, 2, 3, 4, 5, 6, 7, 8} - 12678 = 345
{1,2, 3 ,4 , 5,6, 7, 8 } - 123457 = 68
{1, 2, 3, 4, 5, 6, 7, 8} - 123458 = 67
{1, 2, 3, 4, 5, 6, 7, 8} - 123468 = 57
{1, 2, 3, 4, 5, 6, 7, 8} - 13467 = 258
{1,2, 3 ,4 , 5, 6, 7, 8 } -2 4 5 6 7 8 = 13 i i
{1,2, 3, 4, 5, 6, 7, 8 } -2 3 4 5 6 8 = 17 j ! jj
'> Do rozdzielenia klas zgodności użyto znaklu „/” (zamiast nawiasów „{„ i „}”).
25
b)
Pary sprzeczne: (e,, e8) (e2, eĄ) (e2, e8) (e3, e7) (e4, e5).
(e8 + e,) (e8 + <?2) (e4 + e2) (e4 + e5) (e3 + e7) =
= (ea + <?,e2) + tJ2es)(e3 + ei) =
= (e4e8 + e,<?5e8 + e,e2e4 + e 1e2e5)(e3 + e7) =
= e3e4e8 + e2e3e5e8 + e te2e3e4 + exe2e3e5 +
+ e4e7e8 + e2e5e7e8 + e xe2e4e7 + exe2e5e7
W obu przypadkacli maksymalne klasy zgodności są następujące:
e 2> « s . e 6 , <37 )
{ C | , « 4 » e 6> e ?}
{ e 5 > * 6 . e 7> e&}
{ e <i» e 6,, C 7: . e 8 )
{ e v , e 2,, e 3 ;. e 5 , <?6 }
e 4.
{ « i. e 3» ««}
C s . C fi. e 8 }
{<?3» « 4 » « s}
26
a) x y + xy + xy,
b) (x + y)(x + y),
c) x + xy + xz + xyz,
d) (x + y )(x + y ),
e) a + d +(b + ad)(c + d),
f) xy + xyz + yz,
g) x(yz + x)(y + z ),
h) (a + bc)(ac + c(b + b )).
ZADANIE 2.8
W zbiorze S = (1,2, 3, 4, 5, 6,1, 8} następujące pary są zgodne: (1,3), (1, 7), (2,5), i
(2, 8), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 7), (5, 8), (6, 7), (6, 8). Obliczyć metodą
par sprzecznych wszystkie maksymalne klasy zgodności.
ZADANIE 2.9
i
Wiedząc, że zbiory R w algorytmie obliczania maksymalnych klas zgodności są |
następujące: , i
' ' - I
R ą = {1, 2}, Rs = 0 , R6^ {1,2, 4}, R7 = {3, 4, 5, 6 },R S= { 1, 3, 4,6}
oraz że dla R4 rodzina klas zgodnych RKZ = {1,4} {2,4} {2, 3}, obliczyć wszyst- i
kie MKZ generowane przez ten algorytm.
27
o UKŁADY K O M BIN A C Y JN E
28
wiednikiem wektora a : o składowych an_t, a0, traktowanego jako liczba w za
pisie dwójkowym:
n-1
A = L{ ANKB) = Y j a i -2J =a„_x-2"~x+... + a2 -22 +a, -21+ a 0 -2°
7=0
(0101)B = 0 • 23 + 1 • 22 + 0 • 2 1 + 1 • 2° = 5d
(1010)B = 1 • 23 + 0 • 22 + 1 • 2 1+ 0 • 2° = 10D
T ablica 3.1
a) b)
k *3 / k •V! *3 /
0 0 p 0 0 0 0 0 0 0
1 0 0 1 1 1 0 0 1 1
2 0 1 0 0 2 0 1 0 -
3 0 I 1 1 3 0 1 1 1
4 1 0 0 0 4 1 0 0 0
5 1 0 1 1 5 I 0 1 1
6 1 1 0 1 6 1 1 0 -
7 1 ,1 1 I 7 1 1 1 1
/ = E(l, 3, 5, 6, 7)
/= E [ 1 ,3 ,5 , 7, (2, 6)]
29
i
Funkcje boolowskie reprezentowane odwzorowaniem f jakkolwiek możliwe
do bezpośredniej realizacji technicznej, nie mają najlepszej formy do zastosowań.
Znacznie wygodniejsze są reprezentacje funkcji w postaci wyrażeń boolowskich.
Wynika to przede wszystkim z łatwej realizacji elementów logicznych, zwanych
bramkami logicznymi, które stanowią naturalną realizację wyrażeń boolowskich,
gdzie występują w postaci operatorów.
Dla funkcji opisanej tablicą prawdy podaną w tablicy 3.la odpowiednia for
muła boolowska jest następująca:
a jej realizacja na bramkach AND, OR, NOT pokazana jest na rys. 3.1.i
gdzie:
31
Zbiorowi wektorów {h>,, w,, . . wr} ęr {0,1}", gdzie/(»»',•) —1 dla każdego
z, odpowiada wyrażenie:
1=0
Jest to tzw. kanoniczna postać sumy. Stanowi ona sumę wszystkich iloczy
nów pełnych pomnożonych przez wartość funkcji dla kombinacji z. W wyrażeniu
tym pozostają w efekcie te iloczyny (tzw. mintermy), którym odpowiada wartość
funkcji 1; iloczyny, którym odpowiada wartość funkcji 0, znikają. Kanonicznąpo-
stać sumy można wyznaczyć bezpośrednio z tablicy prawdy przez wybranie wier
szy, dla których wartość funkcji jest równa 1, utworzenie dla każdego z nich ilo
czynu pełnego oraz zsumowanie iloczynów pełnych.
Kanoniczna postać sumy funkcji z tablicy 3. la jest zatem następująca:
+ ... + x ! + ... + x \“
gdzie:
„ fx, d la e ,= 0
x J =< J J
J dla = 1
zostają sumy (tzw. maxtermy), dla których /( /) = 0. Jest to tzw. kanoniczna postać
iloczynu, której interpretacja za pomocą funkcji z tablicy 3. la jest następująca:
T ablica 3.2
k p, X, X2 * 3
0 x , x 2x 3 0 0 0 Xj ■}- A*2 + X3
1 X XX 2X 3 X, + x 2 + x 3
O
O °
o
2 xt + x 2 + x3
1
3 x tx 2x 3 0 1 1 xl + *2 + Xj
4 ■XtX 2X 3 1 0 0 x ,+ x 2 + x3
5 x,x2x3 1 0 1 X, + x 2 4 - X 3
6 1 1 0 3c, + x 2+ x3
7 X fX 2X 3 i i i Aj + X 2 + A’3
Przykład 3.2 /
Dla funkcji/j = E[0, 1, 2, 5, 8, 9, 10, (4, 12, 13)] podanej w tablicy 3.3 wyraże
niem boolówskim wg kanonicznej postaci sumy jest:
\ — A j X 2X 3X 4 + X^X2X 3X 4 f X^X2X 3Xą ~t~XjX2X 3X 4 ~f"X^X2X 3Xą "t~X^X2X 3Xą X^X2X 3Xą
33
W dwuelementowej algebrze Boole’a wprowadza się też inne działania (ope
ratory). Do najważniejszych z nich należą: zanegowana suma (NOR), zanego
wany iloczyn (NAND) oraz suma wyłą
Tablica 3.3 czająca (tzw. suma modulo 2 lub różnica
symetryczna, oznaczana EXOR).
k *2 *3 *4 A A Określenia tych działań podano w ta
0 0 0 0 0 1 1
blicy 3.4, a odpowiednie symbole bramek
1 0 0 0 1 1 -
na rys. 3.2.
2 0 0 1 0 1 1 Dysponując różnymi bramkami lo
3 0 0 1 1 0 - gicznymi, można funkcje boolowskie
5 0 I 0 1 1 1 realizować w różnych strukturach. Do
6 0 1 1 0 0 0 najbardziej typowych i najczęściej stoso
„7 0 1 1 1 0 1 wanych należą:
h 1 0 0 0 1 0
9 1 0 0 1 1 - ■ realizacja AND-OR,
10 1 0 1 0 1 0 ■ realizacja NAND,
11 1 0 1 1 0 - ■ realizacja OR-AND,
13 1 1 0 1 - 1 ■ realizacja NOR.
14 1 1 1 0 0 0
Na rysunku 3.3 pokazano realizacje
15 1 1 1 1 0 1
AND-OR oraz NAND funkcji opisanej
wyrażeniem y = x,x2 + x,x3 + x2x3.
Realizacja AND-OR jest bezpośrednim odwzorowaniem wyrażenia boolow-
skiego typu SOP (Sum o f Product). Realizację NAND uzyskujemy z wyrażenia typu
suma iloczynów, które przekształcamy zgodnie z prawem De Morgana do postaci:
34
,LŚ0*kiiWfc
Przekształcenie tego wyrażenia wg prawa De Morgana
y = xx 4- x2 + x} + x3 + x2 4- x3■
3) a)
Xl-
*2- x2-
*1-
*3------£>°- ;k o x3 - [>■ o >
*2- x2.
X3---- O - X3- - > ■
b) b)I
*1--------- Xi-
X 2 --------------------
*2- — O i
X,--------- Xi-
x3 ------[ X > ? o X3-
*2- X2-
X3---- p>o- x3-
Rys. 3.3. Realizacja: a) AND-OR i b) NAND Rys. 3.4. Realizacja: a) OR-AND i b) NOR
ZADANIE 3.1
c) F -~AB{C + Z ) ,
d) F = (A + B + C)(A + B + D )(B + Ć + D)(A + B + C + D ) ,
e) F —AB + BC + CD + D A .
35
ZADANIE 3.2
,{,i Podane wyrażenia boolowskie przedstawić w postaci sumy iloczynów:
• a) F = (A + B + CD)(B + C + D E ),
V.' b) F = A + B + Ć + D .
ZADANIE 3.3
Podane funkcje boolowskie zapisać w kanonicznej postaci sumacyjnej i iloczy
nowej:
: a) F = (A ,B ) = Z (l,2 ),
b) F = (A ,B ,C ) = ?:(2, 4, 6, 7),
c) F = x +y z ,
d) F = (A ,B ) = 11(0,1,2),
, e) F = (A , B, 0 = 1 1 ( 0 ^ 3 , 4, 5),
f) F = (A, B ,C ) = A + ~BC .
ZADANIE 3.4
Funkcję boolowską f ( x ],x2,x3,x 4) = jc, + x2x3 + x,x3x4 przedstawić w kanonicz
nej postaci sumacyjnej i iloczynowej.
ZADANIE 3.5
Dla funkcji boolowskich z zadania 3.2 naiysować ich bramkowe realizacje:
a) AND-OR,
; ; b) NAND,
c) OR-AND,
d) NOR.
M INIM ALIZACJA
F U N K C JI BOOLOW SKICH 4
4.1. PODSTAWY TEORETYCZNE
37
jest stosunkowo krótki. Niestety, ze względu na ograniczoną objętość skryptu
omówiona będzie tylko metoda tablic Karnaugha oraz metoda ekspansji (przykła
dowa procedura ESPRESSO).
METODA KARNAUGHA
38
►ytŚB:
ft*-
Przykład 4.1
Minimalizacja funkcji / z poprzedniego rozdziału, której tablicę prawdy powta
rzamy w tablicy 4.2, wymaga wpisania funkcji do tablicy Karnaugha. W tym celu
wystarczy wyszukać te kratki tablicy, w których współrzędne odpowiadają wek
torom tablicy prawdy i wpisać w nie wartość funkcji. Tablica Karnaugha funk
cji / podana jest w tablicy 4.3. Następnie zakreślamy pętelki. Pętelki muszą obej
mować kratki wypełnione „1”, których współrzędne reprezentują pełne iloczyny
zmiennych podlegające uproszczeniu zasadami algebry Boole’a. Łatwo stwier
dzić, że „1” małej pętelki są opisane wyrażeniem:
/ *2 *3 /
0 0 0 0 0
1 0 0 1 1
2 0 1 0 0
3 0 1 l '- ,1
4 1 0 0 0
5 1 0 1, 1
6 1 1 0 1
7 1 1 ■1. ■A
39
V *2*3 s*4*5
0 1 00 01 11
X
x,x2\ 3 *1
10
XlX2X^s 00 01 11 10
00 0 1 0 1 3 2 000 0 1 3 2
01 2 3 4 5 7 6 001 4 5 7 6
11 6 7 Oil 12 13 15 14
10 4 5 \X 3X4 010 8 9 11 10
00 01 11 10
*1*2^ 110 24 25 27 26
00 0 1 3 2 111 28 29 31 30
01 4 5 7 6 101 20 21 23 22
11 12 13 15 14 100 16 17 19 18
10 8 9 11 10
Rys. 4.2. Przykłady tablic z ponumerowanymi kratkami wg naturalnego kodu binarnego (NK.B)
Algorytm 4.1
1) Wpisujemy funkcję do tablicy Karnaugha.
2) Zakreślamy pętelki.
a) Pętelki zakreślamy wokół grup sąsiadujących kratek zawierających „1” albo
„1” i (kreski).
b) Liczba kratek objętych pętelka musi wynosić: 1, 2, 4, ..., 2k.
c) Staramy się objąć pętelkąjak największą liczbę kratek.
40
3) Pętelki zakreślamy tak długo, aż każda „1” będzie objęta co najmniej jedną pę
telką, pamiętając o tym, aby pokryć wszystkie „1” możliwie minimalną liczbą
1 pętelek.
4) Z każdą pętelką kojarzymy iloczyn zmiennych prostych lub zanegowanych.
Suma tych iloczynów, to minimalne wyrażenie boolowskie danej funkcji.
Przykład 4.2
Należy zminimalizować funkcję/zapisaną symbolicznie w postaci SOP liczbami
dziesiętnymi:/ = Z[0, 5, 6, 7, 10, (2, 3, 11, 12)] j
Korzystając z odpowiedniego wzoru tablicy z rys. 4.2, znajdujemy kratki
o odpowiednich numerach i wpisujemy do nich „1” i (kreski). W pozostałe
■wpisujemy „0”. Po wpisaniu zakreślamy pętelki (ta
blica 4.4), z którymi kojarzymy odpowiednie ilo Tablica 4.4
czyny, uzyskując w rezultacie minimalne wyrażenie
boolowskie w postaci sumy iloczynów:
/ = 3c,x 3 + x2x3 + xtx2x4 + x,x2x4
W podobny sposób postępujemy przy obliczaniu
minimalnego wyrażenia w postaci iloczynu sum. Je
dyną różnicą, jaką w tym przypadku należy wprowa
dzić do algorytmu 4.1, jest zmiana w punkcie 2a, a mianowicie: pętelki zakreślamy
wokół grup sąsiadujących kratek zawierających „0” albo „0” i ” (kreski); inny jest
również sposób interpretacji pętelek: pętelkom odpowiadają sumy zmiennych pro
stych lub zanegowanych, obliczane wg kanonicznej postaci iloczynu.
Przykład 4.3
Minimalizacja funkcji z przykładu 4.2 do postaci iloczynu sum przedstawiona jest
na tablicy 4.5. Poszczególnym pętelkom w tej tablicy odpowiadają sumy zmien
nych, których iloczyn tworzy następujące wyrażenie:
41
I 5Prosty implikant jest to implikant, który zmniejszony o dowolny literał prze
staje być implikantem.
Pojęcie implikantu można zinterpretować na tablicy Karnaugha. W tablicy 4.6
zakreślono dwie pętelki. Mniejsza odpowiada implikantowi xxx3x4. Nie może to
być implikant prosty, gdyż pętelkę tę można powięk
, Tablica 4.6 szyć. Większej pętelce odpowiada implikant prosty
xxx3, w którym nie możnajuż usunąć żadnego literału.
^3*4 00 01 11 10 W dotychczasowych przykładach minimalizowa
* 1*2
ne były pojedyncze funkcje boolowskie, dla których
00 1 0 ® ■• p
- w celu uzyskania rozwiązania z minimalnym kosz
01 0 1 1- 1' tem - tworzone były wyłącznie implikanty proste.
11 - 0 0 0 W ogólnym przypadku minimalizacji zespołów funk
10 0 0 - 1 cji boolowskich tworzenie minimalnego rozwiązania
wyłącznie na podstawie implikantów prostych nie za
wsze prowadzi do najlepszego rezultatu końcowego. Problem sygnalizuje nastę
pujący przykład.
Przykład 4.4
Należy zrealizować zespół trzech funkcji czterech argumentów:
/,= £ ( 3 , 7,11,14,15)
/ 2 = E(3,7, 12, 13, 14, 15)
fs = 2(3, 7, 11, 12, 13, 15)
Jeśli każdą funkcję zminimalizujemy oddzielnie (tablice Karnaugha poszcze
gólnych funkcji pokazane są w tablicy 4.7), to uzyskamy następujące wyrażenia:
f = cibc + cd
f 2 = ab + dcd
/ 3 = abc + cd
których realizację pokazano na rys. 4.4. Do realizacji tych trzech funkcji potrze
bujemy 9 bramek.
Tablica 4.7
i «Mkw •!!ijW:
Z auw ażm y je d n ak , że bram ka A ND dla j \
m oże być usunięta przez w ykorzystanie bram
ki A N D z / 3 (rys. 4.5). N ato m iast bram kę AND
2 , f 2 m ożna usunąć przez w ykorzystanie równości
ab = a bc + a bc , co prow adzi do struktury zbu
dow anej zaledw ie z 7 bram ek (rys. 4.6).
Rys. 4.5. R e aliza cja funkcji z ta Rys. 4.6. Realizacja funkcji z tabli
blicy 4.7 z u p ro szc zo n ą fu n k c ją /. cy 4.7 z uproszczoną fu n k c ją / i/
Tablica 4.8
Tablica 4.9
Pętelki w tych tablicach zakreślamy tak, aby uzyskać implikanty wspólne dla
co najmniej dwóch spośród trzech funkcji. Spełnienie tego warunku wymusza za
kreślanie pętelek wokół grup kratek reprezentujących implikanty, które nie są im-
plikantami prostymi. W rezultacie uzyskujemy następujące wyrażenia:
y ] = bc + abd + abd + abc
y2 = bc + abd + be
y3 = abd + abc + be
44
METODA EKSPANSJI
45
W tablicy 4.10 przedstawiono tablicę prawdy funkcji boolowskiej 7-argu-
mentowej. Funkcję tę w dalszej części wykładu będziemy oznaczać EXTL.
Wektory zbioru jF oznaczono sym
Tablica 4.10
bolami k u k5. .
•* . *2 *3 * J
Ekspansja jest procesem działa
•* 6 *7 /
I 1 0 1 I
k e F kostki k' tak dużej, jak to tyl
i 0 0
1 1 1 0 1 1 1 0
ko możliwe (tzn. z możliwie dużą
K 0 1 0 0 1 0 1 1
/C3 1 0 1 0 0 krywającej
0 0 żadnego wektora zbioru
1
K 1 0 1 0 1
R. W swoich obliczeniach ekspan
1 0 1
lc. 1 1 1 0 1 0 1 1
sja wykorzystuje tzw. macierz blo
kującą B.
Macierzą blokującą (kostkę k) nazywać będziemy macierz:
Przykład 4.6
0 1 0 0 1 0 1
1 0 0 0 1 0 1
1 0 0 0 1 1 0
1 0 1 1 1 1 0
1 0 1 0 0 0 0
1 1 0 1 1 1 0
1 0 1 0 1 1 0
1 1 1 0 1 1 i
1 1 1 0 1 0 1
46
i;i I ł
j;»| i!
Skoro /c, = (0100101), to do uzyskania B wystarczy w macierzy R „zanego
wać” kolumny drugą, piątą i siódmą! Zatem B (kx, R):
“1 1 0 0 0 0 0'
1 1 1 1 0 1 1
1 0 0 1 0 1 1
10 1 0 0 1 0
Przykład 4.7
Obliczenia polaycia kolumnowego omówimy na przykładzie macierzy blokującej
wyznaczonej dla kostki /c2 funkcji z poprzedniego przykładu.
1 2 3 4 5 6 7
0 0 0 0 0 1 1'
0 0 1 1 0 0 0
0 1 0 1. 0 0 0
0 1 1 0 0 0 1
47
Składniki tego wyrażenia reprezentują zbiory minimalnego pokrycia kolum
nowego:
(4.3)
*, w pozostałych przypadkach
Przykład 4.8
Kontynuujemy obliczenia dla macierzy blokującej B = B(k2, R) z przykładu 4.7.
Zbiór L = {4, 7} jest pokiyciem kolumnowym B, a więc k +(L, k) = (* * *0 * *0),
czyli implikantem i 7jest xĄx7. Natomiast dla L = {2, 3, 6} (inne pokrycie kolum
nowe), k +(L, k) = ( * 00 * *1*) = x2 x3 x6. Postępując podobnie dla pozostałych ko
stek, uzyskujemy następujący zbiór implikantów prostych funkcji/:
48
« M l* r ;11
KJ.J"-! | TT
/, = 3c, a k {
12 —x2x6 2 k u k5
/„ //„ ,
h ,h , ^2> ^7
I3; -A>A>’ ^7
h
i '“••'A' *
/ 2.A
49
4.2. ZADANIA Z ROZWIĄZANIAMI
ZADANIE 4.1
Zminimalizować metodą tablic Karnaugha następujące funkcje boolowskie:
a) / = 2(0, 1, 2, 9, 11, 12, 13, 27, 28, 29),
b) / = E[4, 5, 10, 11, 15, 1 8 ,2 0 ,2 4 ,2 6 ,3 0 ,3 1 ,(9 , 12, 14, 16, 19,21,25)].
Rozwiązania
b) / = 2[4, 5, 10, 11, 15, 18, 20, 24, 26, 30, 31, (9, 12, 14, 16, 19, 21, 25)]
\_
X 4X5
00 01 11 10 00 01 11 10
*1*2*J\
000 ■U h0 ■ 000 0 0 0 0
001 0 0 0 0 001 "{miii 0 0
011 f lS ili 0 0 011 - 0
’
010 0 H P"f
il 0 010 0
110 0 0 i 0 110 (TT 0 '
111 H i"T |0 0 111 0 0 w
101
100
0
0
0
0
0
0
0
0
101
100
w TH 0 0
0
- ■
50
iiiiiiilttltiYif
ZADANIE 4.2
Uprościć następujące wyrażenie:
Rozwiązanie
Wyrażenie Y zapisujemy w tablicy Karnaugha 2/2 (liczba zmiennych 4 —ABCD
- tablica Z,4.3) i upraszczamy, tworząc pętelki obejmujące zera. Następnie wy
pisujemy rozwiązanie - dla kanonicznego iloczynu
sum argumenty z 0 są proste, argumenty z 1 są za Tablica Z.4.3
negowane. \C£> 00 01 11 10
Po minimalizacji uzyskaliśmy następująca .45
funkcję: 00 1 liliiKf)| i
01 | 0 ; ~:n
Y = (A + B)(A + B)(A 4- D)(B + C + D ) 11 Ł. 1 i i
10 w M MIRB m
ZADANIE 4.3
F: 00000 R: 11101
11000 00010
11010 00110
01110 10001
11100 01100
01011
1
Rozwiązanie
k
W V'
1 00000 '" Ę - m o i
2 11 0 0 0 00010
3 11010 00110
u •«
4 01110 ' ‘ 10001
5 11100 o iro o
6 01011,
Liczymy ekspansję /c,. Ponieważ k x =(00000), więc macierz blokująca B x jest
identyczna z macierzą i?.
12345
B;. 11101 -1t
00010 a =>3,4,5
00110 3i-4
10001 1,5
01100 2,3
W każdym wierszu wypisujemy numery kolumn z jedynkami. Następnie wy
bieramy taki zbiór, któiy zapewni minimalne pokrycie kolumnowe. Do pokrycia
wybieramy L = {3, 4, 5), czyli argumenty x3, x4, x 5.
Kostką kx dla k x = 00000 będzie----000, czyli x3,x 4,x 5.
kx > k2, pokryta została więc także kostka k2.
K 11010 12345
11101 B„: 00111 3 ,4 ,5
00010 11000 *7*
R: 00110 11100
10001 01011 2 ,4 ,5
01100 10110
Minimalne pokrycie zapewnia L = {1, 5}, czyli argumenty x x, x5.
k3 (L ,k3) = 1------0 , czyli x xxs, k3 >k5
Kostka k3 pokrywa także k5. Do obliczenia pozostały jeszcze kostki
K 01110 12345
11101 B A: 10011 1 ,4 ,5
00010 01100 2,3
R: 00110 01000 2
10001 11111 +, -2, 3, 4 ,5
01100 00010 4
Minimalne pokrycie zapewnia L = (2, 4}, czyli argumenty x2, x4.
k4 = - 1 - 1 - , czyli x2x4, k4 > k6
Po zebraniu wszystkich kostek pokrycia otrzymujemy funkcję minimalną:
/ = X3XĄXS ń- XtX5 4- X2XĄ
52
4.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA
ZADANIE 4.4
Metodą tablic Karnaugha zminimalizować funkcje F(A, B, C, D):
a) F(A,B, C,Z>) = E(1,4, 5, 10, 12, 14),
b ) E = ^ 4 ,5 ,6 ,8 ,9 ,_ 1 0 1 13(0 ,7 L15)],_
c) F(A, B, C, D) = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD .
ZADANIE 4.5
Uprościć następujące wyrażenie:
ZADANIE 4.6
Funkcję:
F = { 1 ,5 , 8, 12,30}, R = {2, 6, 15, 18,20,27}
zminimalizować metodą Karnaugha.
ZADANIE 4.7
Zminimalizować następujące zespoły trzech funkcji czterech zmiennych:
a) /] = £[2, 3, 5, 6, 7,11(4 ,1 0 ,1 3 )],
f 2 = E[0, 2, 4, 5, 6, 7 (3, 8)],
/ 3 = £ [3 ,4 ,6 , 7, 15 (0,5,,11)],
b) /i = £[4, 5, 6, 7, 10, 11 (9)]j
/ 2 = £[4 ,'5 ,6 ,7 , 10, 11 (15)],
/ 3 = E[4, 5 ,6 ,7 , 10, 11, 12 (0)1,
c ) j,,= £ [0 , 1 ,2 ,6 , 10, 1 ^ , 1 4 ) ] ,
y2 = S[2 ,5 ,7 , 10, 14(6,9, 15)],
j/3 = £[3,6, 7, 10, 15,(2, 4, 14)],
d ) /,=£[< ), 1,2 ,6 , 10, 15(7, 14)],.
f i ~ £[2, 5,,7, 10, 14 (6, 9, 15)],' /
/ 3 = E[3, 6, 7, 10;. 15 (2, 4, 14)],
53
'i1'■
e) y ,= £ [ 2 ,3 ,5 , 6,7, 11 (4, 10, 13)],
y 2 = n 0, 2, 4, 5, 6 ,7 (3 , 8)],
y 3 = £[3,4, 6, 7, 15(0, 5, 11)],
f) /i - £[2, 3, 10, 11, 15(4, 7, 12)],
y2 = E[2, 3, 5 ,7 ,1 0 , 14,15(8,11)],
/ 3 = S[ 1,2, 3, 7, 10, 11 (4, 15)].
ZADANIE 4.8
Funkcję czterech zmiennych:
/ = £ [ 3 ,5 ,6 , 7, 9, 10, 13, 15(0, 14)]
zrealizować na elementach: a) NOR, b) NAND, używając minimalnej liczby
funktorów.
|j i ZADANIE 4.9
I' ;; 1 Podać minimalną realizację funkcji pięciu zmiennych:
1 ! ; \ f ' = { 1 ,2 ,3 ,4 ,7 ,2 4 ,2 6 } ,
j jf , , {5,6,8, 10, 11},
a) na elementach AND, OR, NOT,
b) na elementach NAND.
ZADANIE 4.10
Dana jest kostka k, z macierzy F oraz macierz R. Znaleźć implikant (lub implikan- *
ty) prosty (-e) dla kostki k,. Podać wszystkie rozwiązania.
54
iinfli -jlli i i ^ l V i i f
ZADANIE 4.12
Funkcję boolowską opisaną zbiorami F i R zminimalizować:
a) systematyczną metoda metodą ekspansji,
b) metodą Karnaugha.
00000 R: 11101
11000 00010
11010 00110
01110 10001
11101 01100
01011
ZADANIE 4.13
Funkcję boolowską opisaną zbiorami F i R zminimalizować uproszczoną meto
dą ekspansji.
10000 R: 01100
01000 00010
01010 00110
11110 10001
01101 11101
11011
ZADANIE 4.14
Funkcję boolowską opisaną zbiorami F i R zminimalizować systematyczną
i uproszczoną metodą ekspansji.
F: 10000 R: 01100
01000 00010
11110 do j io
01101 10001
11011 11101
ZADANIE 4.15
ł 1",/ł
Funkcję boolowską opisarfą zbiorami F i R zminimalizować metodą ekspansji.
R: 10100 F: 10111
10001 !U
». ,, 01000
11100 ' Ó1010
11111 ‘ 10001'/, ,
00110' 00110
01101 '•
55
ZADANIE 4.16
Funkcje opisane zbiorami F, R:
|a) R = {0,2, 3, 6, 7, 9, 11, 13, 18,25},
F = {4, 5, 21, 23, 24, 26, 27, 29},
b) R = {0,3, 5,9, 10, 11, 14, 15, 16,26},
F = {12, 13, 17, 18, 19, 21, 29, 31},
zminimalizować uproszczoną metodą ekspansji.
ZADANIE 4.17
Zaprojektować układ do głosowania. Głosują cztery osoby przez naciśnięcie przy
cisków. Jeden z głosujących ma dwa głosy. Na wyjściu ma pojawić się jedynka,
gdy liczba głosów aprobujących jest > 3 . Układ zrealizować na elementach:
a) AND, OR, NOT,
b) NAND.
1-
ZADANIE 4.18
Zaprojektować układ kombinacyjny, porównując dwie liczby binarne a i b, przy
czym a,b e{0, 1, 2, 3}. Projekt przeprowadzić dla dwóch wariantów:
jeśli a > b
I 1’
(o. jeśli a < b
56
5
5.1. PODSTAWY TEORETYCZNE
* . i t/
gdzie sumowanie jest po ^sżystkich i takich, że at & br Inaczej mówiąc, x, jest
składnikiem S . ( a , b ) tylko wtedy, gdy wektory a oraz b mają różne składowe a„ />,.
R e p r e z e n t a c j ą a r g u m e n t o w ą funkcji f (oznaczanądalej przez R A J) nazywać będzie
my wyrażenie boolowskie:
» i
aj): b) c)
k *7 X4 xc. *7 f k x, x? *1 *1 x(, X7 / k X1 N X7 /
1 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0 1 0
2 1 0 1 1 1 1 0 0 2 I 0 1 1 1 0 0 2 0 1 1 0 0
3 1 1 0 1 1 1 0 0 3 1 1 0 1 1 0 0 3 1 1 1 0 0
4 1 1 1 0 1 1 1 0 4 1 1 1 1 1 1 0 4 1 0 1 1 0
5 0 1 0 0 1 0 1 1 5 0 1 0 1 0 1 1 5 1 0 0 1 1
6 1 0 0 0 1 1 0 1 6 1 0 0 1 1 0 1 6 0 0 1 0 1
7 1 0 1 0 0 0 0 1 7 1 0 1 0 0 0 1 7 0 0 0 0 1
8 1 0 1 0 1 1 0 1 8 1 0 1 1 1 0 1 8 0 0 1 0 1
9 i 1 1 0 1 0 1 1 9 1 1 1 1 0 1 1 9 1 0 0 1 1
58
Przykład 5.1
Obliczymy wszystkie realizacje minimalno-argumentowe funkcji f —f (*,, x7),
tórej tablica prawdy podana jest w tablicy 5.1a, z odpowiednią numeracją wektorów.
Wektory prawdziwe i fałszywe tej funkcji ponumerowano liczbami naturalny
mi 1, ..., 9, czyli K = {1, ..., 9}. Mamy wtedy (przy oznaczeniach P(x,) = Pt) na
stępujące podziały na K:
pr 0 ,2 ,3 , 4; 5, 6, 7, 8,9}
4 ,6 X2, X$9Xy
4 .8 x2, x 7
Redukując w zbiorach C każde C„ dla którego istnieje C j : C / ę C ,, otrzymu- .;
jemy równanie RA = 1 o postaci:
(je, + x2)(x3 + *5 + xj)(x2 + x l)(x2 + x i) = 1
Równanie to przekształcamy do postaci sumo-iloczynowej:
x2x3 -I- x2x 5 + x2x7 + X XX 3X-J + ...
Na tej podstawie wyznaczamy wszystkie minimalne rozwiązania: {x2, x3, x4,
x6}, {-*2, x 4 >*s, x6 }, ix 2 >x 4 >xfi, * 7}• Stąd wniosek, że siedmioargumentowa funk
cja/ w rzeczywistości jest zależna wyłącznie od czterech argumentów. Zauważmy
też, że ostatnie z podanych rozwiązań oznacza usunięcie z tablicy funkcji / ko
lumn odpowiadających zmiennym jc,, x3, x 5. Sytuacja taka była już prezentowa
na w tablicy 5.1c.
W bardziej skomplikowanych obliczeniach można posługiwać się programem
PANDOR, umieszczonym na stronie internetowej www.zpt.tele.pw.edu.pl, w ka-
60
*si§p»
ta lo g u O P R O G R A M O W A N IE . N a Tablica 5.2
I* , /I p r z y k ł a d , d la fu n k c ji T L 2 7 z ta b li-
k *1 *2 *3 *4 *5 *r, *7 *9 •*10 y
fc ^ 5 .2 p ro g ra m P A N D O R o b lic z a n a -
s tę p u ją c e re d u k ty .
1 0 0 1 0 1 1 1 0 I 0 0
S ’n ' !• i
‘■i;
Rt = { x ,, x 2, x 4, x 5, x 6, x 7, X , 0}
2
3 0
1 0 1
1 0
0
0
0
0
1 0
1 1
1
1
0
1
0
0
0;
0.
4 1 0 1 1 1 0 1 0 I 1 0
■M R 2 = i X U x 2> *4> X 6’ x 7> x 8> *lo) 5 1 1 0 0 0 1 0 0 1 1 0
7?3 { X j, X 2 , x 4, X g , X 7 , X 9 , X |o }
6 0 1 0 0 0 1 0 1 1 0 0
7 1 1 1 0 1 0 0 1 1 0 0
'"■U I M
i; ' . Rą = { x „ x 4 , x 5, x 6 , x 7 , x 9 , X |0 } 8 0 1 0 0 1 1 0 0 0 0 0
9 0 1 0 1 0 0 0 0 I 0 0
i /? 5 = { X |, x 4 , X 5 , x 7 , X g , X < j, X | 0 }
10 0 1 1 1 1 1 1 0 1 1 1
R6 = { x „ x 5, x 6, X 7, X g, x 9, x l0 }
11 0 0 0 0 0 I 0 1 0 0 1
12 1 1 0 1 1 1 0 0 1 1 1
/? 7 = {x2, X 3 , x 4, x 5 , x 6 , x 7 , X |0 } 13 0 1 0 0 1 0 0 0 0 0 1
14 0 1 0 0 0 1 I 1 1 1 1
■^8 = i X 2 ’ x 3> X 5> X 6i x 7> x 8’ ^ lo ) 15 0 0 1 0 0 0 0 1 I 0 1
Ry = {X 3 , X 4 , X 5, X 6 , X 7 , X g , X |0 } 16 I I 1 1 0 I 0 0 0 I 1
17 1 1 1 1 1 0 1 0 0 1 1
/e,0 = {-U* -*5> x 6> X 7i X &1 X 9’ 10} 18 1 1 1 1 1 1 I 1 I 1 1
19 0 0 1 0 0 0 0 0 0 0 1
P o w y b ra n iu je d n e g o z ty c h z b io 20 1 1 0 1 1 0 0 1 1 1 1
R 3) 21 0 0 I 0 0 0 1 1 1 1 1
n ró w
n e j
(n p .
w te n
m o ż e m y
s p o s ó b
d la
fu n k c ji
z r e d u k o w a
z a s to s o w a ć 22 1 1 1 1 1 0 0 0 1 0 1
m
J|jj jriń e p ro c e d u ry o p ty m a liz a c ji, n p . m i
23 1 0 1 0 1 I 1 1 0 1 1
24 0 1 I 0 0 0 0 1 1 0 1
n im a liz a c ję . U z y s k a m y w te d y n a s tę
K 25 0 1 0 0 1 1 1 0 0 0 1
p u ją c e w y r a ż e n ie :
S O p ro w a d z i d o w y r a ż e n ia ,
f —
—XjXgXg 4“XjX2Xg -4~XgXgXgXjQ 4“ X4X7X|q 4~XyXq "I- X^X7X|q
r^v., 1
z a w ie ra ją c e g o 9 a rg u m e n tó w . J a k w id a ć , n ie p ro w a d z i o n o d o re a liz a c ji m in i-
m a ln o -a rg u m e n to w e j. J e ś li je d n a k p ro c e d u rę m in im a liz a c ji z a s to s u je m y d o fu n k
ią V c ji o z re d u k o w a n y c h a r g u m e n ta c h , to u z y s k a m y w y r a ż e n ie o m n ie js z e j lic z b ie
, s k ła d n ik ó w i l o c z y n o w y c h ': ; /
®f
D e k o m p o z y c ja r ó w n o le g ła w u k ła d z ie o p is a n y m p rz e z :
z k tó ry c h k a ż d y m o ż n a z r e a liz o w a ć w u k ła d z ie k o m b in a c y jn y m o a rg u m e n ta c h o d -
61
Sens dekompozycji wynika z ograniczeń konstrukcyjnych produkowanych
modułów PLD i FPGA. Jeśli bowiem liczba wyjść, na przykład modułu PI,Dl
l «k<r '
jest mniejsza od m, to do realizacji ukla-j '
■■
du h opisanego wzorem (5.5) można prze|j (if ,
IB;/../;
znaczyć (w zależności od m) kilka modu-1
łów, uzyskując układ pokazany na rys. 5.1 J Rys. 5.2, Dekompozycja równoległa funkcji z przy-
W układzie tym wyjścia y t trzeba odpo-|l m kładu 5.2 Yi Ys Yg Y2 Y4 Ys
wiednio rozdzielić na poszczególne mo-|
Tablica 5.4
duły. Wskazane jest, aby zbiór {yx, ...,y m}|
rozdzielić na takie podzbiory Yx , dla któ a) b)
rych odwzorowanie Y, = hi(X i ) wymaga-- 1 A, *2 X4 xt X, x3 Xf, k *2 *3 X4 X7 x2 X, x5
łoby możliwie najmniejszej liczby argu 1 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0
mentów X h przy czym X t ę (x l5 ..., xn}, ■■2 1 0 0 0 0 0 0 1 2 1 0 1 0 0 0 1 0
Y j^ { y \, ...,y m}. 3 1 0 1 0 0 0 1 1 3 1 0 1 1 0 1 0 1
1 1 1 1 0 0 1 0 4 1 1 1 1 0 1 1 1
Pełną informację o podziale zbioru Y — {yx, ..., y„,} na podzbiory Yx, ..., Yk 4
5 0 0 1 0 0 1 0 0 5 0 0 1 1 0 1 1 0
można uzyskać z minimalno-argumentowych realizacji poszczególnych wyjśćy. 6 1 1 1 0 0 0 0 0
6 1 1 0 0 0 1 1 0
1 1 0 1 1 0 1 0 1 7 1 0 1 1 1 1 1 -
Przykład 5.2 8 0 0 1 1 1 0 1 1
9 0 0 1 0 1 - 0 1
Tablica 5.3
62
.......... tlllte
Tablica porównań
XtXrXjXjX-r
-v
1, 10
8, 10
4, 6 x ,x Yx^
2, 7 x i* j* r
5, 7 ■*ł*r
7, 11 x ,x x s ,
7, 12 XtXjX^
;s
Zbiory argumentów z tablicy p o r ó w n a ł 1! zapisujemy w postaci wyrażenia typu 7
iloczyn sum; obliczenia kontynuujemy w uproszczonym zapisie wg indeksów
(wykorzystujemy własności algebry Boole’a: (a + b)(a + c) = a + bc, a + ab = a). ■
(x2 + jc5)(jc, + x3 + x5)(x3 + x7)(x, + x2 + x3) =
=(1 + 3 + 25)(23 + 27 + 35 + 57) =
= 4-23-+ 127 + 4 3 5 + 157 + 2 3 + 2 3 3 + 35 + 353 + 235 + 257 + 235 + 257
Stąd minimalnym rozwiązaniem jest: (2,3), (3,5), (1,2,7), (1,5,7), (2,5,7) + nie
zbędne (4, 6). Rozwiązaniem minimalnym z najmniejszą liczbą argumentów jest:
{X2 X3X4X6}, {x3x4x5x6).
ZADANIE 5.2
p ia funkcji F opisanej tablicą Z.5.2a zmiennymi niezbędnymi są x s oaz x7. Nale
ż y wyznaczyć wszystkie (!!!) minimalne zbiory argumentów, od których zależy ta
funkcja oraz jej minimalne wyrażenie bo-
Tablica Z.5.2a
olowskie z najmniejszą liczbą argumentów.
k 5 5 *4 5 5. X, F
i 1 0 0 0 1 0 1 0 Rozwiązanie
2 0 1 1 1 0 0 0 0
3 1 1 1 0 0 1 I 0
4 1 1 0 1 1 0 0 1 Ps = (1,4, 6»9; 2733", 7, 8,10,11,12)
5 1 0 1 0 0 1 1 0
6 1 1 0 1 0 0 0 Pi = ( ^ 5 7 3 9 7 7 1 7 1 2 ; 2 ,4 ,6 , 8,10)
7 1 0 0 0 0 0 1 1
8 1 1 0 1 0 1 0 0
9 1 1 0 1 1 0 1 0
Pp = (^ ^ 7 m 7 9 , 1 1 , 1 2 ; 4, 7,10)
10 1 0 0 0 0 1 0 1
11 0 1 1 1 0 0 1 0
P s-P i\P ,,^
12 0 1 1 0 0 0 t 0
- 9), (4)(6); (7X35,11,12); (2 ,8)(10)
64
i
Tablica porównań
2 .1 0
8, 10 W
4 ,6
3 ,7
5 ,7 xr*c,
7 , 11 •*1*2*;1* 4"
7 , 12 *,* 2*3
65
ZADANIE 5.3
Dla funkcji F podanej w tablicy (tablica Z.5.3) obliczyć wszystkie zbiory argu
mentów o najmniejszej liczności, od których ta funkcja zależy. Zmienne niezbęd
ne tej funkcji to: x2, x 3, x7.
Tablica Z.5.3
k + *2 *3 5, *5 *6 x7 *« X9 y, •+2
1 1 1 1 0 1 1 0 0 0 1 0
2 1 0 0 0 0 1 1 0 1 0 0
3 0 0 1 0 1 1 1 0 0 0 1
4 1 0 1 0 0 0 1 1 0 0 0
5 1 0 1 0 1 1 0 1 1 1 1
6 0 0 0 1 0 0 1 0 1 1 1
7 I 1 1 0 0 0 1 1 0 1 0
8 0 0 1 1 0 0 1 0 1 1 0
9 0 0 0 1 0 0 1 1 0 0 1
10 1 0 1 0 0 0 0 1 0 0 1
Rozwiązanie
Tablica porównań
2 ,6 1,4, 6
2 ,9 +-4, 6,-87-9
6 ,9 8 ,9
3, 4 1, 5, 6, 8
3, 8 ‘h-5r6r9
4 ,8 + r4 r8 r9
5, 10 5, 6 ,9
66
ki u i i ' l 4
P T
tn : X2, X 3, X g, X 7, Xg
, . X2, X 3, X g, X~), Xg
ZADANIE 5.4
Dla funkcji podanych w tablicy Z.5.4a zmiennymi niezbędnymi są: x, dlay, oraz
x4, x9 dlay2. Należy obliczyć minimalne (i o najmniejszej Iiczności) zbioiy argu
mentów, od których zależą:
a) funkcjey,,y2 (łącznie),
b) tylko y2.
Tablica Z.5.4a
k *2- *3 *4 *5 x6 X, X, *9 X,
i 0 1 0 0 0 1 1 0 0 0 1
2 0 0 0 1 1 1 1 0 1 0 1
3 0 0 1 0 1 1 - 1 0 0 0
4 0 1 0 1 1 0 0 1 0 0 1
5 0 - 0 1 1 1 1 0 0 0 0
6 0 0 1 1 1 0 I 1 1 1 -
7 0 1 ', 1 0 0 1 0 0 0 1 1
8 1 0 0 1 1 1 - 0 0 1 0
9 0 1 1 1 0 1 0 - 0 1 0
Rozwiązanie i y,
a) Wyznaczamy minimalne zbiory argumentów łącznie dla funkcji y ,,y 2.
Dlay, zmienną niezbędną jest X| (wiersz 5 i 8), dlay2 zmiennymi niezbędnymi
są: x4 (wiersz 7 i 9) i x9'(wipfsz 2 i 5). Ponieważ wyjścia traktujemy globalnie, więc
łącznie zmiennymi niezbędnymi są:.x,, x4, x9. Podziałem wyjściowym dlay,y2jest:
" •i r
p , = P (yx,y 2) =7(17274; 3 ^ ; 6, 8,9; ^ 1 )
67
Następnie wyznaczamy podział dla argumentów niezbędnych:
^ • P 4 -Ą = { 1 ,3 ,7 ;2 j 6;4,5,9;8}
Tablica porównań
1.3 -xp-x3,
1.7 X7
3 ,7 X2>X,’ X«
2 ,6 xr x (,<x %
4 ,5 X(S X7’ XH
4 ,9 +)> A5j X(,
5, 9
X$, X(,, x1
Xs . X-j >xs
X6 , X y , X g
x5, x6; x3, xs, x7; x5, x6, x7; x5, x1, x H; x6, x7. 1.7 1 1
Tablica porównań
I, 3 2. 3, 5, 8
3, 7 2, 5,8
4, 3 6, 7,8
4, 8 1,2, 6 ,8
4 .9 3, 5 ,6
x2, V
x3, X*
*5> *6 ■+ x4. Xg
X5, Xg
*6> x&
ZADANIE 5.5
Tablica Z.5.5
k
Dla funkcji F podanej w tabli
x, X2 *3 *4 *5 *6 *7 •*» *9 +1 +2
— 0
cy Z.5.5 obliczyć minimalne
1 0 0 1 1 0 1 1 1 0
2 1 0 1 0 0 0 0 1 0 0 1
zbiory argumentów, od których
3 1 0 0 0 0 1 1 - 1 0 0 ta funkcja zależy. Zmiennymi
4 0 0 1 0 1 1 1 0 0 0 1 niezbędnymi tej funkcji są: x2,
5 _ 0 1 0 0 1 0 1 0 0 0 x3, x6.
6 1 0 1 0 1 0 1 1 1 1 -
w. 0 0 0 1 0 1 0 0 1 1 1
8 •l 1 1 0 0 1 0 - 0 1 0
9 0 0 0 1 0 1 0 1 0 - 1
. Rozwiązanie
I V
rif‘ .f : •
PF = P (y » y 2) = U M ; 2 , 4 ,9 ;3 ^ ; 6,7,9}
—
Tablica porównań
1.4 4, 5 ,9
1,5 4, 8 ,9
4, 5 5, 7,8
2 ,6 5, 7 ,9
3, 7 1 ,4 ,7
3 ,9 ■Iv4y7r9
X t , X s
I P '
iP S ^ XĄ,X y
X7, X q 1
1 P ! :^ X\9 X 5 , Xg
tW
ip ® - i + X25 -V3 ?-^6
X \ , X 5 , X ęj
f c f
X \ , X% , # 9
•^ 4 ? - ^ 8 ? * ^9
|f e f e
■^5 s X n , X g
■
■1 Najmniejszymi minimalnymi bloratni argumentów są: x2, x3, x4, xs, x6; x2, x3,
Xą, Xfo x2 oraz x2, x3j x^yx2, Xg.
71
H r4 mmtmI
ZADANIE 5.6
Tablica Z.5.6
Dla funkcji podanych w tabli
k *2 *3 *4 X1 +3 X9 yi y2
cy Z.5.6 zmiennymi niezbęd
i 0 1 0 0 0 1 0 0 1 0 1
nymi są: x x dla y j oraz x3, xH
2 0 1 1 0 1 1 1 1 - 0 0
dla y 2. Należy obliczyć mini
3 0 0 0 0 0 0 1 1 0 0 1
malne i o najmniejszej liczno-
4 0 - 0 0 0 1 0 1 1 0 0
ści zbiory argumentów, od któ
5 0 1 0 0 1 0 1 0 1 1 -
rych zależą:
6 0 0 1 1 1 1 0 1 0 1 1
7 1 1 0 0 0 1 0 1 - 1 0 a) funkcje y ,, y 2 (łącznie),
8 0 0 0 1 1 1 - 1 0 1 0 b) tylko funkcjay 2
Rozwiązanie
a) PF = P ( y x, y 2) = ( U ; 2A-, 5/7^8; 576}
Tablica porównań
1, 5 5, 6, 7
2 ,6 2, 4 ,7
3 ,4 6, 7 ,9
3 ,8 4, 5 ,6
4, 8 4 ,5 ,9
I 2 ,6
3,4
2, 4 ,7
6, 7 ,9
m 3,7 1,2, 6 ,7
3, 8 4, 5 ,6
W
*
} + X3,X8 l,j»
1
Xe , X>m
*A,
'69X
**7
j
I
Zatem minimalne zbiory są czteroargumentowe: x2, x3, x6, x s; x3, x4, x6, x g; x3,
,du * '
+4’ x 7> x 8’ * 3 , X S’ x 7’ x 8, X 3> x 6’ x 7 ?x 8
V ‘V *1 '
'©tM
Wfcti'}ZADANIE
,:'. 5.7 1■'
lł
Dla funkcji podanych w tablicy Z.5.7 zmiennymi niezbędnymi są: x6 dlay, oraz
Ą d lay 2. Należy obliczyć minimalne (i o najmniejszej liczności) zbiory argumen
tów, od których zależą:
a) funkcje y „ y2 (łącznie), ,
b) tylko y,. ' ,
Tablica Z.5.7
b) Pp = P{y\) = 0, 4, 5,7, 8; 3, 9}
k -vi *1 *3 *5 •*« *7 *8
1 1 1 1 0 1 1 0 0 0 1 0
Ą ~ {1>4,9; 3, 5,7, 8 }
0 1 0 0 0 1 0 0 1 - 0
2
0 1 1 0 1 0 1 1 1 0 0
3 Ą I ^ = { ( 1 , 4)(9); (3)(5, 7, 8 )}
0 1 1 0 - 1 1 1 1 1 — saR
4
0 0 0 1 0 0 1 0 1 t 1
5
6 0 0 0 1 0 0 1 1 0 - 1 Tablica porównań
1 - 1 0 0 0 1 1 0 1 0
7
1 0 0 1 1 0 1,9 1,2, 7 ,8
8 0 0 1 0 1
1 1 1 0 0 1 4 ,9 2, 9
9 0 0 1 0 1
3, 5
3,7 1, 5, 9
3, 8 2, 4, 5, 8
Rozwiązanie
74 ' 75
k *2 *3 •*.1 *5 *7 ■*» *9 y . y 7.
1 0 0 0 1 0 0 I 1 0 - i
2 0 1 1 0 0 0 0 1 0 0 i
3 0 1 0 0 0 1 1 - 1 0 0
4 0 0 1 0 1 1 1 0 0 0 1
5 0 - 1 0 0 0 1 1 0 0 0
6 0 1 1 0 1 1 0 1 1 1 -
7 0 0 0 1 0 0 1 0 1 1 1
8 1 1 l 0 0 0 l - 0 1 0
9 0 0 1 1 0 - 1 0 1 1 0
ZADANIE 5.9
Dla funkcji podanych w tablicy Z.5.9 zmiennymi niezbędnymi są: x6 dla y, oraz
*3 dla y2. Obliczyć minimalne (i o najmniejszej liczności) zbiory argumentów, od
których zależą:
a) funkcje y ,,y 2 (łącznie),
b) tylko y,.
Tablica Z.5.9
k *2 •*3 *4 *3 X7 *9 y, y2
1 0 0 0 1 0 0 1 1 0 - i
2 1 1 I 0 1 1 0 0 0 1 0
3 0 1 0 0 0 1 0 0 1 - 0
4 0 0 1 0 1 1 I 1 0 0 1
5 0 1 1 0 1 0 1 1 1 0 0
6 0 1 1 0 - 1 1 1 1 1 -
7 0 0 0 1 0 0 1 0 1 I 1
8 1 - 1 0 0 0 1 1 0 1 0
9 0 0 1 1 0 0 1 0 1 1 0
ZADANIE 5.10
Dla funkcji F podanej w tablicy Z.5.10 obliczyć minimalne i o najmniejszej licz
ności zbiory argumentów, od których ta funkcja zależy. Zmienne niezbędne tej
funkcji to: x3, x4, x 8.
76
’,r'!wHFmTr
Tablica Z.5.10
k *i *2 *3 V X, *7 *8 X, y, y?
i 1 0 1 0 0 - 0 1 1 1 0
2 0 1 1 0 0 0 1 0 0 0 1
3 0 1 0 0 0 1 -1 1 0 0
4 0 0 1 0 1 1 0 1 0 0 1
5 0 - 1 0 0 0 1 1 0 0 0
6 0 1 1 0 1 1 1 0 1 1 -
7 1 0 0 0 0 0 0 1 1 1 1
8 0 1 1 1 0 0 - 1 0 1 0
9 1 0 0 0 0 0 1 1 0 - 1
ZADANIE 5.11
Dla funkcji podanych w tablicy Z.5.11 zmiennymi niezbędnymi są: x3 dla ją oraz
.tfj.dlay2- Obliczyć minimalne (i o najmniejszej liczności) zbiory argumentów, od
których zależą:
a) funkcjey t>y 2 (łącznie),
b) tylko y 2.
Tablica Z.5.11
k X, *2 *5 *7 a'r *9 y,
1 0 1 1 0 1 0 1 1 1 0 0
2 0 1 1 0 - 1 1 1 1 - 1
3 0 0 0 1 0 0 1 0 1 1 1
4 1 I * 0 1 1 0 0 0 0 1
5 i - ! 0 0 0 1 1 0 0 1
6 0 0 1 I 0 0 1 0 1 0 1
7 0 0 1' 0 1 1 1 1 0 1 0
8 0 1* »0 '* 0 0 1 0 0 1 0 -
9 0 0 f\«0 1 0 0 1 1 0 1 -
DEKOM POZYCJA FU N K C JO N A LN A j
! i
6 - M E T O D A K LASYCZNA
■
!
l 1Niech będzie dana funkcja boolowskaf : {0, 1} " —>{0, 1} oraz podział zmiennych
t X = {jc,,...,*,,} na dwa rozłączne zbiory B {boundset) i A (free set). Tablicą dekom-
pozycji funkcji/ ( decomposition chart) nazywamy macierz dwuwymiarową M
o kolumnach etykietowanych wartościami zmiennych funkcji f ze zbioru B oraz
o wierszach etykietowanych wartościami zmiennych funkcji f ze zbioru A. Ele
mentami macierzy M są wartości, które przyjmuje funkcja f na wektorach złożo
nych z odpowiednich etykiet /-tego wiersza i y-tej kolumny. Liczbę istotnie róż
nych kolumn tej macierzy ze względu na ich zawartość oznaczamy symbolem
v(A | B) (column multiplicity).
Twierdzenie 6.1. Niech będzie dana funkcja boolowska f oraz podział zbioru
zmiennych wejściowych funkcji f na dwa rozłączne zbiory A i B. Wówczas:
f(A ,B ) = h(A, S l(B),..„ g /B )) <=>v(A \B )< 2
ę !' 1'
1 | Schemat takiej dekompozycji jest przedstawiony na iys. 6.1.
78
Dla funkcji z tablicy 6.1 kolumny są adresowane trzema zmiennymi {xt, x2,
„<,}-, względem których funkcja/j.est symetryczna. Wiersze natomiast są adreso
wane zmiennymi (x4, x5}.
Tablica 6.1
Grupy kolumn o adresach {(001), (010), (100)} i {(110), (101), (011)} są od
powiednio równe. Zatem istnieje dekompozycja, w której zmienne {x,, x2, Xj} są
przeadresowywane na {gh g 2} (tablica 6.2). Wówczas funkcja f może być zapi
sana w tablicy, w której adresami kolumn są {g,, g2}, a wierszy - odpowiednio
- wartości zmiennych {xĄ, x5} (tablica 6.3). Tablice te są jednocześnie tablicami
prawdy funkcji reprezentujących składowe dekompozycji, tzn. bloki G i H.
*1 X1 *3 2\ 87 01 10 11
0 0 0 0 0
0 0 1 0 1 00 1 1 0 0
0 1 0 0 1 01 0 1 0 0
1 0 0 0 1 10 0 0 0 0
1 1 0 1 0 11 0 0 1 0
1 0 1 1 0
0 1 1 1 0
1 1 1 1 1
79
1 sift,
g x = cde +cde
g 2 = cde +ce + de
h = a g 2 + bg2 + agx
80
Tablica 6.5 Tablica 6.6
01 c d e Sr
abb
00 11 10
0 0 0 0 0
00 1 0 0 - 0 I 1 0 0
01 1 1 - - 1 0 0 0 0
10 0 0 1 - 1 1 0 0 0
11 0 1 - - 0 0 1 0 1
1 0 1 0 1
0 1 0 1 1
1 1 1 1 1
na w tablicy 6.7.
81
Tablica 6.7
Tworzymy tablicę Karnaugha (tablica Z.6. lb) dla x7x3xA/x lx 5. Możemy skleić
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 kolumny {kx,k3} i {k2,kA} (tablica Z.6.1 c).
0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
*6 0 1 1 0 0 1 1 0 0 1 1 . 0 0 1 1 Tablica Z.6.1b Tablica Z.6.1c
0 0 1 0 1 0 1 0 1 0 1 0 1 0 1
XTXKX-> i-k. *2 *3 *4 *3 / 00 01 11 10 0 1
N \ s '
000 - - - 1 - 0 - 1 - - 1 - - - - ;rf|Ś 0 0 0 0 0 0 *2*3*j\ 11 10
2 0 0 1 1 1 0 000 0 * 2 * 3 * X
00 01
001 0 - 0 - - - 1 - - - - 1 - - -
3 0 1 0 1 0 0 001 1 1 1 000 0 -
010 - 1 0
011 - 0 - 1 1 - - 0 - - -
- - - -
0 1 1 0 0 0 010 011 - 0
100 1
%
1
■-6 0 0 0 1 1 1 110 0 1 010 - -
101 - 0 0 1
111 0 110 0 1
.7 0 1 0 0 0 1
110 - - - - - - - - - - - - - - 1 101 0 1 111 - 0
8 0 1 1 0 1 1
111 1 1 1
9 1 1 0 I 0 1 100 1 101 0 1
100 1 -
10 1 0 0 1 1 1
X 7 Xg Xg X 3 Xs X e X 10 Tablicę tę skonstruowano przy założeniu, że zbiora 11 1 0 0 1 0 I
u u mi zmiennych bezpośrednich oraz pośrednich są odpo M
wiednio A = {x7, xg, x9}, B = {x3, xs, x6, x ]0}. Spostrze m
Wprowadzamy g x z nowym kodowaniem dla sklejonych kolumn; stąd tabli
T żenie, że w tablicy tej —w celu obliczenia składowych G
ca dla kodu G, będzie następująca:
H i //dekompozycji —należy „skleić” kolumny oznaczone
wektorami: 0000, 0011, 0100, 0101, 1000, 1001, 1010. ii *1 *5
1011, 1111 oraz 0010, 0110, 0111, 1100, 1101, 1110, nie 0 0 0
Rys. 6.3. Realizacja funk jest zadaniem łatwym. Zauważenie tego pozwala funk 0 1 1
cję TL27 zrealizować jak na rys. 6.3. 1 1 0
cji TL27 1 0 I
Obliczamy dekompozycję dla bloku G2:
Tablica Z.6.1d
H(x2, g x, G(x 3, x4)) ,
6.2. ZADANIA Z ROZWIĄZANIAMI Obliczamy dalszą dekompozycję. W tym 00 01 11 10
celu jako bezpośrednie wejście do h bierzemy *2g, \
g] i x2, natomiast argumenty x3xĄ będą wcho 00 0 1 - -
ZADANIE 6.1
dziły do drugiego bloku ę %(tablica Z.6 .Id). 01 - 1 0 -
Dla funkcji binarnej/podanej w tablicy Z.6. la należy wyznaczyć dekompozycję: Możemy skleić kolu^nj^/c,, k3} i {k2, kĄ) . 11 - 1 0 1
Wprowadzamy g2 z nowym kodowaniem dla 10 1 0 - 0
/ = H ( x 2, G|(X|, x 5), G2(x3, x4)). sklejonych kolumn. Stąd tablica dla G2:
k, K K K
Rozwiązanie *3 *4 Si
Obliczamy dekompozycję dla bloku G x: 0 0 0
0 1 . 1
H(G(x„ x5), x2, x3, x4) 1 1 0 ,
1 0 1
82 83
Iid#'*!- itifife-
Wynik „sklejania” jest podany w tablicy Z.ó.le. Tablicę prawdy dla bloku
pokazano w tablicy Z.6.1 f, a schemat blokowy dekompozycji na rys. Z.6.1.
Tablica Z.6.1 c Tablica Z.61f
S2 0 1 *2 y
11 10 x2 x, *5 *3
S,s2
x2g, \ 00 01
0
000 0 i____ i _Ł 1
00 1 001 1
01 0 1 011 1. 9i 92
11 0 1 oto 0
10 1 0 H
110 0
111 1
101 0
Rys. Z.6.1. Schemat dekompozycji z a
100 1 dania 6.1
ZADANIE 6.2
Dla funkcji F:
■F°= {0, 2 ,3 ,6 , 7, 9, 11, 13, 18, 25}
F x = {4, 5, 21,23, 24, 26, 27, 29}
obliczyć dekompozycję F = H (xu x2, G(x3, xĄ, x5)), z minimalną liczbą wyjść blo
ku G. W rozwiązaniu podać: tablice prawdy i minimalne wyrażenia boolowskie j
dla funkcji G oraz Ii.
Rozwiązanie
Tworzymy tablicę Kamaugha dla jcxx2lx3xAx5 (tablica Z.6.2a). Sklejamy kolumny,.
posługując się kolorowaniem grafu niezgodności (iys. Z.6.2)
A: 101,100
B: 000,011,010,110
C: 001,111
Tablica Z.6.2a
Ki t ,.
000 001 011 010 110 111 101 100
00 0 - 0 0 0 0 1 1
01 - 0 0 - - - 0 -
11 1 0 1 1 - - 1 _
10 - - - 0 - 1 1 -
84
Wprowadzamy nowe kodowanie (tablica Z.6.2b), co prowadzi do tablic G i H
(odpowiednio tablica Z.6.2c i d).
001 11 0001 0
o
o
1 0 0 -
| | , ■01 0 0 0 - ■ 011 01 0011 0
m i 1 1 0 - 010 01 0100 0
6/':' 10 1 0 1 - 110 01 0101 0
I 111 11 0111 0
101 00 1100 1
iS 100 00 1101 1
I' 1111 0
/ 1000 1
1001 0
1011 1
ZADANIE 6.3
W
Dana jest funk,cja czterech zmiennych <
f(a,b,c,d) = E( 1,4,5,10,12,14)
85
j j Dokonać dekompozycji tej funkcji w sposób opisany formułami: Tablica Z.6.7
a) h[g(a, b, c), d), k *2 ■b *4 *5 /
i>) h\g(b, ć), a, d]. i 0 0 0 0 0 0
j
2 0 1 0 1 1 0
ZADANIE 6.4 3 0 0 1 0 1 0
I 4 0 1 1 1 1 0
Dla funkcji opisanych zbiorami F, R :' 5 0 0 1 1 0 0
a) R = {0, 2, 3, 6, 7, 9, 11, 13, 18,25}, b) R = {0, 3, 5, 9, 10, 11, 14, 15, 16,26; 6 0 1 0 0 1 1
F = { 4 ,5 ,2 1 ,2 3 ,2 4 ,2 6 ,2 7 ,2 9 } , F = {12,13, 17, 18, 1 9 ,2 1 ,2 9 ,3 1 }. 7 0 0 1 0 0 1
8 0 1 1 1 0 1
obliczyć dekompozycje F —H{xx, x 2, G(x 3, x4, x5)) z minimalną liczbą wyjść bl<
9 1 0 1 0 1 1
ku G. W rozwiązaniu podać: tablice prawdy i minimalne wyrażenia boolowskiu
'i,1' 10 1 1 0 0 1 1
dla funkcji G oraz H.
11 1 0 0 0 1 1
ZADANIE 6.5 Funkcje g i h podać w postaci minimalnych wyrażeń boolowskich typu suma ilo
czynów.
Funkcję/opisaną zbiorami:
86 87
1
>WiWi w
DEK O M PO ZYCJA FU N K C JO N A LN A
7 M E T O D Ą R A C H U N K U PO DZIA ŁÓ W
Przykład 7.1
Skuteczność wprowadzonego aparatu pokażemy na przykładzie funkcji z rozdzia
łu 5 (tablica 5.2). Dla tej funkcji obliczyliśmy jeden z minimalnych zbiorów argu-
I*' ' ...
mentów: X = {x3, x5, x6, x 7, a-8, x 9 , a')0}. Korzystając z tej informacji, załóżmy po
szukiwanie dekompozycji dla zbiorów U= {x7, x8, x 9} oraz V= {x3, x5, x6, jcl0>.
Bezpośrednio z tablicy 5.2 zapisujemy podziały Pt utworzone na zbiorze K ponu
merowanych wektorów K = { 1, 2, ..., 25}:
P3 ={3,5,6,8,9,11,12,13,14,20,25; 1,2,4,7,10,15,16,17,18,19,21,22,23,24}
P5 = {2,3,5,6,9,11,14,15,16,19,21,24; 1,4,7,8,10,12,13,17,18,20,22,23,25} |
1
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ d ; fl %
",I1’
P6 ={4,7,9,13,15,17,19,20,21,22,24;!,2,3,5,6,8,10,11,12,14,16,18,23,25} |
I P7 ={2,5,6,7,8,9,11,12,13,15,16,19,20,22,24; 1,3,4,10,14,17,18,21,23,25}
ik Ą ={1,4,5,8,9,10,12,13,16,17,19,22,25; 2,3,6,7,11,14,15,18,20,21,23,24}
Pg ={2,8,11,13,16,17,19,23,25; 1,3,4,5,6,7,9,10,12,14,15,18,20,21,22,24}
Pw ={1,2,3,6,7,8,9,11,13,15,19,22,24,25; 4,5,10,12,14,16,17,18,20,21,23}
i : (1, 4,10; 2,11; 3,14,18, 21; 5,9,12, 22; 6, 7,15, 20, 24; 8,13,16,19; 17,25; 23 ) %\)\
f’
§ Py —Pj ’ P5 ‘ Pe ’ Pio
= (1; 2; 3, 6,11; 4,17; 5,14; 7, 22; 8, 25; 9; 10,18, 23; 12; 13; 15,19,24; 16; 20; 21)
$
89
Zatem, jeśli zaliczymy bloki 1 oraz 4,17 do pierwszego bloku n g, to blok
10,18,23 musimy zaliczyć do drugiego bloku n g (ponieważ zawiera element
10) itp. Pozostałe obliczenia są pokazane na rys. 7.2. Na tej podstawie stwier-
dzamy, że:
n = (1,3,4,6,7,8,11,12,17,22,25; 2,5,9,10,13,14,15,16,18,19,20,21,23,24)
90
I
Przy Wad 7.2
•Dla układu funkcji F z tablicy 7.3 przyjmijmy, że U= {x1? x 3, xĄ}, V - {x2, x 5}
>oraz W= 0 . Podział P u = T\ • P3 • P4 (P, = P(x,)), P v - P 2 ’ P5. Zapisując P u
w postaci podziału ilorazowego, mamy:
91
Kolejna para (9, 14) i (15) należy już do różnych bloków IIG, a więc sprawdzamy^
4 i 5. Stąd:
U r = (1, 3,11,15; 2, 4, 6, 7,8,9,10,12,13,14)
Łatwo stwierdzić, że funkcja g przyporządkowuje wektorowi (x2, x5) = (0,0) war
tość 0 i analogicznie g(0, l)= 1, g (l, 0) = 1, g (1, 1) = 0. Ostatecznie g = x2 © x5..':-
W rezultacie, dla układu funkcji y f, y 2, y 3 z tablicy 7.3, danego odwzorowaniem
F : (yx,y 2,y 3) = F(x,, ..., x5), uzyskaliśmy dekompozycję: F = //(x ,, x3, x4, g (x2 ©x5)).
Tablicę prawdy funkcji H można wyznaczyć na podstawie przynależności blo
ków iloczynu P x • P 3 • P 4 • n G do bloków podziałów P ,, P 3, P 4, IIG oraz PF. Od- :•
powiędnie obliczenia podane są w tablicy 7.4.
Tablica 7.3 Tablica 7.4
93
!■
7.2. POJĘCIE r-PRZYDATNOŚCI
I DEKOMPOZYCJA NIEROZŁĄCZNA I
Pi = {1,2,3,4,5,6, 7; 8,9,10,11,12,13,14,15}
94
{■
, Przykład 7.3
Obliczymy r-przydatność podziałów P(x,) dla układu F funkcji z tablicy 7.3.
i Mamy tu:
P(xi) = {(1)(2, 6)(3)(4)(5, 7); (8,13)(9,14)(10,15)(11)(12)}
czyli P(x,) jest 4-przydatny względem PF. Dokonując analogicznych obliczeń
dla pozostałych podziałów, stwierdzamy, że P(x3), P(x4) są 3-przydatne, nato
miast P(x2), P(x5) są 4-przydatne. Jeśli więc istnieje dekompozycja układu Ptaka, j
jak pokazano na rys. 7.3a, to byłoby to możliwe tylko pod warunkiem, że zbiór j
(P(je3), P(x4)} jest 3-przydatny. Ale
P(x3)-P (x 4) = (0X7,8,13); (9,14X2X3,15); (4)(5)(10); (11)(6,12)}
czyli {P(xj), P(x4)} jest 4-przydatny. Sprawdźmy więc, czy istnieje dekompozy
cja o schemacie blokowym jak na rys. 7.3b.
a) • b) _________
*3----
I
X4----
g f a ,.... xs)-
g (x i,.... x5)
Rys. 7.3. Ilustracja obliczeń z przykładu 7.3: a) przy założeniu, że zbiór (P(x2), P(x,,)} jest 3-przy-
datny, b) przy założeniu, że zbiór {P(x,), P(xj), P(*t) } jest 4-przydatny
95
W związku z tym 4-przydatnymi trójkami mogą być tylko: a) {Px, P3, PĄ};
b) {P2,P 3, P4};c ) {P3, P4, p 5}.
Następnie stwierdzamy, że wyłącznie trójki a) oraz c) są 4-przydatne. Dla tró
jek tych odpowiednimi iloczynami podziałów są:
P(x3)-P (x 4)-P (x 5) =
= {(1X778); (13); (9)(3,15); (14X2); (4)(10); (5); (6,12); (TT)}
96
; Z powyższego wynika, że w praktyce często stajemy przed problemem wyzna
czania dekompozycji nierozłącznej. Podstawowym problemem w obliczaniu de
kompozycji nierozłącznej jest wyznaczenie zbioru W o możliwie minimalnej Iicz-
iiości. Wybór argumentów do zbioru JFjest przeprowadzany na podstawie anali
zy podziału P v. Otóż, w przypadku gdy nie istnieje dekompozycja rozłączna, nie
istnieje również Iły > P v spełniający nierówność P v - IIG< Py.
Jest zrozumiałe, że powiększenie zbioru V o argumenty z W c U prowa
dzi do utworzenia „drobniejszego” ITG >Py (gdzie Py jest zbiorem induko
wanym argumentami V — V \J W). Drobniejszy U G może zapewnić spełnie
nie warunku:
Przykład 7.4
97
Tablica 7.9 gdyż dla nowego Py obliczenie odpowiedniego n G
już możliwe: i
.i 10
.o 1 pi — p . p
rv —
■r v 1i
mm
-
a
.p 1024
■type f Py = (i; 6; 2, 8,10; 4; 3/7; 9; 5)
0001101100 1
n G = (1,5, 6,9; 2,3, 4, 7,8,10)
0001110100 1
0010000110 1 Dekompozycja nierozłączna jest skuteczną metodą syntezy
0010011110 1 złożonych układów kombinacyjnych realizowanych w struktu
0010111101 1 rach FPGA z wbudowanymi pamięciami. Na przykład, całko
0100111101 1 wicie określona funkcja boolowska f 22, której zbiór F°Njest
0101010011 1 podany w tablicy 7.9, ma dekompozycję nierozłączną o struk
0101100101 1 turze pokazanej na rys. 7.5. Dekompozycja zapewnia realiza
0101101100 1
cję tej funkcji na trzech pamięciach ROM o wymiarach (7,2),
(6, 4), (6,1).
0101110001 1
0101111101 1 X4 X 5 X g X 7 X g X g X 10 X , X2 X3 X4 X S Xg
oijioonooi i
o m m o io i
1001101010 1
1010001011 1
1010101000 1
1010111000 1
f22 li
1011010111 1
1100111000 1 Rys. 7.5. Dekompozycja nierozłączna funkcji/22
ZADANIE 7.1
98
i.JMttfcj ,U......
li
il
1
\11Bi
Rozwiązanie
Ą; = P(x„ x4, xs) = (1, 6; 9,13; 2; 10,14; 3,4, 7; 11,15; 5,8; 12,16)
r = 3 + Tlog23 l = 3 + 2 = 5
Zatem nie istnieje dekompozycja dla U= {x,, x4, x5}, gdyż blok G ma 2 wyjścia
(rys. Z.7.1).
X, x4xs *z x3
lublicaZ.7.1
1 i
|j[j JCj, JCj*
00 01 11 10 •fi
ooo 1 2 3 -
iSSl
oO
- - 4. 5
flu 010 6 - 7V 8
ni 9 10 11 12
Rys. Z.7.1. Schemat dekom
101 13 14 15 16 pozycji do zadania 7.1
gŹADANIE 7.2
iSfe" * Tablica Z.7.2a
•. W tablicy Z.7.2a dana jest funkcja f(a,b,c,d,e),
dla której: i ■v de
. 00 01 11 10
bc
000 1 2 - 3
PF = (1,10,17; 5, 7,1 -8^14; 3,12,.l 6;
001 4 5 6 -
2 Ji3 ;4 J 5 ; 9 J 8 ;i l, 20) 011 - 7 8 9
010 10 - 11 12
Obliczyć dekompozycję nierozłączną dla 110 - 13 14 -
U = {d, e}. W rozwiązaniu należy podać tablice 111 15 - - 16
funkcji G oraz Ii. Kodowanie bloków [PF przy- 101 17 - - 18
’I jąć dowolne wg NKB. 100 - 19 20 -
'
H
W; 99
K'
Rozwiązanie
Py = P(V, W ) = P(a, b, c, d ) =
= (172; 3;475; 6; 7; M ; 10; 11,12; 13; 14; 15; 16; 17; 18; 19; 20)
P (H ) = P(U) • n g = P(d, e) • n g =
= (174,10,15,17; 2, 5, 7,13,19; 6, 8,11,14, 20; 3,9,12,16,18) ••
• (1, 2,3,10,11,12,13,16,17, 20; 4 ,5 ,6 , 7,8,9,14,15,18,19) =
= (1,10,17; 3715; 2 ^ 3 ; 5,7,19; 6,8,14; 11,20; 3,12,16; 9718)
100
Tablica Z.7.2b Tablica Z.7.2c
Blok a b c d g Blok d e g y, y2 Ti
1,2 0 0 0 0 0 1, 10, 17 0 0 0 0 0 0
hh' 3 0 0 0 1 0 4, 15 0 0 1 0 0 1
4, 5 0 0 1 0 1 2, 13 0 1 0 0 i 0
j';.,; 6 0 0 1 1 1 5, 7, 19 0 1 1 0 i 1
7 0 1 1 0 I 6, 8, 14 1 1 0 i i i
8, 9 0 1 1 1 1 11,20 1 1 1 i i 0
y io 0 1 0 0 0 3, 12, 16 1 0 0 i 0 1
] 11,12 0 1 0 1 0 9, 18 I 0 1 i 0 0
" 13 I 1 0 0 0
14 1 1 0 1 1
f. ■ 15 1 1 1 0 1
16 1 1 l 1 0
17 I 0 1 0 0
is 1 0 1 1 1
. 19 1 0 0 0 1
20 1 0 0 1 0
0 ZADANIE 7.3
\ Dla funkcji F podanej w tablicy Z.7.3a znaleźć dekompozycję o strukturze jak na
i> rys. Z.7.3a. W rozwiązaniu należy podać tablice prawdy funkcji G\, G0 oraz H.
If Tablica Z.7.3a
*3 X2 Xi X4 XB
Tablica Z.7.3b 1
Blok *4 *5 8
1,6 0 0 0 0
5 0 0 1 0 H
8, 10 1 1 1 0
2 ,4 0 1 1 1 yi Y2 ya
3 0 1 0 1
Rys. Z.7.3b. Dekompozycja funkcji
7 ,9 1 1 0 1 z zadania 7.3
102
, .^a.umłilUIIKDlitil .iijiłaii.ifL..... ^
Sposób 2
ty celu uzyskania podziału H G spełniającego warunki dekompozycji zamienia
my miejscami 7, 9 i 8, 10. Pary te można zamienić miejscami bez wpływu na dal
sze obliczenia, czyli:
IV pierwszy blok: 1, 6; 5; 7,9
drugi blok: 2,4; 3; 8,10
. Ostatecznie otrzymujemy (tablica Z.7.3c):
n 0ii=(l, 5, 6, 7, 9; 2,3, 4,8,10)
k
B lo k
1,6
x,
0
*4
0
*5
0
*0
0
'B lok
1 ,2 0
*2
0
X3
0
S,
0
s2
0
Blok
1,7
£{)
0
Si
0
S2
0
3', y?. y-i
0 0 0
l’ 5 0 0 1 0 3, 6, 8, 9 0 1 0 0 1 2 1 0 0 0 1 0
7,9 1 1 0 0 4 ,5 0 1 1 1 1 6, 9 0 0 1 0 0 1
2,4 0 1 1 1 10 1 0 1 1 0 3, 8 1 0 1 1 0 0
3 0 1 0, 1 / 5 0 1 1 0 0 1
8, 10 I 1 1 1 4 1 1 1 0 1 1
10 1 1 0 0 0 0
ZADANIE 7.4
Wiedząc, że dla funkcji z tablicy Z.7.4a podziały P u P3, P5 są 3-przydatne,
P4 - 4-przydatne, obliczyć najlepszą dekompozycję szeregową tej funkcji.
Rozwiązanie
P,. = ( i ; ^ 5 ; 3 ^ ; 4 ^ ^ 9 ; T 0 )
Tablica Z.7.4a
Blok x\ X2 '■S N V\
1 0 0 0 0 0 0 1 0
2 0 0 0 1 0 0 1 l x 2 x3 x4
3 1 0 0 1 0 1 0 0
4 1 0 1 1 0 1 1 1
5 0 1 0 0 0 0 1 1
6 1 0 1 1 1 1 1 0
7 0 1 0 0 I 1 0 0 H
8 0 1 1 0 1 I 1 1 n
9 1 1 1 0 1 1 1 0
10 1 1 1 1 1 1 0 Rys. Z.7.4a. Dekompozycja funk
I
cji z zadania 7.4
Blok *2 X, *4 g Blok *5 g y.
1 0 0 0 0 1 0 0 0 0 i 0
2,3 0 0 1 1 2, 5 0 0 1 0 i i
4 ,6 0 1 1 0 3 1 0 1 1 0 0
5, 7 1 0 0 1 4 1 0 0 i 1 i
8, 9 1 1 0 0 6 ,9 1 1 0 1 1 0
10 1 1 1 1 7 0 1 1 1 0 0
8 0 I 0 1 1 I
10 1 1 1 1 0 1
ZADANIE 7.5
Rozwiązanie
PF = (l7T0; 2, 7,11; 3; 4 j ; 5; 6; 9)
Z podanych par {P/5 P(} tworzymy trójl/i „po
dejrzane” o r = 4
105
A = {x„ x2, x4}, B = (x„ x4, x s}, C = {x2, x3, x4}, D = { x 3, x4, x5}
P (A )| PF = PX-P2 -P4 \PF = (1X2);(3X4);(5)(7);(6)(8);(9);(10)(11), r = 3 + 1
P (£) | PF =Pr P,-P5 1PF = 0); (2); (3); (4); (5, 7); (6)(8)(11); (9); (10), r = 3 +2;
P{C) | PF = P2 • P3 • P4 | PF =(1,10)(2,11); (3)(4)(7); (5); (6); (8); (9), r = 3 + 2 1
'ikH i i; Jlj'
•lit P(D )| PF =P2'P4 -P5 \ PF = ( U 0 ) ;(2,11X6); (3X7); (4); (5); (8); (9) , r =3+ 1|
IObliczenia dla U= {x,, x2, x4} : jlf
'Ąm
Pv = P(x3, xs) = (1,9,10; 2,5,6,11; 3,7,8; 4) -I I f
' i'ltl
Blok x, *2 *4 8o y, y^ y%
1 0 0 1 0 1 0 0 *3 *s
2 0 0 1 1 1 0 1
3 0 1 0 0 0 1 1
4 0 1 0 1 0 1 0
5 1 1 0 1 0 0 1
6 1 1 1 1 0 0 0
7 1 1 0 0 1 0 1
8 1 1 1 0 0 1 0
9 1 0 0 0 1 1 1
10 1 0 1 0 1 0 0
Rys. Z.7.5a. Pierwszy krok dekompozycji
11 1 0 1 1 1 0 1 (zadanie 7.5)
106
n Go | PF = (1,10)(3)(7)(8)(9); (2,11)(4)(5)(6)
ZADANIE 7.6
Dla funkcji z tablicy Z.7.6a podziały P x, P2, P5 są Tablica Z.7.6a
3-przydatne, a P3, P4 —4-przydatne. Należy obli
Blok Y
czyć wszystkie dekompozycje szeregowe z naj *• *2 *3 *4 *5
1 0 0 0 0 0 D
mniejsza liczbą wejść do bloku H oraz najmniejszą
2 0 0 0 0 I A
liczbą wejść i wyjść bloku G.
3 0 0 0 1 0 c
107
Dla U= {jc,, *s} (rys. Z.7.6a):
xt x2 x3 x*
.1 ł i.I
. Podział n o będzie składał się z bloków:
x} xs 1. blok 1 2 i 7, 8,9
I X 2. blok 3,4,5, 6 i 10,11,12
H
u Wektory 4, 5 trzeba oddzielić od 3 i 6. Stąd de
Rys. Z.7.6a. Pierwszy krok de kompozycja nierozłączna z x u czyli V = (jc,, jc2,
kompozycji (do zadania 7.6)
: n ^ = (1,2 ,4 ,5 ,7 ,8 ,9 ; 3,6,10,11,12)
Ph = P (U )-n 'a =
= (1,3, 7,10; 2, 6 ,9 ;X U ; 5 ,8 ,12)-(1,2, 4, 5, 7,8,9;3,6,10,11,12) =
i = (U ;3 7 lÓ ;2 ^ ;6 ;4 ;n ;^ 8 ;i2 )
108
' ¥ 1. '"W®1’*# 'TTipipn
• 1
ZADANIE 7.7
Funkcję boolowskąz tablicy Z.7.7a należy zrealizować (metodądekompozycji) na moż
liwie minimalnej liczbie komórek, z któiych każda realizuje dowolną pojedynczą funk
cję 3-arguinentów. W rozwiązaniu podać m.in. tablice prawdy funkcji każdej komórki.
" l /
Wskazówka: wykorzystać fakt, że podziały P x, P3, P5, są 3-przydatne, a pozosta
łe 4-przydatne.
109
Tablica Z.7.7a Rozwiązanie
110
■dr
Tablica Z.7.7b Tablica Z.7.7c
| 2
1
0
1 0
1
1
1
1 0 1
1 0 1
0
1
1
0
0
1 0
I 0
0
i 3
4
5
6
0
0
1
1
1
1
1
1
1 0 1 0
0 0 1 0
1 1
0 f,.
0
1
0
1
1
1
2
3
1
1
0
1
1
0
0
0
1 0
1
1
i 0 1 1 1
7 1 0 1 0 0 0 3
i ' 8
9
10
0
0
1 0
0
1 1 0
1 0
0
0
1
.1 *1
0
0
1
4
5
5
I
Rozwiązanie
111
Przyjmujemy, że C/ = {g0}, V= {x3, x4, x5}. Zatem
ZADANIE 7.9
Wiedząc, że funkcja z tablicy Z.7.9a ma dekompozycję II(xĄ, xs, x6, Ga(xx, x2, x3)),
, z funkcją G0 jak w tablicy Z.7.9b, obliczyć dalszą dekompozycję szeregową za
pewniającą realizację tej funkcji na minimalnej liczbie komórek 3/1.
Blok *2 *3 *4 *! *6 y , +2 *2 +1 *0
1 1 0 0 1 0 0 0 0 1 1 0 0
2 1 0 I 1 1 0 0 1 0 0 1 0
3 1 1 0 1 1 1 0 1 1 0 1 1
4 1 0 1 1 0 1 0 0 1 0 0 1
5 0 0 1 1 1 0 1 0
6 1 1 0 1 0 0 1 0
7 1 0 0 1 1 1 1 0
8 0 0 1 0 1 1 1 1
9 0 0 1 0 1 0 1 1
^Rozwiązanie
Tablica prawdy funkcji g0 jako składowej funkcji H ( x 4,x s,x 6, g 0) podana jest
' Wtablicy Z.7.9c, natomiast tablica funkcji H —w tablicy Z.7.9d.
1 1
u 2 1
0
1
0
0
1
1
1
2
1 0
1 1
0
0
1
1
0
0
0
i 3
4
5
1
1
1
1
0
1
1
1
0
0
1
6,
3
4
5
1 1
1 0
1 1
1
1
0
0
1
0
0
0
i
i
0
0
6 1 0 ■0 0 6 1 0 0 0 i 0
7 ' 1 1 1 1 7 1 1 1 1 i 0
$■ 8 0 1 1 0 8 0 f 1 0 i 1
9 0 1 0 0 ■ 9 0 1 0 0 i 1
1 ■ Tf
113
.1
n 6. = ( 1, 4 , 6; 2^ ; 3,7; 8,9)
i
i®
ZADANIE 7.10
■ 114
fili**"
Pi=( 1, 2,3,4, 5; 6 , 7,8,9,10,11,12), r = 1+3=4
■sf
0 , 2 ,3 ,4 ,5 ,9 , 10 , 11, 1 2 ; 6 , 7 , 8 ),
+
II
II
P] = (1,2,3, 6 ,9,10; 4,5, 7,8,11,12), r = 1+3 =4
II
Pt -P4 = (1, 2, 5; 3,4; 8 ,9,12; 6 , 7,10,11),
115
Zawartość pamięci ROM (tablica Z.7.10c) obliczamy z iloczynu:
p (U )-n 'G =
= 072; 3; 4; 5; dJO; 9; 8712; T J l )- (1,4, 5, 6,9,11,12; 2,3, 7,8,10) =
= 0 ; 2; 3; 4; 5; 6; 10; 9 ; 12; 8; f i ; 7 )
ADANIE 7.12
i.la funkcji F z tablicy Z.7.12 obliczyć wszystkie możliwe dekompozycje z mini-
Ctnalną liczbą wejść do bloku H. W rozwiązaniu podać m.in. tablice prawdy funlc-
'pji7/oraz funkcji G.
'skazówka: wykorzystać fakt, że spośród par x„ xf, tylko pary x x, x3, oraz x 3, x 5
ą 3-przydatne.
Tablica Z.7.12
B lo k ,v 2
•b X4 *5 y,
1 0 0 0 1 1 0 0
2 0 0 0 1 0 1 0
3 0 1 1 0 0 0 1
4 0 1 1 0 1 0 0
5 0 1 1 1 0 0 1
6 1 I 0 0 0 0 0
7 1 1 0 1 0 0 0
8 1 1 I 0 0 1 0
9 1 1 1 1 0 0 1
10 1 0 0 0 1 0 1
11 1 0 0 I 1 0 0
fS 12 1 0 0 1 0 0 0
5ADANIE 7.13
. Obliczyć dla jakich U= {x,, xp xt } spośród {x„ x2, x4}, {*,, xA, x5}, {x2, x3, x4},
r{x3, x4, x5} funkcja F z tablicy Z.7.13 ma dekompozycję F = H(xi, x;, xh G0). Obli-
|ćzyć te dekompozycje oraz wykazać, że dla żadnej z nich nie istnieje dekompozycja: i
Fz=H('G ^ Xi,xi,Xk),G°^
W
• Tablica Z.7.13
Blok *1 -*2 *3 *4 *5 yi y2 y.
1 0 0 0 1 1 i 0 0
2 .0 0 0 1 0 i 0 i
■<!"%• *0 1 1. 0 0 0 i i
4 0 1 1 ó 1 0 i 0
5 1 1 0 0 0 0 0 i
6 1 1 0 1 0 0 0 0
7 1 1 1 0 0 1 0 i
8 1 1 1 1 0 0 i 0
9 1- 0 0/ 0 1 1 i 1
10 1 0 0 1 1 1 0 0
11 I 0 0 l 0 1 0 1
ZADANIE 7.14 ZADANIE 7.16
Dla funkcji F z tablicy Z.7.14 zbiory podziałów {i3!, P2}, {Z*,, P 4}, {Pb F z t a b l i c y Z.7.16 z b i o r y p o d z i a -
D la f u n k c ji T a b l i c a Z . 7.16
{P2, p iU {Pi, p a ) , {Pi, P<\},{Pz, Ps),{Pą, p s ) są 4-przydatne. Obliczyć wszyci’' {P„ P2), {P„ P4}, {/>„ P5),{P2, P 3 } ,
kie realizacje tej funkcji na pamięci ROM o 4 wejściach adresowych, czyli-- Blok *2
;{P2, P4), {P 3, P4}, {p 3, Ps},{P>4 , Ps} są *4 *5 y , y t y~i
F = ROM(x„ X/, x k, M0\ gdzie M je s t funkcją modyfikatora adresu. Wykazać,j '4-pizydatne. 1 1 1 0 1 1 1 0 1
że dla żadnej z nich nie istnieje realizacja F = ROM(M,(x„ xf, xk),M0). Dla jrd-.i 2 1 1 0 0 1 1 0 0
Obliczyć wszystkie realizacje tej funk
nej z istniejących realizacji obliczyć funkcję M0 oraz zawartość pamięci ROM 3 1 1 1 1 1 0 0 1
cji na pamięci ROM o 4 wejściach adreso
4 1 1 1 0 1 1 1 0
Tablica Z.7.14 wych, czyli F = ROM(x„ xt, x k, M0), gdzie
5 1 0 0 1 0 0 1 1
M jest funkcją modyfikatora adresu. Wyka
Blok 6 1 0 0 0 0 0 0 0
*2 *3 *4■*s y , y* y 3 zać, że dla żadnej z nich nie istnieje realiza 7 1 0 0 0 1 0 0 1
1 0 0 0 0 0 0 0 0 cja F ROMCM^Xj, Xj, x k), M0). Dla jednej
=
8 0 0 0 0 0 0 0 0
2 0 0 0 0 1 0 0 1 z istniejących realizacji obliczyć funkcję M0 9 0 0 0 0 1 0 0 1
3 0 1 1 1 1 1 1 1
4 0 1 1 1 0 1 1 0
oraz zawartość pamięci ROM (2-3 wiersze 10 0 1 1 1 1 1 1 1
5 1 1 0 1 1 1 0 1 tablicy FI). 11 0 1 1 1 0 1 1 0
6 1 1 0 0 1 1 0 0
7 1 1 1 1 1 0 0 1
8 1 1 1 0 1 1 1 0 ZADANIE 7.17
9 1 0 0 1 0 0 1 1
10 1 0 0 0 0 0 0 0 Dla funkcji z tablicy Z.7.17 zaprojektować układ modyfikacji adresu umożli-
11 1 0 0 0 1 0 0 1 1, wiający realizację tej funkcji na pamięci o 4 wejściach adresowych. Modyfika
tor musi być na tyle uniwersalny, aby umożliwić realizację tej funkcji dla dowol
ZADANIE 7.15 nych wyjść (y, oznacza dowolne słowo binarne). W rozwiązaniu należy podać
iń.in. wyrażenia boolowskie wszystkich funkcji modyfikujących adres dla pamię
Wi tablicy Z.7.15 dana jest funkcja f( a , b, c, d, e), dla której podziałem charakle- ci o 4 wejściach adresowych oraz zawartość ROM dla komórek o adresach: 0, 1,
J rystycznym jest: ,‘2; 3 dla najprostszej realizacji.
■I
i > Pp = (1,3, 5; 2,4; 6; 7,9,12; 8,10,11)
Ę| j Tablica Z.7.17
Dla argumentów funkcji obliczono /^-przydatności, które wynoszą odpowiednio
Blpk *1 *2 *4 *3 y
Tablica Z.7.15 r(ci) = 3, r(b) = 3, r(c) = 3, r(d) ~ 4, r{e) = 4 1' 0 0 0 0 0 y,
2 0 0 0 1 1 y2
Obliczyć wszystkie dekompozycje szeregowej 3 0 1 1 1 1 y3
z najmniejszą liczbą wejść do bloku H oraz najJEr 4- 0 1 1 0 0 y*
mniejszą liczbą wejść i wyjść bloku G. W rózff *' A 5 * 0 0 ■1 1 0 y>
wiązaniu należy podać schematy blokowe obij® 6 0 0 1 0 0 y<.
czonych dekompozycji, w szczególności wejścia* 7 1 0 0 0 0 y7
i wyjścia bloków G i H, natomiast samo zadaje 8 1 0 0 0 1 y»
nie dekompozycji należy zakończyć, podając o d|| 9 1 0 0 1 1 y»
powiędnie podziały IIG spełniające warunek wy 10 1 0 1 1 0 yw
starczający dekompozycji (nie należy wvznaczalBL 11 r 0 ' 1 0 1 y„
tablic prawdy G i FI). 12 1 0 1 1 1 y,2
-
ZADANIE 7.18
Dla funkcji F z tablicy Z.7.18 wszystkie pary podziałów {Pt, P;}, oprócz
{P2,P 5} są 4-przydatne, {/>,, P 3), {P2,P 5} są 5-przydatne.
Obliczyć dekompozycję szeregową tej funkcji, zapewniająca realizację F na
pamięci ROM o 4 wejściach adresowych. Wykazać, że istnieje tylko jedna taka
realizacja. W rozwiązaniu podać wyrażenie boolowskie funkcji modyfikującej ad
res oraz adresowanie ROM dla kilku komórek pamięci.
Tablica Z.7.18
'1
tm
€A 120
!.%#n
r »>"ip
U K ŁA D Y SE K W E N C Y JN E
8
8.1. PODSTAWY TEORETYCZNE
Modelem matematycznym układu sekwencyjnego jest automat. Automat jest de
finiowany przez określenie:
a) zbioru liter wejściowych X (lub V) i wyjściowych Y,
b) zbioru stanów wewnętrznych S,
c) funkcji przejść (oznaczanej 8),
d) funkcji wyjść (oznaczanej A).
' W formalnym zapisie automat A określa się jako piątkę (S, X, Y, 8, A), gdzie
lunkcja przejść jest definiowana jako odwzorowanie 8: S x X —» S, natomiast
funkcja wyjść A.jest odwzorowaniem A: S x X —> Y (tzw. automat Mealy’ego) lub
jako A: S F(tzw. automat Moore’a).
Ważnym pojęciem w układach cyfrowych jest pojęcie automatu zupełnego i niezu
pełnego. Automat, określony funkcjami przejść 8 i wyjść A nazywamy automatem zu
pełnym, jeśli dziedziny tych funkcji są równe zbiorom S x X oraz S (w przypadku
funkcji wyjść automatu Moore’a). Jeśli natomiast dziedziną którejkolwiek funkcji jest
podzbiór wymienionych zbiorów, to jest: Ds cz S x X, Dx a S x ATlub Dx a S, to taki
automat nazywamy niezupełnym.
Funkcje przejść-wyjść najwygodniej można przedstawiać za pomocą tablicy.
Tablice przejść-wyjść przykładowych automatów podane w tablicy 8.1 reprezen
tują automat Moore’a (a) oraz automat Mealy’ego (b). Tablicom tym odpowiada-
grafy automatów pokazane na lys. 8.1.
ł F«i /. *
Tablica 8.1 U■
a) b)
*2 x . Y X , ■X2 X , x t
sl Ą t2 S 2 >j Yt
s 2 S3 s 2 Y, ‘
i S 2 S3 *2 Y, Yt
S3 S3 s 2 Y, s. S 2 S, Yt Y,
121
przerzutnika, określające zależność stanu następnego Q od sygnałów wejścio
wych i stanu bieżącego Q. Na przykład, dla przerzutników D i T odpowiednimi
'równaniami są:
jji. Q' = D
Q' = TQ + TQ
Tablica 8.2
/ / Ol
\£ >
Rys. 8.1. G raf automatu: a) Moore’a, b) Mealy’ego ; g\
0 1 Ve \
0 1
e \
00 01 11 10 00 01 11 10
0 0 1 0 0 1 0 0 0 _ 1 0 0 0 1 1
jTechniczną realizacją automatu jest synchroniczny układ sekwencyjny zbudo 1 0 1 1 1 0 1 1 0 - 1 1 1 0 0 1
wany z układu kombinacyjnego i pamięci (rys. 8.2). Układ kombinacyjny auto O' O'
matu jest układem wielowyjściowym, wytwarzającym sygnały wyjściowe auto-
matuy,, oraz sygnały wzbudzające układ pamięciowy gu ..., qk. Wejściami 1 Podane w tablicy 8.2 tablice przejść przerzutników interpretujemy następują
układu kombinacyjnego są sygnały wejściowe automatu x x, ..., xn oraz sygnały co. Przerzutnik typu D jest to element opóźniający sygnał wejściowy o takt. Prze
wyjściowe Qu ..., Q układu pamięciowego. Układ kombinacyjny jest opisany la- rzutnik typu T przy podaniu jedynki na wejście T zmienia w kolejnym takcie swój
blicami wyjść i wzbudzeń (sposób tworzenia tablic wzbudzeń poznamy w dalszej stan na przeciwny. Przerzutnik typu SR jest to przerzutnik z dwoma wejściami:
części rozdziału). ustawiającym (Set) i zerującym (Reset), czyli przy S = 1, R = 0 przerzutnik prze
Pamięć automatu jest zbudowana z tzw. przerzutników —automatów elemen chodzi do stanu Q = 1, przy S - 0, R — 1 przerzutnik przechodzi do stanu Q = 0,
tarnych synchronizowanych specjalnym sygnałem zegarowym oznaczonym clk. przy czym podawanie jedynek na oba wejścia jednocześnie jest zabronione. Prze
Przerzutnik jest automatem typu Moore’a o dwóch stanach wewnętrznych, jed rzutnik JK działa jak SR, gdy jedynka jest podana na co najwyżej jedno wejście,
nym lub dwóch wejściach informacyjnych, dwóch wyjściach (prostym i zanego ijak typu T, gdy jedynka jest podana na oba wejścia. Zatem na wejścia przerzutni-
wanym) oraz wejściu synchronizującym (zegarowym). Symbol graficzny prze- ka JK może być podana dowolna kombinacja wartości sygnałów./i K, przy czym
rzutnika pokazano na rys. 8.3. zawsze przy sygnałach J= 1, K = 0 przerzutnik ten „zapala się”, to znaczy prze
chodzi do stanu 1, zaś przy sygnałach J —0, K = 1 przerzutnik „gaśnie”, to zna
: xf- ■Yi czy przechodzi do stanu 0. Ęrzy sygnałach ./= K ~ 1 przerzutnik zmienia stan na
UKŁAD przeciwny.
x„- KOMBI ■ym
NACYJNY Przy projektowaniu układów synchronicznych posługujemy się również tzw.
tablicami wzbudzeń przerzutników. Określają one, jakie muszą być sygnały wej
Qi li- -Q ściowe przerzutnika, aby uzyskać określoną zmianę stanu (przejście ze stanu bie
PAMIĘĆ Przerzutnik
<7k
h~ Q żącego Q do następnego,1.^')* Tablice wzbu
dzeń omawianych przerzutników podane są Tablica 8.3
jclk
w tablicy 8.3.
QQ D T SR JK
Rys. 8.2. Synchroniczny układ Rys. 8.3. Symbol graficzny przerzutnika Tablice przejść i tablice wzbudzeń prze-
0 0 0 0 0- 0-
izutników nie określają bezpośrednio roli
0 1 1 1 10 1-
W zależności od rodzaju wejść informacyjnych wyróżnia się przerzutniki typu: sygnału zegarowego. Znaczenie sygnału ze
garowego w pracy przerzutnika jest istotne 1 0 0 1 01 - 1
D, T, SR i JK. Ich tablice przejść są przedstawione kolejno w tablicach 8.2a, b, c, d.
o tyle, ó ile wyznacza on momenty zmiany 1 1 1 0 -0 -0
Bezpośrednio z tablicy przejść można wyznaczyć równanie charakterystyczne
122
Mhu*'1
stanu bieżącego Q. Zmiany te mogą nastąpić tylko w chwilach sygnalizowanych ■
przez ustalone zbocze sygnału zegarowego (np. narastające). Na rysunku 8.4 po
kazane są przebiegi sygnałów wejściowych przerzutnika typu D i T oraz sygnały
na ich wyjściach Q.
Q ' = f(X ,Q )
\ X
0 • 0 1 0 1 0 1
s \
A B A 0 0 A 00 01 00 0 0
B C A 0 0 B 01 11 00 0 0
C C A 0 1 C 11 11 00 0 1
Y (-) io — — - -
r
Qx —D\ —x Qo
Qo= Ą = ■*
Y = xQx
125
II III'
■!
Mil:.,: Podobnie jak poprzednio, schemat lpgiczny tak zaprojektowanego układu jest
„ zbudowany z dwóch przerzutników, do których wejść sterujących 7j i T0 dołą
Its «« czone są wyjścia układów kombinacyjnych realizujących funkcje wzbudzeń oraz
s»*: "v
x 0 1 0 1 ■■ funkcję wyjściową (rys. 8.7). Funkcja wyjściowa nie ulega zmianie.
Q & \ e ,a \
00 0 0 00 1 0
01 1 0 01 1 0
ii 1 0 11 1 0
10 - — 10 - -
A, A,
O 0 l
2= - 1^ 1) \
0 0 00 - — 00 1 0 00 _ —
1 0 01 - - 01 _ _
01 0 1
- - 11 0 1 11 - - 11 0 1
- - 10 - ' 10 - - 10 - -
K,
126 127
liii
•St Q|—i
K' KQ
elk
x■ - O
Rys. 8.8. Schemat logiczny detektora sekwencji z przerzutnikami typu JK
Omówiony przykład syntezy układu dla detektora sekwencji jest bardzo pro
sty. Dla bardziej skomplikowanego treningu w projektowaniu sekwencyjnych
układów cyfrowych omówimy syntezę licznika mod 5 ze sterowaniem. Licznik
; jest układem cyfrowym (blokiem funkcjonalnym), w którym zliczane są impulsy
zegarowe. Pojawienie się impulsu zwiększa lub zmniejsza zawartość licznika o 1,
.. czyli jest to prosty układ sekwencyjny, który musi pamiętać poprzednią zawartość
reprezentowaną stanem wewnętrznym.
'Naszym zadaniem jest zaprojektowanie licznika pracującego w trzech różnych
trybach, a mianowicie: liczenie do przodu, liczenie do tyłu oraz zerowanie. Wybór
tych trybów będzie dokonywany sygnałami sterującymi x t i x2-
Pierwszą czynnością jest formalne zapisanie działania układu w postaci ta
blicy przejść-wyjść. Jest to czynność, którą zgodnie z klasyfikacją etapów syn
tezy automatów zaliczamy do syntezy abstrakcyjnej. Oznaczając dla licznika
"mod 5 (czyli zliczającego do 5) stany wewnętrzne wg naturalnego kodu binar
nego: S0, S t, ..., SĄ, wymienione trzy tryby pracy możemy zapisać w formie ta-
• blicy podanej w tablicy 8.9a. Kolejnym etapem syntezy jest kodowanie. Do za
kodowania mamy zarówno stany wewnętrzne S0 do Ą , jak i litery wejściowe a,
\b, c. Sposób kodowania podany jest w tablicy 8.9b.
Tablica 8.9
a) b)
N. x
a b C Y 00 01 u 10 Y
s \ Q2Q , Q > ^
i So S, Ą Ą 0 000 001 100 000 000 0
S, Ą s« Ą 0 001 010 000 000 000 0
S2 S 3 S, Ą 0 010 011 001 000 000 0
S3 s* si Ą 0 011 100 010 000 000 0
■- S, S. S, s. 1 100 000 011 000 000 1
fet.-. >. Uzyskaną tablicę należy zapisać w formie dogodnej do dalszych obliczeń.
W tym celu do oznaczenia poszczególnych wierszy i kolumn tej tablicy przyj-
r«*pi. •»ąw- ■
m :A
Tablica 8.11
a) b) c)
00 01 11 10 00 01 11 10 00 01 11 10
Q2e , o > \ S 20 ^ \
000 ' 0 1 0 0 000 0 0 0 0 000 1 0 0 0
001 0 0 0 0 001 1 0 0 0 001 0 0 0 0
on 1 0 0 0 Oil 0 1 0 0 Oil 0 0 0 0
010 0 0 0 0 010 1 0 0 0 010 1 1 0 0
110 - - - - 110 - - - - 110 - - - -
111 111 - - - - 111
101 - - - - 101 - - - - 101 - - - -
100 0 0 0 0 100 0 1 0 0 100 0 1 0 0
A A
Mając zątem tablice wzbudzeń poszczególnych przerzutników podane w for
mie tablic Karnaugha, możemy bezpośrednio z nich wyznaczyć odpowiednie wy
rażenia boolowskie na funkcje wzbudzeń D2, £>,, D0:
I *» t
D2 = *,*20100 + *1*202^100
Z?j = X\x2Q\Qo -b X)x2Q\Qo + X\X2Q\Qq + X\X2Q2
D0 = xix2Q2Q0 + X)QiQo + xix2Q2
129
j jTrzy kolejne tablice reprezentują funkcje wzbudzeń wejścia J oraz K poszcz
gólnych przerzutników kolejno: J2, K2 (tablica 8.12), K x (tablica 8.13) oraz JQ
(tablica 8.14). Z tablic tych bezpośrednio obliczamy funkcje wzbudzeń:
*
i; I J 2 = x xx2QxQ0 + x xx 2Q xQ q
k 2 =\
J | = x xx 2Qq 4" x xx2Q2
K x = x 2Q0 + x2Qq + x x
j 0 = xtx2Q2 + xxx2Q2 + xxQx
*o=l
Oczywiście Y= Q2.
Tablica 8.12
a) b)
00 01 11 10 00 01 11 10
000 0 1 0 0 000 - - - -
001 0 0 0 0 001 - - - -
on i 0 0 0 011 - - - -
010 0 0 0 0 010 - - - -
no - - - - 110 - - - -
ni - - - - 111 - - - -
101 - - - - 101 - - - -
100 - - - - 100 1 1 1 1
Tablica 8.13
a)
00 01 11 10 00 01 11 10
, ; \
q 2q q
000 0 0 0 0 000 - - -
001 1 0 0 0 00J - - - -
011 - - - - 011 1 0 1 1
010 ■- - - - 010 0 1 1 1
110 - - - - 110 ~ - - -
111 - - - - 111 - - ~ -
101 - - - - 101 - - - —
100 0 1 0 0 100 - - - -
K,
130
•W ir
Tablica 8.14
If-
;f a) ' b)
ZADANIE 8.1
Zaprojektować licznik mod 8 z wejściem zezwalającym E, pracujący w natural
nym kodzie binarnym. Przerzutniki do realizacji należy dobrać tak, aby uzyskać
najprostszy schemat logiczny licznika. W rozwiązaniu podać schemat logiczny
, licznika (bramki i przerzutniki).
Rozwiązanie
Tablicę przejść-wyjść licznika pokazano w tablicy Z.8. la, a tablicę wzbudzeń dla
przerzutników typu D w tablicy Z.8.Ib (uwaga: opis tablicy Q2 Q\ Q0 w kodzie
Graya). Z tablicy tej odczytujemy następujące wyrażenia na funkcje wzbudzeń
przerzutników:
—
* •» , ,i
— i t i f j l — ' —
131
Tablica Z.8.1a
i
0 1 y
NKB
0 000 0 0 0 0 0 1 0
1 001 0 0 1 0 1 0 0
2 010 0 1 0 0 1 1 0
3 011 '0 1 1 1 0 0 0
4 100 1 0 0 1 0 1 0
5 101 1 0 1 1 1 0 0
6 110 1 1 0 1 1 1 0
7 111 1 1 1 0 0 0 1
Tablica Z.8.1b
0 ©
f-jT 0
li_ 0
0 nr
0 li.
nr 0
li 0
0 ©
D2DiDq Dn A D„
Tablica Z.8.1c
O i o i O 1
; ,132
i tablicy tej wyznaczono następujące funkcje wzbudzeń:
! T2 = EQxQq, r , = EQ0, T0 = E
J f P o odpowiednich przekształceniach otrzymamy:
j f ' T2 = QxT{, T, = EQ0, T0 = E !i
Prowadzi to do schematu jak na rys. Z.8.1. Jest to najprostszy schemat logicz-
ny licznika synchronicznego pracującego w naturalnym kodzie binarnym. j
W : ... Ir
i
T Q -L J n T Q r Q
we
O!
Ol
V
clk > Q
ZADANIE 8.2
Mając do dyspozycji przerzutnik typu D i dowolne Tablica Z.8.2
bramki logiczne, skonstruować przerzutnik typu T. Na
rysować schemat logiczny.
Rozwiązanie
Z tablicy przejść przerzutnika typu T (tablica Z.8.2) od
czytujemy wyrażenie na funkcję wzbudzeń przerzutni
ka typu D, pamiętając, że D = q
q' = D = QT + QT = Q ® T"'.
Rys. Z.8.2. Schemat przerzutnika typu T zrealizowanego na przerzutniku typu D: a) z użyciem bra
mek AND i OR, b) z użyciem bramki EX-OR
133
8.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA
ZADANIE 8.3
Mając do dyspozycji przerzutnik typu D i dowolne bramki logiczne, skonstru
ować przerzutnik typu JK. Narysować schemat logiczny. |
ZADANIE 8.4
Mając do dyspozycji przerzutnik typu JK i dowolne bramki logiczne, skonstru
ować przerzutnik typu D oraz przerzutnik typu T. Narysować schematy logiczny.
ZADANIE 8.5
Zaprojektować na przerzutnikach typu JK licznik mod 8 z wejściem zezwalają
cym E, pracujący w naturalnym kodzie binarnym (patrz zadanie 8.1). W rozwią
zaniu podać schemat logiczny licznika (bramki i przerzutniki).
ZADANIE 8.6
Zaprojektować na przerzutnikach typu JK licznik rewersyjny (zliczający w tył)
mod 8 z wejściem zezwalającym E, pracujący w naturalnym kodzie binarnym
(patrz zadanie 8.1). W rozwiązaniu podać schemat logiczny licznika (bramki
i przerzutniki).
ZADANIE 8.7
Zaprojektować na przerzutnikach typu JK licznik mod 6 z wejściem zezwalają
cym E, pracujący w naturalnym kodzie binarnym (patrz zadanie 8.1). W rozwią
zaniu podać schemat logiczny licznika (bramki i przerzutniki).
ZADANIE 8.8
Zaprojektować na przerzutnikach typu JK dekadę liczącą (licznik mod 10), pracu
jący w naturalnym kodzie binarnym. W rozwiązaniu podać schemat logiczny licz
nika (bramki i przerzutniki).
ZADANIE 8.9
Zaprojektować licznik mod 8 z wejściem zezwalającym E, pracujący w kodzie
Graya (patrz tablica 4.1). Projekt wykonać dla trzech typów przerzutników: a) D, b)
T, c) JK. W rozwiązaniach podać schemat logiczny licznika (bramki i przerzutniki).
itr
te
§\
ZADANIE 8.10
Tablice przejść automatu mają następujące liczby stanów: a) 2, b) 4, c) 9, d) 22,
e) 47, f) 111, g) 876. Podać minimalną liczbę zmiennych wektora stanu wystar
czającą do ich zakodowania.
ZADANIE 8.11
Zaprojektować na przerzutnikach typu D układ sekwencyjny wytwarzający na
swoich wyjściach powtarzającą się sekwencję liczb binarnych (w naturalnym ko
dzie binarnym):
a) 0 —» 1 —> 2 —> 3 —> 2 —>1,
b) 0 —> 1 - 4 3 —> 7 —> 6 —>4,
c) 0 —> 1 —> 2 —> 4 —>6,
d) 2 —> 0 —) 1 —> 2 —^ 1 —> 0 —y 2 —> 3 —> 0 —> I,
e) 3 —> 2 —» 1 —» 3 —> 2 —>0,
f) 0 —» 6 —» 5 —> 2 —> 0 —>7.
ZADANIE 8.12
Zaprojektować na przerzutnikach typu T układ sekwencyjny wytwarzający na
swoich wyjściach powtarzającą się sekwencję liczb binarnych (w naturalnym ko
dzie binarnym), jak w zadaniu 8.11.
ZADANIE 8.13
Zaprojektować na przerzutnikach typu JK układ sekwencyjny wytwarzający na
swoich wyjściach powtarzającą się sekwencję liczb binarnych, jak w zadaniu 8.11.
135
M IN IM A LIZA C JA STA N Ó W
A UTO M A TU
Tablica 9.1
a) b)
s\ X
a b c d a b C d a b c d a b C d
s \
S, - Ą s, S2 - 1 i 1 A c B c A 0 1 i 1
S4 - - - 0 - - - B c C A — 0 1 i -
Ą S6 S6 - - 0 1 - - C B C A B 0 0 0 1
S4 - S(, s, Ss - 0 0 1 -
St - - Sz - - - 1 -
Sc, S3 - Si S3 0 - 0 1
136
ej i dokonuje się selekcji minimalnej liczby zbiorów zgodnych spełniających tzw.
warunek pokrycia i zamknięcia.
Dwa stany wewnętrzne S„ St są zgodne, jeżeli dla każdego wejścia v mają one
niesprzeczne stany wyjść, a ich stany następne są takie same lub niesprzeczne.
1 Dwa stany wewnętrzne St, Sf są. zgodne warunkowo, jeżeli ich stany wyjść są nie
sprzeczne oraz istnieje v e V, dla którego para stanów następnych do St, St (ozn. Sk, S,):
(St, S,) * (Sk, S,)
Stany S,, Sj są sprzeczne, jeżeli istnieje takie v e V, że ich stany wyjść są
sprzeczne.
Dla automatu z tablicy 9. la, którego stany wewnętrzne są oznaczone liczba
mi naturalnymi od 1 do 6 (tablica 9.2), para 2, 4 jest zgodna, para 1,3 jest zgodna
warunkowo, a para 5, 6 jest sprzeczna.
Ze względu na to, że para zgodna Tablica 9.2
warunkowo może —po dalszej analizie
- okazać się parą zgodną albo sprzecz X
a b c d a b C d
s
ną, w obliczaniu wszystkich par zgod
nych posługujemy się tzw. tablicą trój 1 - 3 4 2 - 1 i 1
kątną. Przykładowa tablica trójkątna (ta 2 4 - - - 0 -
_
2 2 <
3 3 3, 6 4,6
4 4 X V X
5 2,4 V V X
5
6 X 3,4 V i, 2; 3,5 X
1 2 3 4
1 2 3 4 5
137
Ogólnie, w tablicy trójkątnej należy wpisać wszystkie warunki oraz wykreślić
kratki odpowiadające stanom o sprzecznych wyjściach. Następnie należy wykre- J
ślić wszystkie kratki, w których jako warunek (lub jeden z warunków) wpisana \
jest para k, l odpowiadająca klatce (k, l) wykreślonej na poprzednim etapie. Dla 'l
wszystkich nowo wykreślonych klatek należy sprawdzić, czy odpowiadające im
paiy stanów występująw niewykreślonych kratkach jako warunki. Czynność wy-
kreślania klatek prowadzi się aż do uzyskania sytuacji, gdy wszystkie pary okre- »
ślające warunki odpowiadają kratkom niewykreślonym.
W tak uzyskanej tablicy wszystkie kratki niewykreślone, bez względu na ich
zawartość, odpowiadają parom stanów zgodnych. Z tablicy 9.4 odczytujemy, że
wszystkie pary zgodne dla automatu z tablicy 9.2a są następujące:
138
Si^Milj
litk ’-H 41. 1 .....
utworzymy zbiór {{1, 2}, {3, 5}, {4, 6}}, to wszystkie klasy będące warunkami
zamknięcia dla klas tego zbioru są zawarte w pewnych jego klasach. Zatem zbiór
MKZopt = {{1, 2}, (3, 5}, (4, 6}}, jest zamknięty i pełny, a więc jest minimalnym
zbiorem klas zgodnych dla tego automatu. Konstrukcja automatu minimalnego po
kazana jest w tablicy 9.6.
[Tablica 9.6
a) b)
a b c d a b C d a b c d a b C d
A 1,2 4 3 4 2 0 1 i i A c B c A 0 1 i 1
B 3, 5 6 6 2 - 0 1 i - B c C A - 0 1 i -
C 4, 6 3 6 1, 2 3, 5 0 0 0 i C B C A B 0 0 o 1
0 1 0 1 2 X
1 2 6 0 ' 0 3 4,6 X
2 3 1 1 1
3 - 4 - 0
4 X X
4 - 5 - 0 5 X V V V
5 3 - 1 - 6 X X V V X
6
7
7
-
-
8
1
-
-
0
7 6,8
8 X
X
V
M 5,8
V
V
V
X X X
8 - - - 1
1 2 3 4 5 6 7
Tablica 9.9
Tablica 9.10
a) b)
0 1 0 1 0 1
A 2, 5 ,8 3 1 A C C 1 1
B 4, 6 ,7 7 5, 8 B B A 1 0
C 1, 3 2 4 ,6 C A B 0 0
140
'«§!i cjfifppppnro?'~ ■
Tablica 9.11
a) b)
\ A' X
0 1 0 1
s \ 0 1 0 1
1 2 3 - - 2 3 - -
2 4 5 - - 4 5 - -
3 6 7 - 5 5 - -
4 1 1 0 1 1 1 0 1
5 1 1 0 0 1 1 0 0
6 1 1 0 0
I. 7 1 1 0 0
Tablica 9.12
2, 4; 3, 5
2, 5; 3, 5
1,2; 1,3 1,4; 1,5 1, 5
1, 2; 1, 3 •" 'u% i, 5 1,5 X
ii"f
141
. Ł‘
9.13
b) c)
X
0 I 0 1 0 1 0 1 0 1
5
125 135 A 135 125 135 0 0 A B A 0 0
125 135 B 125 124 135 0 0 B C A 0 0
124 135 C 124 124 135 0 1 C C A 0 1
124 135
2. ZADANIA Z ROZWIĄZANIAMI
ZADANIE 9.1
a) Dokonać redukcji stanów dla automatu z tablicy przejść-wyjść (tablicaZ.9.la).
W rozwiązaniu podać obliczenia klas zgodności oraz tablicę automatu minimalnego.
142
II
Rozwiązanie
i*, W tablicy Z.9.1b zaznaczono pary sprzeczne (x), pary zgodne (V) oraz pary zgod
ne warunkowo (np. 1, 4). Po sprawdzeniu zgodności warunkowej wykreślono
' pary 1, 7; 3, 7 oraz 4, 7.
\ X X
0 1 0 1
S N. 1,4 X
1 5 4 0 0
3 ,4 X 1, 3
2 2 7 1 1
3 - 1 - 0 X < V
4 - 3 - 0 X 4 ■i < 2 ,6
5
6
2
6
-
-
1
1
-
-
X X
XX V
X V X X < < X
7 - 8 - 0
1 2 3 4 5 6 7
8 _ - - 1
Warunek pokrycia spełniająkiaśy { i, 3,4}, {2, 5, 6, 8}, {5, 6, 7}. Warunek za-
mkniętóści jest sprawdzony w tablicy Z.9.1c.
143
Tablica Z.9.1c Po przyporządkowań iu odpowiednio
nazw stanów A, B, C otrzymujemy tabli-'
cę przejść-wyjść (tablica Z.9.Id) autonia-'
tu minimalnego. Zakodowana tablica jest
5 ------ 413 0 0
pokazana w tablicy Z.9. le. Tablica w for
226- 7 ------ 1 1
mie standardowej tablicy Kamaugha jest
— 26 — 8 1 0
podana w tablicy Z.9. lf.
\ X \ x \ \ X
0 1 0 1 0 1 0 1 0 1 0 1
s
A 1, 3 ,4 B/C A 0 0 00 u 00 0 0 00 11 00 0 0
B 2, 5, 6, 8 C C 1 1 01 u 11 1 1 01 11 11 1 1
C 5, 6 ,7 B B 1 0 ii 01 01 1 0 11 01 01 1 0
S y 7i7o y 10 —
9i<?o y
Tablica Z.9.1g
X X
0 1 0 1 0 l 0 1
00 1 0 0 0 00 1 0 0 0
01 1 1 1 1 01 1 1 1 1
11 0 0 1 0 11 1 1 1 0
10 - - 10 - -
■0, y Da y
ZADANIE 9.2
t
Zaprojektować licznik moduló 16 z czterema wejściami danych x x—xĄ i wejściem
sterującym s. Jeżeli 5 = 0, to licznik liczy impulsy zegara, a jeśli s = 1, to stan
wejść x\—.x4jest synchronicznie przepisywany do przerzutników licznika. Dane są
przerzutniki JK i bramki NAND.
,‘* V *
ZADANIE 9.3 '
Zaprojektować automat wykrywający każde pojawienie się sekwencji:
a) 0011,
b) 00011,
w dowolnie długim ciągu wejściowynl. Dane są przerzutniki JK, bramki AND
i NAND.
145 j
•I
z a d a n ie 9.4
Zaprojektować układ wykrywający parzystą liczbę sekwencji 0011 (brak tych iu-
weiicji oznacza ich liczbę parzystą). Dane są przerzutniki JK i bramki NAND.
■’ '-li
DANIE 9.5 m
1 (]' '• Z |
Zaprojektować automat wykrywający ciąg dokładnie trzech albo dokładnie czte-
2clV następujących bezpośrednio po sobie jedynek w dowolnie długim słowie
zejściowym (dane są elementy JK i NAND).
ZADANIE 9.6
Zaprojektować automat do kontroli czterobitowych słów podawanych szeregowo
a jego wejście. Automat ma sprawdzać, czy słowa należą do kodu „2 z 4”. Dane
ą przerzutniki JK i dowolne bramki.
ZADANIE 9.7
Zaprojektować układ synchroniczny o wejściach x, s oraz wyjściu y, sygnalizują-
y jedynką na wyjściu y, że na wejściu x pojawia się sekwencja 0111, gdy s = 0,
atom iast sekwencja 1000, gdy s = 1. Założyć, że zmiana sygnału s może nastą-
ić tylko w stanie początkowym .v0.
t
lih
ZAD E 9.8
! ii t‘1
aPr )j sktować synchroniczny układ do sprawdzania poprawności transmisji in-
srm lcji przesyłanej w kodzie „2 z 5”, tzn. sprawdzający, czy na wejściu w czasie
ięci 1kolejnych taktów zegarowych pojawiły się dokładnie dwie jedynki.
ZADANIE 9.9
lany jest automat o tablicy przejść-wyjść pokazany w tablicy Z.9.9. Wyznaczyć
utomat względem niego minimalny.
Tablica Z.9.9
00 01 11 10 00 01 11 10
s \
1 3 1 - - 0 - - -
2 6 2 ' 1 - - 0 - -
3 - - 4 - 1 - 0 -
4 1 - - 1 0 - - 1
5 - 5 2 1 - - 1 1
6 - 2 6 1 - 1 - 1
16
r
ZADANIE 9.10
/minimalizować automat o zadanej tabli Tablica Z.9.10
cy przejść-wyjść (tablica Z.9.10).
ZADANIE 9.11
Zminimalizować automat zadany tablicą przejść- Tablica Z.9.11
-wyjść —tablica Z.9.11.
X
0 1 0 1
s \
1 3 -
2 - 6 - 0
3 4 5 I
4 6 - 1
5 5 1 - -
6 4 7 1' 1
7 2 3 0 0
ZADANIE 9.12
Zminimalizować automat zadany tablicą przejść- Tablica Z.9.12
-wyjść —tablica Z.9.12.
X
0 1 0 1
s
1 8 7 0 1
2 3 5 0 0
3 2 1 0 0
4 5 8 1 0
5 8 4 0 1
6 5 3 1 0
i 7 1 8 1 0
8 4 6 0 1
147
ZADANIE 9.13
Tablica Z.9.13 Zminimalizować automat zadany tablicą
przejść-wyjść —tablica Z.9.13.
ZADANIE 9.15
Tablica Z.9.I5 Zminimalizować automat zadany następującą ta
blicą przejść-wyjść —tablica Z.9.15.
0 ! 0 I
’5 \
A 5 4 5 1
2 3 3 - 1
3 7 9 - ™
4 3 3 1 1
5 3 3 - 2
6 2 5 2 -
.7 8 6 2 -
8 5 5 1
9 - 6 - -
148
ZADANIE 9.16
Tablica Z.9.16
a) b)
\ X X
a b a b 1 2 1 2
s \ S N.
0 2 5 0 - 1 2 - _
1 3 5 - 0 2 1 4 - 1
2 - 1 1 1 3 4 - - -
3 1 - 1 1 4 3 6 - 2
4 2 5 1 0 5 6 - - -
5 1 - 2 1 6 5 2 - - 3
c) d)
\ X X
0 1 0 1 a b c a b c
S \ S X\ x
1 3 - 0 - 1 2 5 1 0 0 0
O
O
2 4 3 0 0 2 3 - 2
i
3 - 5 1 3 4 - 3 0 - 1
4 6 6 - 0 4 1 - 4 0 - 1
5 6 6 0 - 5 6 - - 0 - -
t
6 - - 6 5 1 0 1
e) 0
s
\ X •'•■"/a 1 " ' \ A"
1 2 ! 2 1 2 . 1 2
5 \ ______ 5 \
1 3 2 1 1 1 1 4 0 1
2 3 2 0 1 2 4 3 1 0
3 2 3 0 1 3 5 2 I 0
4 3 4 1 1 ■ < 4 1 3 0 0
5 I 2 0 0
149
ZADANIE 9.17
Tablica Z.9.17
! :i ■, ■i
b)
i ih -
a b a b \ x a b c a b C
s
!° ■ 2 5 0 - 1 i 2 5 0 - 0
ii 3 5 - 0 2 2 3 4 0 - 0
2 - 1 1 1 3 2 1 4 0 - 0
3 1 - 1 1 4 - 2 7 _ - 1
4 2 5 1 0 5 - 1 7 - - 1
5 1 - 2 1 6 1 2 5 - - 0
6 1 2 1 7 1 2 8 1 1 0
7 5 8 - 1 8 6 3 6 0 0 1
8 6 7 - 1
c)
x\ X
C d y
s
1 1 5 - 9 0
2 3 2 6 - 0
3 3 2 - 9 0
4 4 10 - - 0
5 1 5 6 - 0
6 - 10 6 8 1
7 - 10 7 8 1
8 4 - 7 8 1
9 1 - 6 9 0
10 3 10 7 - 0
ZADANIE 9.18
150
ZADANIE 9.19
Dla automatów określonych tablicami przejść-wyjść (tablica Z.9.19) przeprowa
dzić minimalizację liczby stanów.
Tablica Z.9.19
b)
X
0 i 0 1 0 1 0 1
s S
1 2 3 0 0 1 - 3 1 0
2 1 3 0 0 2 - 4 1 0
3 4 5 1 1 3 3 1 1 1
4 3 5 1 1 4 4 2 1 1
5 1 3 1 0 5 5 4 1 0
ZADANIE 9.20
Zminimalizować i zrealizować na przerzutnikach typu D oraz JK automaty poda
ne w tablicy Z.9.20.
Tablica Z.9.20
a) b)
\ X
0 1 0 1
s
i 2 6 0 0
2 3 1 1 1
3 - 4 - 0
4 5 - 0
5 3, - 1
6 7 - 1 -
7 - 8 - 0
8 - - 1
151
10 SY N TEZA ST R U K T U R A L N A
U K ŁA D Ó W SEK W EN C Y JN Y C H
‘^Tablica 10.1 n , = ( a , B ,E ; C ,D ,F )
x n ( A C ;B ^ D ;E 7 f )
0 1 0 1
152
W t'uV9ĘĘIĘĘHĘĘĘĘIIf^i " '*'■ -m
*,,* r"^ ( ,
?, 1
Twierdzenie 10.1 i
Jeżeli istnieje podział II z własnością podstawienia i jeżeli r spośród k zmien-
'■ nych kodujących Qu Qk, gdzie r = \ log2P(II)"|, jest przyporządkowanych blo
kom podziału II tak, że wszystkie stany zawarte w jednym bloku są oznaczone
tymi samymi kodami Qt, ..., Qn to funkcje Q[,- -,Q'r , są niezależne od pozosta
łych (k —r) zmiennych.
Przyjmując do kodowania stanów automatu z tablicy 10.1 podziały Q ,, n 2,
uzyskamy dla poszczególnych stanów następujące reprezentacje:
A 000
B 001
C 100
D 101
E 010
F 110
Łatwo sprawdzić, że przy tak dobranym kodowaniu pierwsza funkcja wzbu- 1
dzeń Q[ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga j
i trzecia łącznie ( <22, <2;ś ) od dwóch zmiennych wewnętrznych, czyli j
e ; = /(*, e o
Qi =f(x> Qi)
8Ś = /(* , Q * 0 3)
Niestety metody te - jakkolwiek wystarczające do realizacji bramkowych -
okazują się mało skuteczne dla najnowszych struktur programowalnych. Dla ta
kich układów szczególnie korzystna jest struktura z wyodrębnionym blokiem pa
mięci, łatwo realizowalna w strukturach FPGA z wbudowanymi pamięciami.
Wraz z pojawieniem się Najnowszych układów programowalnych powstała
potrzeba realizacji układu sekwencyjnego (automatu) przy wykorzystaniu pamię
ci ROM (Read Only Memory). Ogólna struktura takiej realizacji jest przedstawio
na na rys. 10.1.
W komórkach (wierszach) pamięci ROM przechowuje się zakodowany stan
automatu Q oraz stany wyjściowe Y. Stan następny automatu jest określany na
podstawie wartości zmiennych wejściowych X i informacji Q o stanie bieżącym
automatu, pobranej z pamięci. Wielkość pamięci potrzebnej do takiej realizacji
zależy od długości adresu słowa przechowywanego w komórce pamięci. Istot
nym ograniczeniem opisanej realizacji jest duży wymiar (duża liczba słów pamię
ci oraz długość pojedynczego słowa). f
Układ sekwencyjny może być zrealizowany z wykorzystaniem układu modyfi
kacji adresu (rys. 10.2). Taka realizacja może być traktowana jako dekompozycja
153
bloku pamięciowego z rys. 10.1 na dwa bloki: kombinacyjny układ modyfikacji ad
resu oraz blok pamięci o rozmiarze mniejszym niż wymagany przy realizacji
w strukturze z rys. 10.1. Dzięki tej metodzie układy sekwencyjne, które wymagały
by zbyt dużej pojemności pamięci ROM, a tym samym nie mogłyby być realizowa
ne przy użyciu dostępnego modułu, mogą zostać zaimplementowane przy użyciu
mniejszej pamięci.
X
-P
k > ___
R ejestr
+P
ROM
Rys. 10.1. Realizacja układu sekwencyjnego Rys. 10.2. Realizacja układu sekwencyjnego
z użyciem pamięci ROM z wykorzystaniem układu modyfikacji adresu
154
I; Tablica 10.2
b)
155
( odział P na zbiorze K nazywamy zgodnym z podziałem n na zbiorze S w led)
lip k o wtedy, gdy dla dowolnych wejść va, vh warunek, że st i s, należą do jednego
,lol<u podziału Jt, implikuje warunek, że elementy z K przyporządkowane odpo
wiednio parom (v„, st ) oraz (vA, śf ) należą do jednego bloku podziału P.
Podział P na K nazywamy zgodnym z podziałem 0 na V wtedy i tylko wtedy,
gdy dla dowolnych stanów sa, sb warunek, że v„ v; należą do jednego bloku po
działu 0, implikuje warunek, że elementy z K przyporządkowane parom (v„ sa )
oraz (vy, sh ) należą do jednego bloku podziału P. W szczególności podział P na
■zbiorze K może być zgodny ze zbiorem (n, 0}, jeśli jest zgodny zarówno z po-1
działem n, jak i 0. Natomiast podział P będziemy nazywać zgodnym ze zbiorem ‘
Ki{tcj, ..., 7ia} podziałów na S ({0,, ..., 0p} podziałów na V) wtedy i tylko wtedy,:t
idy /* jest zgodny z podziałem 7t: n = n, • n2 "•••' na (gdy P jest zgodny z podzia- j
łemi.,0: 0 = 0, • 02 0p). _
Na przykład, dla automatu o tablicy przejść podanej w tablicy 10.2a i funkcji!
K podanej w tablicy 10.2b podział: \
fm : ■
i*
#'*P = (1, 2,3, 6, 7, 8,9; 4, 5,10,11,12; 13,14,15,16)
■' -------------------
■jest zgodny z podziałem rz = (j, ?s3; s2, sĄ; s5), natomiast:
_________
S£' p = (i, 2 ,6 ,7 ; 3 ,4 ,5 ,8 ,9 ; 10,13,14; 11,12,15,16)
imi.
rjest zgodny ze zbiorem podziałów {jt, 0}: 7t = ( j j , s 2, s-$ -Ją, s5) , 0 = (v,, v2; v3, v4).
Przedstawimy teraz metodę selekcji podziałów na K, umożliwiającą uprosz
czenie układu adresowania pamięci dla układu o schemacie blokowym pokaza-
iym na rys. 10.2, w którym w (liczba zmiennych adresowych) spełnia warunek:
P -P ■P -P ■pi ^ pc
Oczywiście podziały {Pt } nie należą do zbioru P. . Odpowiednia re
alizacja automatu jest przedstawiona na rys. 10.3. W układzie z tego rysunku wej
ścia adresowe a,, ..., au są funkcjami jednej zmiennej
wewnętrznej q albo zewnętrznej x automatu, natomiast
wejścia a lH], ..., aw są funkcjami, których argumenty
należą do zbioru {qu ..., qp, x x, ...,x„}.
Przyjmijmy, że strukturę układu UMA będziemy
określać układem liczb (&,, ..., bh ..., bw), gdzie b,
jest liczbą argumentów zmiennej adresowej a, . Dla
schematu automatu z rys, 10.3 mamy więc (6,, ...,
b,„ bu+........ bw ), przy czym bj = l dla 1 < j < u oraz
1 < bj <1 m + p dla u < j <w. Przy ustalonym kodowa
niu stanów wewnętrznych i liter wejściowych auto
matu, najprostszą strukturę UMA (dla danego w oraz
u = max) uzyskamy wtedy, gdy zmienne adresowe
będą dobrane tak, że:
z* , :rrun
/asj/ + l
157
!?
azydatny względem Pc . Do kodowania należy więc wybierać takie podział}
rych /-przydatność względem Pc jest równa co najwyżej w. Kodowania te bę-
emy generowali, korzystając z faktu, że r-przydatność podziału P zgodnego
odziałem n = (Bt, ..., Bt, Ba ) jest równa:
yklad 10.1
toda syntezy układu sekwencyjnego w strukturze z rys. 10.3 zostanie omówio-
la przykładzie automatu z tablicy 10.2, którą do dalszych obliczeń zapisujemy
odpowiedniej permutacji wierszy, tak jak to pokazano w tablicach 10.3a i b.
lica 10.3
b)
X X,X2
00 01 11 10 00 01 l i 10
\
sx S 2 -
S, 000 1 2 3 -
1 - - SS 4-.,
001 - - 4 5
, - S4 s .
010 6 - 7 8
, h *2 S1 S3 111 9 10 11 12
$3 *1 *2
101 13 14 15 16
\U )\P c f (d)(6); (2); (3, 7)(4); (5)(8); (9,13); (10)(14); (I I)(I5); (12)(16))
p {U )-n a < pc
n 'a = (1 ,2 ,4 ,5 ,1 3 ,1 4 ,1 5 ,1 6 ; 3 ,6 ,7 ,8 ,9 ,1 0 ,1 1 ,1 2 )
W tej sytuacji
7 W ) | Pc = ((1), (3,5), (2), (4); (6,9), (7), (8); (10), (11), (12); (13), (14), (15), (16))
Tablical0.6
a) b)
\ X *1*2 00
00 01 11 10 01 11 10
s \ć
*1 *4 - 000 1 2 3 -
- - *3 *4 *2 001 - - 4 5
*3 *3 *2 •T3 *3 010 6 7 8 9
*4 42 - *4 *4 111 10 - 11 12
*3 43 Sl S4 *2 S5 101 13 14 15 16
Bloki P(V) są elementami kratek należących do wierszy £,, s3 albo s2, s4, s5
i kolumn x xx2 kodowanych 00, 01, 11, 10. Na przykład, blok z elementami 1, 6
należy do wierszy s,, s3 i kolumny x tx2 = 00, natomiast blok 10, 13 należy do
wierszy s2, v4, ss i tej samej kolumny x xx2 = 00. Z bloków podziału P(V) konstru
ujemy podział nc;:
P(U ) ■n G = (1; 2; 3,5; '# 6 ,9 ; 7; 8; 10; 1U 12; 13; 14; 15; 16)
161
10.2. ZADANIA Z ROZWIĄZANIAMI
ZADANIE 10.1
Automat z tablicy Z.lO.la należy zrealizować na pamięci o 4 wejściach adresowych.
Zaprojektować odpowiedni układ modyfikacji adresu, w którym wejściami bezpośred
nimi do ROM byłyby co najmniej dwie zmienne wewnętrzne automatu (czyli wej
ściami UMA ma być co najmniej: trzecia zmienna wewnętrzna automatu oraz jedna
zmienna zewnętrzna). W rozwiązaniu należy podać wyrażenie boolowskie reprezen
tujące funkcję na wyjściu UMA oraz zawartość kilku (np. trzech) komórek pamięci.
Rozwiązanie
Określamy zbiory U i V dla automatu, dzieląc tablicę przejść tak, aby każda z po
wstałych części miała jak najmniej stanów następnych (tablica Z.lO.lb).
U = {qx, q2), {*|, x 2, q3)
. V
X ,* 2
V, V2 V3 V4 00 01 11 10
S4 - S l 000 1 2 3 -
S2
- - S> *4 S2 001 - - 4 5
S3 *3 *2 S , S3 S3 010 6 7 8 9
S4 •'z - S4 S l 44 111 10 - 11 12
S4 S2 S> 101 13 14 15 16
gi =X) X2 + q i x i
Rys. Z.10.1. Schemat blokowy dekompozycji do zadania 10.1 <h <72 <73
Blok s
*7 <7, JiL Si Blok <7, <72 £i Sl
1,6 0 0 0 0 0 <7, $2 <h
0 0 1 0 0 1 0 0 0 0 0 0 0
10, 13
2 ,7 0 1 0 0 1 2 0 0 0 1 0 0 1
14 0 1 1 0 '1, 3 ,5 0 0 1 1 1 3 1
3 ,8 1 1 0 1 1 4 0 0 1 0 1 0 1
4, 11, 15 1 1 1 1 0 6 ,9 0 l 0 0 0 1 0
9 1 0 0 0 0 7 ■o 1 0 1 0 0 1
5, 12, 16 1 0 1 .1 8 0 1 1 1 0 0 0
10 1 1 0 0 0 0 1
12 1 1 1 1 0 0 0
11 1 1 1 0 1 1 1
13 l 0 0 0 0 1 0
14 1 0 0 1 0 0 0
16 1 0 1 1 0 0 1
15 1 0 1 0 1 1 1
163
» A utom at opisany tablicą przejść-wyjść (tablica Z. 10.2a) zrealizować na pamię-
Sici ROM o minimalnej liczbie wejść adresowych. W rozwiązaniu podać tablicę
| prawdy układu modyfikacji adresu i zawartość pamięci ROM.
Rozwiązanie I
IW każdej kolumnie tablicy przejść tego automatu są co najwyżej dwa stany na
stępne, dlatego przyjmujemy U — {xx, x2}, V — {qx, q2, q3) oraz schemat bloko
w y jak na rys. Z.10.2. Posługując się tablicami Z.10.2b i c, tworzymy podziały: I
Ł \- : | P,, = (1,3,18X8,16);(4,6)(9,11,13);(2,7,14)(5,17,19);(10,15)(12,20)
W ab li ca Z.10.2a
SljfNj, xl 00 01 11 10 Z
\S
2 - 8 - z2
25 2 3 1 - 2.
3 8
■'Al 7 4 - 5
5’ 4 - 6
co
1
Z,
( 7' 7 - 1 Z,
Rys. Z. 10.2. Schemat blokowy de
lx- 2 - 1 6
lali 8. -i kompozycji do zadania 10.2
P(V') = P(Xl)-P (V ) =
= (I; 2; 374; 5; 6; 7; 8,1); 10; U; 12; 13; 14,15; 16; 17; 18; 19, 20)
^ROM=W)*nc =
= (1,3, 8,16,18; 4,6,9,11,13; 2,5, 7,74,17,19; 10,12,15,20) •
• (1,3,4, 5,6,12,17718,19,20; 2,7,8,9,10,11,13,14,15,16) =
= (1,3,18; 8716; 476; 9,11,13; 5,17,19; 2,7,14; 12,20; ToTTs)
Blok 9, 92 93 8 Blok *2 g z
1 0 0 0 0 0 1,3, 18 0 0 0 Z„
2 I 0 0 0 1 8, 16 0 0 1 Z4
3 ,4 0 0 0 1 0 4, 6 0 1 0 Z,
5 1 0 0 1 0 9,11,13 0 1 1 Z5
6 0 0 1 0 0 5, 17, 19 1 1 0 Z2
7 1 0 1 0 1 2, 7, 14 1 I 1 Z7
8, 9 0 0 1 1 1 12, 20 1 0 0 zs
10 1 0 1 1 1 10, 15 1 0 1 Z;
11 0 1 0 0 1
12 1 1 0 0 0
13 0 1 0 I I
14, 15 1 1 0 1 1
16 0 1 1 0 1
17 1 1 1 0 0
18 0 1 1 1 0
19, 20 1 1 1 1 0
165
ZADANIE 10.3
Automat z tablicy Z.10.3a zrealizować w strukturze UMA/ROM, stosując ROM
o możliwie najmniejszej pojemności. W rozwiązaniu podać wyrażenie boolow-.
skie funkcji modyfikującej adres oraz zawar
Tablica Z.10.3a tość ROM.
\ V Rozwiązanie
s \ vi V2 V3 vi V5
a _ b c - c W każdym wierszu tablicy przejść są co naj
c c - d -
wyżej dwa stany następne, zatem należy przy
b
jąć: U= {q \,q 2}, V — {xu x2,x 3} oraz schemat
'I c '1 d a a a -
blokowy jak na rys. Z.10.3 i numerację komó
||i d a - b b a
rek ROM jak w tablicy Z.10.3b.
dl X1 *2 *
3
U M A
d l d2
„3
Tablica Z.10.3b
■ R e je s tr
v. V2 V3 V4 V5
R O M 000 001 010 011 100
a 00 - 1 2 3
di d2 b 01 4 5 - 6 -
c 10 7 8 9 10 -
Rys. Z. 10.3. Schemat blokowy de
kompozycji do zadania 10.3 d 11 11 - 12 13 14
P(F) = P (x„ x2, x3) = (4, 7,11; 1, 5,8; 2,9,12; 6,10,13; 3,14 )
166
Baa* #■
I Powstałe przy tym konflikty można zlikwidować, oddzielając element i, 5 od 8
oraz 3 od 14. Rozdzielenie tych elementów zapewni zmienna q x. W rezultacie po-
f i wstanie nowy zbiór V = {qx, r ,, x2, x3}, dla którego
P (u y n (; =
ZADANIE 10.4
.v ;4- *
Automat z tablicy Z. 10.44 zrealizować w strukturze UMA/ROM, stosując ROM
o możliwie najmniejszej pojemności. W rozwiązaniu podać wyrażenie boolow-
skie funkcji modyfikującej adres oraz zawartość ROM.
Rozwiązanie
Dla danego automatu należy przyjąć numerację komórek ROM jak w tabli
cy Z.10.4b: U= {qx,q 2}, V = { x x,x 2 , x 3}
Pp = 1,4,9,10 ,11; 2,3,12; 5,6,13,14; 7, 8
\ [ r vi V2 V3 V4 vj
V! V2 V3 V4 v3 000 001 010 011 100
5 r \
a 4 - c c 4 a 00 1 - 2 3 4
b b b - a - b 01 5 6 - 7 -
c a d d d - c 10 8 9 10 11 -
d - c b - b d 11 - 12 13 - 14
5 1 0 0 0 0 5 ,6 0 1 0 b
6, 12 I 0 0 1 0 7 0 1 1 a
2, 10 0 0 1 0 1 8 1 0 0 a
3, 11 0 0 1 1 1- 9, 10, 11 1 0 1 a
7 1 0 1 1 1 12 1 1 0 c
9 0 0 0 1 1 13, 14 1 1 1 b
13 1 0 1 0 1
14 1 1 0 0 1
&'■
ZADANIE 10.5
169
ńi: sygnał wejściowy x i wprowadzić stosowne kodowanie. Z analizy tabli
cyZ.10.5b wynika, iż jedynym sygnałem wejściowym wprowadzającym naj
mniejszy podział jest x,.
170
łfciiiań
Tablica Z.10.5b
x v. V2 V3 V4'
00 01 11 10
!>a 000 d i - a 2 -
[i> 001 d . C4 b 5 b„
c 011 - d , a » b .
ci |3
O
^3
e 10 c u a 12
Q
e 100 C I4 C 15 /.7
Rys. Z. 10.5. Schemat blokowy de
/ HI C 18 C 19 - ° 20 kompozycji do zadania 10.5
Blok 92 93 A X2 s Blok A 91 g 9, 92 9j
1, 14 0 0 0 0 0 1 ,3 ,7 0 0 0 1 1 0 d
15 0 0 0 1 1 4 0 0 1 0 1 1 C
2,16 0 0 1 1 0 2, 8 1 0 0 0 0 0 a
17 0 0 1 0 0 5, 6 ,9 1 0 1 0 0 1 b
4 0 1 0 1 1 10, 15 0 1 1 1 0 0 e
5 0 1 1 1 1 16, 17 1 1 0 1 1 1 /
6 0 1 1 0 1 12, 13,20 1 1 1 0 0 0 a
18 1 1 0 0 0
7, 19 1 1 0 1 0
8 1 1 1 1 0'
9, 20 1 1 1 0 1
10 1 0 0 0 1
11 1 0 0 1 0
12 1 0 1 1 1
13 1 0 1 0 1
171
Jkład sekwencyjny opisany tablicą przejść (tablica Z. 10.6a), w którym S oznaczaj J |
ido^yplne stany spośród A, B, C, D, E, należy zrealizować na pamięci ROM o cztc-l
f rech wejściach adresowych, ale z takim UMA, aby możliwa była realizacja dowol-'
■nego automatu. Dowolność oznacza, że nie zmienia się jedynie położenie stanów |
i nieokreślonych (kresek w tablicy przejść), natomiast stany następne S są dowolne, if
W rozwiązaniu podać wyrażenia boolowskie opisujące UMA oraz sposób ad- I
tresow ania pamięci ROM (zmienne adresowe oraz adresy kilku pierwszych komó- 1
rek pamięci).
J ■ i
£; Rozwiązanie
Kody stanu automatu i oznaczenia komórek ROM podane są w tablicy Z. 10.6b. |$
U= {gi, x l, x 2}, V = {q 2 ,q 3} I
: x,x2 00 01 11
00 01 11
' A s 5 s
;;; B - S - 000 A 1 2 3
c - - 001 B - 4 -
D 5 - s 011 C 5 - -
H,
• E s - s 110 D 6 - 7
111 E 8 - 9
■^Tworzymy podział n G:
|; j . blok: 1, 2, "i i 6/7
i L blok: 5,8,9 i 4
te*•’ ■
lęzyli:
n G=(1,2,3,6,7; 4,5,8,9)
P(U) • n G = (l75; 274; 3; 6 /Ś;T, 9)• O X X ^ ; 4 ^ 9 ) =
= 0; 5; 2; 4; 3; 6; 8; 7; 9)
172:
lin
i
| ZADANIE 10.7
«
Układ sekwencyjny opisany tablicą przejść (tabli Tablica Z.10.7a
ca Z. 10.7a) zrealizować na pamięci ROM o 3 wej-
ściach adresowych oraz jak najprostszym UMA. ** 00 01 u 10
W rozwiązaniu podać funkcję boolowską opisującą a e - c -
,! modyfikator adresu oraz zawartość pamięci ROM. b e a i /
I" c - e c /
Rozwiązanie
d a a - c
Tablice przejść z uwzględnionymi podziałami e a d b b
stanów i sygnałów wejściowych podano w tabli- d a c c
f
- cy Z.10.7b i Z.10.7c.
*1*2 00 01 ii 10 ^ \ * l * 2 00 01 11 10
a e - c -
b e a a 000 1 - 2 -
f /
c - e c b 001 3 4 5 6
/
d a a - c c 010 - 7 8 9
e a d b b d 100 10 11 - 12
d a c c d 101 13 14 15 16
r
f 111 17 18 19 20
i i
U = { q u X\ } , v = {q 2, q3 ,x 2}
l.., .. 1
,. L...... . ....
10.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA
ZADANIE 10.8
i1 '
, Automat o podanej tablicy (tablica Z. 108) zreali- Tablica Z.X0.8
. zowąd na pamięci ROM o 3 wejściach adreso
wych i minimalnym bloku UMA. W rozwiązaniu 'x x 00 01 11 10
s \
podać organizację pamięci ROM oraz zawartość
UMA.
a 8 - d -
b 8 c b b
K,
c - 8 d b
d c c - a
e c f e e
f f c a e
s f c a a
ZADANIE 10.9
Automat o podanej tablicy Z. 10.9 zreali Tablica Z.10.9
zować na pamięci ROM o 4 wejściach
adresowych i najprostszym bloku UMA.
Założyć, że zbiorem wejść bezpośred
nich jest U= {qu q2, jty}. W rozwiązaniu
podać wyrażenie boolowskie dla UMA.
Przyjąć oznaczenia wejść jako: x h x2, x3.
175
ZA DAN IE 10.11
i•willi
i
ZADANIE 10.12
176
w
ZADANIE 10.14
Układ sekwencyjny opisany tablicą przejść (ta Tablica Z.10.I4
blica Z. 10.14)) zrealizować na pamięci ROM
o minimalnej liczbie wejść adresowych oraz jak X
00 01 11 10
s \
najprostszym UMA. W rozwiązaniu podać funk
A D - A -
cję boolowską opisującą modyfikator adresu oraz
zawartość pamięci ROM. B F c A A
C - D A B ii
D C C - A
E C F E E
F D C B B
ZADANIE 10.15
Automat z tablicy (tablica Z10.15) zrealizować Tablica Z10.15
na pamięci ROM o możliwie najmniejszej liczbie
wejść adresowych oraz jak najmniejszym UMA. x \x% 00 01 u 10
Podać tablicę prawdy UMA oraz tablicę adreso a C - e -
wania pamięci ROM (wystarczą 2—3 wiersze). b f a - -
1
Obliczyć zajętość pamięci przy klasycznej reali c - e - -
zacji (pamięć bez modyfikacji adresu) oraz po de d - a - C
kompozycji (w bitach). Przyjąć, że UMA też jest e b - a -
realizowany na pamięci oraz że słowa wyjściowe
/ - a d c
w każdym stanie są4-bitowe.
177
UKŁADY i
MIKROPROGRAMOWANE
178
ta!»s-
*:
\19
O jest przejściem bezpośrednim, a przy xc.= l i Z = Z 0 skokiem
'■bezwarunkowym (Z0 oznacza mikrorozkaz pusty). Umożliwia to realizację dowol-J
•mej. sieci działań, ale powoduje stratę albo pola adresowego B, albo pola operacyjne-;
' go Z, w wyniku czego poszczególne części słów pamięci mikroprograrnu nie zawsze
będą wykorzystane. Dlatego też, w mikroprogramowanych układach sterujących wy
konywanie wymienionych czynności rozdziela się często na dwie lub trzy mikroin-
strukcje, rozszerzając nawet tę listę o takie mikroinstrukcje, które można zrealizować i
za pomocą już przyjętych, mając na celu ułatwienie procesu mikroprogramowania. j
Przez mikroprogramowanie rozumiemy tu również podział sieci działań na segment} j
odpowiadające mikroinstrukcjom układu sterującego US, przyjętego do jej realizacji.
^Natomiast do procesu syntezy układu sterującego, realizującego zadaną listę mikroin-
|strukcji, należy przede wszystkim:
zestawienie odpowiednich bloków funkcjonalnych umożliwiających realiza-i
cję przyjętych zasad sekwencjonowania mikroinstrukcji,
synteza układu kombinacyjnego (tzw. dekodera mikroinstrukcji) umożliw iają-
cego sterowanie tymi blokami.
iKozwiązame
>•
SDo realizacji mikroinstrukcji a) w słowie o adresie A , w pamięci ROM muszą
tbyć zawarte: pole S ( d o wyróżnienia typu mikroinstrukcji), pole kontrolne C (do
gyyboru warunku), p o l e operacyjne Z (do zapisu sterowań), czyli słowem pa-
i j m i ę c i powinno być Wa = (S, C, Z ) . Dla instrukcji b) oraz c) będzie odpowied-
181
runkiem xc , który przy ponownym powtórzeniu przyjmie wartość 1, a więc umoż
liwi powrót z mikropodprogramu0 (rys. 11.4).
a) | b)
Rys. 11.4. Obsługa powtarzających się fragmentów mikroprogramu: a) szkic do wyjaśnienia zasad
obsługi, b) przykładowe mikroinstrukcje obsługi podprogramu
1
powtarzania podprogramu A t, A k w dowolnym miejscu programu (rys. 11,4b).
182
■ \ 1
I Łu..:. , > .................
Rys. 11.5. Mikroinstrukcje realizujące pętle: a) z ciągiem mikroinstrukcji, b) z rejestrem śladu
I
I Zapamiętując w rejestrze śladu RS (rys. 11.5b) adres początku pętli mikroin-
f: strukcją:
A j\ RS:=y4j, A : = A i+i
a następnie, odczytując ten adres w mikroinstrukcji A k:
« A k : if x u then A : = RS else A : = A M
uzyskujemy d l a ^ format słowa pamięci (S , C) —prostszy niż poprzednio.
| Przykład 11.2
: Zaprojektować układ sterujący o następującej liście mikroinstrukcji:
a) A/'. Z, A ' = A h.u
b) A j : Z, A ' —Aj,
ł c) A / : Z, if xc then A ' —A M else A ' —Aj.
Ponadto układ ma umożliwiać .obsługę podprogramu.
Rozwiązanie
| Segmenty sieci działań odpowiadające mikroinstrukcjom fila do \ilc są oczywiste
(iys. 11.6a-c). *
Natomiast założoną obsługę podprogramu zrealizujemy dwiema mikroinstruk-
cjami warunkowymi:
d) A j : ifx c then ,4' = A k, RS: —A i+, else ^4' = A M - warunkowe wejście do podpro
gramu (adres A iH powrotu z podprogramu zapamiętany w rejestrze śladu RS);
s e) A j : if xc then A ' = RS else A ' —A M -f warunkowe wyjście z podprogramu.
Odpowiadające im segmenty sieci działań pokazano na iys. 11.6d, e.
183
Rys. 11.6. Segmenty sieci działań do przykładu 11.2: a) kontynuacja i operacja zewnętrzna 2.
b) skok bezwarunkowy i operacja zewnętrzna, c) przejście warunkowe i operacja 2, d) warunkowe
■i wejście do podprogramu, e) warunkowe wyjście z podprogramu
¥ 184
Rys. 11.7. Schemat blokowy układu sterującego z przykładu 11.2
185
operacji należąca do danego podzbioru nie występuje w żadnym z mikrozkazów
A/j, Ms, a ponadto w układzie tym można —odpowiednio kodując słowo pa
mięci - uzyskać każdy z tych mikrorozkazów, łącznie z mikrorozkazem pustym,
reprezentowanym przez wektor złożony z samych zer. Uogólnieniem tego spo
strzeżenia jest pojęcie zgodności mikrooperacji.
Mikrooperacje s, t są w relacji zgodności, jeżeli z warunku s e Mj wynika
warunek t <£M„ gdzie jest zbiorem mikrooperacji reprezentującym mikroroz-
kaz Mr W związku tym, klasą zgodności K t nazywa się taki zbiór mikrooperacji,
w którym każda para s, t e jest parą mikrooperacji zgodnych, natomiast K, jest
maksymalną klasą zgodności (MKZ), jeśli do zbioru Ki nie można dodać mikro
operacji, bez naruszenia warunku zgodności par wśród jej elementów.
Mikrooperacje należące do klasy zgodności można zrealizować na dekoderze
o liczbie wejść adresowych równej flog2(].K;| + 1)1.
Konieczność realizacji mikrooperacji pustej nasuwa przypuszczenie, że w se
lekcji klas zgodności, dla których C = min, istotną rolę będą spełniać tylko takie
klasy Kh dla których:
gdzie j e {1,2,...}. Klasę spełniającą ten warunek nazywa się klasą zasadniczą.
rj | , , j
I Kolejność postępowania przy selekcji klas mikrooperacji zgodnych, zapew
niających realizację sterowań za pomocą słowa pamięci o minimalnej długości,
jest następująca:
1) wyznaczenie maksymalnych klas mikrooperacji zgodnych,
2) wyznaczenie klas zasadniczych,
3) selekcja klas rozłącznych o możliwie największej liczności wyczerpujących
zbiór wszystkich mikrooperacji.
Przykład 11.3
ii I;-: '
Zaprojektować dekoder mikrorozkazu dla mikroprogramu o mikrorozkazach M |,..., M6:
Roz lązame
Najpierw wyznaczamy pary mikrooperacji zgodnych: 1,2; 1, 11; 2, 3; 2, 6; 2, 8; 2,
9; 2 110; 2, 11; 3, 11; 4, 8; 4, 9; 4, 11; 5, 8; 5,9; 5, 11; 6, 8; 6, 9; 7, 10; 8, 11; 9, 10;
186
... .. 'M:'
r
9; 11; 10, 11. Na tej podstawie, postępując zgodnie z algorytmem obliczania klas
f zgodności, wyznaczamy zbiory S i odpowiadające im klasy zgodności:
i s= 0 1
1,2
i 2, 3; 1,2
I Ą = {2}
I S4= 0 2,3; 1,2; 4
s 5= 0 2,3; 1,2; 4; 5
Ą = {2} 2, 6; 2, 3; 1,2; 4; 5
' S7 = 0 2, 6; 2,3; 1,2; 4; 5; 7
ą = { 2 ,4 , 5, 6} 2, 6, 8; 4, 8; 5, 8; 2, 3; 1, 2; 7
Sg = {2, 4, 5,6} 2, 6, 9; 4, 9; 5, 9; 2, 6, 8; 4, 8; 5, 8; 2, 3; 1, 2; 7
5ł0= {2, 7,9} 2, 9, 10; 9, 10; 2, 6, 9; 4, 9; 5, 9; 2, 6, 8; 4, 8; 5, 8;
2,3; 1,2; 7, 10
^„ = { 1 ,2 ,3 ,4 ,5 ,8 ,9 ,1 0 } 2,9, 10, 11; 2, 9, 11; 5, 9, 11; 2, 8, 11; 4, 8, 11;
5, 8, 11; 2, 3, 11; 1,2, 11; 2, 6, 9; 2, 6, 8; 7, 10
Klasę {2, 9, 10, 11} rozbijamy na podzbiory 3-elementowe:
{2, 9, 10}, {2, 9, 11}, {2, 10, 11}, {9, 10, 11 }.
Stąd wszystkie zasadnicze klasy zgodności (z wyjątkiem jednoelementowych)
są następujące:
{2, 9, 10}, {2, 9, 11}, {2, 10, 11},
{9, 10, 11}, {4, 9, 11}, {5,9, 11}, ROM
{2, 8, 11}, {4, 8, 11}, {5, 8, 11}, Mi 10 00 1 1 1 1 0
{ 2, 3 , 11}, { 1, 2 , 11}, { 2 , 6, 9 }, { 2 , 6, 8 }
M2 00 00 0 0 1 0 1
Z klas tych wybieramy rozłączne: m3 01 1 0 0 1
01 1
{2, 9, 10} {4, 8, 11} m4 11 10 0 0 0 1 1
{2, 9, 10} {5, 8, 11} Ms 10 01 0. 0 0 0 0
{9, 10, 11} {2, 6,8} Me 11 0 0
11 0 0 0
{4, 9, 11} {2, 6, 8}'„;
m n
{5,9, 11} {2,6,8}
{4, 8, 11} {2, 6, 9}
{5, 8, 11} {2, 6, 9} 0 0 01 10 11 I I OO'QI 10 11
TTTT
2 910
liii
4 8 11
Przykładowe rozwiązanie dla klas !
{2, 9, 10} i {4, 8, 11} jest pokazane na Rys. 11.9. Dekodowanie mikrorozkazów dla
rys. 11.9. mikroprogramu z przykładu 11.3
187
11.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA
ZADANIE 11.1
. i ‘
Mając do dyspozycji dwa rejestry o mikrooperacjach LOAD, HOLD, ze stero
waniem odpowiednio: 0, 1, sumator, pamięć ROM oraz inne bloki funkcjonalne
i bramki, zaprojektować mikroprogramowany układ sterujący o następującej li
ście m ikroinstrukcj i:
pij : A'
pi2 : Z, if xc then A ’ = AZ else X ' = Ą
pi3 : Z, if xc then A ’ = A , else A '= A /+i
ZDANIE 11.2
Mając do dyspozycji typowe bloki funkcjonalne (np.: licznik, MUX, ...), zapro
jektować układ sterujący, w którym mikroprogram może być zbudowany z nastę
pujących mikroinstrukcji:
1) operacja zewnętrzna Z i kontynuacja,
2) Z i oczekiwanie na spełnienie warunku,
3) Z i skok bezwarunkowy,
' 4) warunkowy skok do podprogramu,
5) warunkowy powrót z podprogramu.
W układzie zastosować licznik adresowy o mikrooperacjach LOAD, HOLD,
COUNT przy, odpowiednio, /,, Z2 = —1, 00, 10.
W rozwiązaniu podać: formaty mikroinstrukcji, schemat blokowy US, tablicę praw
dy dekodera mikroinstrukcji DMI oraz co najmniej dwie funkcje wyjściowe DMI.
ZADANIE 11.3
j :
Mając do dyspozycji typowe bloki funkcjonalne (np.: licznik, MUX, ...), zapro
jektować układ sterujący, w którym każdy z ośmiu mikroprogram ów o długo-
IL188
ściach: 30, 13, 7, 47, 31, 38, 14 i 19, może być zbudowany z następujących mi
kroinstrukcji:
1) operacje zewnętrzne Z,, Z2 i kontynuacja,
2) Z2 i oczekiwanie na spełnienie warunku,
3) Z2 i skok bezwarunkowy,
4) warunkowy skok do podprogramu,
5) Z2 i warunkowy powrót z podprogramu,
6) oczekiwanie i skok do następnego mikroprogramu.
W układzie zastosować licznik adresowy o mikrooperacjach LOAD, HOLD,
COUNT przy, odpowiednio, /,, l2 = - l , 00, 10.
W rozwiązaniu podać: formaty mikroinstrukcji, schemat blokowy US, tabli
cę prawdy dekodera mikroinstrukcji DMI, funkcje wyjściowe DMI oraz kody in
strukcji.
ZADANIE 11.4
Mając do dyspozycji licznik o mikrooperacjach: HOLD, LOAD, COUNT (ste
rowanie odpowiednio: 00, 01, 1-) oraz rejestr o mikrooperacjach LOAD, HOLD
(sterowanie: 1, 0), sumator, pamięć ROM oraz inne bloki funkcjonalne i bramki,
zaprojektować mikroprogramowany układ sterujący o następującej liście mikro
instrukcji:
p/[ : if xL. then A' = A M else A '= A /
\il2 : Z, if xc then A' —A Z else A' = A,
p/3 : if ją. then A '= A i+l else A' = A,
ZADANIE 11.7
l Mając do dyspozycji licznik o mikrooperacjach LOAD, COUNT ze sterowaniem
odpowiednio: 1 (dla LOAD) i 0 (dla COUNT), pamięć ROM oraz ewentualnie
inne bloki, funkcjonalne i bramki, zaprojektować mikroprogramowany układ ste
rujący o następującej liście mikroinstrukcji:
pi, : Zx, if xt. then A '= A , else A' = A i+l
pi2 : z * if xc then A '= A t+2 else A '= A M
p/3 : Z„
u
p/4 : zA,
ii
ZADANIE 11.8
Zaprojektować układ sterujący opisany siecią działań podaną na rys. Z. 11.8. W re
alizacji zastosować przerzutniki typu D. Kodowanie stanów wewnętrznych i sy
gnałów wyjściowych przyjąć wg naturalnego kodu binarnego.
191
ZADANIE 11.9
ZADANIE 11.10
P 4 : Z, if xc then else
N N1
i ' y
II II
II
+
ZADANIE 11.11
Z, = 1,5,7
Z2 = l , 5 , 8
Z3 = 2, 3, 4
Z4 = 2, 3, 6
i
Urządzenia są inicjowane do pracy sygna
łem „1” na wyjściach y t. Należy zaprojektować
dekoder m ikrorozkazu DMZ (wg rys. Z. 11.11)
Wyjścia V; układu - mikrorozkazy Z
o minimalnej liczbie wejść (wejściami DMZ
są wyjścia pamięci). DM&ąiioźe być zbudo Rys. Z. U . U . Dekoder mikrorozka-
zów do zadania 11.11
W wany wyłącznie z dekoderów ł z 2".
I
; ZADANIE 11.12
Wiedząc, że pamięć ROM jest wypełniona wyłącznie słowami z tablicy Z.l 1.12,
zaprojektować układ zbudowany z dekoderów (patrz rys. Z.l 1.12), umożliwia-
193
W9BT
jący generację tych słów za pomocą pamięci z możliwie minimalną liczbą wypro
wadzeń. Podać schemat układu (dokładne oznaczenia wyjść dekoderów) i sposób
wypełnienia pamięci.
Tablica Z.I1.12
.. y*
1 0 1
O
O
i
0 1 0
0 1 10 0 10 0
i '0 0 0 1 0 0 1 i
1 0 1 0 0 1 0 0
1 •** i
Wyjścia yj układu
ZADANIE 11.13
f 2 = 2(3, 5, 7, 8)
Z = 2(6, 8) xi x4
f \ ~ 2(4, 13)
fs = 2(1,7, 15)
/ 6 = 2(1, 4, 9, 14)
/ 7 = 2(12, 14)
194
..
ZADANIE 11.14
Podany zespół 7 funkcji 5 zmiennych zrealizować w układzie o schemacie blo
kowym pokazanym na rysunku Z.l 1.14. Zapewnić minimalną liczbę wyjść z pa
mięci ROM.
Xl *5
f\ = 2(0, 3, 7, 10, 17,31) i l l
/ 2 = Z(0, 2, 10, 15) ROM
/ 3 = Z(1,4, 6, 11)
17771
/ 4 = 2( 1, 14, 17, 20, 25) DEKODERY
, 1
'.,
I.
Wraz ze wzrostem złożoności układów wykonywanych w zaawansowanych
mentacji, których zakres obejmuje układy typu PLD i FPGA, układy gate array
i standard celi, statyczne i dynamiczne układy CMOS oraz matryce PLA, wy
I
maga stosowania zaawansowanych metod syntezy logicznej, często niezależ
nych od technologii realizacji.
<>.: ! Zaawansowanie tych metod, ich rozbudowane procedury, a także konieczność cią-
glcj modyfikacji, wynikającej z potrzeby dopasowywania się do nowych technologii,
•i powoduje, że komputerowe systemy syntezy logicznej powstają głównie w akade-
'*'mickich ośrodkach badawczych. Systemy te —często wykonywane w formie niezbyt
wygodnej do stosowania w bezpośredniej praktyce inżynierskiej —spełniają w nowo-
. czesnych metodach syntezy układów cyfrowych nie mniejszą rolę niż firmowe sys-
temy komercyjne. Z założenia są to systemy przystosowane do obsługi przez użyt
kow nika o głębszej wiedzy w zakresie syntezy logicznej. Spełniają więc rolę niejako
„awaryjną”, tzn. są stosowane w tych przypadkach, w których systemy komercyjne
; . nie dają pozytywnych rezultatów ze względu na dużą złożoność obliczeniową.
i Drugą, nie mniej ważną rolą systemów uniwersyteckich jest zdobywanie wiedzy
rach FPGA, mają całkiem odmienne wymagania dotyczące struktury układów lo-
i doświadczenia w zakresie skuteczności procedur obliczeniowych. Tak więc z bie-
S-i mem lat wiele programów i procedur obliczeniowych, stosowanych w systemach
196
niwersyteckich, weszło do wyposażenia systemów komercyjnych. Typowym przy-
ładem mogą tu być systemy opracowane na uniwersytecie kalifornijskim w Berke-
;y, na przykład ESPRESSO, MIS oraz SIS. Dziś program minimalizacji funkcji bo-
lowskich ESPRESSO jest stosowany bezpośrednio (jako wbudowany do systemu)
gicznych. Bezpośrednie odwzorowanie struktur bramkowych na komórki logicz
ne układów FPGA jest sprzeczne z naturą komórki o tyle, o ile z punktu widze
nia syntezy jest ona przystosowana do realizacji dowolnej funkcji logicznej o ar
gumentach wprowadzonych na jej wejścia. Dlatego dla struktur FPGA znacznie
skuteczniejszą metodą syntezy okazuje się dekompozycja funkcji boolowskich,
której istotą jest synteza funkcji boolowskich w strukturach wielopoziomowych
złożonych z komponentów w postaci bloków logicznych typu LUT specyfikowa-
nych pierwotnymi tablicami prawdy. Skuteczność dekompozycji funkcjonalnej
można wykazać nawet na najprostszych przykładach. Niestety procedury dekom
pozycji nie sąjeszcze stosowane w komercyjnych systemach projektowania ukła
dów cyfrowych. Coraz częściej wyrażana jest opinia o niedoskonałości komercyj
nych systemów projektowania: „Tools are best at synthesizingfat, dumb and slow
logic” —Ray Andraka. Stąd pomysł, aby trudne zadania syntezy logicznej wyko
nywać na zewnątrz systemu, a uzyskane wyniki - zapisane w odpowiednim języ
ku HDL —wprowadzać do systemu. Takie postępowanie jest możliwe, gdy dys
ponujemy odpowiednim oprogramowaniem wspomagającym. Z tych powodów
w rozdziale niniejszym, oprócz klasycznej metody minimalizacji funkcji boolow
skich zaimplementowanej w programie ESPRESSO, szczególnie dokładnie bę
dzie omawiana metoda dekompozycji zaimplementowana w programie DEMAIN
opracowanym w Instytucie Telekomunikacji Politechniki Warszawskiej.
197
Rys. 12.1. Procedury systemu ESPRESSO
EXPAND
Redukuje zbiór F d o zbioru FI;, w którym każda kostka jest implikantem prostym.
ESSENTIAL-PRIMES
IRREDUNDANT-COVER
Zbiór /v je s t redukowany do zbioru FM o możliwie minimalnej liczności.
REDUCE
Każda kostka ze zbioru jest zmniejszana, ale w taki sposób, aby nie zmienić
reprezentacji funkcji pierwotnej. Zakłada się przy tym, że ponowne wykonanie
ekspansji oraz pokrycia może w tej sytuacji wyeliminować kostki lepiej redukują
ce inne; w rezultacie uzyska się skuteczniejszą minimalizację.
Sekwencję procedur: ekspansja, pokrycie i redukcja, powtarza się do momen
tu, w którym kolejny wynik nie będzie lepszy od poprzedniego.
ESPRESSO jest programem wywoływanym z linii komend z możliwością wy
boru opcji: e s p r e s s o [option] [file].
Poszczególne opcje programu dotyczą sposobu przetwarzania pliku wejścio
wego, zapisywanego w odpowiednim standardzie. Opcje te uwzględniają m.in.:
■ oddzielną minimalizację każdej funkcji (wywołać ją można słowem kluczo
wym —Dso),
■ statystykę rozmiarów funkcji ( - s t a t s ) ,
■ przerwanie programu po n sekundach (-k [n]),
■ sposób zapisu pliku wynikowego (-o [type] : wybór typu f d , r itp.).
SŁOWA KLUCZOWE
. .**V *
Zdefiniowane słowa kluczowe, poprzedzone znakiem kropki zostaną przedsta
wione w kolejności, w jakiej powinny wystąpić w pliku:
. i [d] - określenie liczby zmiennych wejściowych, czyli argumentów funkcji
lub ich układu, [d] jest liczbą dziesiętną.
.o [d] —określenie liczby zmiennych w>(jściowych, czyli liczba funkcji, [d] jest
liczbą dziesiętną.
199
. i" \'m
l|;
iaf
... ...... . .. .■.#
. ty p e fd 1 kostka należy do zbioru ON-Set
0 kostka nie należy do opisu funkcji
kostka należy do zbioru DC-Set
_ kostka nie należy do opisu funkcji
■ty p e f r ' 1 kostka należy do zbioru ON-Set
0 kostka należy do zbioru OFF-Set
kostka nie należy do opisu funkcji
kostka nie należy do opisu funkcji
.ty p e d r 1 kostka nie należy do opisu funkcji
0 kostka należy do zbioru OFF-Set
kostka należy do zbioru DC-Set
kostka nie należy do opisu funkcji
.ty p e f d r 1 kostka należy do zbioru ON-Set
0 kostka należy do zbioru OFF-Set
— kostka należy do zbioru DC-Set
~ kostka nie należy do opisu funkcji
Dopuszczalne jest użycie następujących synonimów: 2 zamiast — 4 zamiast 1
oraz 3 zamiast Nie wprowadza się synonimu dla znaku 0.
Podany sposób zapisu dotyczy binarnych funkcji boolowskich. Dla funkcji
wielowartościowych zasady specyfikacji są inne.
203
|;\vym .mv jest błędem. Przy tym sposobie zapisu wartości argumentu dopuszcza się!
^użycie symbolu ” w odniesieniu do zbioru wszystkich wartości danego argumentu.
Przykład 12.1
E| Dokonamy minimalizacji funkcji TL27. Specyfikacja tej funkcji zapisana w stan-
| | dardzie berkeleyowskim w pliku T L 2 7 . p l a jest podana w tablicy 12. la. Urucho
mienie programu ESPRESSO:
e sp re sso T I .2 7 .p la > T L .2 7 . e s p
Tablica 12.1
a) b)
.type fr .i 10
.i 10 .o 1
.0 1 *P 6
.p 25 —
0010111010 0 00— (
1010010100 0 —
0100011110 0 —
1011101011 0 —
1100010011 0 — 11 1 1
0100010110 0 .e
1110100110 0
0100110000 0
0101000010 0
0111I1101I 1
0000010100 1
1101110011 1
0100100000 1
0100011111 1
0010000110 1
1111010001 1
1111101001 I
1111111111 1
0010000000 1
1101100111 1
0010001111 1
1111100010 1
1010111101 I
0110000110 1
0100111000 1
.e
12.3. SYSTEM DEMAIN
a)
X
w ■, u
< ,7
205
Dekompozycja równoległa polega na podziale zbioru funkcji wyjściowych
dwa rozłączne podzbiory i realizacji każdego z nich oddzielnie. Ma to istot-
wpływ na jakość struktury wielopoziomowej w przypadku, gdy nie wszystkie
jścia układu są zależne od wszystkich argumentów funkcji. Można wtedy po-
elić wyjścia układu na dwa rozłączne zbiory tak, że przynajmniej jeden z nich
t blokiem o mniejszej złożoności (mniejsza liczba argumentów wejściowych),
atem łatwiejszy do dalszej dekompozycji.
Dekompozycja szeregowa polega na zastąpieniu bloku o zadanej liczbie wejść
yjść dwoma blokami o mniejszej złożoności (mniejsza liczba wejść do blo-
i. W przeciwieństwie do dekompozycji równoległej, dekompozycja szeregowa
iększa liczbę poziomów logicznych.
.‘ .i. . i — L a m u j ■.»
przy dekompozycji równoległej) o zadanych przez użytkownika parametrach.
Opcja ta może być tylko stosowana w przypadku, gdy dane wejściowe są poda
wane w postaci pliku z wektorem współczynników filtru cyfrowego (dla arytme
tyki rozproszonej), a nie tablicą prawdy.
jS208
■'0 'i
209
Jest to wybór metody przeszukiwania zmiennych wejściowych dla funkcji G
v dekompozycji szeregowej:
1 Opcja „n” - oznacza przeszukiwanie zmiennych według ich kolejności.
1 Opcja „c” - oznacza, że w pierwszej kolejności przeszukiwane są zmienne
należące do argumentów wszystkich wyjść, a dopiero później są przegląda
ne pozostałe kombinacje zmiennych. Omawiana wersja dekompozera ma na
celu minimalizację liczby poziomów logicznych powstającej struktury. Opcja
ta jest zalecana do stosowania.
Jedną z najważniejszych czynności w realizacji programu, od której zależą
yyiijiki rozwiązania, jest wybór strategii postępowania. Są cztery opcje wyboru
itfatjegii: p dla dekompozycji równoległej, dwie: s i c dla dekompozycji szerego-
v^jjpraz r do zapamiętywania bloku w pamięci ROM. Pojawiająsię one na ekra-
iie!w postaci:
ii 11
Do you pr e f e r parallel decomposition ? : p.
OR continue serial decompos i ti on as suggested ? : s
O R continue serial de c o m p o s i t i o n w i t h c h a n g e d parameters ? : c
OR save x x x x x ? : r
Opcja p jest jedyną opcją wyboru dla dekompozycji równoległej. Może być
wykonana na blokach o rozmiarach podanych w podglądzie na dekompozycję
równoległą lub użytkownik może zmienić sugerowane parametry bloków przez
podanie liczby wyjść jednego bloku, którego wyjścia mają być zależne od naj
większej lub najmniejszej liczby argumentów. Drugi blok będzie zawierał pozo
stałe wyjścia.
Na ekranie po wprowadzeniu znakup w strategiach dekompozycji pojawia się
napis:
Change block size ? (y/n) :
Bez względu na to, czy wprowadzamy znak m lub p, pojawia się wydruk:
n u m b e r of outp u t s (<liczba_wyjsc):
Należy wprowadzić ustaloną liczbę wyjęć. Dopiero teraz program utworzy je
den blok zależny od najmniejszej lub największej liczby argumentów, a do drugie
go przypisze pozostałe wyjścia.
211
; Testovyanie przykładów pokazało, ze zmiana rozmiarów bloków z opcją 1 jest
dzo przydatna. Z reguły, w pierwszej kolejności, o ile jest to możliwe, chcemy
pełnić’) całkowicie bloki ROM lub odciąć te wyjścia, które bez dodatkowych
tómpozycji nie mogą być realizowane w pamięciach ROM.
. Opcja j r występuje tylko wtedy, gdy aktualnie rozpatiywany blok może być
llmieszczony w pamięci ROM M512 lub M4K. Wtedy przed znakiem „?” w miej
sce xxxx podany jest typ pamięci ROM oraz jej rozmiar. Użytkownik ma wtedy ro
zeznanie, czy opłacalne jest umieszczanie bloku w pamięci ROM. Na przykład, je-
fli blok mą rozmiar: 7 wejść i 1 wyjście, to wśród możliwych strategii pojawi się:
■OR s a v e R O M - M 5 1 2 ( 7 x 4 ) ?
■m
^użytkownik musi zadecydować, czy jest to opłacalne. Oczywiście zależy to od
kryteriów, jakie nałożone są na dany rozkład.
W programie przyjęto następujące oznaczenia dla różnych konfiguracji pamię-
i;i,M512 i M4K:
VI4K(12xl) blok o 12 wejściach i 1 wyjściu,
blok o 11 wejściach i 2 wyjściach,
|4K(10x4) blok o 10 wejściach i 4 wyjściach,
pK .(9x8) blok o 9 wejściach i 8 wyjściach,
P K (8 x l6 ) blok o 8 wejściach i 16 wyjściach,
$4K(7x32) blok o 7 wejściach i 32 wyjściach,
§4K(6x64) blok o 6 wejściach i 64 wyjściach,
f 1 2 ( 9 x D blok o 9 wejściach i 1 wyjściu,
g S 12(8x2) blok o 8 wejściach i 2 wyjściach,
p l 2(7x4) blok o 7 wejściach i 4 wyjściach,
12(6x8) blok o 6 wejściach i 8 wyjściach,
ci 12(5x16) blok o 5 wejściach i 16 wyjściach.
213
STRUKC JA OBSŁUGI
Logo systemu
Menu
[1] Decomposer-Demain-Cell
[2] Decomposer-Demaln-ROM
[q] Quit
Z
Przejście do menu Menu
dekompozera [1] Decomposer with table
wykonującego rozkład [2] Decomposer with FIR
na komórki [3] Show Network
[q] Quit
Wprowadzenie nazwy
3Z
Wprowadzenie nazwy
pliku z tablicą prawdy pliku z wektorem
i rozmiaru współczynników FIR
komórek FPGA i rozmiaru komórek FPGA
Wprowadzenie kolejno
rozmiarów blgków wraz
z numerami wyjść
należących do nich
Przykład 12.2
Wpływ dekompozycji zrównoważonej na ostateczny wynik syntezy w układzie
FPGA zostanie pokazany na przykładzie funkcji F z 10 wejściami i 2 wyjściami
(tablica 12.2), którą realizujemy w komórkach o 4 wejściach
i 1 wyjściu (w uproszczeniu oznaczanych (4, 1) - jest to roz Tablica 12.2
miar komórek w układzie Stratix firmy Altera).
Skoro funkcja F ma 10 wejść i 2 wyjścia, pierwszym .type fr
krokiem dekompozycji może być dekompozycja równoległa .i 10
lub szeregowa. Jednak w tym przypadku zastosujemy de .o 2
kompozycję szeregową. Algorytm wydziela funkcję G mają .p 25
cą wejściax u x3, x 4 i x6. Następny krok dotyczy więc funkcji 0101000000 00
7-wejściowej II, dla której ponownie jest wykonywana de
1110100100 00
kompozycja szeregowa. Otrzymujemy blok G o 4 wejściach
i 2 wyjściach (implementowany przez 2 komórki). Blok G 0010110000 10
ma na wejściu zmienne x0, x2, x 5 i x7. Są to pierwotne zmien 0101001000 10
ne wejściowe i na tym etapie nie jest zwiększona liczba po 1110101101 01
ziomów, co widać na lys. 12.4. W następnym kroku dokonu
0100010101 01
jemy dekompozycji równoległej. Tworzy ona dwa kompo
nenty, każdy o jednym wyjściu, natomiast odpowiednio o 4 1100010001 00
i 5 wejściach. Pierwszy komponent realizuje pojedyncza ko 0011101110 01
mórka. Drugi komponent podlega dwupoziomowej dekom 0001001110 01
pozycji szeregowej. Utworzona sieć może być zrealizowana
0110000110 01
za pomocą 7 komórek (4, 1). Liczba poziomów ścieżki kry
tycznej wynosi 3. 1110110010 10
Ta sama funkcja zdekomponowana tak, że najpierw wyko 0111100000 00
nana jest dekompozycja równoległa, jest realizowana w zu 0100011011 00
pełnie innej strukturze (rys. 12.5).
00101I I 010 01
Dekompozycja równoległa zastosowana bezpośrednio dla
funkcji F tworzy 2 komponenty o 6 wejściach i jednym wyj 0110001110 00
ściu. Każdy z nich podlega dwupoziomowej dekompozycji oi i o i i o i 11 11
Szeregowej. Dla pierwszego z nich możliwa do zastosowania 000100101I 11
jest rozłączna dekompozycja szeregowa z blokiem G t (4, 1).
1110001110 10
Drugi komponent może być również zdekomponowany sze
regowo, jednak liczba wyjść bloku G2 wynosi 2. Aby zmniej 001I001011 10
szyć łączną liczbę komórek, można zastosować dekompozy 0010011010 01
cję nierozłączną, uzyskując tylko 4 komórki. Tablice prawdy e.
tych komórek podane są w tablicy 12.3. Ta znacząca zmiana
struktury wynika z tego, że dekompozycja równoległa zmniejsza liczbę wejść obu
komponentów, prowadząc do uproszczenia końcowej implementacji.
215
Xg Xg X f X 3 X 4 Xe X 0 X 2 Xg X 7
X q X-, X 2 X g X 4 X g X g X 7 X g Xg
Vo Vi yo yi
Rys. 12.4. Dekompozycja funkcji F —strate Rys. 12.5. Dekompozycja funkcji F - stra
gia szeregowa tegia równoległa
216
ORKT
(rys. 12.6) sytuacja ta jest reprezentowana przez dwie strzałki wychodzące z wę
zła (7, 16), któiych węzłami końcowymi są (6, 1) oraz (7, 15). Mniejszy kompo
nent jest następnie poddawany dekompozycji szeregowej, której rezultatem są blo
ki G i H o wymiarach: 4 wejścia, jedno wyjście oraz 3 wejścia jedno wyjście, co
jest odpowiednio zapisane w nawiasach (4, 1), (3, 1) przy grocie strzałki wycho
dzącej z punktu (6, 1). Ponieważ oba komponenty mają wymiary zgodne z typową
komórką FPGA, do ich realizacji potrzebne są 2 komórki logiczne. Drugi kompo- i,
nent (7, 15) jest ponownie dekomponowany równolegle i w rezultacie uzyskujemy ; I
dwa nowe bloki o wymiarach (7, 7) i (7, 8). Do komponentu (7, 8) zastosowano. ; !j
dekompozycję szeregową której wynikiem są bloki logiczne G(4, 2), realizował-1f
ne na 2 komórkach logicznych oraz 7/(6, 8), bezpośrednio realizowalny na parnię- 1
ci ROM. W kolejnym kroku dekompozycji procedura dekompozycji równoległej |
rozbija blok (7, 7) na bloki (7, 3) i (7, 4). Najkorzystniej jest blok (7, 4) zrealizo- i
wać bezpośrednio na pamięci ROM. Drugi blok dekompozycji równoległej podle
ga dekompozycji szeregowej, w wyniku której powstają dwa komponenty: G(4, 3)
oraz 7/(6, 3). Pierwszy jest bezpośrednio realizowalny na 3 komórkach logicznych,
natomiast drugi jest dekomponowany równolegle na bloki (6, 1) oraz (5, 2). Te
ostatnie są dekomponowane szeregowo na komponenty bezpośrednio realizowalne
na komórkach. W rezultacie cała zdekomponowana struktura może być zbudowana
z 14 komórek logicznych i 2 pamięci ROM typu M512.
U. 16)
, (4, 31(6,3)
(6, 1) (5,2)
217
Jeś | jednak zmienimy rozmiar mniejszego komponentu w pierwszym kroku
om pozycji równoległej, a mianowicie przyjmiemy jego wymiar jako (7, 4),
ie(<), l),jaknarys. 12.6, to realizacja będzie wymagać zastosowania3 pamięci
12 i 9jkomórek. Schemat tej dekompozycji jest pokazany na rys. 12.7. Wresz-
,jej U zdecydujemy się zastosować dekompozycję szeregowąjuż w pierwszym
ku całego procesu, to uzyskamy realizację tego układu na 3 pamięciach ROM
s. 12.8). ;
(7, 16)
(7.4)
(4. 1) (5. 2)
(4, 1)(4, 2)
(7, 16)
i8
13.1. WSTĘP
219
'J&fti atrybutów ze zbioru A, zaś f —funkcją opisującą wartość atrybutu elemen-
dujx, tzn:
Jfjli''/! TJx A —> V
toraz
m V x e U ,\/a e A f(x , a) e Va
P|b
(gdzie Vajest zbiorem możliwych wartości atrybutu a.
»2. System informacyjny jest zwykle reprezentowany funkcją/, jako tablicąo wier
szach odpowiadających obiektom, kolumnach odpowiadających atrybutom, zaś ele-
■mcntami tablicy są wartości atrybutów. Na przykład, jeżeli obiektem jest KOWAL
IK I , atrybutem zaś wiek, to wartością tego atrybutu dla obiektu KOWALSKI może
gDyć np. MŁODY. Nasze rozważania ograniczymy do systemów informacyjnych
'^specyficznej strukturze, a mianowicie do tablic decyzyjnych, których zastosowa-
M&ia w informacyjnych systemach podejmowania i wspomagania decyzji, a także
Iw wielu zadaniach maszynowego uczenia, są coraz powszechniejsze,
iff System informacyjny, nazywany tablicą decyzyjną DT {Decision Table), jest
[używany jako opis określający, jakie decyzje należy podjąć, gdy spełnione zosta-
fną określone warunki.
Ig. Niech S = (U, A, V, f ) będzie systemem informacyjnym, a C,D c: A dwo-
fma podzbiorami atiybutów takimi, ż e C n f ) = 0 i C kj D = A, nazywanymi od
powiednio atrybutami warunku i decyzji. System informacyjny S z wyróżniony
m i atrybutami warunku i decyzji jest nazywany tablicą decyzyjną i oznaczany
P>T = (U, C, D, V ,f). Prosty przykład takiej tablicy jest podany w tablicy 13.1.
W, ■
'Mfr' ' '1
Tablica 13.1
Stan Klasa
Wiek Pleć Zawód
1 Atrybuty cywilny decyzyjna
' 20 Female Married Farm 1
** *2 'l 17 Female Single Farm 2
25 Male Single Business 3
•W< 'v I 16 Female Single Farm 2
'x$ ; 38 Male Single Business 3
p :
Ifj x6 1 25 Female Single Pleasure 4
fk •. Xy i 48 Female Single Pleasure 4
h.
!p r ' *8 : 20 Female Single Farm 2
' *x9 21 Male Married Business 5
Xia 22 Male Married Business 5
Jtll 23 Male Married Business 5
‘A*i2 24 Male Married Business 5
Każdy system informacyjny S = (U, A, V ,f) generuje podział Ps i każdy atry-
but a generuje podział Pa. Podziały te reprezentują, klasy równoważności relacji
IND na zbiorze U, zdefiniowanej następująco:
Niech B c A, x, y e U
p,= u p.
aełS
221
rtdad 13.1
czymy niezbędność atrybutów dla tablicy decyzyjnej z tablicy 13.2.
koro P(A - {er,}) < PD, to a xjest zbędny dla zależności funkcjonalnej F. Na-
iast a 3 jest atrybutem niezbędnym, gdyż P(A - {a3}) £ Pn i fakt ten prze-
a się niezgodnością wierszy tablicy po usunięciu atrybutu a3. Łatwo można
nież wykazać, że zbiory Cj = {au a3, a5, a6}, C 2 = {a2, a3, a5, a6} są reduk-
i , gdyż P(.ax, a3, a5, a 6 ) <, PD, a po usunięciu dowolnego a, ze zbioru Cj, nie-
ność ta nie będzie już spełniona. Uproszczona tablica systemu jest podana
blicy 13.3.
0 0 2 0 2 3 1 6 0 2 2 3 1
1 1 2 0 2 2 5 7 1 2 2 2 5
i 1 2 0 2 3 6 8 1 2 2 3 6
1 0 2 2 1 3 6 9 1 2 1 3 6
1 1 2 2 3 1 7 10 1 2 3 1 7
_ f 1, gdy aj e C,
’ }(), w przeciwnym przypadku
Rn, V * 0
R 'n F = 0
{aip ..., ty j e RED(F) wtedy i tylko wtedy, gdy a (| a ... a jest implikantem
prostym f P
Na tej podstawie łatwo można wyznaczyć redukty tego systemu: {a,, a3, a5, a6}
i {a2, a3, as, a6}.
223
* ?;(Age, 20) a (Marital_Status, Married) —> (Class, 1),
I®. (Age16) —^ (Class, 2),
(Age, 17) —> (Class, 2),
(Age, 20) a (Marital_Status, Single) —^ (Class, 2),
(Age, 25) a (Gender, Male) —> (Class, 3),
(Age, 38) —^ (Class, 3),
(Age, 25) a (Gender, Female) —> (Class, 4)
(Age, 48) —> (Class, 4),
‘ (Age,21)—>■ (Class, 5),
(Age, 22) —> (Class, 5),
(Age, 23) —> (Class, 5),
I (Age,24)—> (Class, 5).
Spośród wielu metod generowania reguł decyzyjnych dokładniej omówimy
metodę pozyskiwania wiedzy za pomocą generowania pokryć, wykazująca naj-
$'• więcej cech wspólnych z metodami minimalizacji funkcji boolowskich, aw szcze-
. gólności z metodami syntezy funkcji o wielowartościowych wejściach.
W metodzie pozyskiwania wiedzy za pomocą generowania pokryć, każdy
•obiekt należący do ustalonej klasy decyzji, zapisuje się za pomocą iloczynu lo-
•gicznego warunków:
: («i, v,) & (a2, v2) & ... & (a„, v„)
> = (a,, w,) & (a2, w2) & ... & (a„, w„)
ZADANIE 13.1
a b c d
1 0 0 0
0 1 0 0
0 1 0 1
1 1 0 1
1 1 1 1
i!.
Stąd minimalnymi pokryciami są: {a, b} oraz {b, d}, a wyznaczone na ich!
podstawie minimalne reguły: !,
225
■
Łatwo zauważyć, że reguła (a, 1) & (6, 0) —» (e, 1) pokrywa wszystkie reguły
pierwotne klasy e = 1. Postępując analogicznie dla pozostałych klas, znajdujemy
na przykład (jedno z możliwych rozwiązań):
Tablica Z.13.1b
a b e d e
1 0 - - i
0 - - - 0
- 1 - ! 0
2 2
226
Tablica porównań
1,9 a 2r a ^ - a T
7 ,9 CI2, CJ,f. C l C i f ,
2, 3 a.i,
4, 5 a.i,
Tablica porównań
1, 5
I, 10 2 ,4
5, 10 1 ,4 ,6
4 ,7 1, 2, 6
ZADANIE 13.4
Sondaż przed wyborami prezydenckimi w pew Tablica Z.13.4
nej republice przeprowadzono wg reguł decyzyj
nych uzyskanych z danych (tablica Z. 13.4) re U *2 *3 X, X3
prezentujących odpowiedzi na pytania (tak, nie), 1 0 0 0 0 1 tak
uzyskane od 10 respondentów. W tablicy tej od 2 0 0 0 1 0 tak
powiedziom tak przyporządkowano wartość 1, 3 0 1 0 1 0 tak
odpowiedziom nie — 0, przy jednoczesnym wy 4 0 1 1 1 1 tak
różnieniu zwolenników ocenianego kandydata 5 1 1 0 1 1 tak
na prezydenta atrybutem TAK, a przeciwników, 6 0 0 1 i 0 nie
atrybutem NIE. Obliczyć uogólnioną regułę de 7 0 1 0 0 0 nie
cyzyjną określającą zwolenników tego kandyda 8 0 1 1 0 0 nie
ta dla respondentów o dowolnych odpowie 9 1 0 0 0 1 nie
dziach na pytania sondażowe. 10 1 0 1 1 1 nie
Łyć U a b c d e
e. 1 2 2 2 2 0
2 2 2 0 2 0
3 1 1 0 2 0
4 1 1 0 1 1
5 0 0 0 0 1
6 1 1 1 1 2
7 0 1 0 0 2
8 0 I 0 1 2
ZADANIE 13.6
Dla podanej tablicy decyzyjnej (tablica Z. 13.6) Tablica Z.13.6
[
obliczyć wszystkie minimalne zbiory atrybu U a b d e
C / J?
tów. Przyjąć, że atrybutem ,‘,mjpzbędnym” jestf. 1 2 2 1 2 1 1 3
2 2 2 1 1 1 1 3
3 2 1 1 3 1 2 11
4 3 3 2 4 3 1 2
5 3 3 2 3 1 2 3
6 2 2 1 1 1 2 1
7 2 1 1 4 3 1 2
8 1 3 2 4 3 1 2
229
m m 13.7 ZADANIE 13.9
odanej tablicy decyzyjnej (tablica Z. 13.7) obliczyć wszystkie minimalne Dla podanej tablicy decyzyjnej (tablica Z. 13.9) obliczyć wszystkie minimalne zbio
' atrybutów. Przyjąć, że atrybutami „niezbędnymi” (tzw. rdzeniem) są: a , f ry atrybutów. Przyjąć, że atrybutami „niezbędnymi” (tzw. rdzeniem) są: a x, a6.
Tablica Z.13.9
Tablica Z.13.7
U ai a 2 o4 «5 a& d
U a b c ci e •/ g
1 1 0 0 0 0 0 0 1
1 0 0 0 0 0 0
2 0 0 i 1 0 0 1 2 0 0 1 1 0 0 1
3 1 1 1 2 3 1 2 2 0 1 1 2
2 2 0
4 0 1 1 0 0 1 2
4 0 1 1 0 0 1 2
5 0 1 0 2 0 I 3
5 0 1 0 2 0 1 3
6 1 2 2 3 2 0 2
6 1 2 2 3 2 0 2
7 1 2 2 2 0 1 1
7 1 2 2 2 0 1 1
8 0 0 1 1 0 1 3 8 0 0 1 1 0 1 3
9 0 1 0 3 2 0 4 9 0 1 0 3 2 0 4
10 2 2 2 3 2 0 4 10 2 2 2 3 2 0 4
[1] Adamski M., Karatkevich A., Węgrzyn M.: Design o f Embedded Control Systems. Springcr-
. Verlag 2005.
[2] Adamski ML, Barkalov A.: Architectural and Sequential Synthesis o f Digital Devices. Univer-
„, sity of Zielona Góra Press, 2006.
■;[3] Astola J.T., Stankovic R.S.: Fundamentals o f Switching Theory and Logic Design. Dordrecht:
1' ■J Springer, 2006.
r- [4] Ashar P., Devadas S., Newton A.R.: Sequential Logic Synthesis, Kluwer Academic Publishers,
Boston, MA, USA 1992.
[5] Barkalov A., Titarenko L.: Logic Synthesis fo r Compositional Microprogram Control Units.
Springer 2008.
[6] Borowik G., Falkowski B., ŁubaT.: Cost-Efficient Synthesis fo r Sequential Circuits Implemen
ted Using Embedded Memory Blocks o f FPGA's. Proc. of 10th IEEE Workshop on Design and
,f. Diagnostics o f Electronic Circuits and Systems, April 2007.
m Borowik G.: Improved State Encoding fo r FSM Implementation in FPGA Structures with Em-
j* bedded Memory Blocks. Electronics and Telecommunications Quarterly, vol. 54, No 1, March
■ 2008, s. 9-28,
[8] Brayton R., I-Iachtel G.D., McMullen C., Sangiovanni-Vincentelli A.: Logic Minimization Al
gorithms fo r VLSI Synthesis. Kluwer Academic Publishers, Boston 1984.
[9] Brzozowski J.A., Luba T.: Decomposition o f Boolean Functions Specified by Cubes. In: Jour-
' nal o f Multiple-Valued Logic and Soft Computing, vol. 9, Old City Publishing Inc., Philadel-
s phia 2003
[10] Chang S.C., Marek-Sadowska M., Hwang T.T.: Technology Mapping fo r TLU FPGAs Based
on Decomposition o f Binary Decision Diagrams. IEEE Trans, on CAD, vol. 15, No 10, Octo
ber, 1996.
[11] Cong J., Yan K.: Synthesis fo r FPGAs with embedded memory blocks. In: Proc. o f the 2000
ACM/SIGDA 8th International Symposium on Field Programmable Gate Arrays, ACM Press
NY, Monterey, California 2000.
[12] Deniziak S.: Metodologia szybkiego prototypowania systemów cyfrowych.WPK, Kraków
2005. " j
[13] De Micheli G.: Synthesis and Optimization o f Digital Circuits. McGraw-Hill, New York, 1994.
Również tłumaczenie polskie: Synteza i optymalizacja układów cyfrowych. WNT, Warszawa
1998.
[14] Hassoun S., Sasao T., Brayton R. (Ed.): Logic Synthesis and Verification. Kluwer Academic
Publishers, New York 2002.
[ 15] Hrynkiewicz E., Kania D.: Metody syntezy dedykowane dla struktur FPGA typu tablicowego.
Kwartalnik Elektroniki i Telekomunikacji, t. 50, z. 3, 2004, s. 325-342.
w • h i ' J m u jd iip w j 1■
[16] Kania D.: Synteza logiczna przeznaczona dla matrycowych struktur programowalnych typu
PAL. Politechnika Śląska, Zeszyty Naukowe nr 1619, Gliwice 2004.
[17] Luba T. (red.). Rawski M., Toniaszewicz P., Zbierzchowski B.: Synteza układów cyfrowych.
WKiŁ, Warszawa 2003.
[18] Luba T.: Multi-level logic synthesis based on decomposition. Microprocessors and Microsys
tems, vol. 18, No 8, 1994.
[19] Luba T.: Synteza układów logicznych. Oficyna Wydawnicza Politechniki Warszawskiej, War
szawa 2005.
[20] Luba T.(red.), Rawski M., Toniaszewicz R, Zbierzchowski B.: Programowalne układy prze
twarzania sygnałów i informacji. WKiŁ, Warszawa 2008.
[21] Nowicka M., ŁubaT., Selvaraj H.: Multilevel decomposition strategies in decomposition-ba
sed algorithms and tools. In: Proc. IFIP Workshop on Logic and Architecture Synthesis, Gre
noble 1997, s. 129-136.
[22] Ojrzcńska-Wójter D., Jasiński K.: Układy FPGA. Możliwości powszechnego zastosowania.
Przegląd Telekomunikacyjny i Wiadomości Telekomunikacyjne, nr 2-3, 2008.
[23] Rawski M., Selvaraj I-I., Falkowski B..I., Luba T.: Chapter XIP. Significance o f Logic Synthe
sis in FPGA-Based Design o f Image and Signal Processing Systems. In: Pattern Recognition
Technologies and Applications-. Recent Advanced, April 2008.
[24] Rawski M., Falkowski B.J., Luba T.: Logic Synthesis Method fo r FPGAs with Embedded Me
mory Blocks. 1SCAS 2008, 2008 IEEE International Symposium on Circuits and Systems, pu
blication on CD, Seattle, Washington, USA, 18-21 May 2008.
[25] Rawski M., ŁubaT., Jachna Z., Toniaszewicz R: The influence o f functional decomposition on
modern digital design process. Chapter 17, Design of Embedded Control Systems, M. Adam
ski, A. Karatkevich, M. Węgrzyn (Eds.), Springer 2005.
[26] Rutkowski L.: Metody i techniki sztucznej inteligencji. Wydawnictwo Naukowe PWN, War
szawa 2005.
[27] Sapiecha P., Selvaraj I-I., Pleban M.: Decomposition o f Boolean Relations and Functions in Lo
gic Synthesis and Data Analysis, In: W. Ziarko, Y. Yao (Eds.), Rough Sets and Current Trends
in Computing, Springer Verlag, Berlin 2001, s. 487-494,.
[28] Sasao T.: Switching Theoty fo r Logic Synthesis. Kluwer Academic Publishers, 1999.
[29] Scholl C.: Functional Decomposition with Application to FPGA Synthesis. Kluwer Academic
Publishers, Boston 2001.
[30] Stańczyk U., Cyran K., Pochopień B.: Theory o f logic circuits - volume I, Fundamental issu
es. Publishers of the Silesian University o f Technology, Gliwice 2007.
[31] Stańczyk U., Cyran K., Pochppień B.: Theory o f logic circuits —volume II, Circuit design and
analysis. Publishers of the Silesian University o f Technology, Gliwice 2007.
[32] Yanushkevich S, Shmerko V, Lyshevski S.: Logic Design o f NanolCs. CRC Press, 2004.
[33] Barkalov A., Węgrzyn M.: Design o f Control Units with Programmable Logic, University of
Zielona Góra Press, 2006.
[34] Zieliński C.: Podstawy projektowania układów cyfrowych. PWN, Warszawa 2003.
[35] Tyszer J., Mrugalski G.„f?ógiel'A., Czysz p .: Technika cyfrowa. Zbiór zadań z rozwiązaniami.
Wydawnictwo BTC, Legiónowo 2010.
[36] Tyszer J., Mrugalski G.: Układy cyfrowe. Zbiór zadań z rozwiązaniami. Wydawnictwo Poli
techniki Poznańskiej, Poznań 2002.
233
SKOROWIDZ
't
235