• No results found

Minimalisatie van programmable logic arrays

N/A
N/A
Protected

Academic year: 2021

Share "Minimalisatie van programmable logic arrays"

Copied!
50
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

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.

(2)

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

(3)

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

(4)

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

(5)

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

(6)

, 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

(7)

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

(8)

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

(9)

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

(10)

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.

(11)

PLA MINIMALISATIE PAG. 5

/

,

<

,

L

,

DATAPAD

'"

"

>

'I"

'I' 'I'

1

"

RWC

' ' - - -_ _ _ _ _ -...J

(12)

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

(13)

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.

(14)

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

(15)

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

(16)

blijven. Oeze eerste regel hoeven we niet mee te nemen. In aIle

overige regels geldt steeds PRESET

=

0, en hieraan zal

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

0 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

(17)

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 0

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

(18)

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

(19)

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

(20)

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

=

91

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

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

(21)

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

(22)

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

(23)

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

(24)

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) (J

(25)

PLA 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 (I

fig. 5.3 Don't care termen van de output sequencer

De tabellen in figuur 5.2 en ~ . J .

"

-..J kunnen nu dienen als

uitgangspunt 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

(26)

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

(27)

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

D

a

D M S M R D B A S B A S

a

y

a

F L A E U V R E U V R D N D D

a c

a

S

,

Q

a s

Q E C E ?

"'

Y

a

y

a

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

a a

w

a

D

a

D E M S M R D B A S B A S S

a

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 ? " Y

a

y

a

---+---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 <) 1

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

(28)

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

W

a

D

a

D M S M R D B A S B A S

a

y

a

F L A U V R U V R D N D D

a

C E S

Q E S Q E C E ? ?

a

y

a

a

y

a

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

o

(> <) <)

o

(l (1 (I

o

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 0

o

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 0

o ()

0 (> 1 1 0 I)

o

(> 0 0 1 0 <) 0

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

Referenties

GERELATEERDE DOCUMENTEN

[r]

Using the PyModbus Python Library [43], a malicious Python code is made to inject abnormal register values into the PLC via Modbus and the attack is simulated on the Elite Town

De sluipwesp kan nu redelijk ongestoord naar de broedkamers van het nest van de mieren gaan en haar eieren in de rupsen van het blauwtje leggen die zich vervolgens tegoed gaan

2p 19 Leg uit waarom voor de originele lavalamp en de lamp uit het voorschrift van Joep (waarschijnlijk) niet dezelfde soort kleurstof gebruikt kan worden. 2p 20 Leg uit of bij

De samenhang tussen de variabelen en de hypotheek conversie (variabele Eindstatus) en de duur van het offertetraject (variabele Trajectduur) wordt getest door middel van

Met behulp van de Independent-Samples T Test wordt per onafhankelijke variabele onderzocht of er een significant verschil bestaat tussen de Citotoets score voor deze beide

The first step on the homotopy path for qpOASES takes approximately 10 ms. If no constraint is active, the optimal solution is found immediately. If a constraint is active, maximum

In this paper a new approach based on Least Squares Support Vector Machines (LS-SVMs) is proposed for solving delay differential equations (DDEs) with single-delay.. The proposed