Download as pdf or txt
Download as pdf or txt
You are on page 1of 225

Układy logiczne

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

Pro jekt okładki


Danuta Czudek-Puchalska

Skład komputerowy
Beata Zalewska-Kraśniewska
Andrzej Kowalczyk

© Copyright by Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2011

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

Księgarnia internetowa Oficyny Wydawniczej PW www.wydawnictwopw.pl


teł.: 22 825-75-18, 22 234-75-03; fax 22 234-70-60; e-mail: oficyna@wpw.pw.edu.pl

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

4. MINIMALIZACJA FUNKCJI BOOLOWSKICH.................................................................. 37


4.1. Podstawy teoretyczne....................................................................................................... 37
4.2. Zadania z rozwiązaniami.................................................................................................. 50
4.3. Zadania do samodzielnego rozwiązania.......................................................................... 53

5. REDUKCJA ARGUMENTOWI DEKOMPOZYCJA RÓWNOLEGŁA............................. 57


5.1. Podstawy teoretyczne....................................................................................................... 57
5.2. Zadania z rozwiązaniami.................................................................................................. 63
5.3. Zadania do samodzielnego rozwiązania.......................................................................... 75

6. DEKOMPOZYCJA FUNKCJONALNA - METODA KLASYCZNA.................................. 78


6.1. Podstawy teoretyczne ....................................................................................................... 78
6.2. Zadania z rozwiązaniami.................................................................................................. 82
6.3. Zadania do samodzielnego rozwiązania...................................... 85

7. DEKOMPOZYCJA FUNKCJONALNA METODĄ RACHUNKU PODZIAŁÓW ............ 88


7.1. Dekompozycja szeregowa - model podstawowy............................................................ 88
7.2. Pojęcie r-przydatności i dekompozycja nierozłączna..................................................... 94
7.3. Zadania z rozwiązaniami .................................................................................................. 98
7.4. Zadania do samodzielnego rozwiązania.......................................................................... 117

8. UKŁADY SEKWENCYJNE .....................................................................................................121


8.1. Podstawy teoretyczne.........................................................................................................121
8.2. Zadania z rozwiązaniami....................................................................................................131
8.3. Zadania do samodzielnego rozwiązania............................................................................134

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

10. SYNTEZA STRUKTURALNA UKŁADÓW SEKWENCYJNYCH...................................... 152


10.1. Podstawy teoretyczne.........................................................................................................152
10.2. Zadania z rozwiązaniami .................................................................................................. 162
10.3. Zadania do samodzielnego rozwiązania ......... 175

11. UKŁADY MIKROPROGRAMOWANE................................................................................... 178


11.1. Podstawy teoretyczne.......................................................................................................178
11.2. Dekodery mikrorozkazów................................................................................................. 185
11.3. Zadania do samodzielnego rozwiązania ...........................................................................188

12. UNIWERSYTECKIE SYSTEMY SYNTEZY LOGICZNEJ...................................................196


12.1. Informacje ogólne ..............................................................................................................196
12.2. System ESPRESSO ......................................................................................................... 197
12.3. System DEMAIN.............................................................................................................. 205
12.4. Przykłady zastosowań....................................................................................................... 215

13. METODY SYNTEZY LOGICZNEJ W ANALIZIE DANYCH...............................................219


13.1. Wstęp .................................................................................................................................219
13.2. Podstawowe pojęcia z zakresu systemów informacyjnych ............................................219
13.3. Generacja reguł decyzyjnych............................................................................................223
13.4. Zadania z rozwiązaniami ..................................................................................................225
13.5. Zadania do samodzielnego rozwiązania .......................................................................... 229

Literatura............................................................................................................................................ 232
Skorowidz.......................................................................................................................................... 234
*

PRZEDMOWA

W dynamicznym rozwoju techniki cyfrowej obserwuje się ogromne zmiany


w metodach projektowania układów i systemów cyfrowych oraz w technologiach
ich wytwarzania. Technologia dostarcza inżynierom konstruktorom systemów
cyfrowych układy scalone o złożoności milionów bramek logicznych. O nowej
jakości mikroelektroniki i jej ogromnym wpływie na rozwój techniki cyfrowej
decydują nie tylko liczba dostępnych tranzystorów lub bramek w układzie cyfro- ;
wym, ale również nowe technologie wytwarzania specjalizowanych układów sca- j
lonych, a w szczególności układów programowalnych PLD/FPGA, o złożoności
sięgającej milionów bramek i niemożliwej do niedawna technice reprogramowa-
nia i rekonfiguracji.
Konsekwencją rozwoju technologii są gruntowne zmiany w nauczaniu techniki
cyfrowej, do tej poiy tradycyjnie opartym na wykorzystywaniu bramek logicznych, |
tablic Karnaugha i klasycznej syntezie strukturalnej, polegającej na manualnym j
składaniu systemu cyfrowego z wyodrębnionych bloków funkcjonalnych. Nowe '
metody syntezy logicznej, takie jak redukcja argumentów, minimalizacja symbo- |
liczna, synteza wielopoziomowa, dekompozycja funkcjonalna, znalazły już swoje |
odbicie w reformowanych programach studiów wyższych uczelni technicznych. Są j
one niezwykle skuteczne w projektowaniu układów cyfrowych, a ich stosowanie
pozwala zmniejszyć złożoność sprzętową układów nawet o rząd wielkości. Wspo- 1
magają one nawet tak zaawansowane procedury syntezy, jak np. program ESPRES­
SO czy powszechnie stosowane narzędzia komercyjne, takie jak system Quartus.
Skuteczność tych metod można wykazać nawet na najprostszych przykładach. Na
przykład, prosta funkcja boolowska 10-argumentowa, której specyfikację podano
w tablicy 1.1 pracy : T. Luba (red.), M. Rawski, P. Tomaszewicz, B. Zbierzchowski,
Programowalne układy przetwarzania sygnałów i informacji. Wydawnictwa Ko­
munikacji i Łączności, Warszawa 2008, syntezowana za pośrednictwem systemu
Quartus może być zrealizowana na 23 komórkach logicznych układu Stratix (Alte­
ra). Ta sama funkcja poddana zaawansowanym procedurom syntezy logicznej może
być zrealizowana na 2 (dwóch!) komórkach logicznych. Do uzyskania tak prostej
struktury trzeba zastosować dwie procedury syntezy logicznej: procedurę redukcji
argumentów oraz procedurę dekompozycji funkcjonalnej.

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

.. iiiTiii ' i ' iHłlii.a'


wać tylko najlepsze produkty, do których realizacji wykorzystane będą zaawanso­
wane metody syntezy, niejednokrotnie występujące wyłącznie w specjalistycznym
oprogramowaniu uniwersyteckim. Duża złożoność struktur programowalnych
(w szczególności FPGA), a także ich nietypowe konstrukcje (komórki), spowodo­
wały wzrost znaczenia zaawansowanych procedur syntezy logicznej.
Wpływ zaawansowanych procedur syntezy logicznej na jakość implemen­
tacji sprzętowych układów cyfrowych jest najbardziej znaczący w algorytmach '
wykorzystujących struktury FPGA typu LUT. Struktury takie są powszechnie ;
stosowane w układach przetwarzania informacji i sygnałów, np. w algorytmach :
kryptograficznych, w filtrach cyfrowych, układach transformacji folkowej oraz j
w układach wykorzystujących arytmetykę rozproszoną. Zatem stosowanie zaawan­
sowanych procedur syntezy logicznej —dostępnych głównie w oprogramowaniu
uniwersyteckim —niejednokrotnie może się przyczynić do sukcesu rynkowego wie­
lu urządzeń cyfrowych, w szczególności tych realizowanych w technologii układów
programowalnych przez użytkownika FPLD.
Całość zagadnień syntezy logicznej obejmuje syntezę układów kombina- i
cyjnych oraz sekwencyjnych. Synteza logiczna układów kombinacyjnych zwy-
kle dzielona jest na dwupoziomową (przede wszystkim dla układów PLA i PAL)
i wielopoziomową (dla implementacji w strukturach Gate Array (GA), Standard
Celi (SC) i FPGA). Aktualne i istotne w projektowaniu układów cyfrowych me­
tody syntezy logicznej układów sekwencyjnych obejmują przede wszystkim za­
gadnienia minimalizacji licżby stanów, kodowania oraz syntezę kombinacyjną.
Optymalizacja układów dwupoziomowych - której podstawę stanowią al­
gorytmy minimalizacji funkcji boolowskich - jest istotna z wielu powodów. Po
pierwsze, jest bezpośrednią metodą optymalizacji do implementacji z programo­
walnymi matrycami logicznymi typu PLA i PAL. Po drugie, pozwala uprościć
wyrażenia boolowskie opisujące układ, co jest istotne w dalszym procesie syntezy
wielopoziomowej. W szczególności, moduł logiczny specyfikowany dwupozio­
mowo może być komponentem dowolnej, wielopoziomowej sieci logicznej i jego
optymalizacja korzystnie wpływa na parametry całego układu. Z tych powodów
optymalizacja dwupoziomowa jest kluczowa również w syntezie wielopoziomo­
wej, a niektóre metody minimalizacji funkcji boolowskich —jak na przykład me­
toda Quine’a-McCluskeya —powstały jeszcze w latach 50. poprzedniego stulecia.
Niestety metody te okazały się nieprzydatne w syntezie układów o złożoności mi­
lionów bramek logicznych.
Dlatego powstały nowe, całkowicie odmienne metody syntezy dwupozio­
mowej. Znalazły zastosowanie przede wszystkim w klasycznym już algorytmie
ESPRESSO [4]. Można je uznać za wystarczająco skuteczne do redukcji skład­
ników sumo-iloczynowych dla matryc PLA typu AND-OR. Znajdują one mini­
malne lub suboptymalne rozwiązania nawet dla bardzo skomplikowanych zadań.
Syntezie mogą być poddawane zespoły nie w pełni określonych funkcji boolow-

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

2.1. ALGEBRA BOOLE’A

Algebra Boole’a jest modelem matematycznym operacji na sygnałach binar­


nych reprezentujących sygnały elektryczne o dwóch wartościach: 0 lub 1. War-j
tości te są przyporządkowane dwom poziomom napięcia wytwarzanego przezj
(elektroniczne) układy logiczne. Najczęściej przyjmuje się, że napięciu wyso-j
kiemu jest przyporządkowana wartość sygnału 1, natomiast napięciu niskiemui
- wartość 0. ■
Algebra Boole’a jest algebrą z trzema operacjami na dwuwartościowych argu­
mentach, które przyjmują wartości O il. Rezultaty tych operacji są także dwuwar-
tościowe. Te trzy operacje tó :.
■ suma logiczna (suma boolowska, alternatywa),
■ iloczyn logiczny (iloczyn boolowski, koniunkcja),
■ negacja (inwersja).
Dwie pierwsze operacje są wieloargumentowe, a)
a trzecia jest jednoargumentowa.
Operacja sumy logicznej (OR) jest zdefiniowana
następująco: jeżeli co najmniej jeden z argumentów
jest równy 1, to wynik jest równy 1, zatem suma lo­
b)
giczna jest równa 0 tylko wtedy, gdy wszystkie ar­
gumenty są równe 0. Działania te zapisujemy nastę­
pująco:
0+ 0= 0
c)
0+1 = 1
1+0=1
1 + 1= 1
gdzie + oznacza operację OR. Operację OR realizu- Rys. 2.1. Bramki logiczne:
je bramka OR o symbolu graficznym jak na rys. 2.1 a. a) OR, b) AND, c) NOT
Operacja iloczynu logicznego (AND) jest zdefiniowana następująco: wynik
iloczynu jest równy 1 wtedy i tylko wtedy, gdy wszystkie argumenty przyjmują
wartość 1, co zapisujemy w następujący sposób:
j 0 -0 = 0
i o-i=o

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

dbc + abd + abc + abc + abc =


= dbc + ab (c + c) + ab(c +c) =
= dbc + ab + ab =
= dbc + a(b +b) =
= abc + a =
(korzystamy z własności a + abc = a(l + bc) - a)
= a + abc + abc = a + bc

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.

Relacja zgodności umożliwia wprowadzenie pojęcia maksymalnych klas


zgodności (MKZ).
Zbiór par określających relację zgodności nazywa się zbiorem par zgodnych.
Pary zgodne umożliwiają wyznaczenie maksymalnych zbiorów zgodnych.
Zbiór V= {v,, ..., vp) nazywamy maksymalnym zbiorem zgodności (maksy­
malną klasą zgodności), jeżeli każda para v,, v, wzięta z tego zbioru jest zgodna
oraz nie istnieje żaden inny zbiór elementów zgodnych V zawierający V.

17
METODA WG PAR SPRZECZNYCH

W celu obliczania klik metodą maksymalnych klas zgodności (MKZ) należy:


; 1. Zapisać pary SPRZECZNE (vt, vj), (vk, vt), (vp, v(/), ... w postaci koniunkcji
! dwuskładnikowych sum (v( + v/)(vlt + v/)(v/J, + v(/) ...
2. Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia
| | boolowskiego typu suma iloczynów vjvjvk + vpvqvrvs + ...
jj | Wtedy MKZ są uzupełnieniami zbiorów reprezentowanych przez składniki
iloczynowe tego wyrażenia.

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

... ■.aiitlUtelihi:.i..... :. 1tiiV1l,< ' ^


2. Koniunkcję dwuskładnikowych sum przekształcić do minimalnego wyrażenia
boolowskiego typu suma iloczynów + v^v,.vv+ ...
Wtedy MZN są uzupełnieniami zbiorów reprezentowanych przez składniki
iloczynowe tego wyrażenia.

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

= v2v3v6 + V ,V 2V3VS + v3v4vsv6 + v2v4v6 + =


= v2v3vfi + v,v2v3v5 + v3v4v5v6 + v2v4v6 =
= v2v3v6 + v2v4v6 + v,v2v3v5 + v3v4v5v6
Stąd maksymalnymi zbiorami niezależnymi są: {v,, v4, v5}, {v,, v3, v5}, {v4, v6},
{v„ v2}.
Kolorowaniem grafu nazywamy przyporządkowanie kolorów do wierzchoł­
ków grafu w taki sposób, aby żadna para wierzchołków sąsiednich nie miała ta­
kiego samego koloru. Przykład prawidłowo po­
kolorowanego grafu pokazany jest na rys. 2.5.
Podstawowym problemem jest obliczenie
najmniejszej liczby kolorów zapewniającej pra­
widłowe pokolorowanie grafu. Jest to tzw. liczba
chromatyczna grafu. Korzystając z pojęcia mak­
symalnych zbiorów niezależnych, można algo­
rytm kolorowania grafu sprowadzić do wykona­
nia następujących obliczeń:,
1. Obliczyć wszystkie maksymalne zbiory nieza­
leżne MZN. Uzyskuje się wtedy rodzinę mak­
symalnych zbiorów niezależnych (RMZN). R^s' 2;5, Kolorowanie grafu
2. Obliczyć pokrycie zbioru wierzchołków V
minimalną liczbą maksymalnych zbiorów niezależnych (tzw. minimalne po­
krycie). Minimalne pokrycie reprezentuje minimalny zbiór kolorów.
3. W uzyskanym pokryciu usunąć powtarzające się elementy.

19
Przykład 2.4

Graf z rys. 2.6a pokolorować minimalną liczbą kolorów.


W tym celu najpierw należy obliczyć maksymalne zbiory niezależne: {v,, v4, v5},
{v,, v3, v5}, {v4, v6}, {V|, v2}. Następnie tworzy się minimalnąpodrodżinę pokrywają-
cązbiór V —{v,,..., v6): {v„ v3, vs), {v4, v6}, {v,, v2}. Po usunięciu powtarzających się
wierzchołków uzyskuje się zbioiy rozłączne reprezentujące kolorowanie: (V|, v3, v5},
{v4, v6}, {v2}, ćo przedstawiono na lys. 2.6b..

Rys. 2.6. Graf i jego kolorowanie

Na zakończenie podamy jeszcze jedną —wygodną do stosowania w prakty­


ce - metodę obliczania maksymalnych klas zgodności.

METODA WG PAR ZGODNYCH

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}

2.3. RACHUNEK PODZIAŁÓW

Podziałem II zbioru S nazywamy rodzinę rozłącznych podzbiorów zbioru S, któ


rych suma równa się S.
Niech S= {1, 2, 3, 4, 5, 6, 7, 8, 9}. Wówczas:
t, = {{1,2}, {3, 4}, {5, 6}, {7, 8, 9}},
t 2 = {{1,6}, {2, 3}, {4, 5}, {7, 8}, {9}}
są podziałami zbioru S. Dla uproszczenia zapisów stosujemy zapis:

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)

x, + x2 = (1, 2,3,4,5, 6; 7,8,9)

x3 -x, =(172; 3; 4; 5 3 ; 7 3 ; 9) = x3

x3 +x, = (I3 ; 7 3 ; 7 3 ; 7,8,9) = x,

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:

n , | n 2 ={(1, 2)(5); (3, 6)(4)}

2.4. ZADANIA Z ROZWIĄZANIAMI

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

(A + B + C)(A + B + D)(A + B + E)(A + D + E)(A + C)


przedstawić w postaci sumy iloczynów. Skorzystać ze wzoru: (x + y)(x + z) =
= xz + x y .

Rozwiązanie

(A + B + Ć)(A + B + D)(A + B + E)(A + D + E)(A + C) =


= (A + B + CDE)(AC + A(D + E) = (A + B + CDE)(AC + A(D + E)) =
= A + B + ĆDE)(AC + AD + AE) = AC + ABC + ABD + JlBE + AĆDE =
= A C + ABD + ABE + AĆDE

23

im
ZADANIE 2.3

W zbiorze S= {1, 2, 3, 4, 5, 6, 7, 8} następujące pary są zgodne: (1, 3), (1, 7),


(2, 5), (2, 8), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (5, 7), (5, 8), (6, 7), (6, 8). Obliczyć
(sensowną metodą) wszystkie maksymalne klasy zgodności.

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}

W ostatnim kroku algoiytmu uzyskuje się następujące maksymalne klasy


zgodności:

MKZ - {1, 3}, {1, 7}, {5, 7}, {6, 7}, {6, 8}, {2, 5, 8}, {3, 4, 5}, {3, 4, 6}

Spróbujmy dodatkowo sprawdzić wynik metodą par sprzecznych. W tym celu


wyznaczamy pary sprzeczne (na podstawie danych par zgodnych), z nich tworzy­
my formułę boolowską i odpowiednio ją przekształcamy:

(1 +2)( 1+4)( 1+5)( 1+6)(2+3)(2+4)(2+6)(2+7)(3+7)(3+8)(4+7)(4+8)(5+6)(7+8) =


= (1 + 24568)(2 + 3467)(7 + 34)(8 + 34)(5 + 6)(7 + 8) =
= (12 + 13467 + 24568 + 2345678)(78 + 34)(5 + 6)(7 + 8) =
= (12 + 13467 + 24568 + 2345678)(78 + 78 + 347 + 348)(5 + 6) =
= (12+13467+24568+2345678)(578 + 678 + 3457 + 3467 + 3458 + 3468) =
= 12578 + 12678 + 123457 + -1-23467 + 123458 + 123468 +4345678 +
+ -13467-8 + 134567-+ 13467 + 4345678 + 434678 + 245678 + 245678 +
+ -2345678 + 2345678 + 234568 + 234568

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

Ostatecznie uzyskaliśmy identyczne maksymalne klasy zgodności: ! |


M K Z={346}, {345}, {68}, {67}, {57}, {258}, {13}, {17} ! J
r-l ’ j
ZADANIE 2.4 |
Dla relacji R, w której zbiorem par zgodnych jest E = {(<?,, e2), (e„ e3), (e„ e4), • I
(e„ e5), (e„ e6), (e„ e7), (e2, e3), (e2, es), (e2, e6), (e2, e7), (<?3,e4), (e3, e5), (e3, e6),
(e3, e8), (e4, e6), (e4, e7), (e4, eg), (e5, e6), (es, e7), (e5, e8), (e6, e7), (e6, e8), (e7, e8)},
obliczyć maksymalne klasy zgodności:
a) metodą wg par zgodnych,
b) metodą wg par sprzecznych.
Rozwiązanie

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

2.5. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

ZADANIE 2.5 [36]

Za pomocą przekształceń algebraicznych znajdź najprostszą postać następujących


wyrażeń logicznych:
a) xz + x y z + yz,
b) (a + b)(a + c)(a + c),
c) ab + ac + bc + ab + ac.
I
! ZADANIE 2.6 [36]
r 1i
r : Stosując przekształcenia algebraiczne, znajdź najprostszą postać następujących
wyrażeń logicznych:

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.7 [36]

Znajdź negację następujących wyrażeń logicznych:


a) ab + ab,
b) (ab + c)d + e,
c) (x + y + z)(x + J)(x + y).

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

3.1. PODSTAWY TEORETYCZNE

Podstawą teoretyczną techniki cyfrowej są układy logiczne. Funkcjonalnie układy


logiczne dzieli się na układy kombinacyjne i układy sekwencyjne. W niniejszym
./ rozdziale skupimy się na układach kombinacyjnych.
Układ kombinacyjny jest podstawowym układem logicznym umożliwiającym
realizację funkcji boolowskich. Układ kombinacyjny konstruuje się z elementów
logicznych po to, aby realizować funkcje lub ich zespoły opisujące bardziej skom­
plikowane układy cyfrowe. Dlatego rozważania o układach kombinacyjnych roz­
poczynamy od pojęcia funkcji boolowskiej.
Pojęcie funkcji boolowskiej jest pojęciem podstawowym, umożliwiającym
. modelowanie zjawisk fizycznych przedstawianych jako odwzorowanie ciągów
(wektorów) binarnych należących do zbioru X w ciągi binarne (wektoiy) ze zbio-
. ru Y, gdzie zbiory X (Y) są podzbiorami ra-krotnego, (w-krotnego) iloczynu lcarte-
• zjańskiego zbioru B = (0, 1}.
Formalnie funkcją boolowską zmiennych binarnych x u ...,x n nazywamy od­
wzorowanie:
F :X ^Y , gdzie X ^ B " , Y ę B'n
Jeżeli X = B n, to funkcję/nazywam y zupełną; w przeciwnym przypadku jest
to funkcja niezupełna, zwana również funkcją nie w pełni określoną.
j Najczęściej stosowanymi reprezentacjami funkcji boolowskich są tablice
" prawdy oraz formuły (wyrażenia) boolowskie.
Funkcja / może być przedstawiona w postaci tablicy prawdy. Jest to tabli­
ca o n + 1 kolumnach i 2" wierszach. W kolejnych wierszach są zapisywane
wszystkie wartości ciągu x u xn, czyi i wszystkie wektory x. W ostatniej kolum­
nie podana jest wartość y przyporządkowywana danemu wektorowi lub „ - ’’Jeżeli
funkcja dlatego wektora nie jest określona. Wektory są numerowane, przy czym
wartość i podana z lewej strony w dodatkowej kolumnie jest dziesiętnym odpo-

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

Na przykład, przeliczenia liczb binarnych 0101 oraz 1010 na liczby dziesiętne


dokonujemy następująco:

(0101)B = 0 • 23 + 1 • 22 + 0 • 2 1 + 1 • 2° = 5d
(1010)B = 1 • 23 + 0 • 22 + 1 • 2 1+ 0 • 2° = 10D

Przykłady tablicowej reprezentacji funkcji boolowskiej podane są w tabli­


cy 3. la (funkcja zupełna) i tablicy 3.1 b —funkcja niezupełna.

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

Tablice te specyfikują funkcje boolowskie, których wektory wejściowe są do­


datkowo określone liczbami dziesiętnymi. Stąd pomysł, aby specyfikacje funkcji
boolowskich podawać w; uproszczonej formie. Dla funkcji z tablicy 3.la odpo­
wiedni zapis powinien mieć postać:

/ = E(l, 3, 5, 6, 7)

Natomiast funkcję z tablicy 3.Ib należy zapisać z dodatkowym specyfikowa-


niem wektorów nieokreślonych:

/= 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:

f = x tx2x3 + x,x2x3 + xlx2x3 + xlx2x3 + x tx2x3

a jej realizacja na bramkach AND, OR, NOT pokazana jest na rys. 3.1.i

i W układzie kombinacyjnym z rys. 3.1 funkcjaf realizowana na jego wyjściu,


reprezentuje odwzorowanie z tablicy prawdy, co łatwo sprawdzić, wprowadzając
na wejścia układu odpowiednie wektory binarne i obliczając wartość uzyskaną na
wyjściu y. Na przykład, dla = x2 = 0, x 3 = 1 na wyjściu bramki AND1 pojawi
się sygnał o wartości 1 i w rezultacie wyjściey przyjmie wartość 1. Natomiast dla
Xj = x2 = x3 = 0 na wyjściach wszystkich bramek AND będzie 0, a więc wyjście y
przyjmie wartość 0, co jest zgodne z tablicą prawdy.
I Niekwestionowaną zaletą formuł boolowskich jest możliwość ich upraszcza­
nia, a co za tym idzie, możliwość realizacji oszczędniejszych z punktu widzenia
liczby bramek. Zasady formalne upraszczania formuł boolowskich związane są
z prawami i własnościami algebry Boole’a. Stosując prawa algebry Boole’a, po­
przednio podane wyrażenie na f można uprościć w sposób podany w następują-
rhi przykładzie.
Przykład 3.1

f = X|X2X3 + x,x2x3 + x,x2x3 + x,x2x3 + x,x2x3 =


= x,x2x3 + x,x2x3 + x,x2x3 + x,x2x3 + x,x2x3 + x,x2x3
= X\X3(x2 + x2) + x,x3(x2 -+*x2) H- x,x2(xj + x 3) =
= X|X3 + XjX3 + X| x2 =
= x3(x, + x,) + x1x2 =
= x3 + x,x2

Ostatecznie wyrażenie to można zrealizować w układzie kombinacyjnym, któ- ,


rego struktura —znacznie prostsza od poprzedniej realizacji —jest pokazana na :
rys. 3.Ib.
Sens fizyczny minimalizacji i jej ogromne znaczenie praktyczne wynika z fak­
tu, że oba układy: pierwotny i zminimalizowany, działają identycznie. Zatem j
upraszczając wyrażenia boolowskie, możemy jednocześnie uprościć ich realiza- '
cję, np. zmniejszyć liczbę zastosowanych bramek, co decyduje o kosztach reali­
zacji i tym samym jest głównym czynnikiem zwiększającym konkurencyjność na­
szego produktu na rynku.
Zasygnalizowany tu proces upraszczania wyrażeń boolowskich ma ogromne
znaczenie praktyczne. Opracowano dla niego wiele zaawansowanych metod syn- :
tezy, które ze względów technicznych nazywa się metodami minimalizacjifunkcji
boolowskich. Wiele z nich doczekało się realizacji w postaci zaawansowanych na- j
rzędzi komputerowych i stanowi podstawę nowoczesnej syntezy logicznej.
Niech wektorowi w = (x,, ..., xf, ..., x„) odpowiada wyrażenie zapisane w for-
mie iloczynu zmiennych prostych i zanegowanych:

gdzie:

Oznacza to, że składowej 0 wektora odpowiada w iloczynie zmienna zanego­


wana, a składowej 1 - zmienna prosta. Iloczyn taki nazywamy iloczynem pełnym,
gdyż zawiera on wszystkie zmienne. Iloczyn pełny przyjmuje wartość I tylko dla
tych wektorów w tablicy prawdy funkcji, dla których wartość funkcji jest równa
1; dla pozostałych wektorów jego wartość wynosi 0. Iloczyn pełny będziemy tak­
że oznaczać Pt.

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:

f = X lX 2 X 3 + X tX 2X 3 + X^X-j + X|X2X3 + x,x?x3

Postępowanie dualne prowadzi do tzw. kanonicznej postaci iloczynu. Wektorowi


wt = (x,, ..., xjz ..., x„), gdzief(w ,) = 0, odpowiada następujące suma logiczna:

+ ... + x ! + ... + x \“

gdzie:

„ fx, d la e ,= 0
x J =< J J
J dla = 1

Oznacza to, że składowej 0 wektora odpowiada w sumie zmienna prosta,


a składowej 1 - zmienna zanegowana. Suma taka nazywa się sumą pełną gdyż
zawiera wszystkie zmienne w postaci prostej lub zanegowanej. Suma pełna przyj­
muje wartość 0 dla wektora w>(; dla innych wektorów wartość jej wynosi 1. Sumę
pełną będziemy także oznaczać S,.
Zbiorowi wektorów {*„ ę {0,1}", gdzie/(x,) = 0 dla każdego /,
odpowiada iloczyn:

F ( x „ ...,x ,,) = n ( ^ + /(/))


1=0

Wyrażenie to jest iloczynem zawierającym wszystkie sumy pełne z dodanymi


wartościami funkcji dla kombinacji i. Te sumy S„ dla których/(/) = 1, znikają po-
'wpir-%f.«'n

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:

/ = (x, + x2 + Xj )(x, + x2 + X 3 )(x, + x2 + x3)


W tym przypadku synteza funkcji sprowadza się do wybrania wierszy, dla któ­
rych wartość funkcji wynosi 0, utworzenia dla każdego takiego wiersza sumy peł­
nej oraz iloczynu sum pełnych.
W tablicy 3.2 zestawiono dla przykładu wszystkie iloczyny pełne i sumy peł­
ne dla trzech zmiennych x lx2x3.

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ą

Kolejne iloczyny odpowiadają/ = 0, 1, 2, 5, 8, 9, 10.


Natomiast dla funkcji^ = fl[6, 8, 10, 14, (1, 3, 4, 9, 11, 12)] kanoniczna po­
stać iloczynu jest następująca:
f l = (*| +X2 +X3 +Xli )(S| + x2 + x3 + x4)(J, + x2 + x3 +xĄ)(x, + x2 +x3 +x4)

Kolejne sumy odpowiadają / = 6, 8, 10, 14.

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:

j ; y —JCjJC2 •xxx3 •x2x3


j jZ kolei realizację OR-AND uzyskujemy z wyrażenia typu iloczyn sum.
Na rysunku 3.4a pokazano realizację OR-AND funkcji opisanej wyrażeniem
j)| = (x, + x2)(x, + Xj )(x2 + x3) •
ITablica 3.4 a) ___
bU j y — y= ^b
a b a +b ct-b a® b
b)
0 0 1 1 0
0 1 0 1 1
1 0 0 1 1
I 1 0 0 0
NOR NAND EXOR
Rys. 3.2. Symbole bramek: a) NOR, b)NAND
i c) EXOR

34

,LŚ0*kiiWfc
Przekształcenie tego wyrażenia wg prawa De Morgana

y = xx 4- x2 + x} + x3 + x2 4- x3■

bezpośrednio prowadzi do realizacji NOR, którą podano na rys. 3.4b.

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

3.2. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

ZADANIE 3.1

Podać tablice prawdy dla następujących funkcji boolowskich:


a) F = xy + x y z , . . . . ':/
b) F = A + B(C + D ),

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

Nad zagadnieniem minimalizacji funkcji boolowskich od początku lat pięćdzie­


siątych XX wieku były prowadzone intensywne prace badawcze. Później, w la­
tach 70. pojawienie się układów scalonych średniej i wielkiej skali integracji
spowodowało wyraźne zmniejszenie zainteresowania tym problemem. Ponow­
ny wzrost zainteresowania minimalizacją funkcji boolowskich pojawił się w la­
tach 80. Bezpośrednią przyczyną była możliwość realizacji układów logicznych
w strukturach scalonych o złożoności milionów bramek logicznych.
Wypracowano wiele metod minimalizacji funkcji boolowskich. Można je po­
dzielić na metody:
■ graficzne,
* analityczne,
■ komputerowe.
Najbardziej znaną i powszechnie stosowaną metodą graficzną jest metoda ta­
blic Karnaugha. Klasyczną metodą analitycznąjest metoda Quine’a-McCluskeya.
Obie metody opracowane zastały w połowie lat 50. Należy jednak zdawać sobie
sprawę z tego, że inne były Wymagania stawiane układom logicznym wtedy, gdy
były one konstruowane z pojedynczych tranzystorów (lata 50.) i wtedy, gdy cyfro­
we układy scalone zwierały kilka bramek (lata 70.). Wobec dzisiejszych milionów
bramek zawartych w jednym, reprogramowalnym i rekonfigurowalnym module
scalonym, jest to postęp,ilościowy, który musiał całkowicie zmienić - i ciągle
jeszcze zmienia - metody Syntezy układów logicznych. Dlatego powstały nowe,
całkowicie odmienne metody syntezy dwupoziomowej. Przede wszystkim znala­
zły one zastosowanie w klasycznym już algoiytmie ESPRESSO, opracowanym
na Uniwersytecie Kalifornijskim w Berkeley w latach 80. Znajdują one minimal­
ne lub suboptymalne rozwiązania nawet dla bardzo skomplikowanych zadań.
Syntezie mogą być poddawane zespofy nie w pełni określonych funkcji boolow­
skich, o wielowartościowych wejściach i o setkach argumentów. Czas obliczeń

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

Mimo swoich niedoskonałości metoda Karnaugha jest najczęściej wykładaną me­


todą minimalizacji funkcji boolowskich. Paradoksalnie, to co jest jej w a d ą - pro-
istota-jest jednocześnie jej zaletą, gdyż można szybko ją „opanować” i stosować
w.obliczeniach ręcznych. Należy jednak pamiętać, że w praktyce projektowania
inżynierskiego metoda tablic Karnaugha jest absolutnie nieprzydatna, gdyż zakres
jej zastosowań kończy się na funkcjach 6-7 argumentów, a typowe zadania pralc-
ivf-7ne nnernin funkcjami o kilkudziesięciu argumentach.
Karnaugha każda kratka odpowiedniej tablicy (zwanej tablicą
powiada wektorowi zmiennych binarnych. Można więc powie-
;, że ciąg wartości tych zmiennych tworzy adres kratki. Kratki sąponumero-
wane w taki sposób, że numer / jest liczbą dziesiętną odpowiadającą kombinacji
zmiennych (wektorowi zero-jedynkowemu), traktowanej jako liczba dwójkowa.
W poszczególnych kratkach wpisane są wartości funkcji, tj. 0 lub 1 przyjmowane
przez funkcję dla tej kombinacji lub symbol jeżeli funkcja nie jest określona
(rys. 4.1). W tablicy Karnaugha pełnym iloczynom, różniącym się tylko o nega­
cję, przyporządkowane są leżące obok siebie pola tablicy (sąsiednie kratki), które
się łączy (skleja) odpowiednią pętelką. Korzysta się przy tym z faktu, że dla do­
wolnego A zachodzi równość Ax + Ax = A .
Do uzyskania efektu sąsiedztwa współrzędne pól opisuje się tzw. kodem
Graya. Jest to ciąg wektorów binarnych, w którym każde dwa sąsiednie wektory
różnią się wyłącznie na jednej pozycji. Przykłady kodu Graya dla dwóch i trzech
zmiennych podane są w tablicy 4.1.
Tablica 4.1
0 1
0 o 0 0 0
00 o 0 I 0 0 1
0 1 I
o 0 1 o
1 1 o
XiX2X3 + X!X2X3 = x,x2 0 1
Rys. 4.1. Zasada sklejania
0 o

38

►ytŚB:
ft*-

Minimalizacja metodą Karnaugha polega na wykonaniu dwóch czynności:


1) wpisaniu funkcji do tablicy,
2) zakreśleniu pętelek i skojarzeniu z nimi iloczynów zmiennych prostych i zane­
gowanych.

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:

xlx2x3 + x {x2x3 (4.1)


natomiast dużej:

x]x2x3 + xtx2x3 + x lx2x3 -i- xxx2x3 (4.2)

Tablica 4.2 Tablica 4.3

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

Stosując zasady algebry Boole’a, można wyrażenie (4.1) uprościć do iloczynu


XjX2, natomiast wyrażenie (4.2) do jednej zmiennej x 3, zatem/ = x xx2 + x 3.
Wpisywanie funkcji do tablicy Karnaugha ułatwia numeracja kratek. Na ry­
sunku 4.2 podajemy przykłady tablic Karnaugha z ponumerowanymi kratkami.
Wzorce tych tablic ułatwiają znajdowanie kratek odpowiadających wektorom
w tablicy prawdy. '

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)

Niestety zakreślanie pętelek i kojarzenieznimi odpowiednich iloczynówjesttrud-


niejsze. Proces ten omówimy na bardziej skomplikowanym przykładzie (rys. 4.3),
W którym dla poszczególnych kopii tablicy Karnaugha trzech zmiennych zaznacza­
my pola odpowiadające pojedynczym zmiennym (prostym i zanegowanym). Po­
krywanie się tych pól określa odpowiedni iloczyn zmiennych prostych lub zanego­
wanych. Przykładowo górna pionowa pętelka na tablicy z rys. 4.3a leży w obszarze
Wspólnym dla obszaru zmiennej x2 oraz x3. Rozumując, podobnie dla następnych
pętelek stwierdzamy, że minimalna postać tej funkcji / = x2x3 + x,x2 + jc,3c3 .
\a) b)
XlX2\’ 0 1 XixX
* 0 1
X
0 0 0 0 0 0 0 0
0 1 0 0 1 1 0 *1
1 1 aa 1 1 1'
*1
1 0 0 1 0 1 0 -
Rys. 4.3. Ilustracja minimalizacji funkcji booiowskiej

Minimalizacja funkcji za pomocą tablic Karnaugha sprowadza się do wykona­


nia czynności opisanych w następującym algorytmie.

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:

f = (x,+ x3)(x, + x2)(x2 + X4)(x2 + x3 +x4)


Pojęciem podstawowym w procesie minimalizacji
jest pojęcie implikantu.
Implikant funkcji boolowskiej/jest to iloczyn li­
terałów (czyli zmiennych prostych lub zanegowanych)
o następującej własności: dla wszystkich kombinacji
wartości zmiennych, dla których implikant jest równy
jedności, funkcja/jest również równa jedności.

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.4. R ealizacja funkcji z tablicy 4.7

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/

P rzykład sugeruje, że w realizacji zespołu funkcji stosowanie minimalnej


sum y im plikantów prostych nie zaw sze prowadzi do rozwiązania z minimalnym
kosztem . K olejny przykład ilustruje, w jaki sposób należy dobierać implikanty ze­
społu funkcji, aby uzyskać rozw iązanie z minimalnym kosztem.
i
Przykład 4.5
N ależy zm inim alizow ać zespój funkcji:
y , = 2 (2 , 3, 5, 7, 8, 9, lo ' U , 13, 15)
y 2 = S(2, 3, 5, 6, 7, 10, 11, 14, 15)
y 3 = Z (6 ,7 , 8, 9, 13, 1*&M£)
>i
W tablicach 4.8a, b, c ;podane są w ykresy Karnaugha poszczególnych funkcji,
odpow iednio: y i , y 2 >yj- Pól zakreślehiu ^pętelek” obejmujących implikanty proste
uzyskujem y następyijące w yrażenia boolowskie:
y x= ab +bd + be
y 2 = c + abd
y 3 = be + acd + abc

Tablica 4.8

Realizacja łych wyrażeń wymaga zastosowania 7 bramek AND i 3 bramek OR.


Znacznie lepszą realizację uzyskamy, dokonując minimalizacji w sposób
przedstawiony w tablicach 4.9.

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

Realizacja tych wyrażeń łącznie, mimo pozornie większego skomplikowania


dla poszczególnych funkcji, jest oszczędniejsza niż poprzednio; całość wymaga
bowiem zastosowania 5 bramek AND i trzech bramek OR.

44
METODA EKSPANSJI

Metoda Karnaugha, jakkolwiek powszechnie stosowana w nauczaniu układów lo­


gicznych, jest metodą nieprzydatną do algorytmicznych obliczeń komputero­
wych. Na potrzeby komputerowych systemów projektowania układów cyfrowych
opracowano wiele nowych metod minimalizacji funkcji boolowskich. Najbar­
dziej znaną i uznawaną za najskuteczniejszą jest metoda ESPRESSO, opracowa­
na w latach 80. na Uniwersytecie Kalifornijskim w Berkeley. I
Metoda ESPRESSO polega na iteracyjnym stosowaniu różnych procedur,1
z których najważniejsze to ekspansja {Expand), pokrycie nienadmiarowe (Irre-
dundant Cover) i uzupełnienie (Complement). Są to bardzo złożone procedury,
których omówienie przekracza zakres niniejszego skiyptu. Ich pełny opis moż­
na znaleźć w książce Logic Minimization Algorithms fo r VLSI Synthesis [8] lub
w podręczniku Synteza układów logicznych [19].
Najprostszą i najogólniejszą procedurą metody ESPRESSO jest procedura
ekspansji. Sama procedura ekspansji wykorzystuje znaną od dawna metodę po­
większania mintermu x funkcji / w taki sposób, aby uzyskany implikant nie za­
wierał żadnego mintermu należącego do zbioru wektorów zerowych tej funkcji.
Ponieważ właściwie powiększony minterm może być implikantem prostym funk­
cji, odpowiednio zmodyfikowana metoda ekspansji może być stosowana autono­
micznie jako niezależna metoda minimalizacji funkcji boolowskich. Metoda ta
została wykorzystana w programie PANDOR. Program ten jest udostępniony na
stronie internetowej www.zpt.tele.pw.edu.pl w katalogu OPROGRAMOWANIE.
Pojęciem podstawowym w metodzie ekspansji jest - podobnie jak w innych
metodach minimalizacji —pojęcie kostki. Kostkami będziemy nazywać ciągi ele­
mentów ze zbioru {0, 1, *} i oznaczać nieindeksowanymi literami, na przykład
K, a ich składowe —literami z indeksami, na przykład kt. W celu uproszczenia
oznaczeń kostki (i wektory) będziemy zapisywać bez przecinków. Na przykład,
(*, 1,* ,0,1) zapiszemy jako. (*1*01).
Kostka jest uproszczonym zapisem zbioru wektorów binarnych. Kostka
K = (0* 1*),reprezentuje zbiór wektorów:
0010
0011
0110
0111
Kostka reprezentuje .również niepełny iloczyn zmiennych binarnych, na przy-
, . - „ _ V' ^JjL ' ,, - _
kład, kostkę K = 0* 1* mokną zapisać jako x,x3 .
W metodzie ekspansją podobnie ja)c w standardzie ESPRESSO, zbiór wek­
torów (ogólnie kostek), dla których funkcja/ = 1, oznacza się jako F. Natomiast
zbiór tych wektorów (kostek), dla których funkcja/= 0, oznacza się R.

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 /

1 0 0 0 1 jącym na kostkach zbiorów F i R,


0 1 0

1 0 1 1 1 a jej celem jest uzyskanie dla danej


1 0 0

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

liczbą pozycji o wartości *) i niepo-


K 1 0 0 0 1 1 0 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:

B (k,R ) = [b(ll 1 < i< \R \, \ < j < n

w której każdy element b,j e {0, 1} jest definiowany następująco:

1, jeśli k. = 1 oraz r.. = 0 lub k. = 0 oraz r.. = 1


h(i 0, w pozostałych przypadkach

W przypadku funkcji opisanej wektorami binarnymi macierz blokująca dla da­


nej kostki k e F powstaje z macierzy R przez zanegowanie tych kolumn R, któ­
rych pozycje są wyznaczone przez pozycje jedynek w kostce k e F .

Przykład 4.6

Wyznaczymy macierz blokującą dla funkcji f= ( F , R) zadanej w tablicy 4.10


i kostki k v Jak wynika z tej tablicy, zbiory F i R są opisane macierzami:

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

Pokryciem kolumnowym macierzy B = [óy/], i e {1, e { 1 , 77},jest


zbiór L c {1, 77} taki, że dla każdego i s {1, w} istnieje j e L, dla które­
go ^ h i ­
pokrycie kolumnowe jest pokryciem, w którym elementami pokrywanymi są
wiersze B, a pokrywającymi - kolumny tej macierzy. Jednak brak formalnych ele­
mentów pokrywanych i pokrywających skłania do wprowadzenia nazwy „pokry­
cie kolumnowe”.

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

Oznaczając kolumny macierzy B kolejno jako Z, do L7, możemy zapisać po­


szczególne wiersze tej macięrzy oznaczeniami tych kolumn, które w danym wier­
szu m a ją„l”. Na przykład, wiersz pierwszy zapiszemy jako L6, L7, drugi jako L3,
Lą, itd. Traktując kolumny L, jako zmienne boolowskie, tworzymy iloczyn sum
kolumn poszczególnych wierszy:
(L6 + L-j) (Z3 + L ą) (L%~kZ4), (Z2 + Z3 + Ly)
i ’
Następnie iloczyn sum przekształcamy do wyrażenia boolowskiego typu suma
iloczynów:
(.Lą + L2)(Lą + L3)(fy 1%L6)(L7 + L2 + L3) =
= (Lą + L2L3)(L7 + Zg(Z2 + Z3)) —
= (Lą + L2L3)(L7 + L2L q + L3L6) *= I
= LąL7 + L 2LąL6 & L 3LąL6 + L2L3L7 + L2L3L6

47
Składniki tego wyrażenia reprezentują zbiory minimalnego pokrycia kolum­
nowego:

Macierz blokująca B (k,R ) pozwala wyznaczyć ekspansję kostki k, oznaczaną


k+(L, k), w sposób następujący:

(4.3)
*, w pozostałych przypadkach

Zapis ten oznacza, że wszystkie składowe kostki k należące do L nie ulegają


zmianie, natomiast składowe nienależące do L przyjmują wartość *.
Można wykazać, że k'(L, k) jest implikantem funkcji/ = (F, R). W szczegól­
ności k+(L, k) jest implikantem prostym, gdy Z jest minimalnym pokryciem ko­
lumnowym macierzy B(k, R). Wykorzystując pojęcie macierzy blokującej, można
obliczyć implikanty proste dla poszczególnych kostek zbioru F.

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

I\ —Xj, I3 ~ XąX2 , 1$ ~ X$, Ij —x3x^

I2 —x2x6, I ą = x2x3x6 , !(,—x(,x2

Spośród obliczonych implikantów prostych należy teraz wyselekcjonować mi­


nimalny podzbiór implikantów pokrywający wszystkie wektory prawdziwe reali­
zowanej funkcji. Proces selekcji wykonuje się za pośrednictwem tzw. tablicy im­
plikantów prostych.
W celu utworzenia tablicy implikantów prostych skorzystamy z relacji pokry­
cia dla kostek:

; K ę K! wtedy i tylko wtedy, gdy k, - k\ lub k\ = * dla 1 < / < n

g d z i e (£„ ...,£„) i K ' = {k[,...,k'n) .

48
« M l* r ;11
KJ.J"-! | TT

Na tej podstawie dla każdego obliczonego w poprzednim etapie implikanta


(ale interpretowanego jako kostka) wyznaczamy wszystkie kostki zbioru F pokry­
wane przez ten implikant. Przykładowo:

/, = 3c, a k {

12 —x2x6 2 k u k5

13 = xĄx7 a k2, k3, kĄ

Tablica implikantów prostych jest to tablica elementów binarnych 0 lub 1


o liczbie wierszy równej liczbie kostek zbioru F oraz liczbie kolumn równej licz
bie wyznaczonych implikantów prostych funkcji f
Tablicę implikantów prostych konstruujemy w następujący sposób. Jeśli im
plikant /, pokrywa kostkę kt, to na przecięciu wiersza kt z kolumną/, wpisujemy 1
w przeciwnym przypadku wpisujemy 0. Ta­
blicę implikantów prostych dla funkcji/ po­ Tablica 4.11
kazano w tablicy 4.11.
Tablica implikantów prostych umożliwia A A A A A A A
wybór (selekcję) takiego minimalnego zbioru /cl i i 0 0 0 0 0
implikantów, który pokrywa wszystkie kostki K 0 0 1 1 0 0 0
funkcji pierwotnej. K 0 0 1 0 1 1 1
Minimalny zbiór implikantów prostych K 0 0 1 0 0 0 0
reprezentujących funkcję f można wyzna­ K 0 1 0 0 0 0 1
czyć, obliczając minimalne pokrycie kolum­
nowe tablicy implikantów prostych. W tym celu zapisujemy wiersze tablicy w po
staci zbiorów kolumn wskazywanych przez pozycje jedynek w danym wierszu:

/„ //„ ,
h ,h , ^2> ^7
I3; -A>A>’ ^7
h
i '“••'A' *
/ 2.A

Następnie, zauważająg, że implikant I3 tworzy zbiór jednoelementowy, usu­


wamy wiersze z tym implikkntem. Po takiej redukcji wierszy spostrzegamy, ż e /2
jest wspólny dla obu wierszy. Zatem minimalne pokrycie tworzą implikanty
czyli f = xĄxn + x2x6 . 1 !

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

a) / = 2(0, 1, 2, 9, 11, 12, 13, 27, 28, 29)


Ponieważ największą liczbą dziesiętną w zbiorze jest 29 (w zapisie binarnym
11101), więc wiemy, że funkcja ma 5 argumentów wejściowych. Tworzymy ta­
blicę Karnaugha 3/2 (tablica Z.4.1) i wpisujemy w odpowiednie współrzędne
(liczby dziesiętne ze zbioru w zapisie dwójkowym) wartości funkcji 1, w pozo­
stałe 0.
Po zakreśleniu „pętelek” uzyskujemy następujące wyrażenie boolowskie:

f = X{X2X3X$ + xxx3x4x5 + x2x3x4 + x2x3x4x5

b) / = 2[4, 5, 10, 11, 15, 18, 20, 24, 26, 30, 31, (9, 12, 14, 16, 19, 21, 25)]

Z tablicy Karnaugha (tablica Z.4.2) otrzymujemy wyrażenie boolowskie: ;

f —x2x3x4 + x xx2x4 + x,x2x3x4 + xxx2x3x4 + xxx2x3x4 + x2x4x5


1

Tablica Z.4.1 Tablica Z.4.2

\_
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:

. Y ~(A + B +C + D){A + B + C + D)(A + B + C + D)(A + B)(A + D)

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

Funkcję boolowską opisaną zbiorami F i R zminimalizować metodą ekspansji.

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:

Y = (A + B + C + D)(A + B + Ć + D)(A + B + C + D)(A + B)(A + D)

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.

Ic,,: 0 1 0 1 1 '0 1 1 0 0'


i! v 0 1 0 1 0
'■Ai1 R= 0 0 0 1 0
1
I 1 1 1 0 1
_1 0 0 0 1_
i
ZADANIE 4.11
| Funkcję/opisaną zbiorami F = {2, 6, 10, 12, 23, 27}, R = {1,5, 16, 20, 30}, zmi-
11nimalizować systemątyczną metodą ekspansji.

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:

'1, jeśli a > b


y = ■0, jeśli a <b
nieokreślone. jeśli a = ó

jeśli a > b
I 1’
(o. jeśli a < b

Założyć, że do realizacji można użyć tylko elementów AND, OR, NOT.

56
5
5.1. PODSTAWY TEORETYCZNE

Z praktycznego punktu widzenia istotne są takie realizacje funkcji boolowskich,


w których argumenty je, ,...,*,. , stanowią podzbiór zbioru X = {xu ...,x,,j, gdyż
uzyskuje się wtedy bezpośrednio realizację /7-argumentowej funkcji/w układzie
kombinacyjnym o t wejściach ( t < ń ) , co ma znaczenie w syntezie na typowych
modułach P L D i w strukturach F P G A . Istotne jest również to, że (przy dużych ri)
zmniejszenie liczby argumentów z n do t upraszcza ewentualnie dalsze zabiegi
optymalizacyjne, gdyż zmniejsza wymiary zadań dla procesu minimalizacji i de­
kompozycji. W szczególności redukcja argumentów stanowi podstawę dekompo­
zycji równoległej, którą omówimy pod koniec niniejszego rozdziału.
Realizację funkcji f = f ( x ,, ...., x„) taką, że:
f = h(xli,...,x i ) , t < n
nazywać będziemy minimalno-argumentową realizacją funkcji / wtedy i tylko
wtedy, gdy nie istnieje zbiór zmiennych:
! {*/, > } G X , taki że / = h(xJt,..., xJ t)
Zbiór ,..., Xj będziemy oznaczać X r
Niech a,e B " , b e B " . Utwórzmy dla wektorów a, b wyrażenie boolowskie:
■ 5(fl, b ) = V jc ,

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

RAf = /\? > ( n h \ (5.1)


I
gdzie iloczyn logiczny A. jest brany po wszystkich parach a , b: f(a ) 5* /(/)).
Można wykazać, że dla każdego rozwiązania równania RA^= 1:
.]' RAf(pcit,...,x l ) = 1 (5.2)
U• !
| i istnieje funkcja h o argumentach xh,..., , dla której / O , , .... xn) = h(x^ ,... ,xit).
) n ' ! Do udowodnienia powyższego wystarczy zauważyć, że jeżeli
| i RAf (Xj,..., x,') = 1, to dla każdej pary wektorów a, b, takich że/( « ) wek­
tory (a,,..., a ,) oraz (b^ ,...,bi ) różnią się co najmniej jedną składową.
'■ j Jeżeli zbiór zmiennych X , = xi ,...,x l spełniających równanie (5.2) jest zbio­
rem o możliwie najmniejszej liczności, to funkcja h jest nazywana minimalno-ar-
gumentową realizacją funkcji f . Zbiór X, jest również nazywany reduktem.
Z konstrukcji wyrażenia RA( wynika, że jest to koniunkcja czynników o posta­
ci (xit v ... v x, ). Rozwiązanie równania RAf — 1 jest więc typowym problemem
pokrycia, a odpowiednie obliczenia można uprościć, wykorzystując pojęcie ele­
mentu zasadniczego, którego rolę w redukcji argumentów będzie spełniać omó­
wione dalej pojęcie zmiennej niezbędnej.
j Rozważmy funkcję/z tablicy 5.1 a. Postaramy się zmniejszyć liczbę argumen­
tów tej funkcji, usuwając z niej po jednej zmiennej. Usuwając z tablicy 5. la ko­
lumnę odpowiadającą zmiennej x 4, uzyskujemy tablicę, w której dwa wiersze,
, o numerach 2 i 8 (tablica 5.Ib) są identyczne, ale wierszom tym odpowiadająróż-
j j ! re jWartości funkcji. Tablica jest więc sprzeczna. Stąd wniosek, że argumentu x4
i sunąć nie można.
I , ! i
! ' ;
Tablica 5.1

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

Natomiast usuwając z tablicy 5.la zmienną x3, uzyskujemy tablicę, w której


wszystkie wiersze —dla tych samych wartości funkcji —są różne. Można nawet usu­
nąć jeszcze zmienne Xi i x5 (tablica 5.1c), a łączny rezultat tych usunięć nie spowodu­
je pojawienia się sprzeczności. Spostrzeżenie to prowadzi do następującej definicji.

58

•iHitliWi ......... . i .liiltClj, . i'


Oznaczmy przez Tf( X - {x,}) tablicę specyfikacji funkcj if uzyskaną z 7} przez
usunięcie kolumny xh gdzie 7^-jest tablicą funkcji f
t Zmiennąxt nazywamy zmienną niezbędną, jeżeli tablica specyfikacji Tf (X —{x(})
jest sprzeczna.
Zmiennymi niezbędnymi funkcji f z tablicy 5.la są x4 oraz x6, gdyż tablice
Tf ( X - {x4}), Tf ( X - {x6}) są sprzeczne.
Zmienna x, jest zmienną niezbędną funkcji/ ( x x, ..., x„), jeśli istnieją wektory
a, b:f(a ) 1=f(b ) takie, że istnieje i, dla którego at & b, oraz dla każdego j ^ i af = bf.
Przyjmując do opisu funkcji f : B n —> {0, 1,—} podziały na zbiorze K ponume­
rowanych wektorów z B '\ możemy podane wcześniej spostrzeżenia wyrazić ana­
litycznie. Oznaczmy przez P(x,) podział na K realizowany zmienną a przez Pf
—podział wyjściowy funkcji f . Wtedy warunek na minimalno-argumentowąreali­
zację funkcji f można sprawdzić za pomocą nierówności:

P(xh)-P (xi2)-...-P {Xii)<Pf (5.3)

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:

p , = {5; 1,2, 3, 4, 6, 7, 8,9}


p 2 = {1,2,6, 7, 8; 3, 4, 5,9}
p 3 = {1,3,5, 6; 2 ,4 , 7, 8,9}

Pa = {1,4,5, 6, 7, 8,9; 2,1},


P 5 = {7;. 1,2, 3,.4,5,6, .8,9}
P 6 = {1,5,7, 9; 2 ,3 ,4 , 6,8}
i

P 7 = {2,3,6, 7.,8; 1,4', 5(9}

pr 0 ,2 ,3 , 4; 5, 6, 7, 8,9}

Jak już stwierdziliśmy;'imiennymi niezbędnymi tej funkcji są x4, x6. Dlatego


najpierw wyznaczymy iloczyn P = PĄ-P6:
" l /
Blokami iloczynu P — (2?,, B2, B3) są B x = {1, 5, 7, 9}, B2 - {4, 6 , 8 },
B3 = {2, 3}. W dalszych obliczeniach pomijamy blok B3, gdyż B3jest zawarty
w jednym bloku podziału Pf. K olejną czynnością jest obliczenie podziału ilo­
razowego P ą ' P 6\ Pf.
i
i
■Pe I P /= { ( 1 X 5 , 7 , 9 ) ; ( 4 X 6 , 8 ) ; ( 2 , 3 ) } (5.4) ś
I Obliczony podział ilorazowy pozwala wyznaczyć czynniki wyrażenia boolow-
skiego RA/ . Wyznaczane są one dla każdej pary mintermówp, q, takiej ż c p i q na­
leżą do jednego bloku iloczynu P a ‘P6, ale do różnych bloków podziału P f co ła­
two odczytać z podziału ilorazowego, biorąc pary p , q z różnych elementów tego
podziału. Przez elementy rozumiemy tu podzbioiy ograniczone różnymi nawiasa­
mi. Dla każdej tale wyznaczonej pary p , q sprawdzamy, na jakich pozycjach, czy­
li: dla jakich zmiennych, różnią się odpowiadające im wektory w tablicy prawdy.
Na przykład, dla pary p = l, q = 5 odpowiednie wektory w tablicy prawdy funk­
c j i / (tablica 5.la) różnią się na pozycjach x x, x2, a więc odpowiadający tej parze
zbiór „różnic” C = {xu x2}. Zestawienie zmiennych, dla których różnią się pary
p, q, będziemy nazywać tablicą porównali. Po odczytaniu z podziału ilorazowego
(5.4) parp , q otrzymujemy następująca listę porównań:
.1,5 *1,*2
1.7 x3>x5’ X1
1,9 x 2, X 3

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 :

i f = X ]X 2X 1 + X|X2X4 + x, x, 0 + x,x4x6 + x7x9


W a rto p o d k re ś lić , ż e ro z w ią z a n ie w y z n a c z o n e z a p o m o c ą p ro g r a m u E S P R E S ­

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 :

Oi> •••>>’,„) = F(X|, ( 5 .5 )

je s t p o d z ia łe n i z b io ru { y y, ..., y m}' n a ta k ie ro z łą c z n e p o d z b io iy F ,, ..., Yt , ..., Yk ,

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 -

i p o w ie d n io X y, . . . , X h . . . , X k, g d z ie X, ę {x,, ..., x„}.

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

k *2 *3 *> x<. *7 y, y2 X, y, y(, Dla funkcji F z tabli­


1 0 0 0 1 1 1 0 0 0 0 0 0 - 0 cy 5.3 reduktami poszcze­
5.2. ZADANIA Z ROZWIĄZANIAMI
2 1 0 1 0 0 0 0 0 0 0 - 1 0 1 gólnych (pojedynczych)
3 1 0 1 1 1 0 0 0 0 1 1 0 1 1 funkcji są odpowiednio: |
ŻĄDANIE 5.1
4 1 1 1 1 0 1 0 0 0 1 1 1 1 0 y x: {xx, x 2, x 6}
Dla funkcji .Popisanej tablicąZ.5.1 zmien­ Tablica Z.5.1
5 1 0 1 0 1 0 0 0 0 0 0 - 0 1
y 2: {x3, x4} nymi niezbędnymi są x4 oraz x6. Należy
6 0 0 1 I 1 0 0 0 1 1 0 1 0 0 X, X, X, X4 x s X6 x7 F
k
y 3: {xx, x 2,x 4, x 5, x8}, wyznaczyć minimalne zbiory argumen­ 1
7 1 1 1 0 0 0 0 0 1 0 - 0 1 0 1 0 i 1 0 1 0 0
{xx, x 2, x 4, x 6, x s} tów, od których zależy ta funkcja. 1
8 1 0 1 1 0 1 0 0 1 1 0 0 - 1 2 1 1 1 0 0 1 1
9 1 0 1 1 0 1 1 0 - 1 0 1 - 1 y 4. {xx, x 2, x 3,x 4, x7) 1 0 Q 1 0 1 0 1
Rozwiązanie 3
0
10 0 0 0 1 1 1 0 1 0 0 1 0 - 1 y 5- {*i> x2, x4} 4 1 1 0 1 1 0 0
P4 = (1,2, 5, 7,8,10, jt],,;;j2;v3747679) 1 0 1 0 0 1 1 1
11 0 0 0 1 1 0 0 1 - - 1 0 0 0 y 6: {xx, x2, x6, x s} 5
0 1 1 1 0 0 0 1
6
P6 = (1,4, 6,8,10; 2,3,5,7 ,9 ,1 1 ,1 2 ) 1 0 0 0 0 1 0 0
7
Zatem rozsądnie jest funkcji G, przyporządkować wyjścia y x, y 3, y 6, a funkcji 1 1 0 0 1 o 1 1
8
G2 wyjścia y2, y 4, y 5 (rys. 5.2), gdyż wtedy uzyska się minimalne zbiory argumen­ Pp = (1,2,3, 5, 6,8j->9,1,1,12; 4 /7 ^ 0 ) 1 1 0 1 1 1 0 1
9
tów dla komponentów G, i G2 dekompozycji równoległej funkcji F, a mianowicie 1 0 0 0 0 0 1 0
10
{xx,x 2,x 4,x 6,x%} dla G x oraz {xx, x2, x3, x4, x7} dla G2. Tablice funkcji G, i G2 są po­ P ,-P 6\Pf T " ' ' 11 0 1 1 o 1 1 0 1
dane w tablicach 5.4a i b. = (1, 8)(10); (2,5, U,12)(7); (4 )(6);(V ^ 0 1 1 0 0 1 0 1
12

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

Zapisujemy iloczyn sum wyrażeń i kontynuujemy obliczenia w uproszczonym


zapisie wg indeksów.
(xĄ+ x2)(x4 + x 3)(x3 + x6)(x] + x2 + x3) = (x4 + x2x3)(x3 + x xx6 + x2x6) =
, = x3x4 + X XX4X6 + X 2X4X6 + X 2X3 + -XfXj-XjXg- + -Xj X 3X6 >

Stąd wszystkimi rozwiązaniami minimalno-argumentowymi są: J ■;


,■- *^43 ^7 j i
x 2’ x 3’ X S> X 1 i '•

x2">X4’ X5’ x6*X1


X \ t X 4, X 3i Xfy Xy
.
Dla rozwiązania x3xĄx5x7 tworzymy tablicę prawdy (tablica Z.5.2b), w której
wykreślamy identyczne wiersze. Z tablicy Z.5.2c (tablica Kamaugha) odczytuje­
my rozwiązanie:
/ = x3x4x5 + x4xsx7
afclfe'1'
Tablica Z.5.2b Tablica Z.5.2c
x
k *3 *4 *j f" \* 5 * 7
X 7
00 01 11 10
1 ,0 0 1 1 0 *3*4\
2 1 1 0 0 0 00 Ife M 0 -
3 1 0 0 1 0 Ol 0 - 0 (Tl
4 0 1 1 0 1 „1.
5 ,»■ “ 11 0 0 - l1rl
id
6 1 0 1 0 b 10 - 0 - 0
7 0 0 0 1 1
8 0 1 0 sp 0
9 0 1 1 1 ’’0
10 0 0 0 0 1
II 1 , 1 0 1 0
u p I 0

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

PF = 1 X 8 ; 274; 3,9,10; SJ>


1\ ■P3 ■P-, = (1; 2,6,9; 3,4, 8; óTTÓ; 7)
P2 -P3-P7 \ PF = (U (2X6X9); (3X4X8); (5)0 0); 7)

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

Wyrażenie boolowskie według indeksów zmiennych xt:


(8 + 9X1 + 4 + 6)(1 + 5 + 6 + 8)(5 + 6 + 9) =
= (18 + 48 + 6 8 + 19 + 49 + 69)(5 + 6 + 19 + 89) = 58 + +68 + +89 + +89 +
458 + 468 + +489 + 489 + 568 + 68 + -+689 + 689 + +59 + +69 + 19 + +89 +
459 + 469 + +49 + 4-89 + 569 + 69 + +-69 + 689

66

ki u i i ' l 4
P T

' Po redukcji otrzymujemy wyrażenie minimalne:


' 68+69+19+158+458+459+489
. Zbiorami minimalnymi są więc: 1, 9; 6, 8; 6, 9; 1, 5, 8; 4, 5, 8; 4, 5, 9; 4, 8,
9,+ zmienne niezbędne 2, 3, 7. Stąd minimalnymi zbiorami argumentów o naj­
mniejszej Iiczności są:
■ X4, X2, X 3, Xy, Xtj

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}

Na podstawie uzyskanych podziałów otrzymujemy, podział ilorazowy oddzie­


lający różniące się wyjścia:

P r P<-p9 1PF = {(1X3X7); (2X6); (4X5X9); 8}

Podział ilorazowy wskazuje, które zmienne należą do jednego bloku /j • P4 • P9,


ale różnych bloków Pp . Należy zatem określić, na jakich pozycjach, czyli dla jakich
zmiennych w tablicy prawdy, różnią się odpowiadające im wektory. Tworzymy ta­
blicę porównań, wypisując z podziału ilorazowego pary, które należy rozróżnić oraz
zmienne rozróżniające.

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

Z tablicy porównań wykreślamy zbiory, które zawierają inne podzbiory, np.


wykreślamy zbiór x2, x 3, x 5, xg, gdyż zawiera on x2, x5, x g. Na tej podstawie two­
rzymy (wg indeksów zmiennych xt) wyrażenie boolowskie typu iloczyn sum, któ­
re przekształcamy do postaci sumy iloczynów:
i (3 + 7)(2 + 5 + 8)(3 + 6 + 8)(6 + 7 + 8)(3 + 5 + 6) =
I = (3 + 7) (3 + 6 + 58)(8 + (2 + 5)(6 + 7)) =
: = (3 + 36 l- 358 I- 37 + 67 + 578)(8 + 26 + 27 + 56 + 57) =
= 38 + 236 + 237 + 356 + 357 + 678 + 267 + 262 + 567 + 56? +
: + 578-1- 25678 + 2578 l 5678 + 578 = = 38 + 236 + 237 + 356 +
+ 357 + 678 + 267 + 567 + 578
Z uproszczonej sumy iloczynów wyznaczamy wszystkie minimalne rozwią­
zania:
x2, x6, x1
■X3 , X $ , Xfi •+ je,, x4, xę (zmienne niezbędne)
X3 ) X$ 5 Xy

X$, X(,, x1
Xs . X-j >xs
X6 , X y , X g

Minimalne zbiory argumentów możemy wyznaczyć także za pomocą tabe­


li pokrycia (tablica Z.5.4b), wypisując odpowiednio pary do rozróżnienia oraz
zi nienne rozróżniające. i j
Z tablicy tej, po obliczeniu minimal­ Tablica Z.5.4b
nego pokrycia kolumnowego, uzyskuje­
my x3, x8; x2, x3, x6; x2, x3, x7; x2, x6, x7, x3, *2 *3 *5 *7 *1

x5, x6; x3, xs, x7; x5, x6, x7; x5, x1, x H; x6, x7. 1.7 1 1

X8i Do każdego z tych zbiorów należy do­ 3 ,7 1 1 1


łączyć zmienne niezbędne Je,, x Ą, je9. 2 ,6 1 1 1
Wszystkie uzyskane rozwiązania są 4 ,5 1 1 1
minimalne, natomiast rozwiązaniem mini­ 4 ,9 1 1 I
malnym z najmniejszą liczbą argumentów
dla funkcji y ,j/2jest zbiór zmiennych jc,, x3, x4, x s, x9, co oznacza, iż funkcja ta za­
leży od pięciu zmiennych.

b) Dokonamy teraz redukcji, argumentów Tablica Z.5.4c


dla funkcji z wyjściem y 2. Dlay2 zmien­
nymi nićzbędnymi są x4, x9. k *2 X2 *4 *5 *6 X1 xt y%.
1 1 0 1 0 0 0 1 1 0 0 .1!
P(y2) = (1,2,4, 7; 3 ,3 ,8 ,9 ) 2 0 0 0 1 1 1 1 0 1 1:
' V ' 3 0 0 1 0 1 1 - 1 0 0
Z tablicy prawdy (tablica Z.5.4c) obli­ 4 0 1 0 1 1 0 0 1 0 1
czamy podziały: 5 0 - 0 1 1 1 1 0 0 0
6 0 0 1 1 1 0 1 1 1 -
P(x4,Xg) = (1,3,7; 2; 4,5,879) 7 0 I 1 0 0 1 0 0 0 1
1 " ’t / 8 1 0 0 1 1 1 - 0 0 0
P(x4, Jc9)\PF = ((1 ,7)(3); 2; (4)(5^ s, 9)) 9 0 1 1 1 0 1 0 - 0 0
i tworzymy tablicę porównań:

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

W celu wyznaczenia rozwiązań minimalnych obliczamy:


(2 + 5 + 8)(6 + 7 + 8)(1 + 2 + 6 + 8)(3 + 5 + 6) =
= (6 + 8 + 17 + 27)(5 + (2 + 8)(3 + 6)) =
= (6 + 8 + 17 + 27)(5 + 23 + 26 + 38 + 68) =
= 56 + 2T 6-+ 26+3ó8 + 68 + 58 + 23S + 268 + 38 + 68 + 157 +
+ -1-23? + -126? + + +378 + 257 + 237 + 267 + 23?8 + 267-8
Z uzyskanego wyrażenia wybieramy czynniki dwuargumentowe i na tej pod­
stawie uzyskujemy minimalne (i o najmniejszej liczności) zbiory argumentów:

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}

*:•' P2 -P3 -P6 ={ 1,4, 5; 2, 6; 3, 7,9; 8}


_____________________
P2 -P ,‘ Pb \PF = {(1)(4)(5); (2)(6); (3)(7,9); 8}

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

■ Wyznaczanie rozwiązań minimalnych:

f (4 + 5 + 9)(4 + 8 + 9)(5 + 7 + 8)(5 + 7 + 9)(1 + 4 + 7) =


* = (4 + 9 + 58)(5 + 7 + 89)(l + 4 + 7) =
= (4 + 19 + 7 9 + 158 + 578)(5 + 7 + 89) =
= 45 + 47 + 489 + 159 + +79 + 189 + 579 + 79 + -789 + 158 +
+ +578 + 4589 + 578 + 5?8 + 5=m

Stąd można wyznaczyć wszystkie rozwiązania minimalne:

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}

/> •/> •/> ,= { U ; 276; 3, 4, 8; 7}


Px • P3 ■Pg | PF = {(1X5); (2X6); (3)(4)(8); 7}

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

Wyznaczanie rozwiązań minimalnych:


(5 + 6 + 7)(2 + 4 + 7)(6 + 7 + 9)( 4 + 5 + 6)(4 + 5 + 9) =
= (6 + 7 + 59)(4 + 5 + 69)(2 + 4 + 7) =
= (7 + (6 + 59)(2 + 4)) (4 + 5 + 69) =
= (7 + 26 + 46 + 259 + 459) (4 + 5 + 69) =
= 47 + 57 + 679 + 246 + 256 + 269 + 46 + 456 + 469 + 2459 +
+ 259 + 2569 + 459 + 459 + 4569
Stąd najmniejsze rozwiązania minimalne:

x4, x 7 ■ + niezbędne x x, x3, x g


. r’ ' nr’’ .!■■« iinwvriji (if

Najmniejsze minimalne zbioiy argumentów, od których zależą^ y 2 łącznie, to:


Xj, Xjs Xą) Xfy Xg, X\7X-j, Xfy Xy^ Xg, X^ X5, Xg

■b) ^ = ^ 2 ) = {2.4,7, 8; 1,3, 6}


P3-Ps ={1,2, 6; 3,4,7,8}
§§«
P3 - JP8 |P,.={1;(2)(6);(3)(4, 7,8)}

m
■ gi Tablica porównań

I 2 ,6
3,4
2, 4 ,7
6, 7 ,9
m 3,7 1,2, 6 ,7
3, 8 4, 5 ,6

Wyznaczanie rozwiązali minimalnych:


(2 + 4 + 7)(6 + 7 + 9)(1 + 2 + 6 + 7)(4 + 5 + 6) =
= (6 + 7 + 19 + 29)(4 + (2 + 7)(5 + 6 » =
= (6 + 7 + 19 + 29)(4 + 25 + 26 + 57 + 67) =
= 46 + 256 + 26 + 56? + 67 + 47 + 259 + 269 + 57 + 69 + 149 +
f c + +259 + +269 + +599 + +599 + 249 + 259 + 259 + 2599 + 2699

■ Rozwiązania minimalne z najmniejszą liczbą argumentów:

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

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

a) PP = P (yt, y 2 ) = {IpM , 7, 8 ; 2,3; 4, 5, 6 ; 6 ,9}


mi będą:
P3 • P6 = {1,4,9;2 ; T ^ 8 ; 5»6>
x,, x2
, p 3 . p 6 |/> ., = { ( I 7 4 X 9 ) ; 2 ; ( 3 ) ( 7 , 8 ) ; 5 , 6 }
IV: x2, x5
+ x6 (argument niezbędny)
x2,x 9
<; i „ j Tablica porównań *8j *9 ^
1,9 1,2, 7, 8
4 ,9 2 ,9 Dla funkcji y, najmniejszymi minimalnymi zbiorami argumentów są: x x,x 2, x6;
^5, '^6■ X'2 , X& Xgs Xq, Xg, Xg.
3 ,7 1 ,5 ,9
3, 8 2, 4, 5, 8

Rozwiązanie minimalne obliczymy inaczej niż w poprzednich zadaniach. Po­ iii


nieważ 2 jako element występuje w trzech wierszach tablicy porównań, więc wy­ m
starczy rozważyć zbiór 1, 5,9. Wówczas minimalnymi pokryciami będą 1,2; 2, 5; 5.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA
2, 9. Przyjmując 9, należy rozważyć zbiory 1, 2, 7, 8 oraz 2, 4, 5, 8 . Elementami 1B 1i
wspólnymi są 2 i 8 , czyli minimalnymi rozwiązaniami będą: 2, 9 i 8 , 9. Ponieważ KII i
2, 9 się powtarza, więc ostatecznie uzyskujemy 1, 2; 2, 5; 2, 9; 8 , 9. Dołączając -I ZADANIE 5.8
'/ „» ,
zmienne niezbędne i zapisując formalnie, stwierdzamy, że najmniejsze minimal­
ne zbiory argumentów, od których zależą funkcje y ,,y2, to: Dla funkcji i 7podanej w tablicy Z.5.8 obliczyć minimalne i o najmniejszej liczno-
ści zbiory argumentów, od których ta fifnkcja zależy. Zmienne niezbędne tej funk­
i. * 2 s *33 *63 * 2 * *33 *53 *6s * 2 ? * 3 s *6s * 9 s * 3 ? *6s *83 * 9 cji t o : x u x3, x n.

74 ' 75

11W... tL I ii Miiiilil iili :


Tablica Z.5.8

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


!

i ; 6.1. PODSTAWY TEORETYCZNE

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.

Rys. 6.1. Schemat blokowy dekompozycji funkcjonalnej

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

000 001 010 100 110 101 011 111


V j
00 1 1 1 1 0 0 0 0
01 0 1 1 1 0 0 0 0
10 0 0 0 0 0 0 0 0
11 0 0 0 0 1 1 1 0

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.

Tablica 6.2 Tablica 6.3

*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

Niestety postępowanie takie w ogólnym przypadku funkcji nie w pełni określo­


nych nie może być już tak bezpośrednie. Sposób rozwiązania bardziej skomplikowa­
nej sytuacji omówimy na przykładzie dekompozycji funkcji podanej w tablicy 6.4.
Tablica 6.4 <’■
cde
000 001 010 011 100 101 110 111
ab
00 1 . - 0 1 - 0 1 0
01 - - - 1 1 - -
10 - 0 " .1 f 0 0 - 0 1
11 0 1 - - - - - _
*0 *3 *5

79
1 sift,

W tym przypadku, ze względu na nieokreśloności funkcji, nie można bez­


pośrednio podjąć decyzji, które kolumny w tablicy dekompozycji są takie1
same. Wynika to z faktu, że kreskom reprezentującym punkty nieokreśloności i -
funkcji można przypisać wartość 0 albo 1, w rezultacie zajiczając odpowiedni
nią kolumnę do - być może innego —zbioru kolumn identycznych. Dlatego
wygodnie będzie wszystkie kolumny, dla których w poszczególnych wier­
szach tablicy dekompozycji nie w ystępują sprzeczne wartości (0 i 1), nazywać
kolumnami zgodnymi. Zgodne są na przykład kolumny K0 i K3, gdyż w ich
wierszach, jako wartości funkcji występują wyłącznie: 1 (w kolumnie K0) i 1
(w kolumnie K3), oraz odpowiednio —i —; —i 0 oraz 0 i —. Natomiast kolumny
K0 i K x są niezgodne, gdyż w wierszu oznaczonym 11 mają wartości funkcji
odpowiednio O i l . Nietrudno zauważyć, że tak definiowane pary kolumn 1
zgodnych tworzą relację zgodności, której własności: zwrotność, symetrycz-
ność i nieprzechodniość uprawniają do grupowania kolumn zgodnych w mak­
symalne klasy zgodności. Po wypisaniu więc dla funkcji z tablicy 6.4 wszyst­
kich par zgodnych: {K0, K3), {K0, K4}, {K0, K6), {Kx, K3}, {K u K4), {K x, K5},
{K x, K6}, {K2, K5}, {K2, K7}, {K3, K4}, {K3, K6}, {K4, Ks}, {.K4, K6}, {Ks, K7).
łatwo możemy obliczyć maksymalne klasy zgodności, stosując algorytm omó­
wiony w rozdziale 2:
{K0, K3, K4, K6}
{Ku K3, K4, K6]
{K u K4,K 5}
{K2, Ks, K7}
Ze zrozumiałych względów niektóre kolumny występują w więcej niż jed­
nej klasie zgodności. Musimy więc podjąć decyzję o wyborze rozłącznych klas
zgodności (nie muszą być w tym przypadku maksymalne) pokrywających wszyst­
kie kolumny tablicy dekompozycji, tzn. każda kolumna musi być reprezentowana
w jednej klasie zgodności. Jednym z możliwych rozwiązań jest: {K0, K3, K4, K6},
{K u K5} ,{ K 2,K 7}.
Po połączeniu kolumn należących do jednej klasy w jedną, uzyskuje się tabli­
cę funkcji H (tablica 6.5). Odpowiadająca jej tablica funkcji G jest podana w ta­
blicy 6.6. Na tej podstawie wyznaczamy funkcje G oraz H\

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

Funkcjom G i H odpowiada schemat blokowy oraz logiczny przedstawiony


odpowiednio na rys. 6.2a oraz 6.2b.
:■

Rys. 6.2. Schemat realizacji funkcji G i II: a) blokowy, b) logiczny


I *•* A
1.*,
Przedstawiona metoda, jakkolwiek łatwa do interpretacji graficznej, w obli­
czeniach analitycznych bardziej skomplikowanych przykładów staje się zbyt pra­
cochłonna. ' ,
Na przykład, dla funkcji TL27 (patrz tablica 5.2) odpowiednia tablica dekom­
pozycji - uzyskana dla reduktu R ]0 {a'3, jc5, x 6, x 7, x s, x 9, x l0} jest przedstawio­
— -

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

*:.4 P 1 1 1 1 0 011 0 001 1 1

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

Tablica Z.6.2b Tablica Z.6.2c Tablica Z.6.2d

A B C •W j s,s2 x tx iS,g7L F(J-J)


xf z \ 00 01 11 10 000 01 0000 1
't e

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

6.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

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:

F= { 1 ,5 ,8 , 12,30}, R = {2,6, 15, 18,20,27} ZADANIE 6.8


Dla funkcji opisanej w tablicy Z.6.8 wyznaczyć dekompozycje:
zdekomponować do postaci F = H (xh x2, G(x3, x4, x 5)). Funkcje G i //pod ać w po­
staci minimalnych wyrażeń boolowskich typu suma iloczynów. H(G(pcu x2), x3, xĄ, xs),
H(G(x |, x2), G ( x 3, x 4), x s).
ZADANIE 6.6
Tablica Z.6.8
Dana jest funkcja czterech zmiennych: k b *2 b b b /
1 0 ', , 0 0 0 0 0
/( « , b ,c ,d ) = 2(1, 2, 3, 10, 12, 14)
2 0 1 1 1 0 0
Dokonać dekompozycji tej funkcji w sposób opisany formułami: • 3 0 0 0 1 1 0
a) h[g(a, b, c), d], 4 0 1 i 1 1 0

b) h[g(b, c), a, d]. 5 0 .1 0 1 0


6 0 1 0 1 0 1
7 0 0 0 0 i 1
ZADANIE 6.7 8 , 0 1 1 0 1 1
9 1 0 0 1 1 1
Funkcję/podaną w tablicy Z.6.7 zdekomponować do postaci
10 1 "r1 '0 1 0 1
/ = h{x |, x2, g(x3, x4, x 5)) 11 1 0 ’o 1 0 1

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

7.1. DEKOMPOZYCJA SZEREGOWA -


MODEL PODSTAWOWY

W rozdziale tym zajmiemy się analitycznym opisem dekompozycji funkcji bo-


olowskich. W tym celu posłużymy się omówionym w rozdziale 2 rachunkiem po­
działów. W szczególności wyprowadzimy warunki
v uw dekompozycji dla funkcji boolowskich opisanych
podziałami P ,, P2,—, P„, Pf określonymi na zbio­
rze K ponumerowanych wektorów tablicy prawdy
funkcji f .
Warunek istnienia dekompozycji o schemacie
blokowym jak na rys. 7.1, gdzie U, V są rozłączny­
mi podzbiorami zbioruX funkcji F(X) oraz Węz U,
formułuje następujące twierdzenie.

Rys. 7.1. Dekompozycja wg twierdzenia 7.1

Twierdzenie 7.1. Funkcja F\ B " —>(0, 1 ma dekompozycję


\f = H (U ,G (K W )) (7.1)
wtedy i tylko wtedy, gdy istnieje podział n G > P VkjWtaki, że:
\p u - n G< p F (7.2)

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}

Pf = {1,2,..., 9; 10, ...,25}

Kolejne obliczenia uzyskane bezpośrednio z podziałów P, są następujące:

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

Dla wygody dalszych obliczeń podział Pu zapiszemy w postaci podziału ilora­


zowego: ,
I,
Pu I Pf = (U 4X10); (2X11);, (3X14,18, 21); (5 ,9)(12, 22); (6, 7)(15, 20, 24);
(8)(13,16,19|;|17)(25); (23)
i Najważniejszą czynnością jest obliczenie podziału 11^ . Aby to wykonać, WY'
starczy zauważyć, że:
a) podział n g musi rozdzielać elementy 1 i 4 od elementu 10; 2 od 11; 3 od 14, 18
i 21 itp. Wynika to z podziału ilorazowego,
b) podział n g musi być zbudowany z bloków podziału P v.

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)

Łatwo sprawdzić, że P u • n g < Pf. Zatem dekompozycja istnieje. Dalej, ko- --


rzystając z podziałów P v i n ff, obliczamy tablicę funkcji g (tablica 7.1). In­
terpretacja obliczeń jest następująca: blok 1 jest zawarty w drugim bloku po­
działów P x, P 5, P6 oraz w pierwszym bloku
na podziału o i w pierwszym bloku podziahl
B lok p ie r w s z y B lok dru gi n r Dlatego odpowiadającym mu wektorem
jest 1110, a wartość funkcji g = 0 (patrz taf
417 10,18,23
blica 7.1). f
3,6,11 2 5,14 21 Podobnie postępujemy dla funkcji h (tablic
ca 7.2), ale tu korzystamy z bloków iloczynu
12 7,22
podziałów Pu • n Koraz ich przynależności do
8,25 15,19,24 20 podziałów P7, P 8, P9, I \ , oraz Pf .
Ze względu na różne zastosowanie przed­
13 16 stawionego schematu, blok G będziemy nazyl
wać albo układem składowych dekompozycji
Rys. 7.2. Konstrukcja podziału n K g j, albo układem modyfikacji adresu. Pierwsza
nazwa jest analogią do dekompozycji pojedyn­
czej funkcji boolowskiej. Druga z kolei wiąże się z zastosowaniem dekompozycji
w projektowaniu układów adresowania pamięci ROM, dla których ograniczenia
związane z liczbą wejść adresowych zmuszają do modyfikacji adresu o n bitach na
adres ^-bitowy.
Zastosowanie rachunku podziałów jest wyjątkowo wygodne w dekompozycji
układów wielowyjściowych, gdyż twierdzenie 7.1 traktuje zespół funkcji jako po­
jedynczy obiekt, podlegający takim samym zasadom dekompozycji jak pojedyn­ H m S l

cza funkcja boolowska. Łączna (jednoczesna) dekompozycja wszystkich funkcji


wchodzących w skład układu realizowanego z zastosowaniem modułu wielowyj-
ściowego pozwala na wyodrębnienie wielowyjściowych podukładów Ii, G, któ­
rych tablice prawdy stanowią bądź bezpośrednią informację, określającą na przy­
kład zawartość pamięci ROM lub komórki typu LUT, bądź też są punktem wyj­
ścia do dalszych etapów syntezy (np. minimalizacja układów wielowyjściowych)
w przypadku matryc PLA.

90

j)t . , | | . . atólf: i;jj^


i* i. T ablica 7.2
■ IS ,
Blok *5 x c, s Blok X,J 8 /
I 1 1 1 0 0
174 1 0 1 0 0
2 1 0 1 0 1
0 0 1 0 0 ló 1 0 1 1 1
"3, 6,11
__ 2 0 1 0 1 0
1 1 0 1 0
iii 0 1 0 0 1
5,14 0 0 1 1 1
3 1 1 1 0 0
7722 1 1 0 0 0
14,18,21 1 1 1 1 1
8725 0 0 1 0 0
579 0 0 1 1 0
9 0 0 0 0 1
12, 22 0 0 1 0 1
10,18,23 1 1 1 1 1
6 /7 0 1 1 0 0
12 0 1 1 1 0
15, 20, 24 0 1 1 1 1
13 0 1 0 0 1
8 0 0 0 0 0
15,19,24 1 0 0 0 1
13,16,19 0 0 0 1 1
16 1 0 1 1 1
0 1 0 17,25 1 0 0 0 1
20 1 1
23 1 0 0 1 1 23 1 1 0 1 1

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:

Pu I Pf = {(1)(7); (8,13); (2)(3); (9 ,14)(15); (4)(5); (10); (6); (11)(12)}

:i Pr = {1,3,15; 2,13,14; 4,/S,7,8,9,10,12; 5,11}

gdzie PF =, (1,9,14; 5,7,8,13; 2,6,12; 4~U; 3,10,15).

Blokom H4 podziału,P v odpowiadają wektory D (//,) = 00, D (H2) = 01,


D (H3) = 10, D (H4) = 1UJy.cfelu wyznaczenia dwublokowego podziału n G > P v
spełniającego warunek dekompozycji (7.1) zauważmy, że jeśli blok H x przeznaczy­
my do pierwszego bloku podziału n G, to blok II3 należy przeznaczyć do drugiego
bloku tego podziału. Wynika to z faktu, że H x zawiera wektor z wiersza 1, H2 z s l -
;wiera wektor z wiersza 7, a ponadto wektory te należą do różnych bloków podzia­
łu wyjściowego PF. Jest to zaznaczone w podziale ilorazowym P v \ PF. Mamy więc
ri° = { 1 ,3 , 15}, n jj = {4, 6, 7, 8, b, 1(5, 12}. Następnie sprawdzamy kolejną parę
wektorów z P U\PF, czyli 2 i 3. Skoro 3 jest w f I G, to f I G : = I I G u {2, 13, 14}.

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

Blok X, *4 y, yi y. Blok *i •*3 *4 g y, y2 y3


*2 *3
1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
2 0 0 0 1 1 0 1 0 2 0 0 1 1 0 1 0
3 0 0 0 1 0 1 0 0 3 0 0 1 0 1 0 0
4 0 1 1 0 0 0 1 i 4 0 1 0 1 0 1 1
5 0 1 1 0 1 0 0 i 5 0 1 0 0 0 0 1
6 0 1 1 1 0 0 1 0 6 0 1 1 1 0 1 0
7 0 1 0 0 0 0 0 i 7 0 0 0 1 0 0 1
8 I 1 0 0 0 0 0 i 8, 13 1 0 0 1 0 0 1
9 1 1 0 1 0 0 0 0 9, 14 1 0 1 1 0 0 0
10 1 1 1 0 0 1 0 0 10 1 1 0 1 1 0 0
11 1 1 1 1 1 0 1 1 U 1 1 1 0 0 1 1
12 1 1 1 1 0 0 1 0 12 1 1 1 1 0 1 0
13 1 0 0 0 1 0 0 1 15 1 0 1 0 1 0 0
14 1 0 0 1 1 0 0 0
15 1 0 0 1 0 1 0 0
Z k o leid lat/ = {x3,x4} oraz V — {x,,x2,x5} podzia\P V=-P3‘PĄ,P V= P x*P2*P5-
a więc:
Pv =(1,7, 8,13; 2,3,9,14,15; 4,5,10; 6,11,12)
PF = (1,9,14; 5, 7,8,13; 2, 6,12; 4^1; 3,10,15)
Pu I Pf = {0X7,8,13); (2)(9,14)(3,15); (4)(5)(10); (11)(6,12)}
, Pv = (173; 2; 4, 6, 7; 5; 8, 9,10,12; H; 13,14; 15)
gdzie bloki P v są oznaczone kolejno jako B {, B2, ..., Bs.
i Z podziału ilorazowego P u | PF wnioskujemy, że Tablica 7.5
odpowiedni n G powinien mieć co najmniej 3 bloki,
ponieważ elementy (2), (9, 14) i (3, 15) muszą nale­ (2) (9, 14) (3, 15)
żeć do trzech różnych bloków IIG (to samo dotyczy 8,9,10,12 V3
(4), (5) i (10)). Ponadto pamiętamy, że U G> P v. Za­ 2
13,14 1,5
łom wprowadzenie bloków z P v do tworzonego nG
powinno przebiegać według schematu pokazanego 4 ,6 ,7 5
vv tablicy 7.5. Stąd:
TT

I IG = (2 ,4 ,6 ,7 ; 8,9,10,12,13,14; 1,3, 5,11,15)

Przyjmując, że kodowanie bloków IIGjest następujące: pierwszy blok - 01,


drugi blok —10, trzeci blok - 00 i uwzględniając, iż kolejnym blokom z podzia­
łu Pv odpowiadają wektory (zmienne x ,, x2, x5) odpowiednio: B , = 000, B2 = 001,
B3 = 010, B a = 011, B5 = 110, B6 — 111, B7 — 101 oraz Bs = 100, wyznaczamy ta­
blicę prawdy funkcji G (tablica 7.6).
Podobnie, po obliczeniu iloczynu:

* Pu * n G = (i; 7; 8,13; 3,15; 2; 9,14; 4; 5; 10; 6; 11; 12)

wyznaczamy tablicę prawdy funkcji i f (tablica 7.7).

Tablica 7.6 Tablica 7.7

; : Blok *2 x, s , Si Blok ^3 *4 s , Si )'l y 3


U 0 0 0 0 0/ iI 0 0 0 0 0 0 0
2 0 0 1 0 1 • 7 0 0 0 1 0 0 1
4 ,6 ,7 , 0 1 0 0 1 8,13 0 0 1■0 0 0 1
5 0 1 1 0 0 5TT5 0 1 0 0 1 0 0
8,9,10,12 1 1 0 1 0 2 0 1 0 1 0 1 0
'j
TT 1 1 1 0 ■'"O'l' 9,14 0 1 1 0 0 0 0
13,14 1 0 1 1 0 4 1 0 0 1 0 1 1
15 1 0 0 0 0 5 1 0 0 0 0 0 1
10 1 0 1 .0 1 0 0
6 1 1 0 I 0 1 0
"i ( TT 1 1 0 0 0 1 1
1 1 1 1 0 0 1 0
12

93
!■
7.2. POJĘCIE r-PRZYDATNOŚCI
I DEKOMPOZYCJA NIEROZŁĄCZNA I

należących do zbioru U. W selekcji argumentów x t ze zbioru U spełniających wa­


runek (7.2) z twierdzenia 7.1 pomocne jest pojęcie r-przydatności zbioru podzia­
łów względem podziału P.
Oznaczmy przez y(x|5) liczbę elementów *v największym bloku ilorazu po­
działów t i 8. Niech F(x 18) = (”log2y(x 18 )].
Zbiór {P,, ..., Pk) jest r-przydatny względem P, gdzie:
r —k + T ( P \ — Pic \P ’ P , - P t) (7.3)
Obliczymy r dla:

Pi = {1,2,3,4,5,6, 7; 8,9,10,11,12,13,14,15}

P = {1,9,14; 5,7,8,13; 2,6,12; 4,11; 3,10,15}


Mamy tu:

P - Ą = {1; 9,14; 5, 7; 8,13; 2, 6; 12; 4; 11; 3; 10,15}

Ą | P • Ą = {(1)(2, 6)(3)(4)(5, 7); (8 ,13)(9,14)(10,15)(11)(12)}


y (P,| P • P ,) = 5, T (P,|P • P ,) = 3, czyli r = 4
Można więc r-przydatności dwublokowych podziałów P, względem podzia­
łu P obliczać bezpośrednio z Pi oraz P, grupując po prostu elementy w bloku po­
działu P^ w podzbiory o maksymalnej liczności, należące do ustalonego bloku
| podziału P. Dlatego też iloraz P JP ^ P , będziemy oznaczać często przez P , , zapi-
i sując elementy tego ilorazu w nawiasach.
| Jeśli (P |, ..., Pk} jest r-przydatny (k < r) względem P, to istnieje zbiór podzia-
I łów {PtH, P,.}, dla których:
| ; ' p x - . . . ' P k -P M - . . . - p r < p
, natomiast nie istnieje {Pk+X, P ^ } taki, że:
1
P.l •
1 ••• • 1Pk • JP k!+ \. * **• • -*/•-!
P' < P

Inaczej mówiąc, warunkiem koniecznym i wystarczającym na to, aby:


P, • ... 'P k ‘ PM • ... - P m< P
jest m-przydatność zbioru (P,, ..., Pk} względem P.

94
{■

Można również wykazać, że jeśli P = {/*,, Pk} jest ///-przydatny wzglę­


dem P, to każdy podzbiór z P jest ///'-przydatny, gdzie m' < m. Tym samym wa­
runkiem koniecznym na to, aby P — {Pu ..., Pk) był ///-przydatny względem P jest
/■-przydatność podzbiorów z P taka, że dla każdego P' zawartego w P prawdziwa
jest nierówność r (P') < m. To proste stwierdzenie pozwala w łatwy sposób grupo­
wać podziały 2-blokowe w zbiory o ustalonej przydatności.
Na przykład, jeśli w zbiorze podziałów {Pu ..., P5} następujące podzbiory są
//(-przydatne: {P,, P 3}, {Pu P4}, {P3, P4), {P4, P5), to jedynym ///-przydatnym
zbiorem o liczności 3 może być tylko zbiór {Px, P3, P4).
Zastosowanie r-przydatności w syntezie funkcji g, tj. składowych dekompozycji,
wyjaśnimy na następującym przykładzie.

, 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

’ W tym celu obliczymy r dla każdego zbioru {P(x;), P(xf)}. Stosujemy tu


oznaczenie P(x;) = Pt. W wyniku uzyskujemy, że 4-przydatnymi parami są tyl­
ko: {P„ P 3}, {P„ P4}, {P2, P3}, {P2, P4}, {P3, P4}, {P3, P 5} oraz {P4, Ps}.

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(xt)- P(x3)- P(x4) =


= {(1)(7); (8,13); (2)(3); (9 ,14)(15); (4)(5); (10); (6); (11)(12)>

P(x3)-P (x 4)-P (x 5) =
= {(1X778); (13); (9)(3,15); (14X2); (4)(10); (5); (6,12); (TT)}

Z przykładu 7.3 wynika, że synteza składowych dekompozycji wymaga utworze­


nia wszystkich możliwych dwójek, trójek,... podziałów o ustalonej r-przydatności.
Przy dużej liczbie zmiennych wejściowych (dużym ń) wymaga to obliczenia sto-‘
sunkowo dużej liczby r-przydatności zbiorów {P, , (i,j e {1,...,«}), gdyż liczba
wszystkich różnych par {P„ Pf} jest równa n\/2(n —2)!.
Proces ten można uprościć, określając związki między r-przydatnościąpodzia­
łów dwublokowych.
Jeżeli r (Pa) = n i r (Pb) = n, to zbiór {Pa , Ph} ma przydatność co najwyżej
równą n+ 1, jeżeli natomiast r (Pcf) = n \ r (Ph) —n + 1, to zbiór {Pa , Pb) jest
(n + l)-przydatny.
Związki te zastosujemy w celu obliczenia4-przydatnych par/*,, Pf dla podziałówP,,
...,P Sz przykładu 7.3. Poprzednio obliczyliśmy, że r-przydatności tych podziałów wy­
noszą odpowiednio: 3 dlaP3, PĄoraz 4 dla P,, P 2, P 5. Na mocy powyższych związków,
4-przydatnymi zbiorami {P(,P,} są: {Pl5P 3}, {P\,P4}, {P2,P-i}, {Pi,P4}-, { P ^ s T {P4>
P5},natomiastr-przydatnośćpaty {P3,P4}jestrównar':3<r'<4,apar {P,,P2}, {P|,P5},
{P2, P5} jest równa r": 4 < r" < 5 . Stąd wniosek, że w celu wyselekcjonowania wszyst­
kich 4-przydatnych par wystarczy obliczyć r-przydatność wyłącznie dla par {Pt , P,}:
( ij) e {(3,4), (1,2), (1,5), (2,5)} -czyli czterech par-. Poprzednio (w przykładzie 7.3)
obliczenia te należało wykonać dla 10 par.
Zauważmy, że r-przydatność ^-elementowego zbioru U nie oznacza, że istnie­
je dekompozycja:
F —PI{{ U, G{ V)),
w której funkcja G ma r - k wyjść. Sytuacja ta oznacza tylko, że istnieje dekom­
pozycja z funkcją G o argumentach V u W, gdzie Węz U.
Oczywiście w najlepszym przypadku JFjest zbiorem puslym, a w najgorszym -
W = U i wtedy dekompozycja taka nie zawsze ma sens. Można się jednak spo­
dziewać, że sytuacja najlepsza i najgorsza są najmniej prawdopodobne.

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:

P-U 'G <Pjr

Sposób postępowania przy wyznaczaniu W wyjaśnimy na przykładzie.

Przykład 7.4

Dla funkcji podanej w tablicy 7.8 poszu- Tablica 7.8

V= {x4,x 5}. Blok *2 *3 •*4 *5 yi yz ■J'3


Wyznaczamy kolejno: -N 1 0 0 0 0 0 0 0 0
2 0 0 0 I 1 0 1 0
Pf - (1, 7,10; 2; 3, 8; 4; 5, 6,9) 3 0 1 0 1 0 1 0 0
4 0 1 1 1 1 0 1 1
/} /= ( ! , 2; 3, 6; 4, 5; 7; 8,9; 10) 5 0 1 1 0 1 0 0 I
6 0 1 0 0 0 0 0 I
Py =(1,6; 2,4, 8,10; 3, 7,9; 5) 7 1 1 0 1 0 0 0 0
t 8 1 0 0 1 1 1 0 0
y Podział n G konstruujemy "w sposób polca- 9 1 0 0 1 0 0 0 1
ząny na rys. 7.4. Niestety nie można spełnić 10 1 0 1 1 1 0 0 0

5elementy 8 i 9 są w jednym bloku podziału n G.


I Warunki te byłyby ^p^łnibne, gdybyśmy przenieśli ele-
ment 9 do pierwszego blóku (strzałka na rys. 7.4). Byłoby 1,6 2,4,6,10 i
to jednak możliwe, gdyby elementy 3, 7 były oddzielone od
elementu 9. Z tablicy 7.8 wynika, że wektory 3 i 9 różnią się 5 3J(Ę)
na pozycjach x x oraz x 2, natomiast wektory 7 i 9 różnią się
na pozycji x 2. Zatem zmienna x2 wystarczy do oddzielenia 3 Rys. 7.4. Kon­
i 7 od 9. Stąd’wniosek, że W ~ {x2}, czyli istnieje dekompo- strukcja podzia­
zycja nierozłączna. Jej wyznaczenie nie nastręcza trudności. łu nf;

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

7.3. ZADANIA Z ROZWIĄZANIAMI

ZADANIE 7.1

Wykazać, że funkcja z tablicy Z.7.1, dla której:

PF = 0,8,12,14; 2,7,10,16; 6,9,13; 3,5,11,15; 4)

nie ma żadnej dekompozycji dla U = {jc,, x4, x5}.

98

i.JMttfcj ,U......
li
il
1
\11Bi
Rozwiązanie

; PF = (1,8,12,14; 2,7,10,16; 6,9,13; 3,5,11,15; 4)

Ą; = P(x„ x4, xs) = (1, 6; 9,13; 2; 10,14; 3,4, 7; 11,15; 5,8; 12,16)

Py\PF = (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

I U = {d ,e }, V — {a, b, c}, W=7


\ Pp = ( U 0,17; 5, 7,19; 6, 8,14;3,12,16; 2 J 3 ; 4 J 5 ;9 J 8 ; 11,20)

= (1,10,17)1(4,15); (5, 7,19)1(2,13); (6, 8 ,14)| (11,20);


(3,12,16)1(9,18)

Pv = P (F ) = (1,2,3; 4, 5, 6; 7, 8,9; 10,11,12; 13,14; 15,16; 17,18; 19,20)

Stąd wynika, że podział U G może być dwublokowy. Do pierwszego bloku nGza­


liczymy następujące bloki P(V):
1,2,3; 10,11,12; 17,18; U M
a do drugiego:
4,5, 6; 15,16; 7, 8,9; 19,20
Powstałe przy tym konflikty zlikwidujemy, przenosząc element 14 i 18 do dru­
giego, a 16 i 20 do pierwszego bloku tego podziału. Będzie to możliwe, gdy od­
dzielimy elementy 13 od 14, 15 od 16, 17 od 18 oraz 19 od 20, co uzyskamy za
pośrednictwem dodatkowej zmiennej d, w dekompozycji nierozłącznej, czyli
F = H(d, e, g (a, b, c, d))
Dla dekompozycji nierozłącznej:

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)

U a = (1,2,3,10,11,12,13,16,17, 20; 4 ,5 ,6 ,7 , 8,9,14,15,18,19) .

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)

W tablicy Z.7.2b podano tablicę prawdy funkcji G, a w tablicy Z.7.2c tablicę j


funkcji H dla kodowania bloków Pp wg dowolnego NKB.

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

Blok X, *2 ■*2 *« *5 y> y2 y 3


1 0 0 0 0 0 0 0 0 X , X2 X3 X j X4 Xg
i
1 2
3
0 0 0
0 1 0
1
1
1
0
0
1
1 0
0 ■'0
111 1 1 i
Of G0
p •i;,; 4 0 1 1 1 1 0 1 1
ii
5 0 1 1 0 1 0 0 1
... 6 0 1 0 0 0 0 0 1 H
n
i.'7 1 1 0 1 0 0> 0
1
1.0 0
n r
8 1 0 0 1 1 1 y» y« ys
9 1 0 0 1 0 0 0 1
1 Rys. Z.7.3a. Schemat dekompozycji funkcji
!t 10 1 0 1 1 1 0 0 0
do zadania 7.3
Wskazówki:
■a) najpierw obliczyć dekompozycję H(xu x2, x3, G0(xu x4, x5));
, b) podział n G przy obliczaniu bloku G0 należy dobrać stosownie do dalszej de­
kompozycji.
Rozwiązanie
Sposób 1
,[/= {xx,x 2,x 3}, V= { jc , , JC4, JC5 >

I M \PF =(1,7,10; 2; 3,8; 4; 5,6,9)

Pv = P{xx,x 2,x 3) = (1, 2;3,6; 4,5;7; 8,9; 10)

P(/ | P,- = (1)(2); (3)(6); (4)(5); (7); (8)(9); (10)

Py = -PO*,, JCj) = (1,6; 2,4; 3; 5; 7 ,9; 8,10)

Warunki dekompozycji będą spełnione, jeżeli podział I I G utworzymy jak w t°


blicy Z.7.3b, tj.:
pierwszy blok: 1,6; 5; 8,10
drugi blok: 2,4; 3; 7,9
czyli:
n 0(i =(1,5,6,8,10; 2,3,4, 7,9)
"
n 0J / V = 0 ,1 0 X 5 ,6)(8); (2)(3)(4)(7)(9) |
1.1
j,' r = 1 + f iog25] = 1 + 3 = 4 {
’ Zatem przewidywane są 3 wyjścia z bloku G x i nie istnieje założona dekompo­
zycja (iys. Z.7.3b):

P„ = P{xx, x 2, x 3) = (h2; 376; 475; 7; ^ 9 ; 10)

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

P(UX) | P , = n o. | PF = (1, 7)(5, 6,9); (2)(3, 8)(4)(10)


V: r= 1 +flog24 l= 1 + 2 = 3
(f PK = P (x,,x2,x 3) = 072; 376; 4 ^ ; 7; 879; 10)
' Łatwo sprawdzić, że warunki dekompozycj i będą spełnione, jeśli podział I I G bę­
dzie 4-blokowy (tablica Z.7.3d): '
1. blok: 172 i 7
2. blok: 376 i Ś79
3. blok: 475
i'4. blok: 10
, W rezultacie:
n G| = (Ł X 7 ;3 , 6, 8,9; 475; TO)

PH = P(U) • n G| = (1,5, 6, 7,9; 2,3,4, 8,10) • ( 1 ^ 7 ; 3, 6,8,9; 4 ^ ; 10) =


= 0 7 ;2 ;^ 9 ;3 7 8 ;5 ; 4; 10)
Wynik dekompozycji bloku //je s t przedstawiony w tablicy Z.7.3e.

Tablica Z.7.3c Tablica Z.7.3d Tablica Z.7.3e

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 )

! Pt • Ą ! PF = 0X2,5X7); (3); (4)(6,9)(10); (8), r = 4

/? • P5 | PF = 0X275); (3)(4); (6,9)(10); (7X8), r = 3

Ą • ps I ^ = (1X2,5X3); (4); (6 ,9)(8)(10); (7), r = 4

I Schemat dekompozycji funkcji jest przedstawiony na rys. Z.7.4a.


!

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

Najlepszy zbiór U= {xs, x 5}.

Pv = P{x2,x z, x4) = (1; 2, 3; 4, 6; 5/7; t/9 ; 10)

Z warunków rozdziału podanych w podziale ilorazowym P /P 5 \PF wynika, że


podział n G należy złożyć z bloków Pv w następujący sposób:
1. blok: 1; 476; 879
Rżałem
' ___________________
M ‘ nG=(1, 4, 6 , 8,9; 2,3, 5, 7 , 10)’
n * = (1, 2 ,5; 3,4; 6,9,10; 7 ,8)0, 4 ,6,8,9; 2,3, 5, 7,10) = i'I'
= (1; 2 3 ; 3; 4; 679; 10; 7; 8)
łi3 ■
jfWynik dekompozycji bloku G jest przedstawiony w tablicy Z.7.4b, a bloku I I —
Ww tablicy Z.7.4c.

Tablica Z.7.4b Tablica Z.7.4c

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

Dla funkcji F z tablicy Z.7.5a zbiory podziałów Tablica Z.7.5a


. {P\,P2h {Pl,P*}, {P\,PS}, {P2,Pl), {Pl,P*U
, {p 3> P‘\}>{Pi, P5},{P„ ^sK .są 4-przydatne.
Obliczyć wszystkie najlepsze dekompozy-
, cje szeregowe tej funkcji dla 17= {x„ xp xk},
: czyli F = H(Xj, xp xk, G0). Wykazać, że dla
żadnej z nich nie istnieje .dekompozycja
F = H(G](xp xp xk), G0). '"i A'

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

Tablica Z.7.5b Z podziału ilorazowego P(A) \ PF wynika, że .


warunki dekompozycji będą spełnione, gdy roz­
Blok *3 *5 dzielimy wektory: 1 od 2, 3 od 4, 5 od 7, 6 od 8
1, 9, 10 0 1 0 oraz 10 od 11. Uzyskamy to, gdy podział U G bę­
2, 5, 6, 11 0 0 1 dzie 2-blokowy (tablica Z.7.5b):
3,7,8 1 0 0
1. blok: 1,9,10 i 3, 7,8
4 1 1 1
2. blok: 2,5,6,11 i 4
Zatem
n Cn =(1,3, 7,8,9,10; 2,4, 5,6,11)

P„ = P(U) ■n o 0 = (1,2; 3,4; 5,7; 6,8; 9; 10,11) • (1,3, 7,8,9,10; 2,4,5,6,11) =


= 0; 2; 3; 4; 5; 6; 7; 8; 9; 10; TT )
Pierwszy krok dekompozycji przedstawiono w tablicy Z.7.5c i na rys. Z.7.5a.
Tablica Z.7.5c

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

■> '<ii . iii l.itl „ ,»n. . .


r:

p'J- Sprawdzamy, C2y istnieje dekompozycjaF= H (G ](xi,xl;Xk), Xl x* Xs *s


■iGo).
w u' W tym celu obliczymy r-przydatność
' fi,.'-hi :

n Go | PF = (1,10)(3)(7)(8)(9); (2,11)(4)(5)(6)

czyli r = 1 + 3 = 4. Zatem wymagana dekompozy­


cja nie istnieje, gdyż blok G, musiałby mieć 3 wyjścia
Rys. Z.7.5b. Drugi kroić
(rys. Z.7.5b). Obliczenia dla U — {x3, xĄ, x s} są analo­ dekompozycji (do za­
giczne. dania 7.5)

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

Uwaga: wystarczy obliczyć odpowiednie podzia­ 4 1 0 0 1 0 D


ły n 0 spełniające warunek wystarczający dekom­ 5 1 0 0 1 1 B
pozycji. 6 0 0 0 1 1 B
7 0 0 1 0 0 D
W rozwiązaniu podać też schematy blokowe 8 1 0 1 0 1 B
obliczonych dekompozycji, w szczególności wej­ 9 0 0 1 0 1 A
ścia i wyjścia bloków G i H. 10 0 1 1 0 0 C
11 1 1 1 0 0 E
Rozwiązanie 12 1 1 1 0 1 A

PF = (1, 4, 7; 2, 9,12; 3,10; 5,6,8,11)

Px • P5 | PF = (1, 7)(3,10); (2 ,9)(6); (4)(11); (5 ,8)(12), r=3

Px • P2 | PF = (1, 7)(2,'9'?(f3)(6); (5 ,8)(4); (10); (11)(12), r = 4

P2 • P5 1Pp = (1,4, 7)(3); (279X57M)i (1 °)(1 (12) , r=3

Najlepsza będzie dekompozycja dla r = 3, która występuje dla:


1 •t t
U = { x u x 5}, U = {x 2, x 5}

107
Dla U= {jc,, *s} (rys. Z.7.6a):

P rP s \P,, = (1,7)(3,10); (2,9)(6); (4)(11);(5,8)(12)

Pv = P(x2, x3, x ,) = (172; 3, 4, 5, 6; 7, 8,9; 10,11,12)

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)

P; =(1, 2;3, 6; 4, 5; 7,9;8; 10; 11,12)

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

Tablice bloków G, H przedstawiono odpowiednio w tablicy Z.7.6b i c.

Tablica Z.7.6b Tablica Z.7.6c

Blok X2 *3 *4 8 Blok *3 g' Y


1,2 0 0 0 0 0 1,7 0 0 0 D
3 ,6 0 0 0 1 1 2 ,9 0 1 0 A
4 ,5 1 0 0 1 0 3, 10 0 0 1 C
7 ,9 0 0 1 0 0 4 1 0 0 D
8 1 0 1 0 0 5 ,8 1 1 0 B
10 0 1 1 0 1 6 0 1 1 B
11, 12 1 1 1 0 1 11 1 0 1 E
12 1 1 1 A

108
' ¥ 1. '"W®1’*# 'TTipipn

Dla U ~ {x2, x5} (rys. Z.7.6b):

P2 ‘ PS IPF = (1, 4, 7)(3);(2,9)(5, 6,8); (10)(11); (12)

/V *=^(*i >*3»*4 ) = (1.2; 3. 6; 4, 5; 7,9,10; 8,11,12)

Podział n Gmożna utworzyć następująco:


8
1. blok 1,2; 4, 5; 7,9,10
2. blok 3,6; 8,11,12
|p Aby zlikwidować konflikt, wektor 5 należy oddzielić od wektora 4. Stąd dodatko­
wo xs, czyli V = (X[, x3, x4, x 5}:
th
Py ~ (1; 2; 3; 4; 5; 6; 7,10; 9; 8,12; 11)

n{j= (1,2,4,7,9,10; 3,5, 6,8,11,12)


Tablice bloków H i G' podano odpowiednio w tablicy Z.7.6d i e.

Tablica Z.7.6d Tablica Z.7.6e

Blok *2 *5 g' y Blok X3 *5 g


*3 X4 XS 1,7 0 0 0 D 1 0 0 0 0 0
2 ,9 0 1 0 A 2 0 0 0 1 0
1 1 1 1 3, 10 0 0 1 c 3 0 0 1 0 1
*2 *5 4 1 0 0 D 4 1 0 1 0 0
5 ,8 1 1 0 B 5 I 0 1 1 1
6 0 1 1 B 6 0 0 1 1 1
H 11 1 0 1 E 7, 10 0 10 0 0
TT 12 1 1 1 A 9 0 10 i 0
8, 12 1 10 1 1
Rys. Z.7.6b. Drugi krok dekompo­
11 1 1 0 0 1
zycji (do zadania 7.6)

• 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

Blok *2 *1 *4 *5 y , y?. y 3 PF = ( [ ; 2 / ; \ 1 ; 4 ^ ; ^ 9 ; 10)


1 0 0 0 0 0 1 1 0
2 0 0 0 1 0 1 0 0 Px = (1,2,3,4,5; 6 ,7,8,9,10)
3 0 0 0 1 1 0 1 l
4 0 0 1 1 1 0 0 0 P2 = (1, 2,3, 4,6; 5 ,7,8,9,10)
5 0 1 0 0 0 1 0 0
6 1 0 1 1 1 0 0 1 P3 = O, 2,3, 5, 7; 4 ,6,8,9,10)
7 1 1 0 0 0 0 1 1 :#!
8 1 1 1 0 0 0 0 0 PĄ = (1,5,7,8,9; 2,3,4, 6,10) ■W
9 1 1 1 0 1 0 0 1 'li
10 1 1 1 1 1 1 1 1 P5 = (1, 2, 5, 7,8; 3,4, 6,9,10)

Obliczamy r-przydatność par (P„ Pt) i stwierdzamy, że tylko para P u P5 jest


3-przydatna

P(U) = /> -/> = (1,2,5; 3, 4; 7,8; 6,9,10)


P(U) | PF =Pr P5 \ P, = (0X 2,5); (3X4); (7X8); (6,9)(10))
r = 2 + flog22 l = 2 + 1 = 3
Przyjmujemy zatem
U = { jc„ x s }, V = { x 2, x 3, Xą}

P(V) = P -P -PA= (1; 2^3; 4~6; 5/7; Ś79; To)


2 3

Sprawdzamy, czy istnieje n G„zgodny” z podziałem P(U)\PF. Z podziału P(U)\P/r


mamy informację, że IIG musi „rozdzielać” wektory: 1 od 2 i 5; 3 od 4; 7 od 8 oraz 6
i 9 od 10. Warunki te spełnia podział n G:

n o = ( l,4 ,6 , 8,9; 2,3, 5, 7,10)


Skoro F1g jest 2-blokowy, to blok G ma jedno wyjście.
P(H ) = P(U) • n a = P (xxx5) • n c =
= (1,2,5; 374; 7^8; 6,9,10) • ( M , 6, 8,9; 2,3,5, 7,10) =
= (I; 275; 3; 4; 7; 8; 6^9; TÓ)

Schemat dekompozycji funkcji jest przedstawiony na rys. Z.7.7, dekompozy­


cja bloku G w tablicy Z.7.7b, a bloku H —w tablicy Z.7.7c.

110

■dr
Tablica Z.7.7b Tablica Z.7.7c

Blok *2 *2 * 8 Blok *5 8 y, y-L y%


1 0 0 0 0 1 0 0 0 i i 0
2 0 1 1 0 2, 5 0 0 1 i 0 0
3 1 1 0 0 3 0 1 1 0 i 1
4 0 0 1 1 4 0 1 0 0 0 0
5 1 0 0 1 7 1 0 1 0 1 1
Rys. Z.7.7. Schemat dekompozy­ 6 1 1 1 1 8 1 0 0 0 0 0
cji funkcji do zadania 7.7 6 ,9 I 1 0 0 0 1
10 1 1 1 0 1 1
i#?
ZADANIE 7.8
fl.
Wiedząc, że funkcja z tablicy Z.7.8a ma dekompozycję H(x3, x4, x 5, G0(x0, x u x2)),
fizj funkcją G0 jak w tablicy Z.7.8b, obliczyć dekompozycję nierozłączną
'iH'iG^Xf, xp ...), G0(x0, x t, x2)), z najmniejszą liczbą wejść do (?,. W rozwiąza-
<niu podać tablice prawdy G,, H'.

I Tablica Z.7.8a Tablica Z.7.8b

I Blok x» *1 *2•*3 *4 *5 y x» X 2 Sil

| 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

Szukamy dekompozycji: H(Gf(x3, x,■4’ x5), G0). Z tablicy Z.7.8a odczytujemy


i
^ o ) = 0»5, 6, 7,9; 2,3,4, 8,10)

111
Przyjmujemy, że C/ = {g0}, V= {x3, x4, x5}. Zatem

Pf —(U 2,3,4; 5; 6, 7; 8; 9,10)

P(U ) | PF = (1)(5)(6, 7)(9); (2 ,3 ,4)(8)(10), r = 1 + 2 = 3 '

P (V) = P(x3,x 4, xs) = (1, 2; 3,4,9; 5; 6,10; 7, 8 )


Korzystając z P (U )\P F, tworzymy podział I l Ci, którego poszczególne blok
(składane z bloków P (V ) ) są następujące:
1. blok 12
2. blok 5
3. blok 6,10; 7,8
4. blok 3,4,9
W bloku trzecim jest konflikt dla wektorów 8 i 10, które wg podziału P(U)\PF
nie mogą być w tym samym bloku. Konflikt ten można zlikwidować, rozdzielając
wektor 7 od 8 zmiennąx 0 lub jc, . W rezultacie
V = {x0, x3, x4, x 5}
P ( V ') = P(x0,x 3,x 4,x s) = (1; 2; 3; 4,9; 5; 6,10; 7; 8)

n Gi = (1; 2 ,3 ,4 ,9 ; 578; 6, 7,10)

PH = P(U ) • n G= (1,5, 6, 7,9; 2 ,3 ,4 ,8 ,1 0) • (1; 2,3, 4,9; 5,8; 6 ,7 ,1 0) =


= (U 5; 6,7; 9; 2 ,3,4; 8; 10)
Schemat blokowy dekompozycji jest przedstawiony na rys. Z.7.8. Tablice
prawdy bloków Gj i H podano odpowiednio w tablicy Z.7.8c i Z.7.8d.
Tablica Z.7.8c Tablica Z.7.8d

Blok ■*o ^3 *4*1 s , Blok &Q 8i S2 y


1 1 1 0 1 1 0 1 0 1 0 0
2 0 1 0 1 0 0 5 0 0 1 2
3 0 0 1 0 0 0 6 ,7 0 1 1 3
4 ,9 1 0 1 0 0 0 9 0 0 0 5
5 1 1 0 0 0 1 2, 3, 4 1 0 0 1
6, 10 0 1 1 1 1 1 8 1 0 1 4
Rys. Z.7.8. Schemat de­
7 1 0 0 0 1 1 10 1 1 1 5
kompozycji funkcji do za­
dania 7.8 8 0 0 0 0 0 1
'^fKIjriłrm/jkpfiw’wt”’
■ ^ P ^ I P P r ’•>

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.

Tablica Z.7.9a Tablica Z.7.9b

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.

Tablica Z.7.9c Tablica Z.7.9d


0 Blok Blok
*2 *3 *5 £() *4+ §1) y . y^

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

V = {x 4, x 5, x 6}, P (g 0) = (1,2, 4, 7; 3,5, 6,8,9)


i PF = (1,4; 2,3; 5, 6, 7; 8,9)

/>(£/) IZ5/, = (1,4X2X7); (3X5, 6X8,9), r = 1+2 = 3

P(K) = P(*4,x 5,x 6) = 0 6 ; 2 0 ;3 0 ;4 ;8 ;9 )

113
.1

Z I\U )\P F oraz P W obliczamy n o :

n 6. = ( 1, 4 , 6; 2^ ; 3,7; 8,9)
i

PH = P(U) •n Gi = (i, 2, 4, 7; 3 ,5 ,6 ,8 ,9 ) • ( 1 ^ 6 ; 2 ^ ; 3/7; 8~9) =


(1,4; 2; 7; 6; 5; 3; 8,9) :
1
bchemat blokowy dekompozycji przedstawiono na rys. Z.7.9.
Schemat Z . I . b Tablicę prawdy.. ■
dano w tablicy
bloku G, podano tablicv Z.7.9e,
Z.7.9e_ a bloku 77—w tablicy
tablicv Z.7.9f.

x4 xs x6 x, xz x3 Tablica Z.7.9e Tablica Z.7.9f


lii NI Blok Blok y i y2
G, G0 *4 x s ■*6 S, s2 &a Si s 2
1,6 1 0 0 0 0 1,4 i 0 0 0 0
9i 9o 9o
2 ,5 1 1 0 0 1 2 i 0 1 0 r
H
3, 7 1 I 1 1 0 7 i I 0 i 0 . I
TT 4 1 0 1 0 0 6 0 0 0 i 0
Rys. Z.7.9. Schemat de­ 8 0 1 1 1 1 5 0 0 1 i 0 i
kompozycji funkcji do 9 0 1 0 1 1 3 0 1 0 0 1
zadania 7.9
8 ,9 0 1 1 i i

ZADANIE 7.10

Tablica Z.7.10a Dla funkcji z tablicy Z.7.10a zaprojektować


układ modyfikacji adresu, umożliwiający realiza­
Blok X2 *3 *4 *3 y cję tej funkcji na pamięci o 4 wejściach adreso­
1 i 0 0 0 0 y\ wych. Modyfikator musi być na tyle uniwersalny,
2 i 0 0 0 1 y2 aby umożliwić realizację tej funkcji dla dowol­
3 i 0 0 1 1 y3 nych wyjść (yt oznacza dowolne słowo binarne).
4 i 0 1 1 0 y4 Podać wyrażenie boolowskie funkcji modyfiku­
5 i 0 1 0 0 y, jącej oraz zawartość ROM dla komórek o adre­
6 0 1 0 I i y,, sach: 0, 1, 2, 3.
7 0 1 1 1 0 y2
8 0 1 1 0 0 y» Rozwiązanie
9 0 0 0 0 0 y.j
0 0 0 1 1 y i., Wyjścia mają podział zerowy (dla każdego stanu
i; !°
, u 0 0 1 1 0 yu inna wartość wyjścia). Stąd r-przydatności wyni­■
!i 12 0 0 1 0 0 y i2 kają z liczności elementów w blokach
j —i-----

■ 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

/> =(1,2, 5 , 8 ,9,12; 3, 4, 6 , 7,10,11), r = 1+3=4

P5 = (1,4,5, 7 , 8 ,9,11,12; 2,3, 6 ,10) , r = 1+3 =4

Pt • P3 = ( I 2,3; 4,5; 6 , 9 , 10 ; 7, 8 , 11, 12 ), r =4

II
Pt -P4 = (1, 2, 5; 3,4; 8 ,9,12; 6 , 7,10,11),

Ą • P5 = (1,4,5; 2,3; 7, 8 ,9,11,12; 6 ,10), r=5

Ą • Pa = 0 ,2 ,9 ; 3, 6 ,10; 5, 8 ,12; 4, 7,11), r =4

P3' P5 —(1,9; 2,3, 6,10; 4, 5,7,8,11,12 ), r = 5

A ‘ P5 = 5 , 8 ,9,12; 2; 4, 7,11; 3, 6 ,10), r =5


Z powyższych obliczeń Wynika, że możliwe jest tylko jedno rozwiązanie:
U = { x u x 3, * 4 }

Pu =Pr P3 - P,1 = (1, 2; 3; 4; 5; 6,10; 9; 8,12; 7,11 )

PV =P2 -P5 = (1,4, 5,9,11,12; 2,3,10; 6; 778)


Tworzymy podział T Iq w taki sposób, że jego pierwszym blokiem jest:
_______________ _ t
1,4,5,9,11,12 oraz 6 "•
natomiast drugim:
2,3,10 oraz 7,8
•ł
czyli:
n c = (1, 4, 5, 6, 9,11,12; 2, 3, 7, 8,10)
Tablica G z zawartością ROM dla komórek o adresach: 0, 1, 2, 3 jest podana
w tablicy Z.7.10b. Z tablicy wyznączarpy funkcję modyfikującą adres:
g = x 2 x 5 + x 2x s = x 2 © x 5

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 )

*1 *3 X* *2 *s Tablica Z.7.10b Tablica Z.7.10c

7.4. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

Tablica Z.7.11 ZADANIE 7.11


Blok x2 *3 *4 x s y , y~i ^3 Funkcje z tablicy Z.7.11 zrealizować na mi­
1 0 0 0 0 0 0 i 0 nimalnej liczbie komórek FPQA, z których
2 0 0 0 1 0 0 i 1 każda ma 3 wejścia i 1 wyjście.
3 1 0 0 1 0 1 0 0
Wskazówka: najlepsze rozwiązanie istnieje,
4 1 0 1 1 0 1 1 1
gdy do bloku H jest dołączona para zmien­
5 0 1 0 0 0 0 1 1
nych wybranych spośród jc,, x3, x s.
6 I 0 1 1 I I l 0
7 0 1 0 0 1 1 0 0
8 0 1 1 0 1 1 1 1
9 1 1 1 0 1 1 1 0
10 1 1 l 1 1 1 0 1
"w.

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

Blok *2 *3 x**5 yi y~i y3


1 0 1 1 0 0 0 1 i
2 0 0 0 1 0 1 1 i
3 0 1 1 0 1 0 1 0
4 0 0 0 1 1 1 0 0

5 1 1 0 0 0 0 0 1
6 1 1 0 1 0 0 0 0
7 1 1 1 0 0 1 0 1
8 1 l 1 1 0 0 1 0
9 1 0 0 0 1 1 1 1
10 1 0 0 1 1 I 0 0
11 1 0 0 1 0 1 0 1

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

Rys. 8.4. Wykresy czasowe sygnałów dla przerzutników typu D i T

Synteza układów sekwencyjnych jest złożonym i obszernym zadaniem składają­


cym się z kilku etapów. Zwyczajowo wyróżnia się następujące etapy:
■ syntezę abstrakcyjną (utworzenie tablicy przejść-wyjść),
■ redukcję (minimalizację) liczby stanów,
■ kodowanie stanów, liter wejściowych i wyjściowych,
■ syntezę kombinacyjną (obliczanie funkcji wzbudzeń przerzutników i funkcji
wyjściowych).
Omawianie procesu syntezy układów sekwencyjnych rozpoczynamy od eta­
pu syntezy kombinacyjnej. Jest to najważniejszy, a zarazem najobszerniejszy,
etap całego procesu syntezy. Polega on (jak to pokazano na schemacie bloko­
wym układu sekwencyjnego - rys. 8.5) na obliczeniu funkcji sterujących wejścia­
mi przerzutników (funkcje wzbudzeń) oraz na obliczeniu funkcji wyjściowych.
Warto podkreślić różnicę w obliczaniu funkcji wyjściowych dla automatów typu
Moore’a a i typu M ealy’ego. W pierwszym przypadku funkcje te są zależne tylko
od wyjść Q przerzutników, natomiast w drugim są zależne zarówno od wyjść Q.
jak i od wejść zewnętrznych X.

Q ' = f(X ,Q )

Rys. 8.5. Schemat blokowy układu sekwencyjnego


Syntezę kombinacyjną omówimy na przykładzie automatu, który dla ustalenia
uwagi będziemy nazywać detektorem sekwencji. Jest to automat typu Mealy’ego,
o trzech stanach wewnętrznych, oznaczonych A, B, C (tablica 8.4), jednym sygna­
le wejściowym x oraz jednym sygnale wyjściowym. Pierwszą czynnością, którą
należy wykonać, jest zatem kodowanie stanów wewnętrznych. Kodowanie sta­
nów polega na przyporządkowaniu abstrakcyjnym symbolom stanów A, B, C cią­
gów binarnych o możliwie najmniejszej liczbie bitów. Dla trzech stanów do jed­
noznacznego zakodowania wystarczą dwa biły. Dlatego przyjmiemy, że A = 00,
B = 01, C = 11. Przyjęcie kodowania determinuje jednocześnie liczbę przerzutni­
ków układu sekwencyjnego. Oznaczając przerzutniki Qx, Q0, uzyskujemy zako­
dowaną tablicę przejść wyjść (tablica 8.5). Tablicę tę podajemy łącznie z nadmia­
rowym stanem wewnętrznym. Tak uzyskana tablica posłuży do obliczania funkcji
wzbudzeń dla różnych przerzutników. Naszym zadaniem będzie realizacja tego
sautomatu w trzech różnych strukturach: z zastosowaniem przerzutników typu D,
T oraz JK.

Tablica 8.4 Tablica 8.5

\ 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

Zgodnie z lym co było podane wcześniej, zakodowana tablica reprezentuje


dwa przerzutniki. Zatem w celu obliczenia funkcji wzbudzeń tablicę tę należy
„rozpisać” na dwie tablice odpowiadające poszczególnym przerzutnikom Qx i Q0.
Uzyskuje się w ten sposób oddzielne tablice wzbudzeń dla każdego przerzutnika
(tablica 8.6). Są one zapisane w formie tablic Karnaugha, a więc można na nich
zakreślać pętelki w celu uzyskania minimalnych wyrażeń boolowskich dla funk­
cji wzbudzeń Z), i D0. W, przypadku przerzutników typu D funkcje wzbudzeń są
tożsame z funkcjami stanu'następnego, oznaczonymi Q[ oraz Q'0 . Bezpośrednio
z tablicy 8.5 obliczamy funkcję wyjściową Y:

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,

i Schemat logiczny tak zaprojektowanego układu (lys. 8.6) jest zbudowany


z [dwóch przerzutników, do których wejść sterujących D, i D0 dołączone są wyjścia
układów kombinacyjnych realizujących funkcje wzbudzeń oraz funkcję wyjściową Rys. 8.7. Schemat logiczny detektora sekwencji z przerzutnikami typu T

Nieco bardziej skomplikowane jest obliczenie funkcji wzbudzeń dla przerzut­


ników JK. W tym przypadku każdą tablicę funkcji stanu następnego, tj. Q[ oraz
Ql, należy przekształcić na dwie tablice: jedną dla wejścia./, a drugą dla wejścia
K. Oczywiście, podobnie jak poprzednio, odpowiednie wartości sygnałów binar­
nych, które należy wpisywać do poszczególnych kratek tablic wzbudzeń, uzysku­
Rys. 8.6. Schemat logiczny detektora sekwencji z przerzutnikami typu D
jemy z tablicy wzbudzeń dla JK. W rezultacie powstają cztery tablice wzbudzeń:
dla J,, K x oraz dla J 0, K0. Pokazane są one w tablicy 8.8. Obliczone na ich podsta­
Dla realizacji z przerzutnikami T uzyskane poprzednio tablice dla funkcji sta­ wie funkcje wzbudzeń:
nu następnego Q[ i Q[} należy dodatkowo przekształcić w celu uzyskania tablic
wzbudzeń dla przerzutników 7j i T0. Transformacji takiej dokonujemy na podsta­ J\ = x Qo
wie tablicy wzbudzeń przerzutnika T. W rezultacie uzyskujemy tablice dla funkcji K i= x
wzbudzeń 7j i T0 (tablica 8.7). Są one podane w formie tablic Karnaugha, zatem po Jo —X
zakreśleniu pętelek można od razu obliczyć wyrażenia boolowskie dla 7j To-
Kn
Ti =xQxQ0 +xQx
umożliwiają narysowanie schematu logicznego, pokazanego na rys. 8.8.
T0—xQo xQo
Tablica 8.7
a) b)

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

mujemy kod Graya. Oczywiście, aby ta­ Tablica 8.10


blica taka jak najwierniej odpowiadała ta-
> blicy Karnaugha, niektóre wiersze powin­ 00 01 11 10
ny mieć nieokreślone stany następne. Uzy­
000 001 100 000 000
skana tablica podana jest w tablicy 8. JO.
001 010 000 000 000
Reprezentuje ona (łącznie) trzy funkcje
011 100 010 000 000
stanu następnego Q2>Q[, Q'0.
010 011 001 000 000
W celu obliczenia funkcji wzbudzeń
110
należy uzyskaną tablicę rozpisać na trzy,
ni
podane w tablicy 8.11. Reprezentują one 101
poszczególne przerzutniki, tj. ich stany na­ 100 000 on 000 000
stępne, a w przypadku przerzutników typu
D również funkcje wzbudzeń. & q[ Qo

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

Projektowanie licznika jest jeszcze bardziej skomplikowane dla realizacji na


przerzutnikach lypu JK. W tym przypadku każdą uzyskaną poprzednio tablicę sta­
nu następnego należy rozpisać na dwie oddzielne, dla sterowania Joraz K.

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)

8.2. ZADANIA Z ROZWIĄZANIAMI

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

D 2 = Q2E + QiQ\ + Q2Qo "** QiQ\80 e

D\ = Q\E + QiQo + QjQ0E


D0 = Q0E + Q0E

Analogiczną tablicę wzbudzeń dla przerzutników typu T pokazano w tabli­


cy Z.8.1c.

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

000 000 001 0 0 0 0 0 1


001 001 010 0 0 0 1 0 0
011 011 100 0 1 0 1 0 1
010 010 011 0 0 0 0 0 0
110 110 . 111 0 0 0 0 0 1
111 111 000 0 I 0 1 0 0
101 10 1 110 0 0 0 1 0 1
100 100 1 01 0 0 0 0 0 0
a q ; Qo r2 7’, T
1O

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

Rys. Z.8.1. Schemat licznika mod 8 zrealizowanego na przerzutnikach typu T

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"'.

Prowadzi to do schematu logicznego jak na rys. Z.8.2a, ą z użyciem bramki


EX-OR —do schematu z rys. Z.8.2b.

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

9.1. PODSTAWY TEORETYCZNE

, Jak wiadomo, automatu = (S, V, Y, 5, X), w którym zbiór S stanów wewnętrznych S


v ma liczność | A*|, może być zrealizowany na co najmniej fIog2|iS,|l przerzutaikach.
, Zatem każde zmniejszenie liczby stanów, ale takie, aby automat z punktu widzenia
. obserwatora zewnętrznego wykonywał taką samą pracę, jest bardzo korzystne ze
.względu na złożoność (a tym samym koszt) jego realizacji. Proces redukowania licz- jj
by stanów automatu, ale w taki specjalny sposób, aby nie zmniejszyło to możliwości i
funkcjonalnych automatu, nazywa się minimalizacją liczby stanów automatu. Przy- "
kład minimalizacji automatu podany jest w tablicy 9.1. Automat opisany tablicą
przejść-wyjść (tablica 9.la) ma 6 stanów wewnętrznych, zatem wymaga do swojej
'realizacji 3 przerzuta ików. Automat ten można jednak zminimalizować (na razie nie |
wiadomo w jaki sposób) do postaci podanej w tablicy 9.1 b. Zminimalizowany auto- 1
■mat ma 3 stany, a więc do jego realizacji wystarczą tylko 2 przerzutniki.

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

Proces minimalizacji automatu polega na wyznaczaniu relacji zgodności na


zbiorze stanów wewnętrznych S. Następnie dla tak wyznaczonych par zgodnych
obliczane są maksymalne klasy zgodności (MKZ). W ostatnim etapie minimaliza-

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

blica 9.3) dla automatu o 5 stanach ma 3 6 6 - - 0 1 - -i


4 kolumny oznaczone od 1 do 4 oraz 4 - 6 1 5 - 0 0 l!
4 wiersze oznaczone (od góry) od 2 5 - - 2 - - - 1 ; -i
do 5. W rezultacie uzyskujemy tablicę, 6 3 - 2 3 0 - 0 lp
której kratki wypełniamy symbolami: V,
gdy analizowana para jest zgodną * —gdy dana para jest sprzeczna lub w kratce za­
pisujemy parę (lub pary) stanów następnych w przypadku zgodności warunkowej.
Sposób wypełnienia tablicy trójkątnej dla przykładowego automatu (podanego
w tablicy 9.2) wyjaśniamy w tablicy 9.4. Jak widać, para 1, 2 jest zgodną kratkę
o współrzędnych 1,2 wypełniamy znaczkiem V; para 1, 3 jest zgodna pod warun­
kiem zgodności pary 3, 6 i dl&tego w odpowiedniej kratce wpisujemy 3, 6; z kolei
para 1, 4 ma sprzeczne wyjścia, zatem wypełniamy j ą symbolem x itd.
Tablica 9.3 Tablica 9.4

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:

(1, 2) (1, 3) (1, 5) (2, 3) (2, 4) (2, 5) (3, 5) (3, 6) (4, 6)

Na podstawie zbioru wszystkich par zgodnych, wyznaczamy rodzinę maksy­


malnych klas zgodności. Do obliczenia rodziny MKZ możemy zastosować jedną!
z dwóch metod omówionych w rozdz. 2.
W przypadku prostego automatu wystarczy metoda bezpośrednia. Stosow- J
ne obliczenia przebiegają następująco. Najpierw z par tworzymy trójki: 1, 2, 3;
1, 2, 5; 1, 3, 5; 2, 3, 5. Z uzyskanych czterech trójek powstaje zbiór czteroele-
mentowy: 1, 2, 3, 5. W celu uzyskania wszystkich zbiorów MKZ uzupełniamy
tę „czwórkę” tymi parami zgodnymi, które nie zawierają się w dotychczas obli­
czonych zbiorach zgodnych (czyli w 1, 2, 3, 5). W rezultacie uzyskujemy rodzi-®
nę MKZ = {{1,2, 3, 5), {2,4}, {3,6}, {4,6}}.
Zgodnie z dotychczasowymi informacjami kolejnym etapem minimalizacji
jest selekcja zbiorów zgodnych spełniających odpowiedni warunek pokrycia i za­
mknięcia. Skoncentrujmy się na wyjaśnieniu warunków pokrycia i zamknięcia.
Otóż pokrycie wymaga, aby każdy stan realizowanego automatu był elemen- |
tem co najmniej jednej wybranej klasy. Natomiast zamknięcie wymaga, aby dla -
każdej litery wejściowej wszystkie następniki (stany następne) danej klasy były
zawarte w jednej z wybranych klas.
} Minimalnym zbiorem klas stanów zgodnych, spełniającym warunek pokrycia
dla automatu z tablicy 9.2, jest zbiór {{1, 2, 3, 5}, {4, 6}}. Zbiór ten nie jest jed- |
hak zamknięty, gdyż warunkami dla klasy {1,2, 3, 5} są {3, 6} i {2, 4}, które nie są
spełnione (tablica 9.5), gdyż żadna z tych klas nie jest zawarta w żadnej z dwu klas
zbioru minimalnego. Ponieważ następni-
f kami klasy {4, 6} są klasy {1,2} i {3, 5}, Tablica 9.5
więc spróbujmy rozbić klasę {1,2, 3, 5} na
klasy {1, 2} i {3, 5}. Na podstawie tabli­
1, 2, 3, 5 4, 6 3 ,6 2 ,4 2
cy trójkątnej stwierdzamy, że klasy te nie
4, 6 3 6 1,2 3 ,5
mają warunków zamknięcia. Jeśli zatem

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

Dokonamy minimalizacji liczby stanów automatu podanego w tablicy 9.7. Naj­


pierw wypełniamy odpowiednią tablicę trójkątną (tablica 9.8). Następnie na podsta­
wie par sprzecznych zaznaczonych krzyżykami eliminujemy pary zgodne warunko­
wo. Powstają nowe krzyżyki x i w rezultacie uzyskujemy pary zgodne: (1,3), (1,7),
(2, 5), (2, 8), (3, 4), (3, 5), (3, 6), (4, 5), (4, 6), (4, 7), (5, 7), (5, 8), (6, 7), (6, 8).

Tablica 9.7 Tablica 9.8

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

Z uzyskanych par zgodnych obliczamy (najłatwiej metodą bezpośrednią) mak­


symalne klasy zgodności: (2, 5, 8}, {3, 4, 5}, {3, 4, 6}, {4, 5, 7}, {4, 6, 7}, {1, 3},
{1,7}, (6, 8}.
W celu sprawdzenia warunku pokrycia i zamknięcia tworzymy tablicę następ­
ników stanów zawartych w poszczególnych klasach zgodności. Zbiory następni­
ków odczytujemy z tablicy przejść-wyjść i zapisujemy w dwóch wierszach w za­
leżności od wartości sygnału wejściowego x (tablica 9.9). Na przykład, dla zbioru
zgodnego 2, 5, 8 stanami następnymi przy x = 0 są odpowiednio 3, 3, ■ natomiast?
przy x = 1 stanami następnymi są 1,

Tablica 9.9

2, 5, 8 3, 4, 5 3, 4, 6 4, 5, 7 4, 6, 7 1,3 1,7 6,8


5(0, S ) 33- —3 — 7 -3 - -7 - 2- 2- 7-
5(1..S’,) 1— 45- 45- 5-8- 5-8 64 68 —

Analizując wypisane w tak zmodyfikowanej tablicy następniki, łatwo możną


zauważyć, że zbiory {2, 5, 8}, {4, 6, 7} oraz {1, 3} spełniają warunek pokrycia"
i zamknięcia. W tablicy 9.10 podana jest konstrukcja tablicy przejść-wyjść auto­
matu minimalnego o stanach wewnętrznych A, B, C.

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

W kolejnym przykładzie omówiony będzie cały proces syntezy automatu, tj.


począwszy od etapu syntezy abstrakcyjnej. W tym celu zaprojektujemy układ se-jp
kwencyjny Mealy’ego o jednym wejściu binarnym i jednym wyjściu binarnym. J
Układ ma badać kolejne „trójki” symboli wej­
ściowych. Sygnał wyjściowy pojawiający sięŁ
podczas trzeciego skoku układu ma wynosićj
1, gdy „trójka” ma postać 001, a 0, gdy „trój-1
ka” jest innej postaci —stąd nazwa „detektor
sekwencji”. Sygnał pojawiający się podczas
pierwszego i drugiego skoku układu może być .
nieokreślony. Graf tego automatu jest pokaza- |
ny na rys. 9.1.
Zauważmy, że w przypadku detektora se­
kwencji w pierwotnym grafie można wyróżnić
Rys. 9.1. Graf automatu detektora sc.
kwencji 7 stanów. Przykładowo, w stanie 1 po poja­
wieniu się sygnału wejściowego x = 0 automat
przechodzi do stanu 2, a po pojawieniu się x = 1 automat przechodzi do stanu 3.
’■.W°bu przypadkach generowany na wyjściu automatu sygnały może być dowol­
ny, co symbolicznie zaznaczono „kreską”. Właściwa sekwencja jest wykrywana

140
'«§!i cjfifppppnro?'~ ■

po przejściu przez stany 1, 2, 4 i tylko wtedy na wyjściu automatu generowany


jest sygnał o wartości 1. W pozostałych przypadkach odpowiedź automatu jest
równe 0.
!., Na podstawie uzyskanego w ten sposób grafu automatu łatwo można utwo­
rzyć‘odpowiednią tablicę przejść-wyjść (tablica 9.1 la). Łatwo można zauważyć,
ze w utworzonej tablicy stany 5, 6 i 7 są sobie równoważne, a więc można je zre­
dukować do jednego stanu. W tej sytuacji tablica przejść-wyjść automatu uprasz­
cza się do postaci przedstawionej w tablicy 9.1 lb. Dalszej syntezie poddamy taki
częściowo już zminimalizowany automat.

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

Po wypełnieniu odpowiedniej tablicy trójkątnej i wykreśleniu zgodnej warun­


kowo pary 2, 3 (tablica 9.12) stwierdzamy, że w tym automacie jest dużo par
| zgodnych. Ale pary sprzeczne są tylko dwie. Warto więc obliczyć maksymalne
klasy zgodne metodą wg par sprzecznych.

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

Obliczone paiy sprzeczne zapisujemy w postaci wyrażenia boolowskiego typu


iloczyn (koniunkcja) dwuskładnikowych sum (2 v 3)(4 v 5), które po wymnoże-
niu uzyskuje postać: /
24v25v34v35

141
. Ł‘

Po odjęciu od zbioru wszystkich stanów S = {1, 2, 3, 4, 5} zbiory poszczegól­


nych składników uzyskujemy rodzinę wszystkich MKZ:
{1,3,5}
{1,3,4}
{1,2,5}
{1,2,4}
Warunek pokrycia spełniają dwa zbiory: {1, 3, 5} oraz {1, 2, 4}. Niestety nie
spełniają one warunku zamknięcia (tablica 9.13a). Ten warunek będzie spełniony
dopiero po dodaniu trzeciego zbioru {1, 2, 5}. Na tej podstawie tworzymy tabli­
cę przejść-wyjść automatu minimalnego. Stosowne obliczenia podane są w tabli­
cy 9.13b, c. Graf zminimalizowanego automatu pokazany jest na rys. 9.2.

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

Rys. 9.2. Graf zminimalizowanego automatu detekto­


ra sekwencji

Dla tak uzyskanego automatu należy zakodować stany, a następnie przeprowa­


dzić syntezę kombinacyjną. Warto jednak zauważyć, że uzyskany automat mini­
malny był już omówiony w rozdz. 8.

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

'(b) Dla automatu minimalnego obliczyć funkcje wzbudzeń dla przerzutników


t, i typu D oraz JK.
■’ ■■

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.

i-, Tablica Z.9.1a Tablica Z.9.1b

\ 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

I Następnie, stosując algorytm wyznaczania MKZ wg par zgodnych, otrzymano:


I 5 ,-0 (U
S2 = 0 {2}(1}
Ą = {1} 0 ,3 } {2}*,
S4= {1,3} {1,3, 4} {2}
S, = {2, 3, 4} {3, 4, 5} {2, 5} {1, 3, 4}
= { 2 ,3 , 4, 5} {3, 4, 5, 6},(2, 5, 6} {3, 4, 6} {1,3, 4}
Sy - {5, 6} {5, 6,*7H 5r6-7h{l,-3, 4} {2 , 5, 6 } {3 , 4 , 5, 6}
S, - {2, 5, 6} {5,-6, 8H 2, 5, 6, 8} {5, 6, 7} {1, 3, 4} {3 , 4, 5, 6}

MKZ - {1,3,4}, {2, 5, 6,8}, {3,4, 5,6}, {5, 6,7}

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.

Tablica Z.9. ld Tablica Z.9.1e Tablica Z.9.1f

\ 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

Z tablicy Z.9.1f bezpośrednio można wyznaczyć funkcje wzbudzeń dla prze-


rzutników typu D (tablica Z.9. lg). Funkcja wyjściowa jest taka, jaką obliczono
dla realizacji D.

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

D x = qxx + qxqQ A )= x + q0 y = q0x + q sq0

W celu wyznaczenia funkcji wzbudzeń dla realizacji na przerzutnikach JK ta­


blicę 9.1 f przekształcono (zgodnie z macierzą wzbudzeń dla przerzutnika JK) do
tablic Kamaugha (tablica Z.9. ih).
9.3. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

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.

Zminimalizować automat zadany na­


stępującą tablicą przejść-wyjść —ta­
*2 *3 *4 x, *2 *3 *4
blica Z.9.14.
5;
' i - 5 1 3 - 1 - 1
' 2 - 2 5 6 - - 1 1
,3 6 - - 2 0 - - 1
■4 - - 3 - 1 - 0 -
5 1 5 6 - - 0 - -
6 4 6 - - - - - -

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

Przeprowadzić minimalizację liczby stanów automatów zadanych tablicami przej­


ść-wyjść podanymi w tablicy Z.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

Wyznaczyć automaty minimalne dla następujących tablic przejść-wyjść —tabli­


ca Z.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

Dla automatów z zadania 9.16 wyznaczyć rodziny wszystkich maksymalnych


zbiorów stanów sprzecznych.

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

10.1. PODSTAWY TEORETYCZNE

-.-W nowoczesnej syntezie logicznej, której bazą elementową są moduły PLD,


;;FPGA oraz struktury GA, S.C., zagadnieniem o dużym znaczeniu praktycznym
"stał się problem syntezy strukturalnej układów sekwencyjnych, a w szczególno­
ści problem kodowania stanów wewnętrznych automatu. Sposób kodowania sta­
nów wewnętrznych w znacznym stopniu wpływa na złożoność zarówno funkcji
przejść, jak i funkcji wyjść, a w rezultacie - na złożoność części kombinacyjnej
4"uautomatu skończonego. °
,;>> Pierwsze algorytmy kodowania stanów wewnętrznych automatu skończone-
■go bazowały na teorii podziału (partition theory). Idea tego podejścia polegała na
poszukiwaniu takich podziałów na zbiorze stanów automatu, których własności
umożliwiały uzyskiwanie struktury automatu o mniejszych zależnościach funk­
cjonalnych. Szczególnie korzystne własności takiej redukcji ma tzw. podział za­
mknięty, zwany również podziałem z własnością podstawienia.
Podział II na zbiorze stanów automatu M —(V, S, 5) jest podziałem zamknię-
..tym (closed partition), gdy dla każdej pary stanów S„ Sf należącej do tego samego
'bloku II i każdego wejścia vk stany vk S, oraz V* Sf należą do wspólnego bloku n .
w Na przykład, w automacie o tablicy przejść-wyjść podanej w tablicy 10.1 na­
stępujące podziały są podziałami zamkniętymi

‘^Tablica 10.1 n , = ( a , B ,E ; C ,D ,F )
x n ( A C ;B ^ D ;E 7 f )
0 1 0 1

a A F 0 0 Zastosowanie podziałów zamkniętych do kodowania


i B E C 0 1 wynika z twierdzenia, które wiąże liczbę bloków podziału
c C E 0 1 zamkniętego z liczbą zmiennych kodowych. Załóżmy, że
D F A 1 0 dany jest automat M o zbiorze stanów S, |<Sj = n. Do za­
E B F 1 1 kodowania stanów potrzeba elementów pamię­
F D E 0 0 . ci. Oznaczmy przez (3(II) —liczbę bloków podziału II.

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

Niech A = (V, S, 8, A.) będzie automatem (zupełnym lub niezupełnym), gdzie:


V—zbiór liter wejściowych, S —zbiór stanów wewnętrznych, 5 -fu n k cja przejść,
a X - funkcja wyjść. Przyporządkujmy (w sposób wzajemnie jednoznaczny) ele­
mentowi (v, s) z dziedziny funkcji przejść automatu liczbę naturalną ze zbioru
K = {1, ...,t= |Z)5| }. Oznaczmy odwzorowanie £>6 —> K przez K i określmy na
zbiorze K podział charakterystyczny Pc w następujący sposób: do jednego blo­
ku B podziału Pu zaliczamy elementy z K, będące obrazami (przy odwzorowa­
niu K) takich par (v, .?) z Ds, którym funkcja przejść 5 przyporządkowuje taki
sam stan s' z S.
Na przykład, dla automatu o tablicy przejść podanej w tablicy 10.2a i odwzo­
rowania K podanego w tablicy 10.2b podział Pv ma postać:

Pe =(1,8,12,14; 2, 7,10,16; 6, 9,13; 3, 5,11,15; 4)

154
I; Tablica 10.2

b)

Niech II = {Ph ...,P W) będzie zbiorem dwublokowych podziałów n a K, gdzie


w spełnia nierówność:

riog2|s ,n < w < r i o g 2ió,ii+ rio g 2i v \ i

Oznaczmy przez (5,, Bjt B,) bloki iloczynu podziałów P, • P2 Pw .


Ustalonej komórce pamięci (rys. 10.2) odpowiada zawsze jej adres w UMA —wek­
tor (ax, aw ), który tu będzie wyznaczany w sposób następujący: /-ta składowa
wektora (ar,, . . ., /?,„), odpowiadająca elementom k ze zbioru Ą, jest równa 0, jeśli Bt
należy do pierwszego bloku podziału P , , natomiast 1 —jeśli Bi należy do drugiego
bloku podziału P , .
Zgodnie ze schematem z rys. 10.2 ustalonej komórce pamięci są przyporząd­
kowane tylko takie elementy z K, którym odpowiadają pary (v, s) o tej samej war­
tości funkcji przejść 5 automatu. W związku z tym adresy komórek spełniających
powyższy warunek wyznaczymy za pomocą podziałów ze zbioru f i wtedy i tyl­
ko wtedy, gdy:
P = P, •P 2 *...*P/ -...-P l„ < P ,
przy czym liczba zajętych komórek (liczba słów) pamięci ROM będzie równa
2"'-p, gdzie p - riog21ój 1.
Poszczególnym podziałWji] 'P\ na K, spełniającym powyższy warunek, odpo­
wiadają tym samym zmienne adresowe a u ..., aw , wytwarzane w układzie adre­
sowania UMA. Przy ustalonym kodowaniu stanów wewnętrznych i liter wejścio­
wych automatu, zmienne te są określonymi funkcjami zmiennych wewnętrznych
q i zewnętrznych x tego automatu, a ustalenie podziałów P, na K, zapewniających
najprostszy —przy danym w —układ adresowania, nie sprawia trudności. Istotną
rolę w syntezie układu UMA będzie spełniać zgodność podziałów na zbiorze K
z podziałami na zbiorze stanów S lub zbiorze wejść automatu A = (V, S, 5, X).

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:

!-■ [■log2|5 j’l^ w < rIog21^11 -t-riog21v\~\

punktem wyjścia rozważań będzie zakodowana tablica przejść automatu


=;.(F, S, 8, X), gdzie flog2|.Sjl =/?, flog2| F|1 = n. Załóżmy, że podziałami ko­
łującymi stany wewnętrzne sąjr,, ..., np , natomiast podziałami kodującymi wej-
KciaVsą0|, ..., 0„ . Dla każdego podziału n i każdego podziału 0 znajdujemy zgod-
my zmimi podział P. W celu zapewnienia jednoznaczności kodowania zmiennych
fadreśowych a x, ...,a w i jednocześnie odpowiedniego przyporządkowania elemen-
gtów ze zbioru K —przy ustalonej funkcji K —poszczególnym komórkom pamięci,
fnależy utworzyć w podziałów P na zbiorze K takich, że:
. Proces generacji podziałów P ułatwia pojęcie r-przydalności podziału (zbio­
ru podziałów) P względem podziału Pv (porównaj rozdz. 7). Zauważmy bowiem,
że warunek (10.1) mogą spełniać wyłącznie takie podziały P, które są/'-przydatne
względem Pc , gdzie r < w.
Wszystkich podziałów P, zgodnych z podziałami n oraz 0 ustalonymi przez ko­
dowanie automatu A, jest n + p. Oznaczmy je przez Pz — {Z3,, P„+p}. Sytuacja
optymalna będzie więc wtedy, gdy w zbiorze P. istnieje w-przydatny (względem
PL. ) podzbiór. W tym przypadku każda zmienna adresowa a będzie funkcją jed­
nej zmiennej - wewnętrznej q albo zewnętrznej x - automatu A. Jeśli ze zbioru P.
nie można wyselekcjonować w-elementowego podzbioru w-przydatnego względem
Pc , to do dalszych obliczeń należy wybrać //-przydatny (względem Pc ) podzbiór
{ P i , gdzie u = max. Pozostałe w —ii podziały należy dobrać tale, aby:

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

Z rozważali tych wynika, że największy wpływ na


stopień skomplikowania układu adresowania ma ta jego Rys. 10.3. Realizacja au­
część, w której zmienne adresowe są zależne od więcej tomatu wg warunku (10.1)
niż jednego argumentu. Dlatego też najistotniejszy jest
taki dobór kodowań stanów wewnętrznych i liter wejściowych automatu, przy
którym można uzyskać maksymalny zbiór podziałów P (zgodnych z n albo 0)

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:

r = f log2a ] + Tlog2 max

:ie: Bt - blok podziału n, 5 - globalna funkcja przejść, a symbol max 18 (Bt)\


acza liczbę elementów w najliczniejszym zbiorze 8 (J5,). Analogiczne zależno-
można wyprowadzić dla podziałów P zgodnych z 0, a także zgodnych z {n, 0}.

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

automacie tym niezbędna liczba wejść adresowych pamięci jest równa 5.


>zrealizować ten automat z wykorzystaniem pamięci o 4 wejściach adreso-
;h, należy zaprojektować odpowiedni układ modyfikacji adresu. W tym celu
:li się tablicę przejść-wyjść (stany następne ponumerowano liczbami natural-
li —tablica 10.3b) na 8 części w taki sposób, aby każda z nich zawierała co
vyżej dwa różne stany następne. Dla U= {xu x 2, q {}, V= {q2, q3} podziałowi
li odpowiada zapis analityczny w rachunku podziałów:

\U )\P c f (d)(6); (2); (3, 7)(4); (5)(8); (9,13); (10)(14); (I I)(I5); (12)(16))

P(F) = (lj 2,3; 4,5,13,14,15,16; 6, 7, 8; 9,10,11,12)

lU.j- |tl„ , ^ >■


Zgodnie z metodą dekompozycji szeregowej należy teraz wyznaczyć odpo­
wiedni podział n G, któiy dla zapewnienia warunku:

p {U )-n a < pc

musi oddzielać elementy 1 od 6 ; 3, 7 od 4 itp. - jak to wynika z podziału ilora­


zowego P(U)\PC. Łatwo sprawdzić, że jest to niemożliwe, gdyż odpowiedni po­
dział n c miałby w swoim pierwszym bloku P, dwa pierwsze bloki P(V), a w dru­
gim - B2 —dwa ostatnie bloki P(V), czyli

B, = {L/2^3; 4,5,13,14,15,16} , B2 = {6,7,8; 9,10,11,12}

Tym samym po oddzieleniu 1 od 6 nie może być spełniony warunek na oddzie­


lenie elementów 3, 7 od 4. Dlatego trzeba powiększyć zbiór V, dodając do nie­
go argument*,. Zmienna*, oddziela elementy 1, 2 od 3 (tablica 10.3b), a tym sa­
mym element 3 będzie można przenieść do drugiego bloku podziału IIG.
Zatem:
v = {*1> (Ta)
P{V') = (12; 3; 4,5,15,16; 13,14; 6 ; ^ 8 ; 9 ^ 0 ; K i l )

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

P(IJ) • n ; ; = (I; 6 ; 2 ; 3 ? 7 ; 4 ; 5; 8; 9 ; 13; 10 ; 1 4 ; 11; 15; 12 ; 1 6 )

czyli P ( f / ) - n '; < P C.


Tablica prawdy funkcji g reprezentującej UMA jest podana w tablicy 10.4,
a tablica określająca zawartość pamięci —w tablicy 10.5.
Z tablicy 10.4 wyznaczamy g = q2 + q3x {. Schemat realizacji automatu poka­
zano na 17 s. 10.4.
Ten sam automat można również zrealizować w strukturze pokazanej na
rys. 10.5. W strukturze tej wejściami bezpośrednimi są tylko zmienne wewnętrz­
ne zbioru U= {<7,, q2}, czyli V= {*,, x 2, q2}. Taką realizację uzyskamy przy po­
dziale tablicy przejść (tablica 10.2) automatu na 4 części, z których każda będzie
zawierać nie więcej niż 4 stany następne.
Jeden z możliwych podziałów pokazano w tablicy 10.6a. Z kolei w tablicy 10.6b
dokonano numeracji zajętych kratek tablicy przejść (są to jednocześnie abstrak­
cyjne adresy komórek pamięci ROM) oraz wprowadzono kodowanie wstępne dla
■ zmiennych qx, q0 i wtórne dla zmiennej q3. Na tej podstawie wyznaczamy podziały
' P(U), P(U)\PCoraz P(V):

P(U) = (1, 2,3,4,5; 6, 7,8,9; 10,11,12; 13,14,15,16)

7 W ) | Pc = ((1), (3,5), (2), (4); (6,9), (7), (8); (10), (11), (12); (13), (14), (15), (16))

P(F ) = (l76; 10,13; 2/7; 14; 4,11,15; 9; 5,12,16)

Tablica 10.4 Tablica 10.5

Blok <?3 g Blok *2 <?. g <72


h2 0 0 0 0 i 0 0 0 0 0 0 0
3 0 0 1 1 6 0 0 0 1 0 0 1
4, 5,15,16 0 1 1 0 2 0 I 0 0 0 0 1
13,14 0 1 0 0 3/7 1 1 0 1 0 1 0
1 0 1 4 1 1 0 0 1 0 1
6 0
5 1 0 0 0 0 1 0
7/5 1 0 1 1
8 1 0 0 1 0 0 0
9 /0 1 1 0 1
9 0 0 l I 1 1 I
11,12 1 1 1 1
13 0 0 1 0 1 1 1
ió 0 1 1 1 0 0 1
14 0 1 l 0 0 0 0
n 1 1 1 1 0 0 0
15 1 1 1 0 0 1 0
12 1 0 1 1 1 1 1
16 1 0 1 0 0 0 1

Rys. 10.5. Schemat logiczny innej realizacji


automatu z przykładu 10.1
^ffpp%,#r:

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

n. : (1, 6,9,14; 3, 5,8,12,16; 2, 7,10,13; 4,11,15)

Korzystamy przy tym z warunków „rozdziału” zapisanych w podziale ilorazo­


wym P{U) |Pc. Sposób tej konstrukcji jest pokazany w tablicy 10.7.
Oczywiście, w celu obliczenia tabli­
Tablica 10.7
cy prawdy (co pomijamy) dla funkcji g u
g2 modyfikujących adres należy zakodo­ 0) (3, 5) (2) (4)
wać bloki podziału II f;. Wystarczy przyjąć
176 378 V7 4 ,1 1 ,1 5 i
dla pierwszego bloku kod 00, a dla następ­
nych kolejno 01, 10, 11. Wtedy poszcze­ 9 5 ,1 2 ,1 6 1 0 ,1 3
gólne wiersze tej tablicy będą wyznaczane
przez bloki podziałów P(U) i'IIw. Na przy­ Ti
kład, blok 1,6 determinuje wektor je,, x2,
q x = 000, któremu odpowiadają wyjścia g xg2 = 00. Dalej analogicznie. Natomiast
do obliczenia tablicy adresowania pamięci ROM trzeba obliczyć iloczyn P(JU) • n 0:

P(U ) ■n G = (1; 2; 3,5; '# 6 ,9 ; 7; 8; 10; 1U 12; 13; 14; 15; 16)

Bloki tego iloczynu determinują rzeczywiste adresy i zawartość komórek pa­


mięci ROM.
Na przykład, abstrakcyjnemu adresowi reprezentowanemu przez blok 1 odpo­
wiada adres rzeczywisty ~P00p. W komórce ROM o tym adresie musi
być zapisany kod stanu czyli q xq2q3 —000. Podobnie, dla trzeciego bloku 3,5,
mamy adres q xq2g\g2 = 0001 oraz kod stanu S4, czyli 101.

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)

Tablica Z.lO.la Tablica Z. 10.1 b

. 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

Podział charakterystyczny PF grupuje elementy 1 ,..., 16 (abstrakcyjne komór­


ki pamięci) w bloki odpowiadające temu samemu stanowi.
PF = (1, 8,12,14; 2,7,10,16; 6,9,13; 3,5,11,15; 4)
P{U) = P(ql,q 2) = (1,2,3,4,5; 6 ,7,8,9; 10,11,12; 13,14,15,16)
P(U) | PF = ((1)(2)(3,5)(4); (6 ,9)(7)(8); (10)(11)(12); (13)(14)(15)(16))
P(V) = P(xt, x2, q3) = (1,6; 10,13; 2, 7; 14; 3,8; 4,11,15; 9; 5,12,16)
Podział tworzymy, łącząc bloki P (V ) :
jL blok ITó; 9; 10,13
2. blok 2/7; 14
Ś; blok 3^8;5,12,16
4] blok 4 ,11,15
n c; = (1, 6, 9,10,13; 2, 7,14;3, 5,8,12,16; 4,11, IS)

7 P(U) ■n G = (1, 2,3, 4,5; 6, 7, 8,9; 10,11,12; 13,14,15, 1 6) •


. :(i, 6, 9,10,13; 2, 7,14; 3 ^ 8 ,1 2 ,1 6 ; 4,11,15) =
= (1; 2; 375; 4; M ; 7; 8; 1Ó; 12; H ; 13; 14; 16; 15)

gi =X) X2 + q i x i

g 2 =X\ Xl + <73*1 + <hX)*2

Schemat blokowy dekompozycji jest przed­ V

stawiony na rys. Z.10.1, a tablice prawdy bloków


UMA i ROM odpowiednio w tablicy Z.lO.lc
i Z.lO.ld.

Rys. Z.10.1. Schemat blokowy dekompozycji do zadania 10.1 <h <72 <73

Tablica Z.lO.lc Tablica Z.lO.ld

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

PF = (5,17,19; 13,18; 4,6; 9,11,13; 10,15; 12, 20; 8,16; 2, 7,14)

i P(U) = (1,3,8,16,18; 4, 6,9,11,13; 2,5, 7,14,17,19; 10,12,15,20)

Ł \- : | P,, = (1,3,18X8,16);(4,6)(9,11,13);(2,7,14)(5,17,19);(10,15)(12,20)

§ V; P(F) = (1,2; 3,4,5; 6, 7; 8,9,10; 11,12; 13,14,15; 16,17; 18,19, 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

Zapisane w podziale ilorazowym warunki dekompozycji pozwalają utworzyć


^■blokowy podział n n, składany z bloków P(V) w sposób przedstawiony kolejno
*^tablicach Z.10,2b i Z.10.2c:
® blok 1,2; 3, 4, 5; 18,19, 20; 6, 7
l:, blok 8,9,10; 16,17; 11,12; 13,14,15
■;|JL -Występujące w tym podziale konflikty można zlikwidować, oddzielając ele-
fnenty 1 od 2, 6 od 7, 11 od 12 oraz 16 od 17. Do tego wystarczy zmienna x x.
Emienną-r, należy wprowadzić do zbioru V, uzyskując V - {je,, q x, q2, q3}.
m
Tablica Z.10.2b Tablica Z.10.2c
00 01 11 10 Z 00 01 11 10 Z
000 1 2 - 8 - 000 1 1 — 2 — Z2
001 2 _2 3 1 - 2. 001 2 3 4 5
010 3 - 3 8 - 2, 010 3 - 6 7 —
z,
011 4 7 4 - 5 Z! 011 4 8 9 - 10 Z,
100 5 - 4 - 6 4, 100 5 - 11 — 12 Z,
101 6 - 4 8 5 z. 101 6 _ 13 14 15 z,
110 7 7 - 1 -
Z, 110 7 16 - 17 -
Z,
111 8 2 - 1 6 111 8 18 - 19 20 Z7

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)

n c = (1 ,3, 4, 5,6,12,17,18,19, 20; 2, 7,8,9,10,11,13,14,15,16)

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

Tablice prawdy bloku UMA i ROM przedstawiono odpowiednio w tabli­


cy Z.10.2d i Z.10.2e.

Tablica Z.10.2d Tablica Z.10.2c

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

;Zgodnie z tym schematem i tablicą przejść z ponumerowanymi komórkami


amięci zapisujemy podziały:

PF = (1,12,13; 2,3,4, 5; 6, 7; 8,9,10,11,14)

P(U) | PF = P(gt, q2) | PF = (1X2,3); (4 ,5X6); (7)(8,9,10); (11,14)(12,13)

P(F) = P (x„ x2, x3) = (4, 7,11; 1, 5,8; 2,9,12; 6,10,13; 3,14 )

Podział n c tworzymy wg podziału ilorazowego P (U ) | PF, łącząc bloki P (V )


w dwa bloki:
1. blok 1,5,8; 4, 7,11
2. blok 2,9,12; 3,14; 6,10,13

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

jj P (V ) = P(qx, x x,x 2 ,x 3) = (4; 7^1; US; 8; 2; 9 J2 ; 6; H U T 3; 14)

\ pozwoli utworzyć n 6. spełniający warunek dekompozycji.

} n c = (1,4, 5, 7,11,14; 2, 3, 6,8, 9,10,12,13)

P (u y n (; =

= (1,2,3;4, 5,6;7,8,9,10; 11,12,13,14)-(1,4,5,7,11,14; 2,3,6,8,9,10,12,13) =


= (I; 4 3 ; 6; 7; 8,9,10; U J 4 - 12,13)
Tablicę prawdy bloku UMA podano w tablicy Z.10.3c, a bloku ROM w tabli­
cy Z. 10.3d.
Tablica Z .K U c Tablica Z.10.3d

Blok 4, *1 -*2 A 8 Blok 4, 42 g Q'


4 0 0 0
0 0 1 0 0 0 01 b
7, 11 1 0 0
0 0 2 ,3 0 0 1 10 c
1, 5 0 0 0
1 0 4, 5 0 1 0 10 c
8 1 0 0 1 1 6 0 1 1 11 d
2 0 0 1 0 1 7 1 0 0 11 d
9, 12 1 0 1 0 1 8, 9, 10 1 0 1 00 a
6 0 0 1 1 1 11, 14 1 1 0 00 a
10, 13 1 0 1 1 1 12, 13 1 1 1 01 b
3 0 1 0 0 iv
14 1 1 0 0 0

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

P(U) I Ąr = O ,4X2,3); (5 ,6)(7); (8)(9,10,11); (12)(13,14)

P{V) = (1,5, 8; 6,9,12; 2,10,13; 3, 7,11; 4,14)

Tablica Z.10.4a Tablica Z.10.4b

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

Tworzenie podziału Ua:


.1. blok 1,5,8; 4,14; 6,9,12
2. blok 2,10,13; 3, 7,11
Konflikty wymagają rozdzielenia elementów 6, 12 od 9 oraz 4 od 14, co moż­
na uzyskać za pośrednictwem zmiennej q2- Dlatego dla dekompozycji nierozłącz­
nej wybieramy q2 i liczymy podział P(q2)-

P(q2) = ( 1, 2,3 ,4 , 8,9,10,11; 5,6,7,12,13,14)

co ułatwia obliczenie P(V):

. P(V') = P (V )-P (g 2) = (1,8; 5; 6,12; 9; 2,10; 13; 3,11; 7; 4; 14)

Z bloków P (V ) łatwo można utworzyć H'a :

U'G = (1,4,5, 6,8,12; 2,3, 7,9,10,11,13,14)

P (U )-n 'c = P (qv g 2 ) - n 'G =


= (1,2,3,4; 5,6,7; 8,9,10,11; 12,13,14) *(1,4,5,6,8,12; 2,3,7,9,10,11,13,14) =
i = 0 4 ; 2^3; 576; 7; 8; 9,10, li ; 12; 13/14)
Schemat budowy dekompozycji pokazano na
rys. Z. 10.4, a tablice prawdy komponentów poda­
no w tablicy Z. 10.4c i Z. 10.4d. .

Rys. Z. 10.4. Schem at blokow y dekom pozycji do zada­


n ia 10.4 Z

Tablica Z.10.4c Tablica Z.10.4d

Blok *1 *2 *3 g Blok 4, <h g Stan


1,8 0 0 0 0 0 1 ,4 0 0 0 d
4 0 1 0 0 0 2 ,3 0 0 1 C

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

Automat z tablicy Z. 10.5a zrealizować w struktu­ Tablica Z.10.5a


rze UMA/ROM, gdzie na rejestr adresowy wcho­
dzą sygnały {xt, q x, g}. Podać tąblicę UMA oraz V
s v. V2 V3 V4
zawartość ROM. Pozostałe bity (q2, q3) kodują­
a d - a -
ce stany wynoszą odpowiednio: a —00, b = 01,
c = ł ł ,r f = 10, <? = 0 0 ,/= 11. b d c b b
c d a b
Rozwiązanie d e c a a
• f e c e f f
Wiedząc, że na rejestr adresowy wchodzą sy­
c c - a
gnały {jc(, <7 j, g } , należy wyszukać odpowied- r

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

PF = (1,3, 7; 2,8,12,13, 20; 4,11,14,18,19; 5, 6,9; 16,17; 10,15)

P(U) = P(Xl, gi) =


- (1,3,4, 7; 2, 5, 6,8,9; 10,11,14,15,18,19; 12,13,16,17, 20)

P(U))PF = P (xt,g t)\P ,.=


(1,3, 7)(4); (2 ,8)(5,6,9); (10,15)(11,14,18,19); (12,13,20)(16,17)
i
P(V) = P(q 2 ,q 3 , x 2) =
=p(1,14,17; 2,15,16; 3,6; 4,5; 9,18,20; 7,8,19; 10,13; 11,12)
( i
Ma podstawie podziału ilorazowego P (U ) | P,. tworzymy podział nc;, które-
S? ololci składamy z bloków P (V ) :
1 blok 1,14,17; 2,15,16; 3, 6; 7,8,19
2 . blok 4, 5; 10,13; 11,12; 9,18, 20

W celu likwidacji konfliktów należy rozdzielić elementy: 2, 16 od 15; 3 od 6.


11 od 12 oraz 18 od 9, 20. Jak wynika z tablicy Z.10.5b rozdział taki zapew­
nia zmienna x t. Dlatego zbiór V= {q2, q3, x 2} należy powiększyć o Din
V — {q2, q3, x,, x2) (rys. Z .10.5) tworzymy P {V ) i na tej podstawie uzyskuje­
my ostateczny n 0:

P(V') = P(q 2 ,q 3 , x ],x 2) =


= (U 4 ; 15; 2 J6 ; 17; 3; 4; 5; 6; 18; 7^19; 8; 9,20; 10; U; 12; 13)

n (; = (1,2,3,7,8,11,14,16,17,18,19; 4 ,5 ,6 ,9 ,1 0 ,1'2,13,15, 20)

P(U) ■U a = (1,3,4,7; 2 ,5 ,6 ,8 ,9 ; 10,11,14,15,18,19; 12,13,16,17,20) •


•(172,3, 7,8,11,14,16,17,18,19;4,5,6,9,10,12,13,15,20) =
= 07V7;4;2T8 ; 5, 6,9; 11,14,18,19; 10,15; 16,17; 12,13, 20)

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

Tablice prawdy bloku UMA i ROM podano odpowiednio w tablicach Z.10.5c


i Z.10.5d.

Tablica Z.10.5c Tablica Z.10.5d

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

3 0 1 0 0 0 11, 14, 18, 19 0 1 0 0 1 1 c

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

iTablica Z.lO.Ca Tablica Z.10.6b

: 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

Ponieważ stany następne S są dowolne, więc podział P^jest podziałem zerowym.

P(U) | PF = P(qx, x x,x 2)\ Pp = (1)(5); (2)(4); (3); (6)(8); (7)(9)

P (V ) = P(q2, q3) = (1,2,3; 4; 5,8,9; 6, 7)

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

I Schemat blokowy uzyskanej dekompozycji podany jest na lys. Z. 10.6, a tabli­


ce prawdy komponentów odpowiednio w tablicy Z.10.6c i Z.lO.ód.
92 <73 Tablica Z.10.6c Tablica Z.10.6d

Blok q2 q3 s Blok 9, *, *2 g O'


I, 2, 3 0 0 0 1 0 0 0 0 s
4 0 1 1 5 0 0 0 1 s
5, 8, 9 1 1 1 2 0 0 1 0 s
6 ,7 1 0 0 4 0 0 1 1 s
3 0 1 1 0 s
6 1 0 0 0 s
i Q 8
7
1
I
0
1
0
1
1
0
s
s
Rys. Z. 10.6. Schemat de­
kompozycji do zadania 10.6 9 1 1 1 1 s

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

Tablica Z.10.7b Tablica 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}

Pf (1,3, 7; 2,8,12,19,20; 4,10,11,13,18; 5,6,9; 14,17; 15,16)

P(U) = P{qx, x x) = (1,3,4, 7; 2,5, 6,8,9; 10,11,13,14,17,18; 12,15,16,19,20)

:P(U) | PF = ((1,3,7X4); (2 ,8)(5,6,9); (10,11,13,18)(14,17); (12,19,20)(15,16))

P (F ) = P(<72>93 >-^2) = (1,10,12; 2,11; 3,6,13,16; 4,5,14,15; 7,8; 9; 17,20; 18,19)|j


Podział U C1 składamy z bloków P(V):
1. blok: UoTT2 ; 3, 6,13,16 ; 778 ; V H ; 18,19
2. blok: 4,5,14,15; 9 ; 17,20
Niestety, powstają konflikty, które likwidujemy, oddzielając elementy 3, 13 od
6, 16 oraz 17 od 20. Rozdział ten zapewni zmienna jct.
Stąd V = { q2, q ^ x u x2}.
P(V') = P(q 2 ,q 3 , x i, x 2) =
: (1,10; 3,13; 17; 11; 4,14; 7; 18; 2; 5,15; 8; 19; 12; 6,16; 9; 20)

WG = (1, 2,3, 7,8,10,11,12,13,18,19, 20; 4,5, 6,9,14,15,16,17)

P(U )-n'a = (1,3,4, 7;2, 5,6,8,9; 10,11,13,14,17,18; 12,15,16,19,20)-


•( U T U , 8,10,11,12,13,18,19, 20; 4,5,6,9,14,15,16,17) =
= (1,3, 7; 4; 2,8; 5,6,9; 10,11,13,18; 14,17; 12,19,20; 15,16)
Tablice prawdy komponentów dekompozycji podano w tablicy Z.10.7d i Z. 10.7e.

Tablica Z.10.7d Tablica Z.10.7e

Blok 9, <?:, *2 s Blok 9i S 9, ‘h 4,


1, 10 0 0 0 0 0 1 ,3 ,7 0 0 0 1 0 1
3, 13 0 1 0 0 0 4 0 0 1 0 0 0
17 1 1 0 0 1 2, 8 0 1 0 0 1 0
11 0 0 0 1 0 5, 6 ,9 0 1 1 1 1 1
4, 14 0 1 0 1 1 10, 11, 13, 18 1 0 0 0 0 0
7 1 0 0 1 0 14, 17 1 0 1 1 0 0
18 1 1 0 1 o. 12, 19,20 1 1 0 0 1 0
2 0 0 1 1 0 15, 16 1 1 1 0 0 1
5, 15 o l l l i
8 1 0 1 1 0
19 1 1 1 1 0
12 0 0 1 0 0
6, 16 0 1 1 0 1
9 1 0 1 0 1
20 1 1 1 0 0

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.

ZADANIE 10.10 '


Układ sekwencyjny opisany tablicą przejść (tablica Z. 10.10), w którym S ozna­
czają dowolne stany spośród A, B, C, D, E, należy zrealizować na pamięci ROM
o czterech wejściach adresowych, ale z takim
UMA, aby możliwa byłAJręaHzacja dowolnego
automatu. Dowolność oznacza, że nie zmienia się \ AT
jedynie położenie stanów nieokreślonych (kresek 00 01 11 10
s \
w tablicy przejść), natomiast stany następne S są A - S - S
dowolne. W rozwiązaniu podać wyrażenia bo­ B s s s
olowskie opisujące UMA oraz sposób adresowa­ C s - - s
nia pamięci ROM (zmienne adresowe oraz adre­ D s - s -
sy kilku pierwszych komórek pamięci). E s - s s

175
ZA DAN IE 10.11

Tablica Z.10.11 Automat o podanej tablicy (tablica Z. 10.11) zre


alizować na pamięci ROM o 3 wejściach adreso­
00 01 11 10 wych i bloku UMA o minimalnej liczbie wejść.
5 \
W rozwiązaniu podać organizację pamięci ROM
a s - d - oraz tablicę prawdy bloku UMA.
b s C b b
c - s d b
cl C C - a
e C f e e
f f C a e
■s f c a a ■

i•willi
i
ZADANIE 10.12

Tablica Z.10.12 Układ sekwencyjny opisany tablicą przejść (tabli­


ca Z. 10.12) zrealizować na pamięci ROM o 3 wej­
ściach adresowych oraz jak najprostszym UMA.
W rozwiązaniu podać funkcję boolowską opisu­ a ji
jącą modyfikator adresu oraz zawartość pamięci Ś fSMf
•$
ROM. Obliczyć zajętość pamięci przy klasycznej
realizacji oraz po dekompozycji (w bitach), przy­
jąć, że wyjście układu jest reprezentowane sło­
wem 3-bitowym.

Automat o podanej tablicy (tabli­


ca Z. 10.13) zrealizować na pamięci
\A '
000 001 100 ni 011 ROM o 4 wejściach adresowych i naj­
s \
• a
prostszym bloku UMA. W rozwiązaniu
a\ a - a b
podać wyrażenie boolowskie dla UMA.
b; b C - c b
Przyjąć oznaczenie wejść jako: x ,,x 2, x3.
c d e e d -
ci - a a e a
e c d c - c

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

11.1. PODSTAWY TEORETYCZNE

Układy mikroprogramowane są specyficzną techniką realizacji układów sterowa­


nia, polegającą na bezpośredniej transformacji sieci działań na mikroinstrukcje
tzw. mikroprogramu sterowania.
Przy syntezie mikroprogramowanego układu sterującego na podstawie danej
sieci działań istotne jest więc właściwe przyporządkowanie stanów wewnętrz­
nych US poszczególnym segmentom sieci działań. Przyporządkowanie to impli­
kuje jednocześnie podział sieci działań na mikroinstrukcje, tj. takie jej segmenty,
które są wykonywane w jednym, elementarnym takcie pracy układu sterującego.
Przyjmując do opisu podstawowych czynności układu sterującego, takich jak
wygenerowanie mikrorozkazu Z, badanie warunku *, określenie stanu następnego
A ' (następnej wykonywanej mikroinstrukcji), odpowiednio symbole:
Z, i f * then ... else ..., A ' = A t
i zakładając, że rozdzielenie przecinkiem oznacza, iż czynności są wykonywane
jednocześnie (w jednym takcie), można mikroinstrukcję US typu Moore’a opisać:
A j\ Z = Z„, i f * then A '= A j else A ' —A k
a US typu Mealy’ego:
Aj\ i f * then Z = Z„, A ' ^ A , else Z = Z b, A ' = A k
Zbiór (lista) mikroinstrukcji wykonywanych przez US umożliwia przyporząd­
kowanie segmentom sieci działań stanów A t układu. Integralną częścią mikro­
programowanego układu sterującego jest więc pamięć stała ROM, zawierająca
mikroprogram pracy całego układu, czyli wykaz mikroinstrukcji wykonywanych
w poszczególnych stanach wewnętrznych A,. Schemat blokowy takiego układu
jest pokazany na rys. 11.1. Wyróżniamy w nim: pamięć mikroprogramu PM, re­
jestr adresowy RA oraz układ adresowania UA.

178
ta!»s-
*:

Rys. 11.1. Mikroprogramowalny układ sekwencyjny

Podstawowym zadaniem mikroprogramowanego układu sterującego jest:


a) generacja sterowań,
b) wybór warunku x i rozejście w mikroprogramie,
c) przejście do nowego adresu.
Wszystkie te trzy funkcje można wykonać w jednym takcie pracy układu,
przyjmując do jego realizacji licznik, pamięć ROM (PM) i multiplekser warun­
ków (rys. 11.2a).

Rys. 11.2. Układ sterujący z licznikiem: a) schemat blokowy, b) mikro instrukcja

W układzie tym słowo pamięci (C, Z , B) = F(Aj), a więc w stanie A, układ w y


lconuje mikroinstrukcję typu skok wanmkpwy (rys. 11.2b):
A j : Z, if xv then A ' ~ A t else A '= A H.X

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

f|'P rzykład 11.1


^Zaprojektować układ sterujący o następującej liście mikroinstrukcji:
la !> else A ' = A /+|5
else A ' - A i+2.

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-

j g n i o : sJVh = (S, C, Z ) oraz We = <S , B, Z ).


Zakładając do realizacji przejścia A i —> A M licznik z wejściem sterującym L
—.O- licznik zlicza, L — 1 —licznik wpisuje), a do realizacji przejścia/i, • ■A,/+2
|sumator, uzyskujemy schemat blokowy układu jak na rys. 11.3.
K |D o wyróżnienia poszczególnych mikroinstrukcji przyjmijmy wektoiy Sep
o składowych S \,s 2:
1 ^ ' = 00, Ą = 0I, S V= U
<("■'.Y-
W tej sytuacji wejściami dekodera mikroinstrukcji DM będą: wyjścia■?,, s2, pa-
lpijęci<oraz wyjście xc multipleksera warunków. Natomiast wyjściami będą: wej-
fsćie Z licznika oraz wejścia adresowe <9|, Q2 multipleksera adresowego.
L
Pi
Q2
i

Zapisując wartości sygnałów sterujących L, Tablica 11.1


Qi> 8 2 dla poszczególnych mikroinstrukcji i róż­
nych xc. uzyskujemy tablicę sterowań (tabli­ W , 0, e 2 L
ca 11.1), z której obliczamy: 000 - - 0
00 1 0 1 1
Q\ = V ' 2 , 0-2= L = Ą , + s 2x c + ś 2x c 0 1 1 - - 0
0 I 0 1 1 1
Mikroinstrukcje, zapewniające wykonywa­
1 10 0 0 1
nie wymienionych podstawowych funkcji US,
i 11 •0 0 1
/ umożliwiają realizację dowolnej sieci działań, ale
10 1 - - -
w przypadku złożonych algorytpiów —zbudowa­
100 - - -
nych z wielu powtarzających się łragmentów —ich
zastosowanie wymaga oddzielnego zapisu w pa­
mięci mikroprogramu również tych powtarzających się fragmentów. Rozsądniej
jest w tym przypadku taki powtarzający się fragment mikroprogramu zapisać
w ustalonym miejscu pamięci o adresach od Aj do A k , a listę mikroinstrukcji (tym
samym strukturę US ) rozszerzyć o mikroinstrukcje umożliwiające skok z A {do Aj
oraz z A k do A M , kończąc powtarzany fragment programu (mikroprogramu) wa-

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

Oczywiście przy ponownym wejściu do podprogramu (np. ze stanu A ,—rys. 11,4a)


w części adresowej B mikroinstrukcji A k powinien być zapisany adres A,+l (inny niż
poprzednio). Dlatego też adres powrotu z podprogramu najwygodniej jest zapisy­
wać w dodatkowej pamięci układu sterującego, zwanej stosem. Stosem w najprost­
szym przypadku może być rejestr równoległy RS, zwany rejestrem śladu, z wejściem
sterującym q, w którym przy q = 0 wykonywana będzie mikrooperacja pamiętania
(HOLD), a przy q= 1 wykonywana będzie mikrooperacja wpisywania (LOAD).
Rozszerzając więc listę mikroinstrukcji, realizującą mikroinstrukcje podsta­
wowe, o mikroinstrukcje:
Aj : RS : Ajk ^9 A : Aj
A k \ if xc then A : = RS else A : —A M
gdzie RS jest wektorem zapamiętanym w rejestrze śladu, uzyskamy możliwość

1
powtarzania podprogramu A t, A k w dowolnym miejscu programu (rys. 11,4b).

j{, Zastosowanie rejestru śladu umożliwia ponadto prostszą realizację pętli


(rys.j 11.5a), tj. zespołu zbudowanego z ciągu mikroinstrukcji A„ A k oraz mikroin-
1strukcji skoku warunkowego z A k (koniec) do A t (początek pętli):
|j !; !
j A k : if xL. then A : —A t else A : = A kvX
wymagającej słowa pamięci
0 Dalej dla uproszczenia o formacie
mikropodprogram (S, C,
będziemy B). podprogramem.
nazywać

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

Z podanych segmentów sieci działań wynikają bezpośrednio formaty słów pa-.


mięci (kod mikroinstrukcji pominięty):
;):■ a) Z; b) Z, B; c) C, Z; d) C, B; e) C. I
Do adresowania pamięci mikroprogramu użyjemy rejestru adresowego RA.
Ponadto zakładamy użycie (rys. 11.7): multipleksera adresowego (MUXA), reje­
stru śladu (RS) oraz inkrementera ( + 1). Multiplekser MUXA musi mieć cztery
& wejścia:
■I n - dla adresu skoku B,
— dla adresu oczekiwania
— dla adresu przejściami + 1,
— dla adresu powrotu z podprogramu RS zapamiętanego w rejestrze śladu.
Tablica 11.2
Uwzględniając podane mikrooperacje, pra­
V si •*, s» Xc Q cę dekodera mikroinstrukcji można opisać ta­
a 0 0 0 - h HOLD blicą sterowań (tablica 11-2), której wiersze
b 0 0 1 - HOLD
są sygnowane sygnałami {s2, s u s0, xc), gdzie
k
0 1 0 0 HOLD
s2, S \, s0 są składowymi wektora S —kodu mi­
0 I 0 1 HOLD kroinstrukcji, natomiast kolumny są sygno­
h
0 1 1 0 HOLD
wane sygnałami wyjściowymi dekodera, ozna­
fi h
0 1 1 1 7„ LOAD czonymi zgodnie z ich przeznaczeniem lub
1 0 0 0 u HOLD funkcją. Schemat całego układu jest pokazany
e 1 0 0 1 na rys. 11.7.
h

¥ 184
Rys. 11.7. Schemat blokowy układu sterującego z przykładu 11.2

11.2. DEKODERY MIKROROZKAZOW

Rozważmy mikroprogram, w którym mikrooperacje ze zbioru M = {a, b, c, d, e, f


g, h, i,j, k) tworzą mikrorozkazy określone przez jeden z następujących podzbio­
rów mikrooperacji:
M x = {a, b, c, d, e, f ) , — {c,g.h, /}, M3 = { a , b, h, i, j} .
M ą = {d, h, k), M5 = {/, h) ■
Każdy z tych mikrorozkazów, łącz­
nie z mikrorozkazem pustym (niezawiera-
jącym żadnej mikrooperacji),możrja zre­
alizować w układzie przedstawionym na
rys. 11.8.
W układzie z rys. 11.8 odpowiednie
mikrooperacje połączono w podzbiory
realizowane za pośrednictwem jednego
dekodera. Podzbiorami tymi są {d, g, j )
oraz {e, i, k}. Charakterystyczne dla tych Rys. 11.8. Przykładowy układ generacji
podzbiorów jest to, że każda para mikro- sterowań

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:

14 4, {1,3,4, 5, 6, 10}, M 2 = { 2,4 , 5, 7}, M3 = {1,3,7, 8,9},


{6,7, 11}, M5 = { 8, 10}, M 6 = słowo puste

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

Uwaga: makroinstrukcja p/2 oznacza oczekiwanie na skok do adresu zewnętrzne-


£ .go, podanego na specjalnej szynie danych AZ. W rozwiązaniu należy podać:
1 formaty makroinstrukcji,
1 schemat blokowy układu sterującego, tablicę dekodera m ikroinstrukcj i,
£j- - wyrażenia boolowskie dwóch funkcji wyjściowych dekodera makroin­
strukcji.

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,

Uwaga: mikroinstrukcja |j! 2 oznacza oczekiwanie na skok do adresu zewnętrzne­


go, podanego na specjalnej szynie danych AZ.
Listę mikroinstrukcji należy uzupełnić o mikroinstrukcje umożliwiające ob­
sługę mikropodprogramu:
■ warunkowe wejście do mikropodprogramu, przy czym adres początku mikro­
podprogramu znajduje się w polu B pamięci PM, a adres powrotu z mikropod­
programu jest zapamięty^aily^w rejestrze śladu,
■ bezwarunkowy powrót z mikropodprogramu do adresu zapamiętanego w reje­
strze śladu.
W rozwiązaniu należy podać:
■ formaty mikroinstrukcji,
■ schemat blokowy układu sterującego,
■ tablicę prawdy dekodera mikroinstrukcji.
A.DANIE 11.5
ając do dyspozycji dwa rejestry o mikrooperacjach LOAD, HOLD, ze stero-
aniem odpowiednio: 0, 1, sumator, pamięć ROM oraz inne bloki funkcjonalne
jfamki, zaprojektować mikroprogramowany układ sterujący o następującej li-
ie mikroinstrukcji:
•p W -A j
p/2 : Z)5 if xc then A '= A , else A' ■zA h.,
p /3 : Z2, if xv then A ’ = At else A ' ■-■A H.\
Ponadto układ ma umożliwiać:
4 : warunkowe wejście do podprogramu (adres początku mikroprogramu zapisa­
ny w polu B pamięci mikroprogramu, adres A /+l powrotu z podprogramu za­
pamiętany w rejestrze śladu RS)
'5 : bezwarunkowe wyjście z podprogramu do adresu zapamiętanego w rejestize śladu
W rozwiązaniu podać:
formaty mikroinstrukcji,
schemat blokowy układu sterującego,
wyrażenia boolowskie funkcji wyjściowych dekodera mikroinstrukcji.
I li
\DANIE 11.6
ając dó dyspozycji rejestr o mikrooperacjach LOAD, HOLD ze sterowaniem
Ippydednio: 1, 0, sumator, pamięć ROM oraz inne bloki funkcjonalne i bram-
, zaprojektować mikroprogramowany układ sterujący o następującej liście mi-
oinstrukcji: 1
p/J :i Z, if xL. then A '■■A, else A '= A i+1
p/o : A ’ = A,
p/] : if xc then A '= A / else A '= A ti+1
p/4 : Z, if xc then A '= A Z else Z ' = Z ,
/vaga: mikroinstrukcja p/4 oznacza oczekiwanie na skok do adresu zewnętrzne-
, podanego na specjalnej szynie danych AZ.
W rozwiązaniu należy podać:
fragmenty sieci działań odpowiadające poszczególnym mikroinstrukcjom, for­
maty mikroinstrukcji,
schemat blokowy układu sterującego, :
tablicę prawdy dekodera mikroinstrukcji,
wyrażenia boolowskie funkcji wyjściowych dekodera mikroinstrukcji. ;^
dać optymalną organizację pamięci mikroprogramu —zasada wymienności pól.
I
I

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

W rozwiązaniu należy podać:


■ schemat blokowy układu sterującego,
* tablicę prawdy dekodera mikroinstrukcji oraz minimalne wyrażenia boolow­
skie opisujące jego wyjścia.

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.

Rys. Z. 11.8. Sieć działań do zadania 11.8

191
ZADANIE 11.9

Sieć działań z rys. Z. 11.9 należy przedstawić w formie tablicy przejść-wyjść.

Rys. Z. 11.9. Sieć działań do zadania 1! .9

ZADANIE 11.10

Mając do dyspozycji licznik o mikrooperacjach HOLD, LOAD, COUNT ze ste­


rowaniem odpowiednio: 00, 01, 1 - pamięć ROM oraz inne bloki funkcjonalne
i bramki, zaprojektować mikroprogramowany układ sterujący o następującej li­
ście mikroinstrukcji:
\ ' : A' —Aj
N N

P 4 : Z, if xc then else
N N1

i ' y
II II

II
+

i‘i • p/3 : Z, if xŁ. then else A' - A h.i


Podać formaty mikroinstrukcji i narysować schemat blokowy układu. Dla da­
nej sieci z rys. Z. 11.10 napisać fragment mikroprogramu, tj. podać zawartość
pierwszych czterech wierszy pamięci mikroprogramu - podać w kodzie dziesięt­
nym zawartość pól S, C, B, Y.

Uwaga: można użyć mikrorozkazu Y= 0.


ar

Rys. Z. 11.10. Sieć działań do zadania 11.10

ZADANIE 11.11

Układ z zadania 11.7 ma sterować pracą urządzeń ... y s, z których w poszcze­


gólnych taktach pracują wyłącznie (wg indeksów):

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

Rys. Z. U . 12. Schemat układu do


zadania 11.12

ZADANIE 11.13

Podany zespół 9 funkcji 4 zmiennych zrealizować w układzie o schemacie blo­


kowym pokazanym na rys. Z. 11.13. Zapewnić minimalną liczbę wyjść z pamięci
ROM. W rozwiązaniu podać organizację dekoderów i zawartość ROM.
Z. = 2(2, 5,9, 11)

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)

/ 8 = 2 (0, 2, 11, 12) U


Rys. Z. 11.13. Schemat bloko-
/ 9 = 2(0, 3, 10) wy do zadania Z. 11.13

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

/ S = Z(5, 16, 18,30) I ••• 1


U h
/ 6 = 2(2, 8, 13,20)
Rys. Z. 11.14. Schemat bloko­
fi ~ 2(8, 12, 27, 28) wy do zadania Z.l 1.14

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

12.2. SYSTEM ESPRESSO

System ESPRESSO jest rozbudowanym, heurystycznym programem minimali­


zacji funkcji boolowskich, opracowanym w początkach lat osiemdziesiątych na
Uniwersytecie Kalifornijskim y/ Berkeley. Swoją ogromną popularność zawdzię­
cza wolnej dystrybucji oraz dużej skuteczności obliczeń. Duża skuteczność obli­
czeń programu ESPRESSO jest wynikiem zastosowania szeregu heurystycznych
procedur oraz strategii iteracyjnego poprawiania.
Mimo upływu wielu lat od momentu jego powstania, system ESPRESSO jest
ciągle uznawany za wzorcowe p a y z ę d z i e do optymalizacji dwupoziomowych wy­
rażeń logicznych. '■'*
Najważniejszymi procedurami ESPRESSO są (rys. 12.1):
■ uzupełnienie (Complement),
■ ekspansja {Expand),
■ implikanty zasadnicze {Essential, primes),
■ pokrycie (Irredundant-Cover),
■ redukcja {Reduce).

197
Rys. 12.1. Procedury systemu ESPRESSO

Ponadto, w końcowej fazie obliczeń, procedury ekspansji i redukcji są po­


wtarzane z zastosowaniem odmiennej strategii obliczeń w procedurze zwanej
Last-gasp. Program kończy procedura redukcji literałów (Make-Sparse).

COM PLEM ENT


Procedura ta wyznacza uzupełnienie zbiorów F i D, a więc w przypadku pojedyn­
czej funkcji zbiór R tych kostek, którym funkcja przyporządkowuje wartość lo­
giczną 0.

EXPAND

Redukuje zbiór F d o zbioru FI;, w którym każda kostka jest implikantem prostym.

ESSENTIAL-PRIMES

Procedura oblicza implikanty zasadnicze i wprowadza je do zbioru D.

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

STANDARD ESPRESSO ZAPISU FUNKCJI BOOLOWSKICH

Standardem ESPRESSO, zwanym również standardem berkeleyowskim zapisu


funkcji boolowskich, nazywa się standard plików wejściowych akceptowanych
przez program ESPRESSO.
Plik z zapisem funkcji składa się z wierszy dzielących się na trzy grupy.
W pierwszej grupie znajdują się wiersze zawierające słowa kluczowe. Stanowią
one standardowe komendy definiujące sposób interpretacji pliku. W drugiej gru­
pie znajdują się wiersze składające się na macierz opisującą funkcję, natomiast
w trzeciej - wiersze zawierające komentarze. Przyjmuje się, że wszystkie wiersze
z grupy pierwszej z wyjątkiem jednego, oznaczającego koniec pliku, muszą się
pojawić w dowolnych miejscach pliku.
Wszystkie wiersze z grupy pierwszej rozpoczynają się od znaku kropki
Wiersze z grupy drugiej rozpoczynają się od jednego ze znaków „0”, „1”, lub
„|” (pionowa kreska, ASCII-124). Wiersze z grupy trzeciej rozpoczynają się od
znaku (ASCII-35). Ewentualne spacje na początku wierszy są ignorowane.

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

. m v [ z m ] [zm_bin] [dl] . . . [dn] —określenie liczby zmiennych (wejściowych 1


, i wyjściowych) funkcji boolowskich ze zmiennymi wielowartościowymi;'f|
[zm] określa całkowitą liczbę zmiennych, [zm_bin] —liczbę zmienn>cii
binarnych, [dl] . . . [dn] określają zaś ile wartości przyjmują poszcze­
gólne zmienne wielowartościowe. Na przykład, jeśli [dl] = 4, to pierw­
sza zmienna wielowartościowa jest zmienną czterowartościową. Ostatnią
zmienną wielowartościową traktuje się jako zmienną wyjściową. |
. i l b [ t l ] . . . [tn] -nadanie nazw symbolicznych wszystkim binarnym zmien-1
nym wejściowym; [tl] . . . [tn] określają nazwy poszczególnych zmień-1
nych, nazwy te nie mogą zawierać odstępów. f
. o b [ t l ] . . . [tn] - nadanie nazw symbolicznych wszystkim zmiennym wyj-
,• ściowym; [tl] . . . [tn] określają nazwy poszczególnych zmiennych
: ' i nie mogą zawierać odstępów. I
i l a b e l v a r = [ d ] [tl] . . . [tn] - nadanie nazw symbolicznych wszystkim1
wartościom jednej ze zmiennych wielowartościowych; [d] określa numer ;:
zmiennej, przy czym 0 oznacza pierwszą zmienną (na przykład binarną),
1 —drugą itch, [tl] . . . [tn] określają nazwy poszczególnych wartości tej >
zmiennej i nie mogą zawierać odstępów.
i C t y p e [t] określenie sposobu interpretacji matrycy opisującej funkcję lub
Ife ■
pif układ funkcji; [t] może być jednym z s y m b o l i r,fr, dr lubfdr. Znacze­
nie poszczególnych symboli zostanie podane przy omawianiu matrycowe­
go opisu funkcji.
jj:p h a s e [t ] —określenie polaryzacji zmiennych wyjściowych; [t] jest ciągiem i
zer i jedynek o długości równej liczbie zmiennych wyjściowych. Jedynka
w podanym ciągu oznacza, że minimalizowana ma być postać prosi a danej
funkcji (te kombinacje wartości argumentów, dla których funkcja przyjmu­
je wartość prawdy), zero zaś oznacza, że ma być minimalizowana postać
if zanegowana.
jLjpavir [:d] [dla] [dlb] . . . [dna] [dnb] —określenie par binarnych zmiennych f
wejściowych, które mają być ze sobą połączone za pomocą dwubitowych
i dekoderów wejściowych; [d] określa liczbę par, [dia] [dib] określają
zm ienne binarne tworzące parę. Zmienne mogą być określone przez swoje
kolejne numery (w odróżnieniu od komendy . label, tutaj zmienne są nu­
m erow ane 1, 2, ...) lub nazwy symboliczne (jeżeli użyto komendy . ilb).
. s y m b o l i c [sO] . . . fsn] ; [to] . . . [tn] — określenie zbioru zmiennych bi­
narnych, które mają być traktowane jako jedna zmienna wielowartościo­
wa. Wartościami tej zmiennej są liczby zapisane w systemie dwójkowym
jp- o[sn]. cyfrach będących wartościami podanych zmiennych binarnych [sO] . . .
Zmienna [sO] stanowi najbardziej znaczącą cyfrę. Łatwo zauwa­
żyć, że powstała w ten sposób zmienna jest 2”-wartościowa. Zmienne bi­
narne m ogą być określone przez ich numery kolejne (1, 2, ...) lub nazwy
m
Sr
symboliczne; [tO] . . . [t 2 n ] są nazwami kolejnych wartości powstałej
zmiennej wielowartościowej.
. s y m b o l i c - o u t p u t [sO] . . . [sn] ; [tO] . . . [t2n] —określenie zbioru binar­
nych zmiennych wyjściowych, które mają być traktowane jako jedna
zmienna wielowartościowa. Wartościami tej zmiennej są liczby zapisane
w systemie dwójkowym o cyfrach będących wartościami podanych zmien­
nych binarnych [sO] . . . [sn]. Zmienna [sO] stanowi najbardziej zna­
czącą cyfrę. Łatwo zauważyć, że powstała w ten sposób zmienna jest
2"-wartościowa. Zmienne binarne mogą być określone przez ich kolejne
numery (0, 1,...) lub nazwy symboliczne. [tO] . . . [t2n] są nazwani i ko­
lejnych wartości powstałej zmiennej wielowartościowej.
. k i s s —polecenie wykonania minimalizacji typu KISS. Zakłada się wtedy, że
funkcja opisuje przejścia stanów automatu. Trzecia zmienna od końca re­
prezentuje stan aktualny automatu, druga zmienna od końca stan następny.
Stan następny jest wtedy traktowany jako zmienna wyjściowa.
. p [d] —określenie liczby wierszy matrycy opisującej funkcję.
. e (. end) —oznaczenie końca pliku. Jest to jedyne słowo kluczowe, które poja­
wia się po matrycy opisującej funkcję. Pozostałe muszą pojawić się przed
matrycą.
Minimalnymi zestawami słów kluczowych są . i i . o dla funkcji binarnych,
.mv dla funkcji wielowartościowych.

REPREZENTACJA LOGICZNA FUNKCJI

W reprezentacji logicznej funkcji w standardzie berkeleyowskim pojawiają się


pojęcia zbioru włączenia (ON-Set), zbioru wyłączenia (OFF-Set) oraz zbioru nie­
istotnego (DC-Set —Don 't Care). ‘ON-Set jest zbiorem tych kostek, dla których
funkcja przyjmuje wartość 1. OFF-Set jest zbiorem tych kostek, dla których funk­
cja przyjmuje wartość 0. DC-Set. jest zbiorem tych kostek, dla których wartość
funkcji nie jest określona. Oczywiście funkcja zrealizowana za pomocą układu lo­
gicznego przyjmie jakieś warto,śęj dla kostek ze zbioru DC-Set, ale jest zupełnie
nieistotne, jakie to będą wartości'.'1Zauważmy, że zbiory ON-Set, OFF-Set i DC
-Set składają się na całą tablicę prawdy oraz że są one rozłączne.
Z faktu, że zbioiy ON-Set, OFF-Set i DC-Set są rozłączne i w sumie stanowią
zbiór wszystkich możliwych kostek dla danego zbioru argumentów funkcji wyni­
ka, że wystarczy podać jedynie dwa z trzech zbiorów, gdyż trzeci można obliczyć
jako uzupełnienie sumy dwóch podanych. Kostki podanych zbiorów uzupełnione
o wartość funkcji stanowią wiersze macierzy opisującej funkcję boolowską. Dla­
tego każdy wiersz pliku składający się na macierz musi rozpoczynać się od jedne-
r.e znaków występujących w opisie kostki. Dodatkowy znak „|” wynika z opi-
'unkcji ze zmiennymi wielowartościowymi. Standard berkeleyowski przewi-
2 następujące kombinacje podawanych zbiorów:
rpe £ - podany jest zbiór ON-Set. Zakłada się, że zbiór DC-Sef jest pusty.
Zbiór OFF-Set oblicza się jako uzupełnienie zbioru ON-Set.
rpe r - podany jest zbiór OFF-Set. Zakłada się, że zbiór DC-Set jest pusty.
Zbiór ON-Set oblicza się jako uzupełnienie zbioru OFF-Set.
fpe fd - podane są zbiory ON-Set i DC-Set, przy czym mogą one mieć część
wspólną. Przyjmuje się wtedy, że część wspólna nie powinna należeć do
zbioru ON-Set, a to, że należy, wynika jedynie z uproszczenia zapisu zbioiu
ON-Set. Zbiór OFF-Set oblicza się jako uzupełnienie sumy podanych zbio­
rów. Jest to tryb standardowy, przyjmowany wtedy, gdy w pliku nie wystę­
puje słowo kluczowe . ty p e .
/pe f r —podane są zbiory ON-Set i OFF-Set, przy czym muszą one być roz­
łączne. Zbiór DC-Set oblicza się jako uzupełnienie sumy podanych zbio­
rów.
rpe d r —podane są zbiory OFF-Set i DC-Set. Ewentualna część wspólna tych
zbiorów traktowana jest jako zbiór DC-Set. Zbiór ON-Set oblicza się jako
uzupełnienie sumy podanych zbiorów.
^pe f d r - podane są wszystkie trzy zbiory. Zbioiy ON-Set i OFF-Set muszą
być rozłączne, części wspólne zaś zbiorów DC-Set i ON-Set oraz DC-Set
i OFF-Set, jeżeli istnieją, są traktowane jako DC-Set.
Przynależność poszczególnych kostek do odpowiednich zbiorów określa się
podstawie symboli umieszczonych na pozycjach zmiennych wyjściowych.
Dizypadku jednej funkcji taka pozycja jest jedna, natomiast w przypadku ukła-
fun kej i jest ich tyle, ile jest funkcji w układzie. Ponieważ układ funkcji zapisu-
ię na jednym zestawie kostek, więc niektóre kostki są wykorzystywane do spe-
kacji (opisu) kilku funkcji, inne zaś jedynie do opisu jednej. Istotne jest, aby
żliwe było określenie, która kostka nie należy do opisu danej funkcji.
W celu pełnego rozróżnienia kostek wprowadzono cztery symbole: 1, 0, - i ~
>01-126). W zależności od zadeklarowanego typu matrycy opisującej funkcję,
tbole te mają różne znaczenia. Na przykład:
T?e f 1 kostka należy do zbioru ON-Set
O kostka nie należy do opisu funkcji
kostka nie należy do opisu funkcji
kostka nie należy do opisu funkcji
rpe i kostka nie należy do opisu funkcji
i. ■ o kostka należy do zbioru OFF-Set
kostka nie należy do opisu funkcji
kostka nie należy do opisu funkcji

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.

ZAPIS FUNKCJI ZE ZMIENNYMI WIELOWARTOŚCIOWYMI

W układach wielowartościowych został przyjęty tylko jeden typ matrycy opisującej


funkcję wielowartościową. Jest to typowa tablica prawdy, podająca wszystkie kom­
binacje argumentów, dla których funkcja jest określona, wraz z odpowiadającymi
im wartościami funkcji. Symbole odpowiadające zmiennym binarnym umieszczo­
ne są na początku kostki. Dalej umiesżczone są wartości argumentów wielowarto­
ściowych, ewentualnie oddzielone od siebie znakami |. Wartość argumentu wielo-
wartościowego przedstawiona jest za pomocą ciągu zer i jedynek o długości równej
lięzbie różnych wartości przyjmowanych przez dany argument. Jedynka na pozycji
n takiego ciągu oznacza, że ciąg reprezentuje wartość n danego argumentu. Jeżeli
w ciągu znaków znajduje się kilka je'dynek, to ciąg taki reprezentuje kilka wartości
argumentu, podobnie jak reprezentuje dwie wartości zmiennej binarnej.
Standard umożliwia jeszcze inny sposób zapisu wartości zmiennych
wielowartościowych. Jeśli po słowie kluczowym .mv liczbę wartości zmiennej wie­
lowartość iowej zapiszemy jako liczbę ujemną to wartość danego argumentu w kost­
ce będzie określana według jej nazwy symbolicznej. Każdej wartości występującej
w macierzy opisującej funkcję nadana jest symboliczna nazwa. Umieszczenie w ma­
cierzy większej liczby nazw symbolicznych niż to zadeklarowano po słowie kluczo-

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

S powoduje zapisanie w pliku T L 2 7 . e s p minimalnego pokrycia (tablica 12.1 b).

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

System DEMAIN jest pakietem oprogramowania do dekompozycji i odwzoro­


wania technologicznego złożonych układów kombinacyjnych opisywanych ta­
blicami zapisanymi w standardzie berkeleyowskim, z przeznaczeniem do realiza­
cji w strukturach programowalnych typu FPGA zarówno dla pamięci typu LUT,
jak i dla standardowych wbudowanych bloków pamięci typu ROM. W przypadku
układów kombinacyjnych, których budowa oparta jest na właściwościach arytme­
tyki rozproszonej (filtry cyfrowe), wystarczy podać wektor współczynników. Al­
gorytm wykorzystany w programie polega na:
■ dekompozycji funkcjonalnej, łączącej dwie jej procedury: szeregową (rozłącz­
ną i nierozłączną) oraz równoległą; ma on za zadanie przekształcić układ wej­
ściowy w wielopoziomową sieć układów o zadanych parametrach (komórki
LUT o określonej liczbie wejść i wyjść lub standardowe bloki typu ROM lub
kombinację struktur typu LUT i ROM);
■ redukcji argumentów; pozwala to na redukcję zbędnych argumentów funkcji.
Zbędne argumenty pojawiają się zazwyczaj w pierwotnej jednowyjściowej
funkcji, w wielowyjściowych blokach budowanych za pomocą arytmetyki roz­
proszonej i po rozkładzie wielowyjściowego bloku wykonanego za pomocą de­
kompozycji równoległej. Dekompozycja równoległa ma wbudowaną redukcję ar­
gumentów, co oznacza, że otrzymane bloki, będące wynikiem jej rozkładu, nie
mają zbędnych argumentów. Schematy dekompozycji równoległej i szeregowej
pokazano na lys. 12.2.

a)
X

w ■, u

< ,7

Rys. 12.2. Dekompozycja: a) równoległa, b) szeregowa; X —zbiór argumentów (wejść układu),


V, U, W7-podzbiory zbioru A-", Y—zbiór wszystkich wyjść układu, Y,, Y2 podzbiory zbioru Dla de­
kompozycji równoległej (a): K u U u W = X (zbór wszystkich wejść), Y, cz Y, Y2 cz Y, Y, D Y2 = 0 ,
5'i U Y2 = Y. Dla dekompozycji szeregowej (b): R u i / —zbiór wszystkich wejść i W cz V, jeśli
W 0 , to dekompozycja nierozłączna, jeśli H/==0 , to dekompozycja rozłączna

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.

RUKTURA PROGRAM U DEMAIN

ca z programem DEMAIN polega na wyborze strategii przez użytkownika na


dym kroku dekompozycji. Wybór strategii ułatwiają narzędzia, które zostały
/m celu wprowadzone. Taki interakcyjny sposób działania daje bogate możliwo-
w realizacji struktur wielopoziomowych. Przeprowadzane badania wykazują, że
3wno zmiana kolejności występowania poszczególnych typów dekompozycji,
i parametry (liczba wejść i wyjść) bloku G w dekompozycji szeregowej, silnie
ywąją na końcową strukturę układu, prowadząc do polepszenia parametrów re-
owanego układu.
System DEMAIN ma dwie podstawowe opcje wybierane z menu głównego:
fliili Mi Ą
(i. Dęcomposer-Demain-Cell
4 Decomposer-Demain-ROM
j f l ł i
Dpcja [l|] służy do rozkładu dowolnej funkcji boolowskiej zapisanej w posta-
iblicy prawdy w standardzie berkeleyowskim na komórki (bloki funkcji) o do-
nym, zadanym przez użytkownika rozmiarze.
Dpcja [ 2 ] służy do dekompozycji układów kombinacyjnych na pamięci ROM
: na kombinacje mieszane: standardowe pamięci wbudowane ROM i komórki
T). Program przystosowany jest do dwóch typów pamięci ROM: M512 o po-
ności 512 bitów oraz M4K o pojemności 4 kbitów. Układy do dekompozycji
pisywane:
ablicami prawdy zapisanymi w standardzie Berkeleya, lub
vektorem współczynników filtrów cyfrowych (dla arytmetyki rozproszonej).
)la Dpcji Dekomposer-Demain-ROM została wprowadzona możliwość roz-
u układu początkowego ,na dowolną liczbę bloków (a nie tylko na dwa jak

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

OZNACZENIA I INTERPRETACJA W YNIKÓW OBLICZEŃ

* Jeśli funkcja początkowa nie ma etykiet (nazw symbolicznych) dla zmiennych


wejściowych i wyjściowych, program nadaje wejściom etykiety rozpoczyna­
jące się literą połączoną z kolejnymi liczbami od 0 do k — 1 ( k — liczba
wejść), a dla wyjść etykiety rozpoczynają się literą „o ” połączoną z kolejny­
mi liczbami począwszy od 0 d o / —1 (gdzie j to liczba wyjść). Na przykład, je­
śli funkcja ma 5 wejść i 2 wyjścia, to wejściom zostaną przypisane następują­
ce etykiety: /O, zl, z'2, z3, ż4, wyjściom: oO, o l.
* Dekompozycja szeregowa tworzy węzły logiczne (są to wyjścia z funkcji G,
często nazywanej funkcją „odrywaną”). Przypisywane są im etykiety posta­
ci gi_j, rozpoczynające się literą g połączoną z liczbą odpowiadającą kolejno
wykonanej dekompozycji, a następnie po symbolu _ podany jest numer wyj­
ścia funkcji „odrywanej”. Na przykład, po wykonaniu dekompozycji szerego­
wej z funkcją „odrywaną” o parametrach (5, 2), powstaną dwa nowe węzły lo­
giczne. Jeśli jest to piąta dekompozycja wykonana w programie, to będą one
miały nazwy g4 0, g 4 _ l.
■ N a każdym etapie rozwiązania, przy opisie funkcji poddawanej aktualnie de­
kompozycji, oprócz jej liczby wejść i wyjść, podawane są również ich rzeczy­
wiste nazwy symboliczne. Na ich podstawie można często wnioskować o dal­
szej strategii rozwiązania.
■ Na każdym etapie rozkładu (dekompozycja równoległa lub szeregowa), w wy­
niku którego otrzymuje się blok!. będące komórkami, pojawia się informacja
z liczbą aktualnie otrzymanych komórek. Dla ułatwienia, pojawia się również
informacja postaci: TOTAL # cells podająca całkowitą liczbę komórek uzy­
skanych od początku rozkładu do aktualnego momentu.
■ Podgląd na dekom pozycję irównpleglą. Oznacza to, że na każdym etapie
rozkładu, przy opisie funkcji poddaw anej aktualnie dekompozycji, przed
wykonaniem jakichkolwiek operacji, wyświetlany jest wynik dekompozycji
równoległej (w postaci parametrów bloków rozkładu —liczba wejść i wyjść
każdego z nich) wykonanej, ale niezrealizowanej. Wykonanej, bo program
wykonał dekompozycję równoległą tylko w celu określenia parametrów blo­
ków podziału, aby ułatwić użytkownikowi wybór odpowiedniej strategii.
Natomiast niezrealizowanej, ponieważ realizacja może nastąpić tylko na po­
lecenie użytkownika.
Podgląd na dekompozycję szeregową wykonywaną, ale niezrealizowaną. Ma
to miejsce wtedy, gdy nie istnieje rozwiązanie dla funkcji o ustalonych z góry pa­
rametrach, ale istnieje rozwiązanie o większej liczbie wyjść niż żądana. Taka de-:!
kompozycja nie będzie wykonana, ale na ekranie pojawia się informacja z opi­
sem wszystkich jej możliwych parametrów. Ma to na celu ułatwienie wyboru !
ewentualnych nowych parametrów dla funkcji G lub decyzji o zmianie strategii
dekompozycji. W kolejnych kolumnach podglądu jest pokazana:
— liczba wejść funkcji G,
- liczba wyjść funkcji G,
— liczba kolorów, którymi byłaby kodowana funkcja G,
-- numery zmiennych wchodzących w skład argumentów funkcji, przy czym
jeśli stosowana była opcja ze zmienionym porządkiem przeszukiwania
wejść (jest to opcja c wyboru metody przeszukiwania wejść dla funkcji G),
t to pojawi się przed nimi:
- - znacznik „7” informujący, że rozwiązanie to będzie zawierać zmienne
; należące do argumentów wszystkich wyjść, albo
- znacznik „F” informujący, że rozwiązanie będzie zawierać zmienne, od
których nie są zależne wszystkie wyjścia (dla tych wyjść będą to zmien-
ne nadmiarowe).
jW przypadku braku rozwiązania o zadanych parametrach, wyświetlana jest
4;tyllco liczba wejść równa liczbie wyjść oraz minimalna liczba kolorów, dla któ-
|rych nie istnieje rozwiązanie.
W przypadku istnienia dekompozycji nierozłącznej, po znaczniku ,JVd” poja-
|wi się liczba kolorów, którymi byłaby kodowana funkcja G.
Jeśli próby dekompozycji dla danego układu są przeprowadzane kilkakrotnie,
jjaie nie są one realizowane ze względu na brak rozwiązania, to po każdej ostatnio
^wykonywanej, ale niezrealizowanej, dekompozycji, wyświetla się podgląd zawiera-
sjący, informacje nie tylko o ostatniej, ale również o wszystkich poprzednio przepro-
fwadzonych. Jeśli wszystkie kolumny danego wiersza oprócz pierwszej zawierają
|same zera, oznacza to, że nie była jeszcze przeprowadzana próba dekompozycji sze-
|regciwej ze składową o liczbie wejść równej wartości zawartej w pierwszej kolum-
Ihie .Na przykład, jeśli dla dekompozycji szeregowej zostały wykonane próby dla
Ifunkcji G(3, 1) (3 wejścia, 1 wyjście), G(5, 2), a na koniec dla G(2, 1), to po każdej
Inieudanej próbie wyświetla się podgląd ostatniej i wszystkich poprzednich, czyli
{Wtym przypadku:
1 0 0 0
2 2 3 0 0
3 2 3 F 0 15
4 0 0 0 0 0
5 3 5 T 0 1 2 4 6 Nd 4

jS208
■'0 'i

Z podglądu tego wynika, że aktualnie rozpatrywany układ ma dekompozy­


cję szeregową z funkcją składową G(3, 2) (3 —liczba wejść, 2 —liczba wyjść).
Informacje te są zapisane w trzecim wierszu. W pierwszej kolumnie podana jest
liczba wejść do G, w drugiej —liczba wyjść, w trzeciej —liczba kolorów, za po­
mocą których jest kodowana funkcja (tu 3). Trzy kolumny (5, 6, 7) odpowiada­
ją numerom argumentów układu, które zrealizują tę dekompozycję, a znacznik
F w kolumnie 4 informuje, że od zmiennych tych nie zależą wszystkie wyjścia
rozkładanej funkcji. Podobnie w wierszu 5 zawarta jest informacja: istnieje de­
kompozycja z funkcją G(5, 3) kodowaną pięcioma kolorami. Taka dekompozy­
cja istnieje dla zmiennych o numerach 0, 1, 2, 4, 6 zapisanych w kolumnach 5,
6, 7, 8, 9 od których są zależne wszystkie wyjścia rozkładanego układu (znacz­
nik T w kolumnie 4). Istnieje również dekompozycja nierozłączna (znacznik N d
- kolumna 10, 11) kodowana czterema kolorami (kolumna 12), a więc dekom­
pozycja nierozłączna g(5, 2) (g oznacza składową nierozłącznej dekompozycji
szeregowej). Dla rozpatrywanego układu nie istnieje dekompozycja z funkcją
składową zawierającą 2 wejścia, ponieważ wiersz 2 kolumna 2 ma wartość rów­
ną liczbie wejść. Dla składowej z czterema wejściami, nie zostało jeszcze prze­
prowadzone doświadczenie, ponieważ wszystkie kolumny czwartego wiersza
oprócz pierwszej zawierają zera.
W zależności od potrzeb, można zdecydować się na jedną z tych dekompozy­
cji lub przeprowadzić próby z inną liczbą argumentów wejściowych funkcji G,
lub przejść do dekompozycji równoległej, której parametry bloków podziału są
już znane.
Aby przeprowadzić dekompozycję szeregową, wykonywaną, ale niezrealizo-
waną(wynik jej zapamiętany w podglądzie), należy wybrać opcję c w celu wybo­
ru strategii dekompozycji. Do liczby wejść trzeba wprowadzić wartość z pierw­
szej kolumny, a do liczby wyjść wartość z drugiej kolumny.
Jeśli istnieje dekompozycja szeregowa rozłączna i nierozłączna, to program
przed wykonaniem pyta, którą z nich wykonać.

STRATEGIE DEKOM POZYCJI,


' A'
Na początku współpracy z programem pojawia się zapytanie:

Do you prefer serial decomposition


with normal order the inputs ? : n
OR
with changed order the inputs ? : c

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

Dla dekompozycji szeregowej mamy do wyboru dwie opcje:


Opcja s —dekompozycja szeregowa z parametrami sugerowanymi przez pro­
gram. Dla każdej funkcji poddawanej dekompozycji, na początku są sugerowane
jarametry odpowiadające komórce (parametry jej wprowadzone są przed urucho-
nieniem programu). Jeśli dla takich parametrów nie istnieje rozwiązanie, suge-
owrne są inne parametry, które doprowadzą do końcowego rozwiązania (nawet
iżyt« wnika bez „większej” wiedzy na temat układów logicznych), ale nie musi
ó być rozwiązanie optymalne (i często nie jest).
i i - J; M '
I it^ipcja.ę —dekompozycja szeregowa z parametrami wprowadzonymi z kla-
viat uy przez użytkownika. Pozwala to na zmianę parametrów sugerowanych.
5o wprowadzeniu z klawiatury znaku c pojawia się napis żądający wprowadze-
lia parametrów nowego bloku (są to parametry dla funkcji G), czyli liczby jego
vejść i wyjść. Można więc wprowadzić inne parametry, niż sugeruje program. Ję­
li chcemy wykonać dekompozycję z podglądu na dekompozycję szeregową, to
>o wprowadzeniu znaku c i potwierdzeniu klawiszem Enter, jako liczbę wejść
lo bloku należy podać wartość pierwszej kolumny odpowiedniego wiersza, a do
iczby wyjść należy wpisać wartość z drugiej kolumny tego samego wiersza. Taka
lekompozycja wykona się natychmiast bez przeszukiwania innych argumentów,
lonieważ jest ona zapamiętana w programie. Aby mieć większe pole działania
przy pierwszym wykonywaniu doświadczenia z ustaloną liczbą wejść do funk­
cji G, najwygodniej w parametrze liczba wyjść dla opcji c wprowadzić wartość 1.
Otrzymamy wtedy najlepsze rozwiązanie: jeśli istnieje, to wykona się, a jeśli nie
istnieje, to w podglądzie na dekompozycję szeregową wyświetli się najlepsze roz­
wiązanie z zadaną liczbą wejść do funkcji G.
Wprowadzenie za pomocą opcji c: liczba wejść - dowolna liczba dodatnia
mniejsza od liczby wejść do rozkładanego aktualnie bloku, liczba wyjść równa 0
jest równoważna redukcji argumentów. Jeśli taka dekompozycja istnieje, to ozna­
cza, że liczba argumentów rozkładanego bloku jest nadmiarowa i po tej dekom­
pozycji te nadmiarowe wejścia zostały zredukowane.
Wprowadzenie za pomocą opcji c liczby wejść równej 0 i liczby wyjść rów­
nej 0 spowoduje zakończenie rozkładania aktualnego układu. Układ ten zostanie
zapamiętany w pliku o tej samej nazwie co nazwa pliku, z którego został odczy­
tany, ale plik ten ma wtedy rozszerzenie *.end. Jeśli istnieją inne pliki do rozkła­
du, program kontynuuje pracę. Program nie wraca już do plików o rozszerzeniu
*.end.

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

Po wprowadzeniu znaku n jeden z bloków będzie aktualnym blokiem do dal­


szego rozkładu, natomiast drugi zapamiętywany jest w pomocniczym pliku, do
którego program powróci w odpowiednim momencie.
Po wprowadzeniu znaku y pojawia się napis:
B l o c k of i n p u t s w i t h min . no. of ar g u m e n t s ?: m
B l o c k of i n p u t s witlijMax. no. of a r g u m e n t s ?: 1

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.

I n a W YNIKOW E PROGRAM U DEMAIN

®gram generuje pliki o następujących rozszerzeniach * (gwiazdka) oznacza na-


p pliku pierwotnego bez rozszerzenia):
fa n s — w pliku tym przechowany jest zapis wszystkich kroków wykonywa-
' nych przez użytkownika w trakcie rozkładu. N a podstawie tego pliku
* można prześledzić wszystkie strategie używane w trakcie rozkładu.
*. r p t — zapisane są tu podstawowe informacje o wykonanej dekompozycji na
komórki:
— liczba wejść układu i nazwy symboliczne wejść,
— liczba wyjść układu i nazwy symboliczne wyjść,
— liczba zmiennych pomocniczych (utworzonych węzłów logicznych)
i ich nazwy,
— liczba komórek logicznych,
— liczba poziomów logicznych komórek.
* . o u t — w pliku tym są zapisane wszystkie tablice prawdy otrzymanych komórek
logicznych. Przed każdąz tablic prawdy podane są rzeczywiste nazwy jej
zmiennych wejściowych i wyjściowych. Komórki logiczne wypisane są
zgodnie z kolejnymi poziomami, najpierw komórki pierwszego poziomu,
następnie drugiego itd. Jeśli w rozkładzie wykorzystywane są pamięci
ROM, to są one również tu umieszczone, ale bez wypisywania tabli­
cy prawdy.
Pliki * . r p t i * . o u t są potrzebne do wykonania tłumaczenia na język
AHDL.
* . i n f —jest plikiem informacyjnym, w którym zapisywane są kolejno:
- nazwa pliku pierwotnego( z tablica prawdy funkcji boolowskiej),
- rozmiar komórki,
- liczba wejść układu,
- liczba wyjść układu,
- liczba otrzymanych komórek,
- liczba otrzymanych pamięci typu ROM M 512,
- liczba otrzymanych pamięci typu ROM M4K,
- liczba otrzymanych poziomów,
- informacja, ile jest komórek i pamięci ROM w każdym kolejnym po­
ziomie komórek logicznych bez rozróżnienia typów pamięci.
Dla rozkładu funkcji na komórki (wybór z głównego menu opcji [ 1 ] De-
komoposer-Demain-Cell) tworzone są dodatkowe pliki, w celu wykonania
szkicu otrzymanej sieci (pod warunkiem, że rozmiar otrzymanego rozkładu
>pozwala na to):
* . w in — plik ten przechowuję fefemiary okna z rysunkiem,
* .d a t — plik ten przechowuje specjalnie zapamiętaną „treść” ekranu z rysun­
kiem, oraz
* . t d f - plik z zapisem rozwiązania w języku AHDL.
Plik t d f może być wygenerowany na życzenie użytkownika po wprowadze­
niu do okienka „Option” znaku [2] (DemainToAHDL) i oczywiście po uprzed­
nim wykonaniu rozkładu za pomocą dekompozera Demain.

213
STRUKC JA OBSŁUGI

stem Demain jest programem napisanym w języku C++ , w środowisku Win-


ws Borland C + + (5.0). Do uruchomienia systemu wymagane są: plik główny
m a i n . e x e i plik biblioteczny c w 3 2 3 0 . d l l , oba umieszczone w tym samym
talogu.
Po uruchomieniu programu pojawia się okno z logo systemu i po wciśnięciu
twisza Enter przechodzimy do właściwego- okienka z menu głównym. W ko-
nym oknie wybieramy opcję pracy dekompozera. Schemat postępowania za-
ieszczono na rys. 12.3.

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

Wydruk tablicy zależności


poszczególnych, wszystkich
wyjść układu od wszystkich
argumentów układu

Wykonać rozkład na bloki?


(y/n)

Wprowadzenie kolejno
rozmiarów blgków wraz
z numerami wyjść
należących do nich

Wybór strategii dekompozycji spośród opcji: s, c, p, r


Dekompozycja jest wykonywana do momentu rozkładu
całego układu początkowego na pamięci ROM i komórki

Rys. 12.3. Szkic obsługi programu DEMAIN


12.4. PRZYKŁADY ZASTOSOWAŃ

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

I Z przykładu tego wynika, że skuteczność dekompozycji w transformacji funk­


cji boolowskich na sieci komórek FPGA silnie zależy od scenariusza całego pro­
cesu dekompozycji, a w szczególności od kolej­
Tablica 12.3 ności wykonywania poszczególnych procedur,:
a) funkcja G { b) funkcja H t a także od parametrów składowej G oraz od roz­
0110 1 -01 0 działu wyjść na komponenty dekompozycji rów­
1101 1 011 1 noległej.
1000 1 111 0 W kolejnym przykładzie omówimy działanie
0010 1 100 1
0000 0 0-0 0
dekompozycji dlii układu arytmetyki rozproszonej;’
0101 0 110 0 filtru falkowego o współczynnikach: [1495, -943,
1100 0 -9687, 18270, -9687, -943,. 1495], Sam probierni;
0100 0
0011 0
tworzenia tablic prawdy dla układów arytmetyki!
1011 0 rozproszonej omówiony jest w pracy [20].
1111 0

c) funkcja G2 d) funkcja /-/2 Przykład 12.3 |


0110 1 10-1 0
0011 1 -101 1
Układ DA rozważanego filtru jest opisany zespo­
0100 1 -111 1 łem 16 funkcji boolowskich 7 zmiennych. Zatemf
1000 1 0011 0 w tym przypadku pierwszą procedurą dekompo­
0101 1 0001 1
1100 0
zycji powinna być dekompozycja równoległa. Z #|
1-00 0
0010 0 0000 0 kładając dekompozycję równoległą z rozdziif
1010 0 1110 1 łem wyjść na bloki o licznościach odpowiednio 1
1110 0 1010 0 i 15, uzyskujemy dwa komponenty - pierwszy ni$f
0001 0 0100 1
0111 0 0010 1 6 wejść i jedno wyjście, a drugi 7 wejść i 15 wyjść§
1111 0 Zatem w odpowiednim schemacie dekompozycji

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)

(4, 2)(4, 1) (4. 2)(4, 2)

Rys. 12.6. Pierwszy schemat dekompozycji układu DA filtru ahp(7, 16)

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, 3)(6, 4) | (7, 4) ROM( (7, 8)

(3. 1) (6, 3) |(7, 4) ROM | |(7, 4) ROM

(4. 1) (5. 2)

(4, 1)(4, 2)

Rys. 12.7. Dragi schemat dekompozycji układu DA filtru ahp(7, 16)

(7, 16)

|(6, 5) ROM|(6, 16)

| (6, 8)ROM\ |(6, 8) ROM \

Rys. 12.8. Trzeci schemat dekompozycji układu DA filtru ahp(7, 16)

i8

ni liiiiH iM iiH T fr 1 ■'


"-"m

METODY SYNTEZY LOGICZNEJ


W ANALIZIE DANYCH

13.1. WSTĘP

Omówione w poprzednich rozdziałach metody syntezy dotyczyły głównie układów


przetwarzających sygnały binarne, a ich podstawowym zadaniem była optymaliza­
cja realizacji tych układów przy stosowaniu różnych technologii. W ostatnich latach
można zaobserwować tendencje do stosowania podobnych lub identycznych metod
syntezy w zadaniach typowych dla przechowywania i wyszukiwania informacji,
pozyskiwania wiedzy, optymalizacji baz danych, a więc w zadaniach dotyczących
systemów ekspertowych i maszynowego uczenia, a nawet sztucznej inteligencji.
W rozdziale tym zajmiemy się zastosowaniem omówionych metod do analizy
danych, a w szczególności do zadań związanych z nadmiarowością i wydajnością
reprezentacji danych w systemach informacyjnych.
Systemy informacyjne i syntezę logiczną cechuje wiele podobieństw. System
informacyjny jest opisywany tablicą decyzyjną, zaś układ logiczny - tablicą praw­
dy. Atrybutom warunku systemu informacyjnego odpowiadają zmienne wejścio­
we, zaś atrybutom decyzji - zmienne wyjściowe układu logicznego. Wspomniane
podobieństwa systemów informacyjnych i syntezy logicznej umożliwiają zasto­
sowanie podobnych metod kompresji danych. Na przykład, problem nadmiaro-
wości danych w systemach informacyjnych jest rozwiązywany za pomocą mini­
malizacji liczby atrybutów i przez usunięcie nadmiarowych reguł decyzyjnych.
W syntezie logicznej taką samą funkcję spełnia minimalizacja, czyli poszukiwa­
nie jak najprostszych wyrażeń boolowskich opisujących układ, oraz redukcja ar­
gumentów i dekompozycja (por. rozdz. 5 i 7).

13.2. PODSTAWOWE POJĘCIA


Z ZAKRESU SYSTEMÓW INFORMACYJNYCH

Systemem informacyjnym nazywamy uporządkowaną czwórkę S = {U, A, V, f) ,


gdzie U jest zbiorem obiektów, A —zbiorem atrybutów, V - zbiorem warto-

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

(x,y) e IND(B) wtedy i tylko wtedy, gdyf( x , a) —f{y, a) dla każdego a e B .

Jeśli klasę równoważności IND(5) zapiszemy jako P b, to:

p,= u p.
aełS

gdzie określa iloczyn podziałów.

Używając podziałów generowanych zbiorem atiybutów, możemy wprowadzić


pojęcie zależności funkcjonalnej między rozłącznymi podzbiorami C, D zbioru A.
Mówimy, że D jest funkcjonalnie zależny od C (symbolicznie C => D) wtedy
i tylko wtedy, gdy n c jest nie większy niż n D (tzn. ITC < Iły). W terminach sys­
temów informacyjnych znaczy to, że zbiór atrybutów D zależy od zbioru atrybu­
tów C. Inaczej mówiąc, jeśli tylko para obiektów nie może być rozróżniona atry­
butami ze zbioru C, to również nie.niożna tych obiektów wyróżnić atrybutami ze
zbioru D.
Uproszczenie systemu informacyjnego z punktu widzenia minimalnego
zbioru atrybutów zachowujących zdolności klasyfikacyjne systemu (lub zależ­
ność funkcjonalną C => Z))'należy do zadań określanych mianem redukcji wie­
dzy. Redukcja wiedzy w tablicach decyzyjnych polega na redukcji liczby atry­
butów warunkowych i ewentualnie na redukcji liczby tych reguł. W ogólnym
przypadku redukcja wiedzy systemu S = (U, A, V ,f) polega na wyznaczaniu re-
duktów.
Zbiór A' ę A jest reduktem systemu S = (U, A, V ,f) wtedy i tylko wtedy, gdy
n^. = n A oraz nie istnieje podzbiór właściwy B zbioru A' taki, że 11^ = n ,. W po­
dobny sposób definiuje się redukt systemu decyzyjnego.
Reduktem systemu decyzyjnej), $f= ( U, C, D, V ,f), w którym C => D, nazy­
wamy zbiór C taki, że O D ofaz nie istnieje podzbiór właściwy C" zbioru C ,
dla którego C" => D.
Atrybut ae.A nazywamy atrybutem zbędnym w systemie S wtedy i tylko wte­
dy, gdy Tl(A —{a}) —HA, w przeciwnym przypadku a jest atrybutem niezbędnym.
Atrybut a e C jest atrybutem zbędnym w systemie decyzyjnym S= (U ,C ,D , V ,f )
wtedy i tylko wtedy, gdy (C —{nr}) => Z), w przeciwnym wypadku jest to atrybut nie­
zbędny.

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.

ica 13.2 Tablica 13.3

a, a2 a3 ai «5 Of> U <*\ a3 «5 a<i d


0 1 0 1 0 0 1 1 0 0 0 0 1
1 0 0 0 1 3 2 2 1 0 1 3 2
1 1 0 2 2 3 3 3 1 0 2 3 3
1 1 0 2 3 3 2 4 1 0 3 3 2
1 1 1 0 2 3 4 5 1 1 2 3 4

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

Miech F będzie funkcją reprezentującą zależność między atrybutami warun-


3' = {a{, ..., a„) a atrybutem decyzyjnym d, natomiast U = {w,, ..., u,} niech
zie zbiorem obiektów. Zbiór atrybutów warunkowych, zwany zbiorem roz-
lialności, będzie oznaczany przez Vplj, gdzie p, q są obiektami z U takimi, że
.) & F(q). Zbiór Vp!l jest definiowany następująco:

Vi«i= (a e C: f( P ’ a) * /(? » «)} dla p , q — 1, ..., / oraz p < q)


Obiory Vpq obliczone dla wszystkich p i q takich, że F(p) ^ F{q) orazp < ql),
zienty oznaczać RVpip a macierz B o wierszach by, gdzie:

_ f 1, gdy aj e C,
’ }(), w przeciwnym przypadku

ciekły oznaczamy ich indeksami.

i»iu r u a j,. '4


będziemy nazywać macierzą rozróżnialności (zakładamy, że RVpq = V —{ Vh ..., Vr},
gdzie: i = 1, .... r = CARD(F), j = 1, t = CA.RD(C)).
Można wykazać, że R e C jest reduktem tablicy decyzyjnej F, jeśli dla każde­
go F e RVpt,

Rn, V * 0

i dla każdego R' c: V istnieje V e RVpq taki, że:

R 'n F = 0

Funkcją rozróżnialności f F dla zależności funkcjonalnej F systemu DT na­


zywamy funkcję boolowską n argumentów a t, an definiowaną jako ko-
niunkcja wszystkich V( Vpq), gdzie V(Fpq) je st dysjunkcją wszystkich elemen­
tów z Vpq, 1 < p < q < t.
Między reduktami funkcji F a implikantami monotonicznej funkcji boolow-
skiej^p zachodzi następujący związek:

{aip ..., ty j e RED(F) wtedy i tylko wtedy, gdy a (| a ... a jest implikantem
prostym f P

Inaczej mówiąc, obliczenie reduktów sprowadza się do wyznaczenia impli-


kantów prostych monotonicznej funkcji boolowskiej. Funkcja rozróżniająca dla F
z tablicy 13.2 jest następująca:

/ j = fl3 A f l 5 A f l { A (a, V a2)

Na tej podstawie łatwo można wyznaczyć redukty tego systemu: {a,, a3, a5, a6}
i {a2, a3, as, a6}.

13.3. GENERACJA REGUŁ DECYZYJNYCH

Wiele problemów związanych z podejmowaniem decyzji polega na tak zwanym


pozyskiwaniu (uogólnianiu) wiedzy, tj. na generacji reguł decyzyjnych, które
mogą stanowić bazę do podejmowania decyzji dla przykładów nienależących do
pierwotnego zbioru przykładów, zebranych na potrzeby „nauczenia” systemu. Dla
tablicy decyzyjnej podanej w tablicy 13.1 zbiór takich reguł, obliczony specjal­
nym programem, jest następujący:

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 każdy obiekt nienależący do klasy jako

> = (a,, w,) & (a2, w2) & ... & (a„, w„)

Następnie dla obiektów x orazy są tworzone krotki rozróżniające b o postaci:


%b = (b„ ..., b„)
gdzie:
rl, gdy v ,* w ,
. b, 0, przeciwnym przypadku

Każdy warunek krotki b opisuje obiekt x i nie opisuje obiektu y. Podstawowe


znaczenie w metodzie ma procedura generująca pokrycie macierzy M, której wier-
$Fsze stanowią krotki b, wyznaczone dla wszystkich możliwych par x ,y . Wybierając
najlepsze pokrycie kolumnowe macierzy M według przyjętego kryterium, np. po-
; krycie opisujące największą liczbę obiektów z klasy lub pokrycie zawierające naj-
Ę.i{ mniejszą liczbę warunków, uzyskuje się odpowiednią regułę. Powtarzając proces
» ( .. ■' •

dla pozostałych reguł, reprezentujemy tablicę (bazę wiedzy) w sposób dostatecznie


ogólny dla prowadzenia klasyfikacji nowych obiektów lub podejmowania decyzji.
Ze względu na złożoność kombinatoiyczną, zadanie generowania reguł nie jest
zwykle możliwe do rozwiązania w czasie szacowanym wielomianem. W szczegól­
ności zbiór pokiyć macierzy M może zawierać zbyt wiele elementów, aby program
mógł znaleźć rozwiązanie w rozsądnym czasie. W związku z tym zaproponowano
różne algoiytmy heurystyczne.

13.4. ZADANIA Z ROZWIĄZANIAMI

ZADANIE 13.1

Dla systemu DT podanego w tablicy Z. 13.la. Tablica Z.l3.la


w którym a, b, c, d są atrybutami warunkowymi,
a e jest atrybutem decyzyjnym, obliczyć minimal­ U a b c d e
ne reguły decyzyjne. 1 i 0 0 1 i
2 i 0 0 0 i
Rozwiązanie 3 0 0 0 0 0
4 1 1 0 1 0
Najpierw obliczymy macierz M generowaną obiek­ 5 1 1: 0 2 2
tem w, (pierwszy wiersz tablicy). Po porównaniu w, 6 2 2 j 0 2 2
z każdym obiektem z klasy nienależącej do e = 1 7 2 2 2 2 2
otrzymujemy następującą macierz M:

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: !,

(a, 1)& (b , 0)->(<?, 1)


(b, 0)& (d , !)-> (* , 1)

225

Podobnie dla obiektu w, mamy:


i|
a b c d
i 0 0 0
0 1 0 1
M
0 1 0 1
i 1 0 1
i 1 1 1

czyli minimalnymi regułami są:

(a, 1) & (b, 0) —» (e, 1)


(a, 1) & ( d , 0) — » (e, 1)

Ł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ń):

(a, 1)& (ń , 0)->(<?, 1)


(a, 0) -ż (e, 0)
(/->, 1) & (r/, l ) ^ ( e , 0) mą
(d, 2) -> (e, 2)

lub w innym zapisie:

(a, 1)& (ń , 0 )-* (e , 1)


(«, 0) v (ń, 1) & (<i, 1) —» (<?, 0)
(d, 2) —> (e, 2)

Tablicowy zapis tych reguł przedstawiono w tablicy Z .13.Ib. Można zauwa­


żyć, że c jest atrybutem zbędnym.

Tablica Z.13.1b

a b e d e
1 0 - - i
0 - - - 0
- 1 - ! 0
2 2

226

lUui,. n rniiHMiitriffr : ■ik liW ii'


ZADANIE 13.2

Dla funkcji f o wielowartościowycli wejściach, podanej w tablicy Z. 13.2a,


należy obliczyć wszystkie minimalne zbiory argumentów zapewniające
jednoznaczną reprezentację tej funkcji. Przy­
jąć, że argumentami „niezbędnymi” (tzw. rdze­
niem) są: a u a3. W rozwiązaniu podać również U «2 a3 Of, /
tablicę funkcji z minimalną i najmniejszą licz­ 1 0 0 0 0 0 0 0
bą argumentów. 2 1 2 1 2 0 2 0
3 1 2 1 0 1 2 1
Rozwiązanie 4 0 1 1 0 0 1 1
5 0 1 1 2 0 0 2
Pr P3 = (1,7,9; 2,3; 4,5,8; 6; 10) 6 1 2 0 3 2 2 1
7 0 0 0 1 0 1 0
P,- = 0 ,2 ,7 ; 3, 4, 6; 5,8; 9,10) 8 0 0 1 1 0 1 2
9 0 I 0 3 2 0 3
Pr I P = (U 7)(9); (2)(3); (4)(5, 8); (6); (10) 10 2 2 0 3 2 2 3

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,

Wyznaczanie rozwiązań minimalnych: Tablica Z.13.2b

(a4 + a2 )(a4 + a5 )(aĄ+ a6) = aĄ+ a2 a5 a6 O’ «i a3 a, /


1 0 0 0 0
Stąd dwa rozwiązania minimalno-argumentowe: 2 1 1 2 0
3 1 1 0 1
1) au a3 ,a Ą, " 't'1' 4 0 1 0 1
2) a,, a2, a3, as, a6. 5 0 1 2 2
6 1 0 3 1
Rozwiązaniem minimalnym z najmniejszą licz- 7 0 0 1 0
nością jest: a u a3, a 4. Konstrukcja tablicy z naj­ 8 0 1 1 2
mniejszą liczbą argumentów podana jest w tabli­ 9 0 0 3 3
cy Z.13.2b. 10 2 0 3 3
ZADANIE 13.3

Dla podanej tablicy decyzyjnej (tablica Z. 13.3) obliczyć wszystkie minimal­


ne zbiory atrybutów. Przyjąć, że atrybutami „niezbędnymi” (tzw. rdzeniem)
są: a3, a5.

Tablica Z.13.3 Rozwiązanie


U a. cii a3 a. at, af, d Pd = { 1 ^ 3 ; 4,5, 6; 7 ^ ; 9JÓ}
i 0 1 0 1 0 0 i
2 0 1 1 2 0 0 i P3 -P5 ={ 1, 5,10; 2; 3; V 7; 6; 8; 9}
3 0 1 0 1 1 0 i
4 0 1 2 1 0 0 2 P3 -P5 \ P, =={(1X5X10); 2; 3; (4)(7); 6; 8; 9}
5 3 2 0 1 0 3 2
6 0 1 0 1 2 0 2
7 3 2 2 1 0 3 3
8 0 1 1 1 i 0 3
9 0 1 0 1 3 0 0
10 0 2 0 2 0 0 0

Tablica porównań
1, 5
I, 10 2 ,4
5, 10 1 ,4 ,6
4 ,7 1, 2, 6

Wyznaczanie rozwiązań minimalnych:


(2 + 4)(1 + 4 + 6)(1 + 2 + 6) = (4 + 12 + 26)(1 + 2 + 6) =
= 14 + 24 + 46 + 12 + 42-+ 126 l 126 1- 26 + 26
Minimalne zbiory atrybutów:
axa2

+ a3a5 (atrybuty niezbędne)


Bł<;.....'

13.5. ZADANIA DO SAMODZIELNEGO ROZWIĄZANIA

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

ZADANIE 13.5 Tablica Z.13.5

Ł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

ANIE 13.8 ZADANIE 13.10


;zyć dekompozycję funkcji wielowartościowej (tablica Z.13.8), przyjmując Dana jest tablica decyzyjna (tablica Z.13.10). Należy obliczyć wszystkie atrybuty
a h a2, aĄ}, V= {«3, a5, a6}. W rozwiązaniu należy podać tablice prawdy niezbędne oraz wszystkie minimalne zbiory atrybutów.
:ji G f II,
Tablica Z.I3.10
Tablica Z.13.8
6/ Ol 02 0,i 05 0r,
t; 0| 02 03 at 05 Of, £/ 1 2 . 2 1 2 1 1 3
i 1 0 0 0 0 1 00 2 2 1 1
2 I 1 3
2 0 0 0 0 0 0 00 3 2 1 1 3 1 2 1
3 0 1 1 1 2 2 01 4 3 3 2 4 3 1 2
4 0 0 0 1 1 1 01 0 A3 " 3 2 3 I 2 3
5 2 0 0 1 1 0 10 6 2 2 I 1 1 2 1
6 3 2 .1 0 2 2 01 7 2 1 1 4 3 1 2
7 2 0 1 l 2 2 00 2
8 I 3 4 3 1 2
8 l 0 0 1 0 1 10
9 3 2 2 0 2 2 11
10 3 2 0 0 1 0 11
L IT E R A T U R A
lVW-:\

[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

Altera 7, 215 HDL 10, 197,213


Alternatywa 13
Automat 121 Idcinpotentność 14
Mealy’ego 121, 140, 178 Implikant 41, 197, 198,223
Moorc’a 121, 178 prosty 42, 198, 223
niezupełny 121, 154 Irredundant-Cover 197
zupełny 154 Kanoniczna postać iloczynu 33
Brnmka 30, 34, 43 Kanoniczna postać sumy 32
Kiasa zgodności 17, 186
Column multiplicity 78 Klika 16
Decomposition chart 78 Kod
Dekoder 180, 184 binarny 40, 131, 133
mikroinstrukcji 178 Gray a 38, 129, 131
! mikrorozkazu 178 Kodowanie stanów 124, 152
Dekompozycja 57, 78, 153, 197, 205 Kolorowanie grafu 19
,i i i funkcjonalna 78, 88, 221 Koniunkcja 13, 18, 58, 141,223
l[ , , szeregowa 88, 104, 113,205 Kostka 45, 52, 196, 202
, j ‘ równoległa 57, 205, 211
Licznik 128, 179
: i h i || Iji ,srozłączna 97, 205, 215 Literał 41, 198
• .( ! nierozłączna 94, 205
LUT 11, 38, 90, 197, 205
'i vDH.ViAiN 197, 205
'■ I ■' I
Ekspansja 45, 197 M acierz blokująca 46, 48, 52
: ’ESPRESSO 37, 45, 61, 196 Maxterm 33
EXOR 34 MKZ 17, 136, 138, 186
:l ■Expand 45, 197 Matryca 90
FPGA 57, 62, 98, 152, 196, 205 Maksymalne klasy zgodności 80, 136, 139
Metoda Karnaugha 39
Funkcja boolowska 28, 78, 90, 98 Mikroinstrukcja 179
boolowska zupełna 28 Mikrooperacja 182
boolowska niezupełna 28 Mikroprogram 178
Funkcja Mikrorozkaz 178
przejść 121, 154, 158 Minimalizacja 37, 136,219
rozróżnialności 223 funkcji boolowskich 37
! wyjść 121, 127, 144, 154 liczby stanów automatu 136
| Wzbudzeń 153 j Minterm 32, 45
. G raf 16, 18, 84, 121, 140 Multiplekser 179, 184
1,11 1 gate array 196 adresowy 184
I automatu 122,140 warunków 179
Negacja 13 Sum of Product 34
NAND 34 Sumator 180
NOR 34 Synteza 33, 45, 96, 124, 152, 197
PLA 90, 196 strukturalna 152
PLD 196 System informacyjny 220
Podział Tablica
charakterystyczny 154 decyzyjna 219
ilorazowy 23, 60 dekompozycji 78
Pokrycie 19,47, 138 implikantów prostych 49
kolumnowe 47, 224 Karnaugha 39
minimalne 19 porównań 60
Prawa prawdy 30
algebry Boole’a 30 przejść-wyjść 136
De Morgana 15 trójkątna 137
Przerzutnik 122, 136
Redukt systemu 221 Układ
Reguły decyzyjne 225 kombinacyjny 28, 122
Rejestr modyfikacji adresu 154
adresowy 178, 184 sekwencyjny 122, 128, 140, 153, 179
śladu 182 sterujący 179
Relacja W arunek pokrycia 137
równoważności 17
zgodności 17 Z biór
ROM 90, 153, 178, 196 liter wejściowych 154
/•-przydatność 94 stanów wewnętrznych 154
SIS 196 Zmienna niezbędna 59
Standard Celi 196 Zmienna wielowartościowa 200

't

235

You might also like