Minimalisatie van programmable logic arrays
Citation for published version (APA):Weert, van, M. J. M. (1984). Minimalisatie van programmable logic arrays. (EUT report. E, Fac. of Electrical Engineering; Vol. 84-E-145). Technische Hogeschool Eindhoven.
Document status and date: Published: 01/01/1984
Document Version:
Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers)
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne
Take down policy
If you believe that this document breaches copyright please contact us at:
openaccess@tue.nl
providing details and we will investigate your claim.
Minimalisatie van Programmable Logic Arrays
door
M.J.M. van Weer!
EUT Report 84-E-145 .ISBN 90-6144-145-5
ISSN 0167-9708 November 1984
Eindhoven University of Technology Research Reports EINDHOVEN UNIVERSITY OF TECHNOLOGY
Department of Electrical Engineering
Eindhoven The Netherlands
MINlMALISATIE VAN PROGRAMMABLE LOGIC ARRAYS
door
M.J.M. van Weert
EUT Report 84-E-145 ISBN 90-6144-145-5 ISSN 0167-9708 Coden: TEUEDE
Eindhoven
Eindhoven: University of Technology. - Fig. - (Eindhoven University
of Technology research reports I Department of Electrical Engineering,
ISSN 0167-9708, 84-E-145) Met lit. opg., reg.
ISBN 90-6144-145-5
SISO 664.2 UDC 681.325.65.02 UGI 650
PLA I1INlMALISATIE
ABSTRACT
This report describes the effort undertaken to minimize four so-called programmable logic arrays (pIa's). These pIa's are part of the control section of a multifunction I/O controller, which design is reported elsewhere [1].
The silicon area occupied by the minimized pIa's is roughly equal to 65 percent of the area occupied by the original pIa's. Since the method used to achieve this result is still not a trivial one, in this report much attention is paid to the method used. As will be shown, searching for and recognising terms as don't care terms, and in some
cas~s inverting one or more output functions have contributed a lot
to the final result.
This report can be seen also as a document which defines part of a multifunction 1/0 controller [1]. The four pIa's used in the control section of this controller, are defined in this report. The functional behaviour of the four pIa's has been simulated both before and after minimization, and they were found correct.
Weert, M.J.M. van
I1INIMIZATION OF PROGRAI1I1ABLE LOGIC ARRAYS. In Dutch.
Department of Electrical Engineering, Eindhoven University of Technology (Netherlands), 1984.
EUT Report 84-E-145
Address of the author: ir. M.J.M. van weert, Group of Digital Systems,
Department of Electrical Engineering, Eindhoven University of Technology, P.O. Box 513,
5600 ~lB EINDHOVEN, The Netherlands
, INHOUDSOPGAVE. pag. 1. Inleidinq 1 2. Voorgeschiedenis 3 3. Gereedschappen 6 4. De input sequencer 8 5. De outPllt sequencer 16
6. De mode control decoder 25
7. De read-write control decoder 31
8. Pia-vulling b i j nmos pIa's 35
9. Nawoord 42
F'LA MHUMALIS{HIE PAG. 1
i. Iilleidinq.
Dit rappor-t beschrijft de poglngen die ondernomen zijn om
enige programmable logic arrays (pIa's) te minimaliseren, d.w.z de functies met een zo weinig mogelijk aantal producttermen te
rea.liseren, waa.rdoor Met overeen!::omstige pIa biJ integratie za
welnig mogelijk oppervlak za} Innemen. Met het schrijven van t i i t rapport wordt een tweeled19 doel beoagd8
Enerzijds wordt getracht de"lezer dUlde]ij~ te maken wat
mlnimalisatie is en welke voor-delen een juist gebrui~ van
minimalisatie technieken op kan lever-en" met name met betrekklng
tot het optimale gebruik van een begrensd., en dus kostbaar., chip-c)ppervl ak.. Oaarom wardt in dl t rapport ni et all een de resul taten vermeld., maar wardt oak ujtgebreid ingegaan op de tot stand
Korning van van het uitgangspunt van minimalisatie, en wordt de
soms lange weg beschreven dle gegaan moet worden om tot een optimaal resultaat te komen.
AnderziJds is 1n dit rapport getracht aan te geven dat het
minimal iseren VB_n functie-s zeker nog geen automatisme is dat aan
derden in de implementatiefase of uitsluitend aan een
computer--programma over gelaten kan worden. Een creatieve inbreng van de
ontwerper b l i j f t noodzakelijk om het beoogde doel., te weten minimalisatie van het benodigde- chip-oppervlak zo goed mogelijk
te bereiken. Om dit te illustreren wordt uitgebreid ingegaan op
het zoe-ken naar don't-cares, lets wat als gevoig van de., op zich
correete, procedur-e om tot een beschrijving van de benodigde functies te kamen vaak over het hoofd wordt gezien. Juist de
toe~oeging van deze don't-cares leidt vaak tot een kleinere
realisatie. Daarnaast kan het inverteren van E'en of meer uitgangsvariabelen leiden tot een goed~opere oplossing. Bij een
functie met n ujtgangsvariabelen kunnen we op 2**n - 1
ver'schi II ende mc~n] eren een of meer UI tgangsvar-i abel en inverteren ..
EE>n s"y'stematisch afzoeken van al deze mogelljkheden is vaak niet daenlijk. Oak hier zal de ontwerper gesteund door zijn inzic.ht in de materie moeten aangeven of het zinnig I S de situatie waarbij
bepaalde variabelen geinverteerd zijn nog te bekijken.
Minimalisatie- van logische functlEs ]S een onderwerp dat, mede dOOF" de beschi kbaarhei d van campI e>:e I ogi sche boLtwstenen 1 n dE- vorm van t1SI/LSI TTL-ie's.. voor langere ti jd wat u i t het DOg
-.... ·erloren i s .. Een van de gevolgen hier-"van i s dat minimalisatie nog steeds omgeven is met een sfeer van grote computer-systemen en veel qeheugenrui mt.e en rekent 1 jd vragende, en dus dur-e minimali5atie programma's. In djt ~apport zal echter tevens
aangetoond worden dat oak met bescheiden ffilddelen aan
"computerpowerll een bevredigend resultaat te bereiken valt, mits
het antwerp van het te realiseren digitaal systeem voldoende
modulair is opgezet. Hierbij zij neg opgemerkt dat de
ontwikkeling op het geb1ed van zowel de microcomputer aJs de i mpl ementat i e v a n mi n i mal i sat 1 e progr--amma' s daarop, ~eker ni et
s t l l s t a a t , en dat de middelen waarmee in dit rapport gewerkt is
In het yolgende hoofdstuk van dit rapport zal nadar ingegaan
worden op de gebeurtenissen die vooraf gingen aan, en aanleiding
waren tot de geleverde en hier gerapporteerde minimalisatie
inspanningen. Daarna zal een hoofdstuk gewijd worden aan een
bespreking van de hardware en software middelen die zijn
aangewend bij het minimaliseren van de programmable logic arrays.
In de daarop volgende vier hoofdstukken zullen de vier pla's
afzonderlijk de revue passeren. Van iedere pia ~al beschreven
worden wat zijn doe} is, hoe een functionele beschrijv'ing wordt
gevonden, hoe deze beschrijving vervo]gens geminimaliseerd is", en
wat het resultaat van deze minimalisatie is. In het laatste
hoofdstuk zal daar-na nog kart ingegaan worden op de problemen die
ontstaan a]s we een and-or pIa willen realiseren aIs een nor-nor
pIa, en hoe de;;:e problemen elegant opgelost kunnen worden.
Tenslotte ~jj in deze inleiding nog vermeld dat dit rapport
tevens gezien kan worden als een document bij het antwerp van een
multifunctionele 110 bouwsteen(lJ. Dit rapport beschrijft de
inhoud van de vier pIa's die in de genoemde bouwsteen gebru;ht
zijn. De vier pIa's zijn voor en na minimalisatie met een
logische simulator op hun functioneel gedrag getest, en in orde
PLA MINIMALISATIE PAG. 3
2. Voorgeschiedenis.
Minimalisatie van logische funct~es is geen op zich staande
bezigheid. Men wenst doorgaans met deze functies iets te
realiseren, bijv. een apparaat of een bouwblok, men heeft dus met
het totaal van de functies een zeker doel. In principe hoeft men
bij het minimaliseren van logi5che functies dit doel niet te
kennen. Minimaliseren houdt immers in het zoeken naar
eenvoudigere functies die equivalent zijn aan de gegeven
functies.. Minimalisatie kan dan een loket aangelegenheid worden.
De aanvrager dient een beschrijvjng van zijn logische functies
in, en enige tijd later kan hij een beschrijving van eenvoudigere
functies ophalen. Echter, zoals uit dit rapport zal blijken, is
dit geen optimale situatie. In veel gevallen kunnen bet ere
resultaten verkregen warden als de man die de minimalisatie
uitvoert ook weet wat met de functies beoogd wordt, en hoe deze
functies tot stand gekomen zijn. Bij de in dit rapport beschreven
minimalisatie van een aantal logische functies is op een aantal
pJaatsen gebruik gemaakt van de kennis die de schrijver had van
de betekenis van de functies. Om de lezer enig gevoel te geven
omtrent het relatieve belang van deze kennis i s een korte
inleiding over de voorgeschiedenis hier weI op zijn plaats.
Enige tijd geleden is door ir. M.P.J. stevens van de
v.akgroep EB een onderzoek gestart naar- de architectuur van
moderne digitale bouwstenen. Naar aanleiding hiervan kwam de wens
naar voren om oak eens daadwerkelijk zorn bouwsteen te
realiseren. Los hiervan wordt op de afdeling der Elektrotechiek
reeds enige jaren gewerkt aan de tot stand koming van een
productiefaciliteit voor geintegreerde schakelingen, de EFFIC,
welke volgens de planning media 1984 in bedrijf zal komen. Naar
aanleiding hiervan is door de vakgroep ES en met name ir. J.F.M.
Theeuwen besloten om een cursus IIVLSI-design" te starten. De wens
tot realisatie van een bouwsteen en het idee om een cursus te
star-ten kwamen op hetzelfde moment, ",aarna besloten is om als
onderwerp voor de cursus een digitale bouwsteen te kiezen. Als
uitgangspunt is toen gekozen voor een parallelle 1/0 bouwsteen,
die met tWee verschillende processor families moest kunnen
samenwerken en naast de directe input-output mode nog in drie
verschillende hand5hake modes moest kunnen werken. Voor een
gedetailleerde beschrijving van de bouwsteen en zijn architectuur
verwijs ik naar het verslag van M.P.J. Stevens en M.P.M. van
Loon [lJ.
Drie medewerkers van de vakgroep E8, t.w. ir. P.M.C.M. v.d.
Eynden, ir. M.P.J. Stevens en de schrijver dezes, nemen aan de
cursus uVLSI-design" deel, en hebben in het kader hiervan onder
meer het logisch antwerp van de I/O bouwsteen en de verificatie
ervan voor hun rekening genomen. De beschrijving van het antwerp
proces zau hier te ver voeren, dus volstaan we met de vermelding
onderscheiden (zie fig. 2.1):
-Het datapad. dat het daadwerkelijke transport
processorbu5 naar de i/o-bus en omgekeerd verzorgt.
van de
-De inputsequencer (INSEQ). die voor de diverse input modes het
datapad bestuurt. en zorgt voor een correcte afwikkeling van het
betreffende input protocol.
-De outputsequencer (OUTSEQ). die het
output mode gekozen is, en tevens
afwikkeling van het hierbij behorende
-De mode control decoder (MCD). die
datapad bestuurt als er een
zorgt voar een correcte
protocol.
afhankelijk van de gekozen
mode de beide sequencers van de juiste signaien voorziet.
-De Read-write control (RWC). die afhankelijk van de gekozen
processor familie en de aangeboden adressen en controlesignaien
de juiste besturingssignalen voor het datapad en de sequencers
genereert.
Het datapad is voornamelijk opgebouwd uit een aantal standaard
flip-flops die vanaf de processorzijde of de i/o-zijde beschreven of gelezen kunnen worden. Het is daarom weinig zinvol het datapad
functioneel te beschrijven en te trachten deze functies te
minimaliseren. De volgende vier genoemde blokken zijn echter zeer
weI door logische functies beschrijfbaar. en voor deze functies
kan een minimale oplossing gezocht en gevonden worden. In
vOlgende hoofdstukken zal ieder van deze vier blokken nader
beschreven worden~ en zal aangegeven worden hoe de minimalisatie is uitgevoerd en wat daarvan het resultaat is. Hier zij tenslotte nog vermeld dat in de ontwerpfase reeds besloten is om de
genoemde vier blokken met behulp van programmable logic
sequencers (PLS) resp. programmable logic arrays (PLA) te
realiseren. In vergelijking met een poortrealisatie vraagt deze
realisatie om een iets gewijzigde minimalisatie strategie. In het volgend hoofdstuk zal hierop nader ingegaan worden.
PLA MINIMALISATIE PAG. 5
/
,
<
,L
,DATAPAD
'"
"
>
'I"
'I' 'I'
1
"
RWC
' ' - - -_ _ _ _ _ -...J
3. Gereedschappen.
Als we in dit verslag spreken over minimalisatie van
Iogische functies, dan bedoelen we hier uitsluitend mee het
zoeken van een beschrijving van de functie als een sam van een
minimum aantal priemproducten. Zie hiervoor bijv. (2J hoofdstuk
4. Deze minimalisatie leidt tot een realisering van de functies in de vorm van een tweelaags and-or circuit, waarin zo weinig
mogelijk and en or poorten gebruikt worden. Een degelijk circuit
kan men oak realiseren met behulp van een pia, waarbij
minimalisatie dan Ieidt tot zo weinig mogelijk termen in het pIa,
en dus bij integratie tot een zo klein mogelijk door het pIa
ingenomen oppervlak. Zowel bij reaIisatie met behuip van een pIa
als met poorten is het van voordeel om functies die een aantal
variabelen gemeenschappeIijk hebben ook gezamelijk te
minimaliseren. Men spreekt dan van multiple output optimalisatie.
Daar poorten met maar ingangen doorgaans duurder zlJn, probeert
men in dit geval tevens het aantal ingangen van poorten te
minimaliseren. Het aantal poortingangen is btj een pIa niet van
belang, en hierin verschilt de minimalisatie gericht op
realisatie in een pIa dus van minimalisatie gericht op realisatie
met poorten. In het vervolg zal aIleen aandacht geschonken worden aan minimalisatie gericht op een realisatie met pIa's.
In de vakgroep EB houdt de schrijver van dit rapport zich
reeds enige tijd bezig met programmatuur voar minimalisatie van logische functies. Deze inspanning heeft geleid tot een programma voor single output optimalisatie, genaamd SOOP, en een programma
voor multiple output optimalisatie ,dat de werknaam MSOPTIM
draagt. Deze programma's draaien onder het operatingsysteem CP/M
op een 8 bit microcomputersysteem met b4K bytes geheugen.
Van SOOP zijn twee versies beschikbaar,. ean geschreven in de taal APL en een tweede, beduidend snellere versie die geschreven i s in
de taal C. Van MSOPTIH is aIleen een versie geschreven in APL
beschikbaar. Beide programma's zijn in het hier beschreven
project gebruikt.
Zoals in volgende hoofdstukken zal bIijken. worden de te
realiseren functies beschreven met behulp van tabellen waarin de
verschillende producttermen van de functies gegeven zijn. De
beide genoemde programma's verwachten als input echter een
functiebeschrijving in de vorm van een som Van mintermen. In
principe kan men de gegeven tabellan met de hand omschrijven naar
een sam van minter-men, en deze mintermen dan vervolgens intypen ..
Echter een functie van 8 tot 10 variabelen kan maximaal 256 tot
1024 van daze mintermen hebben, en zeals zal blijken kamen bij de
te minimaliseren functies bijna al deze mintermen voer. Het is
dus duideIijk dat een handmatige conversie niet erg doenlijk is,
en bovendien veel kans op fauten geeft. Daarom is een andere weg
gekozen. Daar de C-versie van SOOP de mogelijkheid heeft om
APL-vector-en van disk te lezen, is ~en pre-processor SOOPTAB
geschreven in APL. Deze heeft wegens de korte beschikbare tijd
PLA MINIMALISATIE PAG. 7
functie die vanaf het toetsenbord in tabelvorm is ingevoerd, naar mintermen vertaald worden, en in een door SOOP leesbare vorm naar
disk weggeschreven worden. Deze mogelijkheid biedt MSOPTIM niet.
In dit geval is daarom gekozen voor een wijziging van MSOPTIM
zelf. Het gewijzigde programma accepteert nu
functie-beschrijvingen in tabelvorm, en heeft de naam MOOPl gekregen.
Beide programma's leveren als output de geminimaliseerde functies
in tabelvorm~ die naar keuze al of niet uitgeprint kan worden~ Er
:.:iJn Dp dit moment geen mogelijkheden aanwezig om de output voar
eventuele verdere bewerking of archivering naar disk te
schrijven.
Ieder minimalisatieprogramma stelt grenzen aan de grootte
van de te optimaliseren functies. Hierop vormen SOOP en MOOPl
geen uitzonderingen. De ma~{imale grootte wordt hier niet zozeer
bepaald door het aantal variabelen van de functies, maar veeleer
door het aantal aanwezige mintermen in vergelijking met het
aantal mogelijke mintermen. De in dit rapport te behandelen
functies kenmerken zich allen door een relatief groot aantal
aanwezige mintermen, waardoor er meer kans bestaat dat de
ma><imale grootte wordt overschreden. Het zal blijken dat in een
geval deze grens inderdaad i s overschreden, waardoor
minimaJisatie in dit geval wat extra inspanning en inventiviteit heeft gekost.
4. De input sequencer.
De input sequencer is een sequencieel logisch circuit ( een
finite state machine) die tot taak heeft om in een inputmode het
datapad van de juiste signalen te voorzien en het bij de
betreffende inputmode behorende protocol af te wikkelen. Hiertoe
heeft de input sequencer een vijftal ingangen en een vijftal
uitgangen.
De naam en functie van de ingangen zijn:
-PRESET Een logische "1" op deze ingang plaatst de sequencer in
een bekende toestand, ongeacht wat ,de waarden op de overige
ingangen zijn, en ongeacht de toestand waarin de sequencer zich
bevindt.
-HSMODE De HandShake MODE i ngang i s " 1." al seen handshake input
mode geselecteerd i s .. Anders is deze ingang 110".
-ISYNC Een logische "0" op de-ze I Isynchronisatie" ingang houdt de
sequencer bij een handshake input mode tijdelijk tegen. De reden
hiervan kan zijn dat de gebruiker nog geen input wil of dat de
output sequencer nog bezig is. Een "1" op deze ingang start de
sequencer om zo te zeggen door.
-DAV?_ Deze ingang verzorgt mede' de
buitenwereld. Een "0" op deze ingang geeft
bus data beschikbaar is. Een "1" geeft' aan
geldig is.
handshake met
aan dat er op de dat de data niet
de i
/0-meer
-EI De Enable Input ingang wordt "0" als de processor het datapad
leest~ De inputsequencer zal na het genereren van een interrupt
request wachten tot de processor de data gelezen heeft. De vijf uitgangen zijn:
-LI De Load Input uitgang bestuurt de input-latch in het
en zal IJOfJ worden als er nieuwe data,vanaf de i/o-bus
moet worden.
datapad gel aden -IBUSY De Input-BUSV uitgang is "1" als de inputsequencer aan een
handshake cyclus bezig is, en dient'om de input en output
sequencers te synchroniseren tydens de bidirectionele mode.
-RFD! Het Ready For Data signaal is een handshake signaal. Een
"1" geeft aan dat de input sequencer data kan accepteren, en het
"0" worden geeft dan vervolgens aan dat de data geaccepteerd is.
-DAC! Het Data ACcepted signaal is een tweede handshake signaal,
speciaal vaor de three-wire mode.. Een logische "1" op deze
uitgang geeft aan dat de sequencer inputdata geaccepteerd heeft.
-SRQl De Service ReQuest Input uitgang i s een signaal naar de
processor dat nieulole data beschikbaar is. Dit wordt aangegeven
met een Ill" op deze uitgang.
Het gewenste gedrag van de input sequencer kan op
verschillende manieren beschreven worden, zoals een beschrijving
in een programmeertaal, met behulp van een toestandsdiagram, of
met behulp van een toestandstabel. Hier is voor de laatste
methode gekozen, oak omdat dez~ gaed aansluit aan de wijze waarop
de functies aan de minimalisatie programmals moeten worden
toestands-PLA MINIMALISATIE PAS. 9
tabel zoals deze ~n fig. 4.1 i s weergegeven. Links staan
allereerst de vijf ingangen, gevolgd door een getal dat de
huidige toestand aangeeft. Rechts van de streep staat dan
allereerst de nieuwe toestand aangegeven, met daarnaast de vijf
uitgangen. De logische niveau's van de in- en uitgangen worden
met "Oil en 11111 aangegeven. Een "_II betekent dat de waarde van de
betreffende ingang op dat moment geen rol speelt, dit is een
"don't carell
• Op de eerste r-egel zien we de preset actie. Zalang
de preset actief is, werdt, ongeacht de waarde van de overige
ingangen en de huidige toestand, de nieuwe toestand 5 en aIle
uitgangen op DAC! na "Oil. Toestand 5 vertegenwoordigt de directe
input mode, en regel 2 laat zien dat we deze mode pas verlaten
als HSMODE actief wordt, dwz. als we een handshake input mode
selecteren. De handshake wordt gerealiseert door de toestanden 0
tim 4, en in de tabel is deze handshake duidelijk waarneembaar.
Eerst wordt in toestand 0 gewacht op het ISYNC signaal en het
hoog (= inactief) worden van DAV? Daarna wordt gewacht tot
DAV? weer "0" wordt ten teken dat data beschi kbaar is .. Deze data
wordt in toestand 2 inge1ezen, waarna jn toestand 3 en 4 gewacht
wordt op het begin en einde van een leessJag van de processor.
Hierna is de handshake cyclus beeindigd en wordt teruggekeerd
naar toestand O. P H R 5 I D I E M S A B R D S S 0 Y V S S L U F A R E D N ? E T T I S D C Q T E C I 0 N Y
•
I---+---1 5 (I (I 0 1 0 ga naar directe input
0 0 5 5 0 0 (I 1 0 blijf in directe input
0 1 5 0 1 0 (I 1 (I start handshake mode
0 0 0 (I 1 0 0 1 0 wacht op isync
0 1 (I (I (I 1 (I (I 1 0 wacht op dav = 1
0 1 1 (I 1 1 1 1 (I 0 continue handshake
(> 1 1 1 1 1 1 (> 0 wacht op dav = 0
0 (I 1
...,
0 1 1 0 0 da'l, dus load input(I 2 3 1 1 (I 1 1 dac!
=
0, interruptreq.0 (I 3 3 1 1 (I 1 1 wacht op begin leesslag
(I 1 3 4 1 1 0 1 0 begin leesslag
0 1 4 4 1 1 (I 1 <) wacht op einde leesslag
0 (I 4 (I 1 <) (I 1 (I einde leesslag
fig. 4.1 Toestandstabel van de inputsequencer.
De toestandstabel van fig. 4.1 is het uitgangspunt voor de
minimalisatie. Bij een nadere beschouwing zien we onmiddelijk dat
de uitgangen RFD! en DAC! elkaars inverse zijn. Bij minimalisatie
hoeven we dus slechts een van beiden mee te nemen, de andere kan
dan later met een eenvoudige inverter gerealiseerd worden. Daarom
zal in het vervolg DAC! weggelaten worden. Verder merken we op
blijven. Oeze eerste regel hoeven we niet mee te nemen. In aIle
overige regels geldt steeds PRESET
=
0, en hieraan zalminimalisatie weinig kunnen veranderen. Dus we hoeven ook de
PRESET ingang niet mee te nemen. Ooor dit soort overwegingen
Herdt het aantal mintermen verkleind~ waardoor er mindsr kans
bestaat dat de eerder genoemde grens wordt overschreden.
Bovendien kan hierdoor de rekentijd om tot een minimale oplossing te kamen aanmerkelijk verminderen.
Vervolgens zullen we nu eerst de toestanden moeten coderen. Een beschouwing van de vier overgebleven outputs laat zien dat in
iedere toestand een uniek outputpatroon gegenereerd wordt. We
kunnen de outputs dus tevens geb..-uii:en om de toestanden te
coderen, waardoor we geen aparte toestandbits meer nodig hebben.
Na invulling van de toestanden gaat fig. 4.1 over in de tabel van
fig. 4.2. Hierbij zijn tevens bovengenoemde vereenvoudigingen
aangebracht. Overigens hoeven we bij de specificatie van de
functies aIleen die ter-men op te geven waarVDor aen van de
uitgangen "I" wordt. Strikt genomen kunnen we dus oak nog de
eerste regel van de tabel in fig. 4.2 weg laten. Dit geldt
eveneens voo~ de eerste twee regels van fig. 4.1. Ook bij
realisatie in een pIa zullen we deze termen niet tegen komen.
H S I 0 I I M S A B R S B R S 0 Y V L U F R L U F R 0 N ? E I S 0 Q I S 0 Q E C I Y I I Y I ---+---<) 0 0 0 <) 0 0 0 0 direct input
1 0 0 0 0 1 0 0 0 handshake mode selected
0 1 <) <) 0 1 0 0 0 wacht op isync 1 0 1 0 0 0 1 0 0 0 wacht op day
=
1 1 1 1 0 0 0 1 1 1 0 cont handshake 1 1 1 1 0 1 1 1 0 wacht op day=
0 0 1 1 1 0 0 1 1 <) load input 0 1 1 0 1 1 0 1 interrupt request0 1 1 0 1 1 1 0 1 wacht op begin leesslag
1 1 1 0 1 1 1 0 0 begin leesslag
1 1 1 0 0 1 1 0 <) wacht op einde leesslag 0 1 1 0 0 1 0 0 0 einde handshake cyclus
PLA MINIMALISATIE PAS. 11
In principe kunnen we de vereenvoudigde tabel direct door
middel van een pIa realiseren. Daar de uitgangen van een pIa
automatisch "0" zijn als geen enkele productterm geselecteerd
wordt, hoeven we zoals gezegd hierbij de eerste regel niet mee te
nemen. Rekening houdend met de extra preset ingang kamen we dan
tot de volgende afmetingen voor het pIa: -AND-plane 9 ingangen, 11 rijen.
-OR-plane 4 uitgangen, 11 rijen.
Er van uit gaande dat and- en or-plane beide globaal per term
evenveel ruimte nodig habben, kunnen we het oppervlak van hat pIa
symbolisch schatten op 13x11
=
143 oppervlakte eenheden.Een minder ruimte vergende oplossing wordt echter verkregen
als we de tabel van fig. 4.2 gebruiken als input voor een
multiple output minimalisatie. Het resultaat van deze
minimalisatie is in fig. 4.3 weergegeven. Hieruit lazen we af dat
we slechts 8 producttermen hoaven te realiseren, en dus met een
pia van 8 rijen kunnen volstaan. Dit pia heeft dus voldoende aan
13x8 = 104 oppervlakte eenheden, of wei ca. 73% van het
oorspronkelijke oppervlak. H S I D I I M 5 A B R 5 B R 5 0 Y V L U F R L U F R D N ? E I S 0 Q I S 0 Q E C I Y I Y
,
I ---+---1 ---+---1 1 0 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 1 1 1 0 1 0 0 0fig. 4.3 geminimaliseerde toestandstabel
We mer ken bij fig. 4.3 nog op dat de verschillende
toestanden niet meer zo eenvoudig te herkennen zijn. Was het bij
de tabel van fig. 4.2 nog zo dat in iedere toestand slechts een
term actief was, bij fig. 4.3 worden de waarden van de uitgangen
in de verschillende toestanden echter bepaald door meerdere
termen gelijktijdig, dwz middels een or over de verschillende
rijen van het or-plane. Verder valt op dat in de geminimaliseerde
toestandstabel de term voor de directe inputmode niet meer
voorkomt. AIle uitgangen waren in deze mode immers gelijk aan
de oorspronkelijke tabel, is dit toch nog niet de minimale
oplossing. Om deze te vinden moeten"we cns realiseren dat we in
de oorspronkelijke toestandstabel eigenlijk don't cares op twee
verschillende manieren gebruikt habben, namelijk voar die
variabelen waarvan we de waarde in de betreffende toestand niet weten, maar oak voar die variabelen waarvan we de waarde wei weten, maar die cns in de betreffende toestand niet interreseert.
Zo hebben we bijvoorbeeld de afspraak dat als we eenmaal een
handshake mode geselecteerd hebben, we deze mode aIleen nog maar
via een preset mogen verlaten. We mogen dus veronderstellen dat
in de toestanden 0 tIm 4 HSMODE altijd gelijk aan "1" is. In deze
toestanden kunnen de termen met HSMODE gelijk aan "0" niet
vDorkomen, en dus zal het Dns een zorg zijn wat dan de waarde van
de uitgangen zijn. Men zegt weI dat voor deze termen de uitgangen
niet gespecificeerd zijn, de termen zelf noemt men (helaas oak
hier) don't care termen. Om nu een echt minimale oplossing te
vinden moeten deze don't care termen in de minimalisatie
meegenomen worden.. De volgende afspraken en protocol
eigenschappen kunnen we gebruiken om extra don't care termen te specificeren:
- Een handshake
verlaten worden.
mode mag slechts met behulp van een preset
Dus in de toestandenO tIm 4 is de HSMODE ingang
altijd gelijk aan "11 ' .
- De gebruiker mag slechts na een service request van de input
sequencer het C_WIN bit resetten. Tesamen met de vorige afspraak
betekent dit dat de waarde van ISYNC in de toestanden 1 en 2
altijd gelijk aan "1" is. In toestand 3 wordt de SRQIN uitgang
haag, en in deoze toestand kan ISVNC dus "Oil worden.
- De gebruiker mag in een handshake mode aIleen het datapad lezen
als de SQRIN uitgang hoog is. Dus in de toestanden <) tim 2 is de
EI ingang altijd geIijk aan "0".
_ Het handshake protocol schrijft voor dat DAV?_ pas dan weer van
"0" naar "11
' mag gaan a1 s de RDF! ui tgang van "1" naar "Oil gegaan
is. Dus in toestand 2 is DAV?_ nag steeds gelijk aan 110" ..
Ais we het bovenstaande in de tabel van fig. 4.2 invullen,
ontstaat de tabel van fig. 4.4. Hierbij zijn de waarden die een
gevolg zijn van bovenstaande afspraken tussen haakjes gepl aatst ,
waardoor we deze goed kunnen onderscheiden van die waarden waarop
in een bepaalde toestand getest wordt.
Uit aIle termen waarin waarden vaar-kamen die tussen haakjes staan kunnen we nu don't care ter-men afleiden door 'n waarde tussen
haakjes te vervangen door 2ijn complement, en aIle andere waarden
tU5sen haakjes te vervangen door een don't care streepje. Daarnaast worden nog don't care ter-men gevormd door de niet
gebruikte toestandsbits. Immers in deze toestanden kan de
sequencer bij normaal gebruik niet komen~ zodat oak dan de uitgangen ongespecificeerd mag en zijn. Hierbij spelen de waarden van de overige ingangen uiteraard geen ral. Tenslotte zij nog opgemerkt dat ISYNC nooit Ill" kan worden a.Is HSMODE
"on
is., enPLA MINIMALISATIE PAG. 13 H S I D I I M S A B R S B R S 0 Y V L U F R L U F R D N ? E I S D Q I S D Q E C I Y I Y I
---+---0 (0) 0 0 0 0 0 0 0 <) direct input 1 (0) 0 0 0 0 1 0 0 (; handshake mode (1) 0 (0) 1 0 0 0 1 0 0 <) wacht op isync (1) 1 0 (0) 1 0 (I (> 1 (> (> (> wacht op day = 1 (1) 1 1 (0) 1 <) (I (I 1 1 1 0 cont handshake ( 1 ) ( 1 ) 1 (0) 1 1 1 0 1 1 1 (> wacht op day = (I (1) (1) (> (0) 1 1 1 0 (I 1 1 0 load input(1) (1) (0) (0) (> 1 1 (> 1 1 (I 1 inte .... upt .. equest
(1) <) 1 1 (I 1 1 1 (> 1 wacht op
(1) - 1 1 1 (I 1 1 1 (> (> begin leesslag
(1) - 1 1 1 (> (> 1 1 (> <) einde leesslag ?
(1) 0 1 1 <) 0 1 0 0 0 einde cyclus
fig 4.4 Ve .. de .. ingeyulde toestandstabel.
H H S I D I S I D I M S A B R S M S A B R S 0 Y V L U F R 0 Y V L U F R D N ? E I 5 D Q D N ? E I S D Q E C I Y I E C I Y I
---
---1 1 <) <) <) <) <) (> 0 1 (> (I 1 (l (> (l - --
(> <) 1 <) (> 1 1 (> <) <) --
- - <) <) 1 1 <) 1 (I 1 <) (I (> (> 1 (I 0 1 I) 1 1 (I I) I) - - - <) 1 <) 1 (> 1 1 1 (> 0 <) I) 1 1 1 1 1 1 1 I) I) I) 1 I) <) 1 (> 1 1 1 (I 1 0 1 0 - <) 1 1 1 I) 1 <) 1 1 1 1 1 1 (I 1 1 1 1 0 I) 1 1 I) I) 1 - -(> (> 1 1 (I 1 - I) 1 1 <) 1 0 1 1 (I (> 1 1 1 <) 1 (> - (> 1 1 (> 1 (> - - I) 1 1 (> I) (> - 1 1 1 (> (>termen zijn in fig. 4.5 weergegeven. Links staan de uit de
toestandstabel afgeleide don"t care termen, en rechts de don"t
cares door het verband tussen HSMODE en ISYNC en door de niet
gebruikte toestandsbits.
De tabellen in fig. 4.4 en fig. 4.5 2ijn gebruikt als input
voor het multiple output optimalisatie programma. Het resultaat
van deze minimalisatie is in fig. 4.6 weergegeven. We zien
hieruit dat de input sequencer met 7 producttermE'r. gerealiseerd
kan worden., en dat het pIa dus geno~qen neemt met 13x7
=
91oppervlakte eenheden. H 5 I 0 1 I M S A B R S B R 5 0 Y V L lJ F R L U F R D N ?
'"'
I S 0 Q I 5 D Q E: C I Y,
I Y I --+--- ---1 1 1 (> (> 1 1 <) 1 I) 1 I) I) I) (> 1 (> 1 0 1 0 1 1 1 (I 1 1 1 0 1 1 I) 1 1 1 0 0 0 1 1 0 1 0 0fig. 4.6 Geminimaliseerde input sequencer ..
We mer ken op dat de geminimaliseerde sequencer gerealiseerd
kan worden in minder dan 64% van het oppervlak dat de
niet-geminimaliseerde vorm nodig had. Daarbij heeft het meenemen van
de don"t care termen het oppervlak nog eens tot 87% gereduceerd.
Tevens valt het geringe aantal 1I0"-en en lilli-en in de tabel van
fig. 4.6 op. Dit betekent dat men bij poortrealisatie poorten kan
gebruiken met beduidend minder ingangen. Bij realisering met
behulp van een pIa als onderdeel van E'en geintegreerde schakeling
zou men hiervan op twee verschillende manieren gebruik kunnen
maken. In de eerste plaats zijn er variabelen die uitsluitend in
een polariteit voork_omen.. Dit betekent dat in het pIa de kololTl
die verbonden is met de andere polariteit van die variabele kan
komen te vervallen. In de tweede plaats kan men door de termen
wat handig te rangschikken, een kolom als het ware voor twee
verschillende variabelen gebruiken, waardoor een verdere
oppervlakte reductie kan plaats vinden.
We sluiten dit hoofdstuk af met een laatste opmerking. Nadat
een antwerp onder meer met behulp van een pla gerealiseerd is~
zal men doorgaans het antwerp willen testen.. Dit test en \:'-an oak
PLA MINIMALISATIE PAG. 15
dat een niet werkend Ie gemaakt wordt. In beide gevallen zal men
de schal~eling willen exiteren met een aantal signalen, en de
responsie van de schakeling vergelijken met een gewenste
responsie. Dit proces is door het meenemen van de don't care
termen wat moeilljker geworden. Het pia van fig. 4.6 is nog
sIec:hts equivalent met het pIa van fig. 4.2 VDor die inputter-men
waarvoor we in fig. 4.4 expliciet de uitgangen gespecificeerd
hebben. De don't care termen van fig. 4.5 definieren de
;;:ogenaamde niet-gespecificeerde uitgangen. Bij deze inputtermen
zijn de uitgangen niet gedefinieerd, en voor deze termen bestaat
er dus geen functionele equivalentie tussen het uitgangspunt en
het resultaat van onze minimalisatie. Hiermee dient men bij het
5. De output sequencer.
De datapad protocol
output sequencer heeft tot taak om in de outputmode het
te besturen, en het bij de betreffende mode behorende
af te wikkelen. De sequencer heeft een zevental
ingangen, en vier uitgangen.
De ingangen hebben de volgende functie:
-PRESET Een logische "1" op deze ingang houdt de output sequencer
in een inactieve tDestand~ waarin geen output mogelijk is.
-DOMODE De Direct Output MODE ingang is "1" als met behulp van
het mode control register de directe output mode geselecteerd is.
-OSYNC Met deze output "syncronisatieu ingang kan de sequencer
doorgestart worden als er een handshake output mode geselecteerd
is, en de gebrui\,er 001, daad .. erkelijk bytes heeft am naar buiten
te sturen .. Een "111 start de sequencer door ..
-TWMODE Een "1" op de Three Wire MODE ingang laat de sequencer
weten dat de speciale three wire handshake mode geselecteerd is.
De sequencer zal dan tevens het DAC? signaal in het handshake
spel betrekken.
-RFD? Het ingangssignaal Ready For Data is een handshake signaal.
Met een 111" wordt aangegeven dat de andere partij klaar is om
data te ontvangen. Met een "011
op deze ingang wordt aangegeven
dat de data is overgenomen.
-LO De Load Outputregister ingang maakt met een "011
aan
sequencer kenbaar dat de processor nieuwe data
outputregister heeft geschreven.
in
de het
-DAC~ Het Data ACcepted signaal is een handShake signaal dat
speciaal bij de three wire handshake mode gebruikt Herdt. Een "111 ap deze ingang geeft aan dat aIle ontvangers de data geaccepteerd hebben.
De vier uitgangen hebben de valgende functie:
-EO_ De Enable Output uitgang laat de uitgangen van het
outputregister door naar de i/o-bus, als deze uitgang "011
is.
-OBUSY Het Output BUSY signaal wordt in de bidirectianele made
gebruikt om de in- en outputsequencers te syncroniseren. Dit
signaal zal ffl" zijn als de outputsequencer bezig is aan een
handshake cyclus.
-DAV' Met het handshake signaal Data AVailable geeft de.
outputsequencer aan wat ZIJn status is. Een "111 geeft aan dat de
sequencer bereid is om nieuwe data te producer-en. Een "1" naar
"0" over-gang geeft aan dat nieuwe, geldige data op de i/o-bus
staat. -SRQO
aan de
middel
Met het SerVIce ReQuest Out,put ?ignaal vraagt de sequencer
processor am nieuwe output data. Dit wordt aangegeven door van een u1" op deze uitgang ..
De functie van de output sequencer wordt gegeven door de
toestandstabel van fig .. 5 .. t. Hierin zien we links van de
stippellijn weer de ingangen tesamen met een getal dat de huidige
toestand aangeeft .. Rechts staat dan allereerst de nieuwe toestand gevolgd door waarde van de uitgangen in de nieuwe toestand. Op de
PLA MINIMALISATIE PAG. 17
eerste reqel zien we dat de preset actie de sequencer in toestand
(\ dwingt, waarbij aIle Ul"tgangen op EO_ na, gelijk aan "0"
worden. Deze toestand wordt, zoals regel 2 tIm 4 laten zien,
aIleen verlaten als de directe output mode of een output
handshake mode geselecteerd wordt. In het eerste geval wordt dan
overgegaan naar toestand 1~ De output wordt enabled, en aile
handshake signalen blijven inactief. We kunnen de directe output
mode aIleen nog maar middels een preset (= selectie van direct
input mode ) verlaten. De handshake modes worden verder door de
toestanden 2,3,4 en 5 afgehandeld. In toestand 2 wordt eerst
gewacht op een RFD? signaal van de andere kant, waarna de
processor om data gevraagd wordt. In toestand 3 en 4 wordt de
schrijfslag van de processor afgewacht. Met behulp van DAV_ wordt dan aangegeven dat nieLtwe data beschikbaar is, waarna in toestand
5 gewacht wordt tot de data is overgenomen. Afhankelijk van de
gekozen mode wordt dit getest met de RDF? of de DAC? ingang.
P D T R 0 0 W 0 D E M S M R D B A S S 0 Y 0 F L A S S E U V R E D N D D 0 C T T 0 S I Q S E C E ? ? 0 N Y 0
---+---1 0 1 0 0 0 (> 0 0 0 (l 1 0 0 (1 0 1 0 <) 1 I) <) () (> 0 (> 1 (> 2 1 1 1 0 0 1 1 (> <) 0 <) <) 0 2 2 1 1 1 (> <) 1 2 3 <) 1 1 1 <) 1 3.,.
'-' <) 1 1 1 <) 0 3 4 <) 1 1 <) 0 <) 4 4 0 1 1 0 <) 1 4 5 (> 1 0 0 (I (I 1 5 5 (> 1 (1 <) <) <) <) 5 <) 1 <) <) (l (l 1 (> 5=
(> 1 (> <)'"'
<) 1 1 5 (> 1 (I I) I)fig. 5.1 Functie van de output sequencer.
Bij verdere minimalisatie hoeven we de PRESET wederom niet
mee te nemen, immers de pFeset actie in regel 1 vormt op zich
weer een essentieel priemproduct waaraan minimalisatie niets kan
veranderen. NadeFe bestudering van de tabel in fig .. 5.1 laat zien
dat het in de verschillende toestanden gegenereerde outputpatroon
voar i edere toes·tand uni ek is. We kunnen de ui tgangen dus weer
op de diverse stappen die we moeten nemen om tot een minimale
oplossing te komen, maar onmiddelijk afsturen op het
eindresultaat. Zoals in hoofdstuk 4 uiteengezet is" moeten we dan
eerst zoe~~en naar don't care termen. Hierbij spelen de volgende
overwegingen en afspraken een roI:
- Als de directe output mode gek.ozen is,
OSYNC en TWMODE niet meer actief zijn.
toestand 0 de directe output mode kiezen,
inactief zijn.
dan kunnen de lijnen
Als we daarnaast in
dan zal de LO lijn
- Als er een handshake mode gekozen is" dan is DOMODE 11011
• De
handshake mode kan slechts door een preset actie varlaten worden. - Als we in toestand 2 zijn dan moet OSYNC "111 zijn. In deze
toestand is er geen reguliere manier om OSYNC te wijzigen.
Bavendien mag in toestand 2 niet naar het outputregister
geschreven worden. Dus LO_="l". Pas in toestand 3 mag de waar-de
van OSYNC gewijzigd worden door het clearen van het C_WOUT bit in het mode control register.
- Overeenkomstig de handshake protocol len dient de RFD? lijn haog
te blijver., >:alang de outseq door middel van het laag maken van
DAV' niet heeft aangegeven dat er nieuwe data beschikbaar is.
DLIS in toe-standen 3 en 4 is de waarde van RFD? bekend.
111"
- Afgesproken is dat de processor slechts na een SRQOUT in het
outputregister zal schrijven. In toestand 5 zal dus LO
blijven.
We zijn nu in staat de toestandstabel verder in te vullen ..
Het resultaat is te zien in figuur 5 .. 2. De waarden van de diverse
inputs die volgen uit bovenstaande overwegingen zijn weer tussen
haakjes geplaatst. D T 0 0 W 0 D 0 D M S M R D B A S B A S 0 Y 0 F L A E U V R E U V R D N D D 0 C 0 S
,
Q 0 S,
Q E C E'"
'"
Y 0 Y 0 ---+--_._---<) 0 1 <) <) <.1 1 (I 0 (I 1 (0) (0) (1) 1 I) I) I) 0 I) <) (J «I ) 1 (1) 1 () 0 0 1 1 1 (> (0) (1) <) (1) 1 1 1 0 1 1 1 <) (0) (1) 1 (ll 1 1 1 <) 0 1 1 1 (0) ( 1 ) 1 0 1 1 1 <) 1 1 1 «I) (1) (I <) 1 1 1 <) 1 1 (> (0) (1) <) I) 1 1 <) <) 1 1 (I (0) (1 ) 1 (> 1 1 <)P
1 (> (I (0) <) 1 (1) I) 1 <) <) <) 1 <) I) (0) 0 (> (1) <) 1 0 (I 1 0 0 (> (0) 1 (1) 0 <) 1 I) <) I) 1 I) <) (0) 1 (ll 1 (I 1 (I 0 1 (I <) <) 1 (<) ) (0) <) <) 1) (I I) I) I) (JPLA MINIMALISATIE PAG. 19
Uit figuur 5.2 kunnen we weer don't care termen afleiden
door in een regel een waarde tU5sen haakjes te vervangen door
ZlJn complement en de overigen door een don't care streepje. Het
resultaat hiervan is weergegeven in het linker-deel van fig. 5.3.
Rechts in fig. 5.3 staan de don't cares weergegeven die volgen
uit de niet gebruikte toestanden. Immers de verschillende
toestanden worden gecodeerd met 4 bits, en van de 16 mogelijke
toestanden gebruikt de output sequencer er slechts 5. De overige
11 toestanden zijn dus don't care, de uitgangen zijn in deze
toestanden ongespecificeerd. D T D T 0 0 W 0 D 0 0 W 0 D M S M R D B A S M S M R D B A S 0 Y 0 F L A E U V R 0 Y 0 F L A E U \I R D N D D 0 C 0 S
,
Q D N D D 0 C 0 S Q E C E ? ? Y 0 E C E ? ? Y 0---
---1 ---1 1 0 0 0 0 <) 0 1 1 1 1 0 0 (> (> () 1 0 1 1 1 (> (> (> (> <) 1 1 1 (> 1 (> 0 <) 0 1 (> 1 1 0 1 1 1 (> 1 (> <) 1 0 0 1 1 1 (> 1 0 1 (> (> (> 1 1 1 (> 1 0 1 1 1 1 1 1 1 0 1 1 (> (> 0 1 1 1 1 0 1 1 <) 1 1 (> 1 1 1 (> 1 1 1 1 1 1 0 1 1 1 (> 1 (; 1 1 1 1 0 0 1 1 1 I) (> <) 1 1 1 1 <) 0 1 1 (I 0 (i <) 1 (> 1 1 <) I 1 (I - (I 1 (> 1 1 0 1 I) 1 <) 1 (I (> (I 1 (I (1 1 (> (> 1 (> (> <) 1 0 <) 0 (I (> (I 1 (> (> 1 1 0 1 (> I) 1 <) (> 1 (I 0 1 1 <) (J 0 <) 1 1 (I (> (I (Ifig. 5.3 Don't care termen van de output sequencer
De tabellen in figuur 5.2 en ~ . J .
"
-..J kunnen nu dienen alsuitgangspunt VDor minimalisatie. Een paging daartoe met behulp
van het programma MOOPl leidt echter niet tot succes. De
output sequencer blijkt beschreven te worden door een sam van
ongeveer 1000 minter-men,. en dit is te veel am met MOOPl
functies zullen ieder voor zich met minder mintermen beschreven
kunnen worden. Het eindresultaat zal dan echter zeker niet
minimaal ZlJn. Als alternatief kan men overwegen om slechts een
gedeelte van de sequencer te minimaiiseren, waarna hat deel dat
is weggelaten later zo optimaal mogelijk kan worden toegevoegd.
Hier is voor deze laatste mogelijkheid gekozen, mede omdat de
structuur van de sequencer hiertoe uitnodigt. Beschouwen we
immers de toestandstabel van figuur 5.2 nader, dan blijkt dat de
ingangen TWMODE en DAC? aIleen in toestand 5 een rol spelen,
overal elders zijn ze don"t care .. Als we de sequencer zander deze ingangen minimaliseren, dan Iijkt de verwachting gewettigd dat we
deze ingangen later redelijk optimaal kunnen toevoegen. Door hat
verwijderen van TWMODE en DAC? wordt het aantal mintermen met ca.
een factor 4 gereduceerd, waardoor minimalisatie met MODPl geen
enkel probleem meer oplevert. Het resultaat van deze
gedeeltelijke minimalisatie is in figuur 5.4 weergegeven. Hierbij
zijn voor de ingangen TWMODE en DAC? geen waarden ingevuld.
D T 0 0 W 0 D 0 D M S M R 0 B A S B A S 0 Y 0 F L A E U V R E U V R D N D 0 0 C 0 S
,
Q 0 S,
Q E C E ? ? Y 0 Y 0 ---+---1 1 0 1 1 ·.0 ( 1 ) 1 1 (> 1 0 0 (2) 1 1 I) 0 1 1 (3) 0 <) 1 0 <) 0 (4) (> 1 1 0 (> 0 (5) I) 1 0 0 1 0 (6 ) 1 1 1 (> 0 <) 1 (7)fig. 5.4 Gedeeeitelijk geminimaliseerde outputsequencer.
Deze tabel dient nu zodanig gewijzigd te worden dat op het
juiste moment de waarden van TWMODE en DAC? getest worden.
Hiertoe hoeven we sle,chts naar- die termen te kijken die in
toestand 5 actief zijn. Toestand 5 wordt gev.enmerkt door het
output patroon "010011
, en we zien dat dan alleen de termen 2 en 5
uit fig. 5.4 actief zijn. Term 2 houdt de sequencer in toestand 5
zolang RFD? gelijk aan 11111 blijft, terwijl term 5 de over-gang
naar toestand 0 verzorgt, zodra RFD? gelijk aan "0" wordt.. We
moeten er echter rekening mee houden dat beide termen niet aileen
in toestand 5 actief zijn, maar oot{ nog in andere toestanden. Zo
is term 2 actief in de toestanden 2,3,4 en 5, terwijl term 5
actief i s in de toestanden 2 en 5. Het toevoegen van TWMODE en
DAC? mag echter aIleen voor toestand 5 iets aan het gegenereerde
Qutputpatroon veranderen. Dit betekent dat beide termen
geexpandeerd dienen te worden. Het ~esultaat van deze expansie is
in figuur 5,.5 weergegeven.. Nadat dit resultaat in de t.abel van
PLA MINIMALISATIE PAG. 21
tabel van fig~ 5_6, de totale geminimaliseerde outputsequencer ..
Mer~: op dat de toestand PRESET=\ll" nu expliciet als productterm
in de tabel aanwezig IS, dlt In tegenstelling tat de
inputsequencer. Dit wordt veroorzaakt door het feit dat de EO
uitgang in de presettoestand inactief en dus "111 dient te zijn ..
D T
a a w
a
Da
D M S M R D B A S B A Sa
ya
F L A E U V R E U V R D N D Da c
a
S,
Qa s
Q E C E ?"'
Ya
ya
---+---1 1 1 0 1 0 0 (2) 0 1 1 0 <) 1 0 0 (2) 1 0 1 0 <) 1 <) <) (2) <) 1 1 1 <) (I (> (5 ) I) I) 1 I) 1 I) I) I) (5) 1 1 1 (> 1 I) 0 (> ( 5)fig. 5.5 E~{pansi e van de termen 2 en ~
-'.
P D T Ra a
w
a
Da
D E M S M R D B A S B A S Sa
y 0 F L A E U V R E U V R E D N D D 0 C 0 S Q 0 S,
Q T E C E ? " Ya
ya
---+---1 1 (> <) 0 (> 1 1 0 1 1 0 I) 1 1 1 0 1 0 0 <) (> 1 1 (> (I 1 (> (> <) 1 <) 1 <) <) 1 <) I) <) 1 1 (> I) 1 1 I) I) I) 1 (> (> I) (> I) 1 1 1 0 (I (> I) (> (> 1 I) 1 (1 0 <) 0 1 1 1 (I 1 I) (> 0 (> <) 1 0 <) 1 (> 0 1 1 (> 0 <) 1fig. 5.6 Geminimaliseerde outputsequencer.
Laten we het resultaat van onze minimalisatie inspanningen
eens vergelijken m~=-t het uitgangspunt, te weten de tabel in figuur 5.2. De geminimalisee~de versie bevat in totaal 12 producttermen, t e ... -wiji de oorsp,.-onkelijke versie 13 producttermen bevatte (immers de termen die als output 110000" genereren, hoeven
gereduceerd tot 180, of weI een reductie van nog geen 10%.
De conclusie zou nu kunnen lui den dat in het geval van de
output sequencer minimalisatie weinig heeft opgeleverd. Echter
laten we eerst nog even wat nauwkeuriger kijken naar het
resultaat in figuur 5~6. Een nadere beschouwing leert dat maar
liefst 5 van de 12 termen het outputpatroon 111000" genereren.,
of ander-s gezegd uitsluitend nodig zijn om EO_ gelijk aan "111 te
maken.. De 7 overige termen verzorgen uitsluitend het Ill" worden
van de drie overige functies. Men kan zich nu a+vragen of het
povere minimalisatie resultaat misschien verband houdt met het
laag actief zijn van EO. Of met andere wDorden, als we de EO
uitgang nu eens haag actief zouden definieren, zou dat dan tot
een kleinere sequencer leiden? Deze vraag is slechts te
beantwaorden door de sequencer te minimaliseren met EO haag
actief gedefiniee~d. In figuur 5.7 is het uitgangspunt van de
minimalisatie weergegeven" d.w .. z.. de toestandstabel van de
sequencer zonde~ de PRESET ingang. De don't ca~e termen zullen
hie~ niet meer herhaald wo~den. Deze volgen uit fig. 5.3 door de
pola~iteit van EO om te ke~en.
D T
a a
Wa
Da
D M S M R D B A S B A Sa
ya
F L A U V R U V R D N D Da
C E S•
Q E S Q E C E ? ?a
ya
a
ya
---+---o
0 1 (0) (0) (0) 1 (0) (1) (0) (1) (0) «) «) (0) (I) I) (0) 0 ((J) 1 (0) 1 1 (0) «) (1) (1) <) (1) 1 (1) (1) 1 (1) (> (1) <) ( t ) 1 1 (1) (l (1) (1) c) (1) 1 0(>0 0o
(> <) <)o
(l (1 (Io
1 1 0 <) 1 t (l 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 (> 1 1 I) 0 (I <) 1 1 1 1 I) <) 1 1 0 (> 1 <) 0 0o
0 (> (I 1 () 0 <)o
1 1 (>o
1 1 I) 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 (> 0 1 1 0 0o ()
0 (> 1 1 0 I)o
(> 0 0 1 0 <) 0fig. 5.7 Outputsequence~ met EO hoog actief.
Het zal niemand verbazen dat oak nu de sequencer te groat i s
gebleken om hem in zijn geheel te minimaliseren. Daarom i s oak nu
geminimaliseerd zonder de TWMODE en DAC? ingangen. Het resultaat
hiervan staat in figuur 5 .. 8. Nu blijkt dat in toestand 5" die nu
gekenmerkt wordt door het outputpatroon "110014
, aileen de derde
te~m actief wordt, dus aileen deze productterm dient gee><pandeerd
te worden. Deze expansie i s verwerkt in de tabel van figuur 5.9"