Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem,...

336
Elektronica en Informatiesystemen Digitale Elektronica door Prof. dr. ir. J. Van Campenhout Syllabus bij de gelijknamige Cursus Academiejaar 2004—2005

Transcript of Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem,...

Page 1: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Elektronica en Informatiesystemen

Digitale Elektronica

door

Prof. dr. ir. J. Van Campenhout

Syllabus bij de gelijknamige Cursus

Academiejaar 2004—2005

Page 2: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Inhoudsopgave

1 De ontwerpruimte van digitale schakelingen 21.1 De ontwerpruimte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.1 De gedragshierarchie . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Structuurbeschrijvingen . . . . . . . . . . . . . . . . . . . . . . . . . 111.1.3 Fysische beschrijvingen: de verpakkingshierarchie . . . . . . . . . 13

1.2 Het Ontwerptraject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.2.1 Formalisering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.2.2 Decompositie, abstractie en verfijning . . . . . . . . . . . . . . . . . 161.2.3 Synthese en analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 161.2.4 Fysisch ontwerp: generatie en extractie . . . . . . . . . . . . . . . . 171.2.5 Valideren, verifieren en testen . . . . . . . . . . . . . . . . . . . . . . 18

2 Systeemmodellen op logisch niveau 202.1 Boole-algebra’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.1.1 Onmiddellijke eigenschappen . . . . . . . . . . . . . . . . . . . . . . 212.1.2 Een alternatieve definitie gebaseerd op ordening . . . . . . . . . . . 212.1.3 Andere eigenschappen . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.2 Boolese functies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3 Representaties van Boolese functies . . . . . . . . . . . . . . . . . . . . . . . 24

2.3.1 Grafische representaties . . . . . . . . . . . . . . . . . . . . . . . . . 252.3.2 Basisfuncties voor Boolese functies . . . . . . . . . . . . . . . . . . . 262.3.3 Tekstuele representaties: Boolese vormen . . . . . . . . . . . . . . . 312.3.4 Ternaire representaties van Boolese SVP-vormen . . . . . . . . . . . 402.3.5 Boolese decisiediagrammen of BDD’s . . . . . . . . . . . . . . . . . 40

2.4 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

3 Combinatorische schakelingen en hun bouwstenen 503.1 De relatie tussen Boolese vormen en schakelnetwerken . . . . . . . . . . . 50

3.1.1 Modellen van schakelaars . . . . . . . . . . . . . . . . . . . . . . . . 503.1.2 Modellen van poorten en poortnetwerken . . . . . . . . . . . . . . 523.1.3 Andere interconnecties . . . . . . . . . . . . . . . . . . . . . . . . . . 53

3.2 Boolese matrices en de analyse van taknetwerken . . . . . . . . . . . . . . 553.3 Bouwstenen voor combinatorisch ontwerp . . . . . . . . . . . . . . . . . . 57

3.3.1 Standaardcomponenten . . . . . . . . . . . . . . . . . . . . . . . . . 583.3.2 Programmeerbare componenten . . . . . . . . . . . . . . . . . . . . 633.3.3 ASIC-bouwstenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

3.4 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

i

Page 3: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4 Synthese van combinatorische schakelingen 864.1 Tweenineausynthese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.1.1 Algebraısche minimalisatie . . . . . . . . . . . . . . . . . . . . . . . 884.1.2 Implicantenmethoden . . . . . . . . . . . . . . . . . . . . . . . . . . 914.1.3 Topologische methoden . . . . . . . . . . . . . . . . . . . . . . . . . 994.1.4 Heuristische Minimalisatie: ESPRESSO . . . . . . . . . . . . . . . . 1104.1.5 Circuitrealisaties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

4.2 Meerniveausynthese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.2.1 Concept en Motivering . . . . . . . . . . . . . . . . . . . . . . . . . . 1174.2.2 Factorisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194.2.3 Realisaties van functies . . . . . . . . . . . . . . . . . . . . . . . . . 1234.2.4 Een wat groter voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . 1294.2.5 ULM’s en Multiplexersynthese . . . . . . . . . . . . . . . . . . . . . 1344.2.6 Spectrale Technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

4.3 Combinatorische hazards . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1474.4 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

5 Analyse van Sequentiele Netwerken 1535.1 Terugkoppelingen in schakelnetwerken . . . . . . . . . . . . . . . . . . . . 1535.2 Het wiskundig model van sequentiele netwerken . . . . . . . . . . . . . . 1555.3 Analyse van poortnetwerken met terugkoppelingen . . . . . . . . . . . . . 1575.4 Afwijkingen van het voorspeld gedrag . . . . . . . . . . . . . . . . . . . . . 161

5.4.1 Races en meervoudige overgangen . . . . . . . . . . . . . . . . . . . 1615.4.2 Combinatorische hazards . . . . . . . . . . . . . . . . . . . . . . . . 1615.4.3 Essentiele hazards . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1625.4.4 Ternaire analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1635.4.5 Een korte samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . 164

5.5 Geheugencellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1655.6 Analyse van poortnetwerken met geheugencellen . . . . . . . . . . . . . . 1665.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

6 Sequentiele schakelingen en hun bouwstenen 1776.1 Standaardcomponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

6.1.1 Sequentiele SSI-componenten . . . . . . . . . . . . . . . . . . . . . . 1776.1.2 Sequentiele MSI-componenten. . . . . . . . . . . . . . . . . . . . . . 1846.1.3 Sequentiele LSI- en VLSI-componenten . . . . . . . . . . . . . . . . 185

6.2 Programmeerbare componenten . . . . . . . . . . . . . . . . . . . . . . . . 195

7 Sequentiele synthese op logisch niveau 1997.1 Incrementele gedragsbeschrijvingen . . . . . . . . . . . . . . . . . . . . . . 2007.2 Het minimaliseren van het aantal toestanden . . . . . . . . . . . . . . . . . 2037.3 De assignatie van toestanden aan binaire geheugencellen . . . . . . . . . . 2137.4 Toestandsassignatie in synchrone netwerken . . . . . . . . . . . . . . . . . 2147.5 Toestandsassignatie in asynchrone netwerken . . . . . . . . . . . . . . . . . 2207.6 Compositie en decompositie van synchrone automaten . . . . . . . . . . . 225

7.6.1 Cascade- en paralleldecompositie . . . . . . . . . . . . . . . . . . . 2257.6.2 Compositieregels voor synchrone automaten: synchrone intercon-

necties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

ii

Page 4: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

7.7 Asynchrone interconnecties en aansturingen . . . . . . . . . . . . . . . . . 2337.7.1 Asynchrone interconnecties . . . . . . . . . . . . . . . . . . . . . . . 2337.7.2 Synchronisatieflipflops en -protocollen . . . . . . . . . . . . . . . . 234

7.8 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

A Concrete representatievormen voor digitale systemen 243A.1 Tekstuele vormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

A.1.1 ISPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244A.1.2 ABEL, ALTERA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247A.1.3 VHDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

A.2 Grafische beschrijvingsvormen . . . . . . . . . . . . . . . . . . . . . . . . . 260A.2.1 PMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260A.2.2 Tijdsdiagrammen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262A.2.3 Schema-editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

A.3 Beschrijvingen van fysische structuur . . . . . . . . . . . . . . . . . . . . . 264A.4 Het uitwisselingsformaat EDIF . . . . . . . . . . . . . . . . . . . . . . . . . 265

B Chipverpakkingen 266

C Enkele aanvullingen op circuitniveau: CMOS, flipflops en interconnectie 272C.1 Een korte herhaling: de veldeffecttransistor en CMOS . . . . . . . . . . . . 272

C.1.1 De veldeffecttransistor . . . . . . . . . . . . . . . . . . . . . . . . . . 272C.1.2 CMOS-poorten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278C.1.3 De invertor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278C.1.4 Complexe poorten . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281C.1.5 Standaardcomponenten in CMOS . . . . . . . . . . . . . . . . . . . 282

C.2 Teruggekoppelde circuits en metastabiliteit . . . . . . . . . . . . . . . . . . 284C.3 Interconnecties en bussen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

C.3.1 Punt-tot-puntverbindingen . . . . . . . . . . . . . . . . . . . . . . . 289C.3.2 Meerpuntconnecties en bussen . . . . . . . . . . . . . . . . . . . . . 295

D Maple-fragmenten en - voorbeelden 301D.1 Representaties in Maple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301D.2 Combinatorische minimalisatie in Maple . . . . . . . . . . . . . . . . . . . 303D.3 Sequentiele analyse in Maple . . . . . . . . . . . . . . . . . . . . . . . . . . 315D.4 Sequentiele synthese in Maple . . . . . . . . . . . . . . . . . . . . . . . . . . 321

iii

Page 5: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Voorwoord

De discipline van digitaal ontwerp stelt zich tot doel de realisatie van digitale syste-men die een vooropgegeven functionaliteit vervullen, en met inachtname van bijkomen-de randvoorwaarden, zoals b.v. niet meer dan een vooropgegeven prijs kosten, of snellerzijn dan een opgegeven minimum.

Deze discipline is relatief jong: vele, zeer gesofisticeerde analoge elektronische toe-passingen bestonden (denk maar aan de radio, de TV), terwijl digitale systemen nogelektromechanisch van aard waren. Vernieuwing in de technologie, en de opkomst vande digitale computer, hebben aanleiding gegeven tot een stormachtige groei in de digita-le elektronische systemen, en deze evolutie is nog steeds bezig. Op vele terreinen werdenanaloge systemen geheel of gedeeltelijk verdrongen door digitale systemen, in die matezelfs dat een Elektrotechnisch Ingenieur het zich al lang niet meer kan veroorloven geenweet te hebben van het ontwerp van digitale systemen. Wegens de betrekkelijke jeugdvan het domein is de systematiek van het ontwerp van digitale systemen nog lang niet zogoedgeevolueerd en doorgedrongen in de diverse geledingen van het ingenieursberoep.De opleiding in het bestuderen en ontwerpen van analoge systemen steunt immers opeen veel langere traditie. Gaandeweg echter ontgroeit het ontwerp van digitale syste-men het domein van de kunst, en wordt het een kunde, die men door studie en oefeningkan verwerven. De wiskundige basis, nodig voor de beschrijving van het gedrag en destructuur van digitale systemen, kent een groeiende verspreiding. Computergesteundemethoden voor het ontwerp van complexe digitale systemen nemen een hoge vlucht. De-ze cursus wil een inleiding zijn tot het ontwerp van digitale systemen. Hij steunt op diecursussen die de wiskundige en technologische basis aanbrengen voor de behandelingvan digitale systemen.

Deze cursus behandelt digitaal ontwerp op logisch niveau. Belangrijke stappen indit proces zijn de correcte en ondubbelzinnige weergave van het gewenst gedrag in eenof andere concrete, computerleesbare en wiskundig onderbouwde vorm, en de opeen-volgende verfijningsstappen ervan naar een compositie van bouwstenen met een een-voudiger gedrag, tot wanneer realiseerbare bouwstenen worden verkregen. Vele keuzenmoeten gemaakt worden bij het doorlopen van dit traject, en deze cursus exploreert deimplicaties van sommige van deze keuzen. De nadruk van de cursus ligt op methoden,en minder ophulpmiddelen, hoewel deze zeker noodzakelijk zijn wil men tot effectiefontwerp overgaan. De cursus is ook niet enkelzijdig gericht op VLSI-systemen; ook an-dere, meer traditionele vormen van digitaal ontwerp komen aan bod.

De lezer zal, na lectuur van deze syllabus, tenvolle beseffen dat slechts de oppervlaktevan het domein werd aangeraakt. Het uitgroeien tot volleerd ontwerper kan niet zonderzeer intensief in de praktijk ondergedompeld te worden,en zichzelf permanent te blijvenbijscholen in een domein waarvan de evolutie zich in een niet te stuiten stroomversnel-ling bevindt.

J. Van CampenhoutJanuari 2003

1

Page 6: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 1

De ontwerpruimte van digitaleschakelingen

In dit hoofdstuk beschrijven wij het domein waarin modern digitaal ont-werp zich afspeelt. Deze beschrijving brengt orde in de veelheid van termenen methoden die samen het domein van digitaal ontwerp uitmaken, en zalons in staat stellen op een gestructureerde manier te redeneren over diversestadia van een ontwerp. Wij zullen ook een specifieke betekenis geven aantermen die vaak in verscheiden betekenissen voorkomen in de literatuur. Hetdeeldomein waarop deze cursus ingaat – het ontwerp van logische schakelin-gen – wordt gesitueerd in de veel bredere context van systeemontwerp.

1.1 De ontwerpruimte

Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven worden, die elk een particulier aspect van het systeem belichten. Drie belang-rijke aspecten worden hierbij frequent gebruikt: deze zijn het gedrag, de logische structuur,en de fysische realisatie. Men kan deze drie aspecten zien als orthogonale dimensies vaneen driedimensionale ruimte waarin systemen voorgesteld worden. Deze ruimte staatbekend als de de ontwerpruimte (Eng. design space), en kan worden voorgesteld op diver-se manieren. Het voorbeeld dat wij in deze cursus hanteren is Gajski’s Y-diagram (Eng.Y-chart) ([Michel92]).

Systemen zijn over het algemeen zeer complexe objecten. Om hun beschrijving moge-lijk te maken, en beheersbaar door mens en machine, maakt men gebruik van de beproef-de techniek van hierarchie. In elk van de beschrijvingsdimensies heeft men een vorm vanhierarchie gedefinieerd, waarin conventioneel de volgende lagen worden onderkend:

• het systeemniveau

• het algoritmisch niveau

• het registertransferniveau

• het logisch niveau

• het circuitniveau

Wij zullen nu eerst de opeenvolgende lagen van deze hierarchie exploreren in de driedimensies van het Y-diagram.

2

Page 7: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 1.1: De ontwerpruimte: Gajski’s Y-diagram

1.1.1 De gedragshierarchie

Een eerste beschrijvingsdimensie is het gedrag van het systeem. Het gedrag van een sys-teem is de relatie die het realiseert tussen zijn inputs en outputs. Het beschrijven vandat gedrag vereist in de eerste plaats dat men de informatie die gedragen wordt door deinputs, resp. outputs, formeel voorstelt (de datatypes), en daaraan gekoppeld, de relatietussen de geformaliseerde in- en outputs. De relatie bevat zowel waarde-informatie alstijdinformatie. De waarde-informatie kan functioneel zijn van aard, wat wil zeggen datmet een input precies een output overeenkomt (bij deterministische systemen), maar kanook een minder stricte relatie zijn. Hte tijdgedrag specificeert wanneer veranderingenzich voordoen op outputs als reactie op een verandering van de inputs.

De wijze waarop deze gedragsaspecten voorgesteld worden hangt zeer sterk af vanhet niveau in het Gajski-diagram.

Circuitniveau

Datatypes. Op het laagste niveau, het circuitniveau, beschrijft men het gedetailleerdgedrag van de elektrische circuits waaruit het systeem is opgebouwd. De variabelen zijnanaloge elektrische grootheden, zoals stroom, spanning, impedantie, en na het aanscha-kelen van het apparaat nemen deze grootheden waarden aan in een continuum, voorelke waarde van de tijd die ook als continuum beschouwd wordt.

Input/outputrelaties. Om het gedrag van een circuit te beschrijven op dit niveau moetmen in het algemeen (niet-lineaire en/of partiele) differentiaalvergelijkingen gebruiken,die het tijdverloop van de outputs O(t) beschrijven wanneer de inputs aangestuurd wor-den door functies I(t) gedefinieerd op een continue tijddimensie t ∈ R+. Inputs en

3

Page 8: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

outputs zijn dan eindige1 verzamelingen spanningen, stromen, of zelfs impedanties, ge-definieerd voor elke niet-negatieve waarde van de tijd. Wij noemen ze signalen.

Logisch niveau

Bij de beschrijving van digitale systemen op het logische niveau gaan wij ervan uit datwij het gedetailleerd tijdgedrag van de signalen aan de inputs en outputs van het systeemkunnen abstraheren tot discrete signalen, die bijgevolg abrupt van waarde veranderen.

Datatypes. De eenvoudigste waardenruimte voor digitale signalen is de binaire ruimte0, 1. Wanneer men echter de werking van reele circuits wil beschrijven met voldoendenauwkeurigheid heeft men een wat rijkere ruimte nodig.

Voor digitale schakelingen die met spanningsniveaus werken gebruikt men dikwijlsde waardenruimte L,H,Z,X, waarin L ‘laag’ betekent, H ‘hoog’, Z ‘hoogimpedant’of ‘afgeschakeld’, en X ‘ongeldig’ (wordt gebruikt voor signalen die foutief zijn, of on-bepaald wegens een verandering). Hedendaagse beschrijvingstalen zoals VHDL (ziehoofdstuk A) maken gebruik van negen of meer discrete waarden, die meer eigenschap-pen van het onderliggende analoge signaal kunnen vatten.

In het analoge domein definieert men twee intervallen IL = [0, VIL] en IH = [(VIH ,

Vcc], die afgebeeld worden op de symbolen L resp. H . Waarden die niet in deze interval-len liggen, worden afgebeeld op X . Bijvoorbeeld, bij TTL wordt het interval 0 ≤ V ≤0,8 volt afgebeeld op L, en het interval 2,0 ≤ V ≤ 5 volt op H . Het verboden gebied0,8 < V < 2,0 volt wordt afgebeeld op X .

Figuur 1.2 geeft een beeld van de gebruikte spanningsniveaus in diverse logischefamilies (TTL en CMOS, zowel de traditionele 5-voltversies als de meer recente 3,5- en2,5-voltversies).

Slechts in de meest eenvoudige gevallen kunnen wij de waardenverzameling verderbeperken tot de verzameling 0, 1, waarbij wij een keuze moeten maken over de repre-sentatie van 0 en 1. In positieve logica beeldt men ‘L’ af op 0, in negatieve logica doet mennet het omgekeerde.

Tijdmodellering. De signalen kunnen van waarde veranderen op willekeurige tijdstip-pen, en moeten dus nog steeds beschouwd worden als functies van een reeel argument.Het logisch niveau is het niveau waarop men een schakeling voorstelt als een intercon-nectie van bv. poortschakelingen of netwerken van schakelaars.

Het dynamisch gedrag van deze schakelingen wordt gemodelleerd op een veelheidvan manieren. Vooreerst is het het onderscheid tussen bouwblok en interconnectie. Vroe-ger (in het domein van de digitale systemen enkele jaren geleden) kon men bij het be-schrijven van het tijdgedrag van een schakeling rustig zeggen dat alle vertraging veroor-zaakt werd door de bouwblokken, en dat de interconnectie niet bijdroeg tot vertraging.Inderdaad, de vertraging van bijvoorbeeld een TTL-poort is verschillende nanoseconden,terwijl signalen op een goed-ontworpen gedrukte schakeling of PCB (Eng. Printed CircuitBoard) ongeveer 20 cm afleggen in een nanoseconde.

Op hedendaagse chips liggen de zaken totaal anders. Poortvertragingen zijn kleinefracties van nanoseconden, afhankelijk van de belasting van de poort. Op de fijnste ver-bindingen doen signalen er echter steeds langer over om van het ene eind van de chip

1Wij laten systemen met verdeelde parameters hier buiten beschouwing.

4

Page 9: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5V CMOSHC, AHC,AC

GND

Vcc

VOH

Vt

VIH

VIL

VOL

5 V

4.44

3.5

2.5

1.5

0.5

0

5V TTLStandaard TTL

ABT, AHCT, HCT

GND

Vcc

VOH

Vt

VIH

VILVOL

5 V

2.4

2.0

1.5

0.8

0.4

0

LVTTLLVT, LVC, ALVC

LV, ALVT

GND

Vcc

VOH

Vt

VIH

VILVOL

3.3 V

2.4

2.0

1.5

0.8

0.4

0

2.5V CMOSALVC, ALVT

GND

VccVOH

Vt

VIH

VIL

VOL

2.5 V2.2

1.7

1.2

0.7

0.20

Figuur 1.2: De ligging van de logische niveaus in moderne discrete logische families (TTL enCMOS). Vt =drempelspanning, VIL = maximale spanning aan de ingang die herkend wordt alseen ’L’, VOL = maximale spanning aan de uitgang bij een ’L’,VIH = minimale spanning aan deingang die herkend wordt als een ’H’,VOH = minimale spanning aan de uitgang bij een ’H’,

naar het andere eind te lopen. Dit komt doordat de breedte van de metaalbaantjes ende dikte van de isolatorlaag op de chip steeds maar dalen, terwijl de chipoppervlakteruwweg dezelfde blijft of zelfs toeneemt. Verbindingen worden relatief ’langer’. Hier-door neemt de serieweerstand van de verbindingen toe zonder dat de capaciteit van deverbindingen evenredig afneemt. Een baantje kan dan aanzien worden als een verlies-hebbende vertragingslijn (van het RC-type). Zonder bijkomende voorzorgen kan de sig-naaloverdracht over grotere afstanden op de chip (meerdere mm) dan gerust meer daneen nanoseconde in beslag nemen, wat veel meer is dan de poortvertraging. Wanneerdit belangrijk is moet men een interconnectie dus aanzien als een component zoals eenandere.

Laat ons wat nauwkeuriger kijken naar modellen voor component- of interconnectie-vertragingen. Het meest eenvoudig model bestaat erin de vertragingstijd van alle com-ponenten te aanzien als een ’eenheidsvertraging’, met een vaste, gekende waarde. Hetspreekt vanzelf dat dit model geen nauwkeurige resultaten geeft, en gewoon onbruikbaaris in gevallen waar het gedrag van het circuit effectief afhangt van de precieze waardenvan de componentvertragingen. Het is echter wel nuttig wanneer men dergelijke model-len wil simuleren, omdat men dat ten minste beschikt over signalen die afhankelijk zijnvan de tijd, die men dus kan visualiseren.

Een veel fijner model bestaat uit een tweezijdig begrensde vertragingstijd d ≤ tp ≤ D.De effecten van deze vertragingstijd kan men op diverse manieren modelleren. Een eer-ste manier neemt aan dat de vertragingstijd vast is en zich bevindt in het opgegeveninterval. Men kan de vertragingstijd dan interpreteren als inertiaal delay of als transport-

5

Page 10: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

delay. Deze begrippen komen wat verder uitgebreider aan bod; voor de huidige discussievolstaat de volgende beschrijving.

• Een transportmodel is een abstrahering van een looptijdvertraging zonder band-breedtebeperking. Dit zou bv. een verliesloze transmissielijn kunnen zijn, of draad-loze communicatie met elektromagnetische golven. De vertragingstijd en de door-laatbandbreedte zijn losgekoppeld van elkaar.

• Voor de modellering van poorten en verlieshebbende verbindingen gebruikt mengewoonlijk een inertiaalmodel, dat een abstrahering is van een laagdoorlaatsysteem:vertragingstijd en bandbreedte zijn sterk gekoppeld2. Met een signaal dat onder-hevig is aan een delay associeert men een excitatiewaarde X(t) en een outputwaardex(t). Bijvoorbeeld, bij een poort is de excitatiefunctie de gewenste Boolese combi-natie van de inputwaarden, zonder enige vertraging. De outputwaarde is hier eenvertraagde versie van. Zij zal de excitatie volgen indien deze gedurende minstenseen tijd tp op dezelfde waarde gebleven is. Signaalveranderingen van kortere duurworden weggefilterd.

Gewoonlijk kent men echter niet de precieze waarden van de delays van de poortenin een circuit, en men wil ze ook niet kennen. De delays kunnen varieren van compo-nent tot component, zijn afhankelijk van de (capacitieve) belasting van de component envan een hele rist omgevingsfactoren, en kunnen zelfs afhankelijk zijn van de activiteit inde component zelf. Het enige dat men weet is dat de vertragingstijden tussen een mi-nimum d en een maximum D liggen, en men wenst circuits te bouwen die bewijsbaarcorrect functioneren voor alle concrete keuzen van de vertragingstijden die hieraan vol-doen. Hierdoor is het onmogelijk een precieze beschrijving te geven van de output vaneen poort bij een gegeven input. Men moet zich beperken tot het opgeven van een verza-meling mogelijke outputs voor een gegeven input. Dat dit echter niet zo eenvoudig is alsblijkt op het eerste gezicht mag blijken uit het nu volgend voorbeeld.

Wij stellen de output van een poort voor door twee signalen: een intern excitatiesig-naal Y (t) en een waarneembare output y(t). De output kan de excitatie volgen als dezeminstens gedurende een tijd d op een bepaalde waarde gestaan heeft; de output moet deexcitatie volgen nadat deze ten hoogste gedurende een tijd D op dezelfde waarde gestaanheeft.

Elke overgang van L naar H of omgekeerd moet verlopen via de onstabiele waardeX . Dit reflecteert eindige stijg- en daaltijden van de overgangen.

Een signaal y(t) is dan een geldige vertraagde versie van de excitatie Y (t) als aan devolgende voorwaarden is voldaan:

1. als y(t) van de waarde α ∈ L,H verandert naar de waarde X op ogenblik τ , danmoet Y (t) 6= α voor τ − d ≤ t < τ ;

2. als y(t) verandert van X naar α ∈ L,H op ogenblik τ , dan moet Y (t) = α voorτ − d ≤ t < τ ;

3. als Y (t) = β ∈ L,X, H voor τ ≤ t < τ + D, dan moet er een τ bestaan, metτ < τ + D, zodanig dat y(t) = β voor τ ≤ t < τ + D;

2Herinner u de zeer robuuste vuistregel voor systemen die bij benadering eerste-ordesystemen zijn metbandbreedte B Ghz en stijgtijd R ns: BR = 0, 35

6

Page 11: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

output x(t)exitatie X(t)

delayideale poort

Input X(t)

Transportvertragingmet vast delay

Inertiaalvertragingmet vast delay

td

d d

DD

L

L

H

H

X

X

Poortmodel

Inertiaal- en transportvertragingen met vaste delay

Twee mogelijke outputs met gegeven d en D

Figuur 1.3: Interpretatie van delaymodellen

4. als Y (t) 6= α ∈ L,H voor τ ≤ t < τ +D, dan moet er een τ bestaan, met τ < τ +D,zodanig dat y(t) 6= α voor τ ≤ t < τ + D.

Figuur 1.3 stelt deze concepten grafisch voor: het model van een poort met vertraging,als een ideale poort gevolgd door een vertraging; de interpretatie van inertiaal en trans-portdelay met vaste vertragingstijd; en twee interpretaties van bovenstaande regels overhet domein L,X, Hmet tweezijdig begrensde vertragingstijd. De tweede interpretatie isechter niet helemaal correct: waar zit de fout?

Gewoonlijk gebruikt men een gestileerde versie van dit model bij de beschrijving vanechte componenten in catalogi en technologiebibliotheken. Een voorbeeld van de manier

7

Page 12: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 1.4: Gestileerde voorstelling van discrete waarden en delaygedrag gebruikt in datasheets.Waarden worden voorgesteld door horizontale lijnen of arceringen; vertragingen door horizonta-le pijlen tussen gebeurtenissen. Een arcering stelt de waarde ’X’ voor, een horizontale lijn in hetmidden ’Z’. Een horizontale lijn boven stelt ’H’ voor, en een beneden ’L’. Aan de getekende vertra-gingstijden wordt in een bijgevoegde tabel meestal een bovengrens opgegeven, en soms ook eenbenedengrens. Noteer dat in dergelijke diagrammen onderscheid moet gemaakt worden tusseningangssignalen en uitgangssignalen. Ingangsignalen leggen een restrictie op aan de gebruiker,terwijl uitgangssignalen een beperking opleggen aan het circuit. Een dergelijk timingdiagram isdus een soort van contract tussen circuitbouwer en -gebruiker.

waarop deze informatie wordt voorgesteld vindt men in figuur 1.4.

Synchrone tijdmodellen. Een verdere abstractie van het tijdbegrip bestaat erin dat wijde waarde van de signalen enkel beschouwen op een (aftelbare) verzameling voorge-schreven tijdstippen (of in intervallen rond) ti, i = 0, 1, . . ., die bijvoorbeeld geassoci-eerd worden met transities op een vooropgegeven signaal dat kloksignaal genoemd wordt.Elk signaal wordt dan een (potentieel oneindige) sequentie van Boolese grootheden over0, 1. Systemen die afdoende op een dergelijke manier kunnen beschreven worden noe-men wij synchrone systemen. Op het concept synchronisme komen wij verder in dezecursus uitvoerig terug.

Determinisme. Wij zullen ons beperken tot digitale systemen die bij een ‘ordentelijke’aansturing een deterministisch gedrag vertonen. Hiermee bedoelen wij dat een systeemdat (i) op de goede manier geınitialiseerd is na het aanschakelen, en (ii) dat aangestuurdwordt met signalen die aan welbepaalde eisen voldoen (bv. in verband met het preciezetijdverloop, zie figuur 1.4), als antwoord steeds dezelfde digitale outputsignalen zal gene-reren, op de variaties in tijdverloop na die toegelaten worden door de vertragingsmodel-len. Wij onderstellen ook dat de outputs van een circuit, wanneer alle inputs (inclusief demogelijke klok-inputs) constant gehouden worden, na verloop van een eindige tijd een

8

Page 13: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

constante waarde zullen aannemen.3 Voor synchrone systemen die starten vanuit een ge-geven begintoestand betekent dit dat een gegeven inputsequentie steeds zal aanleidinggeven tot een deterministisch bepaalde outputsequentie.

Combinatorisch versus sequentieel gedrag. In het eenvoudigste geval zullen, bij eenconstant gehouden stel inputs, de outputs van het systeem na een karakteristieke tijd con-stante waarden aannemen die louter bepaald worden door de huidige inputwaarden, endus onafhankelijk is van de eerder aangelegde inputs. Zulke systemen noemen wij geheugen-loos of combinatorisch, en de eis van determinisme impliceert dat de input/outputrelatiebijgevolg een (partiele) functie is. Gezien wij hier spreken over systemen met een eindigaantal tweewaardige inputs en outputs, zijn het domein en het co-domein van deze func-tie eindig, en wij spreken dan over een eindige functie. Deze functies kunnen concreetvoorgesteld worden in het wiskundig formalisme van de Boole-algebra, wat in hoofdstuk2 aan bod komt.

In het meer ingewikkelde geval is de output, die verkregen wordt na een voldoendlange wachttijd bij constante inputs, ook afhankelijk van de vorige inputs, en eventueelvan de manier waarop de schakeling geınitialiseerd werd na het aanzetten. Gegeven deinitialisatie zal het circuit een functie realiseren die de inputsignalen afbeeldt op de out-putsignalen, eerder dan een afbeelding van de huidige inputwaarde op de huidige out-putwaarde, zoals een combinatorisch circuit. Deze functie is niet willekeurig: zo is hetduidelijk dat alleen de huidige en vorige inputwaarden de huidige outputwaarde kun-nen beınvloeden, daar anders het systeem ofwel non-deterministisch, ofwel niet-causaalis.

De afhankelijkheid van voorbije inputs impliceert dat een vorm van geheugen aan-wezig is in het circuit. Wij gaan er van uit dat de interne opbouw van het circuit kanbeschreven worden als een eindig digitaal netwerk, wat impliceert dat het zich internslechts in een eindig aantal toestanden kan bevinden. De afhankelijkheid van voorgaan-de inputs moet dan kunnen gerealiseerd worden via een eindige hoeveelheid geheugen,wat de klasse van mogelijke functies nog verder beperkt. Het functioneel verband tussenoutputsignalen en inputsignalen kan dan eenvoudiger beschreven worden door middelvan twee eindige functies: de toestandsfunctie, die de huidige toestand en de huidige inputafbeeldt op de nieuwe toestand, en de outputfunctie, die de huidige toestand en de hui-dige input afbeeldt op de huidige outputwaarde (zie hoofdstuk 6). Noteer dat uit dezebeschrijving niet langer op te maken valt of het hier gaat over een synchroon of asyn-chroon netwerk. Deze informatie, die bepaalt wanneer een toestandsovergang gebeurt,moet apart verstrekt worden.

Dit soort van systemen noemen wij sequentiele systemen of eindige automaten. Zoalsmen kan zien is de klasse van de combinatorische systemen een echte deelverzamelingvan de klasse van de eindige automaten. Sequentiele schakelingen en hun gedrag komenaan bod in hoofdstuk 6.

Synchrone circuits en asynchrone inputs. Naast de opgave van de tijdinformatie inhet gedragsmodel van het circuit zelf, moet men over het algemeen bepaalde tempore-

3Noteer dat deze beperking een echte beperking is, in de zin dat zij een aantal zeer nuttige schakelingenuitsluit. Zo worden bv. uitgesloten alle signaalbronnen, circuits die een signaal produceren dat verandert in detijd zonder dat deze veranderingen het gevolg zijn van een verandering aan de input. Klokgeneratiecircuitszijn hier een voorbeeld van.

9

Page 14: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

le restricties opleggen aan de externe signalen die door de buitenwereld aan het circuitopgelegd worden. Bijvoorbeeld, in synchrone circuits moeten inputs constant gehoudenworden gedurende bepaalde tijdintervallen bepaald door het kloksignaal. Bij asynchro-ne circuits zijn er temporele beperkingen op het verloop van de inputsignalen onderling,bijvoorbeeld, er mag slechts een input tegelijkertijd veranderen, en het circuit moet ge-stabiliseerd zijn alvorens er een input mag veranderen (resp. de SIC, single input changeof Hamming-1 voorwaarde, en de werking in fundamentele mode) – zie hoofdstuk 6.

De gedetailleerde temporele aspecten van een digitaal circuit worden in sterke matebepaald door de uiteindelijke implementatie, en zijn meestal irrelevant en onbekend opde hogere beschrijvingsniveaus. Men abstraheert ze dus meestal weg op deze niveaus.Noteer echter dat men tijdens het ontwerp en de realisatie van de systemen wel degelijkmoet rekening houden met dit aspect, wil men correcte circuits bouwen.

RT-niveau

Op de hogere niveaus worden krachtiger modellen gebruikt, die op een meer efficientemanier het gedrag van een digitaal systeem voorstellen.

Datatypes. Op RT-niveau beschrijft men het gedrag van een systeem in termen vanelementaire operaties op bitrijen van vaste lengte (‘woorden’). Deze bitrijen kunnen alandere concepten voorstellen, bijvoorbeeld gehele getallen. Een elementaire operatie iseen overdracht (transfer) van een bitrij tussen twee geheugenlocaties, eventueel gepaardgaande met een combinatorische transformatie tijdens de overdracht. Transformatieskunnen bitgewijze uitbreidingen zijn van de operaties uit het logisch niveau, maar kun-nen ook al geıntepreteerd worden als (aritmetische) operaties op getallen, waarbij echterde precieze representatie van het getal door een bitrij zichtbaar en relevant blijft. Hetbegrip ’overflow’ van een aritmetische operatie, bijvoorbeeld, hoort hier thuis.

Een typisch voorbeeld van een beschrijving op RT-niveau is de beschrijving van dewerking van een gemicroprogrammeerde computer in termen van zijn verzameling con-trolepunten.4 Het effect van de activatie van een controlepunt is een typische elementaireoperatie op RT-niveau.

Tijdmodel. De tijdnotie op dit niveau wordt meestal geabstraheerd tot deze van eensynchrone klok; in uitzonderlijke gevallen vindt men ook asynchrone schakelingen opRT-niveau.

Algoritmisch niveau

Op algoritmisch niveau gebruikt men algoritmen (of, in het veel voorkomend geval vanniet-terminatie, procedurale beschrijvingen5) voor de weergave van het input/output-gedrag van een systeem.

Datatypes. De datatypes zijn hier de datatypes van programmeertalen, dus abstractiesvan bitrijen, zoals getallen, lettertekens, structuren of zelfs de objecten uit de OO-talen.

4Cursus Computerarchitectuur5Conventioneel neemt men immers aan dat een algoritme na een eindig aantal berekeningsstappen ter-

mineert. In deze zin is het gedrag van het besturingssysteem van een computer, of de controle-eenheid vaneen microprocessor niet algoritmisch.

10

Page 15: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Van de numerieke datatypes zelf is men op dit niveau meestal niet langer bekommerdover hun concrete binaire representatie (bv. woordlengte, formaat). Noteer dat, wan-neer recursie of onbeperkte precisie toegelaten is, men met algoritmen in het algemeeninput/outputrelaties kan beschrijven die men niet kan realiseren met een circuit van opvoorhand begrensde complexiteit en afmetingen.

Tijdnotie. Op dit niveau is het gedetailleerd gedrag per klokperiode irrelevant gewor-den, en de tijdnotie wordt verder geabstraheerd tot een totaal geordende verzamelingvan ‘gebeurtenissen’ (events) die het begin of het einde van opdrachten aangeven. Mettotaal geordend bedoelen wij dat van elke gebeurtenis kan gezegd worden of zij steedsvoor of na een andere gebeurtenis komt. De precieze duur van de operatie (het aantalklokperioden) is dus meestal ook niet langer gekend, hoewel in sommige toepassingen(ware tijd) minstens een bovengrens bekend moet zijn.

De tijd wordt geabstraheerd tot enkele discrete gebeurtenissen, die bv. het begin en heteinde van een berekening aangeven. Een berekening (de uitvoering van een algoritme)noemt men proces.

Systeemniveau

Op systeemniveau, tenslotte, beschrijft men gedrag met behulp van meerdere, commu-nicerende processen. Elk proces is intern een sequentiele activiteit (een algoritme), maarkan interageren met de andere processen via de uitwisseling van berichten via gebeur-tenissen of het delen van gegevens. Gezamenlijk beschrijven zij het gedrag van het he-le systeem. De notie van een gemeenschappelijke, centrale tijd ontbreekt hier meestal;temporele aspecten worden vaak gereduceerd tot een partiele ordening over de gebeurte-nissen. Hiermee wordt bedoeld dat de gebeurtenissen van elk proces afzonderlijk totaalgeordend zijn op de tijdsas die hoort bij dat proces. De gebeurtenissen van alle processensamen kan men echter niet steeds op een enkele tijdsas samenbrengen, omdat men derelatieve ligging in de tijd van gebeurtenissen uit verschillende processen niet altijd kent.

De procesinteracties kunnen op de diverse manieren beschreven worden die men ookterugvindt in parallelle programmeertalen zoals Ada. Dit kan gaan van asynchrone ge-beurtenissen (events), asynchrone communicatie via gemeenschappelijke datastructuren,tot volledig gesynchroniseerde uitwisseling van berichten (rendez-vous). Vaak zal meneen vorm kiezen die goed past bij het gedrag van hardwaresystemen (zie verder, bijVHDL).

1.1.2 Structuurbeschrijvingen

Daar waar een gedragsbeschrijving zegt wat het systeem doet, beschrijft een structuur-beschrijving hoe dit gedrag gerealiseerd wordt door een structuur die samengesteld isuit primitievere bouwstenen. Wij bespreken nu kort de hierarchische lagen uit de logi-sche structuur, die goed overeenkomen met de lagen uit de gedragshierarchie. Figuur 1.5geeft een beeld van deze hierarchie.

Op het circuitniveau wordt een systeem beschreven als een interconnectie van elektri-sche circuitelementen zoals transistoren, dioden, weerstanden, condensatoren, enz. Dezeinterconnectie wordt voorgesteld door een (niet-gerichte) graaf, een circuitschema. Kno-pen zijn circuitelementen, takken zijn elektrische verbindingen. Wanneer de elektrische

11

Page 16: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 1.5: Een visueel beeld van de logische structuurhierarchie

verbindingselementen een niet te verwaarlozen vertraging introduceren, wordt hun aan-wezigheid expliciet gemaakt door deze verbindingen ook te beschouwen als component(bijvoorbeeld als transmissielijn); zij worden dan ook als knopen voorgesteld. De takkenin de circuitgraaf zijn dan tijdloze interconnecties, die louter de topologie van het net-werk weergeven. Een enkele geleider kan meerdere componenten interconnecteren. Eendergelijke geleider en de verzameling geınterconnecteerde componenten noemt men eennet, en de lijst van alle interconnecties de netlijst (Eng. Net list).

Op logisch niveau worden deelcircuits samengesteld uit logische elementen gemodel-leerd als poorten, flipflops of schakelaars. Poortnetwerken worden ook voorgesteld doorgrafen, maar deze zijn dan gericht: informatie stroomt van outputs naar inputs. Wanneerde graaf van een poortnetwerk lusvrij is, stelt het netwerk een combinatorisch circuitvoor. Ook hier kan men de interconnectie beschouwen als component. Een tussenvormtussen circuitniveau en logisch niveau is dat van de tak- of schakelaarnetwerken. Decomponenten zijn schakelaars (open of gesloten), en de verbindingen ertussen zijn niet-gericht. Dit model wordt bijvoorbeeld gebruikt bij de beschrijving van een CMOS-poort.

Op RT-niveau worden de primitieven van het logisch niveau samengenomen tot ag-gregaten zoals registers, ALU’s, multiplexers, bussen, enz. Het algoritmisch niveau wordtook PMS-niveau genoemd (van Processor-Memory-Switch). Op dit niveau worden debouwblokken processors, controllers en geheugens, terwijl op systeemniveau systemenbeschreven worden door subsystemen zoals werkstations, servers, printers, communica-tieapparaten, enz.

12

Page 17: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1.1.3 Fysische beschrijvingen: de verpakkingshierarchie

Het fysisch niveau geeft weer hoe de logische structuur afgebeeld wordt op de fysischerealiteit. De terminologie die men hanteert hangt sterk af van of men spreekt over deinterne structuur van een geıntegreerd circuit, dan wel over de structuur van een circuitopgebouwd met discrete componenten.

De binding tussen de fysische en de logische structuurhierarchie is lang niet zo duide-lijk en welgedefinieerd als tussen de logische structuurhierarchie en de gedragshierarchie.Dit komt omdat de constante en snelle evolutie van de integratietechniek ervoor gezorgdheeft dat steeds grotere systemen (of systeemonderdelen) op een enkele chip kunnengeıntegreerd worden (de zogenaamde SoC, Systems on a Chip). Hierdoor stijgt, bij gelijk-blijvende systemcomplexiteit, het niveau in de logische structuurhierarchie waarop dechipgrens zich bevindt in de verpakkingshierarchie. De ligging van deze grens is dusduidelijk niet enkel afhankelijk van de grootte van het systeem dat men beschrijft, maarook het tijdstip waarop men dit doet.

Op circuitniveau (op de chip) wordt de fysische implementatie van de circuitelemen-ten beschreven door de geometrie van de maskers gebruikt bij de fabricage: rechthoeken,polygonen. De beschrijving bestaat meestal uit een aantal lagen, die elk een welbepaaldefunctie hebben (bv. metaal, polysilicium, diffusiegebied, isolator, via, ...). De beschrijvingbevat naast topologische ook metrische en fysische informatie (afmetingen, doperingen,...). In de zeldzame gevallen waar wij spreken over een circuit opgebouwd met discreteelementen zoals transistors, dioden, weerstanden, enz., bevat de beschrijving de geo-metrische beschrijving van de verpakkingen van de circuitelementen (bv. surface-mount-componenten), alsook de geometrie van de PCB of het hybried interconnectiesubstraat.

Op logisch niveau en RT-niveau worden dit de elementaire standaardcellen of modulesuit een ontwerpsbibliotheek. Bij VLSI-ontwerp zijn deze cellen meestal rechthoeken metverbindingsplaatsen op de rand van de rechthoek. Bij discreet ontwerp spreekt men vanaparte chips in hun diverse verpakkingsvormen. De interconnectie van deze blokkenop de chip wordt beschreven door de geometrie van het banenpatroon (rechthoeken,trapezia, via’s, boorgaten, ...).

Op PMS-niveau spreekt men van complexe blokken (bv. een processorkern of een RAM-blok) waaruit complexe chips samengesteld zijn, of de chips die deze functie realiseren.Bij discreet ontwerp zit men hier reeds op het niveau waarop chips samengebracht wer-den op borden, en de moederborden of backplanes die dienen voor hun interconnectie.

Op systeemniveau tenslotte vindt men individuele chips (voor de eenvoudigste syste-men), chips gemonteerd op een bord, borden verbonden door een moederbord of back-plane, of interconnecties van dergelijke systemen (bv. geınterconnecteerde computers).

1.2 Het Ontwerptraject

Wij kunnen digitaal ontwerp beschouwen als een vertalingsproces dat in verschillendestadia verloopt. Deze stadia en hun opeenvolging kunnen gemodelleerd worden als eentraject doorheen de ontwerpruimte, waarbij in elk stadium gebruik gemaakt wordt vangeeigende representaties van het systeem (of wat er op dat ogenblik al van gekend is).Vele overgangen tussen stadia hebben een eigen naam, en wij zullen nu kort enkele be-langrijke stadia bespreken, en de terminologie die in dit verband gebruikelijk is (figuur1.6).

13

Page 18: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 1.6: Het ontwerptraject

1.2.1 Formalisering

Het eerste stadium in elk systeemontwerp staat eigenlijk nog buiten het Y-diagram. Hetis de informele beschrijving van het gewenst gedrag van het te realiseren systeem. Dezebeschrijving – het ‘lastenboek’6 – is informeel, omdat bij de formulering ervan gebruikgemaakt wordt van natuurlijke taal, diagrammen, schetsen, enz. Een dergelijke beschrij-ving is, als gevolg van haar aard, gewoonlijk behept met een aantal problemen. Om tebeginnen is zij meestal niet compleet: men legt het gewenst gedrag uiteraard wel vast ineen aantal gevallen, maar in vele andere (misschien even belangrijke) gevallen wordt hetgewenst gedrag helemaal niet beschreven. Bovendien kent men op dat ogenblik zekerniet alle details van het gedrag van het te realiseren systeem, bv. wat betreft het gede-tailleerd tijdgedrag. Een informele beschrijving is vaak ook vatbaar voor meer dan eeninterpretatie, waarbij het gevaar zeker niet denkbeeldig is dat de opdrachtgever en deontwerper een verschillende perceptie hebben van wat precies moet gerealiseerd wor-den. Om die reden kan een informele beschrijving ook inconsistent zijn, in de zin dat erinterne tegenspraak kan bestaan tussen de onderdelen van de beschrijving, en dat hetgewenst gedrag zelfs logisch niet realiseerbaar is.

Een informele beschrijving is met de huidige computertechnologie niet automatischverwerkbaar of interpreteerbaar, en kan dus niet als input gebruikt worden van een auto-matisch syntheseproces. De eerste stap in elk systematisch ontwerp moet dan ook zijnzo vlug mogelijk te komen tot een formalisering van de informele beschrijving van hetgedrag. Met ‘formeel’ bedoelen wij hier dat de beschrijving ondubbelzinnig wordt (daar-om nog niet compleet), en computerverwerkbaar. Men moet het gewenst gedrag van hette realiseren systeem dus representeren in een of andere, op soliede wiskundige basis ge-fundeerde maar computerverwerkbare notatie. Deze kan tekstueel zijn van aard, en debeschrijving neemt dan de vorm aan van een tekst in een of andere computertaal. Zij kanechter ook grafisch zijn, in de gedaante van een stel tekeningen, schema’s of diagrammen

6Een galliscisme voor bestek.

14

Page 19: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

gemaakt met een daarvoor gebouwd computergesteund tekenpakket. Wij komen terugop diverse concrete representaties in de loop van deze cursus.

Declaratief versus Proceduraal. In dit eerste stadium van het ontwerp kent men nogniet de structuur van het te realiseren systeem – synthese heeft precies als doel een struc-tuur af te leiden die het gewenst gedrag van het systeem realiseert, en die bovendien vol-doet aan een aantal randvoorwaarden van snelheid en/of kostprijs. In de eerste formali-seringsstap zou het dus wenselijk zijn dat men het gewenst systeemgedrag zou kunnenbeschrijven op een declaratieve manier, dit wil zeggen op een manier die nog geen implicatiesheeft op de structuur van een mogelijke realisatie. Dit laat de handen vrij bij de exploratie vande vele alternatieven waaruit men kan kiezen.

Alternatief aan een zuiver declaratieve beschrijving is een procedurele, uitvoerbarebeschrijving, die in zekere zin al een eerste realisatie voorstelt (onder de vorm van eenalgoritme) van het te ontwerpen systeem. Deze realisatie verschilt echter meestal van definale realisatie in de gedaante van een circuit. Een kort voorbeeld maakt het verschiltussen beide benaderingen duidelijk.

Voorbeeld 1.1 Stel dat men een prioriteitsschakeling wil bouwen waaraan n verschillende na-men si van k lettertekens worden aangeboden, en waarbij men wil dat het systeem uit dezenamen de kleinste in alfabetische volgorde vindt. Het gedrag van dit systeem (waarbij wij ab-stractie maken van temporele aspecten) is duidelijk een eindige functie: voor elke geldige inputI = s1, . . . , sn, bestaat er precies een geldige output O:

O = mins1, . . . , sn,

waarbij de functie min op de totaal geordende verzameling I gedefinieerd wordt zoals gebruike-lijk. Dit is een declaratieve beschrijving, omdat zij wel ondubbelzinnig zegt wat moet berekendworden, maar niet hoe.Alternatief zou men het gedrag kunnen beschrijven door middel van een sorteeralgoritme, bij-voorbeeld quicksort. Deze beschrijving gebruikt een concrete datastructuur, en een stapsgewijzeberekening van de gewenste functie. Wil men nu het systeem realiseren als een snel, combi-natorisch circuit (wat kan, want het gaat over een eindige functie), dan is de structuur van hetsorteerprogramma onbruikbaar. Meer nog, men moet de te realiseren functie afleiden uit hetprogramma door een analyse van het laatste, en dan op zoek gaan naar een combinatorischerealisatie van de gevonden functie. Wil men echter het systeem realiseren met behulp van eenmicrocontroller, dan is de algoritmische beschrijving uiteraard zeer nuttig, en al een stap naar derealisatie.

Men ziet dus dat de declaratieve noch de procedurale beschrijving altijd de meest nut-tige zijn. Om deze procedurale beschrijving neer te schrijven heeft men implementatie-beslissingen moeten nemen (de keuze van een algoritme en datatypes,, de structureringvan het programma). Deze beslissingen en keuzen kunnen meestal niet overgenomenworden bij de realisatie van het gewenste gedrag in de vorm van een circuit, en moetendus ‘ongedaan’ gemaakt worden.

Anderzijds is het zo dat de uitvoerbaarheid van de eerste gedragsbeschrijving eennuttige eigenschap is. Inderdaad, een uitvoerbare gedragsbeschrijving maakt een vormvan animatie of simulatie mogelijk, die onschatbare waarde heeft tijdens het formaliserenvan het gewenst gedrag. Men kan de formele representatie dan zeer vroeg in het synthe-setraject toetsen aan de informele beschrijving – het valideren van de formalisering.

15

Page 20: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1.2.2 Decompositie, abstractie en verfijning

Eens men een gedragsbeschrijving heeft zal men deze moeten aanvullen en verfijnen omte kunnen komen tot een uitvoerbare specificatie.

Binnen een gegeven hierarchisch niveau in het Y-diagram kan men de gedragsbe-schrijving herschrijven als een fijnere decompositie. Dit komt omdat de beschrijvingstech-nieken die wij gebruiken alle de mogelijkheid hebben om een zekere vorm van hierarchiein te bouwen in de beschrijving. Bijvoorbeeld, een procedurale beschrijving kan gede-composeerd worden in elkaar aanroepende functies en procedures; een Boolese functiekan herschreven worden als een samenstelling van eenvoudiger Boolese functies; eeneindige automaat kan herschreven worden als een stel gekoppelde of vernestelde auto-maten; enz.

De overstap van een gegeven hierarchisch niveau in het Y-diagram naar een lager ni-veau noemt men verfijning. Bijvoorbeeld, de gedragsbeschrijving van een sequentieelproces (systeemniveau) kan gebeuren door een algoritme op algoritmisch niveau; detransformaties uitgevoerd door een algoritme kunnen beschreven worden door een stelprimitieve overdrachten op RT-niveau; een operator (bv. een opteller) van het RT-niveaukan beschreven worden door middel van logische Boolese vergelijkingen, en de contro-lestructuur van een RT-beschrijving kan logisch beschreven worden door een eindigeautomaat.

Verfijning voegt meer detailinformatie toe aan de gedragsbeschrijving. Bijvoorbeeld,in de overgang van het algoritmisch niveau naar het RT-niveau moet men de concretevoorstelling van de gegevens expliciteren. Men zal precies moeten zeggen met hoeveelbits een object moet voorgesteld worden (numerieke precisie), en in welk formaat (2-com-plement, 1-complement, ...). Men zal ook moeten zeggen precies in hoeveel tijdstappeneen gegeven transformatie uit het algoritme zal uitgevoerd worden. Bij de overstap naarhet Boolese niveau moet men bijkomend zeggen waar elke bit staat (bv. plaats van detekenbit, representatie van constanten, ...). Men zal ook moeten aangeven hoe bepaaldeprimitieven in het algoritmisch niveau worden gerealiseerd op het lager niveau, bijvoor-beeld de vermenigvuldiging. Wanneer men naar circuitniveau overstapt zal men moetenzeggen of men in positieve of negatieve logica werkt, en waar de logische niveaus preciesliggen.

Met abstractie bedoelen wij het omgekeerde van verfijning. Het is de stap van eenlager niveau naar een hoger. Hierbij behoudt men essentiele aspecten van het gedrag,maar verwijdert men op dat ogenblik irrelevante aspecten. Bijvoorbeeld, wanneer menoverstapt van het logisch niveau naar het RT-niveau wordt het irrelevant wat de Boolesefuncties die een ALU karakteriseren precies zijn. Het enige wat men wil kennen is defunctie die gerealiseerd wordt door die ALU op het RT-beschrijvingsniveau, op de data-types van dat niveau. Ook het gedetailleerd tijdverloop van het logische niveau wordtmeestal irrelevant.

1.2.3 Synthese en analyse

Met synthese bedoelen wij de overstap van het gedragsdomein naar het structuurdomein.In feite komt de synthesestap neer op het realiseren van een gedrag door een structuur,die zelf bestaat uit bouwstenen met een primitiever gedrag. Bijvoorbeeld, (combinato-rische) synthese op logisch niveau, die wij in hoofdstuk 3 zullen bekeijken, bestaat uithet vinden van een poortnetwerk dat een opgegeven Boolese functie realiseert. Sequen-

16

Page 21: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

tiele synthese bestaat uit het vinden van een digitale schakeling die een eindige automaatrealiseert (hoofdstuk 6). Men verkrijgt een structuur – het netwerk – en primitieve ele-menten (poorten, flipflop’s). Synthese op RT-niveau bestaat o.m. uit het vastleggen vaneen datapad, een structuur die bestaat uit registers, ALU’s, multiplexers, bussen en eencontroller, die in staat is alle primitieve operaties van een RT-beschrijving uit te voeren.

Het omgekeerde van synthese is analyse. Men krijgt een structuur op een gegevenbeschrijvingsniveau, en men heeft als taak het gedrag te bepalen van het circuit, gegevende gedragsbeschrijving van de primitieven. Bijvoorbeeld, men vertrekt van een poort-netwerk, en men poogt de functie gerealiseerd door dit netwerk te achterhalen. Of menvertrekt van een programmatekst, en men probeert te achterhalen wat dit programmaprecies doet.

1.2.4 Fysisch ontwerp: generatie en extractie

De generatiestap is het afbeelden van een logische structuur op een concrete, fysischestructuur. Deze stap bestaat uit twee deelstappen, in het Engels Technology Mapping enPhysical Design genoemd. De eerste deelstap uit het kiezen van de componenten (techno-logie, bibliotheek), en het (her)verdelen van de functies in de logische structuur over debeschikbare componenten. Bijvoorbeeld, wanneer men een poortnetwerk wil realiserenmet discrete poorten, moet men zeggen van elke poort door welk gedeelte van welke chipze gerealiseerd wordt. Wanneer het ontwerp een EN-poort met 10 ingangen nodig heeft,maar de componentenbibliotheek heeft maar poorten met tot 3 ingangen, dan moet mende 10-ingangspoort in het ontwerp vervangen door een netwerk van 3-ingangspoorten.

De interconnectie zelf moet gerealiseerd worden door een fysische interconnectie, bv.op een PCB (Printed Circuit Board) of op het chipoppervlak. Dit vereist de plaatsing vande componenten op de drager en het uitwerken van de routering van de interconnectie.

De inverse stap, extractie, is verantwoordelijk voor het extraheren van de logischestructuur en een aantal gedragseigenschappen uit een gegeven fysische structuur. Bij-voorbeeld, uit een stel maskers en de kennis van het gebruikte halfgeleiderproces kanmen de structuur van het gerealiseerde systeem afleiden (net list extraction). Men kan decircuitelementen identificeren, alsook hun interconnectie en eventueel aanwezige parasi-taire elementen. Bovendien kan men een aantal tot dan toe onbekende parameters vande realisatie afleiden, i.h.b. parameters die bepaald worden door de elektrische en geo-metrische eigenschappen van de interconnectie. De extractie van deze parameters, en hetterugvoeren van hun waarden naar de andere niveaus in het Y-diagram, noemt men backannotation. Deze stap is onmisbaar, wil men verifieren of de gerealiseerde schakeling ef-fectief de opgelegde randvoorwaarden vervult. Vaak kan men enkel precieze informatiekrijgen over de snelheid die het circuit zal halen door een parameterextractie, bijvoor-beeld van de sterkte van de capacitieve koppeling van interconnecties met de aarding ofonderling. De ongewilde aanwezigheid van parasitaire circuitelementen kan in sommigegevallen ook de oorzaak zijn van een verkeerd gedrag. Aangezien deze elementen nietzichtbaar zijn in de ontwerpsgegevens, is de enige manier om ze te detecteren het uit-voeren van een extractiestap. Fysisch ontwerp strekt zich uiteraard ook uit op de anderehierarchische niveaus. Dit bevat o.m. het ontwerp van de module-interconnecties, deverpakking, de koeling en het uitwendig voorkomen van het systeem. In het bijzondervoor apparaten waar mensen intensief mee interageren is dit een belangrijk aspect.

17

Page 22: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1.2.5 Valideren, verifieren en testen

Correctheid, en het nagaan ervan, is een cruciaal onderdeel van elk syntheseproces. Bijelke stap in het syntheseproces moet men nagaan of de toegepaste transformatiestap cor-rect is. Hoewel er oppervlakkig veel gelijkenis bestaat tussen de stappen die wij nu zullenbespreken, toch zijn er grote verschillen. Deze liggen besloten in het gekende adagium’Building the right system’ versus ’Building the system right’.

Valideren. De eerste keer gebeurt dat na de formalisering. Men moet nagaan of deformalisering op een correcte manier de wensen van de opdrachtgever verwoordt – hetgaat dus over ’Building the right system’. Dit noemt men de validatie van de formalisering7.Men valideert een formalisering voornamelijk door ze te simuleren, en na te gaan of hetgeobserveerde gedrag voldoet aan de verwachtingen. Dit is duidelijk een zeer informeleprocedure, aangezien een misgelopen simulatie wel de aanwezigheid van een probleemkan aantonen, maar een correct verlopen simulatie niet de afwezigheid van mogelijkeproblemen.

Bepaalde aspecten kan men echter ook op een formele manier nagaan. Zo kan menproberen te bewijzen of een geven formalisering sommige formele eigenschappen heeft ofniet heeft. Bijvoorbeeld, van een controller voor verkeerslichten wil men dat op geen en-kel ogenblik meer dan een rijrichting groen krijgt. Van de controller van een wasmachinewil men dat de verwarming nooit aan gaat wanneer er onvoldoende water aanwezig is,of dat de trommel nooit kan draaien waneer de laaddeur open is. Dit zou men willennagaan op de formele gedragsbeschrijving, zonder gebruik te moeten maken van (ex-haustieve!) simulaties. Sommige formaliseringssystemen stellen de ontwerper in staatvereisten zoals deze te formaliseren als een stelling, en machinegesteund het bewijs te le-veren dat de formalisering voldoet aan deze stelling. Er bestaan heel wat technieken diedit mogelijk maken op logisch niveau, waar men bewijsbare uitspraken kan doen overhet gedrag van een eindige automaat.

Verifieren. Verifieren is een verzamelterm voor het nagaan van de correctheid van eenvertalingsstap uit de ontwerpshierachie, waarbij zowel de bron als het resultaat van destap in machineleesbare vorm staan. Hier gaat het om ’Building the system right’. Al-le inverse stappen – abstractie, analyse, extractie – kunnen aangevuld worden met eenverificatiestap. Bijvoorbeeld, bij een extractie zou men willen bewijzen dat de fysischestructuur inderdaad overeenkomt met de logische, en dat er bv. geen parasitaire elemen-ten gevormd werden door het layoutproces van de componenten of de interconnectie.Dit heet een LVS-verificatie, van layout versus schematic. In ideale omstandigheden zoumen kunnen hopen dat verificatiestappen overbodig zijn, omdat de voorwaartse syn-thesestap ‘correct is door constructie’. Dit is een situatie vergelijkbaar met de situatievan een compiler voor een programmeertaal: compilers zijn zo betrouwbaar gewordendat men er slechts in laatste instantie zal van uit gaan dat een softwarefout veroorzaaktwerd door het compilatieproces. Slechts in omstandigheden waar extreme eisen gesteldworden aan betrouwbaarheid zal men de compiler wantrouwen, en de gegenereerde ma-chinecode verifieren.

De synthese van hardware is echter veel complexer, en men heeft nog niet het vertrou-wensniveau bereikt dat men heeft bij software. Een aantal stappen in het syntheseproces

7Net zoals bij andere termen wordt de term ’validatie’ in meerdere betekenisen gebruikt in de literatuur.In deze cursus beperken wij ons tot de opgegeven betekenis.

18

Page 23: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

gebeuren bovendien nog manueel, door de ontwerper. En tenslotte is het zo dat de im-plementatie van de synthesesoftware zelf eerst correct moet bewezen worden alvorensmen kan uitspraken doen over de syntheseproducten. Dit is bij mijn weten voor geenenkel realistische ontwerpomgeving gebeurd.

Testen. Testen, tenslotte, is de activiteit die na gaat of de uiteindelijke realisatie van hetcircuit overeenkomt met de resultaten van het syntheseproces. Men zal nagaan of alleonderdelen functioneren volgens plan. Hiervoor zal men bv. in de interconnectie (bedra-ding) nagaan of er geen kortsluitingen of open ketens voorkomen, en of alle poorten inhet circuit inderdaad functioneren. Het gaat hem dus in wezen over een verificatie vande structuur van de effectieve realisatie. Men zal ook nagaan of het tijdgedrag van hetgerealiseerde circuit binnen de vooropgelegde marges ligt (parametrisch testen).

19

Page 24: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 2

Systeemmodellen op logisch niveau

In dit hoofdstuk beginnen wij met onze behandeling van het in vorighoofdstuk geıdentificeerde logisch niveau. Wij behandelen de beperkte wis-kundige basis, namelijk de Boole-agebra’s, de Boolese functies en hun concre-te voorstellingen.

2.1 Boole-algebra’s

De abstractie op logisch niveau van digitale circuits wordt gekenmerkt door signalen diemaar een eindig aantal waarden kunnen aannemen. Een geschikt wiskundig model vanhet gedrag van de bouwstenen moet deze discrete aard, en de gerealiseerde verbandentussen de in- en uitgangssignalen van de schakelingen weerspiegelen.

Dit gebeurt door middel van wiskundige structuren die men Boole-algebra’s noemt.1

Deze wiskundige structuren en hun eigenschappen zijn ongetwijfeld reeds aan bod geko-men in andere opleidingsonderdelen; ter volledigheid, en als definitie van de gebruiktenotatie, geven wij hier een korte herinnering.

Definitie 2.1 Een Boole-algebra B over een eindige verzameling B = b1, . . . , bm is eenstructuur

B =< B, +, ·, 0, 1 >

die voldoet aan de volgende eisen:

1. + en · zijn twee binaire bewerkingen op B, d. w. z. ∀x, y ∈ B : x + y ∈ B en x · y ∈ B;

2. + en · zijn commutatief en associatief;

3. + is distributief m. b. t. ·, en · is distributief m. b. t. +;

4. B bevat twee identiteitselementen 0 en 1, waarvoor geldt ∀x ∈ B : x + 0 = x en x · 1 = x;

5. Voor elk element x ∈ B bestaat er een complement x′ waarvoor geldt x+x′ = 1 en x·x′ = 0.

Voorbeeld 2.1 Voorbeelden van Boole-algebra’s:

1Wij gebruiken de termen ‘Boole-algebra’ en ‘Boolese functie’ i.p.v. ‘Booleaanse algebra’ resp. ‘Booleaansefunctie’, dit in analogie met ‘Besselse functie’.

20

Page 25: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

• Voor een eindige verzameling S noteren wij met P(S) de verzameling van alle deelverza-melingen van S (de machtsverzameling, eveneens eindig). Dan is

< P(S),∪,∩, ∅, S >

een Boole-algebra.

• Weze B = 0, 1 . Dan is B1 =< 0, 1,+, ·, 0, 1 > een Boole-algebra, de binaire Boolesealgebra. De definitie van +, ·, en ′ volgt rechtstreeks uit definitie 2.1.

• Weze B = 0, 1n. Dan is Bn =< 0, 1n,+, ·, 0n, 1n > een Boole-algebra. De operaties +,· en ′ zijn de componentsgewijze uitbreiding van de operaties in B1.

2.1.1 Onmiddellijke eigenschappen

Uit de definitie van een Boole-algebra kunnen wij meteen een aantal interessante eigen-schappen afleiden. Onderstaande eigenschappen gelden voor willekeurige a, b ∈ B. Wijlaten het aan de lezer over deze eigenschappen te bewijzen (zie oefeningen).

1. 0′ = 1 en 1′ = 0;

2. a + a = a (Idempotentie van +);

3. a · a = a (Idempotentie van ·);

4. a + 1 = 1 (Absorptie door 1);

5. a · 0 = 0 (Absorptie door 0);

6. a + a · b = a;

7. a · (a + b) = a;

8. a′ is uniek (Uniciteit van invers);

9. (a′)′ = a;

10. (a + b)′ = a′ · b′ (Stelling van De Morgan);

11. (a · b)′ = a′ + b′ (Stelling van De Morgan);

12. a + a′ · b = a + b;

13. a · (a′ + b) = a · b.

2.1.2 Een alternatieve definitie gebaseerd op ordening

Men kan een Boole-algebra over een verzameling B ook definieren op basis van eenordening van de elementen van B. Een binaire relatie op B is een partiele ordeningwanneer

1. zij reflexief is: ∀x ∈ B : x x;

2. zij antisymmetrisch is: x y en y x⇒ x = y;

3. zij transitief is: x y en y z ⇒ x z.

21

Page 26: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Koppels x, y die niet tot behoren zijn niet vergelijkbaar. Zo kan men b.v. in Bn

de elementen componentsgewijze ordenen: weze x = (x1, . . . , xn) en x′ = (x′1, . . . , x′n)

elementen van Bn. We hebben dan dat x x′ indien xi ≤ x′i ∀i. Men kan dus zeggen dat(0010) (0110), maar (0010) en (0100) zijn niet vergelijkbaar.

Hoewel dus slechts partieel is hebben x en x′ wel steeds een gemeenschappelijkegrootste ondergrens glb(x, x′) en een kleinste bovengrens lub(x, x′) in Bn. In het algemeenzegt men dat z de kleinste bovengrens is van x en y, z = lub(x, y), indien

1. x z en y z

2. ∀u: x u en y u geldt dat z u.

Partieel geordende structuren die gesloten zijn onder lub en glb noemt men tralies. Menkan de binaire operaties lub en glb ook in de meer vertrouwde infix-notatie schrijven; zijdefinieren dan inwendige samenstellingswetten + en · als volgt:

glb(x, y) = x · ylub(x, y) = x + y

Wanneer + en · distributief zijn t.o.v. elkaar noemt men de tralie distributief. Wanneerbovendien universele boven- en ondergrenzen bmax en bmin kunnen gevonden worden inB heet de tralie begrensd. Wanneer tenslotte voor elk element b ∈ B een ander elementb′ ∈ B kan gevonden worden waarvoor geldt dat bmax = b + b′ = lub(b, b′) en bmin =b · b′ = glb(b, b′) is de tralie distributief, universeel begrensd, en gecomplementeerd. Eendergelijke tralie heet Boole-algebra.

Deze definitie is interessant omdat zij bijkomende structuur oplevert in een Boole-algebra: elke Boole-algebra bezit dus van nature uit een partiele ordening, gedefinieerddoor de operaties + en ·. Bijvoorbeeld, in de algebra

< P(S),∪,∩, ∅, S >

is de natuurlijke ordening de setinclusie ⊆; in

Bn =< 0, 1n,+, ·,′ , 0n, 1n >

is het de componentsgewijze ordening hierboven beschreven.

2.1.3 Andere eigenschappen

Dualiteit

Zowel de definitie van een Boole-algebra, als de eigenschappen die eruit volgen, bezitteneen kenmerkende dualiteit onder de afbeelding

d

+ 7→ ·· 7→ +0 7→ 11 7→ 0

Zo zijn b.v. eigenschappen 2 en 3, 4 en 5, en 6 en 7 hierboven elkaars duaal. Deze du-aliteit kan gebruikt worden om, eens een stelling bewezen, ook snel het bewijs te leverenvan de duale stelling. Dualiteit komt verder in deze cursus herhaaldelijk aan bod.

22

Page 27: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Verscheidenheid van Boole-algebra’s

Stelling 2.1 Elke eindige Boole-algebra is isomorf met de Boole-algebra < P(S),∪,∩, ∅, S >

voor een geschikte basisverzameling S.

Bewijs. zie [Stone73]Deze stelling heeft belangrijke consequenties: zo is het aantal elementen in elke ein-

dige Boole-algebra steeds een macht van 2 (er bestaat dus geen ternaire Boole-algebra!).Men moet dus in feite maar een enkele eindige Boole-algebra bestuderen.

Atomen van Boole-algebra’s

Definitie 2.2 (Atomen van een Boole-algebra) Een element x 6= 0 van een Boole-algebra Bis een atoom als voor elk element y x geldt dat y = 0 of y = x.

De atomen van een Boole-algebra zijn dus zijn kleinste niet-nulelementen. In het gevalvan onze Boole-algebra < P(S),∪,∩, ∅, S > zijn dit de deelverzamelingen van S metprecies een element. Een Boole-algebra met 2n elementen heeft precies n atomen. Atomenvormen de primitieve bouwstenen van de algebra, men kan er elk ander element meebouwen. Dit volgt uit de volgende stelling.

Stelling 2.2 (Compositiewet voor de atomen) In een eindige Boole-algebra kan elk elementondubbelzinnig en op unieke wijze geschreven worden als een som (met de +-operator van deBoole-algebra) van een deelverzameling van de atomen.

Bewijs. zie [Stone73]

Met n atomen kan men inderdaad precies 2n deelverzamelingen (en dus elementen)maken (inclusief de ledige verzameling, die bij conventie het 0-element oplevert).

2.2 Boolese functies

De basisverzameling B beschrijft de signaalwaarden van een elementair schakelelementof een poort. De relaties tussen de signalen op deze elementen en hun interconnecties innetwerken hebben dikwijls een functie-karakter (combinatorische functies), en kunnendan beschreven worden door middel van Boolese functies. De volgende definities gevenvorm aan de Boolese functies.

Definitie 2.3 Een Boolese functie f(x1, . . . , xn) van n Boolese veranderlijken is een afbeeldingvan Bn op B:

f(x1, . . . , xn) : Bn → B.

Het aantal functies van een eindige verzameling X , met kardinaalgetal |X|, naar eeneveneens eindige verzameling Y is eindig, en wordt gegeven door |Y ||X| (bewijs dit).Toegepast op het geval X = 0, 1n en Y = 0, 1 vinden wij dat het aantal binaire Boolesefuncties van n binaire variabelen 22n

bedraagt.

Definitie 2.4 De verzameling 0, 1n → 0, 1 van alle binaire Boolese functies van n binairevariabelen noemen wij Fn.

23

Page 28: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In Fn kunnen wij ook interne samenstellingswetten + en · definieren op de volgendewijze.

Definitie 2.5 Weze g, f ∈ Fn. De functiesom h(·) = (f + g)(·) wordt gegeven door

h(x1, . . . , xn) =

0, als g(x1, . . . , xn) = 0 en f(x1, . . . , xn) = 01, in alle andere gevallen.

Het functieproduct h(·) = (f · g)(·) wordt gegeven door

h(x1, . . . , xn) =

1, als f(x1, . . . , xn) = 1 en g(x1, . . . , xn) = 10, in alle andere gevallen.

Definitie 2.6 De nulfunctie f0 en de eenfunctie f1 worden gedefinieerd als

f0(x1, . . . , xn) = 0 , ∀(x1, . . . , xn) ∈ 0, 1n

f1(x1, . . . , xn) = 1 , ∀(x1, . . . , xn) ∈ 0, 1n

Wij zullen f0(x1, . . . , xn) ook schrijven als 0, en f1(x1, . . . , xn) als 1.

Uit definities 2.5 t.e.m. 2.6 volgt dat Fn =< Fn,+, ·, f0, f1 > een Boole-algebra is (bewijsdit). Wat is de natuurlijke ordening op Fn?

Definitie 2.7 Het gewicht van een functie f(x1, . . . , xn) is het aantal waarden van (x1, . . . , xn)∈ 0, 1n waarvoor f(x1, . . . , xn) = 1. Een functie f(x1, . . . , xn) is monotoon (niet-dalend)als

(x1, . . . , xn) ≤ (y1, . . . , yn)⇒ f(x1, . . . , xn) ≤ f(y1, . . . , yn).

Een functie f(x1, . . . , xn) is symmetrisch als

f(x1, . . . , xn) = f(xπ(1), . . . , xπ(n)), voor alle permutaties π.

Boolese functies kunnen diverse andere nuttige eigenschappen hebben, zoals zelfdu-aliteit en unaatheid. Deze eigenschappen komen verderop aan bod; in de oefeningenwordt er dieper op ingegaan.

2.3 Representaties van Boolese functies

Boolese functies zijn eindige objecten, en in tegenstelling tot wat het geval is bij reelefuncties, kan men elke Boolese functie expliciet neerschrijven. Er bestaan diverse repre-sentatievormen voor Boolese functies; niet alle zijn echter even geschikt voor verdere(geautomatiseerde) verwerking. Representaties hebben bij voorkeur een aantal gunstigeeigenschappen. Onder ’gunstige eigenschappen’ verstaat men onder andere

• De compactheid van de representatie: hoeveel plaats neemt de representatie van eenfunctie in (in het computergeheugen)? Noteer hierbij dat, als men alle functies vann variabelen wil representeren, men noodgedwongen een gemiddelde representatie-lengte moet hebben die exponentieel groeit in n. De reden hiervoor is dat er 2(2n)

objecten moeten kunnen gerepresenteerd worden met een eindig alfabet; dit vraagtnu eenmaal namen met een gemiddelde lengte van O(2n). Wat er echter wel zois dat, afhankelijk van het soort representatie, ’eenvoudige’ of ’veel voorkomende’functies een beduidend kortere representatie hebben.

24

Page 29: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

x1x2x3 f(x1, x2, x3)

000 1001 0010 1011 0100 0101 0110 1111 1

Figuur 2.1: De waarheidstabel van een Boolese functie

• De toegankelijkheid van de representatie. Een representatie is des te beter naarmatezij de essentiele eigenschappen van de functie blootlegt, zodanig dat de algoritmendie zich moeten baseren op deze representatie, dit kunnen doen met zo weinig mo-gelijk extra werk. In het bijzonder zullen wij verderop zien dat voor meerdere re-presentaties, er een nogal sterke band bestaat tussen de structuur (syntaxis) van derepresentatie, en de structuur (topologie) van het netwerk dat de functie realiseert.

Wij zullen nu enkele concrete representaties beschrijven.

2.3.1 Grafische representaties

De waarheidstabel

Deze representatie is een tabel waarvan de linkerkolom bestaat uit de 2n mogelijke ele-menten van 0, 1n, lexicografisch geordend. De rechterkolom bevat de functiewaardef(x1, . . . , xn) voor dat element (fig. 2.1).

Noteer dat deze representatie een lengte heeft die groeit als n2n (dit wil zeggen, expo-nentieel in het aantal variabelen n), en vrij snel onbruikbaar wordt voor grotere n. Noteerdat elke Boolese functie een even lange representatie heeft, zelfs de meest triviale functieszoals 0 en 1. Noteer ook dat mogelijke speciale eigenschappen van een functie, zoals bv.symmetrie, in het geheel niet naar voor komen in deze representatie.

De hyperkubus en de karnaugh-kaart

Wanneer wij de rij (x1, . . . , xn) beschouwen als de coordinaten van een punt in de n-di-mensionale ruimte, zien wij dat de 2n elementen uit 0, 1n de hoekpunten voorstellenvan een n-dimensionale kubus met zijde 1. Een functie f(x1, . . . , xn) kan dan wordenvoorgesteld door het aanmerken van die hoekpunten van een n-kubus waarvoor de func-tie de waarde 1 aanneemt (fig. 2.2). De kubus heeft een nuttige geometrische en topologi-sche structuur, bruikbaar bij de representatie van functies. Noteer in dit verband dat dezijden van de kubus steeds elementen verbinden die vergelijkbaar zijn onder de natuur-lijke ordening, en dat de coordinaten van verbonden hoekpunten slechts in een positieverschillen.

25

Page 30: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1(111)0(011) 1(110)XXXX1(010)XXXX

0(101)0(001) 0(100)XXXX1(000)XXXX

Figuur 2.2: De functie van fig. 2.1 in de hyperkubus

Op de n-kubus kan een afstandsmaat worden gedefinieerd: de hamming-afstand.

Definitie 2.8 De hamming-afstand tussen twee hoekpunten (x1, . . . , xn) en (y1, . . . , yn) vande n-kubus is het aantal zijden dat men moet doorlopen om van het ene punt naar het andere tegaan. Merk op dat dit tevens het aantal plaatsen is waarin (x1, . . . , xn) en (y1, . . . , yn) verschil-len.

De hamming-afstand voldoet aan alle eigenschappen van een metriek (symmetrie, posi-tiviteit, driehoeksongelijkheid). Het zijn overigens deze eigenschappen die ons toelatendeze functie een ‘afstand’ te noemen.

Voor kleine waarden van n kan de n-kubus ook vlak gerepresenteerd worden, onderde vorm van een karnaughkaart. In fig. 2.3 wordt het proces verduidelijkt: men vouwteerst de kubus open tot wanneer hij vlak wordt; nadien vervangt men knooppunten opafstand 1 door aangrenzende vierkantjes. Vierkanten die minder dan n buren hebbenin een n-variabele kaart moet men als aangrenzend beschouwen aan vierkanten aan hethorizontaal of vertikaal overliggend vierkant aan het andere uiteinde van de kaart. Deessentie van een karnaughkaart is dus dat aangrenzende cellen alle hamming-afstand 1 hebben.

Noteer dat, evenals de waarheidstabel, ook de karnaugh-kaart snel groot wordt, on-geacht de functie die gerepresenteerd wordt: de oppervlakte groeit als 2n. Karnaugh-kaarten worden onpraktisch voor n = 5 (twee kaarten van n = 4) en onbruikbaar voorn > 5, omdat de eis van afstand–1 door aangrenzing nog slechts voor een kleine fractievan de cellen opgaat. Het nut van Karnaugh-kaarten is hoofdzakelijk conceptueel, om-dat zij vaak een uitstekende representatie vormen waneer men wenst te redeneren overde eigenschappen van functies.

2.3.2 Basisfuncties voor Boolese functies

Daar Fn een Boole-algebra is, geldt dat elke functie in Fn kan geschreven worden alshet resultaat van een binaire operatie (+ of ·) tussen twee functies uit Fn. Zoals reedsgezegd genereren in elke Boole-algebra de atomen de hele Boole-algebra ([Stone73], pag.376). Elk element uit de Boole-algebra kan dan op een unieke manier geschreven wordenals een combinatie van atomen met de operator +. Het blijkt zelfs dat, naast de atomen,

26

Page 31: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

0(001) 0(011) 1(111) 0(101)

1(000) 1(010) 1(110) 0(100)

x1

1 1 1 0

x3 0 0 1 0

x2

Figuur 2.3: De overgang van n-kubus naar karnaugh-kaart

er een aantal andere stellen basisfuncties kunnen gevonden worden. Wij zullen er tweestellen basisfuncties bespreken.

Mintermen en mintermfuncties

Mintermfuncties zijn de atomen van de Boolealgebra Fn. Het zijn de 2nfuncties metgewicht 1 (zie def. 2.7). D.w.z., een mintermfunctie m(·) wordt volledig beschreven doordie ene waarde van (x1, . . . , xn) ∈ 0, 1n waarvoor m(x1, . . . , xn) = 1.

Er zijn 2n mintermfuncties in Fn (waarom?). Een eenvoudige naamgeving van demintermfuncties kan verkregen worden door de combinaties (x1, . . . , xn) af te beeldenop de gehele getallen als volgt :

ν : 0, 1n → 0, 1, . . . , 2n − 1

met ν(x1, . . . , xn) =∑n

i=1 xi2n−i, waarin xi in het rechterlid geınterpreteerd wordt als hetgehele getal 0 of 1. De afbeelding ν is een isomorfisme (bewijs), en is dus inverteerbaar.Het bitpatroon ν−1(i), 0 ≤ i ≤ 2n − 1, is niets anders dan de binaire representatie van i.De 2n mintermfuncties m0, . . . ,m2n−1 kunnen dan worden benoemd als volgt :

mk(x1, . . . , xn) =

1, als ν(x1, . . . , xn) = k

0, anders.

De mintermfuncties vormen een complete basis voor Fn, zoals aangegeven door de vol-gende stelling.

Stelling 2.3 (Normaalvorm) Elke Boolese functie kan op een unieke manier voorgesteld wordenals de functiesom van mintermfuncties.

27

Page 32: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bewijs. Volgt onmiddellijk uit stelling 2.2.

Voorbeeld 2.2 Voorbeeld van mintermcompositie. Beschouw de functie f als gedefinieerddoor haar waarheidstabel

x1x2x3 ν(x1, x2, x3) f(x1, x2, x3)

000 0 1001 1 0010 2 1011 3 0100 4 0101 5 0110 6 1111 7 1

De mintermfunctierepresentatie is

f(x1, x2, x3) = (m0 + m2 + m6 + m7)(x1, x2, x3).

Meestal wordt deze notatie ingekort tot f =∑

(0, 2, 6, 7). Noteer dat deze notatie niet steeds eenexponentiele lengte heeft in n.

Noteer ook dat, wanneer wij de mintermfuncties op een vaste manier ordenen, dezerepresentatie canonisch is. Wij komen hier wat verder formeel op terug.

Spectrale representaties

De canonische mintermexpansie is lang niet de enige basisfunctierepresentatie van eenBoolese functie. In analogie met reele functies kan men ook representaties uitdenkenin termen van een ander orthonormaal stel basisfuncties, zoals b.v. de reele periodieketrigoniometrische functies. Een bruikbare set basisfuncties in 0, 1n zijn de Hadamard-functies, de rijen uit de Hadamard-matrix Tn.

De Hadamard-matrix Tn wordt recursief als volgt gedefinieerd:

T 0 = [1]

T 1 =

[1 11 −1

]

Tn =

[Tn−1 Tn−1

Tn−1 −Tn−1

]

= Tn−1 ⊗[

1 11 −1

]= Tn−1 ⊗ T.

Hierin zijn 1 en −1 gehele getallen en is ⊗ het Kronecker-produkt. Noteer dat Tn dimen-sie 2n × 2n heeft. Elke rij uit Tn kan dus beschouwd worden als de waarheidstabel (metwaarden in −1, 1 ) van een Boolese functie (fig. 2.4). De rijen uit Tn zijn paarsgewijsorthogonaal:

2n−1∑k=0

tjktlk =

2n, j = l

0, in alle andere gevallen.

28

Page 33: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De matrix Tn is inverteerbaar, en men kan nagaan dat (Tn)−1 = 2−nTn.De Hadamard-matrix definieert een transformatie op 0, 12n

:

Tn : 0, 12n 7→ Z2n,

d.w.z. ook op de waarheidstabellen van functies uit Fn. Weze fb ∈ 0, 12nde waarheids-

tabel van f(x1, . . . , xn), gerepresenteerd als kolommatrix. De Hadamard-transformatievan fb wordt dan gegeven door

fH = Tnfb ,

eveneens een kolommatrix, maar met gehele elementen. De getallenrij fH is een unie-ke representatie van f(x1, . . . , xn). Elk element uit fH zegt echter iets over het globalegedrag van f(x1, . . . , xn) op 0, 1n, en niet het lokale gedrag zoals vastgelegd door demintermfuncties.Wanneer men de betekenis van de coefficienten van fH nauwkeuriger onderzoekt, danvindt men dat zij kunnen geınterpreteerd worden als de gelijkenis (correlatie) van defunctie f(x1, . . . , xn) met respectievelijk de volgende functies (de notatie wordt verderopgeformaliseerd):

1 de ‘DC-term’, het gewicht van f

1⊕ x3 de functie die 1 is wanneer x3 = 0 is1⊕ x2

1⊕ x3⊕x2 de functie die 1 is wanneer x2 = x3

1⊕ x1

1⊕ x1⊕x1

1⊕ x2⊕x1

1⊕ x1⊕x2⊕x3

Naast de Hadamard-transformatie bestaan er nog een aantal andere spectrale transfor-maties zoals de Rademacher-Walshtransformaties en de Haar-transformaties.

Spectrale representaties worden veel minder gebruikt dan mintermrepresentaties. Zijzijn vooral nuttig in de classificatie en de studie van de eigenschappen van Boolese func-ties, en in test- en diagnosetechnieken van digitale netwerken. Soms worden zij gebruiktbij de synthese van poortnetwerken. In deze cursus gaan wij er niet verder op in, en vooreen dieper inzicht verwijzen wij naar de literatuur (b.v. [Hurst85]).

Reed-Muller representaties

In Bn kunnen wij de operatie ⊕, die wij al eerder tegenkwamen, definieren als volgt:

x⊕ y = x′ · y + x · y′.

Met deze definitie van ⊕ wordt Bn een eindige, commutatieve groep met 0 als eenheids-element. Het interessante hieraan is dat, onder ⊕ inversen2 bestaan. Dit wil zeggen:∀x∃x′ : x⊕ x′ = 0. In feite is ieder element zijn eigen invers: ∀x : x⊕ x = 0. De operator⊕ krijgt dus gelijkaardige rekenregels als de optelling van gehele getallen; men kan o.m.in een vergelijking termen van lid laten veranderen.

Omgekeerd kunnen wij de operator + uitdrukken in termen van ⊕ en · als volgt:

x + y = x · y ⊕ x⊕ y

2Noteer dat invers wat anders betekent dan het complement uit de Boole-algebra!

29

Page 34: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

fH =

1 1 1 1 1 1 1 11 −1 1 −1 1 −1 1 −11 1 −1 −1 1 1 −1 −11 −1 −1 1 1 −1 −1 11 1 1 1 −1 −1 −1 −11 −1 1 −1 −1 1 −1 11 1 −1 −1 −1 −1 1 11 −1 −1 1 −1 1 1 −1

10100011

=

42−2

00220

11⊕ x3

1⊕ x2

1⊕ x3⊕x2

1⊕ x1

1⊕ x1⊕x1

1⊕ x2⊕x1

1⊕ x1⊕x2⊕x3

Figuur 2.4: De Hadamard-matrix en de hadamard-transformatie van de functie f(x1, x2, x3) =∑(0, 2, 6, 7) uit ons vorig voorbeeld. De operator ⊕wordt gedefinieerd in de tekst

(bewijs dit). Dit betekent dat het stel operatoren ⊕ en · een volledig stel is, d.w.z. , alleelementen die kunnen gevormd worden door + en · kunnen ook gevormd worden door⊕ en ·.

Op deze eigenschappen zijn de Reed-Muller-representaties van Boolese functies ge-steund. Laat met i = ν(y1, y2, . . . , yn) zoals hierboven gedefinieerd, de verzamelingSi = k : yk = 1 overeenkomen. Si is dus niets anders dan de verzameling van po-sities waar de binaire representatie van i een 1 heeft. De basisfuncties gi worden dangegeven door3

gi(x1, . . . , xn) =∏j∈Si

xj , i = 0, 1, . . . , 2n − 1.

Men gebruikt als basisfuncties dus de 2n produkten van mogelijke deelverzamelingen Si

van de variabelen x1, x2, . . . , xn. De representatiestelling luidt dan als volgt: elke functief(x1, . . . , xn) kan op een unieke wijze geschreven worden als:

=2n−1⊕i=0

Ci gi(x1, . . . , xn) =2n−1⊕i=0

Ci

∏j∈Si

xj ,

waarbij de som⊕

nu staat voor de n-aire uitbreiding van ⊕, en waarbij Ci ∈ 0, 1.De basisfuncties zijn dus niet de mintermfuncties. Noteer overigens dat telkens wan-

neer de basisfunctie gi(x1, . . . , xn) de waarde 1 aanneemt, dit ook het geval is voor allefuncties gk waarvoor Sk ⊆ Si. Meer formeel: Si ⊇ Sk ⇒ gi(x1, . . . , xn) ≤ gk(x1, . . . , xn).

Deze representatie is uniek en compleet, d.w.z. , voor elke functie f kan een uniekstel coefficienten Ci ∈ B, i = 0, 1, . . . , 2n − 1 gevonden worden zodanig dat de functieinderdaad wordt voorgesteld door de bovenstaande uitdrukking.

De coefficienten kunnen berekend worden door de inversie van deze uitdrukking alsvolgt. Noteer dat voor elk punt (x1, . . . , xn) ∈ 0, 1n geldt:

f(x1, . . . , xn) =⊕

i:Si⊆Sν(x1,...,xn)

Ci,

dit wegens de ordening van de basisfuncties. Voor dit type van vergelijkingen op detralie van de deelverzamelingen van 0, 1n bestaat er een techniek die Mobius-inversie

3Een product over de ledige verzameling levert de functie 1 op.

30

Page 35: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

heet. Volgens deze techniek wordt de oplossing van het bovenstaande stelsel gegevendoor

Ci =⊕

j:Sj⊆Si

(−1)|Si|−|Sj |f(ν−1(j)),

waarin ν−1(j) de binaire representatie is van j, en | Si | de cardinaliteit is van Si. Hetbewijs hiervan kan geleverd worden door eenvoudige substitutie van de oplossing inde opgave. De vermenigvuldiging met −1 betekent het gebruik van het additief inversonder de operatie ⊕. Gezien onder ⊕ in Bn elk element zijn eigen invers is, kunnen wijde inversie gewoon weglaten:

Ci =⊕

j:Sj⊆Si

f(ν−1(j)).

Voorbeeld 2.3 Voorbeeld van Reed-muller-representatie. Neem de functie uit bovenstaandvoorbeeld. Wij verkrijgen het stel vergelijkingen

f(000) = 1 = C0

f(001) = 0 = C0 ⊕ C1

f(010) = 1 = C0 ⊕ C2

f(011) = 0 = C0 ⊕ C1 ⊕ C2 ⊕ C3

f(100) = 0 = C0 ⊕ C4

f(101) = 0 = C0 ⊕ C1 ⊕ C4 ⊕ C5

f(110) = 1 = C0 ⊕ C2 ⊕ C4 ⊕ C6

f(111) = 1 = C0 ⊕ C1 ⊕ C2 ⊕ C3 ⊕ C4 ⊕ C5 ⊕ C6 ⊕ C7.

Door Mobius-inversie wordt hieruit verkregen:

C0 = f(000) = 1C1 = f(001)⊕ f(000) = 1C2 = f(010)⊕ f(000) = 0C3 = f(011)⊕ f(010)⊕ f(001)⊕ f(000) = 0C4 = f(100)⊕ f(000) = 1C5 = f(101)⊕ f(100)⊕ f(001)⊕ f(000) = 1C6 = f(110)⊕ f(100)⊕ f(010)⊕ f(000) = 1C7 = f(111)⊕ f(110)⊕ f(101)⊕ f(100)⊕ f(011)⊕ f(010)⊕ f(001)⊕ f(000) = 0,

off(x1, x2, x3) = 1⊕ x3 ⊕ x1 ⊕ x1x3 ⊕ x1x2.

Reed-Mullerrepresentaties worden gebruikt bij de synthese van combinatorische netwer-ken, en bij het testen ervan. In deze cursus zullen wij echter niet dieper ingaan op hungebruik (zie b.v. [Green86, Lewin92]).

2.3.3 Tekstuele representaties: Boolese vormen

Waarheidstabellen en karnaughkaarten zijn letterlijke representaties van functies, waar-van de afmeting (exponentieel in n) niet afhangt van de functie zelf. Dit is ook zo voorde spectrale representaties: steeds heeft men 2n coefficienten nodig.

31

Page 36: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Minterm- en Reed-Mullerrepresentaties zijn ietwat beter in dit opzicht, omdat nietalle functies een even lange voorstelling hebben. Toch kan het nog steeds zijn dat ‘een-voudige’ functies een zeer lange representatie hebben, en omgekeerd. Uiteraard hangtdeze uitspraak wezenlijk af van wat wij bedoelen met eenvoudig. Iedereen is het erechter over eens dat de functie 1 zeer eenvoudig is. Deze functie heeft nochtans eenexponentieel lange mintermrepresentatie!

Boolese vormen zijn tekstuele representaties: dit zijn sequenties van alfanumerieke te-kens die aan welbepaalde grammaticale regels voldoen. Deze tekstuele representatieszijn over het algemeen veel compacter dan de grafische representaties en zijn behandel-baar door een algoritme (computer). Wij zullen zien dat Boolese vormen o.m. minterm-representaties tekstueel kunnen voorstellen en dus minstens de eigenschappen bezittenvan deze representaties; in feite zijn zij echter veel krachtiger.

Boolese vormen zijn de concrete gedaante waarin Boolese functies voorgesteld wor-den in ontwerptalen zoals VHDL, Verilog of Abel, zij het steeds in de syntaxis opgelegddoor de taal. Wij zullen hier een eenvoudige, abstracte syntaxis definieren, die de es-sentiele aspecten van Boolese vormen vat, en bruikbaar is bij de concrete representaties.

Definitie 2.9 De verzameling Vn van Boolese vormen (BV) over X1, . . . , Xn bestaat uit alleeindige sequenties van letters die voldoen aan

1. de ledige uitdrukking Λ is een BV;4

2. de symbolen 0 en 1 zijn BVn;

3. Xi en X ′i, i ∈ 1, . . . , n zijn BVn;

4. indien A een BV is, dan zijn ook (A) en (A)′ BVn;

5. indien A en B BVn zijn, dan zijn ook A + B en A ·B BVn.

Hoewel Vn slechts sequenties van eindige lengte bevat is Vn niet eindig; Vn is echter weleen aftelbare verzameling (waarom?).

Voorbeeld 2.4 Voorbeelden van Boolese vormen. De sequenties

X1

((X1 + X3) ·X3)′

(((0)))

zijn Boolese vormen.

Noot. Noteer dat wij dikwijls de · niet schrijven; wanneer wij echter de vorm als in-put opgeven voor computermanipulatie, moeten wij dit symbool wel degelijk neerschrij-ven, tenzij wij de aanwezigheid ervan ondubbelzinnig kunnen veronderstellen. In onzeMaple-suite hebben wij gekozen voor het laatste. De prijs die wij ervoor betalen is dat

4Dit is een pathologische uitzondering, die wij enkel om formele redenen opnemen.

32

Page 37: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

elke variabelenaam nu precies een letterteken lang moet zijn, omdat de streng ’AB’ ei-genlijk geınterpreteerd wordt als ’A·B’.

Boolese vormen kunnen allerhande mathematische objecten voorstellen, al naar gelangvan de interpretatie die men geeft aan de symbolen. In de huidige context wensen wijdat Boolese vormen elementen uit Fn voorstellen. In Fn zijn er slechts 22n

verschillendeelementen. Een zinvolle interpretatie vereist dus dat wij op Vn een equivalentierelatie de-finieren waaronder Boolese vormen equivalent zijn indien zij dezelfde functie represen-teren. Deze equivalentierelatie wordt gedefinieerd door de volgende interpretatieregels.

Definitie 2.10 Een assignatie is een functie

α : X1, . . . , Xn → 0, 1.

De assignatie ‘kent een waarde 0 of 1 toe’ aan elke variabele Xi, i = 1, . . . , n. Er bestaan2n assignaties voor de variabelen Xi, i = 1, . . . , n.

Definitie 2.11 Een valuatie onder de assignatie α is een functie | · |α : Vn → 0, 1 die voldoetaan de volgende regels:

1. |Λ|α = 0;

2. |0|α = 0; |1|α = 1;

3. |Xi|α = α(Xi), i = 1, . . . , n;

4. |(A)′|α = (|A|α)′;

5. |A + B|α = |A|α + |B|α;

6. |A ·B|α = |A|α · |B|α.

Een valuatie interpreteert de symbolen +, · en ′ uit Vn als de corresponderende operatorenuit Fn, en interpreteert de variabelen Xi als hun Boolese waarde onder de assignatie α.Elke Boolese vorm v stelt een Boolese functie |v| of fv voor, gedefinieerd door:

∀α : fv(α(X1), . . . , α(Xn)) = |v|α

Definitie 2.12 Twee Boolese vormen v1 en v2 zijn equivalent, v1 ∼ v2, indien

∀α : |v1|α = |v2|α,

d. w. z. indien fv1 = fv2 .

Daar er 22nverschillende functies zijn in Fn, induceert de relatie ∼ 22n

equivalentie-klassen in Vn. Er bestaat een bijectie tussen deze klassen en Fn.

Opmerking. Bovenstaande definities maken het mogelijk dat een algoritme (een com-puter) in een eindige tijd kan uitmaken of twee willekeurige Boolese vormen equivalentzijn. Dit impliceert ook dat er een algoritme bestaat dat voor elke vorm v een equivalentevorm vmin van minimale lengte kan bepalen. Dit is mogelijk dank zij de eenvoud van Fn.In meer ingewikkelde stelsels, zoals b.v. de eerste-orde predikaatlogica of de klasse vande recursieve functies, is het algoritmisch bepalen van de equivalentie of het vinden vaneen minimale vorm niet algemeen mogelijk (een gevolg van de stellingen van Godel enChurch).

33

Page 38: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Dualiteit van Boolese vormen

Als gevolg van definitie 2.1 is het niet te verwonderen dat op Vn een dualiteitsrelatie kanworden gedefinieerd die de basisdualiteit van de Boole-algebra reflecteert. De dualiteits-relatie D wordt als volgt gedefinieerd (wij beperken ons tot niet-ledige vormen).

Definitie 2.13 De dualiteitsafbeelding D is een functie D : Vn → Vn die voldoet aan:

1. D(0) = 1 en D(1) = 0

2. D(Xi) = Xi, voor i = 1, . . . , n

3. D(A + B) = D(A) ·D(B)

4. D(A ·B) = D(A) + D(B)

5. D(A′) = (D(A))′

Voorbeeld 2.5 Dualiteit in Boolese vormen.

v = ((X1 + X2) ·X3)′

D(v) = (D((X1 + X2) ·X3))′ (5)= (D(X1 + X2) + D(X3))′ (4)= ((D(X1) ·D(X2)) + D(X3))′ (3)= ((X1 ·X2) + X3)′ (2)

Wij moeten nu echter nog nagaan of deze definitie inderdaad correspondeert met deeigen dualiteit in de Boole-algebra Fn. Dat dit zo is volgt uit de volgende lemma’s enstelling.

Lemma 2.1 De complementering van de variabelen in een mintermfunctie mj leidt tot de min-termfunctie m2n−1−j :

mj(x′1, . . . , x′n) = m2n−1−j(x1, . . . , xn).

Bewijs. Het bewijs volgt onmiddellijk uit de definitie van mj en ν(x1, . . . , xn).

Het volgende lemma is eveneens zeer nuttig.

Lemma 2.2 Indien f(x1, . . . , xn) =∑

j∈Sfmj(x1, . . . , xn), dan is

f ′(x1, . . . , xn) =∑

j∈SfC

mj(x1, . . . , xn)

waarbij

SfC = 0, 1, . . . , 2n − 1 − Sf .

34

Page 39: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bewijs. Het bewijs is triviaal.

Met deze lemma’s kunnen wij nu de volgende stelling bewijzen.

Stelling 2.4 De functie fD(v), voorgesteld door de duale vorm van v, is het functie-complementvan fv toegepast op gecomplementeerde variabelen,

fD(v)(x1, . . . , xn) = fv′(x′1, . . . , x

′n).

Bewijs. Het bewijs steunt op een inductie op de lengte van v.

1. v bestaat uit een symbool: 0, 1, of Xi.

|D(0)| = |1| =∑

j∈0,1,...,2n−1mj(x1, . . . , xn)

=∑

j∈0,1,...,2n−1m2n−1−j(x1, . . . , xn)

=∑

j∈0,1,...,2n−1mj(x′1, . . . , x

′n)

=∑

j∈∅C

mj(x′1, . . . , x′n)

= f0′(x′1, . . . , x

′n);

|D(1)| = |0| =∑j∈∅

mj(x′1, . . . , x′n) = f1

′(x′1, . . . , x′n);

|D(Xi)| = |Xi| =∑

j∈SXi

mj(x1, . . . , xn).

Hierin is

SXi = ν(x1, . . . , xi−1, 1, xi+1, . . . , xn) : xj ∈ 0, 1 en j 6= i

enSC

Xi= SXi

′ = ν(x1, . . . , xi−1, 0, xi+1, . . . , xn) : xj ∈ 0, 1 en j 6= i.

Noteer dat j ∈ SXi ⇒ 2n − 1− j ∈ SXi′ .

Wij vinden dus

|D(Xi)| =∑

j∈SXi

mj(x1, . . . , xn)

=∑

j∈SXi

m2n−1−j(x′1, . . . , x′n)

=∑

j∈SCXi

mj(x′1, . . . , x′n)

= f ′Xi(x′1, . . . , x

′n).

35

Page 40: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

2. (Inductiestap.) Veronderstel dat v bestaat uit n > 1 symbolen, en dat de stellinggeldt voor alle Boolese vormen met lengte kleiner dan n. Uit definitie 2.9 volgt dandat v werd gevormd door de toepassing van de regels 2.9(4) of 2.9(5). Wij passendeze regels toe (abstractie makend van haakjes, die louter zorgen voor groepering).

|D(v′)| = |(D(v))′| = (|D(v)|)′ = (f ′v(x′1, . . . , x

′n))′

= fv(x′1, . . . , x′n) = f ′v′(x

′1, . . . , x

′n); (volgens 2.11(3))

|D(v1 + v2)| = |D(v1)D(v2)| = |D(v1)| · |D(v2)|= (f ′v1

· f ′v2)(x′1, . . . , x

′n)

= (fv1 + fv2)′(x′1, . . . , x

′n)

= f ′v1+v2(x′1, . . . , x

′n);

|D(v1v2)| = f ′v1v2(x′1, . . . , x

′n). (duaal van hierboven)

Punten 1 en 2 bewijzen de stelling.

Deze dualiteitseigenschap is uiteraard op theoretische gronden interessant. Zij heeft ech-ter ook belangrijke praktische consequenties: het kan soms gebeuren dat fD(v) te duuris om te realiseren in een bepaalde technologie, en dat fv veel goedkoper is. De relatiefD(v)(x1, . . . , xn) = f ′v(x

′1, . . . , x

′n) laat dan toe fD(v) te realiseren als een functiesamen-

stelling van fv en n + 1 complementeringen, wat veel eenvoudiger kan uitvallen dan derechtstreekse realisatie van fD(v). Dit alternatief zal later nog aan bod komen. Bovendiengeeft deze stelling de essentie weer van het CMOS-concept, waarin de n-netwerken enp-netwerken die samen een poort vormen, elkaars duaal zijn.

Standaardrepresentaties van Boolese vormen

Elk van de 22nequivalentieklassen onder ∼ in Vn is een aftelbaar oneindige verzameling

van sequenties. Wij hebben dus veel meer Boolese vormen dan functies, de equivalen-tie tussen twee vormen v1 en v2 kan vastgesteld worden door de valuatie van v1 en v2

te vergelijken over alle 2n assignaties. Dit is een exponentieel, en voor grote n en langev1, v2 dus een zeer langdurig proces. Een rechtstreekse vaststelling van equivalentie inVn (dus zonder naar de voorgestelde functie te kijken) kan hiervoor nuttig zijn. Recht-streekse vaststelling van de equivalentie kan indien elke equivalentieklasse een uniekerepresentatie heeft, en indien er een procedure bestaat om elke vorm tot zijn equivalenterepresentant te herleiden. Het volstaat dan de representatie van de vormen te vergelij-ken. In de volgende stellingen zullen wij bewijzen dat er inderdaad zulke representantenbestaan, en zullen wij een algoritme aangeven waarmee elke Boolese vorm tot zijn equi-valente representant kan herleid worden. De procedure die wij zullen opgeven heeftechter nog steeds een exponentieel gedrag in het slechtste geval.

Definitie 2.14 Een lettervorm (literal) is een veranderlijke Xi of zijn complement X ′i.

36

Page 41: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie 2.15 Een minterm is een Boolese vorm bestaande uit het product van n lettervormenmet verschillende index, geordend naar toenemende index.

Er bestaan precies 2n verschillende mintermen (waarom?). De mintermen van V3 zijn:

X1X2X3 X ′1X2X3 X1X

′2X3 X ′

1X′2X3

X1X2X′3 X ′

1X2X′3 X1X

′2X

′3 X ′

1X′2X

′3

Een systematische notatie voor mintermen is als volgt:

Xi11 Xi2

2 Xi33 · · ·Xin

n

waarin Xijj =

Xj , indien ij = 1X ′

j , indien ij = 0.

Uit deze definitie volgt dat mintermen voorstellingen zijn van mintermfuncties, en dathet verband tussen vorm en functie gegeven wordt door:

|Xi11 Xi2

2 · · ·Xinn | = mν(i1,i2,...,in)(x1, . . . , xn).

Lemma 2.3 (Shannon-decompositie) Weze v(X) een Boolese vorm in een veranderlijke X .Dan geldt fv(x) = |X · v(1) + X ′ · v(0)|.

Bewijs. (exhaustief nazicht van de twee mogelijke assignaties) Noteer dat v(0) en v(1)geen vrije variabelen meer bevatten, en dat |v(0)| = fv(0), en |v(1)| = fv(1) . Wij vindendan

|Xv(1) + X ′v(0)|α = |Xv(1)|α + |X ′v(0)|α= |X|α|v(1)|α + |X ′|α|v(0)|α= α(X)fv(1) + (α(X))′fv(0)

=

fv(1), α(X) = 1fv(0), α(X) = 0

wat het lemma bewijst.

Lemma 2.4 Weze v(X1, . . . , Xn) een Boolese vorm, en α een assignatie. Definieer de Boolesevormen ij ∈ Vn als

ij =

0, indien α(Xj) = 01, indien α(Xj) = 1.

Dan is v(i1, . . . , in) equivalent met de eenlettervorm 0 of 1 gegeven door

v(i1, . . . , in) ∼

0, indien |v|α = 01, indien |v|α = 1.

Bewijs. Passen wij de definitie van een valuatie (2.11) toe op de vormenv(X1, . . . , Xn) en v(i1, . . . , in). Aangezien, bij onderstelling,

|Xj |α = |ij |α

37

Page 42: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

volgt dat de constante waarde van de functie |v(i1, . . . , in)| gegeven wordt door

|v(i1, . . . , in)|α = |v(X1, . . . , Xn)|α

=

|0|α, indien |v|α = 0|1|α, anders.

Met deze lemma’s zijn we in staat de normaalvormstelling te bewijzen:

Stelling 2.5 (Normaalvoorstelling) Elke Boolese functie f(x1, . . . , xn) kan uniek gerepresen-teerd worden door een Boolese vorm in de Disjunctieve Normaalvorm, als volgt

f(x1, . . . , xn) =∣∣∣∣ ∑

i1, . . . , in ∈ 0, 1v(i1, . . . , in) ∼ 1

Xi11 Xi2

2 Xi33 · · ·X

inn

∣∣∣∣

Hierin is v(X1, . . . , Xn) om het even welke Boolese vorm die f voorstelt, en v(i1, . . . , in) deBoolese vorm v waarin alle variabelen Xj vervangen werden door hun assignatie ij .

Bewijs. (Inductie op n)

1. Het geval n = 1 volgt uit lemma’s 2.3 en 2.4.

2. (Inductiestap) Veronderstel de stelling correct voor n − 1 variabelen. Kies een wil-lekeurige maar vaste waarde voor X2, . . . , Xn. De functie fv(x1, . . . , xn) hangt danook enkel af van X1. Volgens lemma 2.3 kunnen wij dus schrijven

fv(x1, . . . , xn) = |X1v(1;X2, . . . , Xn) + X ′1v(0;X2, . . . , Xn)|.

Anderzijds stelt de vorm v(1, X2, . . . , Xn) ook een functie voor van n−1 variabelen.Volgens de hypothese is dus

v(1;X2, . . . , Xn) ∼∑

i2, . . . , in ∈ 0, 1v(1; i2, . . . , in) ∼ 1

Xi22 · · ·X

inn

met een gelijkaardige uitdrukking voor v(0;X2, . . . , Xn).

Substitutie leidt tot

f(x1, . . . , xn) =∣∣∣∣X1

∑i2, . . . , in ∈ 0, 1v(1; i2, . . . , in) ∼ 1

Xi22 · · ·X

inn

+ X ′1

∑i2, . . . , in ∈ 0, 1v(0; i2, . . . , in) ∼ 1

Xi22 · · ·X

inn

∣∣∣∣

=∣∣∣∣ ∑

i1, . . . , in ∈ 0, 1v(i1, . . . , in) ∼ 1

Xi11 · · ·X

inn

∣∣∣∣.

38

Page 43: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Stelling 2.5 bewijst dat elke Boolese vorm ondubbelzinnig kan geschreven worden als eensom van mintermen, en dus niets anders is dan een tekstuele versie van het gebruik vanmintermfuncties voor een canonische representatie. Noteer dat de mintermrepresentatievan de functie 0 bestaat uit de ledige uitdrukking Λ (een som met 0 termen).

Boolese vormen zijn dus equivalent indien ze tot dezelfde DSV kunnen herleid wor-den. De volgende procedure herleidt elke Boolese vorm tot zijn DSV. Deze proceduresteunt op het feit dat wij in Vn formeel de rekenregels van Boole-algebra’s uit definitie 2.1mogen gebruiken. Dat dit mag volgt uit de definities van valuatie en equivalentie (bewijsdit zelf).

Algoritme 2.1 (Herleiding tot DSV van Boolese vormen)

1. Propageer alle inversies rond haakjes naar binnen, tot wanneer alleen nog inversies voorko-men op lettervormen. Gebruik daartoe de regels van De Morgan: (A + B)′ = (A′ · B′) en(A ·B)′ = (A′ + B′);

2. Vervang alle vormen (A+B) ·C door A ·C+B ·C, tot wanneer de hele uitdrukking bestaatuit een som van producten van lettervormen zonder haakjes (gebruik distributiviteit).

3. Orden, in elk product, de factoren naar stijgende index (commutativiteit van het product ·).

4. Laat weg:

(a) alle dubbels van producten (X + X = X);

(b) alle producten die 0 bevatten; (0 ·X = 0 en 0 + X = X );

(c) alle producten die Xi en X ′i bevatten voor een gegeven i (X ·X ′ = 0);

(d) alle factoren 1 in de producten (1 ·X = X);

(e) alle dubbels van factoren in de producten (X ·X = X).

5. Voor alle resterende producten: indien het product geen minterm voorstelt, dan ontbreekter minstens een lettervorm, zeg Xj . Vul het product aan met de factor (Xj + X ′

j), voor alleontbrekende j (X + X ′ = 1 en 1 · Y = Y );

6. Wanneer in een product nog haakjes voorkomen, ga dan naar stap 2;

7. Sorteer de producten lexicografisch, volgens de regel Xj < X ′j (commutativiteit van +).

Voorbeeld 2.6 Reductie naar DSV.

v(X1, X2, X3) ∼ (X1 + X2)(X1 + X ′3)

(na stap 2) ∼ X1X1 + X2X1 + X1X′3 + X2X

′3

(na stap 3) ∼ X1X1 + X1X2 + X1X′3 + X2X

′3

(na stap 4) ∼ X1 + X1X2 + X1X′3 + X2X

′3

(na stap 5) ∼ X1(X2 + X ′2)(X3 + X ′

3) + X1X2(X3 + X ′3)

+X1(X2 + X ′2)X

′3 + (X1 + X ′

1)X2X′3

(na stap 6) ∼ X1X2X3 + X1X′2X3 + X1X

′2X

′3 + X1X2X

′3 + X ′

1X2X′3

(na stap 7) ∼ X1X2X3 + X1X2X′3 + X1X

′2X3 + X1X

′2X

′3 + X ′

1X2X′3

De DSV-procedure maakt het dus mogelijk elke vorm naar een standaard gedaante teherleiden (deze is niet noodzakelijk minimaal in lengte !). Equivalentie in Vn kan dus recht-streeks en louter door symbolische manipulatie van de Boolese vorm worden getest.

39

Page 44: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

2.3.4 Ternaire representaties van Boolese SVP-vormen

Bij de afleiding van de DSV-vorm is gebleken dat deze vorm niet noodzakelijk de kortstehaakjesvrije representatie is van de functie. Immers, niet elk product dat voorkomt ineen som was een minterm, en moest daarom uitgebreid worden met de ontbrekendelettervormen.

Meestal zal men functies om die reden niet opgeven via hun DSV-vorm; men zaleerder een zo kort mogelijke haakjesvrije som-van-productenvorm (SVP-vorm) opgeven.Deze vorm hoeft zelf uiteraard ook niet de minimale lengte te hebben. Om computer-manipulatie van dergelijke vormen te vereenvoudigen, heeft men een meer bruikbarerepresentatie van dergelijke vormen uitgewerkt.

Men ordent de variabelen eenmalig, op een vaste manier. Men denoteert elke term(product) als een sequentie van n symbolen over het ternair alfabet 0, 1,−. De k-depositie in deze sequentie komt overeen met de k-de variabele. Wanneer deze variabeleniet voorkomt in de term, schrijft men op die plaats een −; anders een 0 of 1, al naargelang de variabele gecomplementeerd voorkomt of niet.

De voorstelling van de Boolese vorm met m termen neemt dan de gedaante aan vanm dergelijke sequenties, of nog als een m× n matrix over 0, 1,−.

Deze voorstelling kan ook gebruikt worden om gelijktijdig meerdere Boolese vormenover dezelfde variabelen voor te stellen. Men ordent de k vormen ook eenmalig en vast,en bij elke sequentie die een product voorstelt geeft men aan in welke van de k vormendit product als term optreedt. Dit doet men door aan elke sequentie, die men dan input-sequentie noemt, een tweede sequentie, de outputsequentie te hechten. De outputsequentieheeft lengte k, het aantal vormen, en is over 0, 1. De outputsequentie heeft een 1 opplaats j a.s.a. de term die voorgesteld wordt door de inputsequentie optreedt in de j-devorm.

Een voorbeeld maakt dit duidelijk. Beschouw het stel vormen

y1 = x1x2 + x′2x4 (2.1)

y2 = x3x4 (2.2)

y3 = x1x2 + x3x4 (2.3)

Hierin is dus n = 4 en k = 3. Wij representeren dit als1 1 − − 1 0 1− 0 − 1 1 0 0− − 1 1 0 1 1

Uiteraard bevat de voorstelling van een enkele vorm geen outputgedeelte.

Het voordeel van dergelijke vormen is dat zij computermanipulatie vereenvoudigen.Dit komt doordat de termrepresentaties alle dezelfde lengte hebben (representatie doormiddel van ARRAYs), en doordat sommige operaties, bv. het maken van het product vantwee termen, of de berekening van de Hamming-afstand (zie verder) eenvoudig uit tevoeren is. Figuur D.1 geeft een impressie van de concrete implementatie van een aantalrepresentatieconcepten in een Maple-suite die hoort bij deze syllabus.

2.3.5 Boolese decisiediagrammen of BDD’s

Computermanipulatie van Boolese functies vereist representaties die, zoals al eerder ge-zegd, voor een zo groot mogelijke klasse van functies, zo compact mogelijk zijn, en zeker

40

Page 45: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

veel kleiner dan de exponentiele afhankelijkheid van het aantal variabelen. ‘Eenvoudi-ge’ functies dienen ‘eenvoudige’ representaties te hebben. Alles hangt natuurlijk af vanwat men bedoelt met ‘eenvoudige functies’, en diverse definities zijn mogelijk. Maarmeestal is men het erover eens dat de constante functies 0 en 1 zeer eenvoudig zijn, endat de functies die effectief afhangen van minder dan de n variabelen (b.v. de functief(x1, . . . , xn) = x1) ook eenvoudiger zijn dan de andere. Dit komt in zekere mate al totuiting in de Boolese vormen die deze functies representeren.

Naast compactheid vereist een goede representatie ook de mogelijkheid om diverseoperaties op en tussen functies efficient uit te voeren. Voorbeelden van dergelijke opera-ties zijn:

• het evalueren van de functie op een gegeven input;

• het genereren van alle plaatsen waar de functie de waarde 1 aanneemt (de lijst vanmintermen);

• het uitmaken of een functie ooit de waarde 1 kan aannemen (satisfiability);

• het uitmaken of de functie altijd de waarde 1 aanneemt (tautologietest);

• het complementeren van een functie;

• het nagaan of twee functies identiek zijn;

• het combineren van twee functies met de operatoren + en · uit Fn;

• het samenstellen van functies door functiecompositie.

Niet al deze operaties kunnen altijd efficient uitgevoerd worden, omdat sommige er-van, zoals het probleem van satisfiability, z.g. NP-complete problemen zijn. Men kan erechter wel voor zorgen dat een goede keuze van de interne representatie aanleiding geefttot een gemiddeld goed gedrag.

De ternaire representatie van Boolese vormen die wij hierboven gezien hebben, heeftal op veel punten deze eigenschappen, en wordt om die reden intensief gebruikt, i.h.b.in synthesesoftware. Dit is software die gebruikt wordt bij het zoeken naar zo optimaalmogelijke circuitrealisaties van een opgegeven stel functies.

De BDD-representatie die wij nu zullen voorstellen is een representatie met gelijkaar-dige kenmerken, die i.h.b. het redeneren over functies (gelijkheid, tautologie, ...) elegantondersteunt. Dit is van belang bij de analyse van bestaande netwerken, bv. bij de verifi-catie en het testen van circuits.

Representatie

Een BDD is een gerichte acyclische graaf met knopenverzameling V en takkenverzame-ling E. Het BDD heeft twee soorten knopen v:

• eindknopen, die geen opvolgers hebben, en die de waarde 0 of 1 dragen: W (v) ∈0, 1; er is minstens een eindknoop in elk BDD;

• 0 of meer inwendige knopen, die geen waarde dragen, maar precies twee opvolgershebben: L(v) resp. R(v). Elke inwendige knoop draagt bovendien een index I(v) ∈1, . . . , n die overeen komt met precies een argument van de functie.

41

Page 46: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 2.5: BDD-voorstelling van de functie f(x1, x2, x3) = x1x′2 + x3(x′1 + x2).

• als een interne knoop v1 een andere interne knoop v2 als opvolger heeft, dan is deindex van de opvolger steeds groter dan deze van de beschouwde knoop:

v2 ∈ L(v1), R(v1) ⇒ I(v2) > I(v1);

• als de verzameling van interne knopen niet-ledig is, dan is er precies een interneknoop met minimale index. Deze knoop heeft geen voorgangers, en is dus de unie-ke oorsprong van de graaf.

Een dergelijke graaf kan geınterpreteerd worden als de representatie van een Boolesefunctie f(x1, . . . , xn) van n variabelen. Deze representatie is gesteund op de shannon-decompositie van de functie, zoals wij ze voor het eerst tegengekomen zijn in lemma2.3. De representatie is recursief gebaseerd op de shannondecompositie: weze knoop v

de oorsprong van een BDD, waarin i = I(v) de kleinste index is van de variabelen dieeffectief optreden in de functie. Wij kunnen schrijven

f(x1, . . . , xn) = x′if |xi=0 + xif |xi=1

De graaf met als oorsprong v representeert de functie f a.s.a. de graaf met als oorsprongL(v) de residufunctie f |xi=0 representeert en de graaf met als oorsprong R(v) de functief |xi=1. De eindknopen representeren de functies 0 resp. 1.

Beschouw, om de gedachten te vestigen, de functie

f(x1, x2, x3) = x1x′2 + x3(x′1 + x2).

Opeenvolgende decomposities leiden tot

f(x1, x2, x3) = x′1x3 + x1(x′2 + x2x3)

= x′1(x′2x3 + x2x3) + x1(x′2 + x2x3)

= x′1(x′2(x

′30 + x31) + x2(x′30 + x31))

+x1(x′2(x′31 + x31) + x2(x′30 + x31))

De graaf in figuur 2.5(a) toont hoe deze algebraısche vorm als BDD kan gerepresenteerdworden. Uiteraard is het zo dat de naıeve manier waarop wij dit gedaan hebben leidt tot

42

Page 47: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

een representatie van exponentiele afmetingen, die dus helemaal niet de bovenstaandeverwachtingen kan inlossen. Wij kunnen de bestaande graaf nu vereenvoudigen, zonderdat daardoor de representatie van de functie in het gedrang komt. De bedoeling is datwij de graafrepresentatie canonisch maken, d.w.z. dat een gegeven Boolese functie maardoor een graaf kan voorgesteld worden. Elke knoop in een minimaal BDD moet dus eenverschillende functie voorstellen.

Wij gebruiken de volgende vereenvoudigingsregels, die wij toepassen vanuit de eind-knopen naar de oorsprong toe:

1. eindknopen die dezelfde waarde dragen kunnen samengenomen worden (zij stel-len immers dezelfde functie 0 of 1 voor). Aldus krijgen wij een graaf met een oftwee eindknopen;

2. wanneer een interne knoop identieke linkse en rechtse opvolgers heeft, dan treedtde variabele die overeenstemt met de knoop, niet op in de functie voorgesteld doorde knoop. Wij kunnen deze knoop weglaten als oorsprong, en hem vervangen doorzijn linkse opvolger. Dit steunt op de identiteit x′jg + xjg = g,∀g;

3. wanneer twee interne knopen identieke linkse en rechtse opvolgers hebben, danstellen de grafen met deze knopen als oorsprong dezelfde functie voor. Wij kun-nen een van deze knopen weglaten, en alle verwijzingen ernaar vervangen doorverwijzigingen naar de andere.

Wanneer wij deze procedure toepassen op de graaf, dan verkrijgen wij als resultaateen graaf met een minimaal aantal knopen, die bovendien canonisch is. Zoals als gesuggereerdwil dit zeggen dat elke functie waarvan het mimimaal BDD isomorf is met het minimaal BDD vanf , gelijk is aan f . Geen enkele ander BDD kan f voorstellen met zo weinig knopen (uiter-aard met de gekozen volgorde van de variabelen). Het bewijs van de canoniciteit wordtgegeven door Bryant in [Bryant86]. Figuur 2.5(b) toont de canonische representatie vanhet minimaal BDD. Figuur D.6 toont een gecombineerd algoritme in Maple, dat uitgaan-de van een Boolese vorm, een canonisch BDD opstelt. Het algoritme zelf vermijdt degeneratie van redundante knopen. Noteer dat dit niet noodzakelijk de meest efficientebenadering is!

Ter volledigheid herinneren wij eraan dat de complexiteit van een minimaal BDD zeersterk, en soms kritisch kan afhangen van de volgorde waarin men de variabelen sorteert.Veel nuttige functies kunnen echter met zeer eenvoudige diagrammen voorgesteld wor-den, zelfs de pariteitsfunctie, die wij later zullen ervaren als een eerder complexe functie.Er zijn ook functies die met geen enkele ordening van de variabelen een compacte voorstel-ling hebben. Een belangrijk en relevant voorbeeld hiervan zijn de functies die een binairevermenigvuldiger beschrijven.

Algoritmen

Nu zullen wij schetsmatig enkele algoritmen beschrijven die operaties uitvoeren op eenof meerdere minimale BDD’s, en als resultaat getallen en/of minimale BDD’s afleveren.

Reductie Het eerste algoritme is natuurlijk reductie. Wij hebben hierboven al ruwweggezegd hoe men een niet-minimaal BDD kan reduceren. Wij zullen dat nu wat concreterdoen.

43

Page 48: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Algoritme 2.2 (BDD-reductie)

1. doorloop de BDD breedte-eerst, en plaats de knopen op niveau i in een lijst Li (de eindkno-pen zitten op niveau n + 1);

2. doorloop elk van de lijsten Li, te beginnen bij de laatste, en doe het volgende

(a) voor de lijst met eindknopen:

i. sorteer de lijst op basis van de knoopwaarde;ii. wanneer twee identieke knopen voorkomen, elimineer er dan een van, en doe de

vaderknopen van de weggelaten knoop wijzen naar de andere knoop;iii. geef de overblijvende knopen een uniek nummer (bv. gehele getallen vanaf 0) en

geef dat nummer door aan de vaderknopen;

(b) voor een lijst met interne knopen:

i. sorteer de lijst lexicografisch op basis van het koppel unieke nummers van deopvolgers;

ii. wanneer twee identieke knopen voorkomen, elimineer er dan een van, en doe devaderknopen van de weggelaten knoop wijzen naar de andere knoop;

iii. indien een knoop twee identieke opvolgers (nummers) heeft, verwijder hem dan,en doe zijn vaderknopen wijzen naar zijn linker opvolger;

iv. geef de overblijvende knopen een uniek nummer en geef dat door aan de vader-knopen;

De rekenduur van dit algoritme wordt bepaald door de tijd nodig om de lijsten tesorteren (O(|G| log |G|), met |G| het aantal knopen in de originele graaf G). Wanneer menstart van een volledige binaire boom is dit uiteraard exponentieel in n, maar dit hoeftniet het geval te zijn voor bijna minimale bomen, die optreden als tussenresultaat vanbewerkingen op bomen.

Tautologie, evaluatie, complementering, gewichtsbepaling Uitgaande van een mini-maal BDD kan men snel zien of een boom een tautologie is (de boom bestaat uit eeneindknoop met waarde 1), of niet gelijk is aan de nulfunctie (de boom bevat een eind-knoop met waarde 1). De waarde van de functie evalueren kan in O(n) tijd, door degraaf te doorlopen van oorsprong tot eindknoop, volgens een pad uitgestippeld door deargumentwaarden. De functie complementeren kan door eenvoudig de eindknopen vanwaarde te verwisselen; wanneer men geen rechtstreekse toegang heeft tot deze knopen,kan men ze opzoeken in een tijd O(|G|).

Het gewicht van de functie kan bepaald worden in tijd O(|G|); de verzameling min-termen in O(n|S|), waarin |S| het gewicht is van de functie.

Operatoren en compositie Wij zullen nog twee belangrijke generieke algoritmen be-studeren: een dat twee functies combineert m.b.v. de operatoren in Fn, en een dat func-tiecompositie uitvoert.

Wij veronderstellen dat beide functies gerepresenteerd zijn volgens dezelfde orde-ning van de variabelen, en dat de operator voorgesteld wordt door ?. Het algoritme is

44

Page 49: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

gebaseerd op een recursie, die volgt uit de shannondecompositie op x1:

f1(x1, . . . , xn) ? f2(x1, . . . , xn)

=

x′1(f1|x1=0 ? f2|x1=0) + x1(f1|x1=1 ? f2|x1=1), als x1 optreedt in f1 en f2

x′1(f1 ? f2|x1=0) + x1(f1 ? f2|x1=1), als x1 enkel optreedt in f2

f1 ? f2, als x1 optreedt in geen van beide

(Bewijs dat dit correct is voor ? = + of ·.)De berekening van het linkerlid kan effectief gebeuren als f1 en f2 beide constante

functies zijn; wanneer een van beide constant is, kan men in sommige gevallen ook nogde berekening doen (b.v. wanneer ? = · en f1 = 0, is het resultaat steeds 0, ongeacht f2).Dit stopt de recursie.

Uit deze regels kunnen wij rechtstreeks een algoritme distilleren. Start het algoritmemet de oorsprongen v1 en v2 van de BDD’s als argumenten.

Algoritme 2.3 (Combinatie d.m.v. de operator ?: bereken g = f1 ? f2)

COMB(v1, v2, ?):

1. indien een van beide argumenten v1 of v2 een eindknoop is, en de combinatie is evalueerbaar,genereer dan een eindknoop u met de goede waarde en termineer;

2. indien de combinatie niet evalueerbaar is, doe dan het volgende:

(a) creeer een interne knoop u met index min(I(v1), I(v2));

(b) als I(v1) = I(v2), stel

R(u) ← COMB(R(v1), R(v2), ?)

L(u) ← COMB(L(v1), L(v2), ?).

Hierin is COMB(R(v1), R(v2), ?) het resultaat van een recursieve oproep naar dehuidige routine.

(c) als I(v1) < I(v2), stel

R(u) ← COMB(R(v1), v2, ?)

L(u) ← COMB(L(v1), v2, ?).

(d) als I(v1) > I(v2), doe dan als hierboven, maar met de rollen van v1 en v2 omgewisseld.

3. retourneer de graaf met oorsprong u.

Bij wijze van optimalisatie houdt men tijdens de uitvoering bij welke subgrafen algecombineerd werden door het algoritme: men hoeft elke combinatie immers hoogstenseen keer te doen. Wanneer men eenzelfde combinatie tweemaal dreigt te doen, dan zalmen de reeds bestaande waarde retourneren. Dit verhindert de onnodige groei van deresultaatgraaf.

Nadat deze procedure beeindigd is, moet men de resulterende graaf reduceren totzijn minimale representatie, door gebruik te maken van het reductiealgoritme. FiguurD.7 toont hoe de combinatie-operator in Maple werd geımplementeerd.

45

Page 50: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 2.6: De combinatie van twee grafen door middel van een operator

Voorbeeld 2.7 Weze f1(x1, x2, x3) als in figuur 2.5, weze f2 = x2 +x′3, en weze ? = ·. Wanneerwij het algoritme COMB toepassen op de twee grafen in figuur 2.6(a) en (b), dan krijgen wij (metgebruik van de vermelde optimalisatie) het BDD in figuur 2.6(c). Merk op dat de resulterendegraaf voor f1 · f2 niet minimaal is, en dat dus een extra minimalisatiestap nodig is. Het algoritmeheeft een complexiteit van O(|G1| · |G2|).

De functiecompositie kan men, door middel van een kleine uitbreiding van de tech-niek, op gelijkaardige manier uitvoeren. De opgave is als volgt: gegeven twee functiesf1(x1, . . . , xn) en f2(x1, . . . , xn), bereken de functie

g(x1, . . . , xn) = f1(x1, . . . , xj−1, f2(x1, . . . , xn), xj+1, . . . , xn).

Het is niet moeilijk aan te tonen dat men g(x1, . . . , xn) kan schrijven als

g(x1, . . . , xn) = if f2(x1, . . . , xn) = 0 then f1(x1, . . . , xn)|xj=0 else f1(x1, . . . , xn)|xj=1

.= ITE(f2, f1|xj=0, f1|xj=1)

Deze vorm laat zich recursief uitdrukken door middel van Shannondecompositie, netzoals voor een gewone binaire operatie:

g(x1, . . . , xn) = x′1ITE(f2, f1|xj=0, f1|xj=1)|x1=0

46

Page 51: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

+x1ITE(f2, f1|xj=0, f1|xj=1)|x1=1,

waarin

ITE(f2, f1|xj=0, f1|xj=1)|x1=0 = ITE(f2|x1=0, f1|x1=0,xj=0, f1|x1=0,xj=1)

Evenals bij de binaire operaties stopt de recursie van zodra alle argumenten van ITEconstante functies worden, en soms ook vroeger. Bryant bewijst dat een algoritme datop deze basis geımplementeerd wordt, een complexiteit O(|G1|2|G2|) heeft, waarin G1 degraaf is die f1 voorstelt.

Andere varianten

Hachtel ([Hachtel96]) beschrijft een nog compactere vorm voor canonische BDD’s doorhet gebruik van complementeringstekens op sommige takken in de BDD. Door het ge-bruik van complementeringen kan men de knoop naar waar verwezen wordt als gecom-plementeerd aanzien. Geen enkel diagram heeft dan nog twee eindknopen nodig, en ookveel tussenliggende knopen kunnen worden geelimineerd. Om de canoniciteit te waar-borgen moeten er echter wel restricties opgelegd worden op de plaatsen waar comple-menteringstekens kunnen voorkomen, bijvoorbeeld nooit op de uitgaande tak die over-eenstemt met 1. Wij laten de studie van deze verfijningen over aan de geınteresseerdelezer.

2.4 Opgaven

1. Bewijs de eigenschappen 1 t.e.m. 10 in paragraaf 2.1.1.

2. Bewijs dat de operator ⊕ associatief is.

3. Beschouw de verzameling van alle delers van het getal 210. Rust deze verzamelinguit met interne bewerkingen zodanig dat de resulterende structuur een Boolesealgebra is. Kan je dit ook doen met de delers van 90? Waarom, of waarom niet?

4. Beschouw de verzameling 0, 1, 2, 3 en rust ze uit met de operaties +, · en ′ alsvolgt:

+ 0 1 2 3 ’0 0 1 2 3 11 1 1 1 1 02 2 1 2 1 33 3 1 1 1 2

· 0 1 2 30 0 0 0 01 0 1 2 32 0 2 2 03 0 3 0 3

Is deze structuur een Boole-algebra? Bewijs, of geef een tegenvoorbeeld. Zo hetantwoord neen was, kan je dan een wijziging voorstellen om er toch een Boole-algebra van te maken?

5. Een symmetrische Boolese functie is invariant onder de permutaties van haar n va-riabelen. Bijvoorbeeld, de functie x1 + x2 is symmetrisch; de functie x′1 + x2 is hetniet. Bepaal hoeveel symmetrische functies er bestaan van n variabelen. Bewijs dat,met de geschikte keuze voor de inwendige samenstellingswetten, deze functies eenBoole-algebra vormen.

47

Page 52: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

6. Een Boolese functie is monotoon niet-dalend (monotoon, om kort te zijn) wanneer, als(x1, x2, . . . , xn) ≤ (y1, y2, . . . , yn), dan f(x1, x2, . . . , xn) ≤ f(y1, y2, . . . , yn), waarinde ordening ≤ de gewone betekenis heeft.

(a) Bewijs dat de monotone functies een distributieve tralie vormen. Wat is hetminimumelement, en wat is het maximumelement?

(b) Teken deze tralie voor n = 2. Is de tralie een Boole-algebra? Verklaar.

(c) Toon aan dat een functie monotoon is a.s.a. ze kan geschreven worden als eensom van producten van niet-gecomplementeerde variabelen. Onderstel hierbijdat de ledige som gelijk is aan 0, en het ledige product gelijk aan 1.

(d) Een Boolese functie is lineair separeerbaar als er reele getallen ai, b bestaan zo-danig dat

f(x1, x2, . . . , xn) =

1 als

∑i aixi ≥ b,

0 anders.

Toon aan dat, als ai ≥ 0, f monotoon niet-dalend is.

7. Toon aan dat de functie f(x, y, z, u, w) = yzu′w + xuw + x′yzuw + xzu + xz′uw′

monotoon niet-dalend is (baseer u op oefening 6).

8. Een functie f(x1, x2, . . . , xn) is monotoon niet-dalend in een variabele xj als geldt,∀(x1, x2, . . . , xj−1, xj+1, . . . , xn) ∈ 0, 1n−1,

f(x1, x2, . . . , xj−1, 0, xj+1, . . . , xn) ≤ f(x1, x2, . . . , xj−1, 1, xj+1, . . . , xn).

Wanneer de ongelijkheid in de andere richting gaat, is de functie monotoon niet-stijgend. Een functie die ofwel monotoon niet-dalend of niet-stijgend is in een va-riabele, noemt men unaat in die variabele. Een functie die unaat is in al haar varia-belen noemt men kortweg unaat. Een SVP-representatie heet unaat, wanneer geenenkele variabele zowel gecomplementeerd als niet-gecomplementeerd voorkomt.Toon de volgende eigenschappen aan van unate functies en unate SVP-vormen.

(a) Elke unate SVP-vorm stelt een unate functie voor. Is het omgekeerde ookwaar? Bewijs of geef een tegenvoorbeeld.

(b) Het complement van een unate functie is unaat.

(c) Een functie is unaat (niet-dalend) in x a.s.a. haar shannonexpansie kan ge-schreven worden als

f = xfx=1 + fx=0

(d) De shannonexpansie van het complement van een niet-dalende functie in x

kan geschreven worden als

f ′ = x′f ′x=0 + f ′x=1

(e) De complete som van een unate functie is unaat. (Hint: veronderstel het te-gendeel, en maak gebruik van het resultaat van de vorig punten.)

(f) Elke priemimplicant van een unate functie is essentieel. (Hint: veronderstelvoor de eenvoud en zonder verlies aan algemeenheid dat de functie niet-dalend is in alle variabelen, en onderzoek de punten met minimaal gewicht(aantal eentjes) van het domein waarvoor de functie voor het eerst 1 wordt.)

48

Page 53: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

9. Een Boolese functie f(x),x ∈ 0, 1n, is zelfduaal wanneer fD(x) = f(x).

(a) hoeveel zelfduale functies van n variabelen zijn er?

(b) vormen deze functies een Boolealgebra onder de gebruikelijke operatoren +,·, en complementering?

(c) bewijs dat, onder de operatoren

f ∗ g = x′fg + x(f + g)

f × g = x′(f + g) + xfg

de zelfduale functies een Boolealgebra vormen. Hier is x eender welke vari-abele van f en g. Wat is het minimale en het maximale element? Wat is degeassocieerde partiele ordening?

10. (Pseudo-Boolese functies) In de syllabus hebben wij enkel gesproken over de func-ties van 0, 1n naar 0, 1, die wij allemaal als Boolese functies gedefinieerd heb-ben. Elke dergelijke functie kan voorgesteld worden door een Boolese vorm overde variabelen en de constanten 0, 1.

Men kan echter ook de functies van Bn naar B beschouwen, met bijvoorbeeld B =0, a, b, 1. Wij definieren + en · op B zodanig dat < B, +, ·, 0, 1 > een Boole-algebrais. Antwoord op de volgende vragen:

(a) Hoeveel dergelijke functies zijn er?

(b) Is het zo dat alle functies van Bn naar B kunnen voorgesteld worden door eenBoolese vorm (B.V.), nu over over de variabelen en de constanten 0, a, b, 1?

(c) Indien niet, hoeveel functies van Bn naar B kunnen dan wel voorgesteld wor-den door een B.V.?

(d) Zelfs indien je het algemeen antwoord niet vindt, werk concreet de boven-staande vragen uit voor de functies van een variabele, van B naar B.

11. (Boolese intervallen) In een partieel geordende ruimte < V,≤> kan men het begripinterval [a, b], met a, b ∈ V , definieren als volgt:

[a, b] = x : a ≤ x ≤ b en x ∈ V .

Beschouw de Boole-algebra Fn van Boolese functies van n binaire variabelen, enbeschouw het interval I = [fl, fh] met fl < fh.

(a) toon aan dat I kan uitgebouwd worden tot een Boole-algebra. Wat zijn dan deoperatoren +, ·, wat zijn de extreme elementen? Geef een algemene vorm vooreen willekeurig element van I .

(b) pas dit toe op F3, door de atomen te bepalen (en enkel de atomen) van I =[xyz, x + yz]

12. Weze fk(x1, x2, . . . , xn) de functie die 1 is wanneer precies k van de variabelen dewaarde 1 aannemen. Stel het canonisch BDD op voor f3(x1, x2, . . . , x5). Probeer ditte doen zonder een exponentiele explosie van de tussenvormen die je gebruikt.

49

Page 54: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 3

Combinatorische schakelingen enhun bouwstenen

In dit hoofdstuk zullen wij eerst het verband tussen schakelnetwerken enBoolese uitdrukkingen nader onderzoeken. Daartoe moeten wij eerst de mo-gelijke vormen van schakelnetwerken nagaan, en de mate waarin zij doorBoolese vormen voorgesteld worden. Wij bestuderen ook een systematischemethode voor de analyse van taknetwerken.

Nadien zullen wij een kort overzicht geven van de concrete bouwstenen waar-over de ontwerper kan beschikken voor de realisatie van digitale systemen.

Ons overzicht kan niets anders zijn dan een overzicht. Een echte, operationeelbruikbare kennis van bestaande componenten kan slechts verkregen wordendoor een grondige studie van de catalogi van de diverse producenten, en ui-teraard, het effectief gebruik van de componenten. Hieraan besteden wij aan-dacht in de oefeningen bij dit vak.

3.1 De relatie tussen Boolese vormen en schakelnetwerken

Schakelnetwerken zijn interconnecties van primitieve schakelelementen: poorten of scha-kelaars. Zowel de primitieve schakelelementen als hun interconnecties kunnen gemodel-leerd worden in het formalisme van de Boole-algebra en de Boolese functies. Wij zulleneerst de basiselementen behandelen.

3.1.1 Modellen van schakelaars

Een schakelaar realiseert een elementaire Boolese functie van een argument xj . Het ar-gument fungeert als controle-ingang, dat de toestand van de schakelaar beınvloedt. Wijzeggen dat de functiewaarde 1 is wanneer de schakelaar gesloten is, dus wanneer eengeleidend pad bestaat tussen zijn twee klemmen. Noteer dat de controle-ingang meest-al niet van dezelfde aard is als de functiewaarde: bij de controle-ingang gaat het omeen spanning (MOSFET) of stroom (bipolaire transistor, relais), of zelfs een mechanischestand, zoals bij een lichtschakelaar; bij de functiewaarde gaat het om de aanwezigheidvan een geleidend pad. Dit betekent meestal dat het definitiegebied en het beeldgebiedgescheiden verzamelingen zijn, en dat het gebruik van de functiewaarde gerealiseerd door

50

Page 55: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5

Figuur 3.1: De compositieregels voor serie/parallelnetwerken

een schakelaar als argument voor de functie gerealiseerd door een andere schakelaar, nietzonder meer mogelijk is.

De meest eenvoudige elementen zijn de open keten (de functie 0) en de doorverbin-ding (de functie 1). Een eigenlijke schakelaar, gecontroleerd door de controlevariabele xj ,realiseert de elementaire functies f(x1, . . . , xn) = xj of f(x1, . . . , xn) = x′j . Elke schakel-functie van meer variabelen die meer is dan louter een inversie of identiteitsfunctie vaneen variabele moet dus gebouwd worden uit een interconnectie van schakelaars.

Serie-parallelnetwerken

Wij beschouwen nu de samenstelling van enkelvoudige schakelaars tot grotere netwer-ken. Wanneer wij vertrekken van twee taknetwerken N1 en N2, elk met twee klemmen,dan kunnen wij hiermee een nieuw netwerk bouwen met twee klemmen door een se-rieschakeling of een parallelschakeling te maken van deze netwerken. Als f1(x1, . . . , xn)resp. f2(x1, . . . , xn) de functies voorstellen van de netwerken, dan zal het resulterend net-werk de functie f(·) = (f1 · f2)(·) resp. f(·) = (f1 + f2)(·) realiseren. De interconnectievan schakelaars kan dus gemodelleerd worden door de operaties · en + uit Fn.

Wanneer wij ons beperken tot netwerken die op kunnen gebouwd worden door destapsgewijze samenstelling van steeds twee netwerken met elk twee klemmen, dan ver-krijgen wij de klasse van de serie/parallelnetwerken. Om de relatie met de Boolese vormente onderzoeken, kunnen wij gebruik maken van de constructieregels uit definitie 2.9,waarin wij regel 4 weglaten. Elk van de overblijvende regels kan geınterpreteerd wordenals de generatie van een primitief schakelelement, of als een serie/parallel compositiere-gel. Figuur 3.1 toont deze correspondentie.

51

Page 56: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.2: Elementaire poortfuncties ((a) de invertor (NOT), (b) de EN-functie (AND) en(c) deOF-functie (OR)

Compleetheid

Uit de correspondentie blijkt dat er Boolese vormen bestaan die geen rechtstreeks equi-valent hebben als serie/parallel taknetwerk. Zo kan de vorm (x1 + x2)′ niet gegenereerdworden zonder gebruik te maken van regel 4; wij vinden dus geen serie-parallel netwerkdat rechtstreeks met deze vorm overeenkomt. De reden hiervoor is natuurlijk dat wij metinterconnecties van schakelaars enkel de operatoren + en · kunnen realiseren, en niet decomplementering van een reeds gerealiseerde functie. Omgekeerd komt echter wel elkserie/parallelnetwerk overeen met een Boolese vorm.

Betekent dit dat de klasse van de serie/parallelnetwerken niet in staat is om alle func-ties te representeren? Het antwoord is gelukkig neen. Dit kan eenvoudig ingezien wordendoor op te merken dat de DSV-vorm wel kan gegenereerd worden zonder gebruik te ma-ken van regel 4, en met DSV-vormen kan men alle functies voorstellen.

3.1.2 Modellen van poorten en poortnetwerken

Bij een poort behoren de argumenten en de functiewaarden tot hetzelfde domein (bijvoor-beeld spanningen). De argumenten vormen de inputs van het circuit, de functiewaardevindt men op de output. De meest eenvoudige ‘poorten’ zijn de vaste verbindingen metde vaste waarden 0 en 1 (bijvoorbeeld 0 V en 3,3 V in CMOS-schakelingen). Zij hebbengeen inputs, en representeren de constante functies 0 en 1. Iets minder eenvoudig zijnde doorverbinding of buffer en de invertor, die functie zijn van een argument xj , en defuncties f(x1, . . . , xn) = xj of f(x1, . . . , xn) = x′j realiseren. Om zinvolle interconnec-ties mogelijk te maken moet men nog complexere bouwstenen hebben, namelijk poortenmet twee inputs. De EN-poort realiseert de operatie · (die uiteraard als functie gezienkan worden: f(xi, xj) = xi · xj). De OF-poort realiseert de +-operatie (eveneens metgeassocieerde functie).

De symbolen voor de poortfuncties die wij hier zullen gebruiken werden voorgesteldin fig. 3.2, en representeren de operaties in B1.

Poortnetwerken

Alle functies die complexer zijn dan de basispoort moeten worden gevormd door een in-terconnectie van poorten (outputs aan inputs). De interconnectie van een of twee poort-netwerken via een der basispoorten uit figuur 3.2 kan niet rechtstreeks gemodelleerdworden door een operator in Fn, zoals de interconnectie van schakelaars. Een meer ge-schikt model lijkt functiesamenstelling: men substitueert de functies, gerealiseerd door desamen te stellen netwerken, in de argumenten van de functie gerealiseerd door de basis-poort.

Opnieuw kan men de stapsgewijze constructie van een poortnetwerk door gebruikvan de basispoorten beschrijven door de samenstellingsregels voor Boolese vormen (fi-

52

Page 57: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.3: Compositieregels met poorten

guur 3.3). Echter, dit keer kan men alle regels gebruiken, zodanig dat men kan zeggendat alle Boolese vormen een corresponderend poortnetwerk hebben, dat een weergave isvan de syntactische structuur van de vorm1. Dit is een belangrijke opmerking, omdat zijde essentie blootlegt van de meeste synthese-algoritmen: deze proberen een opgegevenBoolese vorm te herschrijven naar een equivalente vorm die kan afgebeeld worden opeen zo geschikt mogelijk netwerk.

3.1.3 Andere interconnecties

Interconnecties van schakelaars of poorten kunnen uiteraard op veel andere manierengebeuren dan deze die overeenstemmen met de productieregels van Boolese vormen. Insommige netwerken kunnen bijvoorbeeld terugkoppelingen voorkomen. In taknetwerkenkan dit gebeuren door, vanuit het signaalpad, de controle-input van een of meerdereschakelaars te beınvloeden (dit vraagt echter andere dingen dan de eenvoudige inter-connecties die wij bestudeerd hebben). In poortnetwerken kan dit eenvoudiger, door deoutput van een poort terug te voeren naar de input van een stroomopwaarts gelegenpoort. In deze gevallen slaagt men er niet steeds meer in de ingangs/uitgangsrelatie teschrijven als een Boolese vorm. Bij een analyse komt men steeds op een vergelijking uitwaar dezelfde symbolen aan beide zijden van het gelijkheidsteken voorkomen. Deze ver-gelijkingen kunnen in de Boole-algebra soms geen enkele, soms precies een, maar soms

1Hier moeten wij echter opmerken dat onze beschrijving geen rekening houdt met poorten met meer dantwee ingangen. Om netwerken met dergelijke poorten correct te beschrijven zou men de productieregel 4kunnen uitbreiden tot willekeurige aantallen vormen A1, A2, ... An

53

Page 58: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.4: Een poortnetwerk dat niet overeenkomt met een enkele Boolese vorm

Figuur 3.5: Een niet serie/parallel netwerk

ook meer dan een oplossing vertonen. Wanneer er geen oplossingen gevonden worden,heeft het netwerk een gedrag dat niet als een logisch niveau kan gerepresenteerd worden(bijvoorbeeld een oscillatie).

Wanneer er echter meer dan een oplossing is, kan het netwerk een vorm van geheu-genwerking vertonen, wat impliceert dat het geen Boolese functies meer realiseert. Hetgedrag van het netwerk wordt immers mede bepaald wordt door de voorgeschiedenis, ende output of de toestand van het signaalpad, is niet louter een functie van de huidigecontrolevariabelen. Zulke netwerken noemt men sequentiele netwerken; wij zullen ze be-handelen verderop in deze cursus, in hoofdstuk 6.

Voorlopig beperken wij ons tot netwerken waarin geen terugkoppelingen voorko-men. In deze netwerken is de output, of de toestand van het signaalpad, louter een(Boolese) functie van de inputs. Deze netwerken noemen wij combinatorische netwerken.Wanneer het netwerk een boomvormige structuur vertoont is het eenvoudig de Boolesevorm af te leiden die het gedrag van het netwerk beschrijft (analyse): men rekent terugvan de uitgang naar de ingangen. Het is echter mogelijk netwerken zonder terugkoppel-lussen te bouwen, waarvan de structuur toch niet door een Boolese vorm gegeven wordt.Figuur 3.4 toont een dergelijk netwerk: de output van een deelnetwerk wordt aan meerdan een poort toegevoerd (het netwerk heeft geen boomstructuur; men noemt dit recon-vergente fanout). Dit netwerk kan echter wel voorgesteld worden door een stelsel Boolesevormen (zie figuur 3.4), waarbij de fanout-punten als nieuwe variabelen ingevoerd wor-den.

Bij taknetwerken doet er zich een gelijkaardige situatie voor: ook hier is het perfectmogelijk netwerken te bouwen die geen serie/parallelstructuur hebben, maar die (uiter-aard) toch een Boolese functie realiseren (immers, alle terugkoppelvrije taknetwerken re-aliseren een Boolese functie tussen twee willekeurige knooppunten). Een voorbeeld vaneen dergelijk netwerk vindt men in figuur 3.5. Men kan dergelijke netwerken verkrijgendoor meer dan twee deelnetwerken in een stap te combineren tot een nieuw netwerk.

54

Page 59: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

3.2 Boolese matrices en de analyse van taknetwerken

Boolese matrices zijn een elegant analysehulpmiddel waarmee men voor een willekeurigtaknetwerk N met twee klemmen, op symbolische wijze, een Boolese vorm voor fN kanworden afgeleid wanneer men de Boolese vormen van de takken van het netwerk kent.In feite leidt men tegelijkertijd de functies af voor alle paren knopen die het netwerk heeft.

Definitie 3.1 Een Boolese matrix A = (aij) over Vn is een vierkante matrix met elementen inVn waarvan alle diagonaalelementen aii gelijk zijn aan 1.

Gebruik makend van de rekenregels in Vn kunnen wij de volgende bijkomende definitiesgeven:

1. A = B ⇐⇒ aij = bij ∀i, j;

2. A + B = (aij + bij);

3. A ∗B = (aij · bij);

4. A ·B = (∑

k aikbkj);

5. A′ = C ⇐⇒ cii = 1 en cij = a′ij , i 6= j .

De Boolese matrices kunnen partieel geordend worden door de (partiele) ordeningvan hun componenten uit te breiden tot de hele matrix:

A ≤ B ⇐⇒ aij ≤ bij ∀i, j ∈ 1, . . . , n .

Opmerking: Noteer dat ≤ de natuurlijke partiele ordening op Fn is.

Waarvoor gebruiken wij de Boolese matrix? Beschouw een taknetwerk N met k knopen,en construeer de k× k Boolese matrix A, de connectiematrix van N , als volgt. Het elementaij , i 6= j, wordt gegeven door

aij =

0, indien knoop i en j door niets rechtstreeks verbonden zijn;de som van de lettervormen van de schakelaars die knoop i en j

verbinden, anders.

Fig. 3.6 geeft een voorbeeld van een connectiematrix. De matrix A stelt dus de rechtstreekseverbindingen voor tussen knopen van N . De machten A2 = A ·A; A3 = A2 ·A, . . ., stellende rechtstreekse en indirecte paden (via resp. hoogstens 1, 2, . . . andere knooppunten)voor tussen de knopen van N (overtuig u daar zelf van).

Definitie 3.2 De transmissiematrix A∞ van het netwerk N is een k× k Boolese matrix die detransmissiefunctie tussen twee willekeurige knooppunten van N voorstelt, d.w.z. via alle mogelij-ke paden die deze twee knopen verbinden.

De transmissiematrix A∞ is de limiet van de macht Ap, voor p → ∞. De limietwaardewordt echter effectief bereikt, zoals gegeven door volgende stelling.

Stelling 3.1 Weze A de k × k connectiematrix van een netwerk N . Dan geldt:

55

Page 60: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

A =

1 X 0 Y X ′ + Y

X 1 X ′ + Z Z ′ Z

0 X ′ + Z 1 Y ′ 0Y Z ′ Y ′ 1 X ′

X ′ + Y Z 0 X ′ 1

Figuur 3.6: Een taknetwerk en zijn connectiematrix A

1. A ≤ A2 ≤ A3 ≤ A4 ≤ · · ·

2. ∃q < k zodat A(q−1) ≤ Aq = A(q+1) = · · · , en dus

3. Aq = A∞

Bewijs.

1. Noteer Ap = (a(p)ij ). Wij vinden dan

a(p+1)ij =

k∑m=1

a(p)imamj

= a(p)ij ajj +

∑m6=j

a(p)imamj

≥ a(p)ij (definitie van ≥)

Dus Ap ≤ Ap+1.

2. Uit (1) volgt dat A(k−1) ≤ Ak. Wij bewijzen nu dat A(k−1) ≥ Ak. Wij vinden

a(k)ij =

∑m1,m2,...,mk−1

aim1am1m2 · · · amk−2mk−1amk−1j .

Het aantal indices in deze som is k + 1, maar er zijn er slechts k verschillende.Dus in elke term van de som zijn er minstens twee indices gelijk aan elkaar. Wijonderscheiden drie gevallen:

(a) stel m` = j. De term kan dan herschreven worden als

(aim1 · · · am`−1j)(ajm`+1· · · amk−1j) .

56

Page 61: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

(b) stel m` = i. De term kan dan herschreven worden als

(aim1 · · · am`−1i)(aim`+1· · · amk−1j) .

(c) stel m` = mp. Ook dan kan de term herschreven worden:

(aim1 · · · am`−1mp)(ampm`+1· · · amp−1mp)(ampmp+1 · · · amk−1j) .

Dus elke term in de som voor a(k)ij bestaat uit het product van een term uit de som

van a(s)ij , voor een gegeven s ≤ k − 1, met een andere functie. Daar nu

a(s)ij ≤ a

(s+1)ij ≤ · · ·

vinden wij∀m1,m2, . . . ,mk−1 aim1 · · · amk−1j ≤ a

(k−1)ij .

Bijgevolg is Ak ≤ Ak−1, en dus Ak = Ak−1 . Dit bewijst (2)

3. Daar wij in A∞ geen paden moeten includeren waarin een knoop tweemaal voor-komt is Ak = A∞.

Uit (2) volgt dan ook dat Aq = A∞.

Met deze techniek kan men dus de functies die door een willekeurig taknetwerk ge-realiseerd worden, gezamenlijk bepalen. Om de methode concreet op de computer uit tewerken, moet men natuurlijk een concrete notatie voor Boolese functies gebruiken. Ditzouden b.v. Boolese vormen kunnen zijn, waarbij men echter moet voorzien in software,die na elke matrixvermenigvuldiging de potentieel zeer ingewikkelde uitdrukkingen diemet elk matrixelement overeenkomen, kan vereenvoudigen. Hier zou het gebruik vanBDD’s al onmiddellijk resultaat opleveren.

3.3 Bouwstenen voor combinatorisch ontwerp

Digitale bouwstenen vindt men in grote aantallen en in grote diversiteit. Dus ook hieris er nood aan een zekere methodiek bij de beschrijving van wat bestaat. Wij zullenons overzicht structureren op basis van de invloed die de ontwerper heeft op de aardvan de bouwstenen die hij kan gebruiken. Deze invloed kan gaan van totaal geen, bijgebruik van afgewerkte, standaardcomponenten, over een beperkte aanpasbaarheid bijprogrammeerbare componenten, tot absolute vrijheid bij full-custom VLSI-ontwerp.

Deze termen hebben echter geen absolute betekenis: deze hangt namelijk af van dehoedanigheid van de ontwerper. Voor een chipontwerper die werkt bij een producentvan standaardcomponenten zijn in feite alle componenten custom of zelfs full-custom.Aan het andere eind van het spectrum zal, voor de ontwerper die alle chipontwerpenof programmeringen van programmeerbare componenten uitbesteedt, elke componenteen standaardcomponent zijn. Wij zullen het standpunt innemen van de ontwerper dieergens tussenin zit: hij gebruikt, als eindgebruiker, de bestaande standaardproducten,maar heeft tevens toegang tot ontwerphulpmiddelen om programmeerbare componen-ten te gebruiken of een eigen maatchip (ASIC, Applicatie-Specifiek IC) te ontwerpen.

57

Page 62: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

3.3.1 Standaardcomponenten

Met standaardcomponenten bedoelen wij componenten waarvan de functionaliteit volledigvast ligt en aanwezig is bij de aankoop van de component. De component is tevensvolledig verpakt.2 Appendix B bevat een aantal voorbeelden van chipverpakkingen.

Gedurende lange tijd, dit is vanaf het ontstaan van de geıntegreerde schakelingenin de zestiger jaren, tot voor de doorbraak van ASIC-ontwerp in de tachtiger jaren (vanvorige eeuw), waren standaardcomponenten het voornaamste werkmiddel van de sys-teemontwerper. Er bestaat een bijzonder groot assortiment in aangeboden functies, envele functies worden aangeboden in diverse technologieen. De meest uitgebreide collec-ties vindt men bij TTL en zijn varianten (de 74-reeks), bij CMOS en zijn varianten, en bijECL. Men vindt uitstekende overzichten van deze componenten in de diverse catalogivan de producenten.3

Om het overzicht van de standaardcomponenten wat te structureren zullen wij eenklassificatie doorvoeren op basis van een conventionele complexiteitsmaat. De complexi-teitsklassen die men traditioneel onderscheidt zijn:

• SSI (Small Scale Integration) – de klasse van componenten met minder dan 12 equi-valente poorten;

• MSI (Medium Scale Integration) – de klasse van componenten met 12 tot 100 equi-valente poorten;

• LSI (Large Scale Integration) – de klasse van componenten met een equivalentecomplexiteit van meer dan 100 poorten.

Deze terminologie is oud, wat blijkt uit de (zeer) geringe integratiedichtheden. Met devoortschrijdende integratiemogelijkheden heeft men nieuwe termen bedacht zoals VLSI(Very Large Scale Integration), ULSI (Ultra Large Scale Integration) en GSI (Giga ScaleIntegration). Het onderscheid tussen deze klassen is niet scherp.

Small Scale Integration

In de klasse van combinatorische SSI-componenten vindt men voornamelijk poorten: niet-inverterende buffers, invertoren, AND-, NAND-, OR-, NOR-, XOR-poorten, AND-OR-INVERT-poorten, e.d.m. Men vindt ook elementaire bouwblokken voor aritmetische cir-cuits (half-adders, full-adders).

Er bestaat een varieteit aan fan-in, het aantal inputs tot de poort. Deze poorten wordenverpakt in behuizingen met weinig pinnen (14, 16, 20), zodanig dat het aantal poorten perIC zeer beperkt is (van 1 tot 8). Heel wat functies worden ook in meer dan een uitvoe-ring gemaakt, zoals poorten met open collector, poorten met een extra zware, bufferendeoutputtrap of met een outputtrap die hogere spanningen kan weerstaan, voor de aanstu-ring van bussen en indicatoren. Voor het verwerken van inputs die zwaar onderhevigzijn aan stoorspanningen worden poorten met ‘Schmitt Trigger’-inputs aangeboden. De-ze poorten hebben ingangen met hysteresis, dit wil zeggen zij hebben logische drempelsdie afhankelijk zijn van de zin waarin de ingangsspanning verloopt. De drempel voor

2Hier vallen in principe ook de niet-verpakte standaardchips onder (naked Chips).3Uiteraard ook op het WWW. Neem eens een kijkje op de sites van Texas Instruments http://www.ti.com,

Motorola http://www.motorola.com, Fairchild http://www.fairchild.com, National Semiconductorhttp://www.national.com, en vele anderen.

58

Page 63: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

een positieve stoorspanning op een laag niveau ligt dus hoger dan de drempel voor eennegatieve storing op een hoog niveau. Bij TTL is dit verschil – de hysteresis – ongeveer0,8 V.

SSI-bouwblokken zijn de fundamentele en universele bouwblokken voor de realisatievan combinatorische (en zelfs sequentiele) circuits. Men kan namelijk eenvoudig bewij-zen dat elke combinatorische schakeling kan gerealiseerd worden enkel met behulp van2-input NAND- of NOR-poorten. Om dit in te zien vertrekt men van de disjunctieve nor-maalvorm, de canonische som-van-productenrepresentatie van een willekeurige combi-natorische functie. Met interpreteert deze vorm als netwerk. Dit netwerk bestaat danuit invertoren, n-input EN-poorten en een k-input OF-poort, waarbij n en k willekeurigegetallen voorstellen. Wij transformeren dit netwerk eerst naar een vorm waarin alleeninvertoren en 2-inputpoorten gebruikt worden, door alle poorten met meer dan 2 inputste transformeren in boomvormige netwerkjes met 2-inputpoorten, geıllustreerd door deuitdrukking a + b + c + d + e = (a + b) + ((c + d) + e). Nadien gebruikt men o.a. de regelsvan De Morgan, om invertoren, 2-input EN-poorten en 2-input OF-poorten te transfor-meren in netwerkjes die louter bestaan uit bv. 2-input NAND-poorten: a′ = (a · a)′,a + b = (a′ · b′)′ = ((a · a)′ · (b · b)′)′, a · b = ((a · b)′ · (a · b)′)′. Men verkrijgt een (uiteraardveel groter) netwerk dat alleen bestaat uit 2-input NAND-poorten.

Het is duidelijk dat een circuitrealisatie op deze manier, met discrete componenten,economisch totaal onverantwoord is, aangezien het aantal chips hiervoor nodig veel tegroot is. Dit betekent echter niet dat de techniek op zich zinloos is. Inderdaad, wanneermen op een enkele chip een groot aantal 2- of 3-input NAND-poorten kan samenbrengenen interconnecteren, kan men op deze manier toch complexe functies realiseren zonderdat dit moet leiden tot een te groot aantal chips. Dit ligt aan de basis van de z.g. ‘semi-customgate arrays’, die wij verder in dit hoofdstuk zullen tegenkomen. Het gebruik van defysische SSI-chips bij een ontwerp, daarentegen, is totaal voorbijgestreefd.

Vrijwel de enige functie waar men discrete SSI-chips nog gebruikt is bij de realisa-tie van bussen of andere vormen van interconnectie. Het gaat hier meestal om conver-siecircuits die de interne spannings- en stroomniveau’s in het circuit omzetten naar deelektrische grootheden die een correcte signaaloverdracht op de interconnectiedradenmogelijk maken. Veelgebruikte systemen zijn de bussen met afschakelbare poorten (tri-state), open-collector- of open-drainbussen, en differentiele interconnecties zoals CML enLVDS.

De term bus wordt in meerdere betekenissen gebruikt. Soms bedoelt men gewooneen bundeling van signaaldraden onder een gemeenschappelijke naam, soms heeft menhet over een signaal dat naar vele bestemmingen gevoerd wordt, en soms heeft men hetover een signaaldraad die door meerdere poorten aangestuurd kan worden. Soms gaathet over een combinatie van deze elementen.

Wij analyseren hier de problematiek van het aansturen van een signaaldraad vanuitmeerdere poorten. Dit is bijvoorbeeld het geval bij de uitbreidingssleuven op het moe-derbord van een PC (de PCI-bus). Op elk ogenblik mag ten hoogste een signaalbronhaar gegevens op de draden aanbrengen, en dit kan zo maar niet door meerdere poortenmet hun uitgangen te verbinden: bij gewone poorten zou dit leiden tot kortsluiting, totongeldige signaalniveau’s op de draad, en misschien tot beschadiging van de betrokkenpoorten.

59

Page 64: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In2

Enable In1

Uit

Vdd

Figuur 3.7: Een CMOS NAND-poort met afschakelbare uitgang. De uitgang wordt hoogimpe-dant wanneer enable=L

5 V

390 W

T1 T2 T3

Buslijn

R

Figuur 3.8: De ingredienten van een open-collectorbus

Afschakelbare uitgangen. Een eerste manier om dit probleem op te lossen is de poor-ten te voorzien van een controle-ingang waarmee men de uitgang van de poort in eentoestand van hoge impedantie kan brengen (afschakelen). Op elk ogenblik mag danmaar een van de poorten verbonden met de buslijn in lage impedantie staan, en haaruitgangswaarde opdringen aan de bus. De aansturende poortuitgang kan dan een sym-metrische werking hebben (pull-up en pull-down). Figuur 3.7 toont de interne structuurvan een CMOS NAND-poort met afschakelbare uitgang.

Open-drainbussen. Een tweede manier vereist geen actieve controle van het impe-dantieniveau. Men bouwt poorten met een asymmetrische uitgang, die alleen het scha-kelelement hebben (FET of bipolaire transistor). De drain resp. collector wordt dan alsuitgang gebruikt (figuur 3.8). Deze technologie wordt gespecificeerd in IEEE Standard1284, die de parallelle poort van een PC beschrijft.

Men kan zonder problemen meerdere dergelijke uitgangen aan elkaar verbinden, opvoorwaarde dat de bus spontaan de hoge signaalwaarde aanneemt wanneer geen enkeletransistor geleidt. Dit kan door een weerstand aan te brengen tussen de buslijn en het ho-

60

Page 65: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Stroombron

Driver

3.5 mA

-

-

+

+

+

-

Ontvanger

350 mV

10

0Wtransmissielijn Z0=100W

Figuur 3.9: Het principe van LVDS: een constante stroom van ± 3,5 mA wordt door een trans-missielijn van 100 Ω gestuurd De stroom wekt aan het uiteinde een differentiaalspanning op van±350 mV over een weerstand die de transmissielijn afsluit

ge spanningsniveau (passieve pull-up ). In snelle systemen worden buslijnen uitgevoerdals transmissielijnen, en wordt deze pull-upfunctie geıntegreerd met het terminatienet-werk. Wegens de lage karakteristieke impedantie van de transmissielijnen (typisch tus-sen 50 en 100 Ω) zal men deze bussen niet bedrijven met een spanningszwaai van 5 volt,maar een veel lagere spanningszwaai. De reden hiervoor is de grote statische dissipatieV 2/R = 25/50 = 0,5 W die zou resulteren wanneer de buslijn laag staat. In appendix Cwordt dieper ingegaan op het gedrag van open-collectorbussen met of zonder terminatie.

Differentiele interconnectie. Bij langere interconnecties (kabels) met lage spannings-zwaai moet men hoge eisen stellen aan de karakteristieken van de transmissielijnen, diezowel asymmetrisch (coaxiaalkabel) als symmetrisch kunnen zijn. Heel vaak wordengetwijnde paartjes (Eng. twisted pair) gebruikt, die een karakteristieke impedantie heb-ben van 100 a 120 Ω. Dit zijn symmetrische transmissielijnen, die het best differentieelaangestuurd worden (figuur 3.9).

Men definieert een homopolaire spanning VCM (Eng. common mode voltage) en eendifferentiaalcomponent Vdiff . Een logische 1 wordt dan voorgesteld door op een draadde spanning VCM + Vdiff/2 aan te brengen, op de andere de spanning VCM − Vdiff/2;omgekeerd voor een logische 0. De karakteristieke impedantie vindt men tussen de tweedraden.

De aansturende poort moet dus twee complementaire signalen afleveren, liefst meteen constante gemiddelde waarde VCM . Aan de ontvangerkant moet een poort een dif-ferentiele ingang hebben, die het differentieel signaal Vdiff weer omzet tot een gewooneendraadssignaal, maar die homopolaire componenten (o.m. extern geınduceerde stoor-spanningen) onderdrukt. Een belangrijk voorbeeld van een dergelijke standaard is LVDS(Low Voltage Differential Signalling). Tabel 3.1 toont de belangrijkste eigenschappen vanLVDS.

61

Page 66: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 3.1: Hoofdeigenschappen van LVDS (volgens norm ANSI/TIA/EIA-644)Parameter Beschrijving Min. Max. EenheidVdiff Differentiaalspanning 247 454 mVVCM Homopolaire spanning 1.125 1.375 V∆Vdiff Maximale verandering van Vdiff 50 mV∆VCM Maximale verandering van VCM 50 mVISC Kortsluitstroom 24 mAtr, tf Stijg/daaltijden op de output ( > 200Mb/s) 0.26 1.5 ns

Stijg/daaltijden op de output (< 200 Mb/s) 30% van tbit

IIN Ingangsstroom 20 µAVIN Spanningsbereik aan ingang 0 2.4 VVTH Drempelspanning 100 mV

Medium Scale Integration

De ruimte van de mogelijke combinatorische functies die men kan realiseren groeit bij-zonder snel met het aantal inputs, en dus met het aantal componenten dat men maggebruiken. Men weet uit hoofdstuk 2 dat het aantal binaire boolese functies van n binai-re variabelen gelijk is aan 22n

. Voor n = 2 is dit 16. Van de 16 bestaande functies wordener een 14-tal als SSI-component aangeboden. Voor n = 4 krijgt men al 64K mogelijkefuncties. Zelfs indien men hieruit de equivalente functies verwijdert (men elimineert allefuncties die in elkaar kunnen getransformeerd worden door permutatie of inversie vande inputs), houdt men nog een zeer groot aantal over. Het is duidelijk dat men voorde realisatie van een zinvol MSI-assortiment heel gerichte keuzen moet maken van deaangeboden functies.

MSI-componenten hebben dan ook doelgerichte, specifieke functies, die veel minderuniverseel inzetbaar zijn dan de elementaire SSI-schakelingen. Nochtans kan men som-mige MSI-componenten ook gebruiken als universele bouwstenen voor de realisatie vancombinatorische netwerken. Multiplexers zijn hier een bijzonder voorbeeld van, en wijkomen terug op dit punt in het hoofdstuk over het ontwerp van meerniveauschakelin-gen (paragraaf 4.2.5).

Evenals met SSI-componenten is het gebruik op grote schaal van MSI-componenten inmoderne schakelingen meestal niet meer verantwoord wegens de te grote chipaantallendie nodig zijn om een systeem van enige complexiteit te realiseren. Dit betekent echterniet dat een grondige kennis van de functionaliteit van deze componenten waardeloosis. Het is namelijk zo, dat de MSI-functies ook voorkomen in ontwerpomgevingen vanprogrammeerbare componenten of ASIC’s, maar dan als bibliotheekcomponenten. Menkan op die manier goed ingeburgerde ontwerptechnieken en bestaande ontwerpen ge-bruiken bij de realisatie van complexe chips, zonder dat dit het aantal chips in de hoogtedrijft.

Combinatorische MSI-componenten zijn de componenten die men typisch terugvindtop het RT-niveau. Functies die frequent voorkomen zijn multiplexers, demultiplexersen decoders, code-convertors (bv. prioriteitsencoders, convertoren voor de aansturingvan cijferdisplays, pariteitsencoders), comparatoren, eenvoudige aritmetische circuits zo-als optellers, ALU-slices, ‘carry lookahead’-circuits, combinatorische vermenigvuldigers,enz. Dit zijn functies die zeer vaak terugkomen in diverse digitale circuits, en daaraanhun reden van bestaan te danken hebben. Andere veel voorkomende functies hebben temaken met bus-interconnectie (8-, 16- en 32-bit bus transceivers en bus drivers).

62

Page 67: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Large en Very Large Scale Integration

In deze klasse vinden wij haast geen louter combinatorische circuits, de meeste circuitsbevatten een zekere hoeveelheid geheugen. Wij zetten deze bespreking verder in hoofd-stuk 6.

3.3.2 Programmeerbare componenten

Programmeerbare componenten zijn componenten die volledig verpakt zijn, maar waar-van de functionaliteit zonder verdere ingrepen van de gebruiker niet volstaat voor eenzinvolle toepassing. De gebruiker kan (moet), alvorens de component te gebruiken, vast-leggen welk functioneel gedrag de component tijdens gebruik zal vertonen. De vrijheidwaarover hij daartoe beschikt, alsook de wijze waarop dit moet gebeuren, kan varierenvan component tot component.

Programmeerbare componenten vervullen een bijzonder belangrijke rol als bouw-steen in moderne digitale systemen, en dit als gevolg van de zeer interessante combinatievan hun eigenschappen.

• De programmeerbaarheid van een component biedt een zekere vorm van univer-sele inzetbaarheid, die duidelijk ontbreekt bij de meeste standaard LSI- en VLSI-componenten (buiten RAM’s en processors, uiteraard, zie verder). Heel dikwijlskomt het voor dat, door de keuze van de functionaliteit van standaard (V)LSI-componenten, het grootste gedeelte van een digitaal systeem kan gerealiseerd wor-den met een klein aantal complexe VLSI-componenten, maar dat voor de realisatievan de restfuncties geen componenten met hoge integratiegraad beschikbaar zijn.Men is dan verplicht deze restfuncties te realiseren met MSI of SSI, de zogenaamde‘glue logic’ of ‘random logic’. Dit leidt onherroepelijk weer tot hoge componen-taantallen.

Dank zij de programmeerbaarheid kan men op grote oplage identieke componentenmet hoge integratiegraad realiseren, die in staat zijn de hele gewenste functionaliteitte realiseren, ook deze van de ‘glue logic’. Men krijgt alle voordelen van massapro-ductie, hoge integratiegraad en lage chipaantallen.

• In tegenstelling tot de ASIC-technieken die wij verder bespreken, kan de ontwikke-ling van een digitaal systeem tegen een redelijke kostprijs volledig ter plaatse gebeu-ren, en in zeer korte tijd. Men moet geen contacten onderhouden met ontwerpshui-zen en ‘foundries’, men houdt eventuele fabrieksgeheimen in huis, en men hoeftgeen maanden te wachten op de eerste prototypes van de chips. Hiertegenoverstaat dan weer dat de componentkost van programmeerbare componenten relatiefhoog is, en dat de complexiteit van een programmeerbare component lager is dande economisch zinvolle complexiteit van een ASIC. Het laat zich aanvoelen dat ereen marktsegment bestaat waar de programmeerbare component de beste keus is.

Voorbeelden van programmeerbare componenten zijn onder andere PAL’s, EPROM’s,EPLD’s, FPGA’s en randchips voor microprocessors. Geen van deze componenten ver-vult een nuttige functie alvorens men hem op een of andere manier geconfigureerd ofgeprogrammeerd heeft. Een traditionele PAL kan men maar eens programmeren, enmen heeft er een speciaal apparaat voor nodig, een ‘PAL programmer’; voor een EPROMheeft men ook een programmer nodig, maar men kan hem wissen en herprogrammeren.

63

Page 68: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.10: Een typisch voorbeeld van glue logic: het processorbord van een Cromemco 8-bitcomputer (1976). Een Z80-microprocessor staat in voor 99% van het ’werk’, maar neemt slechtsenkele percenten van de ruimte-inname en dissipatie voor zijn rekening

64

Page 69: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Een microprocessor-randchip moet in de schakeling zelf geprogrammeerd worden (doorde microprocessor), maar verliest zijn programmeerinformatie bij het afleggen van devoedingsspanning. Men ziet dus dat er weerom een brede varieteit aan programmeerba-re componenten en programmeertechnieken en -technologieen bestaat. In de volgendeparagrafen zullen wij, weer bij wijze van overzicht, een aantal programmeerbare compo-nenten bespreken, alsook de programmeertechnologieen die gebruikt worden. Wij zullenbeginnen met het laatste.

Programmeertechnologieen

Hoe kan men het gedrag van een component beınvloeden alvorens hij gebruikt wordt?Hiervoor bestaan een aantal technieken, die grondig van elkaar verschillen op basis vantwee belangrijke eigenschappen: reversibiliteit en volatiliteit. Reversibiliteit wil zeggendat de programmering later ongedaan kan gemaakt worden, zodanig dat de componentherprogrammeerbaar en dus herbruikbaar is. Volatiliteit betekent dat de component zijnprogrammeerinformatie verliest bij het afleggen van de voedingsspanning.

Het programmeren van een component kan men beschouwen als het veranderen vanzijn interne structuur: alle actieve elementen zijn aanwezig (poorten, flipflops), maar menkan hun interconnectie beınvloeden. Verbindingen kan men heel letterlijk opvatten (alsgalvanische verbinding), of eerder als dusdanig modelleren op het functioneel niveau(bijvoorbeeld als multiplexers).

Smeltverbindingen en anti-fuses. Dit is een vroege en heel letterlijke vorm van ver-bindingen die voorkwam in bipolaire technologieen. Men voorziet de chip bij zijn fabri-cage van een aantal verbindingen in speciale legeringen (platina-silicide, titaan-wolfram).Men legt een overmaat aan verbindingen tussen de actieve onderdelen van de chip, endoor selectief een aantal van deze verbindingen (‘fusible links’) weg te smelten zal mende functie definieren die de chip zal realiseren. Het wegsmelten van de verbindingengebeurt door het toevoeren van stroom aan de component. Op de component moetenuiteraard voorzieningen aanwezig zijn om de programmeerstroom te leiden naar de ver-binding die moet verwijderd worden. Het aanleggen van de programmeerstroom ende adressering van de betrokken verbindingen gebeurt niet in situ, maar in een apartprogrammeerapparaat. Weggesmolten verbindingen kunnen niet hersteld worden, ende enige wijziging die men na de programmering aan de chip kan aanbrengen is hetwegsmelten van nog meer verbindingen. Deze vorm van programmeren is dus niet-reversibel en niet-volatiel.

Sommige componenten maken gebruik van het omgekeerde effect: men kan metalli-sche verbindingen aanbrengen eerder dan verwijderen: de z.g. anti-fuses. Programmerengebeurt door het aanleggen van spanning, om een isolerende laag te doen doorslaan.De doorslag resulteert in een permanente structuurverandering van het materiaal, endaardoor een drastische reductie van de weerstand (van 100 MΩ van de verbinding naar100 Ω). Echte smeltverbindingen werden enkel gebruikt bij bipolaire technologie, terwijlde meer recente anti-fuses ook in CMOS-technologie gebruikt worden.

FET’s met vlottende gate. Een tweede vorm van programmeren bestaat erin dat menals interconnectie-element een veldeffecttransistor gebruikt die tijdens de werking vande component niet gestuurd wordt, maar waarvan men de kanaalweerstand statisch kaninstellen op heel hoog of heel laag. Men kan de drempelspanning namelijk zo instellen

65

Page 70: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.11: Programmeertechnologie met vlottende gate

dat het kanaal ofwel geleidend is, ofwel afgeknepen; op deze manier verkrijgt men heteffect van een programmeerbare verbinding.

Hoe beınvloedt men de drempelspanning van de FET? Men doet dit door de FET tevoorzien van een dubbele gate-electrode (meestal in poly-silicium). De elektrode dichtstbij het kanaal ligt volledig ingebed in het gate-oxide, en is dus geısoleerd van de om-geving (fig. 3.11). Wanneer men op een of andere manier erin slaagt om lading aan tebrengen op deze vlottende gate, zal dit de drempelspanning van de FET wijzigen. Dewijze waarop men lading kan aanbrengen op de vlottende gate hangt af van de dikte vanhet gate-oxide dat de gate isoleert van haar omgeving. Voor een relatief dik oxide gebeurtdit door het aanleggen van een hoge spanning VPP tussen de buitenste gate en de sourceen drain van de FET. Men brengt tevens de drain op een relatief hoge spanning VD aant.o.v. de source. Het kanaal is dan goed geleidend, en de elektronen in het kanaal wordenzeer sterk versneld (‘hot electrons’). Zij kunnen, dank zij hun energie, en gedreven doorhet veld van de buitenste gate, doorheen het oxide de vlottende gate bereiken (zij hebbennamelijk voldoende energie om in de conductieband van het oxide te komen). Bij hetverwijderen van de spanning schuift de conductieband van het oxide weer naar bovent.o.v. de energie van de elektronen en wordt weer isolerend. De lading blijft gevangen opde gate. Wegens de zeer goede eigenschappen van het gate-oxide kan de lading daar innormale omstandigheden jaren blijven zitten.

Deze technologie noemt men FAMOS (Floating Gate Avalanche MOS). Ladingen wor-den weer verwijderd door de component te bestralen met ultraviolet licht, wat elektronenen gaten een energie kan geven om doorheen het oxide weer af te vloeien. Om dit mo-gelijk te maken moet de component voorzien zijn van een dekseltje in kwartsglas (figuur3.12, en moet hij uit de schakeling verwijderd worden. Noteer dat het wissen van zo eencomponent niet selectief kan gebeuren, maar dat alle FET’s met vlottende gate hun ladingverliezen. Figuur 3.18 toont een tweetal programmeerapparaten.

Bij een zeer dun oxide (ca. 80 nm of minder in sommige componenten) zal men eenoverdracht van lading tussen kanaal en vlottende gate realiseren door een tunneling-mechanisme doorheen de dunne oxidelaag. Men doet dit door een hoog veld aan te leggenover het dunne oxide, waardoor de banden steil afbuigen, en waardoor de conductiebandvan het oxide op geringe afstand al op hetzelfde energieniveau staat als de conductiebandvan het kanaal van de FET. Hierdoor kunnen elektronen doorheen de isolator (Fowler-

66

Page 71: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.12: Twee UV-wisbare programmeerbare componenten: links een 4-Mb EPROM, rechtseen EP1810 EPLD (component van het PLA-type)

Nordheim-tunneling).Door omkeren van de spanning kan men de lading weer verwijderen door hetzelfde

mechanisme. Noteer dat dit in situ kan gebeuren en, waar gewenst, selectief. Deze tech-niek wordt gebruikt in de z.g. ‘flash eproms’ (wissen niet selectief) en ‘EEPROMs’ (Elec-trically erasable Programmable Read Only Memories, met selectieve uitwissing). Dezegeheugens worden zeer intensief gebruikt bij de niet-volatiele configuratie van appara-ten, en ook als informatiedrager op bv. chip-kaarten. Beide technieken zijn reversibel enniet-volatiel.

Geheugencellen. Een derde programmeertechnologie maakt gebruik van geheugen-cellen zoals flipflops (zie hoofdstuk 6) om de programmeerinformatie op te slaan. Menkan de spanning op de flipflop dan gebruiken om een FET als transmissiepoort aan te stu-ren, die op deze manier weerom een programmeerbare verbinding vormt. De spanningkan echter evengoed gebruikt worden als input van combinatorische circuits, waarvanhet gedrag dus gecontroleerd wordt door de programmeerinformatie. Of men kan deprogrammeerinformatie gewoon opslaan in een register of een andere geheugenvorm,zodanig dat het gedrag van de component afhankelijk is van de inhoud van dit geheu-gen.

Noteer dat het onderscheid tussen de laatste vorm en wat er gebeurt in een computerbijzonder vaag wordt. Er is inderdaad geen scherpe lijn te trekken tussen de werkingvan programmeerbare componenten en computers met oplaadbaar programmageheu-gen. Een mogelijk punt van onderscheid zou kunnen zijn dat wij veronderstellen dat bijgewoon gebruik van een programmeerbare component de programmeerinformatie nietgewijzigd wordt tijdens de werking.

Programmeren met behulp van geheugencellen is uiteraard reversibel en volatiel. Hetmoet in situ gebeuren (waarom?).

67

Page 72: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.13: Doorsnede van een geheugencel met vlottende gate die elektrisch gewist kan wor-den

De architectuur van programmeerbare componenten

De interne architectuur van programmeerbare componenten kan diverse vormen aan-nemen; de laatste twintig jaren is er een werkelijke boom geweest in hun ontwikkeling.Weerom is het zo, dat in het kader van deze cursus slechts een beknopt overzicht kangegeven worden van het overweldigend aanbod.

Programmeerbare componenten vindt men in complexiteiten die varieren tussen MSIen ULSI. Sommige componenten bevatten geen (functionele) geheugencellen; anderehebben wel geheugencellen (soms zeer veel), en zijn dus sequentiele schakelingen, diewij zullen bespreken in hoofdstuk 6. Belangrijke verschillen bestaan er in de wijze waar-op men combinatorische functies moet synthetiseren in de interne structuur van de com-ponent. Op basis van dit criterium maken wij onderscheid tussen twee nogal extremevormen: de PLA-achtigen en de Cell Arrays. Wij maken er de lezer attent op dat er veeltussenvormen bestaan.

De PLA-achtigen De generieke architectuur van de combinatorische PLA-achtigen staatafgebeeld op figuur 3.14. Dit was ook de architectuur van de eerste programmeerbarecomponenten. Men onderscheidt een aantal inputs, die zowel rechtstreeks als gecomple-menteerd toegevoerd worden aan een programmeerbare interconnectiematrix. De ko-lommen van deze matrix zijn inputs naar een aantal EN-poorten. Elke poort kan verbon-den worden met elke input. De outputs van deze EN-poorten worden naar een tweedematrix gevoerd, waarvan de rijen de inputs zijn naar een aantal OF-poorten. De outputsvan deze poorten vormen de outputs van de component. Men kan eenvoudig inzien datdeze structuur generiek is voor de realisatie van combinatorische functies in een (mini-male) som-van-productenvorm. De beperkende factor is het aantal EN-poorten beschik-baar op de chip (waarom?).

Op basis van deze generieke architectuur kan men een aantal varianten uitwerken,

68

Page 73: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.14: Generieke architectuur van de PLA-achtigen, i.h.b. de PLA zelf

die elk hun voor- en nadelen hebben. Wij hebben de volgende mogelijkheden:

1. De eigenlijke PLA’s. Dit zijn componenten die beide programmeerbare matricesbevatten. Het acroniem PLA staat voor ‘Programmable Logic Array’. De aanwe-zigheid van beide matrices leidt tot componenten die trager zijn dan vergelijkba-re poortnetwerken in dezelfde technologie, en een beperking op het aantal EN-poorten (producttermen). Als programmeerbare component hebben echte PLA’snog slechts een historische betekenis; de PLA-structuur is echter nog steeds vanbelang in VLSI-ontwerp (zie verder).

2. De PAL’s. Het acroniem PAL staat voor ‘Programmable Array Logic’. Het is eenvariant van de zuivere PLA waarin echter de OR-array vast genomen wordt: metelke OF-poort verbindt men de outputs van een vast aantal EN-poorten. Dit aantalkan varieren van OF-poort tot OF-poort.

Hierdoor worden uiteraard bijkomende beperkingen opgelegd aan de realiseerbarefuncties (maximaal aantal termen in de som), en wordt het onmogelijk productter-men te delen tussen meerdere functies. Het voordeel is echter dat de componentsneller wordt door het wegvallen van de OR-array, en dat in totaal meer product-termen kunnen aangeboden worden. Voor vele eenvoudige functies is de vastheidvan de OF-matrix geen echte beperking.

In hun eenvoudigste gedaante hebben PAL’s vaste outputs. De meeste gangbaretypes hebben echter voorzieningen om het afschakelen van outputs controleerbaarte maken via enkele van de aanwezige EN-poorten. Men verkrijgt dan componen-ten die op een bus kunnen aangesloten worden. Wanneer men bovendien de out-putpin terugvoert naar de EN-matrix (rechtstreeks en via een invertor), kan men

69

Page 74: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.15: Een eenvoudige combinatorische PAL, de historische 16L8. Merk op dat de uitgan-gen individueel afschakelbaar zijn, en dat zij bovendien terug in de EN-matrix ingevoerd worden.Dit laat gebruik in een bidirectionele bus toe, en maakt ook de constructie van asynchrone terug-gekoppelde poortschakelingen mogelijk

70

Page 75: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

tijdens het afgeschakeld zijn van de output de pin gebruiken als bijkomende input.Of men kan teruggekoppelde poortnetwerken realiseren (asynchrone schakelingen,zie verder).

3. De ROM-structuur. ROM (Read Only Memory) is een andere particuliere vormvan de algemene PLA-structuur. In plaats van de OF-matrix vast te maken, maaktmen nu de EN-matrix vast, maar met n inputs brengt men 2n EN-poorten aan, diealle mintermen van de n inputs realiseren. De benaming ‘ROM’ wordt duidelijkwanneer wij de inputs beschouwen als adressen, de 2n EN-poorten als een adres-decoder, en elke OF-poort als een bit van het gelezen datawoord. Een geadresseerdwoord heeft een 1 op een gegeven bitpositie wanneer een input van de correspon-derende OF-poort verbonden is met de EN-poort die het adres decodeert. Noot:hiermee is uiteraard niet gezegd dat de interne fysische opbouw van ROM’s geba-seerd zou zijn op een vorm van lineaire adressering. Geheugenstructuren wordenvrijwel altijd gebouwd rond een tweedimensionale matrix van geheugenelemen-ten, met een tweedimensionale rij- en kolomadressering (zie verder).

De volledige decodering van alle adressen werkt ietwat vertragend, en uiteraardook beperkend op het aantal adreslijnen. Hiertegenover staat dat een ROM met n

inputs en k outputs simultaan k willekeurige Boolese functies kan realiseren zonderenige beperking, en zelfs zonder dat enige minimalisatie nodig is. Men hoeft slechts dewaarheidstabel van de functie op te slaan in de OF-matrix.

Noteer dat de EN-poorten individuele mintermen van de inputs decoderen. Wan-neer een functie 1 moet zijn op naburige mintermen, zullen deze 1-en door tweeEN-poorten gerealiseerd worden, en niet door een enkele EN-poort zoals in eengeminimaliseerd circuit. Dit leidt tot statische hazards (zie verder) in de realisatievan de functies, waarop de gebruiker geen invloed heeft. Hiermee dient men terdegerekening te houden bij het gebruik van ROM’s om combinatorische functies te realiseren!

Cell Arrays Pure cell arrays hebben een structuur sterk verschillend van deze van dezuivere PLA-achtigen. Zij worden vaak ook FPGA’s genoemd (‘Field Programmable Ga-te Arrays’), hoewel de elementaire cellen veel complexer zijn dan eenvoudige poorten!.Men vertrekt van een regelmatige matrix van CLB’s, Configureerbare Logische Blokken (dusniet van poorten, zoals de term FPGA verkeerdelijk zou kunnen suggereren). Bij wijzevan voorbeeld werd op figuur 3.16 de structuur van een Xilinx 3064 FPGA voorgesteld.De CLB’s van deze component bevatten een programmeerbare functiegenerator, waarin mennaar keuze een willekeurige Boolese functie van 5 variabelen, of twee van 4 variabelenkan implementeren, door het opladen van de waarheidstabel(len) in een ROM-structuur.De CLB bevat voorts ook twee flankgestuurde flipflops (zie verder) en een aantal con-figureerbare multiplexers. Hiermee kan men de flipflops in- of uitschakelen, en kiezenhoe de twee outputs van de CLB verbonden worden. De outputs van de flipflops wordenintern teruggevoerd naar de functiegenerator.

Karakteristiek aan de CLB’s is dus de beperkte fan-in (elke CLB ‘ziet’ veel minder in-puts dan een macrocel in een vergelijkbare PLA-achtige component), maar de onbeperktefunctiegeneratiecapaciteit binnen de beperking op de fan-in.

De CLB’s worden op de chip geplaatst, en worden omgeven door een eveneens pro-grammeerbare interconnectiestructuur. De structuur is hierarchisch:

71

Page 76: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.16: De structuur van een programmeerbare component van het cell array-type. No-teer de afwezigheid van een globale interconnectiestructuur die alles met alles verbindt, en debeperkte fan in van de CLB’s

72

Page 77: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

A

A

A

B

B

B

S1

P1

P1

S1P1

S1P1

S2

S2 P2

S2 P2

(a)

(b)

(c)

Figuur 3.17: Een geprogrammeerde interconnectie: (a) route op het vloerplan: P is een program-mable interconnection point, S is een switch; (b) circuitmodel: de schakelaars zijn FET’s; (c) elektrischequivalent: de kanalen van de FETs vormen een RC-keten samen met de capaciteiten naar hetsubstraat van de metalen baantjes en de source- en draindiffusies van de FET’s

• CLB’s zijn vooreerst verbonden via een aantal rechtstreekse verbindingen naar denaaste buren. Deze verbindingen zijn vast en snel, maar gaan niet ver.

• CLB’s zijn ook aangesloten op programmeerbare interconnectieblokken. Dit zijnblokjes die – mits enige beperkingen – intern verbindingen leggen tussen diver-se punten op hun omtrek. De interconnectieblokjes zelf zijn verbonden met hunnaaste buren. Op die manier kan men, over een aantal interconnectieblokken heen,een pad definieren van een CLB naar een andere. Het aantal paden doorheen eeninterconnectieblok is echter beperkt, en het passeren van een blok brengt een niet-verwaarloosbare vertraging mee. De reden hiervan wordt geıllustreerd in figuur3.17: een geprogrammeerd interconnectiepad is in feite een aaneenschakeling vanRC-cellen (de weerstand van de kanalen van de FET’s, de condensatoren van deFET’s (source- en draindiffusies) en de metalen baantjes die de blokken verbinden.Een verbinding die een aantal blokken moet passeren is veel trager (enkele ns) daneen rechtstreekse verbinding met een metalen baantje.

• Tenslotte liggen er op de chip een beperkt aantal ‘lange banen’, die doorheen eenhele kolom of rij van de chip lopen, en op die manier een aantal snelle, verre ver-bindingen tot stand kunnen brengen. Het distributienet van het kloksignaal bestaatook uit een net van lange banen. (Dit om klokverschuiving te minimaliseren.)

De structuur van dit soort component leent zich niet tot de traditionele som-van-pro-ductenrealisatie van Boolese functies waarmee wij volgend hoofdstuk beginnen. Hier-voor is de beperkte fan-in van de CLB’s verantwoordelijk. Wil men complexe Boolesefunctie realiseren, dan moet dit gebeuren onder een meerniveaugedaante, d.w.z. als eenlusvrij netwerk van meerdere CLB’s (zie hoofdstuk 4). Voorts is de snelheid van de rea-lisatie afhankelijk van de plaatsing van een ontwerp of de diverse CLB’s, en de manierwaarop de interconnectie gerealiseerd werd (routering). Het efficient gebruik van ditsoort componenten vraagt goede ondersteunende software voor meerniveausynthese enautomatische plaatsing en routering. Manueel ontwerp is nog steeds mogelijk, maar iszeer moeizaam. In Tabel 6.4 worden de karakteristieken van enkele programmeerbare

73

Page 78: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

UV-lamp

IC-voet

IC-voet

RS-232-verbindingmet computer

Verbinding metplug-inbord incomputer

Figuur 3.18: Programmeerapparaten voor programmeerbare componenten. Het apparaat linksis uitgerust met een UV-lamp om componenten te wissen; beide apparaten kunnen gekoppeldworden met een computer om het programmeerbestand (JEDEC) uit te kunnen wisselen.

componenten weergegeven.Een belangrijk verschil met standaardcomponenten is dat het gerealiseerde systeem

veel minder observeerbaar is: verbindingen intern op de chip kunnen niet zomaar bemetenworden tijdens een testfase. Deze situatie heeft veel gelijkenis met de situatie die menvindt bij ASIC-ontwerp. Men moet dus hulpmiddelen hebben om zowel het eigenlijkeontwerp (en de afbeelding ervan op de fysische structuur van de component), als deverificatie en validatie ervan te ondersteunen.

De fabrikanten van programmeerbare componenten bieden dan ook diverse ontwerp-omgevingen aan, waarin men complexe ontwerpen kan realiseren met hun componen-ten. Veel van deze omgevingen laten uitwisseling toe met ontwerpinformatie uit andereomgevingen. Men vindt zowel tekstuele als grafische invoer terug. Tekstuele talen zijno.a. PALASM (AMD), ABEL (Data I/O), AHDL (Altera) en VHDL terwijl wij als grafischevormen (schematische invoer) systemen vinden zoals OrCAD, FurtureNet DASH, of ei-gen systemen van de chipfabrikant. In toenemende mate wordt automatische syntheseen generatie vanuit bv. een VHDL-beschrijving (technology mapping) een valabel alterna-tief voor manueel ontwerp van de fysische schakeling. Als uitwisselingsformaat tussende diverse pakketten gebruikt men de standaard EDIF. Figuur 3.18 toont een tweetal pro-grammeerapparaten.

Ontwerp met de traditionele middelen gebeurt meestal op logisch niveau en op RT-niveau. Ofwel beschrijft men (typisch in een tekstuele taal) het gewenste gedrag van hetsysteem, met concrete representaties van Boolese functies en eindige automaten, ofwelontwerpt men onmiddellijk op structureel niveau (schematische invoer). Sommige syste-men laten gedeeltelijke invoer toe via tijdsdiagrammen (temporele gedragsbeschrijving).

Bij structureel ontwerp heeft men meestal beschikking over bibliotheken van eerdergesynthetiseerde functies. De bibliotheken bevatten componenten die zeer dikwijls over-eenkomen, of minstens grote gelijkenis vertonen met de componenten uit standaard com-ponentlijnen voor SSI, MSI, of LSI.

De ontwerpomgeving zal de beschrijving lezen en vertalen naar een vorm die pastbij het architecturaal model van de component. Het resultaat uit deze stap kan gesimu-

74

Page 79: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.19: Ontwerptraject voor Texas Instrument’s programmeerbare componenten vanuit eengrafische invoer in OrCAD

leerd worden. Ofwel bevat de omgeving zelf een simulator, ofwel zal men een bestand inEDIF-formaat genereren dat in een externe simulator gebruikt kan worden. Op dat puntnoemt men de simulatie nog ‘logisch’, en dient als validatie van het manueel beschre-ven ontwerp. Ter validatie specificeert de gebruiker typisch een aantal testvectoren. Deoutput van een correcte simulatie kan later gebruikt worden voor testdoeleinden.

Nadien wordt het ontwerp geplaatst op de component (dit impliceert toewijzing vanpinnen, macrocellen en CLB’s), en wordt de interconnectie aangebracht (routering). Opdat punt kan men precieze timing-gegevens verkrijgen over de vertragingstijden vancombinatorische functies en interconnectiestructuren. De meeste systemen laten toe dezegetallen te extraheren, en ze terug te voeren naar de hogere niveaus van ontwerp, bv.in de simulator. Hier kan men een idee krijgen van het werkelijk tijdsgedrag van deimplementatie.

Tenslotte wordt een bestand gegenereerd waarmee men de component kan program-meren. Een van de formaten die daar courant gebruikt worden is het JEDEC-formaat.Dit bestand kan informatie over de testvectoren bevatten, die na het programmeren kangebruikt worden om een finale test te doen van de geprogrammeerde component.

Bij wijze van voorbeeld toont fig 3.19 de werkwijze om, met schematische invoervanuit OrCAD, componenten uit de lijn van Texas Instruments te programmeren. De TI-ALS-omgeving is specifiek voor de gebruikte componenten; de OrCAD-omgeving is niethieraan gebonden. Noteer dat, om realiseerbare ontwerpen te kunnen maken, men moetgebruik maken van een bibliotheek in OrCAD die toegeleverd wordt door de fabrikantvan de componenten.

75

Page 80: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

3.3.3 ASIC-bouwstenen

ASIC’s (applicatie-specifieke IC’s) zijn geıntegreerde circuits die niet als kant-en-klarecomponenten kunnen gekocht worden. De systeemontwerper kan in mindere of meerde-re mate de interne opbouw van de chip mee bepalen. Op deze manier kan de chip op maatgemaakt worden voor de toepassing, wat zeer grote voordelen heeft bij het laag houdenvan het aantal chips waaruit de realisatie van een systeem zal bestaan. Wij hebben geziendat dit voordeel reeds aanwezig is bij het gebruik van programmeerbare componenten.Daar echter wordt men nog steeds geconfronteerd met twee nadelige eigenschappen:

• men kan zelden een complexe programmeerbare chip volledig benutten: typisch zal10 a 20 % van de chip ongebruikt blijven;

• een programmeerbare chip vereist de aanwezigheid van de programmeerinfra-structuur op de chip. Een op maat gemaakte chip met precies dezelfde functio-naliteit als een geprogrammeerde component zal dus een significant lagere silici-umoppervlakte vertonen, en zal ook sneller zijn.

Deze nadelen kunnen ten dele geelimineerd worden door, eens een programmeerbarechip een stabiel ontwerp draagt, deze functionaliteit te vervaardigen in een niet-program-meerbare versie van de chip (de z.g. ‘hard array logic’). Bij grotere oplagen zijn deze vastechips goedkoper dan hun programmeerbare tegenhangers. Hiermee reduceert men ui-teraard niet het aantal chips, omdat dit bepaald wordt door de mogelijkheden van deprogrammeerbare componenten.

Met behulp van applicatie-specifieke chips kan men dus producten bouwen die veelcompacter zijn dan vergelijkbare realisaties met standaardcomponenten of programmeer-bare componenten. Er zijn echter ook nadelen verbonden aan het gebruik van ASIC’s:

• de looptijd doorheen het ontwerptraject wordt langer. Het gebruik van ASIC’s kande initiele stadia van het traject wellicht inkorten, omdat minder restricties aanwe-zig zijn in het begin. Eens men de structuur van de te bouwen componenten vol-ledig vast heeft gelegd, moeten de chips echter vervaardigd worden, en dit duurtmeestal een tot drie maanden. Elke fout die een nieuwe fabricage vereist, wordtgepenaliseerd met een gelijkaardige tijdsduur en kost.

• de initiele kost (NRE, ‘non-recurrent engineering cost’) voor de vervaardiging vaneen ASIC is nog steeds veel hoger dan de initiele kost voor het gebruik van stan-daardcomponenten of programmeerbare componenten (een belangrijke factor hier-in is de vervaardiging van de maskers). Daarentegen is de productiekost van decomponenten lager dan de kost van complexe programmeerbare componenten, opvoorwaarde dat men de componenten produceert op voldoend grote oplagen.

Voorts bestaat het gevaar dat men bij ASIC’s minder bestaande ontwerpen (bv. van com-plexe dingen zoals processors) zal hergebruiken, maar deze eerder opnieuw, en op maatzal bouwen voor de toepassing. Dit impliceert dat ook de programmeerinfrastructuur(assemblers, linkers, compilers, enz.) grotendeels moet herbouwd worden. Dit verhoogtaanzienlijk de initiele kost, alsook de risico’s op het laattijdig bereiken van de markt.Recentelijk is echter het gebruik van zg. soft cores gevoelig toegenomen. Dit zijn biblio-theekcomponenten die een volledige processor bevatten, die men mits het betalen vaneen licentiebedrag mag hergebruiken, en eventueel zelfs aanpassen aan zijn eigen be-hoeften.

76

Page 81: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Men ziet dus dat het gebruik van ASIC’s zeker geen garantie biedt op succes in allemogelijke toepassingen. Indicaties om te denken in de richting van een ASIC zijn groteoplagen, een welomschreven functionaliteit van het gewenste eindproduct, en eventu-eel andere specifieke eisen op het eindproduct, zoals afmetingen of vermogendissipa-tie. Noteer dat veel toepassingen in de consumentenbranche deze combinatie van eigen-schappen vertonen. Een typisch voorbeeld hiervan zijn de signaalverwerkingschips intelevisies en stereoketens (compact disc), de opkomende elektronica in gebouwen (domo-tica) en voertuigen (automotive electronics), en ook de chipsets voor personal computersen GSM-toestellen. De aanwezigheid – reeds geruime tijd – van een aantal complexeMOS- en CMOS-IC’s voor consumententoepassingen in de catalogi van fabrikanten vanstandaard-chips bevestigt deze observatie. Applicaties die gekenmerkt worden dooreen complexe functionaliteit, zonder dat er echter zeer strikte snelheids-, vermogens-of plaatseisen gesteld worden op dit ogenblik eerder gerealiseerd met standaard micro-processors, in het bijzonder microcontrollers (zie verder).

Er bestaan diverse benaderingen voor de realisatie van ASIC’s. Deze benaderingenverschillen in de manier waarop de productie van de component wordt georganiseerd,en, daaraan gekoppeld, de wijze waarop men ontwerpt voor deze componenten. Wij on-derscheiden drie klassen: (i) de semi-custom gate arrays, (ii) de standaard-celbenaderingen,en (iii) de full-custom benadering. Wij zullen nu kort deze benaderingen schetsen.

Semi-custom Gate Arrays

Een semi-custom gate array is een component die bestaat uit een regelmatige structuurvan niet-geınterconnecteerde elementaire bouwstenen. Deze structuur bestaat alvorens eeneventuele toepassing erop gerealiseerd wordt, en is er dus onafhankelijk van. Deze onafhanke-lijkheid maakt het mogelijk de chips gedeeltelijk te realiseren, maar dan in grote oplage:men voert alle diffusie- en implantatiestappen uit voor de realisatie van de bouwstenen,maar men brengt de metaal-interconnecties van deze bouwstenen nog niet aan. De plak-ken (‘wafers’) worden niet-versneden gestockeerd, tot wanneer er een ontwerp moet opgerealiseerd worden. Dit gebeurt door de aanwezige bouwblokken te interconnecterenin een of meerdere metaallagen (van 2 tot 5, zie figuur 3.20), met behulp van metallisa-tiemaskers die ontworpen zijn op basis van het te realiseren systeem. Nadien worden deplakken versneden en de chips verpakt.

De elementaire bouwstenen worden meestal op een rechthoekige of vierkante matrixgeorganiseerd, vandaar de naam gate array. Een niet-gemetalliseerde plak noemt mensoms masterslice, en deze bestaat uit prediffused components. Bouwstenen worden typischbeschreven op logisch niveau: het zijn bv. 2- of 3-input NAND-poorten. Soms biedt menbouwblokken aan op circuitniveau: men voorziet dan in interconnecteerbare transisto-ren, weerstanden en dioden. Dit soort componenten noemt men soms ‘uncommittedlogic arrays’ (ULA’s).

Het ontwerp met dit soort componenten kan in principe op logisch niveau gebeuren,maar net zoals bij programmeerbare componenten voorziet men in ontwerpomgevingendie ontwerp op RT-niveau ondersteunen. Deze ontwerpomgevingen bevatten biblio-theken van ‘macro’s’, dit zijn eerdere gerealiseerde functies met een functionaliteit diete vergelijken is met de standaard SSI-, MSI- en LSI-bouwblokken. Van langsom meerwordt ook hier VHDL als invoertaal gebruikt.

Voorbeeld 3.1 Beschouw als voorbeeld de H4C-productlijn van Motorola. Dit is een lijn van

77

Page 82: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.20: De drielagenmetallisatie van een gate array uit de H4C-lijn van Motorola (1995). Deisolatie tussen de metaallagen werd verwijderd

CMOS gate arrays. De grootste componenten bevatten meer dan 300 000 poorten (2-inputNAND). De metallisering gebeurt in drie lagen (waarvan een voor de voedingsdistributie); zijkan over de actieve componenten aangebracht worden, zodanig dat de routering relatief weinigplaats inneemt, en zeker geen afzonderlijke kanalen vereist zoals in sommige programmeerbarecomponenten. Deze architectuur noemt men een ‘channelless’ of een ‘sea-of-gates’ architectuur.

In de bibliotheek vindt men macro’s die gaan van eenvoudige poorten (1 poort per 2-inputNAND- of NOR-functie), over flankgestuurde D-flipflops (10 poorten), aritmetische circuits zoalseen combinatorische 8-bitvermenigvuldiger (1106 poorten), tot een 32×72 tweepoortgeheugen(7798 poorten). Poortvertragingen zijn typisch 0.17 tot 0.8 ns (afhankelijk van de fan out). Detoegangstijden tot de geheugens zijn, afhankelijk van de afmetingen en de woordbreedte, van deorde van 2 tot 5 ns.

Het ontwerptraject vertoont veel gelijkenis met het traject voor programmeerbarecomponenten. Men doet eerst een pre-layout-ontwerp, waarin men een netlijst afleidtdie de interconnectie van de elementaire bouwblokken beschrijft. Deze netlijst kan inge-voerd worden in een simulator, die het functioneel gedrag simuleert, echter nog zonderrekening te houden met de feitelijke vertragingstijden veroorzaakt door de interconnec-tie. Deze simulatie kan o.m. gebruikt worden voor het aanmaken van testvectoren.

Nadien wordt de netlijst geplaatst en gerouteerd, en kan men de echte (capacitieve)belastingen van de poorten bepalen. Deze cijfers worden teruggevoerd naar de netlijst(Eng. back annotation), waar ze aanleiding geven tot een simulatie die ook het verwachtetijdsgedrag nauwkeurig modelleert.

Wanneer deze simulaties voldoening schenken, worden de ontwerpbestanden (inEDIF-formaat) overgedragen aan de fabrikant, zodanig dat de componenten kunnen ge-fabriceerd worden.

Tabel 3.2 geeft een idee van de eigenschappen van enkele semi-custom gate arrays.

Standaard-celcomponenten

Bij standaard-celcomponenten valt de beperking van de op voorhand gemaakte diffusiesweg. De hele chip wordt op maat gemaakt naar de specificaties van de ontwerper. Degebruikte technologie is vrijwel uitsluitend CMOS, met kanaallengten die de dag van

78

Page 83: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 3.2: Enkele semi-custom gate arrays (Motorola)Component Complexiteit Vertragingstijd Technologie I/O-

(equiv. poorten) (ns) signalenHDC003 3 036 0.25 CMOS 76HDC105 104 832 0.25 CMOS 300H4C027 27 048 0.18 CMOS 188H4C318 317 968 0.18 CMOS 556MCA750ETL 848 0.15 ECL 42MCA2200ECL 2 200 0.12 ECL 108MCA10000ECL 10 000 0.12 ECL 256

vandaag (2003) varieren van 0,13 tot 0,6 µm.Om een chip met een aanvaardbare efficientie te kunnen ontwerpen op fysisch niveau

(layout en routering), zorgt men voor een bibliotheek van eerder gerealiseerde functies,die echter een zeer gelijkende fysische lay-outstructuur hebben. Bijvoorbeeld, alle bi-bliotheekfuncties zijn qua lay-out rechthoekig, waarbij alle rechthoeken dezelfde hoogtehebben, en waarbij alle inputs en outputs bijvoorbeeld enkel aan de boven- en onder-kant van de rechthoek naar buiten gebracht worden. Dit soort van cellen kan men inrijen plaatsen, en de gewenste interconnecties tussen de cellen in bedradingskanalen dietussen de rijen lopen. De plaatsing van de cellen en hun interconnectie kan automatischverlopen.

De oppervlakte van een standaardcel kan kleiner zijn dan deze van een semi-custommacro met dezelfde functionaliteit, omdat ook de diffusies en de bedrading in de polyla-gen op maat gemaakt wordt. Anderzijds zal men meestal niet toelaten dat interconnec-tiebanen over de cellen gelegd worden, hoewel ook deze beperking in de meer recentetechnologieen achterhaald is.

De standaardcelbibliotheken bevatten eveneens de gebruikelijke componenten op SSI-, MSI- en LSI-niveau. Een voorbeeld van een dergelijke cel komt uit de SOLO-1400 ont-werpomgeving (ES2, 1995), zie figuur 3.21. Deze figuur geeft drie zichten op dezelfdecel: het schema (logische structuur op poortniveau), de transistorschakeling (logischestructuur op circuitniveau), en de eigenlijke standaardcellayout (fysische structuur opcircuitniveau).

De basiscel bestaat uit een stage, dit is een koppel transistoren met resp. een n- eneen p-kanaal. Stages worden in rijen geplaatst, waarbij waar nodig plaatsen overgela-ten worden voor bedrading. Nadien worden de transistoren uit de stages door middelvan metaal (2 lagen bij ES2, 4 tot 5 lagen in meer recente technologieen) tot een circuitgeınterconnecteerd (zie figuur 3.22). De omgeving bevat ook standaardcellen met eenvooraf gemaakte lay-out, bijvoorbeeld flipflops. Bij deze lay-outs wordt ook polysiliciumgebruikt als bijkomende interconnectielaag.

Modules of macro’s. Naast de eigenlijke standaardcellen, die in functionaliteit verge-lijkbaar zijn met standaardcomponenten, bevatten de meeste omgevingen ook module-generatoren. Een module is een bouwblok met een veel grotere complexiteit dan eenelementaire standaardcel. De bedoeling is dat de lay-outstructuur van een module opvoorhand, en misschien niet automatisch, gedefinieerd wordt, maar dat bij effectief ge-bruik van de module, de lay-outstructuur kan aangepast worden aan de functie die moetgerealiseerd worden. Het op voorhand aanmaken van een (generieke) lay-outstructuur

79

Page 84: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.21: Standaard-cellayout van een multiplexer, gerealiseerd als complexe CMOS-poort(ES2): logisch niveau (logische structuur), circuitniveau (fysische en logische structuur)

80

Page 85: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.22: Een chipfoto van een standaard-celontwerp (ES2, 0,7 µm). Het getoonde deel meetca. 2,35 × 1,6 mm

heeft als voordeel dat de lay-out zeer compact kan zijn, veel compacter dan een lay-outdie opgebouwd is uit afzonderlijke standaardcellen. Dit heeft niet alleen voordelen ophet gebied van oppervlakte, maar ook op het gebied van snelheid en dissipatie (waar-om?).

De ontwerper van modules wordt dus met dezelfde problemen geconfronteerd alsde ontwerper van standaard VLSI-bouwstenen: welke functies moeten aangeboden wor-den? Het antwoord vindt men eveneens in de wereld van de standaard bouwstenen:ofwel functies waarvan de functie (en dus de structuur) niet afhangt van de complexiteit(bijvoorbeeld geheugens); ofwel vaste functies die universeel bruikbaar zijn (processors);ofwel functies met een programmeerbaar gedrag, zodanig dat de structuur van de mo-dule slechts lokaal afhankelijk is van de gerealiseerde functie.

Zowel wat betreft processors als geheugens bieden de meeste ontwerphuizen en foun-dry’s mogelijkheden. Processors zijn soms te verkrijgen als zg. IP cores,4 dit zijn simu-leerbare en synthetiseerbare beschrijvingen van standaard-processors (bijvoorbeeld dewelbekende SPARC-architectuur). Een ontwerper kan een licentie kopen op het gebruikvan de beschrijving, en hiermee dus de volledige processor mee-integreren op hetzelfdechipoppervlak.

Voor geheugens biedt men meestal generatoren: de foundry genereert de layout vaneen geheugenblok naar de specificaties (afmetingen, woordbreedte, aantal poorten) vande klant.

In de klasse van functies met een programmeerbaar gedrag vindt men als belangrijk-ste vertegenwoordiger de PLA (of PLS, wanneer ook flipflops worden aangebracht). Uit

4IP staat hier voor Intellectual Property, niet voor Internet Protocol!

81

Page 86: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

figuur 3.14 volgt dat de generieke structuur van een PLA vrijwel onafhankelijk is vande gerealiseerde functie; enkel de detailinhoud van de EN- en OF-matrices is bepalendvoor de functie. Deze idee kan doorgetrokken worden tot op geometrisch niveau. Menkan een PLA geometrisch steeds beschrijven als bestaande uit twee rechthoeken (de tweematrices) met een gemeenschappelijke afmeting. In figuur 3.23 wordt een schematischbeeld gegeven hoe er een PLA-module kan uitzien. De interne structuur is een NOR-NOR-structuur, die door gebruik te maken van de regels van De Morgan, en invertorenaan in- en outputs, de standaard EN-OF-structuur verkrijgt (ga dit na!). Het aantal pro-ducttermen wordt volledig bepaald door de te realiseren functie. Dit aantal bepaalt dehoogte van de structuur; het minimaliseren van het aantal implicanten is dus van wezen-lijk belang voor een reductie van de vereiste oppervlakte en de hiermee geassocieerdeeigenschappen.

In figuur 3.23 herkent men de invertoren aan de inputs (dubbel uitgevoerd om deinputbelasting op een standaardinput te brengen), die de inputs en hun complement inde EN-array invoeren als verticaal lopende banen. Deze banen worden typisch gebruiktals gate-elektrode voor de transistoren in de matrix. Elke implicant wordt gerealiseerdals een NOR-poort met passieve last. Of een input al dan niet gebruikt wordt, hangtaf van het al dan niet aanbrengen van een transistor op de gepaste plaats. Dit kan opdiverse manieren, bijvoorbeeld door in te grijpen op de dikte van het oxide (gate-oxideis veel dunner dan isolatie-oxide of field-oxide), of door de drain van een al aanwezigetransistor al dan niet te verbinden.

De implicanten worden uit de EN-matrix naar buiten gebracht als horizontale banen,die in de OF-matrix opnieuw als gate-electrode zullen gebruikt worden. De structuurvan de OF-matrix is gelijkaardig aan de structuur van de EN-matrix. De sommen komenals verticale banen uit de matrix, waar ze geınverteerd en gebufferd worden, alvorens demodule te verlaten.

PLA’s werden (en worden tot op zekere hoogte) bijzonder frequent gebruikt voor derealisatie van complexe combinatorische functies en eindige automaten (daartoe moe-ten er natuurlijk extra flipflops worden aangebracht). Eindige automaten komen ofwelrechtstreeks als te realiseren gedrag naar voor, ofwel als bijproduct van een andere syn-thesestap.

Een PLA is over het algemeen sneller en compacter dan een ROM-structuur, maar watgroter en soms trager dan meerlaagse poortnetwerken, althans voor niet te complexefuncties. In een CMOS-omgeving vertoont een PLA zoals deze in figuur 3.23, wegensde aanwezigheid van passieve-lastelementen, een statische dissipatie die afwezig zouzijn bij een meerlaagse realisatie van de combinatorische functie d.m.v. complexe CMOS-poorten (zie hoofdstuk 6). Deze statische dissipatie kan deels omzeild worden door hetgebruik van dynamische circuittechnieken, waar mogelijk.

Full-customcomponenten

Full-customontwerp is het ontwerp van ASIC’s zonder zich te onderwerpen aan de ont-werpregels en functiebibliotheken van ontwerpomgevingen. Men moet het ontwerp zelfverfijnen tot op het circuitniveau, en men is tevens verantwoordelijk voor de realisatievan de geometrische beschrijving (lay-out en routering). Het zijn precies deze aspectenwaar de ontwerper die werkt met standaardcellen en modulegeneratoren van ontslagenwordt.

Het hoeft geen betoog dat ontwerp op dit niveau heel andere eisen stelt aan de ont-

82

Page 87: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.23: Logische en fysische structuur van een custom PLA (circuitniveau, schematisch)

83

Page 88: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.24: Te analyseren taknetwerk

werper: deze moet immers zeer goed op de hoogte zijn van de technologische en geome-trische beperkingen (‘design rules’) van de gebruikte technologie. De realisatie van eencomplexe schakeling op deze manier is dan ook veel moeilijker en tijdrovender dan op deandere manieren. De te verwachten winst ligt volledig vervat in de eigenschappen vande gerealiseerde chip: men kan nog compactere lay-outs genereren dan met standaard-cellen. Hierdoor zal het siliciumoppervlak verder dalen (de chip wordt goedkoper), enkan de snelheid toenemen. Beide eigenschappen zijn van cruciaal belang voor de realisa-tie van bouwstenen die in grote aantallen door veel ontwerpers gebruikt worden – denkmaar aan standaardcomponenten zoals geheugenchips en processors, of bibliotheekmo-dules in een ASIC-ontwerpomgeving.

De economische implicaties (bijzonder grote ontwerpinspanning, typisch vele per-soon-jaren voor bv. een processor) sluiten full-customontwerp dan ook uit voor de mees-te ‘gewone’ ontwerpen, waar de marginale toename van de ontwerpkost niet gecom-penseerd zou worden door de marginale toename van de opbrengst. Wegens de zeergespecialiseerde aard van deze ontwerpmethode zullen wij er in deze cursus niet verderop ingaan.

3.4 Opgaven

1. Is het product A · B van twee connectiematrices van dezelfde dimensie steeds eenconnectiematrix? Bewijs of geef een tegenvoorbeeld.

2. Is het product van connectiematrices van dezelfde dimensie associatief? Is het com-mutatief? Bewijs of geef een tegenvoorbeeld.

3. Beschouw het netwerk in figuur 3.24. Bepaal de schakelfunctie gerealiseerd tussende punten 1 en 6 met behulp van de connectiematrix A van het circuit. Vanaf welkemacht n is An = A∞? Hoe kan men dit rechtstreeks zien op de schakeling?

4. Men wenst poorten te bouwen met behulp van taknetwerken, op de manier ge-schetst in Figuur 3.25.

Weze N1 en N2 taknetwerken met oneindig snelle schakelaars. Men eist dat

• de output “Out” steeds verbonden is met ofwel +V ofwel 0;

• nooit +V verbonden wordt met 0.

(a) Wat is de verwantschap tussen de functies gerealiseerd door N1 en N2, entussen de topologieen van hun netwerken ?

84

Page 89: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 3.25: Een poort gemaakt met behulp van schakelaars

Figuur 3.26: Twee concrete gevallen

(b) Bepaal N2 voor elk van de gevallen in Figuur 3.26.

85

Page 90: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 4

Synthese van combinatorischeschakelingen

In dit hoofdstuk zullen wij nagaan hoe wij, uitgaande van een willekeuri-ge Boolese vorm, op systematische (en dus ook op computergesteunde) ma-nier een of een stelsel Boolese functies kunnen realiseren d.m.v. een poortnet-werk.

Uit de vorige hoofdstukken blijkt dat, zonder bijkomende restricties, ditprobleem triviaal is: elke Boolese vorm stelt immers de topologie van eenpoortnetwerk voor. Het afleiden van de graaf die het netwerk voorstelt, steltdan ook geen enkel probleem.

Anders wordt het wanneer een aantal bijkomende optimaliteitsvoorwaar-den worden gesteld, waaraan het resulterend netwerk moet voldoen. Wij stel-len gewoonlijk een aantal, soms conflicterende eisen:

1. Het netwerk moet zo snel als nodig zijn. Dit wil zeggen dat de tijd dieverloopt tussen het veranderen van een ingangssignaal, en het stabilise-ren van de netwerkuitgangen daarna, beneden een vooropgestelde duurmoet blijven. De toelaatbare tijd wordt vanzelfsprekend bepaald doorde toepassing, en het is niet nodig de schakeling sneller te maken dannodig.

2. Het netwerk moet zo goedkoop mogelijk zijn. Een aantal factoren beın-vloeden de kostprijs, bijvoorbeeld:

• Het aantal componenten nodig voor de bouw van het netwerk;

• De chipoppervlakte die het netwerk inneemt bij een ASIC-imple-mentatie;

3. Het netwerk moet zo weinig mogelijk energie dissiperen per bewerking;

4. Het netwerk moet testbaar zijn na productie;

5. ...

In de loop van de voorbije dertig jaar hebben zich twee netwerkstijlen ont-wikkeld die een systematisch ontwerp mogelijk maken. De eerste stijl is detweeniveaugedaante. In deze stijl moeten de gerealiseerde netwerken eensom-van-producten-vorm (SVP) hebben1. Zij moeten bestaan uit een OF-poort,

1Of de duale product-van-sommen-vorm.

86

Page 91: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

waarvan de uitgang de functiewaarde draagt, en waarvan de inputs verbon-den zijn met de output van EN-poorten. De inputs van deze EN-poorten zijnde variabelen, in al of niet gecomplementeerde vorm. Door gebruik te ma-ken van de regels van De Morgan kan men de som-van-productenvorm ookonder NAND-NAND- of NOR-NOR-gedaante brengen (zoals bij de PLA infiguur 3.23). Wij zullen hier echter verder werken met de EN-OF-vorm.

De EN-OF-vorm leidt tot het netwerken met de geringste padlengte vaningang naar uitgang (maximaal 2, voor willekeurige functies, wanneer wij deinvertors niet meerekenen), en dus snelle netwerken, althans voor eenvoudi-ge functies.

De gerealiseerde netwerken moeten minimaal zijn volgens volgende crite-ria:

1. Het aantal EN-poorten moet minimaal zijn.

2. Het gezamenlijk aantal inputs van EN-poorten moet minimaal zijn.

De DSV van een Boolese vorm is duidelijk van de goede vorm, maar is nietnoodzakelijk minimaal. Wat wij zoeken is een minimale som, een equivalenteBoolese vorm die een som van producten is, maar met een minimum aantallettervormen Xi of X ′

i in de uitdrukking.De som-van-productenvorm die wij in het eerste deel van dit hoofdstuk

nastreven is uiteraard lang niet de enige gedaante waarin poortnetwerkenkunnen voorkomen. Complexe functies kunnen trouwens moeilijk in dezevorm gegoten worden, omdat de bouwstenen waarover men beschikt vaakveel te weinig inputs hebben (het maximaal aantal inputs bij EN- en OF-poorten is van de orde 10 tot 16; hogere waarden zijn mogelijk, maar leidentot lagere snelheden).

Een minstens even belangrijke klasse is daarom de tweede vorm, deze vande meerniveaucircuits, waar men poorten met een beperkte fan-in kan gebrui-ken, maar waar men paden langer dan 2 toelaat van de inputs naar de out-puts. Het totaal aantal poorten en poortinputs kan dan nog lager zijn dan bijde tweelaagse som-van-productenvorm. Het blijkt zelfs dat de langere padenniet noodzakelijk tot tragere netwerken leiden, omdat de gebruikte poorteneenvoudiger en dus sneller kunnen zijn. Wij zullen beide ontwerpstijlen on-derzoeken.

4.1 Tweenineausynthese

De concrete opgave waar wij voor staan is de volgende: gegeven een of een stelsel Boole-se functies over dezelfde variabelen, leid een som-van-productenvorm af van deze func-ties zodanig dat het totaal aantal termen mininaal is, en vervolgens de totale kost vande termen (aantal factoren) eveneens minimaal is. De Boolese functies kunnen mogelijkpartieel zijn (dit wil zeggen, niet voor elk punt in hun domein gespecificeerd), en kunnenop diverse manieren opgegeven worden: als Boolese vorm, als waarheidstabel, als lijstvan mintermen, ...

Sinds de jaren 50 van de vorige eeuw zijn diverse technieken en algoritmen ontwik-keld om dit probleem op een systematische manier op te lossen. Wij zullen nu een aantalvan deze technieken bespreken.

87

Page 92: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4.1.1 Algebraısche minimalisatie

Wij beginnen met de historische algebraısche methode van Zissos, bij wijze van introduc-tie in de problematiek. De algebraısche methode bestaat uit een symbolische manipulatievan functies opgegeven als Boolese vorm. wij beperken ons tot volledig gespecificeerdefuncties. Wij zullen de Boolese vorm herschrijven in een meer eenvoudige, maar equiva-lente gedaante. Wij gebruiken hiervoor de diverse gekende reductieregels die de beteke-nis van de vorm ongemoeid laten. Naast de reeds eerder vernoemde reductieregels (zieafleiding van de DSV) hebben wij behoefte aan twee bijkomende reductieregels:

Stelling 4.1 Weze A en B twee Boolese vormen. Dan is A + A ·B ∼ A.

Bewijs. A + A ·B ∼ A · (1 + B) ∼ A · 1 ∼ A.In een Boolese som-van-productenvorm mag men termen die andere termen volledig

bevatten (beschouwd als verzameling van lettervormen) schrappen.

Stelling 4.2 Weze A, B en C Boolese vormen. Dan is

A ·B + A′ · C ∼ A ·B + A′ · C + B · C

Men noemt B · C het optioneel product van A ·B en A′ · C.

Bewijs.

A ·B + A′ · C + B · C ∼ A ·B + A′ · C + (A′ + A) ·B · C∼ A ·B + A′ · C + A′ ·B · C + A ·B · C∼ A ·B · (1 + C) + A′ · C · (1 + B)∼ A ·B + A′ · C.

Opmerking. Vanaf nu zullen wij, om gemakkelijkheidsredenen, het equivalentie-sym-bool ∼ vervangen door =, en het productsymbool · weglaten. Noteer echter dat het ge-bruik van = binnen Vn strikt genomen onjuist is, tenzij men effectief letterlijke gelijkheidbedoelt!

Wij beschrijven nu een (oude) methode die in 1972 voorgesteld werd door Zissos. Dealgebraısche minimalisatiemethode verloopt in twee stadia:

1. de verwijdering van redundantie (reductie);

2. de herleiding tot een minimale vorm.

Voor beide stappen zullen wij nu een algoritme presenteren.

Algoritme 4.1 (Algebraısche reductie van Boolese vormen [Zissos72])

1. Herleid de bv. naar een som van producten door het uitwerken van de haakjes. Verwijderalle termen die XiX

′i bevatten voor een bepaalde i. Schrap dubbele factoren in een product

en dubbele termen in de som. Stop indien geen termen resteren (equivalente vorm is 0) ofwanneer twee termen elkaars complement zijn (A + A′; de equivalente vorm is 1).

88

Page 93: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

2. Verwijder redundante termen d.m.v. Stelling 4.1. Schrap alle termen die een kortere termvolledig bevatten, immers A + AB = A.

3. Gebruik Stelling 4.2 om andere termen te schrappen: rangschik de termen naar stijgendelengte.

(a) Neem de eerste factor uit de eerste term, en zoek een term die het complement van dezefactor bevat; noem deze termen vadertermen. Vorm het optioneel product, en ga naof dit optioneel product niet vervat is in een andere term.

Zo ja:

• indien het niet gaat over een der twee vadertermen, schrap dan deze term.• indien het gaat over een der vadertermen, vervang dan de vaderterm door het

optioneel product.

Zo neen:

• ga over naar de volgende variabele en, eventueel naar de volgende term, tot wan-neer geen combinaties meer mogelijk zijn.

(b) Genereer alle hogere-orde optionele producten. Ga na of met een optioneel product eneen bestaande term geen nieuw (hoger-orde) optioneel product kan gemaakt worden;gebruik deze hogere-orde optionele producten als voorheen.

Voorbeeld 4.1 Reductie met de methode van Zissos.Reduceer de vorm

U = A + A′C + B + D(B′C ′ + A′C ′).

1. Uitwerken van de haakjes, sorteren, redundante termen en factoren schrappen:

U = A + A′C + B + DB′C ′ + DA′C ′

= A + B + A′C + A′C ′D + B′C ′D

2. Eerste-orde optionele producten:

U = A + A′C︸ ︷︷ ︸C≥A′C

+B + A′C ′D + B′C ′D

= C + B + A + A′C ′D︸ ︷︷ ︸C′D≥AC′D,B′C′D

+B′C ′D

= C ′D + C︸ ︷︷ ︸D≥C′D

+A + B

= D + C + A + B

Reduceer de vormU = AB + A′C + B′D + C ′D

Er zijn geen eerste-orde optionele producten bruikbaar; probeer hogere-orde producten.

U = AB + A′C︸ ︷︷ ︸BC

+B′D

︸ ︷︷ ︸CD

+C ′D

︸ ︷︷ ︸D≥B′D,C′D

U = D + AB + A′C

89

Page 94: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Vormen die gereduceerd werden door Algoritme 4.1 zijn niet-redundant, maar nietnoodzakelijk minimaal. Zo is bv. de vorm

P = A′BC ′ + A′BD + ACD + AB′D + AC ′D′

niet-redundant, maar de vorm

P ∗ = A′BC ′ + BCD + AB′D + AC ′D′

is hiermee equivalent en heeft minder termen (ga dit na, bijvoorbeeld met behulp vaneen Karnaughkaart). Het volgend algoritme minimaliseert niet-redundante vormen.

Algoritme 4.2 (Algebraısche minimalisatie [Zissos72])

1. Vorm een optioneel product R. Indien dit niet mogelijk is, is de vorm reeds minimaal.

2. Vorm optionele producten tussen R en termen die geen vadertermen van R zijn. Indiendeze optionele producten beide ouders van R omvatten dan vervangen we beide ouders doorR.

3. Herhaal stappen (1) en (2), maar vorm geen nieuwe optionele producten met vorige termenR.

Indien maar een van beide ouders van R voorkomt in stap (2) dan mag men deze oudervervangen door R. Men zal geen besparingen doen in de resulterende vorm, maar er kaneen minimalisering mogelijk worden in een later stadium. Noteer dat dit uitstel aanlei-ding kan geven tot een zeer sterke toename van het aantal te onderzoeken mogelijkheden!

Voorbeeld 4.2 Minimalisatie met de methode van Zissos. Minimaliseer de vorm

U = A′BC ′ + A′BD + ACD + AB′D + AC ′D′

U = A′BC ′ + A′BD + ACD︸ ︷︷ ︸BCD

+AB′D + AC ′D′

Secundaire optionele producten

A′BC ′ + BCD → A′BD

AB′D + BCD → ACD

beide vadertermen van BCD

Minimale vorm:U = A′BC ′ + BCD + AB′D + AC ′D′

Zissos levert echter geen bewijs van de optimaliteit van bovenstaande algoritmen.

90

Page 95: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4.1.2 Implicantenmethoden

De mintermrepresentatie van een functie is meestal geen minimale som: men kan eenfunctie gewoonlijk voorstellen door een som van minder termen, die bovendien minderfactoren bevatten.

Een minterm(functie), en in het algemeen een product van lettervormen, stelt een deel-kubus voor van de binaire n-kubus 0, 1n. Het aantal hoekpunten van een deelkubus is2n−j , waar j het aantal lettervormen in het corresponderend product is. Een minimalisatievan de vorm moet leiden tot het vinden van een minimaal aantal deelkubussen, die elk maximalegrootte hebben en waarvan de som de originele functie realiseert. De hieronder beschreven me-thoden werden hiervoor ontwikkeld; laat ons hiertoe eerst de noodzakelijke terminologiedefinieren.

Definitie 4.1 Een implicant van een functie f is een Boolese functie, voorgesteld door een pro-duct van lettervormen, die f impliceert:

Xj1i1· · ·Xjk

ik≤ f.

Definitie 4.2 Een priemimplicant van een functie f is een implicant van f die geen andereimplicanten van f impliceert.

Implicanten zijn deelkubussen, en de priemimplicanten vormen de grootste kubussen dievervat zijn in de functie. Als in een som-van-productenvorm uit een term geen enkelefactor (lettervorm) kan geschrapt worden zonder de equivalentie met de oorspronkelijkevorm te verbreken, dan is deze term een priemimplicant.

Definitie 4.3 De complete som van een functie f is de som van alle priemimplicanten van f .

De complete som realiseert dus de functie met het grootst mogelijk aantal termen vanmaximale grootte. Het aantal termen kan gevoelig groter zijn dan het aantal mintermenvan de functie!

Definitie 4.4 Een niet-redundante som van een functie is een som van priemimplicanten vanf die equivalent is met f en waarin geen enkele term mag weggelaten worden zonder deze equi-valentie te verbreken.

Noteer dat zowel de complete som als een niet-redundante som equivalent zijn met de oor-spronkelijke functie, maar dat geen van beide minimaal hoeft te zijn (net zoals de vor-men die geproduceerd worden door Algoritme 4.1). Het komt er op aan uit alle niet-redundante sommen een minimale te kiezen. Om het aantal te onderzoeken niet-redun-dante sommen te beperken kunnen wij ons de vraag stellen of er niet een aantal priem-implicanten zijn die in alle niet-redundante vormen van f moeten voorkomen.

Het is intuıtief duidelijk dat elke priemimplicant die als enige term in een niet-redun-dante som een knooppunt van de n-kubus bevat, moet aanwezig zijn in elke niet-redun-dante som en dus ook in een minimale som. De volgende definities formaliseren dezesituatie.

Definitie 4.5 Een afgezonderde cel van een functie f is een punt (x1, . . . , xn) ∈ 0, 1n datdeel uitmaakt van slechts een priemimplicant van f . Deze priemimplicant noemt men dan eenessentiele priemimplicant.

Stelling 4.3 Elke niet-redundante som en elke minimale som van f bevatten alle essentiele priem-implicanten van f .

91

Page 96: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bewijs. (wordt gelaten als oefening voor de lezer).

Voor het vinden van een minimale som volstaat het dus (i) alle priemimplicanten te zoe-ken, en daarin de essentiele priemimplicanten te identificeren, (ii) in alle niet-redundantesommen, de minimale sommen van de niet-essentiele priemimplicanten te zoeken.

Tot hiertoe hebben wij verondersteld dat een functie volledig gespecificeerd is. Meestalis dit niet zo, en specificeert men de functie slechts op een strikte deelverzameling S ⊂0, 1n. De redenen hiervoor zijn legio, en kunnen bijvoorbeeld te maken hebben metinputcombinaties die wegens de aard van de toepassing nooit kunnen optreden. Wijmoeten dan enkel een partiele functie realiseren. De waarden van f op de punten in SC =0, 1n − S zijn dan irrelevant (Eng. don’t care, d.c.). Elk stel kubussen van maximalegrootte dat alle punten bedekt waar f = 1, en geen enkel punt waar f = 0 , is eenrealisatie van de functie. Hiervan kan men gebruik maken bij de constructie van depriemimplicanten: een geschikte keuze van de functiewaarden op de d.c.-punten maakthet mogelijk de priemimplicanten van maximale grootte te maken.

Wij zullen nu de twee stappen in het bepalen van een minimale som, d.i. het vin-den van de complete som, gevolgd door het bepalen van een minimale subset, in detailonderzoeken. Wij beginnen met enkelvoudige functies.

Het bepalen van de complete som

Voor functies van een klein aantal variabelen kan men gebruik maken van de grafischekarnaughkaartrepresentatie van de functie (fig. 4.1). Men brengt de functie f in kaart, enbepaalt op zicht de grootste subkubussen bevat in f (priemimplicanten). De subkubussendie als enige een cel van de kaart bedekken zijn de essentiele priemimplicanten. Noteerdat voor 5-variabele functies, sommige kubussen bestaan uit twee identieke subkubussenin elke deelkaart (kubus W ′XZ ′ in fig. 4.1).

Don’t care termen mogen (maar moeten niet) in rekening gebracht worden bij het be-palen van de priemimplicanten. De kaartmethode is prima voor handminimalisatie vaneenvoudige functies. Wanneer het gaat over functies van 6 of meer variabelen is de kaart-methode waardeloos. Men gebruikt dan Quine en McCluskey’s algoritmische tabelmetho-de.2 Deze methode gaat als volgt (fig. 4.2).

Algoritme 4.3 ( Het vinden van de complete som [McCluskey65]) Men vertrekt van demintermexpansie van de functie. Het nummer van elke gebruikte mintermfunctie (0-kubus) wordtbinair voorgesteld in n bits, en in een eerste tabel geschreven.

1. Orden de mintermnummers volgens stijgend aantal eentjes (gewicht) in een aantal klassenin een eerste tabel. Neem de eerste minterm uit de eerste en de tweede klasse.

2. Onderzoek dit paar mintermen.

(a) Wanneer de Hamming-afstand tussen de beschouwde mintermen groter is dan 1 ganaar stap 3.

2Ook dit is een oude methode, die echter een mijlpaal was in het domein van logisch ontwerp. Intussenzijn er tal van meer verfijnde en veel efficienter algoritmen uitgedacht, waarvan wij er enkele wat naderzullen bekijken verderop.

92

Page 97: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

W

1

1 1 Z

Y 1 1

1 1 1 1

X

W

1 1

Z

Y

1

X

V = 0 V = 1

f(v, w, x, y, z) =∑

(1, 2, 3, 4, 5, 6, 7, 10, 14, 20, 22, 28)complete som f = V ′W ′Z + V ′W ′Y + V ′Y Z ′ + V ′W ′X + W ′XZ ′ + V XY ′Z ′

e.p.i. = V ′W ′Z, V ′Y Z ′,W ′XZ ′, V XY ′Z ′

Figuur 4.1: De kaartmethode voor het vinden van de complete som.

(b) Wanneer de Hamming-afstand precies gelijk is aan 1, vorm dan de 1-kubus die beidemintermen bevat. De 1-kubus wordt ternair voorgesteld. Hij bestaat uit de voorstel-ling van de eerste minterm, maar met een− op de plaats van het Hamming-1 verschil.Schrijf deze 1-kubus in de tweede tabel, en merk beide gebruikte 0-kubussen aan.

3. Selecteer het volgend paar uit de huidige klassen; wanneer de huidige klassen afgewerktzijn, maar nog niet de hele tabel, schuif een klasse op en neem weer de eerste kubus uit beideklassen; ga naar stap 2.

4. Wanneer alle klassen uit de eerste tabel afgewerkt zijn, verzamel alle niet-gemerkte kubus-sen: dit zijn reeds een aantal priemimplicanten.

5. Neem de nieuwe tabel als huidige tabel, schrap alle dubbels en herbegin bij stap 1. Gebruikhierbij de volgende interpretatie van Hamming-afstand: de afstand van een−met een 1 of 0is groter dan 1. Enkel kubussen met symbool− op dezelfde plaats en Hamming-afstand1 over de symbolen in 0, 1 mogen worden gecombineerd.

6. Verzamel steeds de niet-gemerkte kubussen, en blijf stappen 1 – 6 herhalen tot wanneer geennieuwe tabel meer gevormd kan worden.

Ook hier kan men rekening houden met de don’t care-termen: men voert ze gewoonin tabel 1 in. Niet-gemerkte don’t care-termen moeten echter niet langer beschouwdworden.

Het bepalen van een minimale som

Eens wij de complete som hebben gevonden moeten wij hieruit een minimale subset vantermen selecteren die nog steeds de gewenste functie realiseert.

93

Page 98: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

V W X Y Z V W X Y Z V W X Y Z

0 0 0 0 1 * 0 0 0 – 1 * 0 0 – – 1 B0 0 0 1 0 * 0 0 – 0 1 * 0 0 – 1 – C0 0 1 0 0 * 0 0 0 1 – * 0 – – 1 0 D

0 0 – 1 0 * 0 0 1 – – E0 0 0 1 1 * 0 – 0 1 0 * – 0 1 – 0 F0 0 1 0 1 * 0 0 1 0 – *0 0 1 1 0 * 0 0 1 – 0 *0 1 0 1 0 * – 0 1 0 0 *1 0 1 0 0 *

0 0 – 1 1 *0 0 1 1 1 * 0 0 1 – 1 *0 1 1 1 0 * 0 0 1 1 – *1 0 1 1 0 * 0 – 1 1 0 *1 1 1 0 0 * – 0 1 1 0 *

0 1 – 1 0 *1 0 1 – 0 *1 – 1 0 0 A

f(v, w, x, y, z) =∑

(1, 2, 4, 3, 5, 6, 10, 20, 7, 14, 22, 28)

Priemimplicanten:

A = V XY ′Z ′

B = V ′W ′Z

C = V ′W ′Y

D = V ′Y Z ′

E = V ′W ′X

F = W ′XZ ′

Figuur 4.2: De tabelmethode voor het vinden van de complete som

94

Page 99: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In het geval van de kaartmethode kennen wij reeds de essentiele priemimplicanten.Voor de cellen die nog niet bedekt zijn door e.p.i.’s zoeken wij een minimale verzame-ling uit de resterende p.i.’s. Gewoonlijk zijn er niet veel alternatieven, en kan men dooreenvoudig nazicht een minimale oplossing vinden. Voor de tabelmethode echter, liggen dezaken anders: de functies kunnen veel complexer zijn, en de essentiele priemimplicantenzijn nog niet gekend. Men kan dan het volgende algoritme gebruiken:

Algoritme 4.4 [Bepalen van een minimale som met de tabelmethode]Maak een matrix waarvan de kolommen overeenkomen met de mintermen van de functie

(geen don’t care termen), en de rijen met de reeds gevonden p.i.’s. (fig. 4.3). Zet een merktekenop elke combinatie van minterm en p.i. waarvan de p.i. de minterm bevat.

1. Zoek alle kolommen waarin slechts een merkteken voorkomt. Dat merkteken identificeert dee.p.i.’s. Schrap de corresponderende rijen, alsook alle termen (kolommen) die bevat zijn inde e.p.i.’s.

2. Indien er nog kolommen overblijven, beschouw dan de resterende rijen. Schrap alle dubbelerijen die mochten ontstaan zijn door het schrappen van kolommen, alsook alle rijen dievolledig bevat zijn in andere rijen. Schrap echter geen grotere priemimplicant tenvoordele van een kleinere die hem volledig bedekt! Schrap ook alle dominerendekolommen, dit zijn kolommen die minstens overal een teken hebben waar een andere kolomer een heeft. Dit mag omdat de dominerende kolom (minterm) hoe dan ook geıncludeerdwordt wanneer de gedomineerde kolom dit wordt.

3. Na deze schrapoperatie kan het zijn dat er opnieuw kolommen ontstaan met slechts eenmerkteken (secundaire e.p.i.’s). Zo ja, ga weer naar stap (1). Zo neen, ga naar stap (4).

4. Resteren er dan nog kolommen en rijen, dan is de tabel cyclisch. Kies arbitrair een rij,schrap ze en ga naar (1). Werk de oplossing volledig uit. Herbegin dan met de rij welgeıncludeerd in de som (dit wil zeggen, includeer de rij en schrap alle mintermen die zebedekt). Kies uit beide alternatieven deze met de minimale kost.

Een optimalisatie: Branch-and-Bound

Noteer dat, wanneer men op een bepaalde plaats een keuze moet maken in stap 4, hetmeestal zo is dat men ook verderop nog gelijkaardige keuzen moet maken. Per keuzegaat het aantal te onderzoeken mogelijkheden met een factor 2 omhoog, wat leidt tot eenexponentiele groei. Voor grote tabellen is er duidelijk nood aan veel effcienter methoden.

Een meer efficiente methode is de zg. branch-and-bound-optimalisatie van het zoek-proces. Deze optimalisatie houdt twee verbeteringen in:

• in stap 4 kiest men niet zomaar een arbitraire rij, maar men gebruikt een heuris-tiek om de ‘beste’ rij te kiezen. De ‘beste’ rij is er een die wellicht in een optimaleoplossing opgenomen zal worden. Een bruikbare heuristiek hiervoor is een rij tekiezen die veel eentjes heeft in kolommen waar andere rijen weinig eentjes hebben.(Noteer dat bij elke kolom er minstens twee eentjes moeten staan, anders was derij (secundair) essentieel.) Men berekent aldus voor elke rij de som van de recipro-que aantallen eentjes in die kolommen waar de rij een eentje heeft. De rij met hetgrootste resultaat is de beste rij;

95

Page 100: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Beschouw de functie

f(v, w, x, y, z) =∑

(1, 2, 5, 6, 7, 8, 9, 10, 13, 17, 18, 21, 22, 29)

met als p.i.

A = V ′X ′Y Z ′ B = V ′WX ′Y ′ C = V ′WX ′Z ′

D = V ′W ′XZ E = V ′W ′XY F = V ′Y ′Z

G = W ′Y ′Z H = W ′Y Z ′ I = XY ′Z

De eerste tabel levert als e.p.i.’s G, H, I :

1 2 5 6 7 8 9 10 13 17 18 21 22 29

A * *B * *C * *D * *E * *F * * * *

→ G * * * *→ H * * * *→ I * * * *

De tweede tabel heeft rijdominantie: C > A en E > D (gelijke kost). De secundairee.p.i.’s zijn E (of D) en C. Voor de realisatie van de resterende term 9 is F goedkoper

dan B.

7 8 9 10

A *B * *

→ C * *D *

→ E *F *

De minimale sommen zijn

f = G + H + I + (E of D) + C + F.

Figuur 4.3: Het vinden van een minimale som

96

Page 101: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

• alvorens men in stap 4 beide alternatieven induikt, probeert men na te gaan ofhet wel de moeite loont. Stel dat men al een oplossing gevonden heeft, en datmen nu op zoek is naar een betere oplossing. Wanneer echter in stap 4 blijkt datde som van de kost van de gedeeltelijke oplossing die men op dat punt heeft (dereeds geselecteerde priemimplicanten) en de minimale kost om de resterende tabelte realiseren, hoger ligt dan deze van de eerder gevonden oplossing, dan moet mendit alternatief natuurlijk niet onderzoeken.

Het komt er dus op aan een zo scherp mogelijke raming te hebben van de mini-male kost om een tabel te realiseren. Hachtel ([Hachtel96]) beschrijft hiervoor deheuristiek MIS (Maximal Independent Set). Deze heuristiek is gebaseerd op de maxi-male deelverzameling van kolommen in de tabel die niet-overlappende patronenvan eentjes hebben. Het is eenvoudig in te zien dat, als twee kolommen geen over-lapping hebben in de patronen van hun eentjes, er twee verschillende rijen nodigzijn voor hun realisatie. Indien men op zoek gaat naar de grootst mogelijke deel-verzameling van kolommen zonder overlapping, dan is dit een ondergrens op hetaantal rijen dat men nodig zal hebben. Als men dan uit elke groep de goedkoopsterij kiest, heeft men een ondergrens op de kost.

Beide technieken werden geımplementeerd in de Maple-suite van de syllabus. FiguurD.9 toont de hoofdprocedure van de minimalisatielus, uitgebreid naar meervoudige func-ties.

Naast de tabelmethode voor het vinden van een minimale som bestaat er ook een alge-braısche methode: de methode van de priemimplicantfuncties.

Algoritme 4.5 [Petrick’s algebraısche methode voor de minimale som.]

1. Men schrijft een uitdrukking P , die het product is van evenveel factoren als er minter-men zijn in de functie. Elke factor is de ’som’ van de priemimplicanten die deze mintermbevatten. Voor het voorbeeld in fig. 4.2 vinden wij

P = (B)(C + D)(B + C)(E + F )(B + E)(C + D + E + F )(B + C + E)·(D)(D)(A + F )(F )(A).

Men interpreteert P als een Boolese vorm. De vorm P is 1 wanneer alle factoren 1 zijn,d.w.z. wanneer elke minterm gedekt wordt door een minstens een p.i.

2. Wij kunnen deze uitdrukking als Boolese vorm uitwerken en vereenvoudigen: schrappenvan dubbele factoren en factoren die andere volledig bevatten (kolomdominantie):

P = (B)(F )(D)(A).

3. Wanneer er maar een term rest (zoals in het voorbeeld) dan is dit de minimale som. Inhet algemeen resteren er meerdere termen. Elke term stelt een niet-redundante som voor.Hieruit kunnen wij de minimale som vinden door exhaustief zoeken.

Noteer dat deze methode in principe goed geschikt is voor computermanipulatie. Hetprobleem is echter de combinatorische explosie van de lengte van de vorm tijdens de uit-werking. Enig soelaas wordt gebracht door het feit dat deze functie unaat is (zie verder).

97

Page 102: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Uitbreidingen naar meervoudige functies.

Tot nog toe hebben wij slechts enkelvoudige functies onderzocht: functies met een binaireuitgang. Vaak komt het echter voor dat wij meer dan een binaire functie van dezelf-de inputs samen moeten realiseren. Dan kan het zijn dat twee sommen een of meerproducttermen gemeenschappelijk hebben, wat uiteraard besparend werkt. Het is ech-ter ook mogelijk dat de optimale verzameling van producttermen voor alle m functiessamen niet bestaat uit de unie van de optimale sets van de functies, afzonderlijk geopti-maliseerd. Men kan de in secties 4.1.2 en 4.1.2 beschreven methoden uitbreiden tot hetvinden van een globaal optimum.

In het geval van de kaartmethode beschouwt men 2m−1 kaarten, die de functies afzon-derlijk, alle koppels, alle triplets, enz. voorstellen. De kaart van een verzameling functiesdraagt de mintermen en d.c. termen die in alle functies van de verzameling voorkomen.Men begint met de kaart die alle m functies samen beschrijft, en bepaalt de priemimpli-canten. In de andere kaarten behandelt men de mintermen die reeds eerder gerealiseerdwerden als d.c. termen. Men herhaalt deze stap voor de kaarten van lagere orde, tot allemintermen gerealiseerd zijn, steeds met gebruik van de don’t care termen om priemim-plicanten van maximale grootte te verkrijgen. Men selecteert dan de globaal minimaleverzamelingvan priemimplicanten voor het stel van m functies. Dit kan meestal op zicht,of met de tabelmethode die hieronder beschreven wordt.

Ook de tabelmethode kan worden uitgebreid om gezamenlijke minimalisaties te doen.Daartoe merkt men de rijen (implicanten) van elke tabel met de verzameling van functieswaartoe deze implicant behoort. Bij combinaties merkt men de nieuwe implicant metde doorsnede van de functieverzamelingen van de combinerende termen. Men merktslechts een implicant aan als gebruikt in een combinatie wanneer de nieuwe implicant dehele functieverzameling van de aan te merken implicant bevat. Een implicant is dus eenpriemimplicant voor een deelverzameling van functies indien deze deelverzameling nietals geheel werd gebruikt in een combinatie.

Een gezamenlijk minimale som kan dan met de volgende uitbreiding van algorit-me 4.4 gevonden worden. Men brengt de kolommen aan voor alle functies. Een gegevenminterm kan dus meer dan eens optreden. Men zet merktekens op de rijen van de priem-implicanten, maar slechts op de gerealiseerde termen van deze functies waarvoor dezeimplicant priem is. Men selecteert dan een minimale som door eerst de e.p.i.’s op tesporen. De termen gerealiseerd door een e.p.i. mogen slechts geschrapt worden in deze functieswaarvoor de priemimplicant essentieel is. Nadien gebruikt men de gewone regels van rij- enkolomdominantie, secundaire e.p.i.’s, enz. Noteer dat men, bij het bepalen van de kostvan het gebruik van een priemimplicant, men moet rekenen met de incrementele kost: in-dien deze implicant essentieel is voor een andere functie bestaat hij reeds, en kost zijngebruik in een andere functie louter een extra ingang aan de OF-poort van deze functie.Deze kost kan kleiner zijn dan het includeren van een nieuwe, maar grotere en dus meergeschikte priemimplicant.

Voorbeeld 4.3 Meervoudige minimalisatieBeschouw de functies

f1(x, y, z, w) =∑

(1, 3, 4, 5) + DC(0)f2(x, y, z, w) =

∑(4, 5, 7, 15).

98

Page 103: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Afzonderlijke minimalisatie leidt tot

f1 = X ′Z ′ + X ′Y ′W

f2 = X ′Y Z ′ + Y ZW

met een kost van 4 OF-inputs, 11 EN-inputs, en 4 EN-poorten. In fig. 4.4 wordt de gezamenlijkeminimalisatie getoond. De gezamenlijke priemimplicanten zijn

A = X ′Y ′W (f1)B = X ′Y Z ′ (f1, f2)C = X ′Y W (f2)D = Y WZ (f2)E = X ′Z ′ (f1) ,

met als minimale som

f1 = A + B = X ′Y ′W + X ′Y Z ′

f2 = B + D = X ′Y Z ′ + Y ZW.

De totale kost van deze realisatie is 4 OF-inputs, 9 EN-inputs en 3 EN-poorten. Deze kostis lager dan de kost van de afzonderlijke minimalisatie. De winst zit in het verschil tussen deincrementele kost voor f1 van B (essentieel voor f2), en de totale kost van E. De incrementelekost van B is een OF-input, terwijl de kost voor het gebruik van E neerkomt op een OF-input, eenEN-poort, en 3 EN-inputs.

4.1.3 Topologische methoden

De implicantenmethoden, zowel het vinden van de complete som, als het vinden vaneen minimale som, vereisen het expliciet neerschrijven van alle mintermen van de func-tie. Voor functies van een groot aantal variabelen (meer dan 20) kan dit leiden tot extreemgrote ruimte- en rekentijdeisen. De technieken hieronder beschreven (en andere verwan-te methoden) vertonen dit euvel niet. Een aantal minimalisatiealgoritmen zijn hieropgebaseerd, en laten de behandeling toe van functies tot 30 variabelen (MINI: [Hong74],ESPRESSO: [Brayton84]).

Deze methoden vertrekken van een kubuslijstrepresentatie van de functie, en makengebruik van een veel ruimere klasse van operaties dan de Hamming-1 fusie van kubussenkarakteristiek voor de Quine-McCluskey-methode. Laat ons derhalve eerst een aantalnuttige notaties vastleggen. De verzameling van alle (deel)kubussen van 0, 1n noterenwij C ; de verzameling van alle deelverzamelingen van C noteren wij C. Elke Boolesefunctie f kan worden gespecificeerd als de som van een aantal deelkubussen van de n-kubus Un = 0, 1n, die gezamenlijk precies alle mintermen van f bevatten. Wijnoemen een dergelijke klasse van deelkubussen ONf ∈ C. Op gelijkaardige wijze kunnenwij de klassen DCf ∈ C en OFFf ∈ C definieren, die respectievelijk de DON’T CAREtermen van f bevatten, en de punten (x1, . . . , xn) ∈ Un waarvoor f(x1, . . . , xn) = 0.

Bewerkingen op kubuslijsten

Bij de minimalisatie van Boolese functies moeten wij een aantal operaties kunnen uitvoe-ren op de representatie die op dat ogenblik beschikbaar is van de functie. Belangrijkeoperaties in dit verband zijn bijvoorbeeld de complementering (de berekening van een

99

Page 104: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bepaling van de gezamenlijke priemimplicanten

X Y Z W X Y Z W X Y Z W

0 0 0 0 f1 * 0 0 0 − f1 * 0 − 0 − f1 E0 − 0 0 f1 *

0 0 0 1 f1 *0 1 0 0 f1f2 * 0 0 − 1 f1 A

0 − 0 1 f1 *0 0 1 1 f1 * 0 1 0 − f1f2 B0 1 0 1 f1f2 *

0 1 − 1 f2 C0 1 1 1 f2 *

− 1 1 1 f2 D1 1 1 1 f2 *

Bepaling van de minimale sommen

f1 f2

1 3 4 5 4 5 7 15

→ A * *→ B * * * *

C * *→ D * *

E * * *

Figuur 4.4: Gezamenlijke minimalisatie van functies

100

Page 105: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

representatie van OFFf uitgaande van ONf en DCf ), en het nagaan van de bedekkingvan een kubus door een verzameling kubussen.

Net zoals wij in hoofdstuk 2 gezien hebben over het gebruik van BDD’s, zullen wijook hier de structuur van de manipulatie-algoritmen inspireren op de Shannonexpan-sie van de gemanipuleerde functie, maar ditmaal zullen wij deze expansie interpreterenin de context van kubusverzamelingen. Wij zullen ons hier beperken tot enkelvoudigefuncties.

Kubusoperaties en de Shannonexpansie

Wij hebben in hoofdstuk 2 al gezien hoe de binaire operatoren in Fn en functiesamenstel-ling recursief kunnen gedefinieerd worden op basis van de Shannonexpansie. Wij zullennu enkele bijkomende voorbeelden onder de loep nemen.

Het bepalen van de residufuncties of cofactoren in een kubuslijst. De opgave is, ge-geven een functie f(x1, . . . , xn), en een kubusrepresentatie ONf van deze functie, kubus-representaties te bepalen van de residufuncties fx′i

= f |xi=0 en fxi = f |xi=1. Eenvoudignazicht leert ons dat de representatie van fx′i

gevonden wordt door alle kubussen uit ONf

te nemen waarin op de i-de plaats een 0 of een− staat, en op die plaats een− te schrijven(toon dit aan).

Wanneer men de decompositie verder zet op basis van andere variabelen, zal mende cofactor van f t.o.v. een kubus c kunnen vinden als de residufunctie die bij c hoort inde expansie op de variabelen aanwezig in c. Men kan de kubusrepresentatie van dezecofactor onmiddellijk vinden door alle kubussen te nemen uit ONf die compatibel zijnmet c, in de zin dat geen enkele gekozen kubus een 1 bevat op een plaats waar c een 0bevat, en omgekeerd. Op die plaatsen waar c een 0 of 1 heeft, wordt in de geselecteerdekubussen een − geschreven.

Voorbeeld 4.4 Shannondecompositie op kubusnotatieNeem weer de (volledig bepaalde) functie

f(A,B,C, D) = AB + A′C + B′D + C ′D

uit voorbeeld 3.2. Haar kubusrepresentatie is als volgt:

f :

1 1 − −0 − 1 −− 0 − 1− − 0 1

Haar Shannonexpansie op A levert de volgende residufuncties

fA :

− 1 − −− 0 − 1− − 0 1

fA′ :

− − 1 −− 0 − 1− − 0 1

terwijl de cofactor van de kubus BC = −11− gegeven wordt door

fBC :

1 − − −0 − − −

101

Page 106: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Complementering De complementering laat zich recursief definieren door Shannon-decompositie als volgt:

f ′(x1, . . . , xn) = (x′1fx′1+ x1fx1)

= (x1 + f ′x′1)(x′1 + f ′x1

)

= x1f′x1

+ x′1f′x′1

+ f ′x1f ′x′1

= x1f′x1

+ x′1f′x′1

omdat de term f ′x1f ′x′1

het optioneel product is van de twee vorige termen. Dit vertaaltzich onmiddellijk naar kubusrepresentaties. De recursie stopt wanneer een kubus hoog-stens een symbool 0 of 1 bevat: de kubus stelt dan een lettervorm voor, die onmiddellijkgecomplementeerd kan worden. De vermenigvuldiging in bv. x1f

′x1

wordt uitgevoerddoor het symbool 1 te schrijven op plaats 1 in alle kubussen van f ′x1

, en de optelling +kan in het meest eenvoudige geval gerealiseerd worden door een unie. Het is echter be-ter na te gaan of er geen optimalisaties mogelijk zijn, zoals het verwijderen van dubbels,het verwijderen van kleinere deelkubussen ten voordele van de grotere, en het combi-neren van deelkubussen die op hamming-afstand 1 liggen. Deze optimalisaties mogenoverigens overal toegepast worden, ook in de berekening van de cofactoren.

Voorbeeld 4.5 Complementering via ShannondecompositieWij berekenen de representatie van het complement van de functie uit voorbeeld 4.4.

f ′ = A

− 1 − −− 0 − 1− − 0 1

+ A′

− − 1 −− 0 − 1− − 0 1

= AB− − − −

′+ AB′ − − − 1

′+A′B

− − 1 −− − 0 1

′+ A′B′

− − 1 −− − − 1

′= AB

− − − −

′+ AB′ − − − 1

′+A′BC

− − − −

′+ A′BC ′ − − − 1

′+A′B′C

− − − −

′+ A′B′C ′ − − − 1

′= AB′ − − − 0

+ A′BC ′ − − − 0

+A′B′C ′ − − − 0

= AB′ − − − 0

+A′B

− − 0 0

+ A′B′ − − 0 0

= A

− 0 − 0

+ A′

− 1 0 0− 0 0 0

= A

− 0 − 0

+ A′ − − 0 0

=

1 0 − 00 − 0 0

Tautologietest Zoals besproken in hoofdstuk 2, bedoelen wij met een tautologie defunctie 1, en de tautologietest wil uitmaken of een gegeven kubuslijst deze functie voor-stelt. Dit is een veel voorkomende operatie, en wel om de volgende reden. Dikwijls moet

102

Page 107: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

men de bedekking van een kubus c door een kubusverzameling C nagaan. Dit gebeurto.m. bij het opsporen van redundante kubussen in een kubuslijst. Men moet dus nagaanof fc ≤ fC . Opdat dit het geval zou zijn, moet

fC = fc + g

waarin g een willekeurige functie is. Hieruit volgt dat de cofactor van c in de Shannonex-pansie van fC , de functie 1 moet zijn, de tautologie dus. Bijgevolg zal men de gevraagdebedekking nagaan door een tautologietest op de berekende cofactor.

Zoals alle andere operaties die wij tegengekomen zijn, laat ook de tautologietest zichrecursief uitdrukken door middel van de Shannonexpansie. Immers, f is een tautologiea.s.a. fx1 en fx′1

beide tautologieen zijn (bewijs dit).

Unate functies

Diverse technieken bestaan om de basistest voor tautologie te versnellen. Een ervan isgesteund op het unaat zijn van de functie.

Definitie 4.6 Een functie is unaat in een variabele x, wanneer de functie monotoon is indezelfde zin in die variabele, voor alle mogelijk waarden van de andere variabelen.

Definitie 4.7 Een functie is unaat wanneer zij unaat is in al haar variabelen.

Unate functies hebben een aantal zeer interessante eigenschappen, die kunnen leidentot sterke versnellingen van diverse algoritmen.

Unaatheid kan men op een aantal manieren detecteren. Zo is het bijvoorbeeld vol-doende dat in een Boolese som-van-produktenvorm, een variabele alleen gecomplemen-teerd of niet-gecomplementeerd voorkomt. Als in een kubuslijst er geen kubussen voor-komen met op een gegeven plaats (variabele) zowel een 0 als een 1, dan is de voorgesteldefunctie unaat in die variabele. In de matrixvoorstelling betekent dit dat in de kolom dieovereenkomt met die variabele, enkel 1 of enkel 0 kan voorkomen, eventueel samen met−, maar niet 1 en 0 samen.

Weze f unaat in x1 (stijgend). De Shannonexpansie van f ziet er dan uit als volgt(bewijs dit uit de definitie):

f(x1, . . . , xn) = x1fx1 + fx′1

De complementering van unate functies kan hierdoor wat versneld worden. Het unaatzijn van een functie versnelt echter de tautologietest op kubuslijsten zeer sterk, en ditwegens de volgende stelling:

Stelling 4.4 Een unate kubuslijst stelt een tautologie voor a.s.a. een van de kubussen gelijk isaan − · · · −.

Bewijs. De aanwezigheid van de kubus − · · · − is zeker een voldoende voorwaardevoor tautologie. Laat ons dus de noodzaak bewijzen. Veronderstel het tegendeel. Danbezit elke kubus tenminste een 1 of 0. Aangezien de lijst unaat is, zal op deze plaatsenin de andere kubussen ofwel hetzelfde symbool optreden, ofwel −. Men kan dus devariabelen zo kiezen dat geen van de kubussen tot 1 evalueert. De hele functie evalueertdan tot 0, en is dus geen tautologie.

103

Page 108: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Het tautologisch zijn van een unate lijst kan dus zonder verdere recursiestappen vast-gesteld worden. Andere speciale gevallen zijn bv. wanneer in alle kubussen op dezelfdeplaats hetzelfde symbool 0 of 1 staat, dan is de functie zeker geen tautologie. Of nog, steldat wij de kubuslijst (als matrix) kunnen schrijven als

f :

A1 T . . . T

T A2 . . . T

. . .

T T . . . An

,

waarin T een matrix met allemaal −. De functie f is een tautologie a.s.a. minstens eenvan de Ai een tautologie is (bewijs als oefening).

De complete som uit een kubuslijst

Een van de nadelen van de Quine-McCluskeymethode is dat er gestart wordt vanuit delijst van mintermen, en dat, op de optimalisering door sortering na, geen reductie plaatsgrijpt in het aantal combinaties dat men moet uitvoeren. Het blijkt bv. dat eenzelfdeimplicant op meerdere manieren geproduceerd wordt, wat zeker niet erg efficient is. Wijzullen nu een methode uiteenzetten, ESPRESSO EXACT, die op een totaal andere manierde complete som zal bepalen, uitgaande van een kubuslijst.

In een eerste stap bepalen wij de OFF-set van de functie: men complementeert ON ∪DC, met behulp van het complementeringsalgoritme dat wij hierboven beschreven heb-ben.

Dan beschouwen wij de lijst van kubussen in OFF. Elke term uit de complete sommoet disjunct zijn met elk van deze kubussen. Daarvoor moet elke priemimplicant opminstens een plaats incompatibel zijn met elke kubus uit het complement. Wij drukkendeze voorwaarde uit als een Boolese vorm, op een manier die gelijkt op de algebraıschemethode voor het vinden van een minimale som.

Geef de variabele c0i de volgende betekenis: c0

i = 1 a.s.a. een 0 op plaats i in depriemimplicant deze disjunct maakt van een kubus uit het complement. De variabelenc1i krijgen een gelijkaardige definitie.

Kies nu een kubus c uit het complement, die bv. een 0 heeft op plaats i, en een 1op plaats k. Een product (kubus) is disjunct met c als hij op plaats i een 1 heeft, en/ofop plaats k een 0, dus als c1

i + c0k = 1. Een implicant van f moet disjunct zijn van alle

kubussen in het complement van f , en dus vinden wij een uitdrukking

P = (cik11k11

+ · · ·+ cikn1kn1

) · · · (cik1mk1m

+ · · ·+ ciknmknm

)

die een product is van evenveel factoren als er kubussen voorkomen in de lijst van hetcomplement. Wanneer P evalueert tot 1, zijn alle factoren gelijk aan 1, en zijn dus al-le kubussen disjunct van het complement. Wanneer wij de vorm voor P uitwerken envereenvoudigen, krijgen wij een som van producten. Elk product uit deze som stelt eenpriemimplicant voor. Noteer dat, bij de vereenvoudiging, wij moeten stellen dat c1

i c0i = 0.

(Een gegeven plaats kan niet zowel een 1 als een 0 bevatten.) Men zou hier kunnen op-werpen dat wij een minimalisatie vervangen door een andere, misschien met zelfs meervariabelen, en dat wij dus niets gewonnen hebben. Dit is echter niet correct: de winst zithem voornamelijk in het feit dat P een unate functie is (geen variabele komt gecomple-menteerd voor). Hiervan is de minimalisatie veel eenvoudiger (zie oefeningen).

104

Page 109: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Voorbeeld 4.6 De complete som met de kubusrepresentatieWij beschouwen weer de functie uit voorbeeld 4.5. Haar complement werd al afgeleid:

f ′ :

1 0 − 00 − 0 0

Hieruit halen wij onze uitdrukking P :

P = (c01 + c1

2 + c14)(c

11 + c1

3 + c14)

= c11c

12 + c1

1c14 + c0

1c13 + c1

2c13 + c1

2c14

+c01c

14 + c1

3c14 + c1

4

= c11c

12 + c0

1c13 + c1

2c13 + c1

4

Dit stelt de complete som van f voor:

f :

1 1 − −0 − 1 −− 1 1 −− − − 1

De kruisoperatie

Wij zullen nu een alternatieve methode bespreken om de complete som af te leiden uiteen kubuslijst, zonder via de mintermen om te gaan. Dit gebeurt door de definitie vantwee nieuwe operatoren op kubuslijsten.

De eerste operator is een soort van kubusverschil van deelkubussen a en b. Dit verschilis een stel deelkubussen dat alle mintermen in a bevat, maar niet deze in b. Het gelijkt ophet verschil tussen twee verzamelingen, maar verschilt ervan in de concrete representatie.Immers, een deelkubus waaruit door een andere deelkubus een stuk werd weggesnedenis niet noodzakelijk nog een kubus; het verschil kan echter wel bedekt worden met eenaantal deelkubussen. De bedoeling is deze bedekking te doen met zo groot mogelijkekubussen. De kruisoperatie3 ] formaliseert de aftrekking van deelkubussen, en wordtdoor de volgende definities vastgelegd. Weze a = (a1a2 . . . an) en b = (b1b2 . . . bn) tweedeelkubussen in ternaire voorstelling (ai, bi ∈ 0, 1,−).

Definitie 4.8 De kruisoperatie ai]bi op de coordinaten van een deelkubus is een functie

] : 0, 1,−2 → 0, 1,−, ∅

gedefinieerd door de operatietabel

ai

] 0 1 −0 0 ∅ 1

bi 1 ∅ 1 0− 0 1 −

3Engels: sharp.

105

Page 110: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie 4.9 De kruisoperatie a]b tussen twee deelkubussen a, b ∈ C is een functie

] : C2 → C ,

gedefinieerd als volgt:

a]b =

a, indien ai]bi = ∅ voor minstens een waarde van i,, indien ai]bi = ai voor alle i,a1, . . . , ai−1, ai]bi, ai+1, . . . , an : ai]bi 6= ai, anders.

Definitie 4.9 zegt dan het volgende: a]b = a indien a en b disjunct zijn (minstens eenvan de coordinaten is incompatibel) ; a]b is ledig indien a ≤ b, wat enkel kan indienai ≤ bi ∀i. In alle andere gevallen is a]b een collectie van deelkubussen, een voor elkecoordinaat waar ai = − en bi 6= −, waarin ai dan vervangen wordt door b′i.

Wanneer men de betekenis van de kruisoperatie nagaat in een Karnaughkaart, danziet men dat een kubusbedekking van het verschil gegenereerd wordt met blokken vanmaximale grootte.

Voorbeeld. Drie voorbeelden illustreren de bovenstaande definities.

ai 0 1 −] bi − 1 1

ai]bi 0 1 0

ai − 0 −] bi 1 − 0

ai]bi 0 0 1

ai − − −] bi 1 1 0

ai]bi 0 0 1

↓ ↓ ↓

a]b = 010 a]b =

00−−01

a]b =

0−−−0−−− 1

Een tweede binaire operatie op C is de kubus-unie A ∨ B van twee verzamelingen A,B

deelkubussen. Deze operatie genereert een stel deelkubussen van maximale grootte (cfr.priemimplicanten) die alle mintermen in A en B bedekken.

Definitie 4.10 De kubus-unie ∨ is een functie

∨ : C2 → C ,

zodat A∨B een stel deelkubussen van maximale grootte bevat die precies de mintermen in A∪B

bedekken.

De effectieve berekening van ∨ kan gebeuren met de combinatieregels uit het Quine-McCluskey algoritme. Bijvoorbeeld, men zal nagaan of er geen kubussen zijn die volledigbevat liggen in andere kubussen, en of er geen Hamming-1 fusies mogelijk zijn tussenkubussen. Gewapend met deze definitie kunnen wij ] nu uitbreiden tot verzamelingenvan deelkubussen (C). Weze A = a1, a2, . . . , am en B = b1, b2, . . . , bn ; ai, bi ∈ C.

106

Page 111: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie 4.11 De uitbreiding van ] tot C is als volgt:

A]b = (a1]b) ∨ (a2]b) ∨ (a3]b) ∨ · · ·a]B = (((a]b1)]b2)]b3)] · · ·

A]B = (a1]B) ∨ (a2]B) ∨ · · ·

Laat ons nu de minimalisatie van een Boolese functie f met deze methode aanvangen.De volgende relaties zijn waar:

Un = ONf ∪OFFf ∪DCf = − −− · · ·−ONf = Un − (OFFf ∪DCf )

OFFf = Un − (ONf ∪DCf )DCf = Un − (ONf ∪OFFf )

Hier nemen wij de gewone setoperaties ∪ en −, en beschouwen wij de betrokken verza-melingen als mintermverzamelingen. Men kan nu door de operaties ] en ∨ te gebruikenhetzelfde stel mintermen berekenen, maar met een veel compactere bedekking.

Voorbeeld. Beschouw de functie f(x, y, z) = X ′Y + Y Z. Een representatie van ONf

volgt onmiddellijk uit een SVP-representatie van f .

ONf =

01−−11

Daar er geen don’t care termen zijn, vinden wij een compacte representatie van OFFf alsvolgt:

OFFf = − −−]

01−−11

= (− −−]01−)]−11

=

1−−−0−

]−11

= (1−−]−11) ∨ (−0−]−11)

=

10−1− 0

∨ −0− =

−0−1− 0

.

De laatste gelijkheid volgt omdat 10− ≤ −0−. Zoals reeds gezegd heeft de berekeningvan de ]-operatie een compacterende invloed: in de uitdrukking a]B moet B niet nood-zakelijk een minimale som, noch een priemimplicantensom zijn. Het verschil a]B zalechter wel bestaan uit maximale deelkubussen. Dit leidt tot de volgende stelling.

Stelling 4.5 De priemimplicanten van een functie f worden gegeven door

PIf = Un](Un](ONf ∨DCf )).

Bewijs. Het bewijs wordt gegeven in [Dietmeyer71].

Merk op dat in de uitdrukking voor PIf nergens gebruik gemaakt wordt van de verzame-lingvan mintermen van f . De verzamelingen ONf en DCf kunnen willekeurige stellendeelkubussen zijn (d.i. niet noodzakelijk priem of minimaal).

107

Page 112: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Uit de verzameling PIf moeten wij nog een minimale som afleiden. Men kan hiervoornatuurlijk de methoden uit sectie 3.2 gebruiken, maar deze gebruiken de verzameling-van mintermen van f , en bieden dus eigenlijk geen oplossing. Wij kunnen echter ookrechtstreeks werken met PIf . Noteer daartoe PIf = p1, p2, . . . , pn, en noteer de lijst vande priemimplicanten waaruit een implicant c verwijderd werd als PIf \ c.

Lemma 4.1 pi is een essentiele p.i. als en slechts als

Ai = (pi](PIf \ pi))]DCf 6= ∅.

Bewijs. Ai bevat alle termen die wel door pi, maar niet door de overige priemimplican-ten van f worden bedekt, en die ook geen don’t care termen zijn; pi is essentieel indiener zulke termen bestaan.

Noteer dat dit een variant is op de bedekking van een kubus door een kubuslijst, en dusvoor een tautologietest.

Zoals men weet, bevat elke minimale som minstens alle essentiele priemimplican-ten (stelling 4.3). Een niet-redundante som is niet noodzakelijk minimaal, maar verschiltmeestal maar weinig van de optimale oplossing. Het volgende algoritme maakt het mo-gelijk niet-redundante sommen te genereren vanuit PIf , zonder de lijst van mintermen temoeten genereren.

Algoritme 4.6 (Bepalen van een niet-redundante som)

1. Bereken de verzameling PIf zoals aangegeven in stelling 4.5;

2. Voor elke pi

(a) Bereken Ai = (pi](PIf \ pi))]DCf

(b) Indien Ai = ∅, zet PIf ← PIf \ pi ;

Dit algoritme zal dus geen enkele e.p.i. weglaten, maar wel een aantal redundante p.i.’s.De resulterende PIf is niet-redundant, en wijkt meestal weinig af van een minimale som.De resultaten kunnen echter wel sterk afhangen van de volgorde waarin men de PIfdoorloopt. Bovenstaand algoritme kan uitgebreid worden tot meervoudige functies.

Een verbeterde methode voor het vinden van een minimale som

De tabelmethode voor het bepalen van een minimale som, zoals wij ze gezien hebben inparagraaf 4.1.2, vereist dat wij een tabel opzetten met evenveel kolommen als er minter-men zijn, en evenveel rijen als priemimplicanten zijn. Elk van deze lijsten kan zeer langworden 2n resp. 3n/n elementen); de tabel zelf is nog veel groter. Men heeft dus behoef-te aan een methode die ons in staat stelt de ruimte-eisen van deze methode gevoelig teverlagen, zonder dat dit ons leidt tot sub-optimale resultaten zoals in paragraaf 4.1.3.

Men kan vooreerst de complete som opsplitsen in drie deelverzamelingen: de essen-tiele priemimplicanten, de partieel redundante priemimplicanten, en de totaal redundante

108

Page 113: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

priemimplicanten. De eerste klasse hebben wij al verschillende keren ontmoet, en kun-nen wij detecteren met de methode uit paragraaf 4.1.3, of nog door de test

c ≤ (PIf \ c) ∪DCf

die nagaat of een priemimplicant c bedekt wordt door (PIf \c)∪DCf . Deze test herleidtzich tot een tautologietest van de cofactor van c in (PIf \c)∪DCf . Wanneer dit het gevalis, wordt elke minterm van c ofwel gerealiseerd door minstens een van de andere p.i.’sin PIf \ c, ofwel door DCf , en kan c dus niet essentieel zijn; in het andere geval is c

essentieel. Wij zullen de e.p.i.’s voorstellen door de kubuslijst EPIf .De totaal redundante p.i.’s TRIf bevatten enkel mintermen die ofwel reeds bedekt

worden door EPIf , ofwel door DCf . Deze termen hoeft men dus niet (nogmaals) te reali-seren. Een p.i. c is totaal redundant als hij niet behoort tot EPIf en als

c ≤ EPIf ∪DCf .

Noteer dat een priemimplicant die als enige een dont’t care-term bedekt, en voorts enkeldon’t care-termen, niet zal geselecteerd worden als essentieel, maar wel als totaal redun-dant (ga dit na). Ook deze test kan men uitvoeren als een tautologietest.

De partieel redundante p.i.’s PRIf zijn de overblijvende p.i.’s. Het is uit deze verza-meling dat wij een deelverzameling met minimale kost willen identificeren, die samenmet EPIf de functie realiseert.

Wij zullen dit doen door een tabel op te stellen die goed lijkt op de secundaire tabelin figuur 4.3, maar waarin de resterende mintermen in principe zelfs gegroepeerd kunnenvoorkomen. Een dergelijke tabel is kleiner dan de originele tabel, en vereist niet dat wijalle mintermen enumereren.

De methode gaat als volgt. Weze c ∈ PRIf . Dan weten wij dat

c ≤ EPIf ∪ (PRIf \ c) ∪ TRIf ,

immers, ware dit niet zo dan zou c essentieel geweest zijn. De recursieve tautologietestdie de bovenstaande bedekking nagaat moet dus succesvol aflopen. Nu kan men in dezetest nagaan welke voorwaarden moeten voldaan zijn opdat c gerealiseerd zou worden,d.w.z. opdat alle mintermen van c aanwezig zouden zijn.

Dit kan op de eerste plaats uiteraard door c zelf te includeren, maar het kan ook dooreen aantal andere PI’s op te nemen. Men vindt deze door te kijken naar welke termenaanwezig zijn in de cofactor van c in de bovenstaande bedekkingstest. Uit deze termen,die samen de tautologie moeten vormen, kan men afleiden welke mintermen of verza-melingen van mintermen moeten gerealiseerd worden opdat alle termen van c bedektzouden worden. Men loopt alle elementen van PRIf af, en verzamelt alle verschillendedergelijke voorwaarden. Deze voorwaarden (te realiseren mintermen of kubussen vanmintermen) vormen dan de kolommen van een nieuwe, compactere bedekkingstabel.Wij illustreren dit onmiddellijk met de functie uit figuur 4.3. Wij vinden (volgorde vande variabelen vwxyz):

EPIf =

− 0 − 0 1 (G)− 0 − 1 0 (H)− − 1 0 1 (I)

PRIf =

0 − 0 1 0 (A)0 1 0 0 − (B)0 1 0 − 0 (C)0 0 1 − 1 (D)0 0 1 1 − (E)0 − − 0 1 (F )

109

Page 114: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In dit particulier voorbeeld is TRIf leeg. Wanneer wij nu de bedekking nagaan van termA, bijvoorbeeld, dan bepalen wij eerst de cofactor fA van A in EPIf ∪ (PRIf \ c):

fA =

− 0 − − − (H)− 1 − − − (C)

= w′

− − − − − (H)

+ w

− − − − − (C)

Wij zien dus inderdaad dat fA een tautologie is. Daarvoor volstaat het dat de mintermenA · w′ = 00010 en A · w = 01010 aanwezig zijn, en dit is het geval wanneer ofwelA zelf, ofwel H en C aanwezig zijn in de som. Nu weten wij dat H essentieel is, en dussteeds aanwezig moet zijn; de enige overblijvende voorwaarde is dus dat ofwel A zelf,ofwel C aanwezig is om de minterm A · w = 01010 te bedekken. Men brengt dezeminterm aan in de eerste kolom van een matrix, waarin de rijen gevormd worden doorde elementen van PRIf , A t.e.m. F , en men stipt in die kolom de rijen aan die deze kolomrealiseren.

Men gaat dan verder men de volgende elementen van PRIf . Wij vinden

fB =

− − − − 0 (C)− − − − 1 (F )

= z′

− − − − − (C)

+ z

− − − − − (F )

Dit levert een voorwaarde op voor de realisatie van mintermen Bz′ = 01000 en Bz =01001, wat kan door ofwel B ofwel C en F te includeren. Men creeert een kolom voorBz′ = 01000, en stipt hierin B en C aan, en een kolom voor Bz = 01001, en stipthierin B en F aan.Voor C krijgen we:

fC =

− − − 1 − (A)− − − 0 − (B)

= y

− − − − − (A)

+ y′

− − − − − (B)

De voorwaarden voor de realisatie van zowel A als B werden reeds geıncludeerd in detabel; wij krijgen dus geen bijkomende voorwaarden.

Wanneer men op deze manier alle elementen van PRIf onderzoekt, krijgt men de ge-reduceerde tabel van figuur 4.3 terug. Hier zijn toevallig alle kolommen nog individuelemintermen; in het algemeen geval krijgt men hier echter deelkubussen van p.i’s, wat detabel verder compacteert. Steeds blijft de opdracht alle kolommen te realiseren door eenoptimale keuze van de rijen.

4.1.4 Heuristische Minimalisatie: ESPRESSO

Er zijn in de loop van de recente 20 jaar een aantal heuristische technieken ontwikkeld diede behandeling van functies met veel meer variabelen mogelijk maken: functies van tothonderden variabelen, en met tot 20 000 mintermen. Deze algoritmen garanderen uiter-aard geen optimale oplossing meer, maar zij produceren resultaten die heel vaak weinigafwijken van het optimum.

Een van de bekendste heuristische algoritmen is ESPRESSO [Brayton84] dat wij nu inwat meer detail gaan analyseren. Wij zullen enkel de concepten bespreken die aan de

110

Page 115: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

basis liggen van het ESPRESSO-algoritme, en niet ingaan op details van de implementa-tie, noch op verfijningen van het algoritme. De gedetailleerde beschrijving van ESPRES-SO neemt ongeveer 150 pagina’s in beslag, en valt dus duidelijk buiten het bestek vandeze cursus. Lezers die het algoritme in meer detail wensen te bestuderen dan beschre-ven in deze cursus worden met aandrang verwezen naar het boek van Brayton et al.[Brayton84].

ESPRESSO omzeilt de moeilijkheden die optimale algoritmen zoals dat van Quine-McCluskey kenmerken: de noodzaak om de functies op te geven onder mintermgedaan-te, en het feit dat men via de complete som om moet. Het aantal mintermen van zelfs eentriviale functie kan oplopen tot 2n, en zoals gezegd, kan de complete som een kardinali-teit hebben tot 3n/n.

Het algoritme verloopt iteratief, en bestaat uit een zevental stappen die wij nu bespre-ken.

Stap 1. Opgave van de functies

Men begint met een opgave van de te minimaliseren functie(s) onder de vorm van ternairgenoteerde kubuslijsten. Men beschrijft afzonderlijk de ON-set S en de DON’T CARE-setD. Wij illustreren de functierepresentatie met twee voorbeelden.

Het eerste voorbeeld is een enkelvoudige functie. Men geeft de ON-set en de DC-setop door middel van ternair genoteerde kubussen.

Voorbeeld 4.7 [Enkelvoudige functie] Een enkele functie f(x, y, z, w) van 4 variabelen kan ge-representeerd worden als

Sf =

00− 00− 0101− 110−−0110

(4.1)

Df =

11− 1

(4.2)

Het tweede voorbeeld is meer realistisch en gaat over meervoudige functies. De ter-naire specificatie bestaat weer uit de ON- en DC-sets, maar deze keer bevatten de repre-sentaties ook een outputgedeelte: de opgave van de verzameling functies waartoe een ge-geven kubus behoort. Beschouw als voorbeeld de representatie van de toestands- en out-putfuncties van de subroutinemachine uit figuur 7.16. Alvorens wij de Boolese functieskunnen neerschrijven moeten wij eerst de inputs, toestand en outputs binair encoderen.

Voorbeeld 4.8 [Meervoudige functies] Er zijn twee inputs I en e, die aangeven of de hoofd-machine zich in toestand I resp. e bevindt. Er zijn 5 toestanden, die gerepresenteerd kunnenworden door middel van drie bits x, y, z. De hoofdmachine moet eenvoudig kunnen observerenof de subroutinemachine zich in toestand 3 bevindt; wij nemen daarom de toestandsassignatieals l = (000), 0 = (001), 1 = (010), 2 = (011) en 3 = (100). De variabele x indiceert dan deaanwezigheid in toestand 3. De machine heeft drie outputlijnen: twee naar de schuifregisters, eneen naar de overdrachtsflipflop. Voor de schuifregisters encoderen wij de commando’s in twee

111

Page 116: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Inputposities OutputpositiesI e x y z X Y Z SH1 SH2 C11 - 0 0 0 0 0 1 0 0 0- - 0 0 1 0 1 0 1 0 1- - 0 1 0 0 1 1 1 0 1- - 0 1 1 1 0 0 1 0 0- 0 1 0 0 0 0 1 1 0 1- - 1 1 - 1 1 1 1 1 1- - 1 - 1 1 1 1 1 1 1

Figuur 4.5: Opgave van de ON-set en de DON’T CARE-set van de functies nodig voor de reali-satie van de subroutinemachine uit het voorbeeld uit figuur 7.16

bits SH1, SH2 als volgt: H = (00), S = (10), L = (01). De overdracht wordt gecontroleerd doorhet bit C1, met als encodering C = 0 en L = 1.

Met de bovenstaande assignaties kan men nu de functies concreet representeren. Figuur 4.5toont het resultaat. De variabelen I, e, x, y, z zijn de inputs; er moeten 6 functies X, Y , Z, SH1,SH2, en C1 berekend worden; deze vormen de outputposities van de implicanten. De eerste 6regels uit de tabel geven de gezamenlijke ON-set van de functies op, de laatste twee regels deDON’T CARE-set.

Hoewel ESPRESSO specifiek uitgedacht werd om meervoudige minimalisatie te doen (vanfuncties zoals opgegeven in voorbeeld 4.8), zullen wij voor de eenvoud de overige stap-pen waar mogelijk illustreren met de enkelvoudige functie uit voorbeeld 4.7

Stap 2. De expansiefase

De bedoeling van ESPRESSO is een bedekking te realiseren van de functie(s) met een zoklein mogelijk aantal priemimplicanten. Bij het begin weet men niet of de opgegevenimplicanten priem zijn, noch of er uit de opgegeven lijst kunnen weggelaten worden.

Men zal de opgegeven implicanten een voor een laten ‘groeien’ tot zij hun maximaaltoelaatbare afmeting bereikt hebben. Het laten groeien van een implicant gebeurt doorhet vervangen van een 1 of een 0 door een − in een of meerdere inputposities, of een 0naar een 1 in een outputpositie. Implicanten mogen groeien zolang zij enkel punten inS of D bedekken; van zodra een punt in de OFF-set R bedekt wordt realiseren wij nietlanger de gewenste functie(s).

Implicanten kunnen vaak in diverse richtingen groeien, en de maximale afmeting diezij kunnen aannemen hangt uiteraard af van de groeirichting. ESPRESSO maakt gebruikvan een heuristische regel, die de ‘beste’ keuze maakt voor de groeirichting. Men zal na-melijk proberen zoveel mogelijk implicanten uit de opgegeven lijst te bedekken door hetvergroten van een gegeven implicant. De bedekte implicanten kunnen dan verwijderdworden. Dit reduceert uiteraard het aantal termen in de som.

Om snel te testen of een implicant na uitbreiding nog implicant blijft, berekent meneen representatie van R uit S en D. Bij het vergroten van een implicant i tot i∗ zal mentesten of i∗ ∩ R = ∅. Deze test kan gebeuren door de doorsnede van de implicant tebepalen met elk element van R. Elk van deze doorsneden moet leeg zijn. Twee kubussenzijn disjunct wanneer zij minstens in een inputpositie conflicteren, d.w.z., wanneer de enekubus een 0 heeft op die positie, en de andere een 1. Men kan deze definitie uitbreidenom ook de outputgedeelten in beschouwing te nemen.

112

Page 117: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De OFF-set van onze functie is

R =

−10000111110

In ons voorbeeld kan men de initiele implicanten (inclusief deze in D) laten groeien tot

F =

−0− 0−− 01−1− 110−−0− 10

Men ziet dat elk van deze implicanten nog steeds disjunct is met R. Men ziet tevens dater maar 5 implicanten meer over zijn, en dat geen implicant nog kan groeien. De expansievan 01−1 tot−1−1 heeft de DON’T CARE-implicant 11−1 volledig bedekt; deze laatstekon dus weggelaten worden.

Stap 3. Extractie van essentiele priemimplicanten

Na de eerste expansiestap verkrijgen wij dus een bedekking F van de functie, die waar-schijnlijk minder, maar zeker niet meer, kubussen bevat dan in de originele opgave, en diebovendien alle priemimplicanten zijn. Wij weten echter niet of deze som niet-redundant is,laat staan minimaal. Wel weten wij dat deze som alle essentiele priemimplicanten moet bevatten.Dit komt doordat alle EPI’s moeten voorkomen in elke priembedekking van de functie.Wanneer wij de EPI’s uit de implicantenlijst verwijderen, en tevens alle termen van f

die zij bedekken verder beschouwen als DON’T CARE-termen, moeten wij ons verderslechts bekommeren om de lijst van overblijvende niet-essentiele priemimplicanten. Uitdeze lijst wensen wij een zo klein mogelijk niet-redundant stel over te houden dat de nogniet bedekte termen bedekt.

Het komt er dus eerst op aan alle EPI’s te vinden in de verkregen lijst. Een priemim-plicant is per definitie essentieel als hij als enige van alle priemimplicanten, een of meerderetermen uit de ON-set van de functie bedekt. Ogenschijnlijk hebben wij dus de completesom nodig om uit te maken of een priemimplicant essentieel is. Het blijkt echter dat ditniet zo is, wanneer men gebruik maakt van het begrip consensus.

Definitie 4.12 De consensus van twee kubussen die geen variabele bevatten in verschillendepolariteit is het product van die kubussen; bevatten zij wel minstens een variabele in verschillendepolariteit, dan is de consensus hun optioneel product. De consensus van een kubus en een lijstvan kubussen is de lijst van consensuswaarden van de kubus met de elementen uit de lijst.

Brayton et al. [Brayton84] bewijzen dat een priemimplicant ci uit een priembedekkingF essentieel is, wanneer

Fi = (F ∪D − ci) ci

de termen van ci niet volledig bedekt. In het geval van ons voorbeeld vinden wij voor c1:

F1 = (F ∪D − c1) c1 (4.3)

113

Page 118: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

=

−− 01−0− 0−1− 1−0− 010−−−0− 00− 10−0− 0

(4.4)

=

−00−10− 00010

(4.5)

Hierbij hebben wij gebruik gemaakt van de definitie van consensus:

−− 01−0− 0 = z′w y′w′ = z′y′

−1− 1−0− 0 = yw y′w′ = ∅10− 0−0− 0 = xy′w′ y′w′ = xy′w′

0− 10−0− 0 = x′zw′ y′w′ = x′y′zw′

De resulterende lijst F1 bedekt c1 volledig; c1 is dus niet essentieel. Men kan nagaandat ook de andere implicanten niet essentieel zijn.

Stap 4. Niet-redundante som

Wanneer wij, zoals gezegd, de EPI’s verwijderen uit F en de mintermen die zij bedekkenvoorts behandelen als DON’T CARE-termen, houden wij nog een lijst L van priemimpli-canten over; in ons voorbeeld is dit de gehele lijst.

In deze lijst kan men vooreerst de relatief essentiele implicanten Le identificeren. Eenimplicant is relatief essentieel wanneer hij niet mag verwijderd worden uit L zonderdat men ophoudt de functie te realiseren. Men realiseert niet langer de functie wanneerL − ci niet alle te realiseren mintermen bedekt. Men moet dus alle relatief essentieleimplicanten Le met betrekking tot L bewaren. Noteer dat relatief essentieel niet hetzelfdeis als essentieel (essentieel wordt immers gedefinieerd m.b.t de complete som)!

In het voorbeeld realiseert de implicant 10−− als enige het punt 1011; het punt 0000wordt alleen bedekt door −0 − 0. In feite zijn alle implicanten in het voorbeeld relatiefessentieel en moeten zij behouden blijven.

In de overige implicanten kan men nog twee andere klassen onderscheiden die wijal eerder tegenkwamen: totaal redundante Lt en partieel redundante Lp implicanten. Detotaal redundante implicanten bedekken enkel DON’T CARE-termen (in de uitgebreideset) of termen die reeds bedekt worden door Le. Deze implicanten mogen onmiddellijkweggelaten worden, aangezien alle vereiste termen toch zullen bedekt worden door deweggelaten EPI’s en de implicanten in Le. De partieel redundante implicanten Lp bedek-ken ook andere mintermen, en mogen dus niet alle zomaar weggelaten worden. Evenwelis het zo dat steeds minstens een implicant uit Lp mag weggelaten worden zonder dat ditde realisatie van de functie in gevaar brengt. Dit is zo omdat geen enkele implicant in Lp

relatief essentieel is. In ons voorbeeld zijn er geen totaal of partieel redundante implican-ten; wij vinden dus

Le =

−0− 0−− 01−1− 110−−0− 10

114

Page 119: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Lp = Lt =

Het doel nu is de verzameling van overblijvende partieel redundante implicanten Lp

te reduceren tot een zo klein mogelijke kardinaliteit, door er zoveel mogelijk elementenuit weg te laten. Men kan dit op diverse manieren doen. Een implicant kan weggela-ten worden wanneer de enige termen die niet door andere, nog aanwezige implicanten,bedekt worden DON’T CARE-termen zijn of termen bedekt door de relatief essentieleimplicanten. Men kan sequentieel implicanten proberen weg te laten op deze manier, totwanneer men geen enkele verdere implicant nog mag weglaten zonder de functie nietlanger te realiseren. Op dat ogenblik is de resulterende verzameling niet-redundant ge-worden. Het is duidelijk dat de volgorde waarin men implicanten wil weglaten groteinvloed kan hebben op de kwaliteit van het eindresultaat. Brayton et al. beschrijven eenverfijnd algoritme om een zo klein mogelijke verzameling over te houden uit Lp. Zoalsgezegd valt de beschrijving van dit algoritme echter buiten het bestek van deze tekst.

Stap 5. Reductie

De niet-redundante priembedekking L die wij tot nog toe verkregen hebben is niet nood-zakelijk een globaal optimum. Het is wel een lokaal optimum met betrekking tot degebruikte heuristieken. Wij zullen nu proberen de stappen 2 t.e.m. 4 herhaaldelijk uit tevoeren, in de hoop dat wij op deze manier nog kubussen kunnen verwijderen uit L.

Daartoe is het uiteraard nodig terug over te gaan tot een niet-priembedekking, anderszou de expansiestap niets kunnen doen. Men gaat dus de implicanten in L terug verklei-nen tot hun kleinst mogelijke afmetingen die de realisatie van de functie niet doorbreekt.Een kubus ci kan gereduceerd worden tot c∗i ⊂ ci op voorwaarde dat c∗i alle termen bevatvan ci die geen DON’T CARE-termen zijn en ook niet bedekt worden door Lp − ci.Men zal de kubussen in Lp dan een voor een reduceren, en na elke reductie ci vervangendoor c∗i in Lp.

Op het einde van deze fase krijgt men nog steeds een bedekking van de functie, maarniet noodzakelijk meer een met priemimplicanten. Het resultaat van de reductiestaphangt uiteraard van de volgorde af waarin wij Lp reduceren.

De reductiestap maakt het weer mogelijk om de expansie uit te voeren, waarbij dekans nu gestegen is dat expansie volgens andere richtingen gebeurt, en waarbij dus opnieuw(kleine) kubussen uit de lijst bedekt en geabsorbeerd kunnen worden. Men zal derhalvestappen 5-2-3-4 itereren zolang de kardinaliteit van de bedekking daalt.

In ons voorbeeldje ziet men dat, wanneer wij reduceren in de volgorde waarin deimplicanten opgegeven werden, wij verkrijgen

−0− 0−− 01−1− 110−−0− 10

00000001

01− 110−−0− 10

Wanneer wij de expansie opnieuw proberen, volgens dalende afmetingen van de (gere-

115

Page 120: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

duceerde) implicanten krijgen wij:

10−−0− 1001− 100000001

10−−0− 10−1− 1−00−

dit wegens bedekking van 0001 door −00−. Wij hebben dus de kardinaliteit met eengereduceerd. Verdere iteraties brengen niets op.

Stap 6. Laatste reductiepoging

Deze stap poogt nieuwe priemimplicanten te genereren die tot nu toe nog niet opge-nomen werden in L. Dit gebeurt door een gewijzigde reductiestap. In plaats van deimplicanten achtereenvolgens te reduceren en rekening te houden met het feit dat er altermen gereduceerd zijn zoals in stap 5, gaat men nu alle implicanten reduceren t.o.v.de originele lijst L. De lijst van gereduceerde termen is niet noodzakelijk een bedekking,maar alle kubussen zijn nog steeds implicanten. In ons voorbeeld verkrijgen wij:

10−−0− 10−1− 1−00−

101−0− 1001− 1000−

Men zal nu opnieuw de expansiestap oproepen op de gereduceerde implicanten. Wan-neer nu tijdens de expansiestap een andere term bedekt werd, weet men zeker dat meneen nieuwe priemimplicant gevonden heeft die men tot dan toe niet gezien had. Menvoegt deze implicanten bij de lijst L en voert stap 3 uit. Wanneer de kardinaliteit gere-duceerd werd itereert men opnieuw stappen 4-5-2-3 tot wanneer geen verbetering meeroptreedt. In het voorbeeld treden geen nieuwe bedekkingen op, en wij genereren dusgeen nieuwe priemimplicanten.

Stap 7. Outputreductie

Speciaal voor de realisatie van meervoudige functies (zoals deze in voorbeeld 4.8) inPLA’s (zoals deze beschreven in figuur 3.23), zal men proberen in het verkregen out-putgedeelte zoveel mogelijk 1-tjes te vervangen door 0-en, weerom zonder de realisatievan de functies te doorbreken. Deze operatie reduceert het aantal verbindingen in deOF-matrix van de PLA, wat een aantal elektrische en geometrische voordelen heeft: debelastingscapaciteit van de producttermen door poortingangen neemt af, waardoor desnelheid toeneemt. Het ruimtelijk voordeel ligt voor de hand. Bovendien kan het zijndat een implicant, door het weglaten van een 1-tje in zijn outputgedeelte, niet langerpriem is en verder geexpandeerd kan worden. Dit, op zijn beurt, reduceert het aantalverbindingen in de EN-matrix.

Opmerking. Wij hebben het ESPRESSO-algoritme slechts principieel besproken. Het isduidelijk dat een effectieve implementatie veel meer detail vereist, in het bijzonder voorde efficiente implementatie van de basisoperaties die het algoritme nodig heeft. Dergelij-ke basisoperaties zijn o.m. het berekenen van het complement R van een stel implicantenS en D, en het testen of een kubus volledig bedekt wordt door een gegeven lijst kubussen.

116

Page 121: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Beide operaties werden door Brayton et al. op een efficiente, recursieve manier geım-plementeerd, gebaseerd op de Shannondecompositie van Boolese functies. Voor meerdetail, zie [Brayton84].

4.1.5 Circuitrealisaties

De minimale som-van-produktenvorm die resulteert uit een tweeniveauminimalisatiekan eenvoudig afgebeeld worden op concrete circuits in de meeste technologieen. Bijhet (totaal verouderd) gebruik van standaard SSI-componenten komt men echter snel inde problemen door de beperkingen op fan-in van de poorten (men gaat niet veel ver-der dan 13 inputs). Men zal dus nooit complexere functies realiseren op deze manier.Veel interessanter en bijzonder geschikt zijn de z.g. PLA-achtigen (zie hoofdstuk 3), diemen vindt bij de programmeerbare standaardcomponenten. Gegeven dat een functie detoelaatbare complexiteit van de PLA niet te boven gaat (b.v. het aantal termen in haarminimale som), is haar realisatie vrijwel onmiddellijk. De diverse subvarianten van dePLA-achtigen zoals de echte PLA’s, de PAL’s, en de ROM’s, bestrijken elk een deel van hetdomein. De ontwerpsomgevingen opgezet voor het gebruik van dit soort componentenbevatten meestal diverse vormen van logische minimalisatie. De ABEL-compiler bevato.m. het eigenlijke Quine-McCluskey-algoritme, maar bevat ook een aantal varianten vanESPRESSO.

Bij ASIC-ontwerp heeft men meestal te doen met volwaardige PLA’s. Deze hebbenprogrammeerbare EN- en OF-matrices, en zijn het best gebaat met een gezamenlijkeminimalisatie van functies: hun programmeerbare OF-matrix laat het gemeenschappe-lijk gebruik van termen toe. Gemeenschappelijke minimalisatie is nutteloos voor PAL-structuren, daar de OF-matrix voor elke output (functie) vast is. Men moet het aantaltermen voor elke functie individueel minimaliseren. Voor ROM-structuren, tenslotte, is erhelemaal geen minimalisatie nodig, daar alle 2n mintermen individueel kunnen gebruiktworden.

4.2 Meerniveausynthese

4.2.1 Concept en Motivering

Een niet-uitgevlakte Boolese vorm – dit is een Boolese vorm die nog haakjes bevat –kan rechtstreeks afgebeeld worden op een lusvrij netwerk van invertoren, EN- en OF-poorten (zie paragraaf 3.1.2). Afhankelijk van de vernestingsdiepte van de haakjes kanhet zijn dat meer dan een EN-, OF-poort of invertor moet doorlopen worden van inputnaar output. Dergelijke netwerken noemen wij dan meerlaagse netwerken. In de meestegevallen zal het netwerk dat men verkrijgt door een rechtstreekse afbeelding van eenBoolese vorm niet optimaal zijn volgens de kwaliteitscriteria die men hanteert. Dezecriteria zijn, zoals eerder aangehaald, een combinatie van snelheidseisen (beperkingenop de propagatietijd), en ruimte- of kostprijseisen (beperkingen op de oppervlakte of hetaantal gebruikte componenten).

Een van de methoden om een bepaalde graad van optimaliteit te bereiken is, zoalsreeds gezegd, het gebruik van tweeniveausynthese. Ongelukkiglijk is de realisatie vansommige combinatorische functies als een minimale som van produkten niet steeds debeste keuze. Hiervoor zijn er een aantal redenen.

117

Page 122: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Ten eerste, de bewuste keuze van een tweeniveauvorm wordt vaak gemotiveerd doorde snelheid van de gerealiseerde circuits: slechts twee poortniveaus zijn nodig wanneermen invertoren niet meetelt. Maar in vele toepassingen is de snelheid (propagatietijd)van een combinatorisch circuit niet de eerste of meest beperkende eis. Vaak wenst meneen circuit te realiseren dat niet trager is dan een vooropgegeven waarde, maar dat bin-nen die snelheidsrestrictie een minimale kostprijs (oppervlakte, aantal chips, ...) zal heb-ben. Wanneer de restrictie op de snelheid meerniveaurealisaties toelaat, beschikt menover een ruimere set vrijheidsgraden voor de realisatie, en kan men qua oppervlakte dushopen beter te doen dan met een zuivere som-van-productenrealisatie.

Ten tweede, sommige technologieen laten geen economische tweeniveaurealisatiestoe van complexe functies. De oorzaak hiervan is de grote vereiste fan-in van de EN- ende OF-poorten. Poorten – zowel in standaardlogica, FPGA’s, als gate arrays – hebben eenbeperking op hun aantal inputs. Soms kan men met kunstgrepen deze beperking watrelaxeren (zoals, in het verleden, het gebruik van ‘expander inputs’ bij TTL), maar vergeraakt men hiermee toch niet. Wanneer men dan b.v. een EN-poort met een groot aantalinputs moet realiseren, dan kan men b.v. boomvormige netwerken van EN-poorten meteen lagere fan-in gebruiken – en men verkrijgt automatisch een meerlaags netwerk. Nietszegt ons echter dat deze circuitvorm dan een optimale combinatie zal zijn van snelheiden plaats, wel integendeel.

Zelfs bij technologieen die ‘onbeperkte’ fan-ins toelaten is het zo dat de snelheid vaneen poort met een grote fan-in lager zal zijn dan deze van een poort met een kleine fan-in (waarom is dit zo?). Een geschikte meerlaagse realisatie van de functie zou ook hierkunnen leiden tot een netwerk dat zowel kleiner als sneller is dan zijn tweelaagse tegen-hanger.

Het doel van meerlaagse synthese is de systematische realisatie van een opgegevenfunctie – of een stel opgegeven functies – in de gedaante van een lusvrij netwerk, waarinde knopen willekeurige Boolese functies realiseren van een beperkt aantal inputs. Hetdoel is dit zo economisch mogelijk te doen, en dit kan o.m. door het aantal knopen zoklein mogelijk te maken, en door de output van een knoop zo vaak mogelijk te herge-bruiken.

Voorbeeld 4.9 Beschouw de (volledig bepaalde) functie

y(a, b, c, d, e, f, g) = abeg′ + abfg + abe′g + aceg′ + acfg + ace′g + deg′ + dfg + de′g

Gerealiseerd als tweeniveaucircuit zijn er dus 9 EN-poorten nodig met 3 of 4 inputs, en een 9-inputOF-poort (fig. 4.6(d)). Wij kunnen deze vorm herschrijven als volgt:

y(a, b, c, d, e, f, g) = (a(b + c) + d)(g(f + e′) + eg′).

Wanneer wij de structuur van deze vorm rechtstreeks afbeelden op een poortnetwerk, verkrij-gen wij een meerlaags netwerk met 4 2-input EN-poorten en 4 2-input OF-poorten (fig. 4.6(a)).Een eenvoudige toepassing van de regels van De Morgan, waar nodig met het gebruik vangeınverteerde inputs en functie-output, leidt tot een netwerk van 8 2-input NEN-poorten (fig.4.6(b)).

Bij realisaties als complexe CMOS-‘poort’ is de tweede vorm ook veruit te verkiezen boven deeerste. Bij een dergelijke realisatie wordt de schakeltransistor vervangen door een (serie-parallel)netwerk van transistoren, elk gecontroleerd door precies een literal. De lasttransistor wordt ver-vangen door het duaal schakelnetwerk, met de complementaire transistoren. Wanneer de outputin niet-geınverteerde vorm nodig is, zijn er twee bijkomende transistoren vereist. Alternatief kanmen gebruik maken van de identiteit

f ′(x1, . . . , xn) = fD(x′1, . . . , x′n)

118

Page 123: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

waarin fD de functie gerealiseerd door het duaal netwerk voorstelt. Noteer dat dit netwerk preciesevenveel literals bevat als het originele!

Met de eerste gedaante van de functie hebben wij een parallelschakeling van 9 takken met elk3 of 4 transistoren nodig (33 transistoren in schakelcircuit). De structuur van de tweede realisatievindt men in figuur 4.6(c). Zij is duidelijk goedkoper (9 transistoren in het schakelcircuit), zonderdaarom echter trager te zijn!

Zoals men kan zien in voorbeeld 4.9 is het mogelijk dat een meerniveaurealisatie vaneen gegeven Boolese functie er eenvoudiger uitziet dan een tweeniveaurealisatie. Dekostprijs van een dergelijke realisatie hangt af van van het aantal knopen, hun internecomplexiteit, en de interconnectiekost. Voor heel wat technologieen, onder meer CMOS,is de kostprijs van de realisatie van een knoop recht evenredig met het aantal literal-inputs van de knoop. Het aantal transistoren in een complexe CMOS-‘poort’ is immerssterk gekoppeld met het aantal literals in de Boolese uitdrukking van de functie van diepoort. De correspondentie is perfect wanneer de functie voorgesteld wordt door eenuitdrukking die rechtstreeks als taknetwerk te realiseren is.4

De meeste gekende technieken voor meerniveausynthese richten zich dan ook op hetvoorstellen van de functies door middel van stelsels van Boolese vormen met een zo kleinmogelijk totaal aantal literals. Er bestaat op dit ogenblik geen bruikbaar algoritme dat inalle gevallen in redelijke tijd in staat is een stel Boolese functies in een gegarandeerdgezamenlijk minimale vorm te transformeren: de rekenduur van alle gekende optima-le algoritmen is exponentieel in het aantal inputs. Er heeft zich gedurende de laatste10 jaar echter een duidelijke evolutie voorgedaan in bruikbare, heuristische technieken,gebaseerd op de techniek van algebraısche factorisatie.

4.2.2 Factorisatie

Het aantal literals in een Boolese vorm kan gereduceerd worden door de vorm te her-schrijven als een produkt.

Voorbeeld 4.10 De onderstaande vorm kan gefactoriseerd worden als volgt:

adf + aef + bdf + bef = f(a + b)(d + e)

De SVP-vorm heeft 12 literals, maar de gefactoriseerde vorm slechts 5.

Wij kunnen onderscheid maken tussen twee vormen van factorisatie: de algebraıscheen de Boolese. Bij Boolese factorisatie gebruikt men de Boolese identiteiten, die vereen-voudiging mogelijk maken na het uitwerken van een produkt. Bijvoorbeeld, louter alge-braısche uitwerking van (a + b)(a + c) leidt tot aa + ac + ba + bc. De Boolese identiteitenaa = a en a + ab = a stellen ons in staat dit te vereenvoudigen tot (a + b)(a + c) = a + bc,wat betekent dat het linkerlid een factorisatie is van het rechterlid in het Boolese domein,wat echter niet waar is wanneer men echter de Boolese identiteiten niet gebruikt. Ditlaatste noemt men algebraısche factorisatie: men zal geen domein-afhankelijke reductie-regels gebruiken. Noteer dat Boolese factorisatie en algebraısche op hetzelfde neerkomenwanneer de factoren uit disjuncte sets variabelen bestaan. Elke algebraısche factorisatie

4Zoals men weet volstaat het dat inversies alleen voorkomen op literals. Dan kan men de Boolese vormrechtstreeks afbeelden op een topologisch corresponderend schakelnetwerk.

119

Page 124: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

b

c

f

e'

a

g

g

e'

dy

b'

c'

f'

e

a

g

g

e'

d'y'

d

a

b c

f e'

g

e

g'

y'

g' e

b

c

f

e'

g

d

a

Vdd

d

g'e

d

ge'

d

gf

abeg'

a

b

fg

a

be'g

a

c

eg'

acfg

ace'g

y

(a) Meerlaagse realisatie (b) NEN-realisatie

(c) Complexe CMOS-poort (d) Tweelaagse realisatie

Figuur 4.6: Tweeniveau- vs. meerniveaurealisaties

120

Page 125: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

is een Boolese factorisatie; het omgekeerde is niet waar. De reden waarom men in eersteinstantie gebruik maakt van algebraısche technieken is omdat deze veel minder rekenin-tensief zijn dan Boolese technieken, hoewel men weet dat Boolese technieken krachtigerzijn.

Delers, factoren, kernen en co-kernen Het is jammer genoeg niet zo dat elke Boolesevorm kan geschreven worden als een algebraısch produkt; vormen waarbij dit niet kannoemen wij priem. Toch kunnen wij een dergelijke vorm herschrijven met minder literalsdoor het toepassen van een zwakkere vorm van factorisatie. Een dergelijke zwakkere (endus breder toepasbare) vorm is gebaseerd op het begrip algebraısche deling.

Definitie 4.13 De Boolese SVP-vorm d is een algebraısche deler van de Boolese SVP-vorm f alser een niet-ledige vorm q 6= 0 en een vorm r bestaan zodanig dat f = qd + r in algebraısche zin.De vorm d is een algebraısche factor van f als r ledig is.

Het volgend algoritme voert een algebraısche deling uit.

Algoritme 4.7 (Het uitvoeren van een algebraısche deling van f door g)Weze n en m resp. het aantal termen in f en g. Noteer alle SVP-vormen als (multi-)verzamelingenvan kubussen. Weze U = u1, u2, . . . , un de SVP-vorm afgeleid uit f door weglating van alleliterals die niet optreden in g, en V de gelijkaardige vorm met literals weggelaten die wel optredenin g. Noteer dat f = u1v1, . . . , unvn.

DELING(f ,g):

for (i = 1 to n) Vi = vj ∈ V : uj = gi

q = ∩i=1...mVi

r = f − g × q

return (q,r)

Toegepast op de vorm van 4.10 vinden wij, met F = adf +aef +bdf +bef en G = a+b, datU = a, a, b, b en V = df, ef, df, ef. Er volgt V1 = df, ef, V2 = df, ef, V3 = df, efen V4 = df, ef. Uiteindelijk vinden wij q = ∩i=1...mVi = df, ef, wat de representatieis van df + ef , het quotient. De rest r is uiteraard leeg, daar g een factor is van f .

Eens men een deler gevonden heeft van f kan men recursief verder delers zoeken,door d, q en r verder op te splitsen. De keuze van deler en quotient is helemaal nietuniek, en kan op veel manieren gebeuren. Vaak wil men de ‘nuttigste’ deler vinden, dieeen zo groot mogelijk reductie van het aantal literals realiseert. Om nuttig te zijn moeteen deler zoveel mogelijk termen bevatten. Bovendien moeten eventuele gemeenschap-pelijke factoren uitgefactoriseerd worden. Vandaar de volgende definitie. Wij noteren deverzameling literals die optreden in een product C als LC .

Definitie 4.14 Een Boolese SVP-vorm C1 + C2 + · · ·+ Ck is kubusvrij wanneer de doorsnedevan de literalverzamelingen van de termen leeg is: ∩i=1,kLCi = ∅.

Noteer dat een kubusvrije vorm minstens twee termen heeft.

121

Page 126: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie 4.15 Een Boolese SVP-vorm d is een maximale deler van een Boolese vorm f wan-neer er geen termen kunnen aan toegevoegd worden zonder dat d ophoudt een deler te zijn.

Maximale kubusvrije delers van een Boolese vorm spelen een belangrijke rol in systema-tische factorisatie. Men noemt ze kernen.

Definitie 4.16 Een Boolese SVP-vorm k is een kern van een Boolese SVP-vorm f , a.s.a. k eenmaximale kubusvrije deler is van f , en het corresponderend quotient q een kubus is. Het quotientheet dan co-kern van k.

Wij zullen de verzameling van kernen van een vorm f noteren als K(f). De verzame-ling K(f) kan op systematische wijze bepaald worden door het volgende (recursieve)algoritme.

Algoritme 4.8 (Het bepalen van de kernen van een vorm f )Wij ordenen de j literals li, i = 1, . . . , j van f op lexicografische manier, en nummeren ze volgensdie ordening. Kubusfactoren c van SVP-vormen worden vergeleken op basis van hun literalver-zamelingen Lc.

KERNEN(f ):

c = grootste kubusfactor van f

K = KERN(1, f/c)return K

KERN(m,g):R = g

for i = m to jif (li in minstens twee termen van g)

c=grootste kubusfactor van g/liif (lk /∈ c, k = 1, . . . , i)

R = R ∪ KERN(i, g/(c ∪ li)))

return R

Voorbeeld 4.11 Wanneer wij algoritme 4.8 toepassen op de functie uit voorbeeld 4.9 verkrijgenwij de kernen uit tabel 4.1. Noteer dat kernen andere kernen kunnen bevatten. Zo kunnen wijhet niveau van een kern definieren. Kernen die geen andere kernen bevatten zijn van niveau 0;kernen die kernen van maximaal niveau n bevatten zijn van niveau n + 1.

Kernen zijn als het ware de primitieve bouwstenen waarmee de Boolese vorm opge-bouwd werd via OF- en EN-operaties; zij spelen dus een uiterst belangrijke rol in hetvinden van goede factorisaties. Twee stellingen [Brayton87] staven deze uitspraak.

122

Page 127: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Kern Co-kernen Niveau Waardebeg′ + bfg + be′g + ceg′ + cfg + ce′g a 2 5eg′ + fg + e′g d, ab, ac 1 22f + e′ abg, dg, acg 0 12ab + ac + d eg′, fg, e′g 1 22b + c aeg′, afg, age′ 0 11abf + abe′ + acf + ace′ + df + de′ g 2 5bf + be′ + ce′ + cf ag 1 6

Tabel 4.1: De kernen van de functie uit het voorbeeld

Stelling 4.6 Als k een kern is van f en bovendien priem, dan is k een kern van precies eenpriemfactor van f .

Stelling 4.7 (Brayton en McMullen, 1982) Weze f en g twee SVP-vormen, en K(f) resp.K(g) hun kernverzamelingen. De vormen f en g hebben een gemeenschappelijke algebraısche de-ler met meer dan een term a.s.a. er minstens een kf ∈ K(f) meer dan een term gemeenschappelijkheeft met een kern kg ∈ K(g).

De laatste stelling impliceert dat wanneer wij op zoek gaan naar factorisaties van eenverzameling functies, met de bedoeling zoveel mogelijk gemeenschappelijke delers teidentificeren, wij het zoeken kunnen beperken tot de kernverzamelingen, eerder dan deverzameling van alle factoren.

4.2.3 Realisaties van functies

Enkelvoudige functies Het doel is de functie voor te stellen door een gefactoriseerdevorm met een minimaal aantal literals. Een gefactoriseerde vorm is een som van een ofmeer producten, waarbij elke factor opnieuw een gefactoriseerde vorm is. Een gefacto-riseerde vorm kan steeds rechtstreeks afgebeeld worden op een topologisch equivalentpoort- of taknetwerk. Uitgaande van een gefactoriseerde vorm kan men overgaan tot eenmeerniveausynthese of niet. Deze beslissing is uiteraard technologie-afhankelijk.

Bijvoorbeeld, in CMOS kan men een gefactoriseerde vorm steeds realiseren als eencomplexe poort. De beslissing om een functie al dan niet te realiseren als een complexepoort zal afhangen van de complexiteit van het schakelnetwerk in deze poort en haarbelasting. Beide factoren beınvloeden de schakelsnelheid. Wanneer men overgaat naareen decompositie van de knoop naar een meerlaags netwerk, zal met een deelexpressievan de gefactoriseerde vorm nemen, en deze als aparte knoop realiseren. Dit vereist deintroductie van een nieuwe interne literal, die de deelexpressie in de originele knoop ver-vangt. Het totaal aantal literals van de realisatie is dan gestegen met 1, maar de knopenzijn eenvoudiger (en dus sneller) geworden. Zoals besproken in voorbeeld 4.9 kost hetrealiseren van een functie of haar complement precies evenveel, op voorwaarde dat mende inputs in de geschikte vorm ter beschikking heeft.

Met andere technologieen, b.v. met FPGA’s en PAL’s, gelden andere criteria. Hier weetmen dat elke knoop gelijk welke functie kan realiseren, maar dan van een beperkt aantalvariabelen (b.v. 5 voor de Xilinx 3000-reeks) of met een beperkt aantal produkttermen (5in de 22V10). Men zal de vorm dus opsplitsen in een stelsel van vormen, zodanig dat ingeen enkel rechterlid meer dan het toegelaten aantal variabelen (niet literals!) of termenvoorkomt.

123

Page 128: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bij semi-custom componenten, b.v. gate arrays, gelden nog strictere criteria. Hier kanelke knoop maar een type functie van een gegeven aantal variabelen realiseren, b.v. een3-input NEN-functie. Het zorgvuldig gebruik van geınverteerde variabelen en de regelsvan De Morgan laten toe meerlaagse netwerken in deze technologie te beschrijven doorstelsels van 3-argument EN- en OF-functies.

In elk geval zal men dus vertrekken van een zo goed mogelijk gefactoriseerde Boole-se vorm. Voor het vinden van een optimum zijn er echter geen algoritmen bekend dieeen aanvaardbare rekentijd hebben in gevallen met een realistische complexiteit (tien-tallen variabelen), en men moet noodgedwongen zijn toevlucht nemen tot heuristischetechnieken. Het volgende algoritme (in feite een klasse van algoritmen) bepaalt van eenopgegeven Boolese SVP-vorm een factorisatie.

Algoritme 4.9 (Het factoriseren van een vorm f )FACTOR(f):

if (aantal termen in f = 1) return f

k = KIESDELER(f)(q, r) = DEEL(f, k)return FACTOR(q)FACTOR(k) + FACTOR(r)

Dit algoritme gebruikt twee subroutines: KIESDELER(f) en DEEL(f, k). De kwaliteitvan deze routines bepaalt de kwaliteit van het geheel. Voor de eerste routine, het kiezenvan een deler, kan men verschillende wegen uit. Men poogt, met zo weinig mogelijkmoeite, een deler te kiezen met een zo groot mogelijk nut. De moeite om te kiezen wordtin belangrijke mate bepaald door de afmeting van de zoekruimte. Het nut van een delerkan men uitdrukken als de besparing in het aantal literals dat hij zal realiseren. Weze |k|het aantal termen in een deler k, en L(k) het aantal literals. De besparing gemaakt doorde keuze van k kan uitgedrukt worden als (bewijs dit)

waarde(k) = (|k| − 1)L(q) + (|q| − 1)L(k).

Als delers volstaat het slechts kubusvrije vormen te onderzoeken, daar het uitfactoriserenvan een gemeenschappelijke kubus steeds winst oplevert. Brayton heeft bewezen dat eenoptimale deler met meer dan 1 term steeds moet bestaan uit een kubusvrije intersectievan een verzameling kernen – een subkern. Voor onze heuristische zoektocht zullen wijons echter beperken tot de eigenlijke kernen van f , en eventueel slechts tot de kernen vanniveau 0, daar deze een kleinere verzameling uitmaken. Het quotient dat hoort bij eenkern is de som van de co-kernen van deze kern, wat toelaat snel de waarde te bepalenvan een kern, eens men de kernen van een vorm bepaald heeft.

De waarden van de kernen van de vorm uit voorbeeld 4.9 werden aangegeven intabel 4.1. Stel dat wij enkel de verzameling van de kernen van niveau 0 gebruiken, dangenereert algoritme 4.9 de volgende factorisatie:

y = (f + e′)(abg + dg + acg) + abeg′ + aceg′ + deg′ (eerste stap)

= (f + e′)g(a(b + c) + d) + eg′(a(b + c) + d) (tweede stap)

124

Page 129: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 4.7: Een stelsel vergelijkingen en het corresponderend netwerk

Wanneer echter alle kernen in beschouwing genomen worden, dan krijgen wij:

y = (eg′ + fg + e′g)(d + ab + ac) (eerste stap)

= (g(f + e′) + eg′)(a(b + c) + d) (tweede stap)

De beperking tot de kernen van niveau 0 heeft als gevolg dat wij in dit geval niet de besteoplossing vinden.

De tweede vrijheidsgraad waarover wij beschikken ligt in de keuze van de routi-ne DEEL. Wij hebben steeds gebruik gemaakt van algebraısche deling; een routine dieBoolese deling uitvoert zal in vele gevallen betere resultaten behalen, zij het ten kostevan een sterk toegenomen rekentijd.

Boolese netwerken. Meerniveaurealisaties van een of meerdere functies kunnen wor-den beschreven door een stelsel van Boolese vergelijkingen waarvan het linkerlid bestaatuit een literal, en het rechterlid uit een Boolese vorm. De literals in de rechterleden dieniet voorkomen in het linkerlid van een der vergelijkingen noemt men de primaire inputs;de literals uit de linkerleden die niet voorkomen in het rechterlid van een vergelijking zijnde primaire outputs. Het stelsel vergelijkingen moet uiteraard zo zijn dat de intermediaireliterals geelimineerd kunnen worden, waardoor de primaire outputs kunnen geschrevenworden als Boolese vormen in de primaire inputs.

Dergelijke stelsels vergelijkingen kunnen voorgesteld worden door middel van Boole-se Netwerken. Zulk een netwerk is een gerichte, acyclische graaf, waarvan de knopenBoolese functies voorstellen, en waarin de takken overeenkomen met de literals. Ge-woonlijk stelt men de primaire inputs zelf ook voor door knopen zonder inkomendetakken (figuur 4.7). Boolese netwerken zijn gestileerde representaties van echte circuits;zij kunnen poortnetwerken voorstellen, maar ook netwerken met knopen die veel inge-wikkelder functies realiseren dan poorten of invertoren (de z.g. ‘complexe poorten’).

In het vervolg zullen wij geen onderscheid maken tussen Boolese netwerken en destelsels vergelijkingen die zij voorstellen.

Meervoudige functies Voor de realisatie van meervoudige functies vertrekken wij vaneen stel vergelijkingen, een per functie. Wij veronderstellen ook dat wij de functies zowelin gefactoriseerde vorm, als in SVP-vorm ter beschikking hebben.

125

Page 130: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De synthesestap is het afsplitsen van een ‘goede’ gemeenschappelijke deelfunctie (hetcreeren van een intermediaire variabele en een bijkomende vergelijking). Met ‘goed’wordt ook hier bedoeld: een zo sterk mogelijke reductie in het aantal literals realise-rend. Goede deelfuncties zijn in eerste instantie functies met meer dan een term in hunSVP-vorm; bij gebrek aan dergelijke deelfuncties moet men gemeenschappelijke kubus-sen evalueren.

Voor het zoeken naar goede, gemeenschappelijke deelfuncties beperken wij ons totintersecties van kernen uit de verschillende functies, en dit op basis van stelling 4.7.Kernintersecties kunnen zelf met het kernextractiealgoritme gevonden worden, en welop de volgende manier.

Beschouw de kernverzameling K = ∪i=1,...,nK(fi) van een stel functies fi. Laat metelke verschillende term uit een kern een nieuwe literal overeenstemmen, en noteer eenkern (som van termen) als het produkt van de nieuwe literals. De kernverzameling K

wordt dus afgebeeld op een verzameling produkten van de nieuwe literals. Deze kandus geınterpreteerd worden als de SVP-representatie van een functie F . Wanneer wij dekernen K(F ) bepalen, zullen de co-kernen met meer dan een factor, gemeenschappelijkekubussen uit de termen van F voorstellen, dit wil zeggen gemeenschappelijke sommenmet meer dat een term uit de oorsponkelijke kernverzameling K. Dit zijn precies dekernintersecties die wij zoeken.

Voorbeeld 4.12 Beschouw de volgende kernverzameling: K = k1, k2, k3, met

k1 = abc + de + fg

k2 = abc + de + fh

k3 = abc + fh + gh

Noteren wij abc = A, de = B, fg = C, fh = D en gh = E. De nieuwe functie F wordt dan

F = ABC + ABD + ADE

met als co-kernen A,AB,AD. De gezochte kernintersecties zijn dus

A = abc

AB = abc + de

AD = abc + fh

Ook hier zijn compromissen tussen rekenduur en kwaliteit van het resultaat mogelijk.Men zou b.v. kunnen vertrekken van enkel de kernen van niveau 0 uit de oorspronkelijkeverzameling K; men zou zich ook kunnen beperken tot co-kernen van kernen van niveau0 uit de verzameling K(F ). Beide restricties verkleinen de zoekruimte, eventueel tenkoste van de kwaliteit van het eindresultaat.

Om te beslissen of men een bepaalde kernintersectie k zal afsplitsen als een nieuwefunctie, zal men eerst haar waarde bepalen. Weze NF(k) het aantal functies (in gefactori-seerde vorm) waarin k optreedt, en weze L(k) het aantal literals in de gefactoriseerde vormvan k. Per substitutie van k door een nieuwe literal zullen wij dus L(k) − 1 literals uit-sparen – in totaal NF(k)(L(k)− 1); wij moeten echter een nieuwe functie voor k invoeren– dit kost ons L(k) literals. De totale winst is dus

waarde(k) = (NF(k)− 1)(L(k)− 1)− 1.

126

Page 131: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Wij kunnen nu een aantal kernintersecties afsplitsen, waarbij het mogelijk is dat in deoriginele functies nieuwe kernen ontstaan door de introductie van nieuwe literals. Naeen aantal substituties zullen wij derhalve opnieuw de kernverzameling van de functiesbepalen, en de hele procedure itereren tot wanneer geen nuttige kernintersecties meergevonden worden. Deze procedure kan geformaliseerd worden door het volgende algo-ritme.

Algoritme 4.10 (Het afsplitsen van gemeenschappelijke deelfuncties)De input van dit algoritme is een stelsel van Boolese functies F, en twee parameters k en n. De pa-rameter k bepaalt het niveau van de kernen waarvan wij intersecties zullen zoeken; de parametern begrenst het aantal substituties alvorens wij de nieuwe kernverzameling bepalen. Met Kk(f)bedoelen wij de kernen van f tot en met niveau k, en met I0(K) de kernintersecties opgeleverddoor co-kernen van niveau 0. FROM(x) is de verzameling functies waarin x zal gesubstitueerdworden door een nieuwe literal. De functie SUBSTITUTE(f, x) vervangt in f de vorm x dooreen nieuwe literal die x benoemt. Het algoritme levert een nieuw stelsel van Boolese functies afmet in totaal minder literals.

EXTRACT(F, k, n):

repeatK = ∪f∈F Kk(f)I = I0(K)for (i = 1 to n)

x = argmaxy∈Iwaarde(y)if waarde(x) < 0 exitfor f ∈ FROM(x)

f = SUBSTITUTE(f, x)

F = F ∪ x

return F

Nadat op deze manier alle nuttige gemeenschappelijke deelexpressies geextraheerdwerden, kan men ook op zoek gaan naar nuttige gemeenschappelijke kubussen. Ge-meenschappelijke kubussen kunnen gevonden worden als co-kernen bij de kernextractieuit de verzameling van alle termen waaruit de SVP-vormen van de beschouwde functiesbestaan. Dus in plaats van voor alle functies afzonderlijk de kernen te bepalen, nemenwij alle termen samen in een verzameling, en bepalen daarvan de kernen. De eigenlijkeextractie en substitutie kan gebeuren met een algoritme gelijkaardig aan algoritme 4.10.

Nadat deze twee stappen uitgevoerd zijn garandeert niets de optimaliteit van hetresultaat – het gaat hier immers over heuristische methoden. Het is b.v. nog mogelijk datbepaalde functies andere functies nog delen (hetzij in algebraısche, hetzij in Boolese zin).Men voert dan ook nog een derde optimalisatiestap uit, die men de resubstitutie noemt.Men gaat hier na of inderdaad de SVP-vormen geassocieerd met bepaalde knopen eendeler zijn van de SVP-vormen geassocieerd met andere knopen. Indien dit het geval is,kan men de deling uitvoeren, en alzo het netwerk verder vereenvoudigen.

127

Page 132: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Het gebruik van DON’T CARE-termen Bij tweeniveauminimalisatie van een functiemaakt men gebruik van de opgegeven DON’T CARE-termen in de verzameling Df . De-ze verzameling is vast, daar de argumenten van de functie vast zijn. Anders is het gesteldmet meerniveauminimalisatie. Hier worden de interne variabelen gegenereerd door ge-kende functies, en meestal is het zo dat niet alle mogelijke combinaties van de internevariabelen kunnen optreden. Beschouw bijvoorbeeld een Boolese vergelijking die eenknoop beschrijft:

u = f(x, y, z) = x′y + y′z

In normale werking is het zo dat de relatie tussen u en x, y, z gebonden is door boven-staande vergelijking, dit wil zeggen dat waarden van u die niet aan deze vergelijkingvoldoen niet kunnen optreden. Het stel combinaties van u, x, y, z dat aldus niet kan op-treden wordt gegeven door

u′f + uf ′ = u′x′y + u′y′z + uxy + uxz′ + uy′z′,

wat nuttig kan gebruikt worden in elke knoop die gebruikt maakt van de variabelenu, x, y of z.

Voor elke knoop in het netwerk kunnen aldus een aantal bijkomende DON’T CARE-termen bepaald worden. Noteer met FAN-IN(f) de verzameling van knopen (functies)waarvan de outputs fungeren als input voor de knoop f . Voor j ∈ FAN-IN(f), noteermet xj de literal die de output van knoop j benoemt, en weze fj een SVP-representatievan de functie gerealiseerd door deze knoop. De knoop zorgt er dus voor dat de variabelexj en de vorm fj steeds dezelfde waarde aannemen, en de situatie xj ⊕ fj = 1 kan dusniet voorkomen. De SVP-representatie van de DON’T CARE-termen voor knoop k tengevolge van het feit dat hij zijn inputs uit interne knopen betrekt wordt dan gegeven door

DCinp(k) =∑

j∈FAN-IN(k)

xj ⊕ fj

Noteer dat, als j een inputknoop is, fj letterlijk gelijk is aan xj , en er dus geen bijdrage istot de DON’T CARE-set.

Op dezelfde wijze kan men ook DON’T CARE-sets bepalen die het gevolg zijn vanhet ’stroomafwaarts’ intern gebruik van de literal xk geassocieerd met de knoop k. LaatFAN-OUT(k) de verzameling knopen voorstellen die rechtstreeks gebruik maken van xk.Wanneer de output xj van alle knopen j ∈ FAN-OUT(k) niet afhangt van de waarde vanxk voor een gegeven stel waarden van de andere inputs van knoop j, is dat stel waardenook een DON’T CARE-configuratie voor knoop k (immers, het geeft niet wat de waardeis die de output van de knoop k dan aanneemt). Een SVP-representatie van deze setwordt verkregen na uitwerking van

DCoutp(k) =∏

j∈FAN-OUT(k)

(fj |xk=1 ⊕ fj |xk=0)′.

Hierin is fj/xk de residufunctie van fj in de Shannon-expansie m.b.t. de variabele xk, enkan gevonden worden door in fj de waarde xk = 1 te stellen. Wanneer fj |xk=1 = fj |xk=0

hangt de waarde van fj niet af van xk (ga dit na!).Deze bijkomende DON’T CARE-termen kunnen nuttig gebruikt worden om de SVP-

representatie van de functie van een knoop te vereenvoudigen. Noteer echter dat eenvereenvoudiging van de SVP-representatie niet altijd gepaard hoeft te gaan met een re-ductie van het aantal literals in de gefactoriseerde vorm.

128

Page 133: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4.2.4 Een wat groter voorbeeld

Om het voorgaande te illustreren beschouwen wij een niet al te triviaal voorbeeld. Hetgaat om een oplaadbare 4-bits BCD-op/neerteller, waarvan wij de combinatorische func-ties willen realiseren.

Voorbeeld 4.13 Er zijn vier functies X, Y , Z, W , die de inputs van de D-flipflops van de tellervoorstellen. De inputs van deze functies zijn de huidige stand van de flipflops x, y, z w, de vieringangen voor het opladen a, b, c, d, en twee controle-ingangen e en f . De encodering van dezelaatste is als volgt: ef = 00 betekent de huidige stand behouden, ef = 01 is optellen, ef = 10is aftellen, en ef = 11 is opladen. Als DON’T-CARE-inputs beschouwen wij alle combinaties vanxyzw bij ef 6= 11 die een getal groter dan 9 voorstellen, en alle gelijkaardige combinaties van abcd

bij ef = 11. In meer formele notatie, met de volgorde abcdefxyzw:

DXY ZW = − −−− 001− 1−,−−−− 0011−−,

−−−− 011− 1−,−−−− 0111−−,

−−−− 101− 1−,−−−− 1011−−,

1− 1− 11−−−−, 11−−11−−−−

De vergelijkingen werden in ESPRESSO ingebracht. Het inputformaat ziet eruit als volgt:

.i 10

.o 4

.il a b c d e f x y z w

.ob X Y Z W

.type fdr

; vasthouden (ef =00)----000000 0000----000010 0010----000011 0011----000100 0100----000101 0101----000110 0110----000001 0001----000111 0111----001000 1000----001001 1001

; optellen (ef = 01)----010000 0001----010010 0011----010011 0100----010100 0101----010101 0110----010110 0111----010001 0010----010111 1000----011000 1001----011001 0000

; aftellen (ef = 10)----100000 1001----100010 0001----100011 0010----100100 0011----100101 0100----100110 0101----100001 0000----100111 0110----101000 0111

129

Page 134: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

----101001 1000

; opladen (ef = 11)000011---- 0000000111---- 0001001011---- 0010001111---- 0011010011---- 0100010111---- 0101011011---- 0110011111---- 0111100011---- 1000100111---- 1001

; don’t care-termen----001-1- --------0011-- --------011-1- --------0111-- --------101-1- --------1011-- ----1-1-11---- ----11--11---- ----

Deze functies werden onderworpen aan een tweeniveauminimalisatie door ESPRES-SO, wat het volgende stelsel oplevert:

X = aef + ef ′w′x′y′z′ + e′fwyz + e′w′x + f ′wx

Y = bef + ef ′w′x + e′fwy′z + e′w′y + e′yz′ + f ′wy + f ′yz

Z = cef + ef ′w′x + ef ′w′yz′ + e′fwx′z′ + e′w′z + f ′wz

W = def + ef ′w′ + e′fw′ + e′f ′w

Met het gemeenschappelijk gebruik van de term ef ′w′x vereist de tweeniveaurealisatievan dit stelsel 21 EN-poorten, 4 OF-poorten, en in totaal zijn er 97 poortinputs nodig(EN-poorten en OF-poorten). De maximale fan-in is 6 voor de EN-poorten, en 7 voor deOF-poorten. Voor een realisatie met complexe CMOS-poorten heeft het stelsel 79 literals.

Om over te gaan tot een meerniveaurealisatie met een zo klein mogelijk aantal literals(realisatie met complexe CMOS-poorten), bepalen wij eerst de kernverzamelingen vande vier functies. Het resultaat staat in tabel 4.2.

Uit deze kernentabel zoeken wij de kernintersecties, als mogelijke kandidaten voorde extractie van gemeenschappelijke factoren met minstens een term. Tevens zoeken wijook de gemeenschappelijke kubussen (delen van termen). De resultaten van deze opera-ties vindt men in tabellen 4.3 resp. 4.4 (hier slechts een selectie van de meest nuttige). Dekernintersectie f ′w+e′w′ komt voor in functies X , Y en Z, en wordt dus bij voorkeur ge-nomen als basis voor factorisering. Voorts blijkt bij nazicht dat de kubus ef ′w′ meer winstzou opleveren dan de gemeenschappelijke kern-eenterm ef ′w′x. De gemeenschappelijkekubussen e′fw en ef reduceren ook het aantal literals bij extractie.

Na factorisatie,5 rekening houdend met de voorgenomen extracties van kernintersec-ties (dus nog niet van deelkubussen), krijgen wij dan het volgend stel vergelijkingen.

X = ef ′x′y′z′w′ + f(e′yzw + ae) + x(e′w′ + f ′w)

Y = f(e′y′zw + be) + y(e′z′ + f ′z + e′w′ + f ′w) + ef ′xw′

5De volgende manipulaties werden uitgevoerd met behulp van de SIS-suite.

130

Page 135: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Functie Co-kernen KernW f e’w’ + deW e’ fw’ + f’wW f’ ew’ + e’wW w’ ef’ + e’fW e f’w’ + dfW 1 ef’w’ + e’fw’ + e’f’w + defZ f e’wx’z’ + ceZ w e’fx’z’ + f’zZ z e’w’ + f’wZ e’ fwx’z’ + w’zZ f’ ew’yz’ + ew’x + wzZ w’ ef’yz’ + ef’x + e’zZ z’ e’fwx’ + ef’w’yZ ef’w’ yz’ + xZ e f’w’yz’ + f’w’x + cfZ 1 e’fwx’z’ + ef’w’yz’ + ef’w’x + e’w’z + f’wz + cefY f e’wy’z + beY w e’fy’z + f’yY f’y z + wY e’y z’ + w’Y y e’z’ + e’w’ + f’z + f’wY z e’fwy’ + f’yY e’ yz’ + fwy’z + w’yY f’ ew’x + yz + wyY w’ ef’x + e’yY e f’w’x + bfY 1 e’yz’ + e’fwy’z + ef’w’x + e’w’y + f’yz + f’wy + befX f e’wyz + aeX w f’x + e’fyzX x e’w’ + f’wX e’ w’x + fwyzX f’ ew’x’y’z’ + wxX w’ ef’x’y’z’ + e’xX e f’w’x’y’z’ + afX 1 ef’w’x’y’z’ + e’w’x + f’wx + e’fwyz + aef

Tabel 4.2: De kernen van de BCD-teller

131

Page 136: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Kern Functiesf’w X, Y, Z, Wf’w + e’w’ Z, Y, Xef’x Y, Zf’y Y, Yf’z Y, Zew’x Y, Ze’w’ X, Y, Z, Wf’w’x Y, Zef’w’x Y, Zyz’ Y, Z

Tabel 4.3: Gemeenschappelijke termen van kernen

Kubus Aantal plaatsen in svp-vorm Winst bij extractiee’fw 3 3ef’w’ 5 9ef 4 2e’w’ 4 2f’w’ 4 2e’f 4 2ef’w’x 2 2

Tabel 4.4: Interessante gemeenschappelijke kubussen

132

Page 137: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Z = cef + z′(ef ′yw′ + e′fx′w) + z(e′w′ + f ′w) + ef ′xw′

W = e′f ′w + def + w′(ef ′ + e′f)

De gemeenschappelijk extraheerbare onderdelen staan in het vetjes. Het aantal literals isdoor de factorisatie al gereduceerd tot 70. Na extractie krijgen wij

X = ef ′x′y′z′w′ + f(e′yzw + ae) + xg

Y = f(e′y′zw + be) + y(e′z′ + f ′z + g) + h

Z = cef + z′(ef ′yw′ + e′fx′w) + zg + h

W = e′f ′w + def + w′(ef ′ + e′f)

g = e′w′ + f ′w

h = ef ′xw′

wat ons nog 63 literals oplevert. Nu voeren wij een nieuwe minimalisatie en factorisatieuit, rekening houdend met de nieuwe DON’T CARE-termen. Wij krijgen:

X = aef + g′(f ′y′z′h′ + e′yz) + xg

Y = e′y′zg′ + bef + y(e′z′ + f ′z + g) + h

Z = z′g′(f ′y + e′x′) + cef + zg + h

W = g(e′w + f) + g′(de + f ′)

g = e′w′ + f ′w

h = f ′xg′

wat 54 literals bevat.Na extractie van de gemeenschappelijke kubussen verkrijgen wij het uitgebreid stel

vergelijkingen.

X = x′y′z′i + yk + aj + xg

Y = yi′j′k′ + i(yz + x) + y′k + bj

Z = e′x′z′g′ + i(yz′ + x) + cj + zg

W = deg′ + g(e′w + f) + i

g = e′w′ + f ′w

i = f ′g′

j = ef

k = e′zg′

Het aantal literals werd teruggebracht op 53. De nog aanwezige factorisatie zou kunnengebruikt worden om het aantal literals in bepaalde vormen verder te reduceren (b.v. infunctie Y ), door de deler ook te extraheren en te realiseren als aparte functie. Noteer datdit echter het totaal aantal literals weer opvoert.

Verdere vereenvoudigingsstappen, zoals het nagaan van deelbaarheid van de functiesdoor elkaar, brengen geen bijkomende winst.

Noteer dat deze methode heuristisch is, en geen garantie biedt dat een globaal opti-mum is bereikt.

133

Page 138: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4.2.5 ULM’s en Multiplexersynthese

In deze sectie zullen wij kort ingaan op een alternatieve methode voor meerniveausyn-these. De methode is gesteund op het begrip universele logische module (ULM), een bouw-blok waarmee men willekeurige Boolese functies van een beperkt aantal variabelen kanrealiseren.

Een ULM is gebaseerd op de Shannondecompositie van Boolese functies. Even op-frissen: als f(x1, . . . , xn) een Boolese functie is van n variabelen, dan geldt

f(x1, . . . , xn) = x′1f(0, x2, . . . , xn) + x1f(1, x2, . . . , xn)

waarbij men deze decompositie kan doen voor een willekeurige variabele xi. De functiesf(0, x2, . . . , xn) en f(1, x2, . . . , xn) hebben een variabele minder, en worden de residufunc-tie genoemd van f met betrekking tot x1.

Men kan de Shannondecompositie uitbreiden tot meerdere variabelen, als volgt

f(x1, . . . , xn) =∑

i1i2···ik∈0,1k

xi11 xi2

2 · · ·xikk f(i1, i2, . . . , ik, xk+1, . . . , xn),

waarin xijj = xj , als ij = 1, en x

ijj = x′j , als ij = 0. Het spreekt vanzelf dat men de-

ze decompositie kan doen voor een willekeurige deelverzameling van de n variabelen.Wanneer men de decompositie doet voor n − 1 variabelen, dan bevatten de 2n−1 resi-dufuncties maar een variabele meer, zeg xn. De residufuncties kunnen dus slechts 4gedaanten aannemen: 0, 1, xn, of x′n. Deze gedaanten noemen wij triviale functies. Menzou equivalent kunnen starten van een BDD-representatie van de functie.

Naieve multiplexersynthese

Deze laatste decompositie kan onmiddellijk in circuitvorm gegoten worden door middelvan een 2n−1 → 1-multiplexer: het volstaat dat men de n − 1 decompositievariabelenverbindt met de controle-ingangen van de multiplexer, en de triviale residufuncties (dieinderdaad op triviale wijze gerealiseerd worden) verbindt met de geschikte data-ingangvan de multiplexer. Op deze manier kan men de multiplexer gebruiken als ULM.

Wanneer men niet beschikt over multiplexers met voldoende controle-ingangen (k <

n− 1), kan men een boomvormig netwerk van multiplexers gebruiken. De wortel van deboom doet een decompositie op basis van k variabelen. Elk van de 2k residufuncties – dieniet-noodzakelijk triviaal zijn – worden door een tweede laag van multiplexers verdergedecomposeerd op k van de overblijvende variabelen. Men kan dit recursief verderdoen tot wanneer de residufuncties triviaal geworden zijn. Men ziet in dat men, op dezenaieve manier, met behulp van ten hoogste 2j − 1 multiplexers met k controle-ingangeneen willekeurige functie van jk + 1 variabelen kan realiseren. Wanneer men start vanuiteen BDD-representatie komt men zeer snel tot een realisatie; men legt echter de volgordevan de variabelen vast in elke tak.

Men kan echter proberen beter te doen, en het aantal multiplexers te reduceren. Devrijheidsgraad waarover men beschikt is de keuze van de k variabelen die men bij elkemultiplexer zal gebruiken voor de decompositie. Door een geschikte keuze kan men er invele gevallen voor zorgen dat de residufuncties zo snel mogelijk triviaal worden, zodanigdat geen verdere multiplexers nodig zijn voor hun realisatie. Een verdere vrijheidsgraadis uiteraard het gemeenschappelijk gebruik van identieke, niet-triviale residufuncties (het

134

Page 139: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

netwerk is dan geen boom meer, maar dit is van geen enkel belang). Net zoals bij ande-re combinatorische minimalisatieproblemen is de zoekruimte ook hier exponentieel: permultiplexer moet men de ‘beste’ deelverzameling van k variabelen uit de overblijvendevariabelen selecteren. Dit probleem werd onderzocht, en door Voith ([Voith77]) werd eensystematische methode voorgesteld voor de optimale synthese met behulp van multi-plexers. Wij zullen nu deze kort bespreken aan de hand van een voorbeeld.

De methode van Voith

Als ULM-bouwsteen beschouwen wij een 2-naar-1-multiplexer f(s, x, y) = s′x+sy, waar-in s de selectie-input is, en x en y de data-inputs.

Wanneer een functie gerealiseerd wordt als een multiplexerboom met triviale residu-functies, dan kan men een svp-uitdrukking neerschrijven die de structuur van deze boomweergeeft. Figuur 4.10 toont de realisatie en de svp-vorm van een eenvoudige functie.Karakteristiek aan de svp-vorm is dat de diverse produkten compatibel zijn met elkaar.Hiermee bedoelen wij dat alle termen uit de svp minstens een variabele gemeenschappe-lijk hebben (de controlevariabele op de wortel van de boom). Wanneer wij deze variabeleweglaten, krijgen wij twee residuele svp’s, die elk weer een multiplexerboom voorstellen,en dus weer compatibel zijn.

Bovendien zal, wanneer de realisatie optimaal is, de diepte van de boom en van elkesubboom zo klein mogelijk zijn. Dit betekent dat de termen uit de corresponderende svpzo kort mogelijk moeten zijn (d.w.z., zo weinig mogelijk literals bevatten).

Ons doel is dus duidelijk: schrijf de functie als een zo klein mogelijk stel van compa-tibele kubussen. De methode van Voith zoekt een dergelijk stel produkten. De methodeheeft nogal wat gelijkenis met de methode van Quine-McCluskey. In een eerste stapwordt gezocht naar de kortst mogelijke produktvormen, de multiplexerimplicanten, diein aanmerking kunnen komen bij een multiplexersynthese. In een tweede stap zoekt menhet grootst mogelijk compatibel stel uit deze produkten, en realiseert men de functie. Alser op dat punt nog niet-triviale residufuncties aanwezig zijn, zal men de methode hieropitereren. Wij zullen de functie

f(x, y, z, w) = xy′z + x′yz′ + zw

realiseren bij wijze van voorbeeld.

De multiplexerimplicanten. Schrijf de waarheidstabel van de functie neer, maar geor-dend volgens gewicht. Achter elke inputcombinatie schrijft men de waarde (0 of 1) diede functie daar aanneemt. Elke regel uit de tabel bestaat dus uit een inputgedeelte I

van lengte n, en een outputgedeelte F van lengte 1. Men genereert een tweede tabel, dietwee regels met een inputgedeelte op Hamming-afstand 1 combineert tot nieuwe termen.Weze F1 en F2 de outputgedeelten van deze regels. Het nieuwe inputgedeelte I wordtbepaald zoals in Quine-McCluskey’s tabelmethode. Men vervangt de variabele xi waar-in het verschil optreedt door een ‘−’. Wanneer wij de regel waarin de variabele xi als 0optreedt regel 1 noemen, voldoet het nieuwe outputgedeelte F aan:

F =

F1, als F1 = F2

xi, als F1 = 0 en F2 = 1x′i, als F1 = 1 en F2 = 0

135

Page 140: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Deze regels modelleren in feite het laten samenvallen van twee paden in de multi-plexerboom. Deze paden worden voorgesteld door de inputgedeelten I1 en I2, met devariabele xi helemaal op het eind van het pad. De functie F stelt de functie voor, ge-realiseerd door de multiplexer gecontroleerd door xi, en waaraan F1 resp. F2 als inputsverbonden worden. De bedoeling is dat de functies F triviale functies blijven. Als dit gebeurtkan de laatste multiplexer (en dus de variabele xi) wegglaten worden, en de twee padenvervangen door een pad.

De tweede tabel kan verder getransformeerd worden in een derde tabel, door verderregels te combineren. Regels zijn nu combineerbaar wanneer de inputgedeelten in ter-naire notatie op Hamming-afstand 1 liggen van elkaar, en wanneer de outputgedeeltenaanleiding zullen geven tot een nieuwe triviale functie. Hiervoor is nodig dat F1 = F2, ofdat F1, F2 ∈ 0, 1. Men blijft combinaties uitvoeren tot wanneer men niet verder kan. Deregels (implicanten) die men niet verder kan combineren noemt men priem. Het resultaatstaat weergegeven in figuur 4.8.

Maximale Compatibele Implicantverzamelingen. Uit het stel van priemimplicantenzal men nu een zo groot mogelijk stel extraheren dat samen een multiplexerboom kanvormen. De nodige voorwaarde is dat de implicanten compatibel zijn. De definitie vancompatibiliteit werd hierboven al gesuggereerd. Wij zullen ze nu concreet formuleren.

Definitie 4.17 Het residu van een verzameling produkten die alle een gegeven literal l bevatten,is de originele verzameling produkten, maar waar in elk produkt de literal l werd geschrapt.

Definitie 4.18 Een stel produkten is compatibel asa ze alle minstens een gemeenschappelijkevariabele bevatten, en de deelverzamelingen produkten die de variabele bevatten in gecomplemen-teerde resp. niet-gecomplementeerde vorm leeg zijn of compatibele residu’s hebben.

Met behulp van deze definitie kan men de maximale compatibele verzamelingen vanmultiplexer-priemimplicanten bepalen. Men begint met de koppels samen te stellen, danalle compatibele tripels, enz. Figuur 4.9 toont het resultaat van het voorbeeld. De eerstetabel is de representatie van de priemimplicanten uit figuur 4.8, laatste kolom.

Functierealisatie. Men vertrekt van een maximale compatibele verzameling. Deze ver-zameling representeert minstens een multiplexerboom. Wij zullen de opgegeven functief realiseren met behulp van die multiplexerboom. Daartoe berekenen wij de residu’svan de originele functie f op elk van de paden doorheen de boom. Dit gebeurt doorShannondecompositie volgens de variabelen die een pad in de boom vastleggen. Een(liefst zo groot mogelijk) aantal residu’s zullen triviaal zijn. Wanneer alle residu’s triviaalzijn, is de synthese afgelopen. Wanneer bepaalde residufuncties niet-triviaal zijn moetmen de procedure recursief toepassen op deze functies om te komen tot een completemultiplexerrealisatie.

In ons voorbeeld, laat ons de eerste verzameling x′z′, x′z, xy′ nemen als maximaalcompatibel stel. De gemeenschappelijke variabele is x. De Shannondecompositie op x is

f(x, y, z, w) = x′(yz′ + zw) + x(y′z + zw)

De tweede variabele is z in de tak geselecteerd door x′, en y in de andere tak:

f(x, y, z, w) = x′(z′y + zw) + x(y′(z + zw) + yzw) = x′(z′y + zw) + x(y′z + yzw)

136

Page 141: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 1

0000 00001 00010 00100 11000 00011 10101 11001 00110 01010 11100 00111 11011 11101 01110 01111 1

Tabel 2

000- 000-0 00-00 y-000 000-1 z0-01 y-001 0001- w0-10 0-010 x010- 101-0 z’-100 x’100- 010-0 z1-00 00-11 1-011 101-1 0-101 x’10-1 z1-01 0011- w’-110 0101- 11-10 y’110- 011-0 0-111 11-11 111-1 z111- w

Tabel 3

0-0- y-00- 00-1- w-0-1 z-10- x’10– z1-0- 0–11 1-11- w1–1 z

Figuur 4.8: Het opzoeken van de multiplexer-priemimplicanten

137

Page 142: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

x’z’y’z’x’zy’wyz’xy’xz’zwyzxw

x’z’,x’zx’z’,xy’x’z’,xz’x’z’,zwx’z’,yzx’z’,xwy’z’,x’zy’z’,yz’y’z’,zwy’z’,yzx’z,yz’x’z,xy’x’z,xz’x’z,xwy’w,yz’y’w,yzyz’,xy’yz’,zwyz’,yzxy’,yzxz’,zwxz’,yz

x’z’,x’z,xy’x’z’,x’z,xz’x’z’,x’z,xwx’z’,xz’,zwx’z’,xz’,yzy’z’,x’z,yz’y’z’,yz’,zwy’z’,yz’,yzy’w,yz’,yzyz’,xy’,yz

Figuur 4.9: Het samennemen van produkten in compatibele klassen

138

Page 143: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

0

1

0

1

0

1 0

1

f

x

z

y

y

w

z

z

w

0

Producten:

x’z’y

x’zw

xy’z

xyzw

Producten:

z’x’y

zy’x’w

zy’x

zyw

0

1

0

1

0

1

0

1

f

z

x

y

y

0

xw

1

w

f(x,y,z,w) = xy’z + x’yz’ + zw

Figuur 4.10: De realisatie van een logische functie door middel van 2-naar-1- multiplexers

De residufuncties zijn dus: y voor x′z′, w voor x′z, en z voor xy′ en zw voor xy. De laatsteresidufunctie is niet triviaal.Een andere keus is het vijfde stel yz, xz′, x′z′. De decompositie volgens dit stel is

f(x, y, z, w) = z′(x′y + x0) + z(y′(x + w) + yw)

Hier zijn alle residu’s triviaal, op x + w na. Figuur 4.10 toont de twee bovenstaanderealisaties, waarbij ook de residufuncties verder geexpandeerd werden.

De methode van Voith kan uitgebreid worden tot multiplexers met meer dan een se-lectie-input. Zij houdt echter geen rekening met gemeenschappelijk gebruik van reedsgerealiseerde deelfuncties, omdat zij enkel zuivere boomstructuren genereert. Deze me-thode is dus zeker geen globaal optimale methode. In vergelijking met de techniek vanfactorisatie kunnen wij opmerken dat de multiplexerbouwblokken minder vrijheidsgra-den bieden dan de volstrekt vrije functies van de factorisatiemethode. Men kan dus ver-wachten dat de optimale multiplexerrealisatie minder efficient zal zijn dan de oplossingverkregen door factorisatie.

Boolese Decisiediagrammen

Een minimaal BDD is een functierepresentatie die rechtstreeks aanleiding geeft tot eenmultiplexerrealisatie van een functie, waarin nu wel reeds gerealiseerde deelfuncties her-gebruikt worden – in feite wordt elke deelfunctie precies een keer gerealiseerd! Men weetechter dat de complexiteit van een BDD sterk kan afhangen van de ordening van de vari-abelen; de keuze van een optimale ordening is duidelijk een bezigheid met exponentielecomplexiteit (n!). Bovendien is een BDD gestratifieerd, dit wil zeggen dat in elk pad vande wortel naar een blad, de optredende variabelen in dezelfde volgorde voorkomen. Dit isniet het geval in de methode van Voith. Dus opnieuw kan men zeggen dat een op BDD’sgebaseerd netwerk geen globaal optimale oplossing zal zijn.

139

Page 144: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

4.2.6 Spectrale Technieken

Spectrale technieken voor de meerniveausynthese van combinatorische netwerken zijngesteund op lineaire, inverteerbare transformaties van functies, die bijzonder veel for-mele gelijkenis vertonen met de Fourier-transformatie van reele of complexe functies.In hoofdstuk 2 kwamen twee bruikbare transformaties aan bod: de Hadamard-Walsh-transformatie en de Reed-Mullertransformatie. Wij zullen eerst heel bondig enkele ei-genschappen van de Hadamard-Walshtransformatie in herinnering brengen.

Spectrale Transformaties

Wanneer men het domein van een Boolese functie op een gestandaardiseerde manierenumereert, kan men de waarheidstabel van een functie met n variabelen zien als een se-quentie met lengte 2n over 0, 1. Men kan deze sequentie transformeren op een lineaire,inverteerbare manier in een andere sequentie van dezelfde lengte door haar voor te stel-len als een kolommatrix en haar te vermenigvuldigen met een goedgekozen matrix metdimensie 2n × 2n. De matrixvermenigvuldiging, die bestaat uit vermenigvuldigingen enoptellingen, wordt uitgevoerd in een commutatieve ring. Dit vereist o.m. het bestaan vanadditieve inversen. Men kan de ring van de gehele getallen nemen, of ook het Boolesedomein met als additieve operator de exclusieve OF ⊕ en als multiplicatieve operatorde Boolese EN. De Hadamard-Walshtransformatie gebruikt de eerste mogelijkheid, deReed-Mullertransformatie de tweede.

De Hadamard-Walshtransformatie. De Hadamard-Walshmatrix Hn van orde n heeftdimensie 2n × 2n, en bestaat uit de getallen 1 en −1. Hij heeft een recursieve structuur

Hn =

[

Hn−1 Hn−1

Hn−1 −Hn−1

]als n > 0,

[1] anders.

Deze matrix heeft een aantal interessante eigenschappen. Hij is symmetrisch en niet-sin-gulier, hij is proportioneel met zijn eigen invers met factor 2n, en zijn rijen en kolommenzijn paarsgewijs orthogonaal. Wanneer men de elementen 1 en −1 als boolese waardeninterpreteert, stelt de i-de rij (of kolom) de waarheidstabel voor van de functie

bi =⊕j∈Si

xj

waarin Si ⊂ 1, 2, . . . , n de plaatsen bevat (variabelenamen) waarin de binaire represen-tatie van i 1 is.

De Hadamardtransformatie of spectrum van een functie f

F = Hnf

is een kolomvector van 2n gehele getallen. Het i-de getal stelt dan de gelijkenis voor metde i-de rij (basisfunctie) uit de matrix.

De Hadamardtransformatie heeft een aantal eigenschappen die sterke formele gelij-kenis vertonen met de Fouriertransformatie. Zo kan men de volgende convolutiestellingbewijzen. Weze, voor twee natuurlijke getallen i en τ , i⊕τ gedefinieerd als het natuurlijkgetal gerepresenteerd door de bitsgewijze exclusieve-OF tussen de binaire representaties

140

Page 145: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

van i en τ . Dan definieren wij de convolutie of correlatie6 tussen twee functies f en g vann variabelen als

Rfg(τ) = f ∗ g(τ) =2n−1∑i=0

f(i)g(i⊕ τ).

Weze F = Hf en G = Hg de Hadamard-Walshtransformaties van resp. f en g. Dangeldt:

f = 2−nHF (4.6)

g = 2−nHG (4.7)

of, in componenten uitgeschreven,

f(x) = 2−n2n−1∑y=0

Hx,yF (y) (4.8)

g(x) = 2−n2n−1∑y=0

Hx,yG(y) (4.9)

Wanneer wij dit in de uitdrukking voor Rfg(τ) substitueren vinden wij:

Rfg(τ) =2n−1∑i=0

2n−1∑x=0

2−nHi,xF (x)2n−1∑y=0

2−nHi⊕τ,yG(y) (4.10)

= 2−n2n−1∑x=0

2n−1∑y=0

F (x)G(y)2n−1∑i=0

2−nHi,xHi⊕τ,y (4.11)

= 2−n2n−1∑x=0

2n−1∑y=0

Hτ,yF (x)G(y)2n−1∑i=0

2−nHi,xHi,y (4.12)

= 2−n2n−1∑x=0

2n−1∑y=0

Hτ,yF (x)G(y)2−n2nδx,y (4.13)

= 2−n2n−1∑y=0

Hτ,yF (y)G(y). (4.14)

Hierin hebben wij gebruik gemaakt van de orthogonaliteit van de rijen van H , en van hetfeit dat Hi⊕τ,y = Hτ,yHi,y. Dit laatste kan eenvoudig ingezien worden als men gebruikmaakt van de betekenis van de rijen van H , en de grootheden i, τ en i ⊕ τ interpreteertals verzamelingen variabelen.

Het blijkt dus dat, net zoals bij de Fouriertransformatie, de correlatie kan berekendworden als een inverse transformatie van een puntsgewijs produkt van getransformeer-den. Dit is een zeer nuttige stelling, aangezien de rechtstreekse berekening van de cor-relatiefunctie O(22n) berekeningen vraagt, terwijl dit via de getransformeerden, mits hetgebruik van Fast Fourier-technieken, kan met O(n2n) berekeningen.

Complexiteit van functies

De functie Rfg(τ) meet de ‘gelijkenis’ tussen de ON-set van f en een over τ ‘verschoven’versie van g. Wanneer f = g spreken wij over de autocorrelatie Rff (τ) van de functief . Deze autocorrelatiefunctie heeft een heel bijzondere interpretatie. Voor τ = 0 meet

6convolutie en correlatie zijn identiek omdat ⊕ zijn eigen invers is.

141

Page 146: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Rff (τ) het gewicht van f (het aantal mintermen). Wanneer wij bovendien τ kiezen alseen macht van 2, stelt τ een verschuiving voor over Hamming-afstand 1, en Rff (τ) telthet aantal mintermen gelegen op afstand 1 van een andere minterm in de richting van τ .De binaire representatie voor dergelijke waarde van τ heeft gewicht 1, wat wij noterenals |τ | = 1. De grootheid

G(f) =∑|τ |=1

Rff (τ)

is een dan maat voor het aantal mintermen die op afstand 1 liggen van een andere min-term, volgens een der basisrichtingen in de n-cubus. Hoe groter G(f), hoe economischerf kan gerealiseerd worden in een som-van-productenvorm, aangezien de ligging van demintermen de vorming van grote implicanten mogelijk maakt.

Voorbeeld 4.14 Beschouw de functie f1(x, y, z, w) = x. Deze functie is bijzonder eenvoudig terealiseren. Haar autocorrelatiefunctie wordt gegeven door

Rf1f1(τ) = [8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0]t

met grote waarden op τ = 0100, 0010, 0001 (binaire representatie). De waarde G(f1) = 24 wijstop een goede implementeerbaardheid.

De functie f2 = x(y ⊕ z ⊕ w) daarentegen heeft geen implicanten van dimensie groter dan 0.Haar autocorrelatiefunctie is

Rf2f2(τ) = [4, 0, 0, 4, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0]t

en heeft maxima bij τ = 0011, 0101, 0110. De waarde G(f2) = 0 wijst op een moeilijke implemen-teerbaarheid.

Lineaire decompositie

Zoals het voorbeeld aantoont, kan het zijn dat G(f) niet groot is, maar dat Rff (τ) een gro-te waarde aanneemt voor waarden van τ die Hamming-afstanden groter dan 1 voorstel-len. Dergelijke functies zijn rechtstreeks niet economisch te realiseren, omdat er niet veelgrote priemimplicanten kunnen gevonden worden. Stel echter dat wij een soort coordi-natentransformatie kunnen toepassen op het domein van de functie f , die neerkomt opeen permutatie van de cellen in de Karnaughkaart van f , zodanig dat de mintermen nuin veel grotere clusters gegroepeerd liggen. Denk hierbij een ogenblik aan Rubik’s Ku-bus. Het gebruik van een permutatie zorgt ervoor dat elk punt van het domein bestrekenwordt, en dat wij nog steeds de oorspronkelijke functie kunnen realiseren. Het feit datde nieuwe Karnaughkaart er ‘beter’ uitziet maakt economischer realisaties mogelijk.

Welk soort transformaties leidt tot een permutatie van het definitiedomein? Figuur4.11 toont hoe het domein van een functie van drie argumenten kan getransformeerdworden, door het gebruik van nieuwe variabelen die exclusieve-OF-combinaties zijn vande originele variabelen.

Men kan nagaan dat de transformatie die in figuur 4.11 voorgesteld wordt een lineairetransformatie is met betrekking tot de operaties EN en ⊕ over de coefficienten 0, 1:

(c1x1 ⊕ c2x2)⊕ (c1y1 ⊕ c2y2) = c1(x1 ⊕ y1)⊕ c2(x2 ⊕ y2).

Stel dan dat wij, meer algemeen, voor een gegeven waarde van τ , een lineaire transfor-matie σ zouden kunnen vinden op de variabelen x = x1, . . . , xn, die x afbeeldt op y:

y(x) = σx

142

Page 147: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

x

y

z

a = x ⊕ y

b=y

c=z

Figuur 4.11: Permutatie van de cellen van een Karnaughkaart door een lineaire transformatie

zodanig dat στ in het nieuwe stelsel een verschuiving over Hamming-afstand 1 voorsteltvolgens een van de hoofdrichtingen in de y-ruimte.

De transformatie σ kan voorgesteld worden door een binaire matrix over 0, 1, en dematrixvermenigvuldiging maakt gebruik van de EN en de operatie ⊕. Dan ligt het punt

σ(x⊕ τ) = (σx)⊕ (στ)

op afstand 1 van y = σx.Wij kunnen de transformatie zelfs zo kiezen dat n lineair onafhankelijke vectoren in de

x-ruimte τ1, . . . , τn afgebeeld worden op de basisvectoren y1 y2 . . . yn van de y-ruimte.De gewenste transformatiematrix σ kan gevonden worden als volgt. Weze de kolommenvan de matrix τ gegeven door de n onafhankelijke vectoren τi,

τ = [τ1 τ2 . . . τn].

Dan is bij constructie[y1 y2 . . . yn] = I = στ,

met I de eenheidsmatrix. Hieruit volgt dat σ = τ−1. De inverse bestaat, aangezien devectoren τi lineair onafhankelijk verondersteld werden. Met behulp van σ kan de functief dan gedecomposeerd worden als een samenstelling van de lineaire transformatie σ eneen Boolese functie g

f(x) = g(y(x)) = g(σx).

Wanneer wij de vectoren τi zodanig kiezen dat∑

i Rff (τi) maximaal is, dan zal na trans-formatie G(g) maximaal worden, en g zal gemakkelijker te realiseren zijn dan de oor-spronkelijke f .

Het stel vectoren τi kan gevonden worden als volgt: men kiest als τ1 een punt (ver-schillend van 0) waar Rff (x) maximaal is:

τ1 = arg maxx 6=0Rff (x).

Weze L(v1, . . . , vn) de ruimte opgespannen door v1, . . . , vn, d.w.z

L(v1, . . . , vn) =⊕

i=1,...,n

ci∈0,1

civi.

Dan isτ2 = arg maxx/∈L(τ1)Rff (x)

enτ3 = arg maxx/∈L(τ1,τ2)Rff (x)

143

Page 148: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

enzevoort, dus we kiezen telkens die vector die Rff (x) maximaliseert, en die lineair on-afhankelijk is van de reeds gekozen vectoren.

De procedure wordt duidelijk aan de hand van de tweede functie uit voorbeeld 4.14.Als eerste vector τ1 kunnen wij 3 = 0011 kiezen, en L(3) = 0, 3. Als tweede vectorkiezen wij τ2 = 5 = 0101, en zetten L(3, 5) = 0, 3, 5, 6. De twee overige vectorenkunnen nu niet meer gekozen worden op grote waarden van Rf2f2(x). Wij kiezen τ3 = 1,waaruit L(1, 3, 5) = 0, 1, 2, 3, 4, 5, 6, 7, en τ4 = 8. Aangezien L(1, 3, 5, 8) = 0, 1, . . . , 15,overspannen wij de hele ruimte en zijn onze vectoren lineair onafhankelijk. Wij vindendan

τ =

0 0 0 10 1 0 01 0 0 01 1 1 0

en dus

σ = τ−1 =

0 0 1 00 1 0 00 1 1 11 0 0 0

.

Wanneer wij de coordinaten in de nieuwe ruimte a, b, c, d noemen vinden wij de volgendetransformatievergelijkingen:

a = z (4.15)

b = y (4.16)

c = y ⊕ z ⊕ w (4.17)

d = x (4.18)

De nieuwe functie wordt g2(a, b, c, d) = dc, wat eenvoudiger is dan de oorspronkelijkefunctie f2(x, y, z, w) = x(y ⊕ z ⊕ w). De realisatie van de functie wordt voorgesteld infiguur 4.12. De lineaire transformatie σ wordt gerealiseerd door middel van exclusieve-OF-poorten, terwijl de residuele functie h gerealiseerd wordt als een som-van-producten(in dit geval een enkel produkt).

Meervoudige functies in kubusvorm

De voorgaande uitleg gaat er van uit dat wij maar een functie te realiseren hebben. Bo-vendien vereist zij de manipulatie van de waarheidstabel, wat voor functies van veelvariabelen uitgesloten is. Varma en Trachtenberg [Varma89] hebben een methode voor-gesteld om de spectrale techniek rechtstreeks toe te passen op kubusspecificaties van meer-voudige functies.

De idee is dat wij rechtstreeks schattingen kunnen maken van de plaatsen waar de au-tocorrelatiefunctie van de opgegeven meervoudige functie maximaal wordt, en dit zonderde berekening van de volledige waarheidstabel of autocorrelatiefunctie.

Wanneer wij de definitie van Rff (x) herbekijken

Rff (x) =2n−1∑i=0

f(i)f(i⊕ x),

dan zien wij dat Rff (x) niet anders is dan het gewicht van de functie f(i)f(i⊕ x). Dus wijzullen eerst nagaan hoe wij het gewicht kunnen bepalen van een meervoudige functiedie gespecificeerd is door middel van kubussen.

144

Page 149: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

w

xy’z’w

xy’z’

w’

xy’z

w’

xyz’

w

xyz

f2

x

y

z

w

1

1

1

1

a=z

b=y

c = y⊕ z⊕ w

d=x

1 1 1 1

x

y

z

w

b

a

c

d

f2

(a) Rechtstreeks (b) Na decompositie

Figuur 4.12: Originele realisatie en spectrale decompositie van de functie f2 uit het voorbeeld

Gewichtsbepaling. Wij vertrekken van de representatie gebruikt bij het ESPRESSO-algo-ritme. Elke regel bestaat uit een inputgedeelte en een outputgedeelte. Het inputgedeeltestelt een binaire kubus voor, met een afmeting gegeven door 2r, waarin r het aantal vrij-heidsgraden− van het inputgedeelte is. Het outputgedeelte bevat een 1 voor alle functieswaarvan de kubus voorgesteld door het inputgedeelte een implicant is.

Definitie 4.19 Het gewicht van een kubus wordt gegeven door het produkt van de afmeting vanhet inputgedeelte en het gewicht van het outputgedeelte.

Definitie 4.20 Het gewicht van de meervoudige functie is de som van de gewichten van de indi-viduele functies.

Wij kunnen het gewicht van de meervoudige functie zomaar niet bepalen door desom te nemen van de gewichten van de kubussen. Meestal is het immers zo dat dekubussen niet disjunct zijn voor een of meerdere functies. De mintermen bevat in deintersectie van deze kubussen zouden dubbel (of meer) geteld worden.

Geınspireerd op het inclusie-exclusieprincipe uit de probabiliteitsleer

P (A ∪B ∪ C) = P (A) + P (B) + P (C)− P (A ∩B)− P (A ∩ C)− P (B ∩ C)

+P (A ∩B ∩ C) (4.19)

kunnen wij een tot een methode komen om het gewicht te bepalen. Daartoe moeten wijeen correctie doorvoeren voor dubbel getelde mintermen. Opdat een minterm dubbelgeteld zou kunnen worden moet hij in minstens twee kubussen aanwezig zijn, en dusook in hun intersectie.

145

Page 150: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie 4.21 Twee kubussen zijn disjunct wanneer hun inputgedeelten disjunct zijn (con-flicterende coordinaten (0,1) of (1,0) op minstens een positie), of wanneer het resultaat van debitsgewijze EN-operatie tussen de outputdelen geen 1 meer bevat.

Definitie 4.22 De intersectie van de niet-disjuncte kubussen x = (x1, . . . , xn) en y = (y1, . . .

, yn) is een kubus z = (z1, . . . , zn) waarvan het outputgedeelte het resultaat is van de bitsgewijzeEN tussen de outputgedeelten, en het inputgedeelte op plaats i gegeven wordt door

zi =

xi , als xi = yi

xi , als yi = −yi , anders.

Gebruikmakend van formule 4.19 en definitie 4.22 kunnen wij nu alle mintermen een-duidig enumereren. Wij bepalen de paarsgewijze intersecties, de intersecties van drietal-len, viertallen, enz. De gewichten van de intersecties worden bepaald zoals in definitie4.19, maar met alternerend teken volgens formule 4.19. Wanneer wij dubbels tegenko-men laten wij deze weg, maar wij tellen het gewicht van de weggelaten kubus op bij deoverblijvende. De algebraısche som van de gewichten van de zo verkregen gewichten ishet gevraagde gewicht van het stel te realiseren functies.

Evalueren van de autocorrelatiefunctie. De waarde van de autocorrelatiefunctie in hetpunt τ is het gewicht van de functie f(x)f(x ⊕ τ). Wat is echter de representatie van defunctie f(x ⊕ τ)? Om deze te vinden laten wij de translatie τ inwerken op de inputge-deelten van de kubussen in de specificatie van f . Dit gebeurt door de componentsgewijzeexclusieve-OF te nemen tussen het inputgedeelte en τ , waarbij −⊕ 1 = −⊕ 0 = 1⊕− =0 ⊕ − = −. Het produkt f(x)f(x ⊕ τ) wordt dan berekend door de paarsgewijze inter-secties te berekenen van de kubussen in f(x) en f(x⊕ τ). Van deze meervoudige functiebepalen wij dan het gewicht met de inclusie-exclusiemethode.

Voorbeeld 4.15 Laat ons de voorgaande stappen illustreren met een kort voorbeeld. Weze demeervoudige functie gegeven door

f(x) =

−10− 01100−− 1011−−0 110

en weze τ = 1 = 0001. Wij vinden

f(x⊕ (0001)) =

−10− 01100−− 1011−−1 110

en dus

f(x)f(x⊕ (0001)) =

−10− 0111101 01000−− 1011100 010

Het gewicht van deze functie wordt bepaald door de lijst

f(x)f(x⊕ (0001)) =

−10− 011 81101 010 100−− 101 81100 010 1

1101 010 −11100 010 −1

146

Page 151: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 4.13: Hazards in combinatorische netwerken

waarin wij de algebraısche gewichten vermeld hebben. Hieruit volgt dat Rff (0001) = 8 + 1 + 8 +1− 1− 1 = 16

4.3 Combinatorische hazards

Een combinatorische hazard is een eigenschap van combinatorische netwerken die de mo-gelijke aanwezigheid van overgangsverschijnselen op de functie-output bij veranderingenvan de input aangeeft. Bijvoorbeeld, wanneer een functie de waarde 0 (resp. 1) aanneemtop twee aangrenzende waarden van de inputs (Hamming-afstand 1 van elkaar), kan hetzijn dat de output, juist na de verandering van de verschilinputvariabele, kortstondig dewaarde 1 (resp. 0) aanneemt. Dit noemt men een statische 0- (resp. 1-) hazard. Statische1-hazards ontstaan bv. wanneer, in een som-van-produkten realisatie, de 1-output op detwee naburige punten gerealiseerd wordt door verschillende poorten (produkt-termen).Wanneer de verschilinput verandert zal een EN-poort naar 0 gaan, de andere naar 1. Eensnelheidsverschil tussen de poorten leidt tot het overgangsverschijnsel. Het netwerk infig. 4.13a vertoont een statische 1-hazard. Statische 0-hazards hebben een duale definitie.

Er bestaan ook dynamische hazards. Een dynamische hazard treedt op wanneer defunctiewaarde op twee aangrenzende inputs verschilt, maar de netwerkoutput niet mo-notoon varieert bij verandering van de input (fig. 4.13b). Noteer dat het netwerk infig. 4.13b niet in een som-van-produktengedaante is, maar een (deel van een) meerlaagseimplementatie. Dynamische hazards kunnen echter ook voorkomen in SVP-netwerkenwanneer meer dan twee inputs tegelijk van waarde veranderen.

Een belangrijk aspect bij de realisatie van combinatorische schakelingen is het feitof zij al dan niet hazard-vrij moeten zijn bij Hamming-1-transities op hun inputs. Dezeeis wordt vaak opgelegd voor combinatorische schakelingen in synchrone automatenmet asynchrone inputs (zie paragraaf 7.7), en natuurlijk in asynchrone automaten zelf(zie paragraaf 5.4.2). Hier moeten ROM-structuren met de nodige omzichtigheid gebruiktworden, en moeten wij ook bij poortcircuits of PLA’s nakijken of de logische minimalisatiegeen aanleiding gegeven heeft tot hazards.

Statische hazards moeten opgespoord worden door de combinatorische functies teanalyseren. Er bestaan efficiente methoden gebaseerd op een ternaire analyse (zie o.m.

147

Page 152: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

[Brzozowski95]). Zo kan men bij de verandering van een enkele input, deze input dewaarde φ geven, en alle andere inputs op hun vorige waarde houden. Alle outputs dieonder een ternaire interpretatie van het netwerk ook de waarde φ aannemen, kunnen ver-anderen. Noteer evenwel dat, opdat deze procedure correcte resultaten zou opleveren,men een Boolese vorm die de structuur van het netwerk nog weergeeft moet gebruiken,en niet een geminimaliseerde representatie van dezelfde functie! Wij komen hier watverder op terug.

Combinatorische hazards kunnen verwijderd worden door een zorgvuldig ontwerpvan de combinatorische netwerken. Meestal zijn er bijkomende priemimplicanten (EN-poorten) nodig bij de minimale oplossing. Zo levert het gebruik van het optioneel pro-duct van twee termen die een hazard veroorzaken, een oplossing (ga dit na door eenternaire analyse). In het geval van figuur 4.13(a) zal de statische hazard weggewerktworden door inclusie van de term UV , het optioneel product van X ′U en XV . De in-clusie van dit product verandert de functie gerealiseerd door het netwerk niet, en zoalszoeven opgemerkt, zou de minimale represenatie van de functie niet de aanwezigheidvan de extra term weergeven.

Men kan bewijzen dat het gebruik van de complete som in plaats van een minimale somsteeds hazardvrije schakelingen oplevert, althans voor hamming-1 inputveranderingen.In beperkte mate kan men zelfs voor andere inputveranderingen het circuit hazardvrijmaken. Meestal vereist dit het afstappen van de optimale realisatie van het combinato-risch netwerk; dit kan uiteraard zeer oneconomisch zijn. Voor een systematische behan-deling van de bouw van hazardvrije combinatorische netwerken verwijzen wij naar deliteratuur (o.a. naar [Birtwistle95]).

4.4 Opgaven

1. Gegeven de functie van vier variabelen

f(x, y, z, w) = x′w′ + xy′z′ + xzw′ + xz′w + xyzw,

(a) teken het geminimaliseerd BDD van deze functie (variabelen in opgegevenvolgorde);

(b) bepaal een minimale SVP-realisatie met de tabelmethode van McCluskey.

(c) Teken het resulterend poortnetwerk.

2. Gegeven de functie van vier variabelen

f(x, y, z, w) = x′wy′ + xy′z + y′zw′ + xyw′ + x′yz′ + x′y′w′

(a) teken het geminimaliseerd BDD van deze functie (variabelen in opgegevenvolgorde);

(b) minimaliseer de Boolese vorm op algebraısche wijze (Zissos)

(c) complementeer de minimale vorm en minimaliseer opnieuw met de algebraı-sche methode

(d) zoek met de tabelmethode de complete som van de originele functie (Quine-McCluskey). Duid de essentiele priemimplicanten aan.

3. Doe voor de onderstaande netwerken in figuur 4.14 het volgende:

148

Page 153: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 4.14: Twee combinatorische netwerken

Figuur 4.15: Een derde combinatorisch netwerk

• Zoek de functie gerealiseerd door het netwerk;

• schrijf deze functie in de DSV;

• Minimaliseer de functie dmv. de algebraısche methode en teken het resulte-rend netwerk.

4. Zoek de functie gerealiseerd door het netwerk in fig. 4.15. Zoek een minimale rea-lisatie (ook als taknetwerk).

5. Minimaliseer met behulp van Karnaughkaarten :

T (A,B, C, D, E) =∑

(1, 2, 4, 5, 9, 10, 11, 15, 16, 18, 19, 21, 22, 25, 27, 31)

149

Page 154: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

DON’T CARE = (0, 8, 13, 17, 24, 26, 29)

6. Beschouw de volgende uitspraken:

• Victor drinkt nooit;

• Gustaaf drinkt als en slechts als Victor en Louis aanwezig zijn;

• Jean-Pierre drinkt altijd - zelfs wanneer hij alleen is;

• Louis drinkt als en slechts als Victor er niet is.

Als A Victors aanwezigheid voorstelt in de bar, B Gustaafs aanwezigheid, C Jean-Pierre’s en D Louis’, stel dan de minimale (som van producten) Boolese vorm opvoor de functie die 1 is van zodra 1 of meerdere personen drinken in de bar, en ditdoor gebruik te maken van een karnaughkaart.

7. Hoeveel termen kan een minimale som van producten maximaal bevatten voor eenfunctie van n inputs? Bestaan er functies die het door u opgeven maximum effectiefhalen? Zo ja, welke?

(a) Teken het taknetwerk voor een zo’n functie met 3 inputs x1, x2, x3. Vereenvou-dig dit netwerk zoveel mogelijk door het samennemen van schakelaars.

(b) Teken hetzelfde taknetwerk van hierboven opnieuw, maar waarbij u aan x2

een constante waarde toekent. Vereenvoudig opnieuw dit netwerk. Leid doorvergelijking van beide netwerken de structuur van een taknetwerk met n in-puts af.

(c) Geef een dagdagelijkse toepassing voor zo een taknetwerk.

8. Beschouw het taknetwerk in figuur 4.16.

• bepaal de functie f(x0, x1, . . . , xn) gerealiseerd door dit netwerk. (hint: pro-beer de functie te schrijven als een matrixproduct f = A

∏i BiC. Inspireer u

op de connectiematrix.)

• realiseer f onder een minimale som-van-productenvorm, nog steeds als eentaknetwerk. Hoe snel groeit het aantal schakelaars in uw realisatie, en hoesnel is dit in het oorspronkelijke netwerk? Verklaar.

• realiseer f als een minimaal som-van-producten poortnetwerk. Hoe groeit hetaantal poorten met n?

• zoek een andere realisatie van f met OF-poorten, EN-poorten, en invertoren,waarin het aantal poorten slechts lineair stijgt met n

9. Bepaal de minimale som met behulp van de tabelmethode, voor de functie

f(A,B) = 1⇔ A ≥ B

waarbij A en B 2-bits binaire representaties van natuurlijke getallen voorstellen.Teken de realisatie met poorten.

150

Page 155: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 4.16: Een niet som-van-producten taknetwerk

10. De Gray-code van lengte n is een afstand-1 binaire encodering van de gehele getal-len tussen 0 en 2n − 1. Laat Gray(n, x) de encodering voorstellen van een geheelgetal x, gedefinieerd als volgt:

Gray(1, 0) = 0;Gray(1, 1) = 1;

Gray(n, x) =

0Gray(n− 1, x), als x < 2n−1

1Gray(n− 1, 2n − 1− x), anders.

• Stel de tabel op voor n = 3 die de getallen 0, 1, . . ., 7 representeert;

• Ontwerp een combinatorisch netwerk dat Gray(3, x) berekent, wanneer x aan-geboden wordt in de standaard, gewogen binaire representatie.

11. Bepaal de Reed-Mullerrepresentatie van de functie

f(x, y, z) = z(y + x′) + xy′z′.

12. Beschouw de volgende Boolese vorm: f(x, y, z, u) = xy′u′ + x′u′z′ + x′yz′u + yzu +x′y′zu′.

(a) Minimaliseer deze vorm met de algebraısche methode.

(b) Verifieer uw resultaat d.m.v. een Karnaugh-kaart.

(c) Teken een minimaal twee-niveaupoortcircuit dat deze functie realiseert.

(d) Zoek de Reed-Muller expansie van de vorm.

13. Realiseer met poorten, en in minimale som-van-produkten vorm, een modulo-3opteller, d. w. z. een circuit dat de volgende functies berekent:

S(X, Y ) = (X + Y ) mod 3

C(X, Y ) =

1, X + Y ≥ 30, anders

met X, Y ∈ 0, 1, 2.

14. Vind een niet-redundante som van priemimplicanten voor de functief(x, y, z, w) gegeven door

ONf =

0 − 0 10 1 0 01 0 0 10 1 1 1

, DCf =

0 0 1 10 1 1 0

151

Page 156: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Gebruik de topologische methode.

15. Zoek een niet-redundante som van de functie

ON =

0 0 0 01 1 − 11 − 1 11 1 1 0

DC =

1 0 0 −

met behulp van de topologische methode.

16. Minimaliseer en realiseer als poortnetwerk

T (A,B, C, D) =∑

(0, 1, 5, 7, 8, 9, 12, 14, 15)

met DC(3, 11, 13)

17. Realiseer gezamenlijk in minimale vorm, en als poortnetwerk:

f1(w, x, y, z) =∑

(1, 4, 5, 7, 13) met DC(3, 6)

f2(w, x, y, z) =∑

(3, 5, 7) met DC(6)

f3(w, x, y, z) =∑

(3, 4, 11, 13, 15) met DC(9, 14)

18. Minimaliseer met behulp van de tabelmethode

f1(x, y, z, w) =∑

(4, 5, 6, 12) + DC(7, 14)

f2(x, y, z, w) =∑

(5, 9, 13, 15) + DC(7, 11)

Teken het resulterend netwerk.

19. Minimaliseer en realiseer onderstaande functie. Gebruik de topologische methode,en beoordeel de efficientie van de methode.

f(x, y, z, w) = X ′W + XY ′W ′ + XY Z ′W ′

DC = XY Z + XY Z ′W + X ′Y ′Z ′W ′

20. Realiseer als een minimale som-van-producten poortschakeling, een twee-bit op-teller, d.w.z. een circuit dat de volgende functies berekent:

S(X, Y ) = (X + Y ) mod 4

C(X, Y ) =

1, X + Y ≥ 40, anders

met X, Y ∈ 0, 1, 2, 3. Gebruik de tabelmethode.

21. Bepaal de Reed-Mullerrepresentatie van de functies S1, S2, C in de vorige oefening.

22. Realiseer de schakeling opnieuw, maar dan enkel met 2-input exclusieve-OFpoor-ten ⊕ en n-input AND-poorten. Baseer u op de Reed-Mullerrepresentatie.

23. Men wil een twee-bitvermenigvuldiger maken, een combinatorische componentmet vier inputs (X1, X2) en (Y1, Y2), en vier outputs (Z1, Z2, Z3, Z4). Deze bitrijenzijn de voorstelling van natuurlijke getallen x ∈ 0, . . . , 3, resp. y ∈ 0, . . . , 3 enz ∈ 0, . . . , 15, waarbij z = xy (meestbeduidend bit heeft laagste index). Leid eenoptimale twee-niveaurealisatie af van deze schakeling.

152

Page 157: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 5

Analyse van Sequentiele Netwerken

In hoofdstuk 2 hebben wij de klasse van combinatorische netwerken geı-dentificeerd als de klasse van poort- of taknetwerken zonder terugkoppelin-gen. De kenmerkende eigenschappen van deze netwerken is dat ze alle kun-nen beschreven worden door een Boolese functie. Deze eigenschap is hetgevolg van de afwezigheid van terugkoppelingen in schakelnetwerken. Wijzullen eerst een korte analyse maken van terugkoppelingen en zien hoe dezehet gedrag van een netwerk wezenlijk kunnen veranderen. Nadien zullen wijmethoden bespreken waarmee het gedrag van bestaande netwerken met te-rugkoppelingen kan bepaald worden, alsook de problemen die hierbij somsoptreden.

5.1 Terugkoppelingen in schakelnetwerken

In poortnetwerken ontstaat terugkoppeling door het gebruiken van een poortoutput alsinput van een “stroomopwaarts” gelegen poort (fig. 5.1). Het gevolg van deze terugkop-peling is dat het gedrag van de schakeling (d.i., de Boolese waarde van de output Y ) nietnoodzakelijk nog langer geschreven kan worden door een Boolese functie van de inputs.Inderdaad, een korte analyse leert dat, in de schakeling van fig. 5.1, zowel de waardeY = 1 als Y = 0 kan voorkomen wanneer X1 = 0 en X2 = 0. Het circuit heeft tweetoestanden. De huidige toestand is een vorm van geheugen: de waarde van Y geeft aanwelke van beide inputs als laatste de waarde 1 aannam. Indien Y = 1 was dit X1; in hetander geval X2.

Terugkoppelingen in taknetwerken zijn iets complexer: een terugkoppeling moet altijdgebeuren van een netwerkoutput naar een controle-input. Fig. 5.2 toont een teruggekop-peld taknetwerk gelijkaardig aan het poortnetwerk van fig. 5.1. Twee stabiele toestanden

Figuur 5.1: Een teruggekoppeld poortnetwerk

153

Page 158: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.2: Een teruggekoppeld taknetwerk. Noteer dat een externe stroombron nodig is omde functiewaarde (contact maken of niet) om te vormen naar argumentwaarden (stroom of geenstroom).

Figuur 5.3: Een niet-toelaatbare vorm van terugkoppeling. Afhankelijk van de concrete imple-mentatie kan dit circuit diverse gedragingen vertonen; deze kunnen alleen gevonden wordendoor een analyse op circuitniveau.

zijn mogelijk met X1 = 0 en X2 = 0 (de schakelaars met opschrift X ′1 en X ′

2 zijn gesloten).De output Y is 1 (het pad van Yin naar Yout is gesloten) wanneer de input X1 als laatstegelijk aan 1 was (contact X ′

1 als laatste open).Het is best mogelijk dat een teruggekoppeld schakelnetwerk zich, voor een gegeven

stel waarden van sommige inputs, toch combinatorisch gaat gedragen voor de andereinputs. Zo realiseert het netwerk in beide voorbeelden een combinatorische functie vanX2 als X1 = 1.

In tegenstelling met combinatorische netwerken waar elk netwerk een Boolese functierealiseert, zal echter niet elk teruggekoppeld netwerk kunnen beschreven worden dooreen eindig aantal stabiele toestanden waarin alle poorten of schakelaars Boolese functiesvoorstellen. Analyseer inderdaad figuur 5.3.

Wanneer X = 0 dan is Y = 1. Echter, wanneer X = 1 dan bestaat er in de Boolesealgebra geen waarde voor Y die voldoet aan de netwerkvergelijking

Y = (XY )′ = X ′ + Y ′ = Y ′

Deze vergelijking is, zoals men ziet, strijdig en heeft geen oplossing in B. Dit betekentdat men het gedrag van dit netwerk niet kan beschrijven met de formalismen van deschakelalgebra.

Het werkelijk fysisch gedrag van een dergelijk netwerk is, afhankelijk van de tech-nologie, ofwel oscillerend tussen elektrische waarden die de Boolese waarden 0 en 1voorstellen, ofwel stabiel, maar dan met elektrische waarden die geen der beide Boolesewaarden voorstellen.

154

Page 159: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

+ 0 φ 10 0 φ 1φ φ φ 11 1 1 1

· 0 φ 10 0 0 0φ 0 φ φ

1 0 φ 1

0 1φ φ

1 0

Figuur 5.4: De ternaire uitbreiding van de Boolese operatoren. Naargelang van de situatie kan φ

diverse betekenissen hebben, zoals ’ongeldig’, ’instabiel’, ...

Men kan het Boolese, binaire model uitbreiden tot een ternair model, waarin men defenomenen van ongeldige of onstabiele signalen kan representeren. In plaats van zich totde symboolwaarden 0, 1 te beperken, gebruikt men de waarden in 0, φ, 1, waarin φ

ongeldige of onstabiele waarden voorstelt. Het gedrag van de elementaire poortfunctieswordt dan uitgebreid tot de ternaire waarden, als in figuur 5.4.

Men kan aldus de Boole-algebra uitbreiden tot een ternair systeem, waarin een aantaleigenschappen (bv. commutatitiviteit, associativiteit, distributiviteit) blijven gelden. En-kele eigenschappen vervallen echter, o.m. de eigenschappen XX ′ = 0 en X + X ′ = 1. (Ga ditna op de bovenstaande definities van + en ·, voor de waarde φ.) Het ternair systeem isdus niet langer een Boole-algebra. Met een uitbreiding van de interpretatieregels, kan menternaire functies blijven voorstellen d.m.v. Boolese vormen; alleen moet men opletten datmen zich bij reductie van een vorm beperkt tot de toegelaten reductieregels.

Diverse problemen die wij zullen tegenkomen in dit hoofdstuk kunnen elegant be-handeld worden door middel van ternaire methoden. Zo kan men bv. zien dat het ’pa-thologisch’ circuit van figuur 5.3 wel degelijk de oplossing φ heeft in het ternair sys-teem. Deze inleidende cursus is echter te beperkt om ternaire modellen in het nodigedetail te behandelen, en wij verwijzen de geınteresseerde lezer hiervoor naar de litera-tuur ([Brzozowski95]).

5.2 Het wiskundig model van sequentiele netwerken

Het wiskundig model van een combinatorisch netwerk is een Boolese functie. Dit modelis tijdsloos, d.w.z. het verband tussen de inputs en de output van een netwerk is vast enonveranderlijk in de tijd. Dit wil natuurlijk niet zeggen dat het fysiek netwerk oneindigsnel is: elk reeel circuit heeft een eindige vertragingstijd. De tijdsloosheid van het modelwil enkel zeggen dat, na een circuitafhankelijke vertragingstijd en eventueel een over-gangsverschijnsel (zoals hazards), de Boolese waarde op de outputs overeenstemt metde corresponderende functiewaarde.

Dit tijds- of evolutieloze karakter is niet langer aanwezig in teruggekoppelde scha-kelnetwerken. Zoals blijkt uit het voorbeeld in fig. 5.1 is de output van het circuit opeen gegeven ogenblik niet enkel afhankelijk van huidige inputwaarden: het circuit heeftgeheugen. Deze geheugenwerking kan worden gekarakteriseerd door de inwendige toe-stand van het netwerk. De inwendige toestand van een netwerk wordt voorgesteld doorde Boolese waarden corresponderend met de elektrische grootheden in de knopen vanhet netwerk. Een eindig netwerk kan zich dan ook maar in een eindig aantal toestanden S

155

Page 160: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

bevinden. De hele voorgeschiedenis1 van het netwerk ligt vervat in deze toestand.In een goed gebouwd netwerk zal de toestand op voorspelbare (deterministische) wij-

ze evolueren bij het veranderen van de inputs. Bovendien is de output op elk ogenblikenkel afhankelijk van de huidige toestand van het netwerk en de huidige inputs. Dit be-tekent dat wij de hele werking van een teruggekoppeld schakelnetwerk kunnen beschrij-ven door twee functies: de toestandsfunctie en de outputfunctie. Laat ons de inwendigetoestand van het netwerk voorstellen door s ∈ S, waarin S de eindige verzameling vaninwendige toestanden is.

Definitie 5.1 De totale-toestandsruimte van een sequentieel netwerk met n inputs en inwen-dige toestanden S is de verzameling

S × 0, 1n,

alle combinaties van de inwendige toestanden en de inputwaarden.

Definitie 5.2 De toestandsfunctie fs van een sequentieel netwerk met n inputs en m outputsis een eindige functie van de totale toestand

fs : S × 0, 1n → S

De outputfunctie fu van dit netwerk is eveneens een eindige functie van de totale toestand

fu : S × 0, 1n → 0, 1m

De toestandsfunctie fs bepaalt de toestand waarheen het netwerk evolueert vanuit dehuidige toestand wanneer een gegeven input wordt aangelegd. De outputfunctie fu be-schrijft de Boolese waarden op de m outputs van het netwerk wanneer dit zich in eengegeven toestand bevindt, en wanneer een gegeven input wordt aangelegd.

Een totale toestand (X, s) ∈ S × 0, 1n heet stabiel wanneer s = fs(s,X). Noteerdat het ogenblik waarop de transitie naar de volgende toestand wordt uitgevoerd nietbepaald wordt door de functies fs en fu. Dit ogenblik wordt bepaald door de aard vande geheugens in het netwerk. Dit onderscheid bespreken wij verder.

Men kan de sequentiele netwerken verder opdelen op basis van hun outputfunctiefu. Een sequentieel netwerk realiseert een MOORE-automaat wanneer de output nietafhangt van de huidige inputs, maar enkel van de huidige toestand. Netwerken waarinde output, volgens definitie 5.2, werkelijk afhangt van de huidige inputs noemt menMEALY-automaten.

De beschrijving van het netwerkgedrag door middel van de functies fs en fu ver-eist het gebruik van de inwendige toestand. De toestand van een netwerk is echter nietsteeds rechtstreeks af te lezen op de outputs van het netwerk. Wanneer men, bij een be-schrijving, geen gebruik wil maken van de inwendige toestand, kan het gedrag van hetnetwerk enkel gekenmerkt worden door het opgeven van inputsequenties en de door hetnetwerk gegenereerde outputsequenties, in de onderstelling dat het netwerk zich voor hetaanleggen van de inputsequenties bevindt in een gekende toestand. Het volledig gedragvan een eindig netwerk kan steeds gekenmerkt worden door de outputsequentie cor-responderend met een eindige goed gekozen inputsequentie, op voorwaarde dat men eenbovengrens op het aantal toestanden kent [Hennie68]. Deze inputsequentie noemt men een

1Althans, dat wat men er kan van onthouden.

156

Page 161: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

identificatiesequentie voor de machine. Hoewel deze sequentie eindig is, kan ze zeer langworden wanneer het aantal toestanden groot is. De gedragsspecificatie aan de hand vande functies fu en fs is incrementeel, en bijgevolg veel efficienter.

Opmerking. Men kan het gedrag van een automaat ook karakteriseren aan de hand vaneen eindig aantal verzamelingen inputsequenties. Elk van deze verzamelingen komt over-een met een toestand van de automaat, en bevat alle inputsequenties die leiden van debegintoestand tot de beschouwde toestand. Deze verzamelingen noemt men regulier, enzij kunnen voorgesteld worden door algebraısche vormen, die men reguliere uitdrukkingennoemt.2 Men kan op een systematische manier de reguliere uitdrukkingen afleiden dieeen automaat kenmerken, en men kan ook, uitgaande van een reguliere uitdrukking opsystematische manier een automaat afleiden die met deze uitdrukkingen overeenkomt.Andermaal zullen wij, wegens de beperkingen van deze cursus, hierop niet ingaan.

5.3 Analyse van poortnetwerken met terugkoppelingen

De analyse van sequentiele netwerken heeft tot doel de functies fu en fs te vinden, omalzo het gedrag van het netwerk op een compacte en gemakkelijk toegankelijke ma-nier voor te stellen. De meest-primitieve sequentiele netwerken zijn de teruggekoppeldepoortnetwerken. Bij deze netwerken stelt zich het probleem een aantal knooppunten vanhet netwerk aan te wijzen waarvan de Boolese waarden de inwendige toestand voorstel-len.

Deze selectie kan gebeuren door het doorknippen van takken. Met elke tak die wij knip-pen associeren wij twee letters: een kleine letter stroomopwaarts van de knipplaats, decorresponderende hoofdletter stroomafwaarts. De hoofdletters worden beschouwd alsbijkomende circuitinputs, de kleine letters als outputs.

Men knipt zolang takken door tot wanneer alle outputs kunnen geschreven wordenals combinatorische functies van de inputs. Het verdient zeer sterk de voorkeur de knip-plaatsen zo te kiezen dat een minimaal aantal plaatsen volstaat om het netwerk combina-torisch te maken. In figuur 5.5 geven wij twee voorbeelden van hoe netwerken kunnengeknipt worden, en van de resulterende Boolese functies. Noteer dat in de vereenvou-digde Boolese vormen de topologie van de poortnetwerken niet langer terug te vindenis. Men kan uit deze uitdrukkingen dus helemaal geen uitspraken doen over mogelij-ke dynamische aspecten van het gedrag van de poortnetwerken, die bv. het gevolg zijnvan de poortvertragingen. Zoals wij verder zullen zien is het dynamisch gedrag van denetwerken nochtans van essentieel belang.

Wanneer men wel ervoor wil zorgen dat de informatie over mogelijk dynamisch ge-drag en overgangsverschijnselen niet verloren gaat, dan moet men zich beperken in devereenvoudigingen die men toepast op de Boolese uitdrukkingen die de netwerken voor-stellen. Ruwweg komt het er op neer dat een signaal X – zelfs hetzelfde logisch signaal– op twee verschillende plaatsen 1 en 2 aanzien dient te worden als verschillend. Dusde uitdrukkingen X1 + X2 of X1X2 kunnen niet zonder meer herleid worden tot X! Dereden hiervoor is dat de vertragingstijden, die verantwoordelijk zijn voor het gedetail-leerd dynamisch gedrag van het netwerk, kunnen verschillen van plaats tot plaats. Dezevertragingstijden kunnen het gevolg zijn van de gebruikte poorten, van de interconnectietussen de poorten, of van beide.

2Zie cursus ‘Discrete systemen’

157

Page 162: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

y1 = (X2 + (X1 + Y1)′)′

= X ′2(X1 + Y1)

= X ′2Y1 + X ′

2X1

a = (C(A(BD)′)′)′

= C ′ + AB′ + AD′

b = (CA(BD)′)′

= C ′ + BD + A′

e = (A(BE)′)′

= A′ + BE

Q1 = E

Q2 = B′ + E′

Figuur 5.5: Knippen in teruggekoppelde poortnetwerken. Knipplaatsen worden zo gekozen datmen de vergelijkingen acyclisch maakt met een minimum aantal sneden

158

Page 163: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

X1X2

00 01 11 10

Y1: 0 0 0 0 11 1 0 0 1

y1

CD00 01 11 10

ABE : 000 111 111 011 011001 111 111 011 011010 111 111 011 011011 111 111 011 011100 110 110 100 100101 110 110 100 100110 110 110 010 100111 111 111 011 101

abe

Figuur 5.6: De transitietabellen van de netwerken in fig 5.5.

De knipplaatsen stellen de toestandsvariabelen voor. Indien op n plaatsen gekniptwerd betekent dit dat het netwerk maximaal 2n inwendige toestanden kan hebben. Nahet bepalen van de knipplaatsen stellen wij de netwerkfuncties voor in een transitietabel.De kolommen van deze tabel stellen de inputs voor, de rijen de inwendige toestandenvan het netwerk (grote letters). De elementen van de tabel zijn de nieuwe waarden vande inwendige toestandsvariabelen (kleine letters), en de netwerkoutputs. De gelijkheidvan de Boolese waarden voor en achter een knipplaats in een taknetwerk betekent datmen deze tak terug mag sluiten zonder dat er verandering optreedt in het netwerk. Kanmen dit doen voor alle knipplaatsen dan heeft men een stabiele interne toestand gevon-den. In fig. 5.6 werden de transitietabellen voor de voorbeelden uit fig. 5.5 weergegeven;de stabiele interne toestanden werden onderstreept. Opdat een transitietabel een sequen-tieel netwerk voor zou stellen, moet er minstens een kolom in de tabel meer dan 1 stabieletoestand hebben, en alle kolommen minstens 1.

De werking van het netwerk kan in principe worden afgeleid uit de tabel. Men maakt deafspraak dat men slechts 1 inputvariabele per keer wijzigt (de SIC-hypothese, Single Input Chan-ge), en dat tussen twee wijzigingen het netwerk de kans krijgt een stabiele toestand te bereiken(indien deze bestaat!). Dit is de werking in z.g. fundamentele mode.

De informatie vervat in de transitietabellen kan ook als transitiegraaf of transitiedia-gram voorgesteld worden (figuur 5.7). Men bouwt een graaf op, waarvan de knopentotale toestanden voorstellen, en de takken de transities tussen de toestanden. Het op-schrift bij een tak is de gebeurtenis die de transitie veroorzaakt. Men neemt alleen de uitde begintoestand bereikbare toestanden op, men beschouwt alleen Hamming-1 overgan-gen aan de inputs, en men bedrijft het circuit in fundamentele mode. Zoals men kan zien,gebeuren sommige transities spontaan (uit de instabiele toestanden). Deze werden ge-merkt met een Λ. Tijdens deze overgangen moeten de inputs constant gehouden worden(fundamentele mode).

Uit een transitiediagram kan men gemakkelijker het antwoord van het systeem opeen bepaalde inputsequentie afleiden.

159

Page 164: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.7: De transitiediagrammen afgeleid uit de transitietabellen. Notatie voor de toestanden:X1X2.Y resp. CD.ABE

160

Page 165: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5.4 Afwijkingen van het voorspeld gedrag

Er bestaat jammer genoeg helemaal geen garantie dat het gedrag dan men zou kunnenaflezen uit de verkregen tabel inderdaad overeenstemt met het werkelijk geobserveerdgedrag in het circuit. Diverse effecten liggen aan de basis van deze mogelijke discrepan-tie.

5.4.1 Races en meervoudige overgangen

In de tabellen van fig. 5.6 is het zo dat nieuwe toestanden die men met hamming-1-overgangen op de inputs kan bereiken uit stabiele interne toestanden, in hoogstens eensymbool verschillen van de stabiele toestand. Dit is uiteraard het gevolg van de particu-liere opbouw van het bestudeerde netwerk. In het algemeen is dit niet zo, en vertoonthet netwerk een race: twee of meer interne toestandsvariabelen moeten ‘tegelijkertijd’veranderen van waarde.

Afhankelijk van de werkelijke waarden van de poortvertragingstijden, zullen de over-gangen echter (met zeer kleine waarschijnlijkheid) gelijktijdig gebeuren, of in een of an-dere sequentiele volgorde. Wanneer de variabelen niet simultaan moeten veranderen,maar een per een via een pad van onstabiele toestanden, spreken wij over een meervoudi-ge overgang. Zo is, in fig. 5.7, de overgang van 00.111 onder C+ naar 10.100 via 10.111 en10.101 een meervoudige overgang, maar geen race.

Bij een race kan het voorkomen dat, op een der paden naar de eindtoestand, menverzeilt in een stabiele toestand die niet voorkomt in een ander pad van deze race. Opdit ogenblik is het gedrag van het netwerk afhankelijk van de wijze waarop de race verloopt, endus van technologie en de implementatiedetails van het netwerk. De race heet dan kritisch.Wanneer kritische races voorkomen kan men het werkelijk gedrag van een netwerk uit-gaand van de transitietabel niet voorspellen zonder een bijkomende tijdsanalyse van decombinatorische functies (de individuele poorten en de verbindingen) in het opgekniptenetwerk.

5.4.2 Combinatorische hazards

Een andere oorzaak van mogelijke afwijkingen tussen het werkelijke gedrag van een se-quentieel netwerk en het gedrag dat zou volgen uit de transitietabel is de aanwezig-heid van hazards (zie paragraaf 4.3). Zoals gezegd is een hazard een eigenschap vancombinatorische netwerken die de mogelijke aanwezigheid van overgangsverschijnselenop de functie-output bij veranderingen van de input aangeeft. Bijvoorbeeld, wanneereen functie de waarde 0 (resp. 1) aanneemt op twee aangrenzende waarden van de in-puts (Hamming-afstand 1 van elkaar, de SIC-hypothese), kan het zijn dat de output, juistna de verandering van de verschilinputvariabele, kortstondig de waarde 1 (resp. 0) aan-neemt.

Aangezien de aanwezigheid van hazards niet af te lezen is uit de toestandstransitie-tabel, kunnen zij niet-voorspelbare toestandstransities veroorzaken in teruggekoppeldepoortnetwerken. Wanneer op een van deze paden een niet-gewenste stabiele toestandvoorkomt kan het netwerk verkeerd functioneren, net zoals bij een kritische race.

Combinatorische hazards bij SIC-werking kunnen verwijderd worden door een zorg-vuldig ontwerp van de combinatorische netwerken. Meestal zijn er bijkomende priem-implicanten (EN-poorten) nodig bij de minimale oplossing. Zo levert het gebruik van het

161

Page 166: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

y1 = C ′Y2 + CY1

y2 = C ′Y2 + CY ′1 + Y2Y

′1

C0 1

Y1Y2 00 00 0101 11 0111 11 1010 00 10

y1y2

Figuur 5.8: Een netwerk met een essentiele hazard.

optioneel product van twee termen die een hazard veroorzaken, een oplossing.

5.4.3 Essentiele hazards

Naast de verwijderbare hazards, afkomstig van de combinatorische netwerken, is er ookeen vorm van hazard die louter in sequentiele netwerken met minstens twee terugkop-pellussen bestaat. Men noemt ze essentiele hazards.

Op fig. 5.8 werd een netwerk met een essentiele hazard voorgesteld. De ‘normale’werking volgt uit de transitietabel. Wanneer de input verandert, doorloopt het netwerkde stabiele toestanden

C.Y1Y2: 0.00→ 1.00→ 1.01→ 0.01→ 0.11→ 1.11→ 1.10

Er zijn geen races, geen meervoudige overgangen en ook geen werkzame combinatorische hazards.Noteer dat poort 4 redundant is en enkel dient om een statische hazard te verwijderen(welke ?).

162

Page 167: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Wanneer wij echter de vertragingstijd van invertor 7 laten toenemen gebeurt het vol-gende. Veronderstel dat we in toestand 00 zijn. Bij een stijgflank op C zal de output vanpoort 3 op 1 komen, en dan Y2. Normaal zou dit moeten leiden naar de toestand 01.Wanneer echter invertor 7 zeer traag is, zal C ′ niet op 0 gekomen zijn voor de stijgflankop Y2 gevoeld wordt aan poort 1. Als gevolg wordt ook Y1 gezet, en de toestand 01 treedtniet langer op als stabiele toestand. Evenmin is 11 stabiel met C = 1. Na een stijgflankop C vinden wij dus

0.00→ 1.00→ 1.11→ 1.10

De essentiele hazard komt dus voort uit een looptijdsverschil tussen de invertor 7en de poorten 3 en 6, en is in feite een race tussen een netwerkinput (C), en een inter-ne toestandsveranderlijke (Y2). De essentiele hazard zit dus ingebouwd in de logischestructuur van het netwerk: het netwerk werk alleen maar bewijsbaar correct als men bij-komende restricties oplegt aan de vertraging van de individuele bouwstenen. Correctewerking veronderstelt immers dat inputsignalen aanwezig zijn voor de gewijzigde toe-stand voelbaar wordt. Dit zou men in dit geval kunnen bereiken door het invoeren vanextra vertraging in de terugkoppellussen, die ervoor zorgt dat overal eerst inderdaad deinputwijzigingen waargenomen worden, en pas later de toestandsveranderingen die erhet gevolg van zijn.

5.4.4 Ternaire analyse

Zowel statische hazards als essentiele hazards in teruggekoppelde poortnetwerken kanmen vinden door een ternaire analyse, zonder dat men de preciese vertragingstijden vande poorten of de interconnectie moet kennen. In feite zijn de resultaten van de analyseonafhankelijk van de vertragingstijden, en daardoor natuurlijk pessimistisch. De analysesgebeuren op de niet-vereenvoudigde Boolese vormen van de netwerken.

Statische hazards in een combinatorisch netwerk als gevolg van een enkele inputver-andering kunnen gedetecteerd worden door het netwerk ternair te simuleren, waarbijaan de veranderende input het symbool φ aangelegd wordt. Alle outputs die de waar-de φ aannemen kunnen veranderen, zelfs wanneer de uiteindelijke waarde niet verschiltvan de beginwaarde. Toegepast op het netwerk in figuur 4.13a vinden wij de vergelij-king Y = UX ′ + V X . Wanneer wij de inputs X = φ, U = 1 en V = 1 aanleggen, danY = 1·φ+1·φ = φ, volgens de ternaire rekenregels uit figuur 5.4. Wanneer wij in hetzelfdenetwerk echter het optioneel product UV opnemen, dan wordt dit Y = 1·φ+1·φ+1·1 = 1

Men kan de ternaire analyse ook gebruiken om essentiele hazards op te sporen in hetteruggekoppeld netwerk. Dit gebeurt in twee fasen:

1. Men vertrekt uit een stabiele toestand, en legt φ aan de input die men wil doenomslaan. Men berekent de nieuwe toestandsgrootheden, waarvan er sommige dewaarde φ kunnen aannemen. Indien er geen zijn, dan zal het netwerk niet reagerenop de aangelegde inputverandering. Indien er meerdere zijn, kan dit leiden tot eenprobleem, omdat het netwerk een race vertoont ofwel een statische hazard in eenvan zijn combinatorische netwerken. Men legt deze nieuwe waarden opnieuw aande combinatorische netwerken aan, en blijft dit herhalen tot geen verandering meeroptreedt. Men kan aantonen dat deze procedure inderdaad een dekpunt bereikt:het aantal φ-waarden kan immers alleen maar toenemen. Het resultaat van dezeeerste stap is dat mogelijks een aantal toestandsgrootheden de waarde φ aangeno-men hebben. Dit betekent dat deze signalen inderdaad een verandering kunnen

163

Page 168: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.9: Een generiek beeld van een teruggekoppeld circuit

tonen in het reeel circuit onder bepaalde veronderstellingen van de vertragingstij-den.

2. Men legt de finale waarde aan de veranderende input aan (d.w.z. men vervangt deφ door de finale waarde). Opnieuw rekent men de veranderingen van de toestands-grootheden door, en men verkijgt na verloop van tijd weer een stabiel resultaat. Hetaantal φ-waarden neemt immers monotoon af. Wanneer er echter nog φ-waardenoverblijven, dan betekent dit dat de eindwaarde van dat signaal afhankelijk kan zijnvan de preciese vertragingen in het netwerk.

5.4.5 Een korte samenvatting

Tot slot van onze korte analyse van onvoorspeld gedrag refereren wij naar figuur 5.9.Uit deze figuur wordt het duidelijk dat wanneer aan de volgende voorwaarden is vol-daan, het afgebeelde circuit zich zal gedragen zoals voorspeld door de resultaten van deanalyse:

• De inputs mogen maar een per een veranderd worden (hamming-1 inputs);

• Alvorens een input veranderd wordt, moet men wachten tot het netwerk gestabili-seerd is (fundamentele mode);

• De netwerken Ni zien eerst de inputverandering, en pas nadien de mogelijke toe-standsverandering, en dit nadat het netwerk de inputverandering volledig ver-werkt heeft (geen essentiele hazards); Dit kan vereisen dat er extra vertraging aan-wezig is in de terugkoppellussen (voorgesteld door de blokjes met een delta);

164

Page 169: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

• Bij elke toestandsverandering zal er maar een toestandsbit veranderen (hamming-1transities);

• De netwerken Ni zijn hazardvrij voor hamming-1-inputveranderingen, en zullendus nooit hazards genereren, aangezien de voorgaande eisen impliceren dat de net-werkinputs steeds maar over een symbool zullen veranderen.

Zoals men gemakkelijk kan aanvoelen is deze lijst van beperkingen zeer restrictief, enis het ontwerp van dit soort teruggekoppelde netwerken geen sinecure. Er is recente-lijk sterke vooruitgang geboekt in het ontwerp van teruggekoppelde poortnetwerken enandere vormen van asynchrone circuits, die zich gegarandeerd correct zullen gedragenonder minder restrictieve omstandigheden. De beschrijving van deze methoden valt ech-ter buiten het bestek van deze cursus; de lezer wordt verwezen naar bv. [Birtwistle95] of[Brzozowski95].

5.5 Geheugencellen

In de vorige paragrafen werd aangetoond hoe geheugenwerking kan ontstaan door te-rugkoppeling in poortnetwerken. Meestal gebruikt men bij circuitsynthese geen terug-koppelingen maar wel geheugencellen. Een geheugencel is een (intern teruggekoppeld)netwerk dat twee uitwendig observeerbare toestanden bezit, en waarvan de toestanddoor de inputs kan gewijzigd worden. De twee netwerken in fig. 5.5 zijn beide geheu-gencellen.

Bij het netwerk in fig. 5.5(a) kunnen beide inputs X1 en X2 de toestand van de celwijzigen. Zowel het ogenblik waarop als de zin waarin de output van de cel verandertwordt bepaald door de inputs. Indien de output verandert na het op 1 komen van een derinputs, wordt de nieuwe output bepaald door de identiteit van deze input. Dit gedragnoemen wij inputsynchroon.

Het netwerk in fig. 5.5(b) gedraagt zich anders. Uit de transitietabel in fig. 5.6(b) blijktdat de outputs Q1, Q2 slechts kunnen veranderen na het optreden van een stijgflank opde input C. De nieuwe waarde van de output wordt uitsluitend bepaald door de waardevan D juist voor en tijdens de stijgflank op C. Dit gedrag noemen wij kloksynchroon, waar-bij C gewoonlijk klokinput en D data-input worden genoemd. Een klokinput is een inputdie enkel het tijdstip van observeerbare transitie van de cel vastlegt. Vaak worden input-synchrone schakelingen asynchroon genoemd, wegens de afwezigheid van een klokinput.Kloksynchrone cellen worden dan kortweg synchroon genoemd. Er bestaan diverse vor-men van kloksynchronisme. Deze worden besproken in paragraaf 6.1.1 en wij gaan erhier dus niet dieper op in.

Om, bij een analyse of ontwerp, gemakkelijk te kunnen werken met geheugencellenmoeten wij kunnen beschikken over een formele beschrijving van het gedrag van de cel.Dit noemen wij de karakteristieke vergelijking (k.v.) van de cel. Daar geheugencellen zelfsequentiele netwerken zijn kunnen wij hun gedrag kenmerken door hun functies fu enfs.

Bij de asynchrone cel in fig. 5.5(a) vinden wij

y1 = X ′2Y1 + X ′

2X1 .

Deze cel heet een Set/Reset (SR) kipschakeling of flipflop. Normaal zijn de Set (X1) enReset (X2) input niet samen gelijk aan 1. In deze omstandigheid zijn Y1 en Y2 elkaars

165

Page 170: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

complement. Wanneer echter S = R = 1 dan is Y1 = Y2 = 0. Wenst men dit te vermijdendan maakt men bv. S dominant over R (door een wijziging van het netwerk, uiteraard).Een S-dominante SR-flipflop heeft dan als k.v.

y1 = R′Y1 + S ; Y2 = Y ′1 .

De SR-schakeling is asynchroon, en de k.v. duidt dus zowel het ogenblik als de wijze vanveranderen van de output aan.

De geheugencel in fig. 5.5(b) heeft een bijzonder eenvoudige karakteristieke vergelij-king:

q1 = D ; Q2 = Q′1 .

Daar de cel synchroon is (met een flankgestuurde vorm van synchronisme) zal de effec-tieve overgang slechts gebeuren na de stijgflank op de klokinput C. Noteer dat, hoewelC niet optreedt in de k.v., de kennis van het klokgedrag onmisbaar is bij de beschrijvingvan de werking van de geheugencel. Deze geheugencel noemen wij een (flankgestuurde)D-flipflop. Het tijdsgedrag en het functioneel gedrag (datagedrag) van geheugencellenkunnen ook anders worden gecombineerd dan de cellen die wij tot nu toe besprokenhebben. Zo bestaan er synchrone SR-flipflops, die essentieel dezelfde k.v. hebben als debesproken asynchrone SR-flipflop, maar waarin het ogenblik van de transitie enkel bepaaldwordt door een extra klokinput. Een asynchrone D-flipflop is in feite niets anders dan eenvertraging – een celmodel van de terugkoppellus!

Naast het functionele SR- en D-gedrag gebruikt men ook vaak het JK-gedrag, voorge-steld door de volgende k.v.

y = JY ′ + Y K ′

Het verschil met het SR-gedrag is dat, wanneer J = K = 1, de cel synchroon met de klokvan toestand wisselt. (Waarom is hier een klok noodzakelijk ?)

5.6 Analyse van poortnetwerken met geheugencellen

Hier beschouwen wij netwerken waarin alle terugkoppellussen minstens een geheugen-cel bevatten, en waarin alle geheugencellen ofwel asynchroon, ofwel synchroon zijn meteen gemeenschappelijke klok. In deze netwerken wordt de interne toestand voorgestelddoor de gezamenlijke toestand van de geheugencellen.

De analyse van een dergelijk netwerk start met het opstellen van de excitatietabel. Dezetabel brengt de inputs van de geheugencellen in kaart, als functies van de totale toestand.Uit de excitatietabel kan de transitietabel verkregen worden door substitutie van de ka-rakteristieke vergelijkingen van de geheugencellen. Figuur 5.10 toont een netwerk metSR-geheugencellen, en de overeenkomstige excitatietabel en transitietabel. Noteer dat, inhet voorbeeld, de excitatie S2R2 = 11 voorkomt. Wij onderstellen S-dominante flipflops.

De verdere analyse en interpretatie van het netwerk hangen af van het klokgedrag vande geheugencellen. Met asynchrone geheugencellen hebben wij een interpretatie zoals bijteruggekoppelde poortnetwerken. Zo kan men de stabiele toestanden vinden (onder-streept in fig. 5.11). Het netwerk wordt gekenmerkt door een race, bij de overgang

Y1Y2, X1X2 : 00, 00→ 00, 10 .

De toestand wijzigt zich in twee symbolen. Deze race is niet kritisch daar er maar eenstabiele toestand is in de kolom X1X2 = 10 . De overgang

Y1Y2, X1X2 : 11, 01→ 11, 00

166

Page 171: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Excitatievergelijkingen:

S1 = X1 R1 = X ′2Y2

S2 = X1X′2 + X ′

1X2Y′1 R2 = Y ′

1

X1X2

00 01 11 10

Y1Y2: 00 00,01 00,11 10,01 10,1101 01,01 00,11 10,01 11,1111 01,00 00,00 10,00 11,1010 00,00 00,00 10,00 10,10

S1R1, S2R2

X1X2

00 01 11 10

Y1Y2: 00 00 01 10 1101 00 01 10 1111 01 11 11 1110 10 10 10 11

y1y2

(a) De excitatietabel (b) De transitietabel

Figuur 5.10: Analyse van een netwerk met geheugencellen.

167

Page 172: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

is meervoudig.Erger wordt het met de overgang

Y1Y2, X1X2 : 01, 01→ 01, 11 .

De inwendige toestand wijzigt zich weer in twee symbolen (van 01 naar 10). Wanneer desequentie

01→ 11→ 10

gevolgd wordt, komen wij in de stabiele toestand 11 terecht. Wanneer echter de sequentie

01→ 00→ 10

optreedt is de eindtoestand de (gewenste) toestand 10. Deze race is dus kritisch. Ze hangtaf van de verschillen in looptijden van de input X1 naar S2, en van de toestandsveran-derlijke Y ′

1 naar R2 (dus van de eerste geheugencel).Wanneer de geheugencellen synchroon zijn is de analyse eenvoudiger. Er is geen

onderscheid meer tussen stabiele en onstabiele toestanden: alle toestanden zijn stabiel,en alle overgangen gebeuren synchroon met de (gemeenschappelijke) klok. Er is geengevaar meer voor verkeerde werking met meer-dan-Hamming-1 transities: de race dieontstaat in de combinatorische netwerken speelt zich af na de overgang en geeft zelf geenaanleiding meer tot nieuwe overgangen. Voor een goede werking van een synchroonnetwerk moet men nochtans ook een aantal voorzorgen nemen:

1. Er mogen geen kloktransities gegenereerd worden zolang de combinatorische net-werken hun eindwaarde niet bereikt hebben, na de vorige transitie. Dit beperkt demaximale klokfrequentie van het synchroon netwerk.

2. De voorwaarde voor stabiele excitatie-ingangen slaat ook op de inputs van het net-werk. Deze moeten dus stabiel gehouden worden gedurende een zekere tijd voorde actieve kloktransitie.

De analyse van sequentiele netwerken wordt gewoonlijk vervolledigd met de toe-standstabel en, eventueel, met de eindtoestandentabel. De toestandstabel wordt afgeleiduit de transitietabel door de binaire representatie van de interne toestand te vervangendoor mnemonische symbolen (b.v. letters), en de rijen die niet-bereikte toestanden be-vatten te schrappen. De eindtoestandentabel volgt uit de toestandstabel van een asyn-chroon netwerk door, voor alle meervoudige overgangen, alle onstabiele tussentoestan-den te vervangen door de naam van de stabiele eindtoestand. Op fig. 5.11 worden detoestandstabel en de eindtoestandentabel van het netwerk in fig. 5.10 getoond. Noteerdat men, voor Mealy-netwerken, in dezelfde tabel ook de outputs kan voorstellen. Vooreen Moore-netwerk heeft men strikt genomen slechts een extra kolom nodig.

5.7 Opgaven

1. Analyseer het gedrag van de poortschakeling in fig. 5.12 (alle poorten zijn NAND= NIET–EN poorten). Wat doet dit circuit ?

2. Analyseer het netwerk in figuur 5.13. Dit is een deel van een commerciele chip, eenfase-detector.

168

Page 173: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

X1X2

00 01 11 10

Toestand A A,00 B,00 D,00 C,00B A,01 B,01 D,01 C,01C B,11 C,11 C,11 C,11D D,10 D,10 D,10 C,10

Nieuwe Toestand, Y1Y2

X1X2

00 01 11 10

Toestand A A,00 B,00 D,00 C,00B A,01 B,01 D,01 C,01C A,11 C,11 C,11 C,11D D,10 D,10 D,10 C,10

Nieuwe Eindtoestand, Y1Y2

Figuur 5.11: De vervollediging van de analyse

Figuur 5.12: Teruggekoppeld poortnetwerk

169

Page 174: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.13: Een digitale fasedetector

• bepaal het aantal toestanden;

• is het een ‘veilig’ netwerk, d.w.z., volgt het gedrag uit de transitietabel?

• bepaal het antwoord (sequentie van U1, D1) op de inputsequenties in figuur5.13.

3. Analyseer de schakeling in figuur 5.14.

(a) Bepaal haar antwoord op de opgegeven inputsignalen.

(b) Ga na of het werkelijk gedrag van de schakeling altijd overeenstemt met hetvoorspelde gedrag.

(c) Geef een woordbeschrijving van het gedrag van de schakeling.

4. Analyseer de werking van het circuit in figuur 5.15.

• stel de toestands/output-tabel op;

• vervolledig het tijdsdiagram in figuur 5.15 met de output Y , en met de evolutievan de inwendige toestand (geef de toestanden een 1-letternaam.)

5. (a) Analyseer de schakeling in fig. 5.16

170

Page 175: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

X

Y

Z

X

Y

Z

Figuur 5.14: Te onderzoeken netwerk

Figuur 5.15: Een asynchroon poortnetwerk

171

Page 176: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.16: Een asynchroon poortnetwerk

(b) Bepaal de outputs van de schakeling op de volgende inputs aangeven in defiguur.

(c) Geef een woordbeschrijving van het gedrag van de schakeling.

6. (a) Analyseer schakeling van figuur 5.17, d.w.z. stel de ttt op. Kies bij voorkeurde knipplaatsen aangegeven door de letters x, y, z.

(b) Bepaal het gedrag van de output voor de opgegeven inputs vertrekkende van-uit out = 0.

(c) Geef een woordbeschrijving van het gedrag van de schakeling.

(d) Ga na of het gedrag voorspeld door de ttt altijd overeenkomt met het werkelijkgedrag.

7. Analyseer het schema in fig. 5.18 van een teruggekoppeld netwerk met drie inputsX , Y , en C, en twee outputs Q1 en Q2. Noteer dat er hier een mengsel gebruiktwordt van poorten en schakelaars. Bij de analyse mag men veronderstellen datde schakelaars veel sneller omslaan dan de poorten. Wat doet dit netwerk? (hint:analyseer het circuit eerst met C = 1, en dan met C = 0. Analyseer dan wat ergebeurt als C van waarde verandert.)

8. Analyseer de schakeling in figuur 7.22. Veronderstel dat bij t = 0, A = 0, B = 0,X = 0, Y = 0 en Z = 0.

(a) Bepaal haar antwoord op de opgegeven inputsignalen (veronderstel funda-mentele mode).

(b) Ga na of het werkelijk gedrag van de schakeling altijd overeenstemt met hetvoorspelde gedrag. Mocht dit niet het geval zijn, kan je er iets aan doen?

(c) Geef een woordbeschrijving van het gedrag van de schakeling.

9. (a) Analyseer de schakeling in fig. 5.19.

(b) Geef een woordbeschrijving van het gedrag van de schakeling; omschrijf i.h.b.de voorwaarden waaronder z = 1.

172

Page 177: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.17: Te analyseren teruggekoppeld poortnetwerk

Figuur 5.18: Een teruggekoppeld netwerk in gemengde notatie

173

Page 178: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 5.19: Teruggekoppeld poortnetwerk

(c) Is deze schakeling vrij van ongewenste effecten wanneer men verondersteltdat de individuele poortvertragingstijden een spreiding van 1 : 3 kunnen ver-tonen? Zo er problemen zijn, kan men er iets aan doen?

10. Analyseer de schakeling in figuur 5.20 (vraag1). Veronderstel dat bij t=0, Q=1 enW=1.

(a) Bepaal haar antwoord op de opgegeven inputsignalen.

(b) Ga na of het werkelijk gedrag van de schakeling altijd overeenstemt met hetvoorspelde gedrag.

(c) Geef een woordbeschrijving van het gedrag van de schakeling.

11. Analyseer de schakeling in figuur 5.21. Veronderstel dat bij t = 0, D = 0, K = 0,X1 = 0 en X2 = 1.

(a) Bepaal haar antwoord op de opgegeven inputsignalen (veronderstel funda-mentele mode).

(b) Gan na of het werkelijk gedrag van deze schakeling altijd overeenstent methet voorspelde gedrag. Mocht dit niet het geval zijn, kan je er iets aan doen?

(c) Geef een woordbeschrijving van het gedrag van de schakeling, in de veron-derstelling dat D, zoals getekend, alleen kan veranderen kort na een stijgendeovergang op K.

12. (a) Analyseer de schakeling van figuur 7.23 van een synchroon sequentieel net-werk;

(b) Geef een woordbeschrijving van het gedrag van de schakeling; omschrijf i.h.b.de voorwaarden waaronder out = 1.

(c) Bewijs dat deze schakeling een gedrag vertoont equivalent met het gedraggegeven door de volgende ttt:

174

Page 179: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

D

C

Q

Vraag 1

Vraag 2

Aftrekker

X = ...01101

Y= ..00011

Z= ..1010

klok

C

D

Q

W

Figuur 5.20: Figuren bij vraag 10

K

D

X2

X1

A

B

C

D

E

F

G

K

D

X1

X2

Figuur 5.21: Te analyseren circuit in vraag 11

175

Page 180: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

X=0 X=1A A,0 B,1B B,0 C,0C C,0 D,0D D,0 E,0E E,0 F,0F F,0 A,0

176

Page 181: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 6

Sequentiele schakelingen en hunbouwstenen

Nu wij een eerste kennismaking met het gedrag van sequentiele schake-lingen gehad hebben, zullen wij in dit hoofdstuk een kort overzicht geven vanconcrete sequentiele bassischakelingen en hun gedrag. Dit overzicht heeft eengelijkaardige structuur als het overzicht van de combinatorische bouwblok-ken uit paragraaf 3.3.

6.1 Standaardcomponenten

6.1.1 Sequentiele SSI-componenten

De sequentiele SSI-componenten zijn in feite elementaire geheugencellen of flipflops.Men vindt ze per een of per twee in een behuizing. Flipflops zijn de basisbouwstenenvoor sequentiele schakelingen, en het is dus noodzakelijk een duidelijk beeld te hebbenvan de diverse soorten flipflops die bestaan.

Classificatie. Men kan de flipflops rangschikken volgens twee onafhankelijke criteria:hun klokgedrag en hun datagedrag.Volgens klokgedrag maakt men onderscheid tussen de volgende types1:

1. Flipflops zonder klok. Deze flipflops hebben geen aparte klokinput, en zullen huntoestand dus veranderen synchroon met veranderingen op de data-inputs. Wij noe-men deze soort asynchroon.

2. Flipflops met niveausturing. Dit zijn flipflops waarvan de toestand de input kan vol-gen zolang het kloksignaal zich op een bepaald niveau, bv. hoog, bevindt. Wanneerde klokinput laag gebracht wordt, zal de flipflop zijn toestand vergrendelen. Wijnoemen hem daarom ook soms grendel (Eng. latch).

3. Flipflops met flanksturing (Eng. edge triggered). Deze flipflops zijn gevoelig aan eenovergang op het kloksignaal, bijvoorbeeld een stijgflank. De toestand die aanwezigwas op de data-inputs net voor de flank zal de nieuwe toestand van de flipflopbepalen. De outputs veranderen uiteraard na de klokflank.

1De terminologie die hier gehanteerd wordt is slechts een van de gebruikte terminologieen. Wij zullen erechter in deze cursus consequent gebruik van maken.

177

Page 182: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 6.1: Een overzicht van de verschillende types flipflops verkrijgbaar als standaardcompo-nent

Asynchroon Niveaugestuurd Flankgestuurd PulsgestuurdD-gedrag 7431 74LS75 74LS74 **

MC1402B MC14013BS/R-gedrag 74LS279 ** **

MC1403BT-gedrag — — ** **J/K-gedrag — — 74LS73A 7476

MC14027B

4. Flipflops met pulssturing. Deze flipflops bestaan in feite uit twee in cascade gescha-kelde niveaugestuurde flipflops, de meester en de slaaf. Beide flipflops worden meteen complementair kloksignaal aangestuurd (in ‘tegenfase’). Wanneer de meesterde toestand van de data-inputs overneemt, is de slaaf vergrendeld, en de meestervergrendelt zijn toestand op het ogenblik dat de slaaf deze toestand overneemt.De werking van deze flipflop vereist de aanwezigheid van een volledig puls op deklokinput, niet enkel een flank, vandaar de naam. Dit klokgedrag noemt men danook meester/slaaf (Eng. master/slave).

Volgens datagedrag maakt men onderscheid tussen de volgende mogelijkheden:

1. Het D-gedrag. De input bestaat uit een binair signaal, en bij een activiteit op hetkloksignaal zal de flipflop het logisch niveau op de inputlijn opslaan.

2. Het Set/Reset-gedrag (S/R). Er zijn twee inputs. Een actief niveau op de Set-inputzal de flipflop op 1 brengen, een actief niveau op de Reset-input zal de flipflop op0 brengen. Actieve niveaus gelijktijdig op Set en Reset zijn ongeldig, en kunnenaanleiding geven tot onbepaald gedrag.

3. Het T-gedrag. Er is een input (de ‘toggle’ input). Bij een actief niveau op deze lijnzal de flipflop zijn toestand complementeren tijdens activiteit op het kloksignaal.

4. Het J/K-gedrag. Er zijn twee inputlijnen, zoals bij de S/R-flipflop. J speelt de rolvan Set, K van Reset. Hier betekent het gelijktijdig actief zijn van J en K echter datde flipflop zijn toestand moet complementeren zoals bij een T-flipflop.

Men kan de flipflops classificeren volgens deze twee kenmerken. Tabel 6.1 geeft hetresultaat van deze classificatie, toegepast op enkele flipflops uit de 74-reeks (TTL) enuit een CMOS-reeks. Noteer dat een aantal combinaties niet kunnen ingevuld worden(waarom?). Andere combinaties zijn redundant, en kunnen eenvoudig uit bestaandecombinaties gerealiseerd worden. Bijvoorbeeld, waar zinvol kan een T-flipflop steedsgemaakt worden uit een J/K-flipflop met verbonden data-inputs, en een D-flipflop uiteen J/K-flipflop waarvan de K-input het complement is van de J-input. Het S/R-gedragligt besloten in het J/K-gedrag. Deze combinaties werden aangegeven met een ** in detabel.

Analyse van het klokgedrag. Om op een correcte manier sequentiele schakelingen opte bouwen uit flipflops is het nodig een meer gedetailleerd inzicht te verwerven in de

178

Page 183: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

precieze betekenis van het klokgedrag. Wij zullen dit doen aan de hand van twee inter-vallen: het I-interval en het O-interval. Zij worden als volgt gedefinieerd voor flipflopsmet een kloksignaal.

Definitie 6.1 Het I-interval is het tijdsinterval waarin de inputs de (huidige of latere) outputsvan de flipflop kunnen beınvloeden. Het O-interval is het interval waarin de outputs van deflipflop kunnen veranderen.

Het is duidelijk dat de ligging van deze intervallen bepaald wordt door het klokge-drag (figuur 6.1). In deze figuur betekent ts en th resp. de insteltijd en houdtijd (Eng. setuptime en hold time) van de inputs m.b.t. de klok. Het interval dat afgebakend wordt door tsen th is een deelinterval van het I-interval, en is bepalend voor de volgende toestand diede flipflop zal aannemen. Binnen dit interval moeten de inputs constant gehouden wor-den, wil men dat de flipflop zich gedraagt volgens zijn nominaal datagedrag. Noteer datbij sommige pulsgestuurde flipflops de outputs beınvloed kunnen worden in een ruimerinterval dan dat opgespannen door ts en th, namelijk gedurende de tijd dat de klokinputhoog is (dit is het geval bij bv. de 7476). Het symbool tp stelt de propagatietijd voor, vande klokinput naar de output. Gewoonlijk verschilt de propagatietijd van een opgaandetransitie van deze van een neergaande; hiermee werd in de figuur echter geen rekeninggehouden.

Op figuur 6.2 werden de NAND-poortrealisaties van twee pulsgestuurde flipflopsvoorgesteld. De deelschakelingen gemerkt als ’master’en als ’slave’zijn in feite asynchro-ne R/S-flipflops, zoals ook de linkse schakeling in figuur 5.5. De rechtse schakeling infiguur 5.5 is de poortrepresentatie van een flankgestuurde D-flipflop.

Wat is nu de betekenis van de I- en O-intervallen? Stel dat wij de flipflops willen ge-bruiken als geheugenelementen in een synchrone automaat. De generieke structuur vaneen dergelijke automaat wordt voorgesteld in figuur 6.3, waarbij flankgestuurde geheu-gencellen worden ondersteld.

De flipflops in deze schakeling zullen zich gedragen volgens hun nominaal datage-drag, op voorwaarde dat tijdens het hele I-interval de correcte, stabiele combinatie aan-gelegd wordt aan de data-inputs. In een automaat zoals deze in de figuur hangt de in-putcombinatie op een geven ogenblik af van de huidige toestand van de geheugencellenen van de inputs van de automaat, vertraagd met de looptijd tc doorheen het combinato-risch circuit dat de toestandsfunctie realiseert. Men kan onder- en bovengrenzen bepalenop deze vertragingstijd op basis van de gebruikte combinatorische circuits. De kleinstmogelijke waarde voor de ondergrens is 0, en deze kan, op de gebruikte tijdsschaal, wille-keurig dicht benaderd worden wanneer een flipflopoutput rechtstreeks verbonden wordtmet een input. Noteer dat dit o.a. het geval is bij schuifregisters.

Wil men dat een dergelijke automaat correct functioneert, dan moeten de flipflopin-puts stabiel zijn tijdens het I-interval. Dit impliceert dat de unie van vertraagde O-intervallenvan de flipflops die een bepaalde input aansturen disjunct moet zijn van het I-interval van deontvangende flipflop. Bijgevolg

1. moeten alle geheugenelementen hetzelfde kloksignaal toegevoerd krijgen; mogelij-ke tijdsverschuiving (Eng. clock skew) tussen de kloksignalen aan de diverse geheu-genelementen moeten beperkt blijven aangezien zij de relatieve verschuiving vanO-intervallen t.o.v. I-intervallen kunnen vergroten;

2. moeten alle geheugenelementen compatibel zijn met elkaars klokgedrag. Dit isnodig wanneer wij outputs van flipflops rechtstreeks aan inputs van andere flip-

179

Page 184: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 6.1: De ligging van de I- en O-intervallen voor diverse klokgedragingen. Afhankelijkvan de gedetailleerde realisatie kan de ligging van de intervallen verschillen. Zo ligt bij veelpulsgestuurde flipflops het I-interval rond de daalflank op de klok, en valt dus niet noodzakelijksamen met de tijdsduur dat het kloksignaal hoog is.

Master SlaveSlave

J

K

klok

Q

set

Qb

Qm

QmbQsb

QsD

klok

set

Figuur 6.2: Modellen op logisch niveau van pulsgestuurde flipflops (master-slave). Links: eenJK-flipflop, rechts een D-flipflop. Hebben beide flipflops een gelijkaardig I-interval?

180

Page 185: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

tsth

tp

Klok

Fliplop-input

Flipflop-output

tc,max

Tklok

Combinatorischnetwerk

Input Output

Flipflop inputFlipflop output

Klok

Flipflop

Input

Output

Klok

Flipflop

OutputnetwerkOutputnetwerk

Toestands-netwerk

Toestands-netwerk

InputOutput

Klok

Flipflop

(a) (b) (c)

Figuur 6.3: De generieke structuur van een synchrone automaat (het zg. Huffman-model). (a)algemeen model, (b) een Moore-automaat waar de uitgang enkel afhangt van de toestand, (c) eenMealy-automaat waar de uitgang ook combinatorisch afhangt van de ingang

181

Page 186: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

flops verbinden. Ingrepen op het kloksignaal zelf (zoals bv. inverteren) verhogende klokverschuiving, en zijn daarom te mijden. Technieken zoals gated clocks, waar-bij men de klok naar een gedeelte van een circuit onderdrukt met de bedoeling dedissipatie van het circuit tijdens perioden van inactiviteit te verlagen, moeten omdeze reden uiterst zorgvuldig uitgevoerd en gecontroleerd worden.

3. moet de klokperiode voldoend groot zijn, om ervoor te zorgen dat de inputs gesta-biliseerd zijn bij het begin van het I-interval: Tklok > tp + tc,max + ts;

4. moet het I-interval van een geheugencel disjunct zijn van het O-interval, om cor-rectheid te garanderen bij tc = 0; in feite is er zelfs een zekere separatie vereist omhet hoofd te bieden aan klokverschuiving;

5. moeten de inputs zodanig aangestuurd worden dat zij nooit een inputveranderingteweegbrengen tijdens het I-interval.

Men ziet dat de vierde eis het gebruik van niveaugestuurde flipflops uitsluit voor derealisatie van synchrone automaten.2 Deze eis resulteert in een bepaalde kostprijs: derealisatie van het toegelaten klokgedrag (puls- en flanksturing) is duurder dan dat vaneenvoudige niveausturing. Pulssturing vereist het gebruik van twee flipflops per geheu-gencel; flanksturing wordt meestal verkregen door ingebouwde hazards of meervoudigeovergangen in de geheugencel, en vereist daardoor ook meer elementaire poorten daneen niveaugestuurde werking (zie hoofdstuk 6). Dit verschil in kostprijs is nauwelijks temerken bij SSI- en MSI-realisaties; het speelt echter een belangrijker rol in VLSI-ontwerp.

Metastabiliteit. Men kan zich de vraag stellen wat er gebeurt wanneer wij de inputsvan een flipflop niet constant houden gedurende het I-interval. Dit is een situatie die somsonvermijdelijk is, daar het ordentelijk aanleggen van inputs aan een synchrone automaat(volgens de vijfde eis in bovenstaande opsomming) vereist dat de buitenwereld de fasevan het kloksignaal kent. Dit is duidelijk niet het geval voor inputs die effectief uit eenander systeem met een lokaal kloksignaal afkomstig zijn.

In de meeste gevallen zal de flipflop een niet-voorspelbaar gedrag vertonen bij eendergelijke aansturing. Een inputsignaal dat een toestandsovergang zou veroorzaken zaldit niet meer met zekerheid doen: ofwel komt de input toch nog vroeg genoeg, en zalde toestandsovergang plaatsvinden, ofwel komt hij te laat, en blijft de toestand van deflipflop onveranderd. Dit gedrag kan verschillen van component tot component. Bijhet ontwerp van digitale systemen moet men met deze onzekerheid terdege rekeninghouden; op dit punt komen wij in meer detail terug in het volgende hoofdstuk.

In zeldzame gevallen zal er zich een heel ander scenario voordoen. Signalen – zowelhet kloksignaal en het datasignaal – veranderen niet oneindig snel, en het kan dus gebeu-ren dat zij beide ongeveer tegelijkertijd door de verboden zone lopen. Op dat ogenblikkunnen dan in het inwendige van de flipflop verschillende signalen waarden aannemenin de omgeving van het drempelpunt (in de verboden zone). Voor de flipflop, die eenteruggekoppeld systeem is, is dit punt een onstabiel evenwichtspunt, en in de onmiddel-lijke omgeving van dit punt gedraagt de flipflop zich als een onstabiel teruggekoppeld

2Althans wanneer aangestuurd met een eenfasige klok. Met een tweefasige klok met niet-overlappendefasen kan men, mits gebruik van twee flipflops per geheugenbit, een correcte werking realiseren. Noteer degelijkenis hiervan met de pulsgestuurde flipflop.

182

Page 187: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 6.4: Opgemeten metastabiel gedrag van een 74LS74 flankgestuurde flipflop

lineair systeem. Wanneer wij eenvoudigheidshalve aannemen dat de flipflop daar ge-modelleerd kan worden als een eerste-ordesysteem, volgt dat de spanning volgens eenexponentiele wet weg zal evolueren van het onstabiel evenwichtspunt. De snelheid vandeze evolutie is des te trager naarmate men van dichter bij het evenwichtspunt vertrekt.De tijd die verloopt alvorens de flipflop een logische waarde bereikt heeft (hetzij hoog oflaag) kan dus veel groter zijn dan de nominale propagatietijd; in theorie is er zelfs geenbovengrens op deze tijd. Dit gedrag noemen wij metastabiel: het kan een ongewoon langetijd duren alvorens de flipflop een geldige eindwaarde bereikt, veel langer zelfs dan deduur van een klokperiode bij hoge klokfrequenties. Een gedetailleerde analyse van hetfenomeen wordt gemaakt in Appendix C.3.

Zulk gedrag kan tot fouten leiden in de schakelingen die gebruik maken van deflipflop-output. Figuur 6.4 geeft een idee van het metastabiel gedrag van een 74LS74flankgestuurde flipflop. Noteer dat de gewone vertragingstijd van deze flipflop onge-veer 14 ns is; er zijn echter vertragingstijden van 30 ns en meer opgemeten voor over-gangen op de data-input in een heel nauw gebied (ong. 1 ns) in het I-interval. Een meergedetailleerde analyse van de optredende fenomenen vindt men in appendix C.3.

Men kan inzien dat dit fenomeen fundamenteel is, en dat men het nooit volledig kanelimineren. Men kan echter wel de kans dat het optreedt bijzonder laag maken. Invloeds-factoren hierop zijn vooreerst de bouw van de flipflop. De kringwinst van de flipflop,beschouwd als lokaal lineair systeem, is een belangrijke parameter. Een hoge winst leidttot kleine tijdsconstanten en dus een lage kans op metastabiliteit. Voorts spelen ook degebruikte signaalfrequenties een rol: metastabiliteit kan immers enkel ontstaan wanneereen klokovergang en een datasignaalovergang te dicht bij elkaar liggen. Hoe hoger defrequentie van beide, hoe hoger de kans op metastabiliteit. Men mag de frequentie vande systeemklok dus niet nodeloos hoog maken, en men moet ervoor zorgen dat asyn-chrone inputs eveneens een zo laag mogelijk frequentie hebben.

Het optreden van metastabiliteit kan gekarakteriseerd worden a.d.h. van de zg. MTBF,de ‘Mean Time Between Failures’ van een flipflop wanneer deze aangestuurd wordt meteen kloksignaal met frequentie fc en een asynchroon datasignaal dat verandert met fre-quentie fd. Met ‘failure’ bedoelt men het verlopen van meer dan een tijd ∆t na de

183

Page 188: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

74AC

74BCT

74ALS

74LS

74ABT

74AS

74HC

74S

74Standard

74F1010

109

108

107

106

105

104

103

102

101

100

10-1

10-2

10-3

10-4

0 2 4 6 8 10 12 4 16 18 20 22 244 26 28 30 32 34 36 38 40

fclk = 1 MHz

fin = 500 kHz

1 dag

1 uur

1 minuutMT

BF

–s

ec

on

de

n

1 jaar

tx – ns

1000 jaar

Figuur 6.5: MTBF voor TTL-soorten ten gevolge van metastabiel gedrag (Texas Instru-ments,1997. De datafrequentie is de helft van de aangegeven klokfrequentie)

actieve klokflank alvorens de flipflop zijn definitief logisch niveau bereikt. Men vindt([Breuninger85])

MTBF =C1

fcfdexp(C2∆t),

waarin C1 en C2 technologie-afhankelijke constanten zijn. Bijvoorbeeld, voor ALS-TTLvindt men, met frequenties in MHz en tijden in ns, C1 = 0, 4 en C2 = 1, 151. Met eenklokfrequentie van 10 Mhz en een datafrequentie van 5 Mhz, en met ∆t = 40 ns, wordtMTBF = 7, 84 ·107 s, wat overeenkomt met ongeveer 2,6 jaar. Dezelfde frequenties en een∆t = 50 ns leiden bij LS-TTL echter tot MTBF = 657 s, slechts ongeveer 11 minuten dus!De karakteristieken gepubliceerd door Texas Instruments ([Breuninger85]) vindt men infiguur 6.5.

6.1.2 Sequentiele MSI-componenten.

Sequentiele componenten van MSI-complexiteit zijn eenvoudige sequentiele automaten,zoals registers, schuifregisters, tellers, frequentiedelers, al dan niet voorzien van afscha-kelbare uitgangen, bedoeld voor de aansluiting op een bus. Kleine, snelle statische ge-heugens, registerbestanden en FIFO’s zijn andere voorbeelden. Het klokgedrag van re-gisters is meestal niveaugestuurd of flankgestuurd; tellers vindt men in volledig synchro-ne vorm (met flanksturing), in gedeeltelijk synchrone vorm (bv. met asynchrone clear), ofin asynchrone vorm, als zg. doorsijpeltellers (‘ripple counters’).

184

Page 189: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Alles wat gezegd werd over het klokgedrag van individuele flipflops blijft uiteraardvan toepassing op de sequentiele MSI-componenten.

6.1.3 Sequentiele LSI- en VLSI-componenten

Vrijwel alle circuits van deze complexiteit bevatten een zekere hoeveelheid geheugen.Generieke VLSI-circuits die in zeer grote oplagen verkocht worden zijn uiteraard degeheugens, microprocessors, en de randchips voor microprocessors (coprocessors, I/O-chips voor video, communicatie, enz.). Hiernaast bestaat er een grote diversiteit aanspecifieke chips voor de consumentenmarkt.

LSI- en VLSI-schakelingen worden voornamelijk in MOS en CMOS gemaakt, hoeweler uiteraard ook complexe TTL- en ECL-componenten te vinden zijn.

Geheugens

Geheugenwerking in digitale schakelingen kan op diverse manieren verwezenlijkt wor-den. In de gebruikelijke technologieen (TTL, ECL, MOS, CMOS) maakt men ofwel ge-bruik van niet-lineaire teruggekoppelde systemen, zoals flipflops, ofwel gebruikt meneen passieve vorm van ladingsopslag op een geısoleerde condensator. Het laatste kanuiteraard enkel in MOS-gebaseerde families.

De eerste vorm is een actieve vorm, en het in stand houden van de geheugentoestandvraagt een permanente toevoering van vermogen (die soms wel heel klein kan zijn, bv.bij flipflops in CMOS). In principe vraagt de passieve vorm geen toevoering van energie.Uiteraard is het zo dat elke condensator een zekere lekstroom heeft, en dat dus ook daarvermogen nodig is voor de vervanging van de weggelekte lading. Wanneer echter deperiode waarover de geheugenwerking moet gerealiseerd worden klein is (enkele ms),kan men de passieve vorm met voordeel gebruiken, daar een geheugencel bijzonder kleinen eenvoudig is. Hierop steunt trouwens het gebruik van dynamische logica in NMOSen CMOS.

Op basis van deze twee principes vinden wij twee grote klassen van geheugencom-ponenten: statische geheugens, gebaseerd op de actieve vorm, en dynamische geheugens,gebaseerd op de passieve vorm. Wij zullen beide klassen bespreken.

Statische geheugens. Statische geheugens gebruiken flipflops als geheugenelementen.Elk bit vereist dus minstens twee actieve circuitelementen (transistoren); vaak zijn heter meer. Dit heeft als gevolg dat de geheugencapaciteit per eenheidsoppervlakte vanstatische geheugens veel kleiner is dan dat van dynamische. Statische geheugens kunnenechter in alle technologieen gerealiseerd worden.

Men gebruikt de statische techniek voornamelijk voor de realisatie van relatief kleinemaar snelle geheugens. De snelste vormen zijn ongetwijfeld de registers, waar elk bit pa-rallel toegankelijk is, en waar lees- en schrijfopdrachten in zekere zin simultaan kunnengebeuren.3 Registers hebben natuurlijk een zeer kleine capaciteit. Wanneer men meercapaciteit wil inbouwen kan men niet langer elk bit parallel toegankelijk maken. Menorganiseert de geheugenbits dan in een matrix van woorden. Met behulp van een binair

3Dit moet men als volgt interpreteren: Het lezen kan gelijktijdig gebeuren met het aanleggen van nieuwegegevens die moeten ingeschreven worden. De kortste periode hiervoor bruikbaar is in feite het I-intervalvan de flipflops. Het kloksignaal dat het I-interval, en dus de schrijfoperatie, beeindigt zal meteen ook deleesoperatie beeindigen.

185

Page 190: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

gecodeerd adres kan men een woord selecteren, en op dit geselecteerde woord kan menlees- of schrijfoperaties uitvoeren.

De geheugenvorm die het dichtst bij de registers staat is het zg. meerpoortgeheugen ofregisterbestand. Men voorziet het geheugen van meer dan een adres, bijvoorbeeld 2 of 3, enorganiseert het geheugen zodanig dat tegelijkertijd twee locaties kunnen gelezen wor-den, en een derde geschreven (met de bovenstaande definitie van gelijktijdigheid). Hetis duidelijk dat de geheugencapaciteit van dit soort geheugens beperkt moet zijn wegenshet groot aantal adreslijnen. Een 3-poortgeheugen met 64 locaties vereist immers al 18adreslijnen. Wanneer men hierbij ook het aantal datalijnen voegt (3 maal de woordbreed-te) en de controlesignalen komt men tot een relatief groot aantal pinnen wanneer hetgeheugen uitgevoerd wordt als een afzonderlijke chip. Dit soort van geheugens vormtmeestal de kern van de CVE van een processor, of wordt gebruikt om twee digitale sys-temen te koppelen via een gemeenschappelijk communicatiegeheugen (de zg. Dual PortMemories).

De meer ‘gebruikelijke’ vorm van statisch geheugen, RAM (Random Access Memory)voorziet in een adres, waarop ofwel een lees-, ofwel een schrijfoperatie uitgevoerd kanworden. Beide operaties zijn mutueel exclusief. Van het adres worden tegelijkertijd allebits aan het geheugen aangelegd. Bij een schrijfoperatie worden ook de te schrijven gege-vens aangelegd, samen met een selectiesignaal dat de chip selecteert, en een schrijfsignaaldat de eigenlijke schrijfoperatie uitvoert. Bij een leesoperatie moet men enkel het selec-tiesignaal aanleggen, met het schrijfsignaal inactief. De chip zal dan na verloop van detoegangstijd de gevraagde gegevens naar buiten brengen. Het gebruiksprotocol van stati-sche geheugens is dus bijzonder eenvoudig, wat ook de aansturende circuits eenvoudighoudt.

Sommige statische geheugens hebben gescheiden data-in- en uitgangen; bij de meesteechter worden deze connecties gecombineerd tot bidirectionele draden, wat het aantal aan-sluitingen reduceert. Dit vereist uiteraard dat zowel het geheugen als de gegevensbrondie de schrijfgegevens aanbrengt afschakelbare uitgangen bezitten. Een geheugenchipzal de datalijnen slechts aansturen wanneer hij geselecteerd is en het schrijfsignaal inac-tief is.

Men kan zich de vraag stellen hoe men de woordbreedte van een geheugenchip moetkiezen opdat het aantal aansluitpinnen minimaal zou zijn voor een gegeven geheugen-capaciteit. Het antwoord is eenvoudig: als men n = 2k bits capaciteit heeft, en woordenvan w = 2j bits, dat heeft men a = log2(n/w) = k − j adreslijnen nodig, en w datalijnen.De grootheid 2j − j is minimaal wanneer j = 0 of j = 1, dus de chip heeft het minsteaansluitdraden bij een woordbreedte van 1 of 2 bit. Nochtans vindt men statische geheu-gens ook in woordbreedten van 4 en 8 bit, omdat dit het aantal chips reduceert voor derealisatie van een geheugen met een beperkte capaciteit en een gegeven woordbreedte.Wanneer men bv. een geheugen moet realiseren van 1024 woorden van 32 bit met geheu-genchips die een capaciteit hebben van 8 K bit, dan heeft men 32 chips nodig met eenwoordbreedte van 1 bit, maar slechts 4 met een woordbreedte van 8 bit. De chips met eenwoordbreedte van 1 bit zullen 4 draden minder hebben (13 adreslijnen en 1 datalijn) danhun collega’s van 8 bit (10 adreslijnen en 8 datalijnen), maar het totaal aantal draden iskleiner bij de 8-bit chips. Moet men echter een geheugen van 8 K woorden van 32 bit (intotaal 256 Kbit) realiseren met dezelfde chips, zal men in beide gevallen 32 chips nodighebben, en de eerste oplossing (1-bit chips) is beter.

De interne organisatie van geheugenchips is meestal als een rechthoekige of vierkante

186

Page 191: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 6.6: Structuur en aansturing van een statische RAM-chip

Tabel 6.2: De eigenschappen van enkele commerciele statische geheugenchips. De chip gemerktmet (*) is een tweepoortgeheugen

Type capaciteit woordbreedte toegangstijd technologie pinnen(bit) (bit) (ns)

CY10E494-7 64 K 4 7 ECL 28HM100506 256 K 4 11 ECL 32HM828128-7 1M 8 70 CMOS 32HM6708-20 256 K 4 20 Bi-CMOS 24MCM67282 1M 4 10 Bi-CMOS 32CY7B134(*) 32 K 8 20 Bi-CMOS 48MCM63F733A 4 M 32 11 CMOS 100

matrix van geheugencellen (figuur 6.6).Elke cel heeft een rij- en een kolomadres, die elk afhangen van een gedeelte van de

adreslijnen (bv. elk de helft bij adressen van even lengte). De adresdecoder bestaat dusuit twee kleinere decoders, die resp. de rijen en de kolommen decoderen. Waar bij eenzg. lineaire decodering op de chip a lijnen moeten lopen, is hun aantal nu gereduceerdtot ruwweg 2

√a. Dit beperkt aanzienlijk de interconnectie-oppervlakte op de chip. Vol-

gens figuur 6.6 is het gedrag van de component asynchroon, en moeten het adres en decontrolesignalen constant gehouden worden tijdens een operatie.

De net beschreven interface is asynchroon (fig. 6.6): er is geen sprake van een kloksig-naal. Recentelijk zijn er ook de zg. Synchrone Statische RAM’s bijgekomen, die het adres,de controle-informatie, en de eventuele schrijfdata opslaan in een intern register bij destijgflank op een kloksignaal. Men kan dan het nieuwe adres al klaar zetten terwijl mende (lees)data van de vorige cyclus opneemt tijdens de volgende stijgflank. Dit is een vormvan gepijplijnde werking, die heel frequent gebruikt wordt in de geheugenhierarchie vanmoderne microprocessors.Tabel 6.2 geeft een idee van de eigenschappen van bestaande statische geheugens.

187

Page 192: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Geheugen-condensator

Gnd

W'

CAS'

A0..A9

RAS'

Klokgen.nr. 2

Klokgen.nr. 1

kolomadresbuffer

refreshcontroller

refreshteller

rijadres-buffer

rij-decoder

matrix512 x 2048

data inbuffer

data outbuffer

kolom-decoder

sense-versterkers woordlijn

bitlijn

D

Q

Figuur 6.7: Interne opbouw van een dynamisch geheugen

Dynamische geheugens. Wil men geheugens maken met veel grotere capaciteiten danmogelijk met statische geheugens, dan moet men zijn toevlucht nemen tot een geheu-gentechnologie gebaseerd op passieve geheugenwerking. Met deze technologie kan mengeheugenmatrices bouwen waarin elk bit bestaat uit een (veldeffect-)transistor, en eenkleine condensator (figuur 6.7).

Figuur 6.8 toont een fysieke realisatievorm van een dynamische RAM.Om redenen van pinnenaantal aan de geheugenchip zal men de woordbreedte van

grote geheugens dikwijls op 1 bit nemen. Bovendien zal men het adres opsplitsen intwee (waar mogelijk gelijke) helften, die, in tegenstelling met de statische geheugens,niet tegelijkertijd worden aangelegd. Een helft noemt men het rijadres, de andere hetkolomadres. Het aanleggen van een adres wordt dus een sequentiele operatie, wat deaanwezigheid van kloksignalen vereist. Men brengt twee extra (klok)signalen aan, RAS(Row Address Strobe) en CAS (Column Address Strobe), die dienen voor het inklokkenvan resp. het rijadres en het kolomadres.

Een dergelijk geheugen werkt als volgt (zie ook figuur 1.4). Eerst zal men een gedeel-te van het adres – het rijadres – aanleggen, en dit aangeven door RAS laag te brengen.Het laag brengen van RAS schrijft het rijadres in een register op de chip. Dit heeft alsgevolg dat in de geheugenmatrix alle cellen op de geselecteerde rij worden gelezen. Hetlezen bestaat erin dat men de spanning op de bitlijnen, dit zijn de banen die kolomsge-wijs de geheugencellen verbinden met de inputs van de leesversterkers, op een voorop-gegeven waarde brengt (precharge). Deze spanning komt overeen met het metastabielevenwichtspunt van flipflops in de technologie. Deze banen hebben een strooicapaciteiten zijn dus capacitief. Dan verbindt men de geselecteerde geheugencondensatoren metde bitlijnen door de woordlijn op de hoge spanning te brengen; de geheugenFETS gaandan geleiden en er grijpt een ladingsherverdeling plaats. De eindspanning op de bitlijnenhangt af van de originele spanning op de geheugencondensator. De eindspanning, dieenkele tientallen millivolt afwijkt van het metastabiel punt, wordt versterkt tot logische

188

Page 193: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

snijvlak 1doorheen woordlijn snijvlak 2

parallel met bitlijn

bitlijnwoordlijn

woordlijn

woordlijn

bitlijnbitlijn

geheugencondensatorelektrode 1

geheugen-condensatorelektroden

geheugencondensatordielektricum

geheugencondensatorelektrode 2

geleidend steeltjecontact met sourcevan FET

0,8 mm

1,5 mm

contact van bitlijnmet drain van FET

gateoxidevan FET

n+-diffusie

Figuur 6.8: Fysieke structuur van een 64 Mbit dynamisch geheugen (Samsung, 1995). De geheu-gencondensatoren worden hier gevormd door ’paddestoeltjes’in polysilicium. Een geheugencelmeet 0,8× 1,5 µm (in bovenzicht). De woordlijnen vormen in feite de gates van de geheugen-FETsdoor het oxide lokaal dunner te maken.

189

Page 194: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

niveaus door de leesversterkers (Eng. Sense Amplifiers). De versterkers zijn niets andersdan asynchrone flipflops waarvan de voedingsspanning afgeschakeld is tot net voor deleesoperatie. Elke bitlijn is verbonden met een flipflop, en de spanning erop spanningvormt de begintoestand van de flipflop. Op het opgenblik dat de voedingsspanning overde leesflipflops aangeschakeld wordt, evolueren zij snel naar de corresponderende span-ning in het L- of H-interval op de wijze die in appendix C.3 in detail wordt beschreven.

Noteer dat het lezen van een cel de geheugencondensator ontlaadt, het is destructief.De uitgelezen informatie zal dus terug moeten ingeschreven worden.

Na het aanbrengen van het rij-adres zal men op de adreslijnen het kolomadres aan-brengen, en ook CAS laag brengen. Het kolomadres zal uit de gelezen rij een bit selecte-ren, en dit naar buiten brengen. Tegelijkertijd worden de gelezen bits weer ingeschrevenin de geheugencellen. Dit kan door op de bitlijnen een spanning aan te brengen die deversterkte versie is van de spanning die werd verkregen. Aangezien het rijadres nogaan ligt, worden de ontladen condensatoren selectief weer opgeladen, en dit van uit hetregister van de leesversterkers op de chip dat de net uitgelezen bits bevat.

Na verloop van tijd brengt men RAS en CAS weer hoog, en de leesoperatie is afgelo-pen. Men ziet dat de cyclustijd groter is dan de toegangstijd.

Bij het schrijven gaat men op dezelfde manier tewerk. Enkel wordt nu bij de geselec-teerde kolom niet de uitgelezen waarde teruggeschreven, maar de informatie die door degebruiker op de datalijn werd aangebracht, en vadaar op de bitlijnen.

Het sequentieel aanleggen van het adres reduceert het aantal pinnen aan de geheu-genchip. Zo hebben wij voor een 4 Mbit-geheugen met een woordbreedte van 1 bit 11adreslijnen nodig, 1 datalijn (of 2, bij gescheiden in- en outputs), RAS, CAS, het schrijf-signaal en het selectiesignaal. Bij een niet-gemultiplexeerd adres is het aantal pinnenonmiddellijk 11 hoger. Tegelijkertijd resulteert deze sequentialiteit echter in een tragerewerking (hogere toegangstijd) en een complexere aansturing (controle van het tijdsver-loop op RAS en CAS). De complexiteit wordt nog verder verhoogd door de noodzaak totopfrissen (Eng. refresh). Gezien de passieve aard van de geheugenopslag, zal na verloopvan tijd (enkele tientallen ms tot ettelijke seconden) de informatie van de geheugencon-densatoren weglekken. De gebruiker van de chip is verantwoordelijk voor het regelmatig op-frissen van de lading op de condensatoren. Dit kan bv. door regelmatig een leesoperatie tedoen. Hierbij volstaat het systematisch door alle rijadressen te lopen: wanneer men alle211 rijadressen afloopt tegen een tempo van een per 16 µs, wordt eens per 32 ms elke celopgefrist. Sommige geheugens laten toe dit te doen door een verkorte cyclus, die enkelvoor het aanleggen van het rijadres een puls op RAS vereist. Voor deze en andere detailsverwijzen wij naar de componentspecificaties.

De toegangstijd van dynamische geheugens kan sterk verkort worden door gebruikte maken van de zg. paginamode (Eng. page mode). Hierbij wil men lezen op adressen diealle behoren tot dezelfde rij. Zoals men kan inzien moet men het rijadres maar eenmaal aan-leggen, en dan de kolomadressen binnen die rij, elk voorzien van een signaal op CAS. Bijsommige dynamische geheugens hoeft men zelfs geen CAS-signaal meer aan te leggenbij een verandering van het kolomadres. Dit noemt men ‘static column mode’. Wanneerde adressen louter sequentieel oplopen kan een teller op de geheugenchip er zelfs voorzorgen dat men de kolomadressen niet zelf moet aanleggen (Eng. nibble mode), voor 4 op-eenvolgende bits). Lezen op deze manier zal de toegangstijd ongeveer halveren, en hemreduceren tot een waarde die vergelijkbaar is met de toegangstijd tot statische geheu-gens uit dezelfde technologie. Tabel 6.3 geeft enkele karakteristieken van hedendaagse

190

Page 195: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 6.3: De eigenschappen van enkele commerciele dynamische geheugenchips. (*): dyna-misch geheugen zonder adresmultiplexering; (**): EDRAM. Noteer dat de geheugenafmetingenexponentieel snel groeien in de tijd, en dat een dergelijke tabel snel achterhaald is. Gigabit-geheugens (4 Gb) zijn in onwikkeling

Type capaciteit cyclustijd toegangstijd (ns) pinnen(woorden × bit) (ns) volledige cyclus page mode

HM51256-8 256 K × 1 155 85 40 16MCM516100-60 16 M × 1 130 60 30 24MCM516400-60 4 M × 4 130 60 30 24HM571000-35 (*) 1M × 1 75 35 25 28DM2202-15 (**) 1M × 4 65 35/15 15 28

dynamische geheugenchips.

Speciale vormen. Naast de geheugens met de ‘gewone’ structuur die wij hierbovenbeschreven hebben bestaan er een aantal speciale vormen, die bijzonder nuttig zijn ingeavanceerde digitale systemen. Ons overzicht zal echter zeer beperkt zijn: een dieperebehandeling valt buiten het kader van de cursus. Wij raden de geınteresseerde lezer aanhiervoor de catalogi van de diverse fabrikanten te raadplegen.

Een eerste speciale vorm is een vorm die gebruikt wordt als communicatiehulpmid-del tussen asynchroon werkende digitale systemen: de zg. FIFO-geheugens (van FirstIn, First Out). De bedoeling van dit soort geheugens is het maken van een soort wacht-lijn tussen twee systemen. Het eerste systeem schrijft woorden in het geheugen, echterzonder een adres op te geven: de ingangspoort ziet eruit als een register. Intern wordende ingeschreven gegevens in individuele plaatsen weggeschreven. Aan de leeskant kanmen, ook zoals bij een register, de gegevens teruglezen in de volgorde waarin ze werden in-geschreven. Aan de schrijfkant heeft men een signaal dat aangeeft of het geheugen al danniet vol zit; aan de leeskant een indicatie over het al dan niet leeg zijn. Lees- en schrijfkantkunnen simultaan (en asynchroon van elkaar) actief zijn.

Een tweede speciale vorm is de VRAM (Video RAM). Dit is in feite een ‘gewone’dynamische RAM, waarbij men een gelezen rij volledig kan transfereren naar een inge-bouwd schuifregister. Hiervoor volstaat het een controlelijn te activeren gedurende eenRAS-cyclus. De gegevens in dit schuifregister kan men dan verder naar buiten schui-ven, onafhankelijk van de werking van de rest van de chip. Omgekeerd kan men ookgegevens inschuiven in het schuifregister, die nadien in een schrijfoperatie kunnen gede-poneerd worden in een rij van de geheugenmatrix.

Dit soort geheugens werd ontworpen voor de aansturing van beeldschermen. Hetherhaaldelijk lezen van het geheugen volgens de door de beeldbuis vereiste scanvolgordegebeurt via het ingebouwd schuifregister, en laat de toegang tot het geheugen voor deprocessor(en) die het beeld moeten aanbrengen vrijwel volledig beschikbaar. Af en toezal een extra geheugencyclus moeten ingelast worden die een rij leest en transfereert naarhet schuifregister.

Een derde speciale geheugenvorm is deze van de enhanced DRAM, EDRAM. Hiermaakt men ook gebruik van een ingebouwd register dat de gegevens van een rij uit dematrix kan bevatten. Wanneer het geheugen gelezen wordt op een gegeven rijadres zalde chip nagaan of dit niet een rij is waarvan een kopie opgeslagen ligt in het rijregister.Wanneer dit het geval is kan men de informatie uit het rijregister lezen; dit kan gebeuren

191

Page 196: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

met de snelheid van een statisch geheugen. Wanneer de rij niet bevat zit in een rijregister,moet ze gelezen worden met een intern gegenereerde RAS-cyclus. Het rijregister vormteen soort cache voor de eigenlijke geheugenmatrix (voor een behandeling van caches, ziecursus ‘Computerarchitectuur’).

Processors

(Micro-)processors zijn een tweede vorm van een heel complexe component, die, on-danks zijn complexiteit, in zeer grote oplagen gemaakt kan worden. De reden hiervoormoet weer gezocht worden in de universele inzetbaarheid van de component in een zeerruime klasse van toepassingen.

Microprocessors – dit zijn processors die bestaan uit een of een zeer klein aantal chips– zijn uiteraard de bouwstenen voor computers. De structuur en eigenschappen vancomputers komen gedetailleerd aan bod in andere cursussen, en zullen hier dus nietbehandeld worden. Wel is het nuttig hier de processor te bekijken vanuit het gezichts-punt van de ontwerper van digitale systemen: de processor is een component die alsbouwsteen kan gebruikt worden voor de realisatie van een klasse digitale problemen. Inhet bijzonder komen de syntheseproblemen die gekenmerkt worden door een complexefunctionaliteit waar echter geen extreme eisen gesteld worden aan de uitvoeringssnel-heid in aanmerking voor realisatie met (onder meer) processors.

Microprocessors vormen een familie van componenten, die een ruim gebied over-spannen gekenmerkt door uiteenlopende compromissen tussen snelheid en complexiteit.Niettemin is de basisstructuur van de meeste processors zeer stereotiep: zij hebben eenVon Neumann- of een Harvard-architectuur. Processors bestaan uit een controlegedeel-te en een datapad. Het datapad zelf bestaat uit een aantal registers en een of meerderecombinatorische operatoren, die onderling geconnecteerd worden door een of meerderebussen. Het controlegedeelte zelf bestaat ook uit een aantal registers en een hoeveelheidcombinatorische functies. Samen vormen zij een automaat die instaat voor de contro-le van het datapad. Een processor moet aangevuld worden met een geheugen (twee inhet geval van machines met een Harvard-architectuur), waarin de programma’s en degegevens worden opgeslagen die in feite een realisatie vormen van het te synthetiserengedrag. De connectie met de buitenwereld gebeurt via I/O-voorzieningen, die in velegevallen eveneens extra aangebracht moeten worden.

Van componentzijde uit bekeken zijn er belangrijke verschillen tussen de diverse ty-pes microprocessors. Deze verschillen hebben vooral betrekking op de fysische vorm diede processor zal aannemen (bv. het aantal chips), en de prestaties die hiermee overeen-stemmen. Wij zullen nu kort enkele voor digitale synthese belangrijke vormen analyse-ren. Wij laten bewust de processors voor algemeen gebruik weg uit ons overzicht, omdatdeze elders voldoend aan bod komen.

Microcontrollers. De eenvoudigste processorvorm voor wat betreft digitaal ontwerpis zeker de microcontroller. Microcontrollers bieden complete oplossingen, in de zin datvele eenvoudige syntheseproblemen integraal met een controllerchip kunnen opgelostworden. Dit vereist uiteraard dat alle nodige systeemonderdelen geıntegreerd werden opeen chip, en zulk een chip noemt men een microcontroller. Een microcontroller bevat dus,naast een eigenlijke processor, een zekere hoeveelheid geheugen waarin programma’s endata kunnen opgeslagen worden, een klokgenerator, en een aantal I/O-poorten. De I/O-poorten worden verbonden met de pinnen van de chip.

192

Page 197: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Het is duidelijk dat het samenbouwen van al deze onderdelen op dezelfde chip sterkerestricties oplegt aan de prestaties van de component. Zo zal men meestal relatief kleinewoordlengten hebben (4, 8 en 16 bit zijn de meest voorkomende; 32 bit bestaat echterook). Het aantal bussen in het datapad van de processor is meestal zeer beperkt, wat desnelheid van de component relatief laag houdt. Tevens is de hoeveelheid programma-en datageheugen op de chip beperkt, zodat alleen relatief eenvoudige problemen een op-lossing krijgen onder de vorm van een chip. Uitbreidingen van de geheugenafmetingenzijn echter meestal mogelijk door een gedeelte van de I/O-kanalen (pinnen van het IC)te gebruiken als toegangspad tot een extern geheugen.

De meeste microcontrollers bevatten ook een aantal zeer specifieke en probleemge-richte I/O-voorzieningen, vaak onder de vorm van wat men een coprocessor zou kun-nen noemen. Voorbeelden zijn: een of meerdere tellers, die kunnen gebruikt worden alstimer (ware-tijdstoepassingen), als teller van externe gebeurtenissen of als generator vanpulsbreedte-gemoduleerde signalen; communicatie-interfaces, bv. voor seriele asynchro-ne of synchrone communicatie (RS232 en aanverwante protocollen zoals de Fieldbus-protocollen CAN, ProfiBus, FIP, enz.); A/D- en D/A-convertoren die interfaces met deanaloge buitenwereld mogelijk maken. De instructierepertoires van microcontroller zijnook aangepast aan de beoogde toepassing. Vaak vindt men instructies die logische be-werkingen op signalen van een bit vergemakkelijken (bijvoorbeeld voor toepassingen indigitale controle, zoals de realisatie van PLC’s).

Figuur 6.9 geeft ter illustratie een beeld van de structuur van een klassieke, maarveelgebruikte microcontroller.

Processors voor speciaal gebruik. Er bestaan een groot aantal processors die speciaalgericht zijn op de uitvoering van programma’s die voorkomen in een specifieke klasseproblemen. Voorbeelden van dergelijke probleemklassen zijn digitale signaalverwerkingen grafische toepassingen.

Digitale signaalverwerking (DSP) vereist architecturen die snel de primitieve stappenvan digitale filters kunnen uitvoeren en andere veel voorkomende operaties zoals bv.Fouriertransformatie. De aard van de toepassing vereist het gebruik van reele getallenin een of andere voorstelling. De basisstap in vele digitale filters is de evaluatie van deuitdrukking

y = a1X1 + a2X2 + · · ·+ anXn

waarin de ai coefficienten zijn, en de Xj vertraagde versies van een signaal. De groot-heid y laat zich berekenen door een opeenvolging van vermenigvuldigingen en accumu-laties met het reeds berekende partieel resultaat. Vele signaalprocessors bevatten dan ookvoorzieningen om deze multiply/accumulate operation bijzonder snel uit te voeren. Meestalvoorziet men ook in een manier om de coefficienten en de signaalwaarden gelijktijdig uiteen geheugen te halen. Voorbeelden van dergelijke processors zijn de TMS320C40 en deMC56000.

Grafische processors zijn gericht op de snelle generatie van beelden in een beeldgeheu-gen, zoals nodig voor een beeldscherm of printer. Speciale eisen gesteld aan grafischeprocessors zijn bv. het snel kunnen genereren van digitale rechten (Bresenham’s algorit-me), het copieren van bitmaps (‘bitblt’), het genereren van rechthoeken en meer algemenepolygonen, het opvullen van een gesloten gebied met een opgegeven kleur (flooding), hetuitvoeren van berekeningen voor het vinden van verborgen oppervlakken, het berekenenvan de kleur van objecten (Gouraud en Phong shading), het combineren en converteren

193

Page 198: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

RAM EPROM

ProgramAddressRegister

DataAddressRegister

Buffer

PCIncrementer

ProgramCounter

StackPointer

Temp1

Accumulator

B-register

instructie-register PSW

Temp2

DPTR

P0.0 ... P0.7

Port 0Drivers

Port 0Latch

P2.0 ... P2.7

Port 2Drivers

Port 2Latch

P1.0 ... P1.7 P3.0 ... P3.7

Port 1Drivers

Port 3Drivers

Port 1Latch

Port 3Latch

Interrupt,seriele poort,timers

ALU

Timing,controle

Voorziening voor extern geheugen

klok

Figuur 6.9: De structuur van Intel’s 8031 8-bit microcontroller

194

Page 199: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 6.10: De architectuur van de Programmable Logic Sequencer

van kleurwaarden, enz. Soms bieden grafische processors een tweedimensionele adres-sering van hun geheugenruimte. Grafische processors zijn ook vaak verantwoordelijkvoor de CRT-functie, dit is het genereren van de controlesignalen voor het gesynchroni-seerd uitlezen van het beeldgeheugen, en het generen van synchronisatiesignalen voorde beeldbuis. Een voorbeeld van een grafische processor is de TMS34020. Andere toe-passingen slaan op de snelle interpretatie van PostScript in printers.

Processors voor speciaal gebruik hebben heel vaak specifieke architecturale aspectenvoor de efficiente ondersteuning van hun instructieset. De meest recente aanvulling gaatin de richting van multi-media-extensies.

6.2 Programmeerbare componenten

De meeste hedendaagse programmeerbare componenten bevatten geheugenelementen,en zijn dus sequentiele componenten.

Toen men een combinatorische PLA voorzag van een aantal flipflops, en men voer-de de toestand van de flipflops terug in de EN-matrix, verkreeg men de structuur vaneen PLS (Programmable Logic Sequencer). Veel variaties zijn mogelijk: men kan bv. deflipflop-outputs ook naar buiten brengen, of men kan de overige outputs ook voorzienvan een register (dat dan niet teruggevoerd wordt). De structuur van de historische PLSin figuur 6.10 roept onmiddellijk associaties op met de generieke structuur van een syn-chrone automaat (fig. 6.3). Inderdaad, een PLS is een beperkt universele component voorde realisatie van eenvoudige, eindige automaten (Eng. state machines). De toestand vande automaat wordt bijgehouden in het register, en de toestand- en outputfuncties wordengezamenlijk geminimaliseerd en geprogrammeerd in de PLA.

195

Page 200: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De PLS is ‘beperkt universeel’ omdat er uiteraard beperkingen zijn zowel in het aan-tal flipflops als in de PLA bij de realisatie van willekeurige functies. Voor eenvoudigecontrole-automaten vallen de beperkingen nogal mee, omdat de complexiteit van hettoestandstransitiediagram (het aantal takken) bepalend is voor het aantal EN-poortendat men zal nodig hebben.

Ook PAL’s kan men uitbreiden met registers. Men schakelt achter de OF-poortenflankgestuurde flipflops met een gemeenschappelijke klok. Hun toestand wordt zowelnaar buiten gebracht als teruggekoppeld. De automaten die men op deze manier ver-krijgt zijn Moore-automaten met directe toestandsoutput (de outputfunctie is triviaal deidentiteitsfunctie). Ook dit is een beperking, die gelukkig ook niet ernstig is. Rechtstreek-se output van de toestanden leidt natuurlijk tot snelle circuits, en heeft een aantal voor-delen bij de interconnectie van automaten die in het volgend hoofdstuk aan bod zullenkomen.

PAL’s voorzien van flipflops noemt men ‘registered PALs’. Sommige van deze PAL’sbrengen een aantal outputs rechtstreeks (zonder flipflop) naar buiten, en de rest via eenflipflop.

Gaandeweg is men de flipflop van een registered PAL beginnen uitbreiden met eenaantal configuratiemogelijkheden. Een uitgebreide flipflop noemt men een macrocel. Fi-guur 6.11 toont de structuur van een typische macrocel. De cel bezit een aantal EN-poorten, die alle aangesloten zijn op de programmeerbare EN-matrix. Een aantal EN-poorten worden vast naar een OF-poort gevoerd. Deze OF-poort berekent een combina-torische functie van de variabelen in de EN-matrix.

Door programmeerbare multiplexers kan men nu de macrocel configureren. Men kankiezen of men de flipflop al dan niet gebruikt. Wanneer men de flipflop gebruikt kan menvastleggen welk klokgedrag hij heeft (flank- of niveausturing). Men kan kiezen met welkkloksignaal hij zal aangestuurd worden: de globale klok (synchroon) of een kloksignaalafgeleid uit een EN-poort. Men kan de flipflop asynchroon zetten of wissen, met termenuit de EN-matrix. De macrocel heeft ook een multiplexer voor de outputcontrole, eneen voor de keuze van het feedbacksignaal (de pin of de flipflop). Noteer dat, door eengeschikte instelling van de multiplexers, men de flipflop als ingangsflipflop kan gebruiken:men kan het signaal op de pin aan de ingang van de flipflop brengen, en de output vande flipflop terugvoeren naar de matrix.

Hedendaagse programmeerbare componenten kunnen steeds grotere ontwerpen be-vatten (bijvoorbeeld een volledige processor) en halen kloksnelheden tot enkele honder-den MHz (zie tabel 6.5).

In deze componenten is er een trend naar hierarchisch opgebouwde structuren (i.p.v.de oorspronkelijke vlakke, regelmatige roosters). De basisblokken worden groter en be-staan nu bijvoorbeeld uit 4 functiegeneratoren, die bovendien gecombineerd kunnenworden om tot 6 verschillende functies te genereren (bv. de Xilinx Spartan componenten).Ook de interconnectiestructuur wordt steeds complexer en is hierarchisch opgebouwd.

Ook voorziet men FPGA’s steeds vaker van een aantal componenten die er eerderop gericht zijn om specifieke applicaties te versnellen. Daarmee wijkt men dus af vanhet oorspronkelijke concept van algemene bruikbaarheid. Een typisch voorbeeld hiervanzijn de speciale verbindingen om de carry-propagatie te versnellen (carry chains) die inveel recente componenten aanwezig zijn, of diverse vormen van geheugen. Dit zijn zijnuitbreidingen die zich situeren op het RT-niveau.

Zo worden vaak grotere blokken RAM (blokgeheugen) in de FPGA aangeboden, ter

196

Page 201: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 6.11: De structuur van een macrocel in een PLA-achtige programmeerbare component.Noteer dat de EN-matix alle macrocellen voorziet van dezelfde inputs

197

Page 202: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Tabel 6.4: Enkele complexe programmeerbare componenten; kijk ook naarhttp://www.asicdsn.com/vendors.html voor meer recente informatie

Component Complexiteit CLB’s of Type I/O- Programmeer-(equiv. poorten) Macrocellen signalen techniek

Am3090 9 000 320 Cell Array 144 GeheugenEPM5192 3 750 192 PLA-achtig 72 Vlottende gateEPM7192 20 000 192 PLA-achtig 124 Vlottende gateCY7C342 5 000 128 PLA-achtig 60 Vlottende gateCY7C38020 20 000 1 440 PLA-achtig 328 AntifuseTPC1020B 2 000 547 Cell Array 69 AntifuseTPC1280 8 000 1 232 Cell Array 140 AntifuseXC4020 20 000 900 Cell Array 240 GeheugenXC40125EX 125 000 4 624 Cell Array 544 Geheugen

Tabel 6.5: Recente complexe programmeerbare componenten met extra geheugenblokkenComponent Complexiteit Functie- Geheugen

(equiv. poorten) generatoren flipflops blok (bits)ProASIC APA1000 (Actel) 1M 198 000 88 × 256×9Spartan-IIE XC2S300E (Xilinx) 300 000 6 912 98 304 16 × 4 096Virtex-E XCV812E (Xilinx) 254 016 21 168 301 056 280 × 4 096Apex II EP2A70 (Altera) 3 000 000 67 200 67 200 280 × 4 096

aanvulling van de flipflops die in de CLBs aanwezig zijn (gedistribueerd geheugen). Dezegeheugens zijn vaak tweepoortgeheugens, en ook zij situeren zich voornamelijk op RT-niveau.

Tenslotte bieden FPGA-fabrikanten ook vaak reeds ontworpen (sequentiele) bouw-blokken (zogenaamde Intellectual Property of IP-blokken) te koop aan. Deze zijn vergelijk-baar met standaard cellen en kunnen rechstreeks in een FPGA geprogrammeerd worden.Zo kan men hele processorontwerpen kopen die men als zg. soft core mee kan realiserenop de FPGA, samen met de eigen circuits.

198

Page 203: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoofdstuk 7

Sequentiele synthese op logischniveau

Dit hoofdstuk heeft als doel in detail de stappen van het syntheseprocesvan sequentiele netwerken te bespreken, op een manier gelijkaardig aan watwij gedaan hebben voor combinatorische schakelingen. Ook hier is het zodat in de dagelijkse ontwerppraktijk deze algoritmen niet expliciet, laat staanmanueel, moeten uitgevoerd worden, maar dat zij ingebouwd zijn in de com-putergebaseerde ontwerpomgevingen.

Zoals bij elke synthese-opdracht vertrekken wij ook bij de synthese vansequentiele netwerken vanuit een beschrijving van het gewenste gedrag. Desynthese heeft dan als doel een sequentieel netwerk te realiseren, bestaandeuit geheugenelementen en combinatorische netwerken, dat minstens het ge-wenst gedrag vertoont maar bovendien aan een aantal optimaliteitscriteriavoldoet.

De eerste stap in een synthese is altijd het herformuleren van het gewenstgedrag in een of andere formele gedaante, zodanig dat men nadien systemati-sche ontwerpsmethoden kan gebruiken. Bij de synthese van combinatorischenetwerken hebben wij hiervoor gebruik gemaakt van Boolese vormen, min-termlijsten (eventueel aangevuld met DON’T CARE termen) of subkubuslijs-ten. Deze vormen zijn gemakkelijk af te leiden uit een verbale beschrijvingvan het gewenste combinatorisch gedrag.

Maar hoe gaan wij tewerk bij sequentiele netwerken? In Hoofdstuk 4 heb-ben wij gezien dat een incrementele beschrijving, die gebruik maakt van deinterne toestand en de twee functies fu en fs, compact en efficient is. Hetprobleem is echter dat de beschrijving van het gewenst gedrag meestal han-delt over het input/outputgedrag, en niet over de interne structuur van deautomaat. De synthese van een sequentieel netwerk moet dus beginnen bijde beschrijving van het gewenste gedrag, en deze zo snel mogelijk omzet-ten in een vorm waaruit een incrementele beschrijving kan worden afgeleid.Aangezien de beschrijving van het gewenste gedrag informeel is (gesteld innatuurlijke taal, gedeeltelijk grafisch, onvolledig), kan deze eerste ontwerps-stap zelf niet anders zijn dan informeel, en moet dus door de ontwerper zelfuitgevoerd worden.

199

Page 204: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

7.1 Incrementele gedragsbeschrijvingen

Laat ons vertrekken van een input/output gedragsbeschrijving. Deze beschrijving legtdus op welke outputsequenties het netwerk moet genereren wanneer een gegeven stelinputsequenties wordt aangelegd. Wij zullen de procedure uiteenzetten aan de hand vaneen voorbeeld.

Voorbeeld 7.1 Ontwerp een synchroon netwerk met een input X en een output Y . De outputmoet steeds 0 zijn, tenzij wanneer in de inputsequentie juist de deelsequentie 11010 is opgetre-den :

X : 0 0 1 0 1 1 0 1 0 0 1 1 1 · · ·Y : 0 0 0 0 0 0 0 0 0 1 0 0 0 · · ·

(Noteer dat wij ervoor gekozen hebben de 1-output te laten komen de klokperiode nadat hetlaatste symbool van de inputsequentie werd gezien; wij hadden dit ook tijdens het laatste symboolkunnen kiezen.)

Een incrementele realisatie van dit gedrag komt neer op het opstellen van een algo-ritme dat stap voor stap de outputs berekent, gegeven de vorige inputs. Het algoritmebestaat uit een eindig aantal stappen. Wanneer het in een bepaalde stap zit, en er doetzich een nieuwe gebeurtenis voor (het optreden van een actieve klokflank in een syn-chrone automaat, het veranderen van een input in een asynchrone automaat), dan zal indie stap bepaald worden

• welke output moet gegenereerd worden, en

• welke volgende stap van het algoritme aangesproken wordt.

Wij illustreren nu het opstellen van zo’n algoritme aan de hand van voorbeeld 7.1.De eerste stap van het algoritme komt overeen met het begin van de sequentie. Hierweten wij dat er nog geen inputs aangelegd zijn; de output moet 0 zijn voor elke input.Afhankelijk van het eerste inputsymbool gaan we naar verschillende stappen: wij moetenimmers een aantal voorbije inputs onthouden om te kunnen beslissen of we net een 11010sequentie gezien hebben. Het is dus duidelijk dat elke stap in het algoritme een bepaalde vormvan kennis inhoudt over de reeds geziene inputsymbolen.

Algoritme 7.1

1. [Begin van sequentie] Output 0;Als X = 0, ga dan naar stap 2, anders naar stap 3.

2. [Enkel 0 gezien] Output 0;Als X = 0, ga dan naar stap 4, anders naar stap 5.

3. [Enkel 1 gezien] Output 0;Als X = 0, ga dan naar stap 6, anders naar stap 7.

Nu moeten wij stap 4 neerschrijven. Stap 4 zou overeenstemmen met de kennis “Enkel 00gezien”. Het is niet moeilijk om in te zien dat, indien wij 11010 moeten herkennen in deinputsequentie, van de laatst geziene 0 enkel moet onthouden worden of ze voorafgegaanwordt door 11 of 1101. In de andere gevallen hebben wij geen deel gezien van de te

200

Page 205: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

herkennen sequentie, en moeten wij dus niet onthouden wat voor de 0 kwam. Mits wijstap 2 wijzigen kunnen wij dus stap 4 laten samenvallen met stap 2. Zo verder gaandvinden wij :

Algoritme 7.2

1. [Begin van sequentie] Output 0;Als X = 0, ga dan naar stap 2, anders naar stap 3.

2. [Een 0 gezien, niet voorafgegaan door 11 of 1101] Output 0;Als X = 0, ga dan naar stap 2, anders naar stap 3.

3. [Een 1 gezien, niet voorafgegaan door 1 of 110] Output 0;Als X = 0, ga dan naar stap 2, anders naar stap 4.

4. [11 gezien] Output 0;Als X = 0, ga dan naar stap 5, anders naar stap 4.

5. [110 gezien] Output 0;Als X = 0, ga dan naar stap 2, anders naar stap 6.

6. [1101 gezien] Output 0;Als X = 0, ga dan naar stap 7, anders naar stap 4.

7. [11010 gezien: herkenning] Output 1;Als X = 0, ga dan naar stap 2, anders naar stap 3.

Dit proces stopt dus nadat we 7 algoritmestappen gevonden hebben. In het algemeen zal,wanneer de opgegeven gedragsbeschrijving realiseerbaar is met een (eindig) sequentieelnetwerk, het creatieproces van nieuwe stappen termineren na een eindig aantal stappen.Elk van de stappen representeert een stuk informatie dat afkomstig is uit de reeds gezieneinputsymbolen. De stappen uit het algoritme zijn dus in feite de toestanden van een se-quentieel netwerk. De corresponderende functies liggen vervat in de acties ondernomenin elke stap.

De primitieve toestandstransitietabel

Men kan het bovenstaand algoritme voorstellen op diverse manieren. Een in onder-zoeksmiddens veel gebruikt formaat is het zg. Blif-formaat (figuur 7.1). In de praktijkzal men de eerste concrete gedragsbeschrijving van de automaat formuleren in een taalzoals VHDL of VERILOG, waarbij men dan meteen ook, naast de opgave van de functiesfs en fu moet aangeven wat het klokgedrag van de automaat moet zijn, en of het overeen Moore- of Mealy-variant gaat.

Men kan dezelfde informatie, voor verdere verwerking, opslaan in een zg. primitievetoestands-transitietabel (ttt) waaruit de toestanden en de netwerkfuncties kunnen wor-den afgelezen (fig. 7.2).

De tabel in deze figuur is volledig bepaald. In het algemeen is dit echter niet zo, omdatb.v. bepaalde inputwaarden niet kunnen of mogen optreden, of omdat men gewoonwegniet opgeeft wat er dan moet gebeuren. Laat ons dit illustreren aan de hand van eentweede voorbeeld.

201

Page 206: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

.model

.inputs X

.outputs Y

.start_kiss

.i 1

.o 1

.p 14

.s 7

0 A B 0

0 B B 0

0 C B 0

0 D E 0

0 E B 0

0 F G 0

0 G B 1

1 A C 0

1 B C 0

1 C D 0

1 D D 0

1 E F 0

1 F D 0

1 G C 1

.end_kiss

library IEEE;

use IEEE.std_logic_1164.all;

use IEEE.std_logic_unsigned.all;

entity herkenner is

port (

clock: in STD_LOGIC;

init: in STD_LOGIC;

data: in STD_LOGIC;

output: out STD_LOGIC

);

end herkenner;

architecture gedrag of herkenner is

type statevalue is (A,B,C,D,E,F,G);

signal state: statevalue;

begin

process(clock)is

begin

if clock’event and clock = ’1’ then -- positieve flanksturing

if init=’1’ then state<=A; -- initialisatie

else -- operatie

case state is

when A => -- begintoestand

if data=’0’ then state<=B; else state<=C; end if;

when B => -- 0 niet voorafgegaan door 11 of 110

if data=’0’ then state<=B; else state<=C; end if;

when C => -- 1 niet voorafgegaan door 1 of 110

if data=’1’ then state<=D; else state<= B; end if;

when D => --...11 gezien

if data=’0’ then state<=E; else state<=D; end if;

when E => -- ...110 gezien

if data=’1’ then state<=F; else state<=B; end if;

when F => -- ...1101 gezien

if data=’0’ then state<=G; else state<=D; end if;

when G => -- ...11010 gezien : herkenning!

if data=’1’ then state<=C; else state<=B; end if;

when others => -- Dit zou moeten leiden tot don’t

care-termen

null;

end case;

end if;

end if;

end process;

-- assigneer output op basis van nieuwe toestand (Moore-automaat)

output<=’1’ when (state=G) else ’0’;

end gedrag;

Figuur 7.1: Concrete representaties van het algoritme dat het gewenste gedrag weergeeft. Hetformaat links is het zg. Blif-formaat, met een ingebedde Kiss-beschrijving, en wordt gebruikt inde SIS-suite van de Universiteit van Berkeley. Men ziet dat de inputs en outputs van het systeemopgegeven worden, alsook het het aantal toestanden en het aantal regels die transities weergeven.Elke transitie geeft achtereenvolgens de inputwaarden, de huidige toestand, de nieuwe toestanden de output weer. Het formaat rechts is een gedragsbeschrijving in VHDL, die echter rijker isdan de Blif-beschrijving links. Ondermeer de initialisatie en het klokgedrag worden hier explicietweergeven

202

Page 207: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Toestand X Y Informatie over vorige inputs0 1

A B C 0 initiele toestandB B C 0 0 niet voorafgegaan door · · · 11 of · · · 1101C B D 0 1 niet voorafgegaan door · · · 1 of · · · 110D E D 0 · · · 11E B F 0 · · · 110F G D 0 · · · 1101G B C 1 · · · 11010

Figuur 7.2: Primitieve transitietabel voor Voorbeeld 7.1

Toestand X1X2 Y Informatie over vorige inputs00 01 11 10 X1 tijdens X2 ↑ X1 X2

A A B – C 0 – 0 0B D B E – 0 0 0 1C A – F C 0 – 1 0D D B – G 0 0 0 0E – B E G 0 0 1 1F – H F I 1 1 1 1G D – F G 0 0 1 0H J H F – 1 1 0 1I J – F I 1 1 1 0J J B – I 1 1 0 0

Figuur 7.3: Primitieve transitietabel voor Voorbeeld 7.2

Voorbeeld 7.2 Ontwerp een asynchroon circuit met twee inputs X1 en X2, en een output Y. Deoutput verandert enkel na een stijgende flank op X2; de output is 1 resp. 0 na een stijgflank opX2 met X1 = 1 resp. X1 = 0. (Noteer dat dit een gedragsomschrijving is van de flankgestuurdegeheugencel met D-gedrag in fig. 5.5.)

Laat ons beginnen met X1 = 0, X2 = 0, en Y = 0. Deze keuze is arbitrair, maar wordtniet tegengesproken door de gedragsbeschrijving. Wij zullen meteen het incrementeelalgoritme voorstellen in een tabel. Bij het opstellen van deze tabel zorgen wij ervoor dat er maareen stabiele toestand per rij optreedt. Voorts laten wij slechts Hammingafstand-1 overgangentoe aan de inputs. De tabel die wij zo verkrijgen is onvolledig gespecificeerd. Wij noemenhem de primitieve toestands-transitietabel (fig. 7.3).

7.2 Het minimaliseren van het aantal toestanden

Eens men de (primitieve) toestands-transitietabel (ttt) heeft opgesteld kan men de verde-re stappen ondernemen om te komen tot een concrete realisatie van het netwerk.

De primitieve ttt werd op een zeer informele manier opgesteld, soms met arbitraire

203

Page 208: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

keuzen, en op basis van een informele beschrijving. Het is dan ook niet te verwonderendat er meestal veel mogelijke primitieve ttt’n kunnen gevonden worden die hetzelfdegedrag formaliseren. Sommige daarvan hebben minder toestanden nodig dan andere, enwij vragen ons af of wij, op een systematische wijze, een formalisering kunnen vindenmet een minimaal aantal toestanden. Het antwoord op deze vraag is JA: men kan eenalgoritme opstellen dat, in eindige tijd, elke ttt kan herleiden tot een gelijkwaardige tttmet een minimum aantal toestanden. Wij zullen nu zulk een algoritme beschrijven. Daarer een verschil bestaat tussen volledig en partieel bepaalde ttt’n, zullen wij elk apartbehandelen.

Volledig bepaalde transitietabellen

Laat ons eerst definieren wat wij bedoelen met gelijkwaardige ttt’n en toestanden.

Definitie 7.1 Twee toestandstransitietabellen P en Q zijn gelijkwaardig, P ∼ Q, indien eenvan beide voorwaarden is voldaan:

1. (wanneer P en Q elk vanuit een gegeven begintoestand starten) P en Q genereren identiekeoutputsequenties voor alle toegelaten inputsequenties.

2. (wanneer geen begintoestanden opgegeven zijn) voor elke begintoestand p van P bestaat erminstens een begintoestand q van Q, en omgekeerd, van waaruit P en Q identieke output-sequenties genereren bij alle toegelaten inputsequenties.

Het is duidelijk dat ∼ een equivalentierelatie voorstelt (waarom?).

Definitie 7.2 Een interne toestand p van een ttt P is gelijkwaardig met een toestand q van eenttt Q, p ∼ q, wanneer P ∼ Q vanuit de begintoestanden p resp. q.

Noteer dat bovenstaande definitie ook mag toegepast worden op toestanden van dezelf-de ttt. De equivalentierelatie ∼ induceert dus een partitie op de toestandsverzamelingS.

Wanneer wij in een ttt met twee gelijkwaardige toestanden p en q, de rij corresponde-rend met q schrappen, en voorts alle referenties naar q vervangen door p, dan verkrijgenwij een nieuwe ttt die gelijkwaardig is met de originele (waarom ?), maar minder toestandenheeft. Wij kunnen dit blijven doen tot wanneer de ttt geen gelijkwaardige toestandenmeer bevat. De ttt die we dan verkrijgen heeft precies een toestand per equivalentieklas-se in de oorspronkelijke ttt.

Om deze procedure effectief te kunnen uitvoeren moeten wij echter beschikken overeen eindige test die kan uitmaken of twee toestanden equivalent zijn. De definitie van ∼is immers niet zonder meer berekenbaar (men zou een onbegrensd aantal sequenties vanonbegrensde lengte moeten testen). Laat ons hiertoe wat notatie invoeren.

Weze X ∈ 0, 1n het inputalfabet van de ttt, dit zijn alle mogelijke binaire patronenop de n inputlijnen. Het aantal outputs is m. Weze S de toestandsruimte (de verzamelingregels in de ttt). Weze tenslotte

fu : S × 0, 1n 7→ 0, 1m

fs : S × 0, 1n 7→ S

respectievelijk de output- en toestandsfuncties gedefinieerd door de ttt.

204

Page 209: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Stelling 7.1 Twee toestanden p en q ∈ S zijn gelijkwaardig a.s.a.

1. fu(p, X) = fu(q, X), ∀X ∈ 0, 1n (p en q zijn outputcompatibel).

2. fs(p, X) ∼ fs(q, X), ∀X ∈ 0, 1n .

Bewijs. Het bewijs is bijzonder eenvoudig en wordt overgelaten aan de lezer.

Stelling 7.1 herfraseert de definitie van ∼ in een recursieve vorm. Dit garandeert echternog geen equivalentietest in een eindig aantal stappen. De volgende stelling toont aandat dit evenwel mogelijk is.

Stelling 7.2 Er bestaat een algoritme dat, gegeven een willekeurige eindige ttt, in een eindige tijdkan uitmaken welke toestanden gelijkwaardig zijn.

Bewijs. Het bewijs is constructief en bestaat uit het volgende algoritme.1

Algoritme 7.3 (Het vinden van gelijkwaardige toestanden in een ttt)

1. Stel een lijst op van alle koppels (p, q) ∈ S2, p 6= q. Merk deze koppels aan die output-incompatibel zijn, d.i. waarvoor

∃X ∈ 0, 1n : fu(p, X) 6= fu(q, X)

2. Doe voor alle koppels (p, q) die wel outputcompatibel zijn het volgende: zoek alle opvolger-koppels (fs(p, X), fs(q, X)), X ∈ 0, 1n, van (p, q) in de lijst van stap 1. Schrijf (p, q)achter elk zulk opvolgerkoppel. Men verkrijgt dus een lijst van koppels (p, q), elk gevolgddoor een (mogelijk lege) lijst van koppels die voorafgaan aan het koppel (p, q):

...(p, q) : (p′, q′) : ∃X ∈ 0, 1n : p = fs(p′, X) en q = fs(q′, X)

...

3. Loop sequentieel door de lijst. Voor elk gemerkt koppel (p, q), merk ook de voorgangerkoppelsaan als incompatibel. Merk (p, q) aan als gebruikt.

4. Herhaal stap 3 tot wanneer alle gemerkte koppels ook gebruikt zijn.

Alle gemerkte koppels zijn dus niet-gelijkwaardig, hetzij rechtstreeks, omdat ze output-incompatibel zijn, of onrechtstreeks, omdat ze leiden tot een ander niet-gelijkwaardigkoppel. Nu rest er ons nog te bewijzen dat de toestanden in alle niet-gemerkte koppelswel paarsgewijs gelijkwaardig zijn, en dat bovenstaand algoritme termineert.

1. Elk niet-gemerkt koppel (p, q) is gelijkwaardig

(a) Bij constructie van de tabel zijn p en q outputcompatibel;

1Ons bewijs bevat een algoritme; er bestaan echter diverse verwante algoritmen hiervoor, zie o.m. cursus‘Discrete systemen’.

205

Page 210: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

(b) Stel dat fs(p, X0) 6∼ fs(q, X0), voor een gegeven X0 ∈ 0, 1n. Uit de definitievan∼ volgt dan dat er een eindige sequentie van inputs X1, X2, . . . , Xk, k > 0,

bestaat waarvoor er een verschil in outputs waargenomen wordt, d.i.,

fu(Fs(p, X0X1 · · ·Xk−1), Xk) 6= fu(Fs(q, X0X1 · · ·Xk−1), Xk).

Hierin is

Fs(p, X0X1 · · ·Xk−1) = fs(fs(· · · fs(p, X0), X1) · · · , Xk−1),

de toestand die bereikt wordt vanuit p na aanleggen van X0X1 · · ·Xk−1. Wijveronderstellen dat X0X1 · · ·Xk−1 een kortst mogelijke zulke sequentie is. Detoestanden

Fs(p, X0X1 · · ·Xk−1) en Fs(q, X0X1 · · ·Xk−1)

zijn niet outputcompatibel, en werden dus zeker aangemerkt in stap 1 van hetalgoritme. Alle tussentoestanden

Fs(p, X0X1 · · ·Xj) en Fs(q, X0X1 · · ·Xj), j = 0, 1, . . . , k − 2,

zijn wel outputcompatibel. Stap 2 zorgt er dus voor dat zij alle voorkomen inde lijsten achter hun respectieve opvolgerkoppels. Het k maal toepassen vanstap 3 zorgt dan voor de propagatie van het merkteken, vanuit het koppel

(Fs(p, X0X1 · · ·Xk−1), Fs(q, X0X1 · · ·Xk−1))

tot aan het koppel (p, q). De onderstelling dat (p, q) niet gemerkt was leidt dustot een tegenspraak, waaruit volgt dat

fs(p, X0) ∼ fs(q, X0),

en dus, samen met (a), dat p ∼ q.

2. Terminatie

Het aantal gemerkte, en het aantal gebruikte en gemerkte koppels is begrensd, enneemt nooit af. Beide aantallen bereiken dus na een eindig aantal stappen hunlimietwaarde, waarna het algoritme termineert.

Uit bovenstaand algoritme volgt een lijst van koppels die gelijkwaardig zijn. Door ge-bruik te maken van de transitiviteit (∼ is een equivalentierelatie) kunnen wij hieruit departitie afleiden van S geınduceerd door ∼. Figuur 7.4 toont de toepassing van boven-staand algoritme op voorbeeld 7.1, en de resterende minimale ttt.

Onvolledig bepaalde transitietabellen

Uit voorbeeld 7.2 blijkt dat, i.h.b. bij het ontwerpen van asynchrone netwerken, de pri-mitieve ttt niet volledig bepaald is omdat bepaalde inputtransities niet mogen optreden.Alvorens wij een concreet netwerk kunnen afleiden moeten de onvolledige specificatiesvervolledigd worden. Net zoals bij don’t care termen in combinatorisch ontwerp is hetnuttig een vervollediging te kiezen die leidt tot het kleinste aantal toestanden in de ge-minimaliseerde ttt.

206

Page 211: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

koppel M U voorgangersAB

AC ∗ ∗AD ∗ ∗AE ∗ ∗AF ∗ ∗AG ∗ ∗BC ∗ ∗BD ∗ ∗BE ∗ ∗ AD,BD,CD,DE

BF ∗ ∗BG ∗ ∗ AF,BF,CF, EF

koppel M U voorgangersCD ∗ ∗ AC,AD,AF, BC,

BD, BF

CE ∗ ∗CF ∗ ∗ AE,BE

CG ∗ ∗DE ∗ ∗DF ∗ ∗ CE, DE, EF

DG ∗ ∗EF ∗ ∗EG ∗ ∗ DF

FG ∗ ∗

Hierin staat M voor gemerkt, en U voor gebruikt. Het resulterend gelijkwaardig koppelis (A,B).

Minimale ttt:

X Y0 1

A A C 0C A D 0D E D 0E A F 0F G D 0G A C 1

Figuur 7.4: De minimalisatie van de volledig gespecificeerde ttt van Voorbeeld 7.1

207

Page 212: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Hoe kan men deze vervollediging doorvoeren? Een mogelijke manier zou zijn alle|S|d mogelijke aanvullingen van de d don’t care plaatsen ‘−’ te minimaliseren, en eenglobaal minimum te kiezen. Dit is uiteraard onbegonnen werk, gezien het aantal moge-lijkheden. Wij zullen nu een meer economische manier voorstellen.

Compatibele koppels Men past het algoritme uit stelling 7.2 toe, waarbij wij een ‘−’ alsgelijkwaardig met elke toestand beschouwen. Dit betekent dat geen enkel koppel met ‘−’moet opgenomen worden. In feite nemen wij dus impliciet aan dat ‘−’ automatisch deop elk ogenblik passende waarde aanneemt; de tabel en de lijst van de compatibele kop-pels die men verkrijgt zijn dus niet afkomstig van een enkele aanvulling, maar van een(ongekend) mengsel van alle nuttige aanvullingen. De resulterende compatibele kop-pels die men verkrijgt zijn dus niet afkomstig van een enkele equivalentierelatie (die zouontstaan zijn bij een enkele aanvulling), maar van verschillende equivalentierelaties. Zijstellen gezamenlijk geen equivalentierelatie meer voor, i.h.b. ontbreekt transitiviteit. Laatons dit illustreren aan de hand van fig. 7.5: de lijst van compatibele koppels bevat (A,B)en (A,C), maar niet (B,C).

Opmerking. Bovenstaande methode vertrekt van een Moore-representatie van de ma-chine. Men kan de Moore-automaat in fig. 7.3 ook als Mealy-automaat voorstellen. Im-mers, zolang de outputs in de stabiele totale toestanden dezelfde blijven kan men deoutputs op de instabiele totale toestanden zo kiezen dat er minder outputincompatibiliteitenzijn (fig. 7.7). De lijst van compatibele koppels zou op deze manier langer kunnen wor-den. Men kiest de output op een instabiele toestand ofwel gelijk aan de output in detoestand waarheen de machine evolueert (dit geeft een output die snel zijn eindwaardeaanneemt), ofwel gelijk aan de output van de stabiele toestand in de huidige rij. Andereoutput-assignaties kunnen leiden tot hazards.

Compatibele klassen Uit de lijst van compatibele koppels kunnen wij klassen identi-ficeren die wel gesloten zijn onder transitiviteit; wij zoeken de grootst mogelijke zulkeklassen. Deze worden de maximale compatibele klassen genoemd. Voor Voorbeeld 7.2 vin-den wij, door manueel nazicht,

(A,B, D, E), (A,C, D, G), (F,H, I), (I, J)

als maximale compatibele klassen.Het vinden van de maximale compatibele klassen staat in de graaftheorie bekend

als het vinden van een z.g. kliekbedekking van de compatibiliteitsgraaf. De compatibili-teitsgraaf is een graaf waarvan de knopen de toestanden van de automaat zijn, en elketak stelt de afwezigheid van een incompatibiliteit voor. Een kliek van een graaf is eenvolledig geconnecteerde deelgraaf. Maximale klieken zijn dus maximale, volledig ge-connecteerde deelgrafen, en deze komen overeen met de maximale compatibele klassen(figuur 7.8). Het zoeken naar klieken is een gekend ‘moeilijk’ (NP-compleet) probleem.

Een derde, meer systematische manier om uit de lijst van compatibele koppels delijst van maximale compatibele klassen af te leiden is gelijkaardig aan de algebraıschemethode voor het vinden van een minimale som (Algoritme 4.5, [Marcus64]).

Algoritme 7.4 (Het vinden van de maximale compatibele klassen)

208

Page 213: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

koppel M U voorgangersAB

AC

AD AB, AG,BC,CD, CG

AE

AF ∗ ∗AG

AH ∗ ∗AI ∗ ∗AJ ∗ ∗BC ∗ ∗BD

BE

BF ∗ ∗BG ∗ ∗BH ∗ ∗ FJ,HJ

BI ∗ ∗BJ ∗ ∗CD

CE ∗ ∗CF ∗ ∗CG AD,AE,AG,CD, CE

CH ∗ ∗CI ∗ ∗

koppel M U voorgangersCJ ∗ ∗DE

DF ∗ ∗DG

DH ∗ ∗DI ∗ ∗DJ ∗ ∗EF ∗ ∗ BC, BG,CE, EG

EG ∗ ∗EH ∗ ∗EI ∗ ∗EJ ∗ ∗FG ∗ ∗FH

FI

FJ ∗ ∗GH ∗ ∗GI ∗ ∗GJ ∗ ∗HI

HJ ∗ ∗IJ

Compatibele koppels: (A,B), (A,C), (A,D), (A,E), (A,G)(B,D), (B,E)(C,D), (C,G)(D,E), (D,G)(F,H), (F, I)(H, I)(I, J)

Maximale Compatibele Klassen : (A,B, D, E), (A,C, D, G)(I, J), (F,H, I)

Figuur 7.5: De minimalisatie van de onvolledig gespecificeerde ttt van Voorbeeld 7.2

209

Page 214: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Minimale ttt (met a = (A,B, D, E), b = (A,C, D, G), c = (F,H, I), d = (I, J)):

X1, X2 Y

00 01 11 10(ABDE) (AD) (B) (E) (CG) 0(ACDG) (AD) (B) (F ) (CG) 0

(FHI) (J) (H) (F ) (I) 1(IJ) (J) (B) (F ) (I) 1

X1, X2 Y

00 01 11 10a a of b a a b 0b a of b a c b 0c d c c c of d 1d d a c d of c 1

Figuur 7.6: De minimalisatie van de onvolledig gespecificeerde ttt van Voorbeeld 7.2 – vervolg

Toestand X1X2

00 01 11 10A A,0 B,0 –,– C,0B D,0 B,0 E,0 –,–C A,0 –,– F,1 C,0D D,0 B,0 –,– G,0E –,– B,0 E,0 G,0F –,– H,1 F,1 I,1G D,0 –,– F,1 G,0H J,1 H,1 F,1 –,–I J,1 –,– F,1 I,1J J,1 B,0 –,– I,1

Volgende toestand, Y

Figuur 7.7: Primitieve transitietabel voor Voorbeeld 7.2 als Mealy Machine

Figuur 7.8: De compatibiliteitsgraaf, waarin men de klieken kan terugvinden

210

Page 215: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1. Schrijf een Boolese vorm waarin de incompatibele paren voorkomen als sommen, b.v. voorvoorbeeld 7.2,

MI = (A + F )(A + H)(A + I)(A + J)(B + C)(B + F )(B + G)(B + H)·(B + I)(B + J) · · · (G + J)(H + J)

2. Herleid deze vorm onder de gebruikelijke Boolese rekenregels. Men vindt:

MI = (A + FHIJ)(B + CFGHIJ)(C + EFHIJ)(D + FHIJ)(E + FGHIJ)(F + GJ)(G + HIJ)(H + J)

= (ABCDE + CFHIJ + BEFHIJ)(FG + GJ + FHIJ + GHIJ)· · · (H + J)

= ABCDEFGH + ABCDEGJ + CFGHIJ + BEFHIJ

3. Van elk van deze termen neemt men de ontbrekende factoren. Deze vormen de maximalecompatibele klassen:

M = (IJ)(FHI)(ABDE)(ACDG)

Waarom deze methode doet wat ze moet doen kan als volgt ingezien worden. Wij gevende ‘variabelen’ A, . . . , J de volgende betekenis: A = 1 a.s.a. de toestand A niet opgeno-men wordt in een klasse. De eerste factor (A + F ) is 1 a.s.a. minstens 1 van de incom-patibele toestanden A of F niet opgenomen wordt. Het product neemt de waarde 1 aanindien geen enkel incompatibel paar opgenomen werd. Alle keuzen voor de variabelendie MI 1 maken zijn dus compatibele klassen. De uitwerking tot een som van productenvereist dat minstens een product 1 is, en dit kan wanneer de toestanden die corresponde-ren met de optredende variabelen in het product, niet opgenomen worden in de klasse.De niet-vermelde variabelen vormen dus een maximale en compatibele klasse.

De maximale compatibele klassen vormen geen partitie van S (zij zijn niet disjunct!). Elkeklasse stelt een aantal consistente aanvullingen voor van de don’t care transities. Zo magmen voor de klasse (ABDE) de don’t care toestanden in de rijen van fig. 7.3 aanvullentot

op rij A met A,B, D, E

B A, C, D, G

D A, B, D, E

E A, B, D,E

terwijl voor de klasse (ACDG) men vindt:

op rij A F, H, I

C A,B,D, E

D F,H, I

G A,B,D, E

Wanneer een toestand voorkomt in verschillende klassen is dit onder verschillende,niet compatibele aanvullingen. Het is net alsof men in de originele tabel van fig. 7.3sommige toestanden (b.v. A) ontdubbeld heeft en in deze ontdubbelde rijen de don’t careplaatsen verschillend ingevuld.

211

Page 216: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De Geminimaliseerde ttt Hoe vinden wij hieruit een minimale ttt? Net zoals in hetgeval van een volledig bepaalde ttt laten wij de toestanden van de gereduceerde tttovereenstemmen met de verkregen maximale compatibele klassen. Echter, in het hui-dige geval kunnen er teveel klassen zijn. Wij moeten een minimaal stel compatibele klassenS1, S2, . . . , Sk vinden dat voldoet aan:

1. het gekozen stel moet alle toestanden van S omvatten:⋃k

j=1 Sk = S.

2. het gekozen stel moet stabiel zijn onder fs. Dit wil zeggen dat, voor elke gegeveninput X , alle opvolgertoestanden van een klasse Sj in dezelfde klasse Sl(X,j) moetenvallen:

∀j ∈ 1, 2, . . . , k en ∀X ∈ 0, 1n∃l ∈ 1, 2, . . . , k: fs(s,X): s ∈ Sj ⊆ Sl

Ook het vinden van een minimaal stel compatibele klassen is een moeilijk (NP-com-pleet) probleem. Men kan boven- en ondergrenzen afleiden op het aantal toestandenvan de gereduceerde machine. Een bovengrens wordt uiteraard gevormd door het aantalmaximale compatibele klassen. Een ondergrens wordt gevormd door het aantal elementenin de maximale incompatibele klasse. (Een incompatibele klasse is een deelverzamelingvan S waarin alle paren incompatibel zijn.) Voor het voorbeeld in fig. 7.6 hadden wijgeluk: er zijn slechts vier klassen, en geen drie van hen bevatten alle toestanden.

Een methode om op systematische manier uit een verzameling maximaal compati-bele klassen een stabiele bedekking met minimale kardinaliteit af te leiden, wordt doorHachtel ([Hachtel96]) gegeven. De methode bestaat uit twee stappen:

• Men bepaalt eerst de verzameling priemcompatibelen. Om te definieren wat priem-compatibelen zijn, moeten wij eerst opmerken dat het soms nodig kan zijn deelver-zamelingen van maximale compatibele klassen te analyseren. Immers, wanneer meneen verzameling als geheel beschouwt, vereist de stabiliteit dat haar opvolgerver-zamelingen onder de diverse inputs alle bevat zitten in een geselecteerde klasse.Wanneer men vertrekt van deelverzamelingen kunnen de opvolgerverzamelingenkleiner zijn, en daardoor minder restrictief. Wanneer echter een deelverzamelingprecies dezelfde opvolgerverzameling heeft als de originele verzameling, dan ishet niet nuttig deze deelverzameling in beschouwing te nemen, want zij bedekt eenkleiner aantal toestanden. Dergelijke deelverzamelingen noemt men niet-priem. Bijge-volg zijn alle maximaal compatibele klassen priem, alsook hun deelverzamelingendie een strict kleinere opvolgerverzameling hebben.

• Nadien zoekt men uit deze klasse van priemverzamelingen een minimale klassedie de toestandruimte volledig bedekt, en die stabiel is. De stabiliteitsvoorwaardewordt uitgedrukt via de opvolgerverzamelingen. Deze selectie kan op een aantalmanieren gebeuren; onze Maple-suite bevat een een algebraısche Maple-implemen-tatie, die beide voorwaarden als een Boolese vorm formuleert, en deze vorm mini-maliseert. De methode is sterk verwant met de methoden van Petrick en Marcusdie wij eerder gezien hebben, alleen zijn de Boolese vormen die wij nu verkrijgenniet unaat, en is hun minimalisatie daardoor veel omslachtiger.

Eens men een aanvaardbaar stel klassen gevonden heeft stelt men een transitietabelop in deze klassen (fig. 7.5). Met elke klasse laat men een toestand in de minimale ttt

212

Page 217: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

overeenstemmen. Sommige opvolgerklassen kunnen tot meer dan een klasse behoren.Men heeft dan vrijheid in de keuze van de opvolgertoestand. Deze keuze kan gerichtzijn op de minimalisatie van fs en fu, of op het vermijden van races (zie verder).

Opmerking. In moderne technologieen heeft het weinig zin tot het uiterste te willengaan in toestandsminimalisatie. Inderdaad, het aantal binaire geheugenelementen nodigvoor de realisatie groeit slechts logaritmisch met het aantal toestanden. Bovendien spelenandere aspecten een rol. Het bijvoegen van een of meerdere geheugenelementen in derealisatie kan soms grote besparingen met zich brengen bij de realisatie van de combina-torische functies fs en fu. Wat uiteindelijk telt in een realisatie, is de totale afmeting en demaximale snelheid van het netwerk. Deze hangt uiteraard ook wezenlijk af van de combi-natorische netwerken. In technologieen waar geheugenelementen goedkoop (klein) zijn,valt het globaal optimum dan ook niet noodzakelijk samen met een minimaal aantal ge-heugenelementen.

Bovendien kan het wegwerken van hazards en kritische races in asynchrone netwer-ken ook het aantal geheugencellen weer opdrijven.

7.3 De assignatie van toestanden aan binaire geheugencellen

De volgende stap in de concrete realisatie van het sequentieel netwerk is de keuze vaneen aantal geheugencellen, en het voorstellen van elke toestand door een verschillendbitpatroon in de geheugencellen.

Voor een ttt met r rijen heeft men minimaal

n = dlog2 re

binaire geheugencellen nodig. Het aantal mogelijke assignaties van de r rijen aan de 2n

mogelijke bitpatronen wordt gegeven door

N = r!

(2n

r

)=

(2n)!(2n − r)!

,

een zeer snel groeiend aantal. De gekozen assignatie beınvloedt tal van factoren, o.m.de complexiteit van de te realiseren combinatorische functies fs en fu en, in asynchronenetwerken, de aanwezigheid van hazards en kritische races.

Strikt genomen mogen wij, m.b.t. fs en fu, alle 2n mogelijke complementeringen vande n toestandsvariabelen als gelijkwaardig beschouwen, evenals hun n! permutaties. Ditreduceert N tot het aantal wezenlijk verschillende assignaties ND

ND =(2n − 1)!

(2n − r)!n!,

echter nog steeds een zeer snel groeiende grootheid.Er bestaan op dit ogenblik geen efficiente algoritmische methoden die, gegeven het

type geheugencellen dat men gebruikt, een optimale assignatie opleveren. Er bestaanechter wel een aantal goede heuristische methoden.

213

Page 218: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

7.4 Toestandsassignatie in synchrone netwerken

In synchrone netwerken spelen hazards in de combinatorische functies fs en fu geen rol,en zijn bovendien meer-dan-hamming-1 overgangen niet gevaarlijk. De keuze van detoestandsassignatie kan dus ten volle gericht zijn op de minimalisatie van de functies fs

en fu. Laat ons veronderstellen dat wij met D-type geheugencellen werken, en laat onsde complexiteit van de toestandsfunctie fs analyseren. De functie fs bestaat uit n Boolesefuncties, een per D-geheugencel. Intuıtief kan men aanvoelen dat deze functies eenvou-diger zullen zijn naarmate er minder input- of toestandsvariabelen in optreden, of, an-ders gezegd, naarmate de functie bestaat uit grotere deelkubussen. Voor de machine uitfig. 7.4 kunnen wij zonder nadenken een eerste assignatie voorstellen. De assignatie

Y1 Y2 Y3

A 0 0 0C 0 0 1D 0 1 0E 0 1 1F 1 0 0G 1 0 1

en het feit dat de toestandscodes 110 en 111 niet kunnen voorkomen, en dus kunnenbehandeld worden als don’t care-termen, leidt tot de volgende functies in fs:

x Y1 Y2 Y3 y1 y2 y3

A 0 0 0 0 0 0 0A 1 0 0 0 0 0 1C 0 0 0 1 0 0 0C 1 0 0 1 0 1 0D 0 0 1 0 0 1 1D 1 0 1 0 0 1 0E 0 0 1 1 0 0 0E 1 0 1 1 1 0 0F 0 1 0 0 1 0 1F 1 1 0 0 0 1 0G 0 1 0 1 0 0 0G 1 1 0 1 0 0 1

don’t care − 1 1 − 1 1 1

Na minimalisatie vinden wij het volgend resultaat:

y1 = Y2Y3X + Y1Y′3X

y2 = Y2Y′3 + Y1Y

′3X + Y ′

1Y′2Y3X

y3 = Y ′1Y

′2Y

′3X + Y2Y

′3X

′ + Y1Y′3X

′ + Y1Y3X,

met een totale kost van 3 OF-poorten, 9 OF-inputs, 8 EN-poorten, en 25 EN-inputs.Wij zullen nu twee heuristische methoden presenteren die leiden naar eenvoudiger

Boolese functies in fs.

De Afstandsmethode

Het toekennen van bitpatronen aan toestanden kunnen wij doen door de toestandsna-men in een Karnaughkaart van inputs en toestanden in te schrijven. Wanneer wij nu

214

Page 219: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

toestanden die, onder een gegeven input, leiden naar dezelfde toestand zoveel mogelijkop naburige cellen plaatsen (d.w.z. op Hamming-afstand 1), dan zullen de functies in fs

dezelfde waarden aannemen op naburige cellen. Deze cellen kunnen dus samengeno-men worden tot een grotere sub-kubus, en zullen de functies in fs eenvoudiger maken.Om dezelfde reden is het ook nuttig de opvolgertoestanden van een gegeven toestandonder naburige inputwaarden naburig te maken. Men kan nabuurregels uitbreiden totde outputfuncties fu. Deze regels werden geformaliseerd door [Armstrong62] als volgt.

Assignatieregels van Armstrong

1. Wanneer fs(p, X) = fs(q, X) voor een gegeven X ∈ 0, 1n dan geeft men p en q bestnaburige coderingen.

2. Wanneer, voor een gegeven input X , fs(p, X) = p en fs(q, X) = q, of fs(p, X) = q enfs(q, X) = p, dan geeft men p en q best naburige coderingen.

3. Wanneer fs(p, X1) = p1 en fs(p, X2) = p2, en X1 en X2 zijn naburig, dan geeft men p1

en p2 best naburige coderingen.

4. Wanneer fu(p, X) = fu(q, X) voor een gegeven input X , dan geeft men p en q best nabu-rige coderingen.

Deze regels spreken elkaar soms tegen. Wanneer dit gebeurt primeert (1); dan komt (2),en dan (3) en (4). Door geschikte gewichten te associeren aan de regels (1) tot (4) kan menhet toestandsassignatieproces implementeren als een globaal optimalisatievraagstuk datde som van de gewichten van de gebruikte regels moet maximaliseren. Voor de machi-ne in fig. 7.4 vinden wij de volgende gewenste nabuurschappen volgens de regels vanArmstrong:

Regel 1: (A,C, E, G)(A,G)(C,D,F )Regel 2: geenRegel 3: (A,C)(A,D)(A,F )(E,D)(G, D)Regel 4: (A,C, D, E, F ).

Hieruit kunnen wij (manueel, en dus misschien niet optimaal) de assignatie

Y1 Y2 Y3

A 0 0 0C 0 0 1D 0 1 1E 1 0 1F 0 1 0G 1 0 0

afleiden, die leidt tot de volgende functies in fs:

y1 = Y2X′

y2 = Y2X + Y3X

y3 = Y ′3X + Y2Y3 + Y ′

1X,

met een totale kost van 2 OF-poorten, 5 OF-inputs, 6 EN-poorten, en 12 EN-inputs. Dit isreeds een hele besparing t.o.v. de eerste, willekeurige assignatie.

215

Page 220: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In onze Maple-suite wordt een variant op deze methode gerealiseerd, die de toestan-den opneemt in een attractiegraaf. Dit is een graaf waarin de knopen de toestanden zijn,en de takken de ’aantrekkingskracht’ voorstellen die volgt uit de gewogen regels vanArmstrong. Regel 1 krijgt een gewicht n, als n het aantal toestandsbits is, regel 4 n − 1,en de overige regels2 1. Eens men de graaf heeft zoekt men de sterkst door de andereknopen aangetrokken knoop uit, en kent deze een code toe (bijvoorbeeld allemaal nul-len). De n sterkst verbonden knopen krijgen een code op afstand 1. Men verwijdert dezeknopen uit de graaf, en herbegint met de volgende vrije code.

De partitiemethode

De partitiemethode is ook gericht op het groeperen van toestanden in de encoderings-ruimte, op een zulkdanige wijze dat de functies in fs zo eenvoudig mogelijk worden.

Een groepering van toestanden in S in mutueel disjuncte klassen Sj noemen wij eenpartitie van S. Wij herhalen een definitie die al eerder aan bod is gekomen bij de toe-standsminimalisatie:

Definitie 7.3 Een partitie π van een ttt is stabiel wanneer ze bewaard blijft onder fs, d.w.z.wanneer de opvolgertoestanden van elke klasse Sj onder elk inputsymbool alle in dezelfde klassevan π liggen.

Stel dat wij van een ttt met r rijen een stabiele partitie π in p blokken gevonden hebben.Weze q het aantal toestanden in het grootste blok van π. Wij kunnen dan de volgende en-codering voorstellen: gebruik dlog2 pe bits voor de identificatie van een blok, en dlog2 qebits voor de bijkomende identificatie van de toestand binnen een blok. Het is duidelijkdat de n∗ = dlog2 pe + dlog2 qe bits elke toestand ondubbelzinnig voorstellen. Indienn∗ = n = dlog2 re, dan hebben wij een potentieel interessante encodering gevonden.Inderdaad, daar π stabiel is, zijn de functies in fs die betrekking hebben op de blokiden-tificatiebits enkel afhankelijk van de inputbits en dezelfde blokindentificatiebits, en nietvan de overige bits van de toestandsencodering (verklaar dit). Deze functies kunnen dusrelatief eenvoudig gerealiseerd worden. De overige dlog2 qe functies zijn verder nog af-hankelijk van de wijze waarop de toestanden binnen elke klasse gecodeerd worden. Hetaantal mogelijkheden dat hier onderzocht moet worden is kleiner dan het oorspronkelij-ke aantal omdat q < r.

Het komt er dus op aan zoveel mogelijke stabiele partities te vinden van een gegeventtt, en op basis daarvan de gunstigste encodering te zoeken van de r toestanden. Een tttheeft steeds stabiele partities: de triviale partities πmax = S en πmin = i i ∈ S zijnbeide stabiel (bewijs dit). De verzameling van alle stabiele partities van een ttt is partieelgeordend onder de verfijningsrelatie .

Definitie 7.4 Een stabiele partitie π1 is fijner dan een andere stabiele partitie π2, π1 π2,indien elk blok van π1 vervat zit in een blok van π2.

Definitie 7.5 De som π1 + π2 van twee stabiele partities is de partitie van S gevormd door demaximale paarsgewijze unies van niet disjuncte blokken van π1 en π2. Het product π1 · π2 van

2Noteer dat deze gewichten niet overeenkomen met de eerder opgegeven volgorde van de regels: di-verse auteurs stellen andere volgordes voor – het gaat immers over een heuristiek, en men mag gerust degewichten wijzigen wanneer dit zou leiden tot betere resultaten, afhankelijk van de klasse problemen diemen beschouwt.

216

Page 221: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

twee stabiele partities is de partitie van S die gevormd wordt door de paarsgewijze doorsneden vande blokken uit π1 en π2.

Onder de partiele ordening bezit elk paar stabiele partities π1 en π2 een kleinste bo-vengrens en een grootste benedengrens, die beide partities zijn van S. Net zoals bij denatuurlijke ordening op Boole-algebra’s bestaat er hier ook een verband tussen de orde-ning en de constructoren + en ·. Dit verband wordt geformaliseerd door het volgendelemma.

Lemma 7.1 Wanneer π1 en π2 stabiele partities zijn van een ttt dan geldt:

l.u.b.(π1, π2) = π1 + π2

g.l.b.(π1, π2) = π1 · π2

Bewijs. Wordt als oefening gelaten voor de lezer.

Stelling 7.3 Gegeven een ttt met stabiele partities π1 en π2. Dan zijn l.u.b.(π1, π2) en g.l.b.(π1,π2) ook stabiele partities van de ttt, d.w.z. de klasse van de stabiele partities van een ttt is geslotenonder + en ·.

Bewijs. Weze B een blok van g.l.b.(π1, π2), en weze q ∈ B en X ∈ 0, 1n. Uit dedefinitie van g.l.b.(π1, π2) volgt dat er twee blokken B1 ∈ π1 en B2 ∈ π2 bestaan zoda-nig dat B = B1 ∩ B2, en dus dat q ∈ B1 en q ∈ B2. Weze fs(B1, X) de verzamelingopvolgertoestanden van toestanden in B1 onder input X . Daar π1 en π2 stabiel zijn volgt

∃B′1 ∈ π1 fs(B1, X) ⊆ B′

1

en∃B′

2 ∈ π2 fs(B2, X) ⊆ B′2.

Bijgevolg isfs(B1, X) ∩ fs(B2, X) ⊆ B′

1 ∩B′2 ∈ g.l.b.(π1, π2),

en dus

fs(q, X) ∈ fs(B1 ∩B2, X) ⊆ fs(B1, X) ∩ fs(B2, X) ⊆ B′1 ∩B′

2 ∈ g.l.b.(π1, π2).

Hieruit volgt dat g.l.b.(π1, π2) stabiel is. Het bewijs dat ook l.u.b.(π1, π2) stabiel is wordtgelaten voor de lezer als oefening.

Zoals reeds eerder gezegd zijn ook de triviale partities πmin en πmax van een ttt stabiel.Samen met de bovenstaande stelling impliceert dit dat de verzameling stabiele partitiesvan een ttt een tralie vormen onder .

Hoe vinden wij nu de stabiele partities van een ttt? Vooreerst gaan wij de minimaleniet-triviale partities zoeken, die elk minstens een koppel toestanden bevatten (zie fig.7.9).

Algoritme 7.5 (Het vinden van niet-triviale minimale stabiele partities)

1. Kies een koppel toestanden (p, q) uit de ttt.

2. Zoek de opvolgerkoppels van (p, q) onder alle inputsymbolen.

217

Page 222: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Opvolgerboom Beginkoppel Partitie

CE CE (ACDEFG)|

| |AA DF DF (AGE)(DCF)

|| |

EG DD EG (AGE)(CF)(D)|

| |AA FC FC (AG)(CF)(D)(E)

|| |

AG DD AG (AG)(C)(D)(E)(F)|

| |AA CC

Figuur 7.9: Het vinden van stabiele partities van een ttt

3. Markeer alle opvolgerkoppels die maar een toestand bevatten, en de opvolgerkoppels waar-van reeds eerder de opvolgers onderzocht werden.

4. Voor alle niet-gemerkte koppels, herhaal recursief stappen (2),(3), en (4), tot wanneer geenniet-gemerkte koppels meer ontstaan.

5. Verzamel alle onderzochte koppels, en bereken hun transitieve sluiting.

6. Herhaal vanaf (1) voor een ander koppel, tot wanneer alle koppels onderzocht zijn.

Eens al de minimale stabiele partities gekend, kan men door het toepassen van de opera-ties + en · (of g.l.b. en l.u.b.) de hele tralie terugvinden. De hele tralie van de machine inVoorbeeld 7.1 wordt voorgesteld in figuur 7.10.

Opmerking. In principe moet het bovenstaand algoritme uitgevoerd worden voor elkkoppel toestanden uit de ttt. Het is echter duidelijk dat, wanneer een bepaald koppel(p, q) reeds onderzocht is tijdens de analyse van een koppel (a, b), men de opvolgerboomvan (p, q) kan hergebruiken. Bijvoorbeeld, in figuur 7.9 wordt enkel de opvolgerboomvan het koppel (C,E) voorgesteld. Hij bevat echter ook de opvolgerbomen van (D,F ),(E,G), (F,C), en (A,G). Bovendien is het in dit geval zo dat geen van de takken uitde opvolgerbomen uitloopt op een reeds onderzocht paar. De sub-bomen die ontstaanop de knopen (D,F ), enz. zijn dus zelf volwaardige opvolgerbomen. LET OP: in hetalgemeen is de situatie ingewikkelder. Het kan b.v. voorkomen dat in de boom vooreen koppel (a, b) een koppel (p, q) voorkomt, en dat een tak in de deelboom van (p, q)

218

Page 223: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Partitie Gegenereerd door

πmax = (ACDEFG) AC,AD,AF, CE,CG,DE,DG,EF, FG

|(AGE)(CDF ) CD,DF

|(AGE)(CF )(D) AE,EG

|(AG)(CF )(D)(E) CF

|(AG)(C)(D)(E)(F ) AG

|πmin = (A)(C)(D)(E)(F )(G)

Figuur 7.10: De tralie van stabiele partities van Voorbeeld 7.1

uitloopt op een koppel dat reeds onderzocht werd buiten de deelboom van (p, q). Voor deexploratie van de opvolgerboom van (a, b) mag men het verder onderzoek hier stoppen;voor de exploratie van de opvolgerboom van (p, q) echter mag men alleen stoppen opherhalingen van koppels die reeds voorgekomen zijn in de deelboom van (p, q) zelf. Omgemakkelijk de opvolgerboom van een koppel op te stellen kan men gebruik maken vaneen z.g. opvolgergraaf, zoals dit gebeurt in de Maple-suite (zie figuur D.17).

Voor het vinden van een gunstige encodering kiest men een niet-triviale partitie metzo weinig mogelijk blokken (zo er een bestaat!), en gaat te werk zoals hierboven reedsuiteengezet. In het geval van Voorbeeld 7.1 laten wij het bit Y1 afhangen van de partitie

(AGE)(CDF ),

en het bit Y2 van de partitie(AG)(CF )(D)(E).

Dit wil zeggen dat de combinatie Y1Y2 de blokken van

(AG)(CF )(D)(E)

eenduidig identificeert. Het onderscheid tussen de toestanden A,G en C,F kan verdergemaakt worden door bit Y3. Wij verkrijgen de assignatie

Y1 Y2 Y3

A 0 0 0G 0 0 1E 0 1 0C 1 0 0F 1 0 1D 1 1 0

219

Page 224: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

die leidt tot de volgende functies in fs:

y1 = X

y2 = Y1Y2 + Y1X

y3 = Y ′1Y2X + Y1Y3X

′,

met een totale kost van 2 OF-poorten, 4 OF-inputs, 4 EN-poorten, en 10 EN-inputs. Dit isnogmaals een besparing t.o.v. de vorige assignatie.

Een interessant speciaal geval treedt op wanneer er partities π1, π2, . . . , πk bestaan,met elk twee blokken, waarvoor

π1 · π2 · · ·πk = πmin.

Elke partitie stelt dan precies een bit voor in de toestandsencodering. De functie in fs diedat bit moet berekenen hangt enkel af van datzelfde bit en, uiteraard, van de inputs.

De partitiemethode kan verder verfijnd worden tot de methode van de Partitiepaar-algebra [Hartmanis61], maar dit ligt buiten het kader van deze cursus.

7.5 Toestandsassignatie in asynchrone netwerken

Bij synchrone netwerken konden we bij de toestandsassignatie de nadruk leggen op eco-nomie in de realisatie van de functies fs en fu. Bij asynchrone netwerken ligt de situatiegeheel anders: wij moeten eerst zorgen dat wij een betrouwbaar en correct werkend net-werk realiseren. De toestandsassignatie moet er in eerste instantie over waken dat ergeen kritische races of essentiele hazards ontstaan in het netwerk.

Een zekere methode voor het vermijden van races is het vermijden van overgangenmet een hamming-afstand groter dan 1. Dit kan gerealiseerd worden door alle toestan-den waartussen overgangen kunnen gebeuren naburige assignaties te geven. Zo zijn deovergangen in de machine van fig. 7.6

(a, b), (b, c), (c, d), (d, a).

Het blijkt dat met de assignatie

a = 00 d = 10b = 01 c = 11

alle toegelaten overgangen precies afstand-1 zijn.In het algemeen gaat het uiteraard niet zo eenvoudig: tussen r toestanden kunnen

er maximaal r(r − 1)/2 transities bestaan. In de hyperkubus (met r een macht van 2),die alle afstand-1 relaties voorstelt, kunnen er slechts r(log2 r)/2 transities bestaan, enelke toestand heeft slechts log2 r naburen. Men zal dus meestal meer transities nodighebben dan er afstand-1 paren bestaan in de gekozen assignatie met een minimaal aantalgeheugencellen. Men zal dus het aantal geheugencellen moeten vergroten.

Wanneer er geen oplossing gevonden wordt met directe afstand-1 overgangen, kanmen overwegen afstand-d overgangen te gebruiken met d > 1 (races). Men moet danuiteraard nagaan of geen van de geıntroduceerde races kritisch is. Alternatief kan menook zoeken naar meervoudige overgangen, d.w.z. sequenties van afstand-1 overgangen dieeen grotere afstand overbruggen via niet-gebruikte of ongevaarlijke tussentoestanden.De methode die races toelaat leidt uiteraard tot een snellere realisatie dan de methode

220

Page 225: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

X1, X2

00 01 11 10a a a d b

b c b d b

c c d e c

d a d d c

e c b e e

Figuur 7.11: Toestandsassignatie in asynchroon transitiediagram

met meervoudige overgangen, omdat de transitie van meerdere geheugencellen simul-taan verloopt. De laatste methode biedt louter afstand-1 overgangen (belangrijk voor defuncties in fs), ten koste van een tragere werking.

Wij zullen nu kort twee methoden bespreken, een voor elk van de bovenstaande be-naderingen.

Methode 1: Rechtstreekse overgangen. Deze methode wordt in het Engels de ‘SingleTransition Time (STT) assigment’ genoemd. De methode steunt essentieel op de definitievan een kritische race. Beschouw een kolom in een ttt, en weze Si → Sj en Sp → Sq

rechtstreekse overgangen (mogelijk over afstand d > 1). In de overgang Si → Sj zaleen aantal d ≥ 1 bits van waarde veranderen. De overige n − d toestandsvariabelenveranderen niet. Dit zijn precies de variabelen die dezelfde waarde aannemen in deencodering van Si en Sj . De race tussen de d variabelen die veranderen leidt tot eenaantal paden van Si naar Sj . De race is kritisch wanneer

1. ofwel een stabiele toestand Sk voorkomt op een van de paden van Si naar Sj ;

2. ofwel een pad van Si → Sj kruist met een pad van Sp → Sq.

Het optreden van de gevallen (1) of (2) hierboven kan voorkomen worden wanneer dewaarde van minstens een niet-veranderende toestandsvariabele in een transitie Si → Sj

verschilt van de waarde die deze variabele aanneemt in een stabiele toestand of als niet-veranderende waarde in een andere transitie. Op deze observatie is de techniek vanTracey gesteund [Tracey66]. Wij zullen de techniek uiteenzetten aan de hand van eeneenvoudig voorbeeld (fig. 7.11.)

Tracey’s methode begint met het aanleggen van een lijst van (partieel gespecificeerde)partities van de toestandsruimte van het ttt, volgens het volgende criterium:

Tracey’s Criterium voor Partitielijst: Wanneer in dezelfde kolom van een ttt Si → Sj enSp → Sq transities zijn, en Sk een stabiele toestand naar waar geen overgang gebeurt, dan moetde partitielijst de partiele partities

(Si, Sj)(Sp, Sq)(Si, Sj)(Sk)

bevatten.

221

Page 226: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De partiele partities die wij volgens dit kriterium vinden voor Voorbeeld 5.3 zijn

π1 : (ad)(bc) π6 : (bd)(ce)π2 : (ad)(ce) π7 : (ab)(cd)π3 : (be)(cd) π8 : (ab)(e)π4 : (a)(be) π9 : (cd)(e)π5 : (a)(cd).

Het komt er nu op aan een zo klein mogelijk aantal n toestandsvariabelen en eenencodering te vinden zodanig dat

1. alle toestanden een unieke encodering krijgen;

2. elke partitie uit bovenstaande lijst door minstens een toestandsvariabele moet geın-duceerd worden.

Het is duidelijk dat, wegens de partiele specificatie van de partities, vele combineer-baar zijn met andere zonder elkaar tegen te spreken. Zo zijn π1, π2, en π4 combineerbaartot (ad)(bce). Wanneer wij Y1 laten overeenkomen met deze gecombineerde partitie, danzal Y1 tegelijk π1, π2, en π4 induceren. Wij zoeken dus een minimaal aantal partities datalle voorwaarden bevat uitgedrukt door π1, π2, . . . , π9. Dit kan op een systematische ma-nier gebeuren.

Algoritme 7.6 (Methode van Tracey voor Toestandsassignatie)

1. Stel de initiele partitielijst van de toestandsruimte van het ttt voor op een ternaire manier:stel toestanden in een klasse arbitrair voor door 1, toestanden in de andere klasse door 0, enniet-vermelde toestanden door ‘–’, b.v.

π1 : (0110−).

2. Zoek alle combineerbare partitieparen. Een koppel (πi, πj) is combineerbaar wanneer

(a) overeenstemmende symbolen in de ternaire representaties van πi en πj alle ofwel gelijkzijn, ofwel minstens een van beide gelijk is aan ‘–’.

(b) (πi, π′j) combineerbaar is, waarbij π′j 0 bevat i.p.v. 1, en 1 i.p.v. 0.

3. Zoek de maximale compatibele klassen uit de lijst van combineerbare koppels.

4. Zoek een minimale set van maximale compatibele klassen die alle initiele partities represen-teert, b.v. met de tabelmethode voor het vinden van een minimale som.

Bovenstaand algoritme toegepast op Voorbeeld 5.3 leidt tot het volgende.

Ternaire voorstelling van partities:

π1 : (0110−) π6 : (−0101)π2 : (0− 101) π7 : (0011−)π3 : (−0110) π8 : (00−−1)π4 : (01−−1) π9 : (−− 001)π5 : (0− 11−) .

222

Page 227: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Combineerbare koppels (enkel de partitienummers werden geschreven):

(1, 2)(1, 4)(2, 4)(2, 6)(2, 8)(3, 4′)(3, 5)(3, 7)(3, 9′)(4, 5)(4, 9)(5, 7)(5, 8)(5, 9′)(6, 8)(7, 8)(7, 9′)(8, 9)

Maximale compatibele klassen:

A (1, 2, 4) E (4, 5)B (2, 6, 8) F (4, 9)C (3, 5, 7, 9′) G (5, 7, 8)D (3, 4′) H (8, 9)

Minimale cover:1 2 3 4 5 6 7 8 9

→ A ∗ ∗ ∗→ B ∗ ∗ ∗→ C ∗ ∗ ∗ ∗

D ∗ ∗E ∗ ∗F ∗ ∗G ∗ ∗ ∗H ∗ ∗

Hierin zijn A en B essentieel, en C is dominant over de overblijvende kolommen. Wijverkrijgen dus 3 corresponderende toestandsvariabelen, en de volgende encodering:

Y1 Y2 Y3

a 0 0 0b 1 0 0c 1 1 1d 0 0 1e 1 1 0

Noteer dat er afstand-2 transities toegelaten worden, maar dat er bij constructie geenkritische races aanwezig zijn.

De methode van Tracey heeft nog een aantal varianten, maar daar gaan wij hier nietdieper op in.

Opmerking. De bovenstaande methode steunt op het constant blijven van een aan-tal toestandsvariabelen tijdens een verre overgang: bij de overgang b → c in de kolomX1X2 = 00 is het essentieel dat Y1 = 1 blijft, zoniet komen wij in het pad van de over-gang d→ a. Het is duidelijk dat men hiermee in de realisatie van de functies in fs terdegemoet rekening houden. De combinatorische functie y1 b.v. moet constant 1 blijven, zelfswanneer 2 inputs veranderen!

223

Page 228: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Methode 2: 1-uit-r assignaties. Wanneer wij in een ttt met r rijen elke toestand voorstel-len door een binaire combinatie van lengte r met een enkele 1, dan hebben alle transitiesafstand 2. Deze transities kunnen gerealiseerd worden als een meervoudige overgangvan lengte 2, b.v. voor r = 4:

0010→ 0001 als 0010→ 0011→ 0001.

Wij gebruiken dus een intermediaire onstabiele toestand eigen aan de transitie.Wanneer men deze assignatie toepast krijgen de functies yi, i = 1, 2, . . . , r in fs een

speciale vorm:yi = Ti + HiYi.

Hierin noemt men Ti de transitieterm en Hi de houdterm. De transitieterm is 1 op alle rijenvan waaruit men een transitie naar rij i kan uitvoeren. De houdterm zorgt ervoor dat bijeen transitie van rij i naar rij j, eerst Yj op 1 komt, en pas dan Yi op 0. Noteer dat dezefuncties sterk gelijken op de karakteristieke vergelijking van een S-dominante SR-flipflop(zie Hoofdstuk 6).

Laat ons het voorbeeld in figuur 7.11 uitwerken met de assignatie

Y1 Y2 Y3 Y4 Y5

a 1 0 0 0 0b 0 1 0 0 0c 0 0 1 0 0d 0 0 0 1 0e 0 0 0 0 1

Voor y2 vinden wij:

1. transities naar b: vanuit e voor X1X2 = 01, en vanuit a voor X1X2 = 10. Dus

T2 = X ′1X2Y5 + X1X

′2Y1.

2. transities vanuit b: naar c en naar d. De variabele Y2 moet 1 blijven zolang detussentoestanden (01100) of (01010) niet bereikt werden, dus

H2 = (Y3 + Y4)′ = Y ′3Y

′4 .

Hieruit volgt:y1 = X ′

1X′2Y4 + Y ′

2Y′4Y1

y2 = X ′1X2Y5 + X1X

′2Y1 + Y ′

3Y′4Y2

y3 = X ′1X

′2(Y2 + Y5) + X1X

′2Y4 + Y ′

4Y′5Y3

y4 = X ′1X2Y3 + X1X2(Y1 + Y2) + Y ′

1Y′3Y4

y5 = X1X2Y3 + Y ′2Y

′3Y5

Deze uitdrukkingen zouden overigens ook volgen uit een globale minimalisatie. (Noteerdat dit reeds 5 functies van 7 inputs vereist !)

Bovenstaande vergelijkingen moeten nog nagekeken worden op statische hazards.De uitdrukking voor y1 b.v. heeft een statische 1-hazard voor X1 = X2 = 0, Y1 = 1, Y2 =0, en Y4 : 0→ 1. Deze hazard is gevaarlijk bij de transitie d→ a in de kolom X1X2 = 00.Inderdaad, wanneer Y4 → 0 moet de transitieterm Y ′

2Y′4Y1 eerst op 1 komen alvorens de

224

Page 229: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

houdterm X ′1X

′2Y4 op 0 mag komen, zoniet komt men in een foutieve toestand (00000).

Dit kunnen wij verhinderen door toevoeging van de term (priemimplicant)

X ′1X

′2Y1Y

′2 .

Voor de functie y3 zijn er twee hazards: een op Y5 en een op Y4. Beide hazards kunnenweggewerkt worden door toevoeging van de termen

X ′1X

′2Y

′4Y3 en X1X

′2Y3Y

′5 .

Deze hazards zijn het gevolg van de cyclus

a11→ d

00→ a;

telkens wanneer dergelijke cycli optreden in een ttt moet men de geassocieerde hazardsverwijderen.

De 1-uit-r assignatiemethode is eenvoudig toe te passen en leidt tot eenvoudige combi-natorische functies in fs. Het (veel) groter aantal toestandselementen dat nodig is t.o.v.andere methoden wordt hierdoor in zekere mate gecompenseerd.

Slotopmerking

In dit hoofdstuk hebben wij de synthese van sequentiele gedragingen in de vorm van eenteruggekoppeld poortcircuit of een circuit met geheugenelementen besproken.

Wij hebben zowel synchrone als asynchrone circuits bekeken, weze het zeer opper-vlakkig. De benadering die wij besproken hebben wordt aanzien als ‘klassiek’, i.h.b. voorwat betreft de asynchrone circuits. Hier past het dan ook op te merken dat, voor de syn-these en optimalisatie van zowel synchrone netwerken als asynchrone, in de voorbije 10jaar bijzonder veel onderzoek is verricht, en er een aantal resultaten geboekt werden dieelk professioneel ontwerper hoort te kennen. Een inleidende cursus zoals deze is echterveel te beperkt om op deze recente ontwikkelingen in te gaan.

7.6 Compositie en decompositie van synchrone automaten

7.6.1 Cascade- en paralleldecompositie

Wanneer wij een automaat opsplitsen in twee geınterconnecteerde automaten, kunnenwij drie gevallen onderscheiden (fig. 7.12). In de algemene vorm lopen er verbindingenvan beide machines naar elkaar; in de parallelvorm valt de automaat uit elkaar in twee,totaal gescheiden machines; en in de cascadevorm valt de machine uit elkaar in een meester-machine M1 en een slaafmachine M2, zodanig dat de meestermachine geen inputs ontvangtvan de slaafmachine.

Een automaat met meer dan twee toestanden kan steeds gedecomposeerd worden intwee deelmachines: het volstaat dat men het toestandsregister opsplitst in twee delen, endat men de originele toestandsfunctie opsplitst volgens de opsplitsing van het geheugen(fig. 7.13). Deze opsplitsing is echter zelden nuttig, omdat beide machines in het alge-meen zeer sterk geınterconnecteerd zullen blijven: zij moeten elkaars toestand kunnenzien; bovendien kan de opsplitsing van de toestandsfunctie in twee gescheiden delen C1

en C2 een globaal minder efficiente realisatie tot gevolg hebben (minder gemeenschap-pelijke implicanten). Een decompositie is slechts nuttig wanneer het aantal verbindingen

225

Page 230: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Inputs

C1 C2

S1 S2

C3Output

Inputs

C1 C2

S1 S2

C3Output

Inputs

C1 C2

S1 S2

C3Output

Input Output

C

S

(a) Origineel

(b) Algemene decompositie

(c) Cascadedecompositie

(d) Paralleldecompositie

Figuur 7.12: Spatiale decompositievormen van een automaat

226

Page 231: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Input

C1 C2

S1S1 S2

S2

OutputInput Output

C

(a) Origineel (b) Decompositie

Figuur 7.13: Triviale opsplitsing van willekeurige automaat

tussen beide componenten beperkt kan worden; elk van de componenten is dan eenvou-diger dan de oorspronkelijke machine, en kan dus gemakkelijker gerealiseerd worden.In dat opzicht zijn de parallel- en de cascadevorm interessant.

Noteer dat deze vormen van decompositie niet leiden tot een reductie van het aantalgeheugencellen en bovendien blijft het zo dat alle geheugencellen gelijktijdig gelezen engeschreven blijven worden. De winst die men doet met een spatiale decompositie be-staat erin dat men het toestandsregister distribueert over de ruimte, wat leidt tot kortereverbindingen naar de combinatorische circuits, en dat de combinatorische toestands- enoutputfuncties over het algemeen minder argumenten hebben, en daardoor compacteren dus sneller zijn.

Er bestaat een systematische procedure, daterend uit de jaren 60, om na te gaan of eengegeven automaat een cascade- of paralleldecompositie heeft. Deze methode is gesteundop de aanwezigheid van stabiele partities (zie paragraaf 7.4). Zoals men weet vormende stabiele partities van een automaat (voorgesteld door zijn toestandstransitietabel ttt)een tralie, met als minimumelement de triviale partitie π0 waarin de blokken singletonszijn, en als maximumelement de triviale partitie π∞ die bestaat uit een blok. Gewoonlijkvertoont een gegeven ttt meerdere stabiele partities.

Paralleldecompositie. Wanneer een ttt twee stabiele partities π1 en π2 bevat zodanigdat π0 = glb(π1, π2), dan bestaat er een paralleldecompositie in twee machines M1 enM2, respectievelijk gebaseerd op π1 en π2. De machine M1 resp. M2 wordt verkregendoor als toestanden de blokken van π1 resp. π2 te nemen. Aangezien π1 stabiel is, wetenwij dat de toestandsfunctie van M1 enkel de (systeem)inputs en de toestand van M1 alsargumenten heeft. De systeemoutputs kunnen zeker bepaald worden uit de kennis vande toestand van beide machines en de systeeminput. Een bijzonder eenvoudig voorbeeldvan een dergelijke decompositie is de modulo-6 teller van figuur 7.14, die uit elkaar valtin een modulo-2 en een modulo-3 teller.

Cascadedecompositie. Wanneer de tralie van de stabiele partities van een ttt een ket-ting van minstens lengte 3 tussen π0 en π∞ bevat, kan men een cascadedecompositie vande automaat vinden. Veronderstel dat wij de volgende ketting hebben: π0 < π2 < π1 <

π∞ (figuur 7.15). Met π1 = (ACEG)(BDFH) correspondeert een autonoom werken-de machine M1 (toestanden a, b). Met autonoom bedoelen wij onafhankelijk van de

227

Page 232: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

0 1------A A B B B CC C DD D EE E FF F A

0 1---------AD AD BE BE BE CFCF CF AD

0 1------------ACE ACE BDF BDF BDF ACE

(ABCDEF)

M1: (ACE)(BDF) M2: (AD)(BE)(CF)

(A)(B)(C)(D)(E)(F)

Machine M

Machine M1

Machine M2

(a) Originele Machine (b) Stabiele Partities (c) Paralleldecompositie

Figuur 7.14: Paralleldecompositie gebaseerd op de partitiemethode

toestand van de andere deelmachines.Met π2 = (AE)(BF )(CG)(DH) correspondeert eveneens een autonome machine

M∗2 , die een cascadeverbinding is van M1 en M2. Wij kunnen M2 vinden op basis van

een partitie π∗ (niet-stabiel!), die π1 verfijnt tot π2: glb(π∗, π1) = π2. De keuze π∗ =(ABEF )(CDGH) voldoet hieraan. Machine M2 is uiteraard niet autonoom, aangezienzij de toestand van M1 moet binnenkrijgen als inputs (π∗ is niet stabiel). De triviale par-titie π0 tenslotte, correspondeert met de originele machine. Wij hebben een tweede extrapartitie π∗∗ (en een corresponderende machine M3) nodig om de toestand van π2 verderte verfijnen tot π0. Wij vinden π∗∗ = (ABCD)(EFGH). De machine M3 heeft de toestandvan M1 en M2 als bijkomende inputs. Het voorbeeld is bijzonder eenvoudig: het is eengewone binaire 3-bitteller, die inderdaad een cascade is van drie flipflops.

In de praktijk komt men zelden zuivere cascade- of paralleldecomposities tegen, enbovendien is de bovenbeschreven methode (het vinden van de stabiele partities) bijzon-der rekenintensief. Het nut van deze methode voor grote automaten is dan ook beperkt.Er bestaan uitbreidingen naar minder restrictieve stabiele bedekkingen. Een stabiele be-dekking is, net zoals een partitie, een klasse van verzamelingen toestanden die alle toe-standen bedekken, maar die niet noodzakelijk disjunct zijn. Een stabiele bedekking kangezien worden als een stabiele partitie van een ttt waarin sommige toestanden gedupli-ceerd werden. Wij gaan hier niet verder op in.

Factorisering of subroutinedecompositie

Een meer recente decompositievorm van automaten is sterk geınspireerd op de creatievan subroutines3 in software: men zal een aantal statements die als groep herhaaldelijkvoorkomen isoleren, en ze aanroepen van op de plaats waar men ze nodig heeft.

Men kan een gelijkaardige techniek toepassen op eindige automaten. Beschouw daar-toe het transitiediagram voorgesteld in figuur 7.16(a). Wanneer men dit diagram nauw-keurig onderzoekt, ziet men dat de opeenvolgingen van 4 toestanden die een volledigeoptelling uitvoeren sterk gelijkaardig zijn. Met gelijkaardig bedoelen wij dat de outputsonder dezelfde inputsignalen dezelfde zijn, en dat gesprongen wordt naar andere, even-

3In feite zijn het remote procedure calls.

228

Page 233: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

0 1------A A B B B CC C DD D EE E FF F GG G HH H A

0,- 1,a,c 1,a,d 1,b,c 1,b,d-----------------------------------ABCD=e e e e e f EFGH=f f f f f e

0 1-----------ACEG=a a b BDFH=b b a

0,- 1,a 1,b--------------------ABEF=c c c d CDGH=d d d c

(ABCDEFGH)

M1: (ACEG)(BDFH)

M1,M2,M3: (A)(B)(C)(D)(E)(F)(G)(H)

Machine M

Machine M1 Machine M2

Machine M3

(a) Originele Machine (b) Stabiele Partities

(c) Cascadedecompositie

M1,M2: (AE)(BF)(CG)(DH)

Figuur 7.15: Cascadedecompositie gebaseerd op de partitiemethode

229

Page 234: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

eens gelijkaardige toestanden. Een dergelijk stel toestanden dat meer dan eens voorkomtin een diagram noemt men een perfecte factor. Men kan het diagram nu opsplitsen alsvolgt: men vervangt elke factor door een wachttoestand (de gearceerde toestanden infiguur 7.16(b)). Men splitst de factor af, en realiseert hem in een aparte machine M2. Hiervinden wij de toestanden terug, aangevuld met een extra wachttoestand w. Beide ma-chines kunnen elkaars toestand (gedeeltelijk) lezen. In het voorbeeld zal enkel machineM1 ook de input start gebruiken. Dit komt tot uiting in de opschriften van de tran-sities. De transitievoorwaarde in het opschrift 0,-/HC1 bij toestand W betekent: onderinputvoorwaarden start = 0 en om het even welke toestand van M2. De transitievoor-waarde in het opschrift -,not(3)/--- betekent: bij gelijk welke waarde op start, maarmet M2 niet in toestand 3. De output van beide machines worden gecombineerd tot eenoutput (bv. door een OF-functie). Op elk ogenblik zal slechts een machine zich niet in eenwachttoestand bevinden. De wachttoestanden van M1 kunnen geınterpreteerd wordenals de ‘terugkeeradressen’ voor de oproep naar M2. Machine M2 gebruikt precies dieinformatie om te weten hoe zij uit toestand 3 moet terugkeren.4

Men kan in het voorbeeld zien dat het aantal toestanden in elk van de deelmachineskleiner is dan in de oorspronkelijke machine. Het totaal aantal geheugencellen is echtergroter geworden. Wanneer de koppeling tussen beide machines voldoend zwak is, zul-len ook de toestands- en outputfuncties eenvoudiger zijn, en kan men de machine duscompacter en sneller maken.

Hoewel de decompositie spatiaal is, is de werking eerder te vergelijken met een tem-porele decompositie, dit wegens het ‘hergebruik’ van dezelfde machine op verschillendeogenblikken, en wegens de alternerende activiteit van beide deelmachines.

Er bestaan systematische methoden om op zoek te gaan naar perfecte factoren, alsooknaar niet-perfecte factoren, die ‘bijna’ hetzelfde gedrag hebben ([Devadas94]).

7.6.2 Compositieregels voor synchrone automaten: synchrone interconnecties

In wat voorafgaat hebben wij diverse voorbeelden ontmoet van synchrone automatendie geınterconnecteerd worden tot een groter geheel. Wij zijn ervan uitgegaan dat wij hetgedrag van de compositie eenvoudig kunnen afleiden uit het synchroon gedrag van desamenstellende onderdelen. Wij zullen nu kort onderzoeken onder welke voorwaardendeze veronderstelling stand houdt.

Beschouw daartoe de samenstelling van twee automaten zoals afgebeeld op figuur7.17. De werking van elk van de machines kan voorgesteld worden met behulp van huntoestands- en outputfuncties:

s1 = fs1(S1, I11, I12)

O11 = fo11(S1, I11, I12)

O12 = fo12(S1, I11, I12)

s2 = fs2(S2, I21, I22)

O21 = fo21(S2, I21, I22)

O22 = fo22(S2, I21, I22)

4Noteer dat hiermee dus uiteraard geen directe of indirecte recursie mogelijk is: echte recursie is nietmogelijk met een beperkte hoeveelheid geheugen.

230

Page 235: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

I

I

W

W

ab0

ab

c0

c

d0

d

w

e0

0

e

ab1 c1 d1 e1

1

ab2 c2 d2 e2

2

ab3 c3 d3 e3

3

0/HC1

0,-/HC1

1/LC0

1,-/LC0

-/SL0

-,-/SL0 -,3/--- -,3/--- -,3/---

I/---

-/SL0 -/SL0 -/SL0 -/SL0

-/SL0 -/SL0 -/SL0

-/SL0

-/SC0

-/SL0 -/SL0 -/SL0

-/SL0

-/SL0

-/SC0 -/SC0 -/SC0 -/SC0

-/HC1

(a) originele automaat. Legende: start/schuifregisters carry done

-,3/---

not(I)/---

not(e)/SL0

e/HC1

(b) Decompositie

-,not(3)/--- -,not(3)/--- -,not(3)/--- -,not(3)/---

M1

M2

Figuur 7.16: Decompositie gebaseerd op factorisering

231

Page 236: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

I11 I21

I12 I22

S1 S2

O11 O21

O12 O22

O

I

klok

Figuur 7.17: Synchrone compositie van synchrone automaten

De samenstelling wordt beschreven door de volgende vergelijkingen:

I11 = I

I21 = I

I12 = O22

I22 = O12

O = (O11, O21)

S = (S1, S2)

Uiteraard impliceert dit dat men voldoet aan de regels voor de interne opbouw vansynchrone automaten, opgesomd in vorig hoofdstuk: men zal geheugenelementen ge-bruiken met identiek klokgedrag en kloksignaal, men zal de klokverschuiving beperken,men zal de klokperiode voldoend groot kiezen, en men zal de inputs op een synchronemanier aanbieden.

Nu is de vraag of wij onder deze voorwaarden de toestandsfunctie fs en de output-functie fo van de resulterende automaat kunnen afleiden, waarbij de toestandsruimtevan de nieuwe machine gevormd wordt door het cartesisch product van de afzonderlijketoestandsruimten.

Wij kunnen dit proberen door de interne variabelen O12 en O22 te elimineren. Wijkrijgen echter vergelijkingen van de vorm

O12 = fo12(S1, I11, O22)

O22 = fo22(S2, I21, O12)

en dusO12 = fo12(S1, I11, fo22(S2, I21, O12))

met een gelijkaardige uitdrukking voor O22. Het optreden van symbolen zowel in hetlinker- als rechterlid maakt het echter in het algemeen onmogelijk om O12 en O22 uit tedrukken als functies van S en I .

232

Page 237: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

De fundamentele reden hiervoor is dat wij gestart zijn met een Mealy-model van deautomaten: de output kan combinatorisch afhangen van de inputs. Het is dus perfectmogelijk door de afgebeelde interconnectie combinatorische terugkoppellussen te creeren.Deze lussen kunnen aanleiding geven tot de creatie van extra toestanden (naast de toe-standen in S). Deze toestanden en hun overgangen zijn niet kloksynchroon; de resulte-rende machine is het dus ook niet.

Een voldoende voorwaarde om toch tot een bona fide synchrone automaat te komen,is te vertrekken van een (gedeeltelijke) Moore-machine, waarin O12 en/of O22 niet afhan-gen van I12 resp. I22. In deze veronderstelling krijgen wij:

S = (S1, S2)

= (fs1(S1, I11, I12), fs2(S2, I21, I22))

= (fs1(S1, I11, fo22(S2, I21)), fs2(S2, I21, fo12(S1, I11)))

= fs(S, I).

Als conclusie kunnen wij zeggen dat men bij het stel ontwerpregels voor synchroneautomaten de volgende regel moet toegevoegd worden:

‘Er moet voor gezorgd worden dat de interconnectie van automaten niet leidttot de invoering van extra combinatorische terugkoppellussen.’

In de praktijk betekent dit dat men in elke terugkoppellus minstens een flipflop opneemt,bijvoorbeeld door outputs rechtstreeks uit een flipflop te betrekken.

7.7 Asynchrone interconnecties en aansturingen

7.7.1 Asynchrone interconnecties

Tot nu toe hebben wij verondersteld dat de buitenwereld, die de inputs voor de automaataanbrengt, dit doet op een synchrone manier. In de praktijk wil dit zeggen dat de input-signalen slechts mogen veranderen gedurende het O-interval van de geheugencellen. Ditimpliceert uiteraard dat de buitenwereld de fase van de klok kent. Aan deze voorwaarde isduidelijk niet voldaan wanneer het lokaal kloksignaal niet naar buiten gebracht wordt,of zelfs wanneer de looptijd van de signalen tussen de buitenwereld en de inputs van deautomaat niet goed gekend is. Het laatste komt voor bij de realisatie van ‘grote’ machines(groot kan hier de betekenis hebben: met de afmetingen van enkele vierkante millimeterals het gaat over ASIC-ontwerp met hoge klokfrequenties).

In zulke gevallen mag men niet langer aannemen dat de inputs synchroon aangebo-den worden, en moet men de vraag stellen wat het verband nog is tussen het gedragsmo-del van de machine en het werkelijk gedrag van de implementatie. Wij zullen dit doen ineen aantal stadia.

De input bevat meerdere bits die samenhoren

Met ‘bits die samenhoren’ bedoelen wij een geencodeerde meerwaardige input, bijvoor-beeld een 8-bit ASCII karakter in een parallelle interconnectie. Een aantal individuelebinaire inputs die onderling niet gerelateerd zijn en van diverse bronnen afkomstig zijnhoren volgens deze definitie niet samen. Samenhorende bits komen voor wanneer men

233

Page 238: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

bv. twee automaten wil koppelen die aangedreven worden door verschillende kloksig-nalen.

Een verandering op een dergelijke input-bitrij kan dus bestaan uit een veranderingop meer dan een binair signaal; dit kan toestandstransities veroorzaken in meer dan eengeheugencel, dus met Hamming-afstand groter dan 1. Wanneer de input synchroon aan-gelegd wordt, zullen de betrokken geheugencellen betrouwbaar de gewenste transitiemaken, omdat hun inputs stabiel zijn gedurende het I-interval. Wanneer echter de inputasynchroon aangelegd wordt, kan de feitelijke toestandstransitie verschillen van de ge-wenste, omdat sommige geheugencellen de overgang wel doen, andere niet. Het is dusnet of de automaat een andere code gelezen heeft dan diegene die door de bron via debitrij verstuurd werd; dit is een ontoelaatbare situatie.

Om betrouwbare (gelijktijdige) communicatie van bitrijen mogelijk te maken tussenonderling asynchrone automaten moet men er dus voor zorgen dat zij slechts transitieskunnen veroorzaken in de automaat op ogenblikken waarop de bitrij voldoend lang engegarandeerd stabiel is. Dit vereist de invoering van een communicatie- en synchronisa-tieprotocol tussen zender en ontvanger. Hierop komen wij verder terug.

De input bestaat uit een binair signaal

Hier kunnen wij twee gevallen onderscheiden: ofwel kan de input interne toestands-transities veroorzaken op meer dan een geheugencel, ofwel is dit niet het geval.

In het eerste geval, dus wanneer de asynchrone input transities kan veroorzaken tus-sen toestanden waarvan de encodering verschilt in meer dan een bit, geraken wij indezelfde moeilijkheden als bij bitrij-inputs. Het kan inderdaad voorkomen dat, bij eenasynchrone overgang op het inputsignaal, niet alle geheugenelementen die een over-gang zouden moeten maken, dit effectief ook doen.5 We maken dan een transitie naareen niet-gewenste toestand, en de automaat werkt ook niet volgens zijn gedragsmodel.

Wanneer wij het echter zo aan boord leggen dat de input slechts Hammingafstand-1overgangen kan induceren in de automaat, en zodanig dat een verandering op de inputgeen hazards veroorzaakt in het circuit dat de toestandsfunctie realiseert, dan kunnenwij een betrouwbare werking verkrijgen. Nog steeds is het zo dat wij onzekerheid heb-ben of de overgang effectief gebeurt op een bepaald ogenblik. Deze onzekerheid kanechter geen kwaad, zolang wij met observeerbare signalen te maken hebben. Observeer-bare signalen zijn signalen waarvan de verblijfsduur in een logisch niveau groter is dande klokperiode van de automaat. In dit geval zal, bij het niet uitvoeren van de gewens-te overgang op een bepaalde klokflank, dit met zekerheid6 plaats vinden bij de volgendeklokflank. De enige onzekerheid die wij dus nog hebben is het tijdstip waarop de over-gang gebeurt, niet de overgang zelf.

7.7.2 Synchronisatieflipflops en -protocollen

De eis tot hazardvrije Hammingafstand-1 overgangen voor asynchrone binaire inputskan eenvoudig worden voldaan door het inputsignaal te synchroniseren met behulp vaneen synchronisatieflipflop: figuur 7.18. In feite bouwt men een cascadecompositie van tweemachines M1 en M2. Wanneer in de resulterende machine M een wachtlus voorkomt

5In feite is het erger dan dat: wanneer de combinatorische schakelingen in de toestandsfunctie niet ha-zardvrij zijn, kunnen zelfs andere geheugencellen een niet-gewenste overgang maken!

6Wij maken hier abstractie van de kans op metastabiliteit, die wij verwaarloosbaar klein veronderstellen.

234

Page 239: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

I I*

klok

M1 M2 M

asynchroon gesynchroniseerd

I=0

I=1

A

B

A en B verschillenin 1 bit

Figuur 7.18: Het gebruik van een synchronisatieflipflop. De globale toestand in M wordt voor-gesteld door S = (S1, S2). Hierdoor wordt A = (0.XXX) en B = (1.XXX) (Hamming-afstand1).

zoals getoond in de figuur, dan verschillen de toestanden A en B slechts in de waarde vande toestand van M1, en dus over een bit. Dit is zo, aangezien de originele machine M2 opzich eveneens in een wachtlus moet zitten, en de transitie op input I slechts gewaar wordtin toestand B. Vanuit B mogen dan terug transities over een willekeurige Hamming-afstand gebeuren. Als synchronisatieflipflop (of -schakeling) kiest men uiteraard besteen circuit met uitstekende metastabiliteitseigenschappen.

Op basis van een dergelijke flipflop kan men nu betrouwbare communicatie opzettentussen onderling asynchrone automaten: figuur 7.19. Wij voorzien in twee extra binairesignalen dav (van data available) en ack (van acknowledge), die zender en ontvanger ver-binden, naast de eigenlijke communicatiesignalen data. Het protocol verloopt als volgt:

1. De zender observeert het ack-signaal van de ontvanger. Wanneer dit op 0 staat,betekent het dat de ontvanger klaar is voor nieuwe gegevens;

2. De zender brengt de nieuwe gegevens aan op data; deze verandering zal echtergeen toestandstransities veroorzaken in de ontvanger;

3. De zender brengt het dav-signaal op 1, om aan te geven dat de gegevens stabielzijn;

4. Wanneer de ontvanger de overgang van 0 naar 1 op dav gedetecteerd heeft, kanhij een toestandstransitie uitvoeren die afhankelijk is van data, bv. de gegevensopslaan in een intern register. Hoewel deze overgang meer dan Hamming-1 is, kandit nu op een betrouwbare manier, aangezien de gegevens gegarandeerd stabielzijn;

5. De ontvanger signaleert het opnemen van de gegevens door ack op 1 te brengen;

6. De zender wacht op het op 1 komen van ack; wanneer dit gebeurt mag hij de gege-vens van data verwijderen, en brengt hij dav laag; opnieuw veroorzaakt dit geentoestandstransities in de ontvanger;

7. Wanneer de ontvanger klaar is voor nieuwe gegevens brengt hij ack weer op 0

235

Page 240: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

klok1

dav

ack

data

klok2

ack=1

ack=0

dataout

dav<-1

ack=0

ack=1

dav<-0

dataweg

dav=0

dav=1

ack<-1lees

dav=1

dav=0

ack<-0

zender ontvanger

Figuur 7.19: Synchronisatieprotocol tussen asynchroon gekoppelde automaten. De gearceerdeopeenvolgende toestanden verschillen in een bit.

236

Page 241: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 7.20: Een seriele opteller

Dit schema heet in het Engels het 4-phase signalling protocol. Uiteraard zijn er varian-ten op mogelijk. Het zijn precies de synchronisatiesignalen dav en ack die als asynchroneinputs behandeld moeten worden, dav bij de ontvanger en ack bij de zender. Wanneerdeze signalen lokaal gesynchroniseerd worden, zullen zij in beide automaten betrouw-bare Hamming-1 overgangen induceren, die de bemonstering van de gegevens op data

slechts toelaten wanneer de gegevens reeds meer dan een klokperiode stabiel zijn. Wan-neer deze synchronisatiegebeurtenissen zeer frequent plaatsgrijpen kan het aangewezenzijn de synchronisatieflipflop dubbel uit te voeren, ten einde de kans op metastabielewerking tot onbeduidende niveaus terug te dringen (bv. MTBF > 10 jaar).

7.8 Opgaven

1. Ontwerp een synchrone automaat naar volgende specificaties (fig. 7.20).

(a) Hij heeft een klokingang C met positieve flanksturing, 3 binaire inputs X1, X2,en R, en 1 binaire uitgang Y .

(b) Een logische 1 op R brengt de automaat steeds naar zijn begintoestand. Wan-neer R = 0 berekent de automaat bitserieel de som van de sequenties aan-geboden aan X1 en X2. Deze sequenties zijn de binaire representaties vanniet-negatieve gehele getallen. Het minstbeduidend bit komt eerst, ook op deoutput.

2. Ontwerp een synchroon sequentieel netwerk met 3 inputs X , Y , R, en 1 output Z

dat

• Wanneer R = 1 naar een begintoestand gaat met Z = 0;

• Wanneer R = 0, na elke actieve klokflank k indiceert of

X(k) > Y (k),

waarin X(k) en Y (k) de getallen zijn, binair gepresenteerd door resp. de bitrij-en xk, xk−1, . . . , x0 en yk, yk−1, . . . , y0 (Fig. 7.21).

Ontwerp en minimaliseer de machine. Realiseer ze met poorten en flankgestuurdeD-flipflops.

3. Beschouw het onderstaand (minimale) ttt van een synchrone automaat.

237

Page 242: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 7.21: Een seriele comparator

0 1A B CB A DC E CD E BE C D

Realiseer deze machine met behulp van flankgestuurde geheugencellen, OF-poor-ten, EN-poorten en invertoren. Teken de realisatie. Uw antwoord wordt gequo-teerd op basis van (a) de correctheid, en (b) de economie. Voor de economie wordtrekening gehouden met het aantal geheugencellen, het aantal poorten, het aantalpoortinputs, en het aantal invertoren.

4. Onderstaande tabel is de ttt van een minimale synchrone automaat. Realiseer dezeautomaat zo economisch mogelijk, en teken het schema van de realisatie.

X=0 X=1A D EB E FC F DD A BE B CF C A

5. Stel een minimaal TTT op voor een synchrone automaat die de sequenties 10∗10herkent (hier betekent 0∗ nul of meer herhalingen van 0). Kan je hieruit snel een(eveneens minimaal) TTT afleiden voor een automaat die zowel 10∗10 als 01∗01herkent?

6. Ontwerp een synchrone automaat met (naast de klokinput), een input X , en eenoutput Y . Initieel is Y = 1. Op X worden achtereenvolgens, en synchroon met deklok, enen en nullen aangelegd. Op elk ogenblik stelt de sequentie bits die men totdan toe op de input gezien heeft, een natuurlijk getal voor, waarbij de minstbedui-dende bits het laatst (meest recent) werden aangebracht. De output Y moet op elkogenblik indiceren of het getal een veelvoud is van 3. Volg de volgende stappen:

(a) stel de primitieve ttt van dit probleem op;

(b) minimaliseer deze ttt;

(c) kies een willekeurige toestandsassignatie;

(d) realiseer de combinatorische functies;

(e) teken het circuitdiagram.

238

Page 243: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

A

B

p

q

r

s

Yb

Yb

X

X

X

X

X

X

X

h

j

k

c

fZ

Z

Z

Y

Y

Y

Y

Y

Y

Zb

Zb

Zb

Zb

Zb

Xb

Xb

Xb

Xb

Ab

Ab g

Bb

B

B

B

B

B

B

A

A

A

A

A

A

m

A

B

X

Figuur 7.22: Figuur bij vraag 8

7. Beschouw de onderstaande (minimale) ttt van een synchrone automaat.

(a) Zoek alle stabiele partities van deze ttt.

(b) Stel een toestandsassignatie voor (zelfs indien je het vorig punt niet naar be-horen hebt opgelost).

(c) Ontwerp een circuit met behulp van poorten en flankgestuurde geheugencel-len dat het gewenste gedrag vertoont.

0 1A A EB B FC C GD D HE B FF C GG D HH A E

8. Her-realiseer het circuit van figuur 7.23 op een zo economisch mogelijke manier, enteken het resulterend schema. Probeer een zo economisch mogelijke oplossing tevinden, maar gedenk dat correctheid gaat boven economie.

9. Beschouw het taknetwerk uit figuur 7.24.

239

Page 244: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 7.23: Te verbeteren netwerk

(a) Welke functies f0, . . . , fn berekent dit netwerk voor n variabelen xi? Hoegroeit het netwerk met n?

(b) Realiseer dezelfde functies als serie-parallelnetwerken van schakelaars. Hoegroeit de complexiteit van deze netwerken met n?

(c) Realiseer dezelfde functies als minimale 2-niveau poortnetwerken, en beant-woord dezelfde vraag als onder (b).

(d) Realiseer de functies als een meerlaags poortnetwerk waarvan de groei min-der snel is dan het netwerk uit (c). Hoe groot is deze groei? Hoe snel ishet netwerk? (Hint: gebruik als primitief element de 2-naar-1 multiplexery = x1 · x′ + x2 · x.)

10. Ontwerp een synchroon circuit met een input X en een output Y dat bij een serieeltoegevoerd 2-bitgetal, 3 optelt. De getallen worden in groepen van 3 bit toegevoerd,minstbeduidend bit eerst, en hoogste bit op 0. De output moet eveneens naar buitenkomen met het minstbeduidend bit eerst, dat verschijnt wanneer het middelste bitaangelegd wordt aan de input:

X: a0 a1 0 b0 b1 0 ...

Y: 0 c0 c1 c2 d0 d1 ...

Zorg ervoor dat uw realisatie – naast correct – zo economisch mogelijk is.

240

Page 245: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur 7.24: Te analyseren taknetwerk

11. Ontwerp een synchroon circuit met twee inputs X en Y , een output Z. Dit circuitmoet het verschil uitrekenen van twee binaire getallen (Z = X − Y ) die bit per bitaangeboden worden, het minst beduidend bit eerst (figuur 5.20–vraag 2).

Zorg ervoor dat uw realisatie – naast correct – zo economisch mogelijk is, en gebruiksteeds methoden uit de cursus in de diverse stadia van het ontwerp. Gedenk datcorrectheid gaat boven economie. Vergeet het circuit niet te tekenen.

12. (LRU-schakeling) Ontwerp een synchroon circuit met twee inputs X, Y en drie out-puts U, V,W dat de LRU-ordening bijhoudt van drie gebeurtenissen A,B, C. Deinputs encoderen de drie mutueel exclusieve gebeurtenissen A,B, C, als volgt:

X, Y =

(0, 1), als A optreedt(1, 1), als B optreedt(1, 0), als C optreedt(0, 0), als geen van de drie optreedt

Bits U, V moeten aangeven welk van de drie gebeurtenissen het meest recentelijk isopgetreden; bit W geeft aan of de overige gebeurtenissen in lexicale volgorde opge-treden zijn of niet. Bijvoorbeeld, men zou kunnen kiezen (keuze is niet eenduidigbepaald):

UV W volgorde (van meest recent naar minst recent)000 ABC

001 ACB

110 BAC

111 BCA

100 CAB

101 CBA

Wanneer een signaal (nog) niet is opgetreden nemen wij aan dat de lexicografischeorde geldt, dus bij het opstarten geldt de output 000. Hints: stel een transitiedia-gram op waarop je de TTT baseert, en probeer de minimalisatiestap overbodig te

241

Page 246: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

maken. Als je de partitiemethode zou gebruiken voor toestandsassignatie, probeerdan niet de volledige tralie op te stellen. Je kan goede assignaties vinden op basisvan de minimale partities. Gebruik, om het schrijfwerk te beperken, Karnaugh-kaartjes en afzonderlijke minimalisatie.

242

Page 247: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bijlage A

Concrete representatievormen voordigitale systemen

Wil men de computer gebruiken bij het ontwerp en de realisatie van com-plexe digitale systemen, dan heeft men computerleesbare representaties no-dig van de diverse aspecten die de systemen in opbouw kenmerken, en diewij in de vorige hoofdstukken geıdentificeerd hebben. Deze appendix be-spreekt de eigenschappen van enkele historische en hedendaagse beschrij-vingsvormen.

Er bestaat een grote diversiteit in de concrete representatievormen vande aspecten van digitale systemen. Men kan hierin een zekere systematiekcreeren door gebruik te maken van de terminologie gehanteerd in het Gajski-diagram: het onderscheid tussen gedrag, logische structuur en fysische struc-tuur; en het onderscheid in beschrijvingsniveau (van systeemniveau tot cir-cuitniveau).

Een bijkomend punt van onderscheid is de aard van de beschrijving: gra-fisch of tekstueel. Onze behandeling zal gestructureerd zijn op het laatsteaspect. Wij zullen slechts enkele systemen beschrijven van de zeer veel be-staande systemen; wij streven dus geenszins een vorm van volledigheid na.

In dit hoofdstuk zullen wij wat tijd spenderen aan een van de belangrijkstehedendaage systeemrepresentaties: beschrijvingen in VHDL. Wij zullen deessenties van deze systeembeschrijvingstaal toelichten, en enkele voorbeel-den geven van typische representatiestijlen.

A.1 Tekstuele vormen

Goede beschrijvingssystemen voor digitale systemen zouden in staat moeten zijn alleaspecten van een systeem te representeren, en dit op het gewenste niveau van detail.Bovendien zouden zij een aantal bijkomende eigenschappen moeten hebben: zij zoudeneen stevige, ondubbelzinnige formele definitie moeten hebben, zodanig dat automatischeverificatie en bewijsvoering mogelijk wordt. Voorts zou het beschrijvingssysteem eengrote expressiviteit moeten hebben, om de rijkheid van aspecten die digitale systemenkenmerken, tot uiting te brengen. Zij zouden idealiter zowel declaratieve als proceduralestijlen moeten ondersteunen, en de mogelijkheid moeten bieden om de notie tijd in zijndiverse verschijningsvormen te representeren.

243

Page 248: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Een belangrijk aspect hierin is de uitdrukking van het intrinsiek parallellisme dat aan-wezig is in digitale systemen, en de expliciete aanwezigheid van de tijd in de beschrijvingvan hun werking. Wanneer men beschrijvingssysteem wil inspireren op bestaande pro-grammeertalen, merkt men op dat precies deze aspecten afwezig zijn. Het gebruik van eenprogrammeertaal voor de beschrijving van digitale systemen op een voldoend algemenemanier vereist dus steevast uitbreidingen van de taal om de specifieke eigenheden vandigitale systemen te kunnen beschrijven. Zo zijn er uitbreidingen gedefinieerd van APL(AHPL), C, Pascal, en vele andere talen. Wij zullen nu enkele tekstuele representatiespresenteren, waarvan de eerste van historische betekenis is omdat zij diverse conceptenheeft aangebracht die men terugvindt in de hedendaagse talen zoals VHDL.

A.1.1 ISPS

ISPS (van Instruction Set Processing System) is, zoals gezegd, een oudere notatie dienu niet meer gebruikt wordt1. Zij werd speciaal uitgedacht om het gedrag van com-puters of onderdelen van computers te beschrijven op machineniveau, in het bijzonderde uitvoering van machine-instructies. Dit is het niveau dat in de Gajski-terminologiehet RT-niveau genoemd wordt. ISPS is in het verleden dikwijls gebruikt om de preciezebetekenis van de instructieset van diverse computers te beschrijven; deze beschrijvingenhadden het belangrijk voordeel van compact en ondubbelzinnig te zijn, wat niet het gevalis met de traditionele verbale beschrijvingen die men gewoonlijk vindt in de databoekendie een processor beschrijven.

Een typische ISPS-beschrijving van de uitvoering van instructies bestond uit een drie-tal delen: (1) de declaratie van het geheugenmodel van de machine, waarin de proces-sorregisters beschreven werden, alsook het extern geheugen; (2) de declaratie van hetinstructieformaat en de effectieve-adresberekening, en (3) de eigenlijke interpretatievelus.

Typische beschrijvingen van een computerarchitectuur in ISPS zijn ettelijke bladzij-den lang2; diverse voorbeelden ervan vindt men in [Siewiorek82] en [Bell71]. Om tocheen idee te kunnen geven van hoe een ISPS-beschrijving eruit ziet, beschouwen wij hetvoorbeeld van een AM2909 sequencer, een component die gebruikt werd bij de bouw vangemicroprogrammeerde architecturen. Figuur A.1 geeft een (grafisch) structuurbeeld opRT-niveau van deze component, terwijl fig. A.2 een gedragsbeschrijving op RT-niveaugeeft.

Een ISPS-beschrijving lijkt sterk op een ‘gewoon’ programma. Nochtans zijn er enkelebelangrijke verschillen met de courante semantiek van programmeertalen.

• Zo bemerkt men het sleutelwoord next. Dit woord duidt erop dat de statementsdie het scheidt na elkaar uitgevoerd worden; zonder dit sleutelwoord wordt veron-dersteld dat de statements in gelijk welke volgorde, dus ook tegelijkertijd, kunnenuitgevoerd worden. Noteer dat dit een uiting is van het onderliggend parallellismein de werking van de beschreven hardware.

• Een tweede verschilpunt met programmeertalen zijn de datatypes. Het meest-ge-bruikte datatype in ISPS-beschrijvingen is de bitrij, aangegeven met de haakjes <

en >. Indexeringen in een bitrij of het extraheren van een veld worden genoteerd

1Hoewel een zoektoch op het WWW met de vraag ”+ISPS -internet +language +simulator”nog heel watoplevert!

2Maar veel korter dan de traditionele beschrijvingen die men vindt in databoeken...

244

Page 249: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur A.1: De (logische) structuur van de AM2909 Sequencer (RT-niveau)

245

Page 250: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

AM2909 :=begin

! ISPS description of AMD AM2909 bit slice microprogram sequencer.

**PC.State**uPC<3:0> := incr<3:0>, ! microprogram counterREG<3:0>, ! Address RegisterSP<1:0>, ! Stack PointerSTACK[0:3]<3:0> ! Stack Register File

**External.State**Cn<>, ! Carry inCn4<> := incr<4>, ! Cary outD<3:0>, ! Direct inputsFE<>, ! Stack Register File EnableOE<>, ! Output Enable Control LineOR.<3:0>, ! Logical OR inputsPUP<>, ! Push/Pop Control LineR<3:0>, ! Address Register InputsRE<>, ! Register Enable ControlS<1:0>, ! Address select control LinesZERO<>, ! Zero-out control line

**Implementation.Variables**incr<4:0>, ! Incrementormacro z := |’1111|, ! High Impedance constant

**Operation.Cycle**usstart(main) :=

beginOE = FE = 0;RE = ZERO = 1 next

run := ! Basic Operation LoopbeginY() next ! put out selected addressIf not FE => ! Perform any stack operations

beginDECODE PUP =>

begin’0\pop := (SP = SP -1)’1\push := (SP = SP +1 next

STACK[SP] = uPC)end

end nextIf not RE => REG <- R; ! Load register if enabledincr = uPC + Cn next ! Increment PCRESTART runend

end.

**Adress.Source.Selection**usY()<3:0> :=

beginDECODE ZERO @ OE => ! @ denotes concatenation

begin’00 := Y = uPC = ’0000,

[’01,’11] := Y = z,’10 := DECODE S =>

begin’00 := Y = uPC = uPC or OR.,’01 := Y = uPC = REG or OR.,’10 := Y = uPC = STACK[SP] or OR.,’11 := Y = uPC = D or OR.end

endend,

end ! OF AM2909 description

Figuur A.2: De ISPS-beschrijving van de AM2909 sequencer

246

Page 251: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

door middel van een getallenpaar, bv. <1:4>. Natuurlijke getallen kunnen wor-den gerepresenteerd in binaire (’1100), octale (#14), decimale (12) of hexadecimalenotatie ("C). Bijkomende interpretatie wordt gegeven door wijzigingstekens zoalsus, wat staat voor unsigned. Geheugenstructuren, dit zijn regelmatige structurenvan bitrijen, worden aangegeven met de rechte haakjes [ ].

• ISPS-beschrijvingen waren uitvoerbaar. Via een simulatie kon men hierdoor een goedidee krijgen over de aard en de prestaties van een instructieset, of kon men een teontwerpen systeem op RT-niveau simuleren. Merk op dat echter nergens spraak isvan tijdswaarden: het model was zeker geen compleet model dat het gedetailleerdetijdsgedrag weergeeft.

A.1.2 ABEL, ALTERA

Voor de programmering van programmeerbare standaardcomponenten werden er pro-grammeeromgevingen opgezet door de fabrikanten van deze componenten. Deze om-gevingen bevatten tekstuele beschrijvingstalen die de ontwerper in staat stellen het ge-wenste gedrag van de component te beschrijven. Gezien de aard van de componentensitueren de beschrijvingen zich essentieel op logisch niveau. De talen bevatten dus ondermeer technieken om Boolese functies en eindige automaten op een concrete manier tedenoteren. Deze talen bestaan reeds geruime tijd, maar worden nog steeds gebruikt voorhet programmeren van kleinere programmeerbare componenten.3

Evenmin als ISPS bevatten deze modellen een concreet tijdsmodel van het gedrag.Het tijdsaspect van het gedrag wordt bepaald door de component zelf, en door de fre-quentie van het (extern aangelegde) kloksignaal in het geval van synchrone automaten.Deze talen bevatten wel mogelijkheden om partiele functies voor te stellen, door par-tiele opgave van een waarheidstabel. Bovendien kunnen irrelevante inputs of outputsvoorgesteld worden door het symbool .X. in ABEL, en afgeschakelde outputs door hetsymbool .Z..

Een beschrijving bevat, naast het pure gedrag, ook informatie over de componentwaarin het gedrag moet gerealiseerd worden, alsmede de plaatsing van inputs en out-puts op de pinnen van deze component. Dit gedeelte van de beschrijving is duidelijkstructurele informatie (‘technology mapping’). Bovendien kan de ontwerper, naast de be-schrijving van het gedrag door middel van Boolese functies of eindige automaten, eentweede (partiele) beschrijving geven van het gedrag, onder de vorm van een rechtstreek-se opgave van het verband tussen inputs en outputs voor een beperkt stel inputs (eensequentie voor automaten). Deze tweede beschrijving, de testvectoren, kan gebruikt wor-den als een validatie van de eerste beschrijving, en tevens als testinformatie om te zien ofde component, na de programmering, correct functioneert.

Wij zullen een en ander illustreren aan de hand van twee korte voorbeelden in ABEL.Het eerste voorbeeld is een louter combinatorische functie: een multiplexer die drie groe-pen (a3,a2,a1,a0), (b3,b2,b1,b0) en (c3,c2,c1,c0) van vier bits multiplexeert naar 4bits (y3,y2,y1,y0) onder controle van de selectielijnen (s1,s0). De beschrijving begintmet een identificatie van de functie, de ontwerper(s) en de datum. Nadien volgen de-claraties van de te gebruiken component, de signaalnamen en hun associatie met pinnenvan het IC, en veelgebruikte constanten. Noteer dat men de mogelijkheid heeft om geor-

3Een definitie van de syntaxis van Abel vindt men bv. op http://www.ee.upenn.edu/rca/software/abel/abel.primer.html

247

Page 252: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

module mux12t4title ’12 to 4 multiplexer 24 Feb 1984Charles Olivier & Dave Pellerin Data I/O Corp.’

"declarationsIC1 device ’P14H4’;

a0,a1,a2,a3 pin 1,2,3,4;b0,b1,b2,b3 pin 5,6,7,8;c0,c1,c2,c3 pin 9,11,12,13;

"define select inputs

s1,s0 pin 18,19

"define output

y0,y1,y2,y3 pin 14,15,16,17;

H = [1,1,1,1];L = [0,0,0,0];X = [.X.,.X.,.X.,.X.];Select = [s1,s0];y = [y3,y2,y1,y0];a = [a3,a2,a1,a0];b = [b3,b2,b1,b0];c = [c3,c2,c1,c0];

equations

y = (select == 0) & a #(select == 1) & b #(select == 2) & c #(select == 3) & c;

test_vectors ([select, a, b, c] -> y)[0 , 1, X, X] -> 1;[0 ,10, X, X] ->10;[0 , 5, X, X] -> 5;

[1 , H, 3, H] -> 3;[1 ,10, 7, H] -> 7;[1 , L,15, L] ->15;

[2 , L, L, 8] -> 8;[2 , H, H, 9] -> 9;[2 , L, L, 1] -> 1;

[3 , H, H, 0] -> 0;[3 , L, L, 9] -> 9;[3 , H, L, 0] -> 0;

end mux12t4

Figuur A.3: Een 12-naar-4 multiplexer in ABEL v2.0. Nu is men toe aan ABEL v7.0 – zie bv.http://www.synario.com

dende rijen van symbolen of signalen een korte naam te geven. De Boolese vergelijkingenzelf zijn vergelijkingen in deze namen, waarbij de logische operatoren == (gelijkheid, met(x == y) = xy + x′y′), ! (niet), & (en) en # (of) uitgebreid worden tot bitrijen.

Het tweede voorbeeld betreft een synchrone decimale op/neerteller (figuur A.4). Weervolgt het bovenstaande stramien, maar het gedrag wordt nu beschreven door een tek-stuele representatie van een toestandstransitiediagram. De 10 toestanden krijgen eensymbolische naam, en van elke toestand wordt gezegd welke toestand erop volgt bij devolgende klokflank, afhankelijk van het Mode-signaal.

De programmeeromgeving bevat een compiler, die de ingegeven beschrijving opti-maliseert (logische minimalisatie), en afbeeldt op een interne configuratie van de com-ponent. Deze configuratie wordt gesimuleerd op basis van de meegegeven testvectoren.Op die manier gebeurt een gedeeltelijke validatie van de beschrijving. Verder wordt een

248

Page 253: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

module count10 flag ’-r3’title ’decimal Up/Down counter with Synchronous ClearMichael Holley Data I/O Corp 24 Febr 1984’

uc3 device ’P16R4’

Clk,Clr,Dir,OE pin 1,2,3,11Q3,Q2,Q1,Q0 pin 14,15,16,17

Cl,X,Z = .C., .X., .Z.

" Counter StatesS0 = ^b1111; S4 = ^b1011; S8 = ^b0111;S1 = ^b1110; S5 = ^b1010; S9 = ^b0110;S2 = ^b1101; S6 = ^b1001;S2 = ^b1100; S7 = ^b1000;

" Counter ModesMode = [Clr,Dir];Up = [ 1 , 1 ];Down = [ 1 , 0 ];Clear = [ 0 , X ];

test_vectors ( [Clk, OE, Mode ] -> [Q3,Q2,Q1,Q0])[ Ck, 0, Clear] -> S0;[ Ck, 0, Up] -> S1;[ Ck, 0, Up] -> S2;[ Ck, 0, Up] -> S3;[ Ck, 0, Up] -> S4;[ Ck, 0, Up] -> S5;[ Ck, 0, Up] -> S6;[ Ck, 0, Up] -> S7;[ Ck, 0, Up] -> S8;[ Ck, 0, Up] -> S9;[ Ck, 0, Up] -> S0;[ Ck, 0, Up] -> S1;[ Ck, 0, Down] -> S0;[ Ck, 0, Down] -> S9;[ Ck, 1, Down] -> Z;[ Ck, 0, Down] -> S7;[ Ck, 0, Clear] -> S0;

state_diagram [Q3,Q2,Q1,Q0]

State S0: Case (Mode == Up) : S1;(Mode == Down) : S9;(Mode == Clear): S0;

endcase;

State S1: Case (Mode == Up) : S2;(Mode == Down) : S0;(Mode == Clear): S0;

endcase;

State S2: Case (Mode == Up) : S3;(Mode == Down) : S1;(Mode == Clear): S0;

endcase;

Figuur A.4: Een synchrone decimale op/neerteller in ABEL v2.0

bestand gegenereerd dat de configuratie-informatie bevat. Met dit bestand (in feite eenstructuurbeschrijving, gedeeltelijk op fysisch niveau) kan de chip geprogrammeerd wor-den.

A.1.3 VHDL

De afkorting VHDL komt van ‘Very high speed integrated circuits Hardware DescriptionLanguage’. Deze taal kwam tot leven in het begin van de jaren 80. Sindsdien (1987) werdzij aanvaard als een standaard (IEEE 1076), en is nu in snel tempo bezig de vele ad hochardware-beschrijvingstalen te verdringen. Zij heeft sinds haar introductie in 1987 al

249

Page 254: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

State S3: Case (Mode == Up) : S4;(Mode == Down) : S2;(Mode == Clear): S0;

endcase;

State S4: Case (Mode == Up) : S5;(Mode == Down) : S3;(Mode == Clear): S0;

endcase;

State S5: Case (Mode == Up) : S6;(Mode == Down) : S4;(Mode == Clear): S0;

endcase;

State S6: Case (Mode == Up) : S7;(Mode == Down) : S5;(Mode == Clear): S0;

endcase;

State S7: Case (Mode == Up) : S8;(Mode == Down) : S6;(Mode == Clear): S0;

endcase;

State S8: Case (Mode == Up) : S9;(Mode == Down) : S7;(Mode == Clear): S0;

endcase;

State S9: Case (Mode == Up) : S0;(Mode == Down) : S8;(Mode == Clear): S0;

endcase;

end count10

Figuur A.5: Een synchrone decimale op/neerteller in ABEL v2.0 (vervolg)

diverse uitbreidingen ondergaan.VHDL is een taal gericht op de concrete representatie van een aantal aspecten van

digitale systemen, en dit op een aantal hierarchische beschrijvingsniveaus. Zij bevat duseen aantal voorzieningen die specifiek zijn voor deze taak:

• de mogelijkheid om diverse vormen van parallellisme uit te drukken;

• de mogelijkheid om zowel gedragsbeschrijvingen als structuurbeschrijvingen te ge-ven;

• de mogelijkheid om een aantal voorwaarden uit te drukken waaraan signalen moe-ten voldoen voor een correcte werking;

• en de mogelijkheid om tot op zekere hoogte het tijdsgedrag van digitale systemente beschrijven.

De betekenis van een VHDL-beschrijving wordt impliciet gedefinieerd door een simu-lator, die in feite het programma uitvoert en daardoor een simulatie is van het te ontwer-pen circuit. Wij zullen nu wat dieper ingaan op enkele bijzondere aspecten van VHDL;dit is uiteraard niet voldoende om de taal te beheersen, en wij verwijzen de lezer metaandrang naar een complete definitie (zie bv. [Lipsett89]). Wij zullen onze besprekingbaseren op de beschrijving van een 74ls160-teller.

250

Page 255: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;

entity f160 isport (

clock: in STD_LOGIC;d: in STD_LOGIC_VECTOR (3 downto 0);en_P: in STD_LOGIC;en_T: in STD_LOGIC;load_b: in STD_LOGIC;clear_b: in STD_LOGIC;q: inout STD_LOGIC_VECTOR (3 downto 0);c_out: out STD_LOGIC

);end f160;

Figuur A.6: De entity-declaratie van de 74160 teller: grafisch en tekstueel

Structuur van een VHDL-beschrijving

Algemene Structuur. Een VHDL-beschrijving van een systeem(onderdeel) bestaat uittwee gedeelten: een entity-declaratie en een architecture-declaratie. De entity-de-claratie definieert in feite de externe verbindingen van het beschreven object. Alle ver-bindingen naar buiten zijn ports, en dragen een bepaald type. De richting van de infor-matiestroom wordt aangegeven (figuur A.6).

Een architecture-declaratie specificeert wat zich binnen het object bevindt. Bij eenenkele entity-declaratie kunnen er meerdere architecture-declaraties horen. Sommigedeclaraties specificeren gedrag, andere specificeren structuur. Een voorbeeld van een ar-

chitecture-declaratie die het gedrag van de teller specificeert vindt men in figuur A.7;een structurele beschrijving vindt men in figuur A.8. Noteer dat de regelnummers nietbehoren tot de VHDL-beschrijving, zij werden er enkel ter referentie bijgezet.Wij zullen onze verdere bespreking baseren op deze fragmentjes.

Datatypes. VHDL is een sterk getypeerde taal. Daar het de bedoeling is VHDL tegebruiken op diverse niveaus in de Gajski-hierarchie, verwondert het niet dat men eenruim assortiment datatypes vindt in VHDL. Op topniveau worden gedragsbeschrijvin-gen meestal gegeven onder de vorm van processen, procedures en algoritmen. De data-types die daar veel gebruikt worden zijn de numerieke types (integer, floating) en deenumeratietypes. Speciaal de enumeratietypes maken het mogelijk types te definierendie bruikbaar zijn op de lagere niveaus van de systeembeschrijving. Zo is de definitievan het datatype std ulogic (unresolved state system) in de standaard IEEE 1164 pack-

251

Page 256: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1 architecture gedrag of f160 is2 begin3 Teller:4 --Geeft een model van de correcte werking van de teller.5 --Er zijn geen voorzieningen om het gedrag bij verkeerd gebruik6 --te simuleren.7 process(clock, clear_b)8 begin9 if clear_b=’0’ then --asynchrone reset10 q <= "0000" after 20 ns;11 elsif clock’event and clock=’1’ then --stijgflank van de klok12 if load_b = ’0’ then --synchrone load13 q <= d after 20 ns;14 elsif (en_T and en_P)=’1’ then --teloperatie15 if q /= "1001" then16 q <= q + "1" after 20 ns;17 else18 q <= "0000" after 20 ns;19 end if;20 end if;21 end if;22 end process;2324 process(q,en_T) --carry-generatie op basis25 begin --van huidige toestand en en_T input26 c_out <= (q(0) and q(3) and en_T) after 3 ns; --(mealy output)27 end process;2829 -- *********************** asserties *****************************************30 --check klokbreedte31 assert clock’stable or (clock=’1’) or clock’delayed’stable(25ns)32 report "klokbreedte te klein"33 severity warning;34 --check setup35 assert clock’stable or (clock = ’0’) or d’stable(15 ns)36 report "Data setup niet gerespecteerd"37 severity warning;38 assert clock’stable or (clock = ’0’) or load_b’stable(25 ns)39 report "load setup niet gerespecteerd"40 severity warning;41 assert clock’stable or (clock = ’0’) or (en_P’stable(20 ns) and en_T’stable(20 ns))42 report "enable setup niet gerespecteerd"43 severity warning;44 --check breedte clearpuls45 assert clear_b’stable or (clear_b=’0’) or clear_b’delayed’stable(20 ns)46 report "clearbreedte te klein"47 severity warning;48 --check klokfrequentie49 process50 variable previous:time:=0 ns;51 begin52 wait until clock’event and (clock=’1’);53 previous := now;54 while true loop55 wait until clock’event and (clock=’1’);56 assert (now - previous)>40ns57 report "Klokfrequentie te hoog"58 severity warning;59 previous := now;60 end loop;61 end process;62 end gedrag;

Figuur A.7: Een gedragsspecificatie van de 74160 teller

252

Page 257: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1 architecture structuur of f160 is23 component jk4 port (5 clock : in std_logic;6 clear_b : in std_logic;7 l,e,d : in std_logic;8 q,q_b : inout std_logic9 );10 end component;11 signal load, cl, clk : std_logic;12 signal j, k, en, q_b : std_logic_Vector (0 to 3);1314 begin15 --interne controlesignalen16 load <= not load_b after 1 ns;17 clk <= not clock after 1 ns;18 cl <= clear_b after 2 ns;1920 --array van jk-flipflops met load/toggle logica21 g1:22 for M in 0 to 3 generate23 FF :jk port map ( clk, cl, load, en(M), d(M), q(M), q_b(M));24 end generate;2526 --enable en carry signaal27 en(0) <= (en_T and en_P) after 3 ns;28 en(1) <= (q(0) and en(0) and q_b(3)) after 3 ns;29 en(2) <= (q(1) and q(0) and en(0)) after 3 ns;30 en(3) <= (q(2) and q(1) and q(0) and en(0))31 or (q(0) and en(0) and q(3)) after 7 ns;32 c_out <= (q(0) and q(3) and en_T) after 3 ns;3334 end structuur;

Figuur A.8: Een structuurdefinitie van de 74160 teller

age als volgt:

type std_ulogic is

( ’U’, -- uninitialised

’X’, -- forcing unknown

’0’, -- strong 0

’1’, -- strong 1

’Z’, -- high impedance

’W’, -- weak unknown

’L’, -- weak 0

’H’, -- weak 1

’-’ ); -- don’t care

Deze definitie geeft een fijner zicht op een ‘digitaal signaal’ dan gebruikelijk; 9 niveausworden onderscheiden. Hiermee kan men o.a. vertragingen door capacitieve effecten re-latief nauwkeurig modelleren, en de effecten van een ‘sterke’ poort of schakelaar parallelaan een ‘zwakke poort’ of een businterconnectie. Een voorbeeld van het gebruik vandeze datatypes vindt men in de beschrijving van de werking van een open-collectorbus(figuur A.11).

De buslijn neemt een lage spanning aan wanneer tenminste een van de transistorsgeleidt; anders zorgt de weerstand R ervoor dat de buslijn hoog komt. Dit kunnen wijmodelleren door de weerstand permanent de waarde H te laten genereren; de transistorsgenereren 0 wanneer zij geleiden, en Z wanneer zij afgeknepen zijn.

253

Page 258: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

1 architecture gates of f160 is2 component jk3 port (4 clock : in std_logic;5 clear_b : in std_logic;6 l,e,d : in std_logic;7 q,q_b : inout std_logic8 );9 end component;1011 component inv12 port (13 inp : in std_logic;14 outp : out std_logic15 );16 end component;1718 component buf19 port (20 inp : in std_logic;21 outp : out std_logic22 );23 end component;242526 component and227 port (28 inp1 : in std_logic;29 inp2 : in std_logic;30 outp : out std_logic31 );32 end component;3334 component and335 port (36 inp1 : in std_logic;37 inp2 : in std_logic;38 inp3 : in std_logic;39 outp : out std_logic40 );41 end component;4243 component and444 port (45 inp1 : in std_logic;46 inp2 : in std_logic;47 inp3 : in std_logic;48 inp4 : in std_logic;49 outp : out std_logic50 );51 end component;5253 component or254 port (55 inp1 : in std_logic;56 inp2 : in std_logic;57 outp : out std_logic58 );59 end component;

Figuur A.9: Een fijnere structuurdefinitie van de 74160 teller; nu op poortniveau.

254

Page 259: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

6061 signal load, cl, clk, xx, yy : std_logic;62 signal j, k, en, q_b : std_logic_Vector (0 to 3);6364 begin65 --interne controlesignalen66 --cl <= clear_b after 2 ns;67 buf1: buf68 port map(clear_b,cl);6960 inv1 : inv70 port map(load_b, load);7172 inv2 : inv73 port map(clock, clk);7475 --array van jk-flipflops met load/toggle logica76 g1:77 for M in 0 to 3 generate78 FF :jk port map ( clk, cl, load, en(M), d(M), q(M), q_b(M));79 end generate;8081 --enable en carry signaal82 --en(0) <= (en_T and en_P) after 3 ns;83 anda: and284 port map(en_T,en_P,en(0));8586 --en(1) <= (q(0) and en(0) and q_b(3)) after 3 ns;87 andb: and388 port map(q(0),en(0),q_b(3),en(1));8990 --en(2) <= (q(1) and q(0) and en(0)) after 3 ns;91 andd: and392 port map(q(1),q(0),en(0),en(2));9394 --en(3) <= (q(2) and q(1) and q(0) and en(0))95 -- or (q(0) and en(0) and q(3)) after 7 ns;96 ande: and497 port map(q(2),q(1),q(0),en(0), xx);98 andf: and399 port map(q(0),en(0),q(3),yy);100 ora: or2101 port map(xx,yy,en(3));102103104 -- c_out <= (q(0) and q(3) and en_T) after 3 ns;105 andc: and3106 port map(q(0),q(3),en_T,c_out);107108109 end gates;

Figuur A.10: Een fijnere structuurdefinitie van de 74160 teller; nu op poortniveau – vervolg.

5 V

390 W

T1 T2 T3

Buslijn

R

Figuur A.11: De ingredienten van een open-collectorbus

255

Page 260: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Een resolutiefunctie (zie verder) combineert deze waarden tot de finale waarde op debuslijn. De sterke 0 domineert de H van de weerstand en de Z van de afgeschakeldetransistors. Wanneer echter alle transistors afgeknepen zijn, zal de zwakke H van deweerstand domineren over de Z-waarden.

VHDL geeft de ontwerper ook de mogelijkheid eenheden van fysische grootheden tedefinieren, waarbij aan een getaltype een eenheid geassocieerd wordt:

type time is range -(2**31-1) to (2**31-1)

units

fs; -- femtoseconden: de basiseenheid

ps = 1000 fs; -- picoseconden

ns = 1000 ps; -- nanoseconden

end units;

Ook dit is een uitbreiding t.o.v. traditionele programmeertalen. In VHDL kan men sa-mengestelde types definieren uit de basistypes. De constructoren zijn record en array,net zoals bij programmeertalen.

Variabelen en signals. VHDL kent, zoals gewone programmeertalen, ook objecten:4

constant, variable en signal. De betekenis van een constante of variabele in VHDLkomt overeen met deze in een programmeertaal. Variabelen kunnen gebruikt wordenom informatie op te slaan bij de uitvoering van algoritmen. Variabelen hebben echtergeen fysische interpretatie in het systeem dat beschreven wordt; het zijn louter internehulpmiddelen van de beschrijving zelf.

Sterk verschillend van programmeertalen is de definitie van signal. Een signal iseen model voor een verbinding tussen twee onderdelen van het beschreven systeem, enstelt de tijdsevolutie van een logische of fysische grootheid voor. Aan elk dergelijk signal

is een tijdsdimensie verbonden die de toekomstige evolutie van het signaal op het gede-finieerde signal beschrijft. Deze tijdsevolutie wordt opgeslagen in een structuur diemen een driver noemt voor het signaal: een lijst van gebeurtenissen, die de toekomsti-ge waarden van het signaal aangeven, en de tijdstippen waarop deze waarden zullenaangenomen worden.

De toekomstige evolutie van het signaal wordt bepaald door acties die nu plaatsvin-den (het heden, in gesimuleerde tijd5). Deze acties kunnen, na verloop van een zekeretijdsduur in gesimuleerde tijd (causaliteit), wijzigingen tot gevolg hebben in de waar-de die zal aangenomen worden door het signaal of door andere signalen. Bemerk hetverschil met een gewone variabele: bij een toewijzing aan een variabele (:=) komt het be-grip gesimuleerde tijd niet tussen. In de programmatekst die na de toewijzing komt kanmen veronderstellen dat de variabele de nieuwe waarde heeft aangenomen, terwijl degesimuleerde tijd niet is veranderd. Bij toewijzing aan een signaal (<=) krijgt het signaalslechts de waarde nadat de opgegeven gesimuleerde tijd verlopen is. Het statement nade toewijzing kan conceptueel gelijktijdig (in gesimuleerde tijd) uitgevoerd worden metde toewijzing, zodat het signaal daar nog zijn oude waarde moet hebben. De toewijzing

4”Object”niet te interpreteren in de object-georienteerde betekenis.5Wij zullen op verschillende plaatsen verwijzen naar begrippen zoals ’tijd’ en ’volgorde’. Het is voor

een goed begrip nuttig een duidelijk onderscheid te maken tussen de gesimuleerde tijd, dit is de tijd diede werking van het gesimuleerde circuit weergeeft, en de simulatietijd. Deze laatste is de tijd die verloopttijdens de simulatie, en die kenmerkend is voor de volgorde waarin de statements van de VHDL-beschrijvingworden uitgevoerd. Simulatietijd heeft tijdsduur nul in gesimuleerde tijd.

256

Page 261: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

q <= "0000" after 20 ns;

brengt het signaal q op de opgegeven waarde na 20 ns.

Attributen. Bepaalde objecten in VHDL, zoals bv. signalen, hebben bijkomende at-tributen. Dit zijn eigenschappen van het voorwerp die kunnen opgevraagd worden engebruikt in een VHDL-beschrijving. De syntaxis van een attribuut is

naam’attribuutnaam

waarin naam de naam is van het voorwerp, en attribuutnaam de naam van de eigen-schap die men wil kennen. Sommige attributen zijn ingebouwd, andere kunnen gedefi-nieerd worden door de gebruiker. Voorbeelden van attributen van signalen vindt menin fig. A.7. Bijvoorbeeld, de uitdrukking clock’event (regel 11) is waar wanneer er juisteen transitie waargenomen wordt op het signaal clock. De uitdrukking d’stable(15

ns) (regel 35) is waar wanneer het signaal d niet veranderde gedurende de laatste 15ns. Clock’delayed(25 ns) (regel 31) is een met 25 ns vertraagde versie van het signaalClock.

Gedragsmodellen in VHDL

In de declaratie van een architecture van een entity kan men het gedrag van de entiteitbeschrijven.

Parallellisme. De code-fragmenten die men op het bovenste syntactisch niveau plaatstin een architecture-declaratie worden geacht gelijktijdig uitgevoerd te worden. Voor-beelden van dergelijke fragmenten (samengestelde instructies) zijn o.m. processen, blok-ken, toewijzingen aan signalen en asserties. Binnen deze instructies kan men verdereverfijningen aanbrengen, ofwel opnieuw met gelijktijdige activiteiten (blokken of signaal-assignaties binnen blokken), ofwel met sequentiele acties met gesimuleerde tijdsduur 0(instructies binnen een proces). De keuze van de beschrijvingstechniek hangt zeer sterkaf van het beschrijvingsniveau.

Op systeemniveau gebruikt men het begrip proces. Een proces is in feite de uitvoeringvan een algoritme of procedure. Het is een lijst van instructies, die conceptueel na elkaaruitgevoerd zullen worden, maar waarvan de uitvoering geen gesimuleerde tijd vergt. Dezeinstructies gebeuren dus conceptueel op het zelfde ogenblik, maar in de neergeschrevenvolgorde (simulatietijd). De enige instructie die wel invloed kan hebben op het tijds-verloop in gesimuleerde tijd is de wait-instructie. Deze instructie schort de uitvoeringvan de erop volgende instructies op tot wanneer er aan een opgegeven voorwaarde vol-daan is. Dergelijke voorwaarden kunnen zijn het verloop van een opgegeven tijdsduur(gesimuleerde tijd), het optreden van een gebeurtenis, of het waar worden van een op-gegeven predikaat. Combinaties van deze voorwaarden zijn mogelijk (zie regel 55 vanfiguur A.7). Processen die naast elkaar in dezelfde architecture voorkomen wordenparallel uitgevoerd, zoals de procesbeschrijvingen op regels 7, 24 en 49. De asserties opregels 31, 35, 38, 41 en 45 worden gelijktijdig met de processen uitgevoerd. de assertie opregel 56 daarentegen, wordt uitgevoerd na de wait-instructie.

Processen kunnen in principe enkel communiceren via signalen, en niet via varia-belen.6 Variabelen mogen niet gemeenschappelijk gebruikt worden door meerdere pro-cessen. Processen kunnen een interne fijnstructuur hebben die sterke gelijkenis vertoont

6Er werden inmiddels uitbreidingen gedefinieerd van VHDL waarin dit wel mogelijk is.

257

Page 262: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

met programma’s in gewone programmeertalen. Gestructureerde iteraties (de while-lusop regel 54), subroutines en functies behoren tot de mogelijkheden. Dit soort van ge-dragsbeschrijving maakt het mogelijk complexe functies te beschrijven door middel vanalgoritmen of procedures. Zoals reeds eerder gezegd is deze beschrijving niet declaratief,maar ze heeft het grote voordeel uitvoerbaar te zijn in een zeer vroeg stadium van deformalisering.

Op logisch niveau worden vaak blokken en signaalassignaties gebruikt. Een blok iseen groepering van instructies die zelf ook gelijktijdig uitgevoerd worden, maar die en-kel geactiveerd worden wanneer aan een opgegeven voorwaarde voldaan is (dit is eensoort van triggervoorwaarde). Deze voorwaarde noemt men een guard, en wordt ver-meld bij de hoofding van het blok. Een typisch gebruik van blokken is bij de voorstellingvan eindige automaten: met elke toestand van de automaat kan men een blok laten over-eenstemmen waarvan de guard uitdrukt dat men in de toestand zit, en dat men dus deacties die horen bij deze toestand mag uitvoeren.

Voor de voorstelling van het gedrag van combinatorische netwerken maakt men vaakgebruik van concurrente signaalassignaties. Bijvoorbeeld, de werking van een enkelvou-dige EN-poort met inputs X en Y en output Z kan men beschrijven als

signal X,Y,Z : std_logic;

Z <= (X and Y) after 10 ns;

terwijl men een netwerk van poorten kan beschrijven door de gelijktijdige uitvoering vaneen aantal dergelijke instructies, een per poort. Een dergelijke beschrijving noemt meneen dataflowbeschrijving. Een gedeeltelijke dataflowbeschrijving vindt men in figuur A.8,regels 27 – 32.

Asserties. Asserties zijn instructies die testen of aan een bepaalde voorwaarde voldaanis, bijvoorbeeld of de timingvereisten van een gebruikte component niet overtreden wor-den. Wanneer dit wel gebeurt kan men tijdens de simulatie een foutbericht genereren,wat bijzonder handig is voor de validatie van een beschrijving. Figuur A.7 bevat diverseasserties die de timingvereisten van de teller voorstellen.

Resolutiefuncties. Aan een signaal kunnen maar waarden geassigneerd worden dooreen proces of parallel statement. Dit is een uiting van het feit dat men in een circuit out-puts van poorten zomaar niet kan verbinden met elkaar. Echter, de meeste digitale sys-temen gebruiken bussen, waarbij wel outputs gekoppeld worden. Om dit te modellerendefinieert men speciale signaaltypes, waaraan een resolutiefunctie geassocieerd is, de z.g.resolved types. De resolutiefunctie heeft als rol de signaalwaarden die door de verschillen-de bronnen aan een signaal tegelijkertijd toegewezen worden met elkaar te combinerentot een waarde. Sommige combinaties zijn legaal, bv. deze die maar een component ver-schillend van Z bevatten; andere, die twee sterke verschillende waarden bevatten zoalseen 0 en een 1, geven aanleiding tot fouten. Deze fouten kunnen gedetecteerd wordendoor de resolutiefunctie.

Een model van de tijd. Het tijdsaspect van een VHDL-representatie is al herhaalde-lijk aan bod gekomen. Gesimuleerde tijd wordt geassocieerd met wait-instructies en

258

Page 263: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

signaalassignaties die een expliciete vertraging meegeven. Alle andere instructies ken-nen hoogstens een volgorde(in de simulatietijd) maar geen tijdsduur (in de gesimuleerdetijd). Signaalassignments zonder expliciete tijdsvermelding worden beschouwd als niettijdsloos in de gesimuleerde tijd: er wordt aangenomen dat er een infinitesimale tijdsver-traging ∆ optreedt tussen het uitvoeren van de assignment en het beschikbaar komenvan de nieuwe waarde. Het berekenen van de nieuwe waarde gebeurt tijdsloos; de ge-assigneerde waarde is echter niet beschikbaar op het ogenblik van uitvoering (gesimu-leerde tijd). Functies en procedures – in zoverre zij geen wait-instructies bevatten – zijntijdsloos. Meerdere assignaties kunnen in een proces uitgevoerd worden op eenzelfdesignaal. Wanneer tussen twee opeenvolgende assignaties geen wait-instructie staat, dangebeuren de assignaties op hetzelfde ogenblik in gesimuleerde tijd, maar in de opgege-ven volgorde in simulatietijd. Dit wil zeggen: de rechterleden van de assignaties wordenin de volgorde voorgeschreven door de tekst geevalueerd. Het eindresultaat is dan af-hankelijk van deze volgorde, en het type vertraging dat met de assignatie geassocieerdis.

Bij de toewijzing aan signalen in VHDL kan men immers de twee modellen vantijdsvertraging gebruiken: inertiaal en transport. De inertiale mode is de verzuimwaar-de (default value); wil met het transportmodel gebruiken moet men het sleutelwoordtransport gebruiken.

Opeenvolgende toewijzingen binnen een proces aan hetzelfde signaal hebben betrek-king op dezelfde driver, en zullen elkaar dus beınvloeden. Een toewijzing die een sig-naalverandering zal teweegbrengen, zal alle latere veranderingen die al met het signaalgeassocieerd waren, wegvegen uit de driver. Evenzeer zal een verandering met een in-ertiaal delay alle voorgaande veranderingen ‘filteren’. Transities naar dezelfde waardeblijven behouden; wanneer in de driver al een transitie naar een andere waarde aanwe-zig is op een vroeger tijdstip (d.i. tussen het heden en na afloop van het opgegeven delay),dan moet deze transitie weggeveegd worden om te voldoen aan het inertiaalmodel (gadit na). Deze interacties kunnen zeer subtiel zijn, en voor meer detail wordt verwezennaar [Lipsett89].

Structuurmodellen in VHDL

Het resultaat van een synthese is een structuur die een samenstelling is van componen-ten met een meer primitief gedrag. Men kan deze structuur ook representeren in eenarchitecture (figuren A.8 en A.9). Een dergelijke beschrijving bestaat uit de interfa-cedefinitie van de componenten die men als primitieven gebruikt (waarvan het gedragelders ook in VHDL kan beschreven worden). Op regels 3 – 9 van figuur A.8 staat dedefinitie van de gebruikte flipflop. Dan worden een aantal interne signalen gedefinieerd(regels 11, 12) die zullen dienen om de geınstantieerde componenten te verbinden. Ten-slotte worden de instantieringen zelf neergeschreven, waarbij men op de plaats van decomponentpoorten nu de feitelijke verbindingssignalen invult (regels 21 – 24). De be-schrijving in figuur A.8 is niet zuiver structureel: de verbindingspoorten (EN-poorten eninvertoren) die de afzonderlijke flipflops van de teller verbinden worden door middelvan parallelle signaalassignaties voorgesteld (dataflow-model). Een zuiver structureledefinitie zou louter bestaan uit instantieringen (figuur A.9).

Repetitieve structuren kunnen elegant beschreven worden door iteratieve construc-ties zoals de generate-instructie (regel 22 in figuur A.8). Er zijn voorzieningen om struc-tuur- of componentdefinities in zekere mate generiek te maken, door ze te laten afhangen

259

Page 264: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

van parameters die pas ingevuld worden bij de instantiering van een component. Zois het bv. gemakkelijk een generiek register te definieren, zonder op voorhand de lengteervan op te geven. Een groot gedeelte van het gedrag van het register is immers onaf-hankelijk van de precieze lengte ervan. Dezelfde definitie kan dan gebruikt worden omverschillende instantieringen met verschillende lengte te maken.

A.2 Grafische beschrijvingsvormen

In de ingenieurswereld worden van oudsher grafische representaties gebruikt voor hetweergeven van de structuur of het gedrag van systemen. Denk maar aan constructie-tekeningen in de bouw of de werktuigkunde, aan diagrammen van regelsystemen, aanflowcharts van programma’s, aan grafische voorstellingen van sommige berekeningendoor dataflowgrafen, enz.

Ook bij de representatie van (sommige aspecten van) digitale systemen maakt mendikwijls gebruik van grafische notaties. Hiervan zijn elektrische schema’s, tijdsdiagram-men en toestandstransitiediagrammen courante voorbeelden. Initieel werden deze gra-fische voorstellingen vooral gebruikt als documentatiehulpmiddel, d.w.z. als drager vaninformatie voor de communicatie tussen mensen. Met de opkomst van computergesteun-de tekenpakketten echter, is men de grafische representaties ook machineleesbaar gaanmaken, waarbij men gedwongen werd een ondubbelzinnige interpretatie te hechten aaneen tekening. Deze tekening kon dan ook fungeren als inputmedium voor de computer,voor verdere computergesteunde behandeling van de ingevoerde informatie.

Wij zullen – even onvolledig als bij de tekstuele vormen – een korte beschrijving ge-ven van enkele grafische representaties die werden of worden gebruikt bij het ontwerpvan digitale systemen. Het eerste voorbeeld, PMS, is van historische betekenis7; de tweeandere voorbeelden zijn nog zeer actueel.

A.2.1 PMS

PMS, van Processor/Memory/Switch, is een grafische representatie uitgedacht voor devoorstelling van de structuur van computersystemen. Het niveau waarop dit gebeurdewas het niveau van grote systeemonderdelen, zoals de CVE, het geheugen, de bussen,de controllers en randapparaten, enz. Dit niveau wordt conventioneel het PMS-niveaugenoemd, en komt in de Gajski-terminologie overeen met het algoritmisch niveau en/ofhet systeemniveau. Een PMS-diagram geeft de topologie weer van de interconnectie vandeze systeemonderdelen. Elk onderdeel heeft een rechthoekige vorm, en wordt geanno-teerd met tekst. Gestandaardiseerde termen zijn:

P een processor. De centrale verwerkingseenheid wordt Pc genoteerd;

S een ‘switch’, een interconnectiestructuur zoals bv. een bus;

K een controller, een adaptor voor een randapparaat;

M een geheugen;

T een transducer, een omzetter van informatie, bv. een drukker.7Een korte zoektocht op het Internet leert echter dat de term PMS nog vaak gebruikt wordt wanneer

over computers of digitale systemen gesproken wordt, en dat sommige auteurs de notatie tot op vandaaggebruiken, zie bv. http://www.rulabinsky.com/cavd/.

260

Page 265: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

M.dcs[Diagnostic ControlStore; 1Kw; 96 b/w]

P.c

P.console

K

M[Floppy Disk]

S

T[Console Teletype]

K.Memory M[128 Kbyte;MOS; ECC]

M

K.uba S.unibus K M.Disk

K M.Tape

K T

K.mba S.Massbus K M.Disk

K M.Tape

M.Cache[8 Kbyte]

Notes1. P.c[0-5 addresses/instruction; technology: TTL MSI; options: floating point accelerator]2. K.uba['Unibus Adaptor; 1.5 Mbyte/s]3. K.mba['Massbus Adaptor; 2.0 Mbyte/s]4. P.console['LSI-11; technology NMOS LSI]

1

2

3

4

Figuur A.12: Een voorbeeld van PMS: de structuur van de VAX-11/780 minicomputer

Bij elk van deze notaties kan men een aantal attributen opgeven die de voornaamste ken-merken van het element kwantificeren. Zo geeft men bij geheugens bv. de afmetingen open de technologie waaruit ze gemaakt zijn; bij bussen wordt bv. de bandbreedte aange-geven, enz.

Als voorbeeld verwijzen wij naar figuur A.12, waar een sterk vereenvoudigd dia-gram van de VAX-11/780 minicomputer weergegeven wordt. Bemerk dat men uit dezefiguur snel kan afleiden wat er aanwezig is in het systeem, en hoe de diverse onderde-len met elkaar gekoppeld zijn. Dit is o.a. nuttig voor het beschrijven van een configu-ratie, om hieruit een misschien ruwe idee te krijgen van de prestaties van de installatie.PMS-diagrammen geven echter maar een klein gedeelte van de totale informatie weer, en

261

Page 266: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

aangezien zij niet machineverwerkbaar zijn is hun rol feitelijk beperkt tot documentatie-hulpmiddel. In deze rol is de PMS-notatie intensief gebruikt geweest bij de vergelijkendestudie van computersystemen ([Siewiorek82, Bell71]).

A.2.2 Tijdsdiagrammen

Tijdsdiagrammen zijn een grafische representatie van een gedragsaspect van digitale sys-temen op lagere niveaus zoals het logisch niveau en het RT-niveau. Tijdsdiagrammenworden gelijktijdig gebruikt voor twee doelen:

1. voor de weergave van de snelheid en het dynamisch gedrag van digitale circuits;

2. voor de weergave van de temporele vereisten waaraan de inputs van een circuitmoeten voldoen opdat dit circuit zich zou gedragen volgens zijn logisch model.

Beide aspecten worden door elkaar op dezelfde figuur en met gelijkaardige notationeletechnieken weergegeven. Dit betekent dat, naargelang het gaat over een input of overeen output, een gegeven grafisch symbool een verschillende interpretatie kan hebben.

Wij kunnen dit best illustreren aan de hand van een voorbeeld (figuur A.13). Menonderscheidt hier de volgende notaties:

• Een lijn bovenaan, een lijn in het midden, een lijn onderaan. In dit geval gaat hetom een signaal dat niet verandert op het aangegeven ogenblik, op resp. hoog ni-veau, met hoge impedantie (afgeschakeld of zwevend), op laag niveau. Voor eenoutput is dit de situatie die gerealiseerd wordt door het circuit; voor een input is hetde situatie die door de omgeving van het circuit moet gerealiseerd worden (eenvereiste).

• Twee of meer lijnen boven elkaar. Dit denoteert weer een stabiele situatie, die ech-ter niet nader bepaald is (alle getekende niveaus kunnen voorkomen). Het onder-scheid tussen inputs en outputs is zoals hierboven.

• Een gearceerd gebied in opgaande richting, in neergaande richting of gekruist. Ditduidt op de aanwezigheid van overgangen op de manier gesuggereerd door dearcering. Voor een output betekent dit dat de output kan veranderen, voor eeninput dat hij mag veranderen. Wanneer de arcering vertrekt van een lijn in hetmidden gaat het over een overgang van of naar een afgeschakeld niveau.

Voorts wordt een tijdsdiagram aangevuld met horizontale pijlen die karakteristieke tijds-duren aangeven. Deze intervallen hebben een naam, en worden vaak gekenmerkt doordrie getallen: een minimumwaarde, een typische waarde en een maximumwaarde. Dezewaarden worden meestal aangegeven in een tabel die de grafische representatie verge-zelt. Ook worden er in een tijdsdiagram soms pijlen getekend tussen de diverse ‘sporen’.Deze pijlen geven causale verbanden aan tussen signaalovergangen.

Veel simulatiepakketten voor digitale systemen, en ook sommige implementaties vanVHDL, presenteren de resultaten onder een grafische vorm die veel gelijkenis vertoontmet de hierboven beschreven notatie. Recentelijk zijn er ook softwarepakketten op demarkt gebracht (bv. Chronology’s Timing Designer) die het mogelijk maken de informatievervat in een tijdsdiagram op systematische manier in te voeren, grafisch te represen-teren, en een aantal elementaire verificatiestappen erop uit te voeren. Gegevensbladenvan componenten bevatten steevast een aantal tijdsdiagrammen die de werking van de

262

Page 267: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur A.13: Een voorbeeld van een timingdiagram: specificatie van een geheugenchip

component (gedeeltelijk) specificeren. Dergelijke diagrammen kunnen een groot aantalsporen bevatten, en daardoor zeer complex worden.

A.2.3 Schema-editors

Heel wat omgevingen voor digitaal ontwerp bevatten een of andere vorm van schema-invoer, die de ontwerper in staat stelt een aspect van het systeem dat hij aan het ontwer-pen is, grafisch te beschrijven. Voorbeelden van dergelijke systemen zijn Pspice, OrCad,UltiCap, de schematic entry-vormen van programmeeromgevingen voor programmeerba-re componenten, zoals XACT en ALTERA, of VLSI-omgevingen zoals Cadence, MentorGraphics, enz.

Andere systemen, zoals synthesepakketten die vertrekken van een tekstuele gedrags-beschrijving, genereren automatisch een grafische structurele representatie (bv. de syn-these vanuit VHDL in de Mentor Graphics-omgeving of vanuit Synopsys).

Schema’s (logic diagrams) zijn in essentie representaties van de logische structuur vanhet systeem. Goede schema-editors worden gekenmerkt door een aantal eigenschappen,zoals

• De aanwezigheid van uitgebreide bibliotheken. Deze bibliotheken bevatten de pri-mitieve componenten waaruit een te ontwerpen systeem kan samengesteld wor-den. De bibliotheek bevat minstens de grafische representatie van de component,met aanduiding van de verbindingspunten met hun eigenschappen (bv. input, out-put, bus, ...). Wanneer deze beschrijving aangevuld wordt met een (onzichtbare)beschrijving van het gedrag van de component, kan men van correcte en zinvolleschema’s het gedrag bepalen op basis van het gedrag van de primitieven en huninterconnectie. Dit maakt het mogelijk een simulator te schrijven, die dan kan ge-bruikt worden bij de validatie van het getekende schema.

• De aanwezigheid van een middel om hierarchie uit te drukken. Hiermee bedoelenwij de mogelijkheid om in een schema bepaalde blokken aan te brengen zonder

263

Page 268: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

interne fijnstructuur, maar die geen bibliotheekcomponenten zijn. Deze blokkenzijn in feite aparte schema’s, die gekoppeld worden met het topschema waar zijgebruikt worden. Het gebruik van hierarchie stelt ons in staat heel complexe sys-temen grafisch te representeren op een zeer efficiente, leesbare manier. Het maakthet ook mogelijk systemen te beschrijven op een brede waaier van hierarchischeniveaus, vanaf het logisch poortniveau tot het systeemniveau.

• De aanwezigheid van een verificatiehulpmiddel, dat minstens de syntactische cor-rectheid van de tekening kan nagaan. Regels die kunnen nagegaan worden zijn o.a.de afwezigheid van kortsluitingen (verbindingen van outputs die niet mogen ver-bonden worden), fanout-overtredingen, en de verbinding van alle inputs. (Opengelaten inputs, zelfs indien logisch onschadelijk, kunnen bij sommige technolo-gieen voor problemen zorgen in reele systemen.)

• Een goed uitgedachte gebruikersinterface, die het tekenen van schema’s tot eenvalabel alternatief kan maken van tekstuele invoer. Typische eisen die men daarkan stellen zijn o.a. een goede roosterfunctionaliteit (grid snap), het meeslepen vanverbindingen bij verplaatsingen (line drag), het automatisch schikken van de com-ponenten op het blad (pretty printing), en hulp bij repetitieve operaties, zoals hetnummeren van verbindingen aan bussen, het plaatsen van groepen van compo-nenten, enz.

Schema’s zijn uitstekende representaties van de structuur van een systeem. Zij gevensnel een inzicht in de interconnectie (en daardoor in de werking) van het systeem, althansvoor een persoon die vertrouwd is met de gebruikte bouwstenen.

Schema’s van systemen die met discrete bouwblokken gemaakt worden zijn boven-dien een gedeeltelijke representatie van de fysische structuur. Vaak zal men, nadat hetcircuit gerealiseerd werd, het schema annoteren met bijkomende informatie, zoals de ef-fectieve allocatie van poorten aan chips, pinnummers van verbindingen, en de plaatsingvan de chips op het bord volgens een coordinaatsysteem op het bord. Deze informatie isessentieel voor de persoon die testen of reparaties uitvoert op het systeem.

Goedgetekende schema’s zijn een vertrekpunt voor verdere automatische verwer-king. Uit een schema wordt een net list geextraheerd. Een net is een lijst van puntendie met elkaar verbonden moeten worden. Deze netlijst wordt dan gebruikt als invoervoor programma’s gebruikt voor het ontwerp van de fysische structuur van het systeem(Floorplanners, Autorouters).

A.3 Beschrijvingen van fysische structuur

Ook voor het ontwerp van de fysische structuur van systemen bestaan er beschrijvingenen computergesteunde omgevingen die deze beschrijvingen kunnen verwerken. Het fy-sisch ontwerp van een systeem komt vaak neer op de plaatsing van primitieve bouwblok-ken in een vlak, en het ontwerpen van de interconnectie van deze blokken. Aangeziende netlijst meestal niet de representatie is van een planaire graaf, moet de interconnectie(bedrading) aangebracht worden in verschillende vlakken, waarbij banen in verschillen-de lagen op bepaalde punten moeten verbonden worden (via’s) of elkaar moeten kruisen(cross-overs). Meestal is er een beperking op het aantal lagen, hetzij om technologischeredenen (VLSI: men heeft maar een beperkt aantal poly- en metaallagen), of om rede-

264

Page 269: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

nen van kostprijs (PC-borden met meer dan 6 lagen, voedingsdistributie inbegrepen, zijnduur).

Bij het ontwerp van de fysische structuur moet aan een aantal regels voldaan wor-den die men de design rules noemt. Deze regels leggen vast hoever componenten of be-dradingsonderdelen van elkaar moeten liggen, hoe bedrading moet gedimensioneerdworden, hoe via’s er moeten uit zien, enz. Sommige geavanceerde pakketten bevattenhulpmiddelen die de ontwerper in staat stellen om verbindingen te maken die een welbe-paalde kaakteristieke impedantie vertonen (transmissielijnen), of die uitspraken kunnendoen over de elektromagnetische straling die gegenereerd zal worden door de bedrading(EMC).

Typische voorbeelden van softwarepaketten voor het fysisch ontwerp van digitalesystemen zijn lay-outomgevingen zoals Ultiboard, Racal Redac, Mentor Graphics, Ca-dence, XACT, enz. Wanneer deze pakketten gevoed worden met een netlijst uit een an-der pakket, moeten zij over bibliotheken beschikken die de fysische gedaante van degebruikte bouwblokken bevatten (de shapes). De plaatsing van bouwblokken (floorplan-ning) gebeurt meestal nog semi-automatisch, het leggen van de interconnecties (routing)gebeurt overwegend automatisch; men noemt het dan autorouting.

De output van lay-outgeneratoren is een beschrijving van de geometrie, bijvoorbeeldvan de maskers voor het vervaardigen van de chip, of van de verschillende lagen en hetboorpatroon van een PCB. Ook deze informatie kan onder de vorm van diverse echte ofad hoc standaarden gerepresenteerd worden. Voorbeelden van dergelijke formaten zijnGSDII, CIF (Caltech Intermediate Form), een formaat voor de representatie van maskers,Gerber Plot Format en DPF (Disc Plot Format), veelgebruikte formaten voor de beschrij-ving van PCB’s.

A.4 Het uitwisselingsformaat EDIF

Fysische systeemaspecten worden vaak gerepresenteerd in het sinds 1985 gestandaar-diseerde EDIF-formaat (Electronic Design Interchange Format), dat nu aan versie 4.0.0toe is. Dit ASCII-formaat, met een op LISP geınspireerde syntaxis, kan in principe sys-temen representeren op een veelheid van manieren: louter netlijst, in schemavorm, inlay-outgedaante (zie verder), volgens gedrag, of zelfs nog op andere, niet vastgelegdemanieren. EDIF wordt courant gebruikt als representatie van netlijsten, en als represen-tatie van de output van programmeeromgevingen voor programmeerbare componen-ten. De uitbreidingen in versie 4.0.0 maken ook de uitwisseling van de geometrischelay-outgegevens mogelijk.

265

Page 270: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bijlage B

Chipverpakkingen

Deze appandix bevat, louter ter illustratie, enkele afbeeldingen van veelgebruikte chip-verpakkingen. Er bestaan veel meer verpakkingen dan deze die getoond werden. Voorhun mechanische, thermische en elektrische eigenschappen moet men het WWW of decatalogi van de fabrikanten consulteren.

De drie volgende figuren slaan op hermetische verpakkingen. Hermeticiteit is eenbelangrijke eigenschap, die verhindert dat gassen en dampen (o.m. waterdamp) in con-tact komen met de chip. Chips worden wel gepassiveerd, maar elke bijkomende barriereis welkom. Hermetische verpakkingen worden in keramische materialen gemaakt enin metaal, en daardoor kunnen zij hogere temperaturen aan dan de goedkopere plastic-verpakkingen.

266

Page 271: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

PLASTIC DUAL-IN-LINE PACKAGE20

0.975

(24,77)

0.940

(23,88)

18

0.920

0.850

14

0.775

0.745

(19,69)

(18,92)

16

0.775

(19,69)

(18,92)

0.745A MIN

DIM

A MAX

PINS **

0.310 (7,87)

0.290 (7,37)

(23.37)

(21.59)

Seating Plane

0.010 (0,25) NOM

14/18 PIN ONLY

9

8

0.070 (1,78) MAX

A

0.035 (0,89) MAX 0.020 (0,51) MIN

16

1

0.015 (0,38)

0.021 (0,53)

0.200 (5,08) MAX

0.125 (3,18) MIN

0.240 (6,10)

0.260 (6,60)

M0.010 (0,25)

0.100 (2,54)05–155

Figuur B.1: De afmetingen van de overbekende DIP-verpakking (afmetingen in mm tussen haak-jes). Het gaat over eenn verpakking voor gatmontage (Eng. through-hole mount). Gegevens afkom-stig van Texas Instruments

267

Page 272: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

PLASTIC SMALL-OUTLINE PACKAGE

Gage Plane

8,20

7,40

0,15 NOM

0,63

1,03

0,25

38

12,90

12,30

28

10,50

24

8,50

Seating Plane

9,907,90

30

10,50

9,90

0,38

5,60

5,00

15

0,22

14

A

28

1

2016

6,506,50

14

0,05 MIN

5,905,90

DIM

A MAX

A MIN

PINS **

2,00 MAX

6,90

7,50

0,65 M0,15

05–85

0,10

3,30

8

2,70

Figuur B.2: De afmetingen van een SSOP-verpakking (afmetingen in mm). Het gaat over eennverpakking voor oppervlaktemontage (Eng. surface mount) met zg. meeuwenvleugelpootjes (Eng.gull wing leads). Gegevens afkomstig van Texas Instruments.

268

Page 273: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

CeramicSidebrazedDual-In-linePackage (SB)

• Through Hole Package

• Brazed Straight Leads to Pads on Package Side

• Gold Plate or Solder Dip Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with Cerdip and MDIP

Ceramic Leadless Chip Carrier (LCC)

• Surface/Socket Mount Package

• Terminal Pads Instead of Leads

• Gold Plate or Solder Dip Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with CQJB and PLCC

Ceramic QuadJ-Bend (CQJB)

• Surface Mount Package

• J-Bend Lead Configuration

• Gold Plate Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with LCC and PLCC

Ceramic Quad Flatpack (CQFP)

• Surface Mount Package

• Straight Lead Configuration

• Gold Plate Lead Finish

• Multilayer Ceramic Package

• Solder Seal

Figuur B.3: Enkele hermetische verpakkingen van National Semiconductors

269

Page 274: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

CeramicFlatpack

• Surface Mount or Through Hole Package

• Straight Lead Configuration

• Gold Plate Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with Cerpack

Ceramic Dual-In-Line Package (Cerdip)

• Through Hole Package

• Straight Lead Configuration

• Solder Dip Lead Finish

• Pressed Ceramic Package

• Glass Seal

• Footprint Compatible with SB and MDIP

Ceramic Small Outline Package

• Surface Mount Package

• Gull Wing Lead Configuration

• Gold Plate Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with Wide Body Plastic SOP

Ceramic Pin Grid Array (CPGA)

• Through Hole Package

• Straight Lead Configuration

• Gold Plate Lead Finish

• Multilayer Ceramic Package

• Solder Seal

• Footprint Compatible with PPGA

Figuur B.4: Enkele hermetische verpakkingen van National Semiconductors (vervolg)

270

Page 275: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Cerpack

• Surface Mount or Through Hole Package

• Straight Lead Configuration

• Solder Dip Lead Finish

• Pressed Ceramic Package

• Glass Seal

• Footprint Compatible with Flatpak

Cerquad

• Surface Mount Package

• Straight Lead Configuration

• Solder DIP or Tin Plate Lead Finish

• Pressed Ceramic Package

• Glass Seal

• Footprint Compatible with PQFP

• Can be Electrically and/or Thermally Enhanced

Cerquad—EIAJ

• Surface Mount Package

• Gull Wing Lead Configuration

• Solder DIP or Tin Plate Lead Finish

• Pressed Ceramic Package

• Glass Seal

• Footprint Compatible with PQFP

• Can be Electrically and/or Thermally Enhanced

Figuur B.5: Enkele hermetische verpakkingen van National Semiconductors (vervolg)

271

Page 276: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bijlage C

Enkele aanvullingen opcircuitniveau: CMOS, flipflops eninterconnectie

In deze appendix gaan wij in op een aantal essentiele aspecten op circuitni-veau, die de basis vormen voor de opbouw van hedendaagse digitale syste-men. Deze materie staat enigszins aan de rand van deze cursus, en werd ofwordt in andere vakken uit de opleiding elektrotechniek aangebracht. Voorstudenten die geen opleiding elektrotechniek volgen of gevolgd hebben is ditnuttig naslagmateriaal.

Wij beginnen met het in herinnering brengen van de werking van het basis-element voor digitale schakelingen: de veldeffecttransistor (FET: Field EffectTransistor). Wij zijn voornamelijk geıinteresseerd in het gedrag als schake-laar, en dit zowel statisch als dynamisch. Vervolgens bouwen wij de klassiekeCMOS-poorten met behulp van FET’s.

In een volgende paragraaf analyseren wij kort een teruggekoppeld poortnet-werk op circuitniveau. Dit netwerk vormt immers de basis van flipflops, enmen moet afdalen tot het circuitniveau om relevante aspecten van het gedrag,zoals schakelsnelheid en metastabiliteit bloot te leggen.

Tenslotte bespreken wij enkele belangrijke aspecten van interconnectie in snel-le digitale systemen. Bij hoge schakelsnelheden gedragen verbindingen zichsteeds minder als signaaloverbrengers die zonder enige vertraging of vervor-ming een signaal van een plaats naar een andere overbrengen.

C.1 Een korte herhaling: de veldeffecttransistor en CMOS

C.1.1 De veldeffecttransistor

De FET is een basiselement met drie aansluitpunten genoemd Source (S), Gate (G) enDrain (D); de betekenis van deze termen zal gaandeweg duidelijk worden. De gateis een controle-ingang. Door middel van de extern aangelegde spanning VGS tussengate en source, kan men de stroom/spanningskarakteristiek tussen de aansluitingendrain/source beınvloeden.

272

Page 277: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Deze karakteristiek is niet-lineair, en kan dus niet door een weerstandswaarde wor-den weergegeven. Toch kan men als eerste benadering zeggen dat de gemiddelde weer-stand tussen drain en source kan veranderd worden tussen zeer hoog en zeer laag, doorhet kiezen van een geschikte VGS . De FET is op deze manier een (imperfecte) implemen-tatie van een schakelaar.Hoe dit alles in zijn werk gaat zullen wij nu kort in herinnering brengen.

Opbouw Een eenvoudige FET is opgebouwd volgens figuur C.1. In een p-gedoteerdmonokristallijn halfgeleidersubstraat (silicium) worden twee sterk n-gedoteerde gebie-den (source en drain) als evenwijdige parallellepipeda ingebracht met dezelfde kristalst-tructuur als het substraat. De precieze techniek die men hiervoor gebruikt doet hier nietterzake, maar zorgt ervoor dat de parallellepipeda afgeronde hoeken en randen krijgen.Deze gebieden worden diffusies genoemd, naar een van de technieken waarmee men zekan aanbrengen.

Metalen (aluminium of koper) verbindingen met source en drain zorgen voor elek-trische aansluiting. De strook p-materiaal die source en drain van elkaar scheidt noemtmen het kanaal. Tijdens de werking wordt er steeds voor gezorgd dat de source en drain nooitnegatievere spanningen aannemen dan het substraat. Dit betekent dat de p/n-juncties diegevormd worden tussen source en drain resp. substraat steeds invers gepolariseerd zijn,en dus isolerend. er vormt zich bijgevolg een isolerende sperlaag tussen de source- endraindiffusies en het substraat.

De afstand tussen source en drain noemt men de kanaallengte L, en de afstand waar-over ze evenwijdig lopen de kanaalbreedte W . Noteer dat kanalen, zoals weergegeven,typisch veel breder zijn dan lang. De kanaallengte is een technologische basisparameterdie een sterke invloed heeft op diverse gedragseigenschappen van de FET (schakelsnel-heid, dissipatie). Minimale kanaallengten zijn de voorbije jaren sterk afgenomen, vanmeerdere tientallen µm tot 0,13 µm nu; een verdere daling tot ca. 0,06 µm tegen 2007wordt voorspeld door de ITRS Roadmap ([ITRS01]).

Een dergelijke structuur heeft een zeer grote weerstand tussen S en D; de aandach-tige lezer herkent trouwens dat wij hier twee in anti-serie geschakelde dioden gevormdhebben, waarvan er steeds minstens een in sperrichting staat. De geleidbaarheid vande structuur zou veel beter zijn mocht men als substraat n-gedoteerd materiaal gebruikthebben i.p.v. p-materiaal. Er vormen zich dan geen echt sperrende diodejuncties meermet het substraat, en elektronen kunnen stromen van S naar D. Dit is het principe waaropde werking van de FET steunt: men zal tijdens de werking een dunne laag aan het oppervlak vanhet kanaal tijdelijk de eigenschappen geven van n-materiaal, en zo een veel beter geleidende brugtot stand brengen tussen S en D.

Hoe gaat men te werk om dit te bereiken? De techniek die men hiervoor gebruiktis het zogenaamd veldeffect. Wanneer men namelijk loodrecht op het p-materiaal eenelektrisch veld laat invallen (gericht naar binnen), dan zal in eerste instantie (wanneerniet al te sterk) dit veld de mobiele positief geladen gaten wegdrijven uit een dunne laagaan het oppervlak. In deze laag zijn er dan zeer weinig mobiele ladingsdragers, zowelelektronen als gaten. Het p-materiaal wordt daar effectief ongevormd tot (bijna) eenisolator, en men noemt deze laag dan ook een sperlaag. Deze sperlaag sluit aan bij desperlaag die aanwezig is rond de diffusies.

Wanneer men echter de veldsterkte verder opdrijft, krijgt men in een nog dunnerelaag aan het oppervlak een sterke aanrijking van mobiele elektronen. In deze dunne laag,

273

Page 278: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

n+-diffusies voorsource en drain

p-substraat

L W

source- en draindiffusies in substraat(pijlen geven stroomrichting aan)

gate-elektrode in poly-silicium, hangt afstand bovensiliciumoppervlak (isolator niet getekend)

d

Geheel met isolator en metaalverbindingen(isolator boven gate niet getekend)

doorsnede; de isolator is het dunsteonder de gate-elektrode (dikte )d

gate gatesourcesource

draindrain

source-diffusie

drain-diffusiegate-

oxide(isolator)

kanaal

kanaal

Figuur C.1: De schematische opbouw van een n-FET. Typische waarden voor L in hedendaagsedigitale schakelingen zijn L = 0.13− 0.25 µm; over het algemeen is W daar een veelvoud van.

274

Page 279: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

de inversielaag, vertoont het materiaal de eigenschappen van een n-materiaal: veel mo-biele elektronen, zeer weinig mobiele gaten. De inversielaag slaat een geleidende brugtussen source en drain, die ook rijk zijn aan mobiele elektronen. De dikte van de laag,en vooral de concentratie aan mobiele elektronen, bepaalt de weerstand ervan. Dezeconcentratie kan gecontroleerd worden door de sterkte van het invallend veld te wijzi-gen. Aangezien het geleidend kanaal gevormd wordt door elektronen, noemt men eendergelijke FET een n-kanaalsFET of kort een n-FET.

Het elektrisch veld wordt gecreeerd door een zeer dunne laag (enkele nanometer totenkele tientallen nanometer) isolator (meestal SiO2) aan te brengen boven het kanaal endaarbovenop een elektrode, in de vorm van een laag sterk gedoteerd halfgeleidermate-riaal (goed geleidend poly-kristallijn silicium). Deze poly-laag noemt men de gate, ende derde metalen aansluiting is hiermee verbonden. Door nu aan de gate-elektrode eenpositieve spanning VGS aan te leggen t.o.v. de source (en het substraat, wanneer wij ditlaatste verbinden met de source), creeren wij een veld met sterkte VGS/d volt/m, wan-neer d de dikte van de isolator voorstelt. Een spanning VGS = 1 V en een dikte d = 0,01µm leiden aldus tot een veldsterkte van 108 V/m.

Zoals al gezegd is een FET met geleidend kanaal volledig omhuld door een sperlaag,en is op deze manier in feite geısoleerd van het p-substraat waarin hij is opgebouwd, endus ook van de andere elementen die in hetzelfde substraat worden gemaakt.

Elektrische karakteristiek De elektrische karakteristiek (gelijkstroomwerking) bestaatuit de stroom/spanningskarakteristiek tussen D en S als functie van VGS .

Een sterk vereenvoudigde analyse, die buiten het raam van onze behandeling valt,van de FET leidt tot de volgende benaderde karakteristiek1

IDS(VGS , VDS) =

0, VGS < Vt

µnWL

ε0εId ((VGS − Vt)VDS − 1

2V 2DS), VGS > Vt, VDS < VGS − Vt

µnWL

ε0εI2d (VGS − Vt)2, elders.

(C.1)

Hierin stelt IDS de stroom voor die binnenkomt bij D en de FET verlaat bij S; VDS steltde spanning voor die men aanlegt tussen D en S. De spanning Vt is de z.g. drempelspan-ning, dit is de waarde van VGS waarbij de inversielaag zich begint te vormen, en er dusstroom kan beginnen vloeien. De grootheid µn is de mobiliteit van de elektronen in deinversielaag (ongeveer 800 cm2/Vs), ε0 en εI zijn resp. de permittiviteit van het vacuum(8.85× 10−12 F/m) en dielektrische constante van de isolator (3.9).

Figuur C.2 geeft deze relatie grafisch weer. Zoals eerder vermeld, is voor een gegevenVGS de stroom/spanningskarakteristiek geen rechte (die dan een constante weerstand

zou voorstellen). Naarmate VDS vanaf 0 V toeneemt, ziet men de helling van de raaklijnaan de karakteristiek dalen. Het reciproque van deze helling stelt de incrementele weer-stand van de FET voor (dit is de toename van VDS gedeeld door de toename van IDS).Voor kleine waarden van VDS (0 < VDS < (VGS − Vt)/2) kan men de FET dus vervangendoor een weerstand

RDS0 =L

W

d

µnε0εI(VGS − Vt)(C.2)

1FET’s met zeer korte kanalen hebben karakteristieken die hier redelijk sterk van afwijken; voor onzebehandeling volstaan de eenvoudige modellen.

275

Page 280: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

0

0.1

0.05

-2 0 2 4 6 8 10

VGS =

4 volt

5 volt

3 volt

2 volt

triodegebied pentodegebied

VDS (volt)

IDS (mA)

Figuur C.2: De karakteristiek van een n-FET met een drempelspanning Vt = 1 volt. Het gebiedwaar de karakteristieken een kleine, maar toenemende incrementele weerstand vertonen noemdemen vaak het ‘triodegebied’, het gebied waar de drainstroom constant wordt het ‘pentodegebied’.Deze termen zijn historisch, en verwijzen nog naar de voorloper van de FET, de vacuumbuis.Deze gebieden worden steeds vaker het ’lineair’ en het ’saturatiegebied’ genoemd.

die afhangt van VGS . Voor grotere waarden VDS > VGS − Vt wordt de stroom IDS onaf-hankelijk van VDS ; de FET kan dan aanzien worden als een stroombron

IDS = µnW

L

ε0εI

2d(VGS − Vt)2 (C.3)

(beter: een constante stroomafname) met een sterkte gecontroleerd door VGS . Wanneern-FET stroom voert, is S de meest negatieve aansluiting, zijn VGS > 0 en VDS > 0, en deconventionele positieve stroom vloeit binnen langs D.

N-FET’s en p-FET’s. De hele bovenstaande redenering kan herhaald worden vertrek-kend van een n-gedoteerd substraat. Men brengt dan sterk p-gedoteerde S- en D-gebie-den aan, en keert alle aangelegde spanningen van teken om. Men verkrijgt dan een p-FET. In geleidende toestand is S de meest positieve aansluiting, VGS < 0 en VDS < 0. Deconventionele positieve stroom komt binnen langs S en verlaat de FET langs D.

Technologisch kan men n-FET’s en p-FET’s samenbrengen op dezelfde chip (figuurC.5). In het basismateriaal van het substraat maakt men dan badkuipjes (Eng. tubs ofwells) van p-materiaal waarin men n-FET’s vervaardigt, en badkuipjes van n-materiaalwaarin men de p-FET’s maakt. Elektrisch zorgt men ervoor dat de p-badkuipen op delaagste spanning gehouden worden, en de n-kuipjes op de hoogste, dit om de onderlingeisolatie van de FET’s te waarborgen.Deze opbouw vormt de basis van CMOS.

Capaciteiten. De diverse onderdelen van een FET zijn capacitief gekoppeld met elkaaren met het substraat. Aangezien de source- en draindiffusies nooit negatief (n-FET) wor-den t.o.v. het substraat, zijn deze gebieden capacitief gekoppeld met het substraat via de

276

Page 281: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

D

S

G

D

S

G

D

S

G

Vdd

Vss

CGD

CGS

CDB

CSB

n-FET p-FET Parasitaire capaciteiten in een FET

Figuur C.3: Veelgebruikte symbolische voorstellingen voor FET’s. De spanning Vss is de laagstespanning in het circuit en wordt aan het substraat aangelegd (de badkuip van de n-FET). Despanning Vdd is de hoogste spanning, en wordt aan de badkuip van de p-FET gelegd. Het pijltjewijst conventioneel van een p-gebied naar een n-gebied.

zogenaamde sperlaagcapaciteit. Wanneer een FET gebruikt wordt als schakelaar zal min-stens de drain, maar soms ook de source (afhankelijk van de schakeling) van spanningveranderen t.o.v. het substraat, en zullen er ladingen moeten toe- of afgevoerd wordenom de capaciteiten op te laden. Voorts vormt de gate bij constructie een condensator methet kanaal (zeker wanneer er zich een geleidende inversielaag heeft gevormd). De nomi-nale waarde van deze capaciteit is ε0εIWL/d. Het kanaal staat tijdens de werking echterniet op gelijke potentiaal: de kant aan de source staat op source-potentiaal, die aan dedrain op drainpotentiaal, en de plaatselijke waarde verloopt continu tussen deze waar-den. Daarom verdeelt men conventioneel het kanaal in twee delen, een dat eerder bij desource hoort, en een dat eerder bij de drain hoort. Aldus definieert men de capaciteitenCGS tussen gate en source (en het bijhorend deel van het kanaal), CGD tussen gate endrain (en het bijhorend deel van het kanaal), CSB tussen source (en het bijhorend deelvan het kanaal) en substraat (Eng: bulk) en CDB tussen drain (en het bijhorend deel vanhet kanaal) en substraat.

Deze capaciteitswaarden zijn niet constant, omdat sperlaagcapaciteiten spanningsaf-hankelijk zijn, en omdat de capaciteit van de gate met de andere onderdelen sterk afhan-kelijk is van de aanwezigheid van de inversielaag. Voor onze zeer oppervlakkige analysezullen wij deze capactiteiten echter constant veronderstellen.

Een belangrijke opmerking die hier reeds kan gemaakt worden is dat de capaciteitvan de gate naar de andere onderdelen evenredig stijgt met de breedte W van de FET.De stroom/spanningkarakteristiek is echter ook lineair afhankelijk van dezelfde W (vgl.C.1). Dit heeft een belangrijke consequentie: wanneer men een FET wil maken die veel stroomkan voeren, zal men W groot maken. Maar dan maakt men automatisch de ingangscapaciteitCGS + CGD groot, wat betekent dat de schakeling die de FET aanstuurt een hogere capacitievebelasting zal moeten aandrijven.

Figuur C.3 toont een van de mogelijke representaties van FET’s in circuitdiagram-men; soms wordt bij een p-FET ook een invertorbolletje aangebracht aan de gate. Defiguur rechts toont tussen welke klemmen de conventionele parasitaire capaciteiten zichvoordoen.

277

Page 282: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.4: Een poort gemaakt met behulp van schakelaars

C.1.2 CMOS-poorten

C.1.3 De invertor

De principiele structuur van een CMOS-poort is weergegeven in figuur C.4.De poort bestaat uit twee schakelnetwerken gevormd door FETs, het netwerk N1 dat

de uitgang verbindt met de 0-spanning en het netwerk N2 dat de uitgang verbindt metde voedingsspanning. De geleidingstoestand van beide netwerken wordt gecontroleerddoor hetzelfde stel inputs. De essentie nu is dat N1 geleidt a.s.a. N2 niet geleidt.

Wanneer precies een van beide netwerken geleidt, is de uitgangsspanning een goedgedefinieerde 0 volt (logische 0) of voedingsspanning (logische 1). Wanneer geen vanbeide geleidt, zweeft de uitgang, en wordt er geen interpreteerbaar signaal aangebo-den. Wanneer tenslotte beide netwerken simultaan geleiden, vloeit er een potentieel grotestroom van de voedingsspanning naar de 0-referentie, die de schakeling kan doen over-verhitten en stuk maken. Bovendien zal de uitgang een spanning aannemen die middenin het verboden gebied ligt, en dus geen interpreteerbare informatie voorstelt.

Dit gewenste gedrag kan men realiseren door een geschikte keuze en interconnectievan de FETS in beide netwerken.

Het meest eenvoudige netwerk is de invertor (figuur C.5), waarbij beide netwerkenbestaan uit elk een transistor. Het netwerk N1 wordt gevormd door een n-FET, N2 dooreen p-FET. De drains van de p- en de n-FET worden met elkaar verbonden, evenals degates. De source van de n-FET wordt aan de 0-spanning gelegd, de source van de p-FET aan de positieve voedingsspanning. In figuur C.5 hebben wij aan de n-FET eendrempelspanning van 1 V gegeven, en aan de p-FET −1 V. Wij veronderstellen dat deW/L-verhouding van de p-FET ca. 3 maal groter is dan deze van de n-FET, omdat dep-FET minder goed geleidt als gevolg van de lagere mobiliteit van de gaten: µp ≈ 0.3µn.

Statische karakteristiek. De analyse van de schakeling is eenvoudig. Wanneer wijde inputspanning vanaf 0 V laten oplopen zien wij dat initieel de n-FET afgeknepen is(beneden drempelspanning), en de p-FET in geleiding. De uitgangsspanning is hoog, ende p-FET bevindt zich in het triodegebied. Er vloeit geen stroom.

Wanneer de inputspanning hoger wordt dan de drempelspanning van de n-FET, zal

278

Page 283: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5V

1 pF Vout

Vin

W=30L=10

mmmm

W=10L=10

mmmm

0 200 400 600

0 2.0 4.0 6.0

5.0

0

30

20

10

0

5.0

4.0

3.0

2.0

1.0

0

4.0

3.0

2.0

1.0

Vout(V)

Vout (V)

Vin (V)

t (ns)

Id( A)m

Transferkarakteristiek en voedingsstroom

Schakelgedrag

p-FET

n-FET

p-well n-well

p+p+n+ n+

substraat (n of p)

n-FET p-FET

S D D S

oxide

G G

dwarsdoorsnede van twin-tub CMOS CMOS-invertor

S

D

D

S

Figuur C.5: De structuur en werking van CMOS. Bovenaan een dwarsdoorsnede (vereenvou-digd) van een twintub-technologie, waar aparte badkuipjes worden aangebracht op een gemeen-schappelijk substraat. Rechts de basis-invertor in CMOS. De condensator aan de uitgang stelt decapacitieve belasting voor van de bedrading en de poortingangen die deze invertor aanstuurt.Onderaan de ingangs/uitgangskarakteristiek en het stroomverbruik tijdens het omschakelen vande invertor. Het dynamisch schakelgedrag houdt rekening met de kleine capacitieve belasting.

279

Page 284: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

ook de n-FET beginnen geleiden, initieel in het pentodegebied wegens de hoge spanningaan de uitgang. Eerst is de stroom klein, en de p-FET blijft in het triodegebied. Naarmatede ingangsspanning toeneemt, neemt de stroom door beide FETs toe, en komen beide inhun pentodegebied2. De uitgangsspanning daalt dan bijzonder snel (afhankelijk van dehelling van de karakteristiek in het pentodegebied). Wanneer de inputspanning hogerwordt daalt de stroom weer aangezien de p-FET dan in zijn pentodegebied werkt en zijngate-spanning dichter en dichter komt bij zijn drempelspanning. Wanneer de inputspan-ning hoger wordt dan de voedingsspanning plus de (negatieve) drempelspanning van dep-FET, 4 V in het voorbeeld, zal deze laatste afknijpen, en de stroom en de uitgangsspan-ning vallen op 0. De transferkarakteristiek benadert de ideale curve, en de ruismargesvan CMOS zijn dus groot.

Noteer dat in beide grenstoestanden, de uitgangsspanning onafhankelijk is van de slank-heidsverhouding W/L van de FETs, en dat er geen statische dissipatie is. Tijdens het omschake-len vloeit er gedurende een korte tijd een stroom door beide FETs. De energie die hierbijgedissipeerd wordt kan klein gehouden worden door de omschakeling snel te laten ver-lopen. Deze stroom stelt een dissipatie voor die per omschakeling optreedt, naast dedissipatie die het gevolg is van het op- en ontladen van de capaciteiten (de eigen ingang,de interconnectie en de ingangen van de aangestuurden poorten). Wij zullen hier nu eenkorte blik op werpen.

Dynamische karakteristiek. Veronderstel een CMOS-invertor die met andere, identie-ke invertors geıntegreerd werd op dezelfde chip. Veronderstel dat de bestudeerde in-vertor mt zijn uitgangs een aantal invertors aanstuurt. Wat is dan de invloed van debelasting op de schakelsnelheid?

Vooreerst identificeren wij de belasting: deze is louter capacitief, en bestaat uit decapaciteit van de metalen verbinding van de uitgang naar de aangestuurde ingangent.o.v. het substraat, en de som van de ingangscapaciteiten van de aangestuurde invertors.Hierbij moet opgemerkt worden dat de in aanmerking te nemen ingangscapaciteit nietgewoon CGS +CGD is, maar eerder CGS +2CGD. Men kan dit als volgt inzien: stel dat deingang van de aangestuurde invertor op 0 V staat. Op de condensator CGS staat dan ook0 V. De uitgang van de invertor staat echter hoog, op de voedingsspanning VCC . Dezespanning staat dan over CGD. Na de omschakeling zijn de rollen omgekeerd: over CGS

staat nu VCC , terwijl over CGD nu −VCC staat, omdat de uitgang op 0 V gekomen is. Detotale lading die moest worden aangeleverd vanuit de aansturende invertor is bijgevolgVCC(CGS + 2CGD), en de waargenomen capaciteitswaarde is CGS + 2CGD.

De som van alle capaciteitswaarden, samen met de eigen CDB van de aansturendeinvertor vormt de capacitieve belasting.

Hoe snel schakelt de uitgang nu van 1 naar 0 en omgekeerd? Wij gaan ervan uit datop t = 0 de ingang van de aansturende FET zeer snel van 0 naar 1 gebracht wordt.Deuitgang van deze FET (en dus alles wat hij aanstuurt) moet dan een transitie maken van1 naar 0. Uitgaande van vergelijking C.1 kunnen wij deze transitie analytisch berekenen.Het ontlaadproces wordt beschreven door de differentiaalvergelijking

dVout

dt=

IDS,n(Vout)C

, (C.4)

2Op voorwaarde dat de voedingsspannning groter is dan de som van de absolute waarden van de drem-pelspanningen; anders komen beide FET’s in hun triodegebied.

280

Page 285: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

waarbij IDS,n(Vout) de stroom door de n-FET voorstelt als functie van de uitgangsspan-ning bij VGS,n = VCC . Het ontlaadproces begint met de n-FET in zijn pentodegebied.Wanneer de uitgangsspanning gedaald is tot VCC − Vt gaat de n-FET over naar het tri-odegebied. Gedurende heel het traject staat de p-FET afgeknepen en speelt dus geenactieve rol.

De volledige oplaadcurve kan stuksgewijze analytisch bepaald worden. Deze een-voudige oefening (bijvoorbeeld met Maple) wordt overgelaten aan de student.

Wij kunnen om wat inzicht te verkrijgen het begin en het einde van de oplading recht-streeks bepalen. Vlak na het op 1 komen van de ingang staat de uitgang nog op 1, maarstaat de p-FET afgeknepen, terwijl zoals gezegd de n-FET in zijn pentodegebied werkt.De n-FET zal dan geleidelijk de totale belastingscapaciteit C ontladen. Eerst gebeurt ditmet constante stroom (vgl. C.3), zolang de n-FET in zijn pentodegebied werkt. De uit-gangsspanning daalt lineair in de tijd. Op het ogenblik dat de n-FET overgaat naar zijntriodegebied, wanneer de uitgangsspanning gedaald is tot VCC−Vt (4 V in het voorbeeld),gaat de ontlaadcurve geleidelijk over naar een exponentiele curve, omdat de p-FET zichsteeds beter gaat gedragen als een weerstand (vgl. C.2). Het tijdstip waarop de overganggebeurt is

∆t =∆V C

I=

2CVt

µnWL

ε0εId (VCC − Vt)2

(C.5)

(dit is ongeveer 13 ns in het voorbeeld van figuur C.5). De tijdconstante waarmee deeindwaarde benaderd wordt is

τ = RDS0C =L

Wp

d

µnε0εI(VCC − Vt)C, (C.6)

ongeveer 26 ns in het voorbeeld.Men kan een relatief goede benadering verkrijgen door heel de curve te vervangen

door een exponentiele die de ontlading over een constante weerstand voorstelt. Menkan relatief eenvoudig de weerstand uitrekenen die in dezelfde tijd als de FET de uit-gangsspanning terugbrengt tot V t. Het resultaat is

α =Requiv

RDS0= (

ln( β2−3β )

lnβ− 2β

lnβ(1− β)).

Hierin is β = Vt/VCC . Deze formule levert waarden op voor α tussen 1.3RDS0 en 2.2RDS0

voor 0.1VCC ≤ Vt ≤ 0.4VCC . De tijd die het dan duurt om de spanning Vt te bereikenwordt gegeven door

tVt = −α lnβRDS0C

en varieert tussen 2RDS0C en 5RDS0C voor 0.1VCC ≤ Vt ≤ 0.4VCC . Voor hogere waar-den van Vt relatief t.o.v. VCC neemt deze waarde toe, omdat de FET dan langer in zijnpentodegebied werkt en hierdoor zijn gemiddelde effectieve weerstand stijgt.

Het oplaadgedrag (de transitie van 0 naar 1) is gelijkaardig aan het ontlaadgedrag,alleen moeten dan de data van de p-FET gebruikt worden. Men streeft ernaar om beidetransities zou gelijk mogelijk te maken. Als effectieve schakeltijd neemt men het gemid-delde van beide waarden.

C.1.4 Complexe poorten

Bij de realisatie van complexere poorten wil men de gunstige eigenschappen van de in-vertor zoveel mogelijk bewaren. Deze eigenschappen zijn het gevolg van het feit dat de

281

Page 286: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5V

X

X

Y

Y

Z

Z

U

U

f(X,Y,Z,U) = (Z + U(X+Y))'

n-netwerk

p-netwerk

Figuur C.6: Een complexe CMOS-poort

p- en de n-FET alleen samen geleiden gedurende een overgang, en daaarbuiten comple-mentair in geleiding zijn. Wanneer wij, zoals bij n-MOS, de n-FET vervangen door eennetwerk (b.v. serie-parallel) van n-FETs, moeten wij ook de p-FET vervangen door eennetwerk van p-FETs dat niet geleidt a.s.a. het n-netwerk geleidt. Men kan eenvoudig bewij-zen (zie sectie 2.1.3) dat het hiervoor volstaat het p-netwerk precies de duale structuur tegeven van het n-netwerk, en corresponderende FETs in beide netwerken aan te sturenmet hetzelfde signaal. Dualiteit betekent: serieschakelingen worden parallelschakelin-gen, en vice versa (figuur C.6).

Er bestaan een aantal technieken om de verdubbeling van het aantal FETs bij de re-alisatie van complexere functies tegen te gaan, in schakelingen die met een kloksignaalwerken. Een particulier voorbeeld staat afgebeeld in figuur C.7. Tijdens de lage fase vande klok wordt de strooicondensator C onvoorwaardelijk opgeladen tot de voedingsspan-ning. Wanneer het kloksignaal hoog wordt, kan het n-netwerk deze condensator terugontladen indien dit vereist wordt door de inputs. Wanneer men dergelijke poorten metelkaar verbindt, zullen tijdens de lage klokfase alle condensatoren opgeladen worden.Tijdens de ‘berekeningsfase’ zullen de condensatoren voorwaardelijk ontladen worden,en deze ontlading loopt als een golf doorheen het circuit, van de eerste trap naar de laat-ste. Dit soort schakeling krijgt zijn naam door de gelijkenis hiervan met het omvallen vaneen rijtje domino’s.

C.1.5 Standaardcomponenten in CMOS

Men kan CMOS-poorten maken die voorzien zijn van een voldoend krachtige buffertrapdie geschikt is om relatief grote externe capacitieve belastingen aan te sturen. Hierdoorkan men CMOS gebruiken voor de vervaardiging van een familie standaardcomponen-ten. Men verkrijgt aldus een logische familie met een excellente ruismarge, snelheden diete vergelijken zijn met deze van TTL, en een statische dissipatie die bijzonder klein is.

Het hoeft dan ook niet te verwonderen dat CMOS, naast een zeer verspreid gebruikals VLSI-technologie, ook gebruikt wordt om een uitgebreide lijn van standaard-bouw-

282

Page 287: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

5V

X Y Z

U

f(X,Y,Z,U) = Z + U(X+Y)

n-netwerk

klok

C

Figuur C.7: Het p-netwerk wordt vervangen door een condensator, die bij elke klokperiodeopgeladen wordt, en daaarna selectief ontladen door het n-netwerk. Om de poort de mogelijkheidte geven een externe (capacitieve) belasting een te sturen, wordt er een conventionele CMOS-invertor als uitgangstrap aan toegevoegd.

5 V

Input

polyweerstand

Figuur C.8: Beveiliging van inputs tegen elektrostatische ontlading

blokken te realiseren die een grote gelijkenis vertonen met het assortiment van TTL-com-ponenten, en die er zelfs compatibel mee zijn. Diverse varianten van de basis-CMOSbestaan.

Bijzonder aan CMOS-componenten is de zeer hoge ingangsimpedantie van de poort.Dit zorgt vaak voor problemen: elektrostatische spanningen, opgewekt door wrijvinge.d.m. kunnen zeer hoge waarden aannemen. Hoewel de ladingen die hiermee overeen-komen klein zijn, zijn ze toch voldoend groot om te grote spanningen op de gate vaneen FET te brengen, als gevolg waarvan het gate-oxide doorslaat en meestal irreversibelbeschadigd wordt. Dit noemt men beschadiging door ESD (ElectroStatic Discharge).

Speciaal voor standaardcomponenten, die moeten gemanipuleerd worden bij de as-semblage van de schakeling, zorgt dit voor problemen. Men zorgt er dan ook voor dat deinputs van een standaardcomponent beveiligd zijn tegen elektrostatische doorslag. Ditdoet men bijvoorbeeld door, in serie met een input, een stroombegrenzende weerstandop te nemen, en twee dioden in sperrichting, resp. naar de massa en de voedingsspan-ning (fig. C.8). Deze schakeling verlaagt uiteraard de ingangsimpedantie, aangezien nude lekstroom van de dioden zal vloeien, en de dioden uiteraard ook een eigen capaciteitvertonen.

283

Page 288: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.9: Een elementaire bistabiele schakeling: (a) Twee in een kring geschakelde CMOS-invertors; (b) Transfercurven en evenwichtspunten. Punt B is labiel.

C.2 Teruggekoppelde circuits en metastabiliteit

Naast de poortcircuits, die via de digitale abstractiefunctie D een logische functie reali-seren, bestaan er onnoemelijk veel circuits die dit niet doen. Niet elk van deze circuitsis echter onnuttig bij de opbouw van digitale schakelingen, en er is zelfs een klasse vandigitale circuits die bijzonder nuttig zijn, ondanks het feit dat zij geen functies realiserenin de strikte betekenis van het woord. Het gaat hier in het bijzonder om de bi-stabielecircuits die steunen op een interne, positieve terugkoppeling. Dergelijke bouwstenenvormen een van de manieren waarop men in digitale netwerken een vorm van geheugenkan realiseren. Deze circuits – die wij gewoonlijk flipflops of geheugencellen genoemdhebben. Wij zijn reeds ingegaan op hun eigenschappen op logisch niveau. Maar zoalsook het geval is bij de eenvoudige poorten, steunen de logische eigenschappen van dezecircuits duidelijk op hun elektrische eigenschappen op circuitniveau, en het is het doelvan de volgende paragrafen om hier even op in te gaan.

Wij zullen onze behandeling beperken tot een elementaire bi-stabiele schakeling uit-gevoerd in CMOS, omdat wij hier een kans hebben om bepaalde aspecten nog min ofmeer op analytische (en dus inzichtelijke) manier te behandelen.

Wij vertrekken van een analyse van de CMOS-invertor. Wij beschouwen twee in cas-cade geschakelde CMOS-invertors (figuur C.9(a)), en bepalen de transfercurve van deresulterende schakeling. Deze kan eenvoudig gevonden worden door de functie die detransfercurve van een invertor voorstelt samen te stellen met zichzelf (wij nemen immersaan dat de input van een CMOS-poort geen statische belasting betekent voor de outputdie haar aanstuurt, het is immers een condensator). Het resultaat is een curve die heelgoed een stapfunctie benadert (fig. C.9(b)).

Laat ons hier nu terugkoppeling in introduceren. Wij verbinden de output van detweede invertor met de input van de eerste, en vragen ons af wat de spanningen zijndie zullen optreden in dit circuit. Grafisch kunnen wij dit doen, door de hoofddiagonaalVout = Vin te tekenen in het diagram, en de snijpunten met de transfercurve op te zoeken.

284

Page 289: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

In al deze snijpunten is uiteraard voldaan aan de voorwaarde dat de inputspanning gelijkmoet zijn aan de outputspanning.

Een oppervlakkig onderzoek leert echter snel dat het middelste snijpunt B een labielevenwicht voorstelt: zolang er absoluut niets verandert aan om het even welke spanningin het circuit, blijft deze situatie inderdaad bewaard3. Dit is echter geen reeel optreden-de fysische situatie: elke component produceert een zekere hoeveelheid ruis, en ook debedrading wordt door de elektrische en magnetische velden in de omgeving beınvloed.Elke afwijking van de evenwichtsspanning geeft aanleiding tot het terugkoppelen vaneen veel grotere afwijking in dezelfde zin. Het circuit loopt naar het dichtstbijzijnde sta-biele evenwichtspunt, waar spontane afwijkingen onderdrukt worden.

Het weglopen uit het labiel evenwichtspunt is een dynamisch proces, en de snelheidwaarmee dit gebeurt is van zeer groot belang voor de snelheid van de geheugencellendie men ermee zal maken. Wij zullen nu een benaderde analyse doorvoeren van hetovergangsverschijnsel.

Om deze analyse te kunnen doen moeten wij uiteraard rekening houden met de pa-rasitaire capaciteiten die in de FET’s aanwezig zijn, en die bepalend zullen zijn voor desnelheid van de overgang. De capaciteiten die wij in rekening zullen brengen zijn CGS ,CGD, en CDB . De capaciteit CSB tussen source en bulk treedt niet op omdat wij de sourcezullen geaard houden. De capaciteit CGB tussen gate en bulk is klein omdat geduren-de het beschouwde deel van het overgangsverschijnsel alle FET’s in hun pentode-gebiedzullen opereren. Wij nemen aan dat de n- en de p-FET’s identieke eigenschappen hebben,en dat alle capaciteiten constant zijn gedurende de overgang. Dit is uiteraard niet het ge-val, en de werkelijke spanningsverlopen zullen dus wat afwijken van onze analytischeresultaten.

Wij laten het circuit starten in het labiel evenwichtspunt, en gaan op zoek naar dedifferentiaalvergelijking die het systeem beschrijft in de onmiddellijke omgeving van ditpunt. In dit punt zijn alle FET’s geleidend, en werken bovendien bij VGS = VDS = VDD/2.Alle FET’s werken dus in hun pentodegebied, en (de absolute waarde van) de drain-stroom door de ideale FET in het vervangingsmodel wordt gegeven door ID = K(VGS −Vt)2/2, met als beginwaarde ID0 = K(VDD/2− Vt)2/2. Laat ons, zoals voorheen, alle sig-nalen refereren t.o.v. de onstabiele evenwichtswaarden, en deze afwijkingen voorstellenmet een kleine letter: iD = ID − ID0 = KvGS(vGS + VDD − 2Vt)/2.

Wij passen nu de knooppuntwet van Kirchoff toe op de ingangsknoop en op de uit-gangsknoop, en behouden alleen de termen van de eerste orde. Wij vinden (som vaningaande stromen = 0):

Knoop 1: 0 = v2(2CGS + 2CGD)− v12CGD − v1(2CDB + 2CGD) + v22CGD

−Kv2(VDD − 2Vt)/2 (C.7)

Knoop 1: 0 = v1(2CGS + 2CGD)− v22CGD − v2(2CDB + 2CGD) + v12CGD

−Kv1(VDD − 2Vt)/2 (C.8)

Herschreven wordt dit

− v1(4CGD + 2CDB) + v2(2CGS + 4CGD) = Kv2(VDD − 2Vt)/2 (C.9)

v1(2CGS + 4CGD)− v2(4CGD + 2CDB) = Kv1(VDD − 2Vt)/2 (C.10)3Zelfs ‘realistische’ circuitsimulatoren zoals Spice geven dit resultaat: doe zelf eens de oefening door dit

circuit in te voeren en te simuleren. Wanneer men de n- en p-FETs identieke (symmetrische) eigenschappengeeft, zal het circuit zich inderdaad permanent ophouden op precies de helft van de voedingsspanning...

285

Page 290: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.10: (a) Het dynamisch overgangsverschijnsel in een elementaire flipflop. Als simula-tiewaarden werden genomen Vt = 1 V, L = 4 µm, W = 20 µm, CGS = 26, 4 fF, CGD = 8 fF,CDB = 55 fF, K = 75 µA/V2; (b) De gebieden waarin de FET’s in een bepaald werkingsgebiedzitten: A=afgeknepen, T=triode, P=pentode; eerste letter = n-FET, tweede letter = p-FET.

Dit is een stelsel van twee lineaire differentiaalvergelijkingen met constante coefficienten;de algemene oplossing ervan bestaat uit een lineaire combinatie van exponentiele func-ties (modes) met als tijdsconstanten:

τ1 = −2(CGS + CDB)K(VDD − 2Vt)

(C.11)

τ2 =2(CGS + CDB + 4CGD)

K(VDD − 2Vt)(C.12)

De eerste tijdsconstante is negatief, en komt dus overeen met een stabiele mode waarinv1 = v2. De tweede tijdsconstante is echter positief en komt overeen met de onstabielemode v1 = −v2. Deze mode domineert na zeer korte tijd, en doet de spanning V1 opknoop 1 exponentieel snel weglopen van haar beginwaarde VDD/2.

Uiteraard loopt V1 niet naar oneindig; snel wordt de waarde bereikt waar in een trapofwel de p-FET ofwel de n-FET in zijn triodegebied komt (vanaf 3 V voor de stijgendekant) en de andere FET afknijpt (vanaf 4 V voor de stijgende kant). Het circuit verandertdaardoor in een RC-netwerk. Dit verandert de differentiaalvergelijking, die twee stabielemodes krijgt rond V1 = 0 resp. VDD op knoop 1.

Figuur C.10(a) toont de resultaten van een simulatie in Spice. Wat hier weergegevenwordt zijn de spanningen op de knopen 1 en 2, eens met een relatief grote initiele storingrond t = 4 ns, en eens met een heel kleine initiele storing. De respons op de groterestoring komt eerder dan deze op de kleinere. Men ziet duidelijk dat het antwoord uittwee delen bestaat: een exponentieel stijgend deel (positieve tijdsconstante) van ongeveer1,07 ns, dat overgaat in een exponentieel dalend deel (negatieve tijdsconstante) naar hetstabiele evenwichtspunt. Figuur C.10(b) toont de werkingsgebieden waarin de n- resp.de p-FET van een invertortrap verkeren als functies van de spanningen die aan deze trapliggen. De gevolgde trajectorie ligt volgens de dalende diagonaal (v1 = −v2). Rond destabiele evenwichtspunten is steeds een van de FET’s afgeknepen, en de andere bevindtzich in zijn triodegebied.

Merkwaardig maar niet verwonderlijk is het feit dat de respons op een kleine initiele

286

Page 291: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.11: Het schema van de zestransistorcel gebruikt in statische RAMs. Transistors T1

en T2 zijn breder dan de transistors in de invertors (bijvoorbeeld 100 µm i.p.v. de 20 µm diewij in ons voorgaand voorbeeld gebruikt hebben. Gewoonlijk verbindt men S1 en S2 tot een‘rijselectiesignaal’.

verstoring zeer goed lijkt op deze van een grotere storing, maar enkel verschoven lijkt inde tijd. Dit is natuurlijk te wijten aan de initieel exponentiele aard van de curve: een am-plitudevergroting komt neer op een tijdverschuiving. In theorie leiden onbeperkt kleineinitiele verstoringen naar onbeperkt grote vertragingen.

De beschouwde cel is het basiselement van heel wat flipflops en statische geheugen-cellen. Figuur C.11 toont de zestransistorcel die veel gebruikt wordt voor de realisatievan statische RAM’s. Men herkent uiteraard de teruggekoppelde CMOS-invertors. Omde inhoud van de cel te kunnen wijzigen en observeren heeft men twee bijkomende pass-transistors T1 en T2 aangebracht. Deze transistors gaan in geleiding wanneer op hungates S1 resp. S2 een hoge spanning ( bijvoorbeeld VDD = 5 V) wordt aangebracht. Af-hankelijk van wat men opdringt op de twee verticale ‘bitlijnen’ zal men de cel ‘lezen’of ‘schrijven’. Ingeval men de bitlijnen eerst op een gelijke initiele spanning brengt, bij-voorbeeld VDD/2 (de z.g. precharge) en dan laat vlotten, dan zullen zij na verloop van tijdcomplementaire spanningen aannemen, gelijk aan de spanningen op de knopen 1 en 2:men leest de inhoud van de cel. Ingeval men echter op voorhand complementaire span-ningen opdringt, en de bitlijnen via spanningbronnen met voldoend lage uitgangsimpe-dantie op deze spanningen houdt, dan zal men deze spanningen opdringen op de knopen1 en 2, tenminste wanneer de transistors T1 en T2 ‘sterker’ (breder) gemaakt worden dande transistors in de invertors. De cel wordt dan geschreven.

Men kan ook asymmetrisch werken, door bijvoorbeeld enkel van een kant een 0 op tedringen. Dit werd geıllustreerd in figuur C.12. Op t = 25 ns wordt een kort puls van 5 V,met een stijg- en daaltijd van 1 ns en een duur van 2 ns aangelegd op S1. Zeer snel wordtV1 laag gebracht door T1, als gevolg V2 gaat hoog, en de terugkoppeling zorgt ervoor datV1 laag blijft. In ca. 4 ns is het hele overgangsverschijnsel afgelopen.

De labiele of metastabiele aard van het evenwichtspunt halverwege VDD kan zich ookhier manifesteren. Wanneer men de cel zeer dicht bij het labiel evenwichtspunt brengt,kan het in principe onbeperkt lang duren alvorens de eindtoestand bereikt wordt. FiguurC.12 toont hiervan een voorbeeld. Op t = 50 ns leggen wij op S2 een zeer kort puls aan

287

Page 292: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.12: Metastabiel gedrag van een eenvoudige statische RAM-cel bij onvoldoende aan-sturing

dat bovendien maar een amplitude heeft van ca. 3,9 V. Dit puls brengt V2 laag en V1 wathoger, zodanig dat V1 ≈ V2 na afloop van het puls. Het netwerk zal dan spontaan naareen stabiel evenwicht evolueren. Eerst ziet men V1 en V2 samen evolueren tot aan hetmetastabiel evenwichtspunt (volgens de stabiele mode van het systeem); de onstabielemode manifesteert zich later, doordat V1 en V2 exponentieel snel van elkaar beginnenweg te evolueren. Het uitstel van deze evolutie hangt van de grootte van de initieleonbalans, en kan in theorie onbeperkt groot worden. Op de figuur is het al duidelijk datde cel nu meer dan 10 ns nodig heeft om haar eindtoestand te bereiken.

Dit is het van metastabiliteit dat wij in deze cursus al besproken hebben.

C.3 Interconnecties en bussen

Op logisch niveau hebben verbindingen tussen componenten en schakelingen als rol er-voor te zorgen dat een signaal op een plaats gelijk wordt aan een signaal op een andereplaats. In de fysische werkelijkheid wegen er duidelijk een aantal beperkingen op dezefunctie, aangezien de logische interconnectiefunctie gerealiseerd wordt door elektroni-sche overdracht van signalen. Hiervoor geldt om te beginnen de beperking van de licht-snelheid: een signaalverandering kan niet zonder vertraging overgebracht worden naareen andere plaats. Er is echter veel meer aan de hand op elektrisch circuitniveau. Inreele elektrische interconnecties is het signaal aan het uiteinde van een verbinding im-mers nooit een precieze, vertraagde replica is van het signaal dat aan het andere uiteindevan de verbinding aangelegd werd. In tegendeel, de elektrische interconnectie zelf is eendynamisch elektrisch systeem dat een eigen ingangs/uitgangsgedrag vertoont, en waar-van de eigenschappen terdege in rekening dienen gebracht bij het ontwerp van digitaleschakelingen.

In de volgende paragrafen gaan wij daarom kort in op de belangrijkste eigenschappenvan elektrische verbindingen zoals zij gebruikt worden in digitale circuits: verbindingentussen circuits op hetzelfde chipoppervlak, verbindingen tussen chips op dezelfde drager(PCB, Printed Circuit Board, of multi-chipmodule) en verbindingen tussen systemen inaparte behuizingen. Voorts zullen wij ook het onderscheid maken tussen verbindingentussen twee punten, en verbindingen waar meer dan twee aansturende componenten op

288

Page 293: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

aangesloten zijn, de bussen.

C.3.1 Punt-tot-puntverbindingen

Resistieve versus verliesloze transmissielijnen

Punt-tot-puntverbindingen zijn verbindingen tussen twee circuits, waarvan er een deelektrische grootheden opdringt aan de interconnectiegeleider, en het ander de elektri-sche grootheden die zich manifesteren aan het andere uiteinde van de geleider als inputnemen.

In strikte zin bestaat de interconnectie uit de eigenlijke geleider (een draad, een me-taallaag of een laag hooggedopeerd polykristallijn silicium) en uit de omgeving van dezegeleider, die bestaat uit andere geleiders en dielektrica. De andere geleiders kunnen an-dere interconnectieverbindingen zijn, maar ook (en vaak) volledig geleidende vlakkenop een PCB, multichipmodule of chip: de aard- en voedingsvlakken van een PCB of debulk van de plak. In een draadverbinding tussen elektrische systemen is de andere gelei-der meestal de afscherming (co-axiale kabel) of een draad die samen met de signaaldraadgetwijnd wordt tot een paartje (bijvoorbeeld in UTP, Unshielded Twisted Pair).

Dit heeft als gevolg dat om het gedrag van de verbinding elektrisch correct te model-leren, men de aanwezigheid van deze geleiders, en hun de elektrische koppeling met designaalgeleider in rekening moet brengen; het geeigende model hiervoor is natuurlijk detransmissielijn.

De eigenschappen van de transmissielijn worden bepaald door de geometrie van debetrokken geleiders, hun materiele eigenschappen, en de eigenschappen van het dielec-tricum waardoor zij gescheiden worden. Geen van deze materialen is ideaal: de geleidershebben weerstand, en de dielektrica hebben een eindige lekweerstand en dielektrischeverliezen bij hogere frequenties. Dit heeft als gevolg dat het transmissielijnmodel datmen zal hanteren in principe dat van een verlieshebbende transmissielijn moet zijn.

Het algemeen model van een verlieshebbende transmissielijn met (constante) langs-weerstand r, zelfinductie l, capaciteit c en dwarsconductantie g per lengte-eenheid in hetLaplacedomein wordt gegeven door

V (x, s) = A(s)e−γ(s)x + B(s)e+γ(s)x (C.13)

I(x, s) =A(s)Z0(s)

e−γ(s)x − B(s)Z0(s)

e+γ(s)x, (C.14)

waarin γ(s) =√

(r + sl)(g + sc) de propagatiefunctie is van de lijn, en de grootheid Z0(s) =√(r + sl)/(g + sc) de karakteristieke impedantie. Het behandelen van deze vergelijkingen

in hun algemeenheid is complex, en voor concrete toepassingen van de theorie op de ge-vallen die ons hier interesseren kunnen wij overgaan op eenvoudiger, speciale gevallen.

Om te beginnen is er de belangrijke parameter van de totale lengte van de verbindingin verhouding tot het spectrum van de signalen die wij in beschouwing nemen. Het cri-terium dat wij daarvoor hanteren is de maximale waarde aangenomen door de grootheid|γ(s)L|, met L de lengte van de lijn, voor waarden van s waar er nog voldoende signaal-amplitude aanwezig is. De spectrale breedte van digitale signalen hangt zeer sterk afvan de stijg- en daaltijden. Een gekende vuistregel is dat de 3-dB bandbreedte B en destijgtijd tr van systemen met een dominant eerste-ordegedrag gegeven wordt door

trB = 0,32.

289

Page 294: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.13: Spectrum van een symmetrische golf met periode 22 ns en stijg- en daaltijden van1 ns. De amplitude was 1 V

Moderne discrete logische families halen stijgtijden van de orde 0,3 tot 5 ns, wat overeen-komt met bandbreedten van 64 MHz tot 1,1 GHz. In figuur C.13 werd dit geıllustreerdmet het spectrum van een blokgolf met een periode van 22 ns, en stijg- en daaltijden van1 ns. Met ziet de initiele 1/f -afval van −20 dB/decade in de oneven harmonischen, dieovergaat in een −40 dB/decade voorbij 320 MHz, zoals bepaald door de flanksteilheid.

Wanneer |γ(s)x| (veel) kleiner is dan 1, kan men eγ(s)x goed benaderen door 1, of be-ter door 1 + γ(s)x, en men benadert de transmissielijn als een circuit met gelokaliseerdeparameters, zoals de totale weerstand R = rL, haar totale capaciteit C = cL, enzovoort.

Een tweede belangrijke vereenvoudiging volgt uit de vaststelling dat men in de prak-tijk hoofdzakelijk twee soorten transmissielijnen tegenkomt als model voor interconnec-ties: dat van vrijwel verliesloze lijnen (lijnen met zeer kleine r en g relatief tot ωl resp. ωc

in de interessante frequentieband), en dat van lijnen met hoge langsweerstand maar klei-ne zelfinductie (r >> ωl). Het eerste type lijn komt men hoofdzakelijk tegen in bedradingop PCB’s en in afzonderlijke kabels (bijvoorbeeld netwerkbedrading of interconnectieka-bels van computer-randapparaten); uiteraard bedoelen wij hier niet de werking bij zeerlage frequenties of in gelijkstroomvoorwaarden, aangezien dan de resistieve componentin de langsimpedantie domineert, en aan onze veronderstellingen niet is voldaan. Hettweede type vindt men in de verbindingen op het oppervlak van chips in de modernesubmicrontechnologieen of in geavanceerde multi-chipmodules. Als gevolg van de zeerkleine dwarsdoorsneden van de geleiders wordt de resistiviteit van de gebruikte materi-alen wel zeer belangrijk. Bovendien worden de zelfinductiecomponent relatief klein ende dwarscapaciteit groot.

Korte lijnen versus lange, en verliesloze versus verlieshebbende

Laat ons eerst even onderzoeken wat de benadering voor korte lijnen inhoudt. Beschouwde schakeling in figuur C.14. Veronderstel voor de eenvoud de lijn verliesloos. Wij veron-derstellen dat de belasting aan het uiteinde puur resistief is, en dat de lijn niet afgesloten

290

Page 295: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.14: Reflecties aan een niet-afgesloten bijna verliesloze lijn met een lengte van 1 m.Bovenste grafiek: repons van de lijn, en van het benaderend LRC π-netwerk. Onderste figuur:benadering van het macroscopisch gedrag door enkel de dwarscapaciteit. De parameters van delijn zijn: r =1 mΩ/m, l = 250 nH/m, c =0,1 nF/m en g = 10−6 Siemens/m. Hieruit volgt eenkarakteristieke impedantie van 50 Ω en een golfsnelheid van 0,2 m/ns

is op haar karakteristieke impedantie, maar op een veel hogere waarde. Wij sturen de lijnook aan vanuit relatief grote impedantie (2× Z0).

Wij leggen een puls aan met grote flanksteilheid: 1 ns stijgtijd, terwijl de lijn een door-looptijd heeft van ca. 5 ns (de lijn is 1 m lang). Het antwoord van het systeem bestaatduidelijk uit een superpositie van golven, en de spanning aan het uiteinde gaat stapsge-wijs naar haar eindwaarde. De verhouding van de stapgrootte van de opeenvolgendestappen wordt bepaald door de reflectiecoefficienten aan beide uiteinden.

Een merkwaardige vaststelling is de volgende. Wanneer wij de lijn vervangen dooreen π-netwerk met de totale zelfinductie als langsimpedantie, en de helft haar totale ca-paciteit als dwarsimpedanties, dan verkrijgen wij een oscillatorisch overgangsverschijn-sel, waarvan de periode nauw verwant is met de looptijd doorheen de lijn. Wanneerwij nog verder vereenvoudigen, en enkel de dwarscapaciteit overhouden als vervangingvan de transmissielijn, dan krijgen wij een zuiver RC-gedrag dat ruwweg overeenkomt methet gedrag van de werkelijke lijn, maar gefilterd door een laagdoorlaatfilter. Het macroscopischgedrag van de lijn – het opladen van de geleider tot de eindspanning over de parallel-schakeling van bron- en belastingsimpedanties – wordt microscopisch gerealiseerd door

291

Page 296: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.15: Reflecties aan een niet-afgesloten bijna verliesloze lijn met een lengte van 0.1 mRepons van de lijn, en van het benaderend RC π-netwerk. De parameters van de lijn zijn: r =1mΩ/m, l = 250 nH/m, c =0,1 nF/m en g = 10−6 Siemens/m. Hieruit volgt een karakteristiekeimpedantie van 50 Ω en een golfsnelheid van 0,2 m/ns.

heen- en weerlopende golven van afnemende amplitude die de spanning op de lijn ite-ratief naar haar eindwaarde brengen. Deze uitspraak kan bevestigd worden door eenanalytische benadering van de vergelijkingen; wij laten dit over aan de lezer.

Dit betekent dat in veel gevallen waar de bandbreedte van de circuits of signalen diegebruik maken van de lijn, niet hoog is, de vervanging van een niet-getermineerde lijndoor haar totale capaciteit een aanvaardbare eerste benadering kan zijn. De karakteristie-ke duur van het overgangsverschijnsel wordt niet bepaald door de looptijd door de lijn,maar wel door de tijd die men nodig heeft om de totale lijncapaciteit op te laden over deaanwezige bron- en belastingsimpedanties.

Deze benadering wordt des te beter naarmate de lijn korter wordt. Wanneer wij alstweede voorbeeld een lijn van 10 cm lang nemen (doorlooptijd 0,5 ns), en die ook aanstu-ren met een flank met stijgtijd 1 ns, dan verkrijgen wij figuur C.15. Het vervangen vande lijn door enkel haar totale capaciteit geeft nu excellente resultaten.

Beschouwen wij nu als derde voorbeeld een sterk verlieshebbende lijn, met langs-weerstand r en dwarscapaciteit c. Wij veronderstellen dat de bronimpedantie 0 is, en debelastingsimpedantie∞. De reflectiecoefficienten zijn dan −1 resp. 1, en na enkele een-voudige berekeningen volgt de uitdrukking voor de Laplace-getransformeerde van despanning op de lijn, wanneer wij een stap met amplitude V aanleggen op t = 0:

V (x, s) =V

s

e−√

srcx + e−√

src(2L−x)

1 + e−√

src2L=

V

s

cosh(√

src(L− x))cosh(

√srcL)

.

Men kan deze uitdrukking iverteren naar het ijdsdomein. Figuur C.16(a) toont de resul-taten van de inversie. De tijdsas werd genormaliseerd op τ = L2rc, de tijdsconstantedie men zou krijgen door de totale lijncapaciteit op te laden over de totale lijnweerstand.Belangrijk om op te merken is dat de curven nergens echte exponentielen zijn, en dat despanning aan het open uiteinde 90 % van de eindwaarde bereikt na ongeveer τ secon-den. Noteer dat deze tijdsconstante echter kwadratisch afhangt van de lengte van de lijn! Integenstelling tot een verliesloze transmissielijn, waar men mits correcte afsluiting vertragingstij-den kan verkrijgen die proportioneel zijn met de lijnlengte, zijn deze voor verlieshebbende lijnen

292

Page 297: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.16: Het gedrag van een zuivere RC-lijn aangestuurd met een spanningsbron, en openaan het andere uiteinde; (a) de respons op diverse plaatsen in de lijn. De karakteristieke tijd isτ = L2rc; (b)de tijd die nodig is om 90 % van de eindwaarde te bereiken, en de vergelijking meteen oneindig lange RC-lijn met dezelfde parameters. Het feit dat de lijn aan het uiteinde open is,maakt haar veel sneller dan hetzelfde stuk uit een oneindig lange lijn.

kwadratisch in de lengte. De lijn wordt goed benaderd door een R/C π-netwerk, met alslangsweerstand de totale lijnweerstand, en als dwarscapaciteiten de helft van de totalelijncapaciteit. Figuur C.16(b) toont de tijdstippen waarop 90 % van de eindwaarde be-reikt wordt op diverse plaatsen in de lijn van lengte L, alsook in een oneindig lange lijnmet dezelfde r- en c-waarden. In beide gevallen werden de afstanden genormaliseerd opL, en de tijden op τ . Men ziet dat, naarmate men verder gaat in de oneindige lijn, het heellang begint te duren alvorens de 90 %-grens bereikt wordt, en dat de stijging van dezetijdsduur ook sneller is dan lineair.

Getermineerde versus niet-getermineerde lijnen

Verliesloze transmissielijnen hebben een reele karakteristieke impedantie, en door eengeschikte keuze van de bron- en belastingsimpedanties kan men de reflectiecoefficientenaan een of beide zijden 0 maken. Dit noemt men het termineren of afsluiten van de lijn.Een terminatie zorgt ervoor dat de aankomende golf niet weerkaatst wordt, en dat dushet overgangsverschijnsel dat incrementeel de spanning op de lijn opbouwt, sterk kaningekort worden, en zelfs kan beperkt worden tot de looptijd doorheen de lijn.

Bovendien kan de aanwezigheid van reflecties ingeval van niet-terminatie soms lei-den tot onverwachte problemen. Wanneer men de lijn aanstuurt met signalen waarvande periode een veelvoud is van de looptijd doorheen de lijn, dan kunnen resonanties op-treden, zodanig dat spanningen kunnen ontstaan die helemaal niet overeenkomen metde gewenste logische spanningswaarden. Een tweede probleem kan zich stellen met lo-gische circuits: wanneer een flipflop rechtstreeks een lijn aandrijft die een sterke reflectievertoont, kan deze reflectie in sommige gevallen de flipflop ongewenst doen omkippen.En reflecties zelf kunnen in sommige gevallen zo groot zijn dat zij aanleiding geven totspanningen in het verboden gebied, en eventueel ook aanleiding geven tot verkeerde in-terpretatie. Al deze redenen wijzen erop dat lange lijnen, waar de reflecties belangrijkkunnen zijn, dienen getermineerd te worden voor een betrouwbare werking.

293

Page 298: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bij punt-tot-puntverbindingen kan men op twee manieren een lijn termineren: doorparallelterminatie en door serieterminatie. Bij parallelterminatie sluit men de lijn aan hetontvangende uiteinde af op een resistief netwerk, bijvoorbeeld een spanningsdeler, dieaan twee voorwaarden moet voldoen:

• de impedantie van parallelschakeling van de twee takken moet gelijk zijn aan dekarakteristieke impedantie van de lijn (wij veronderstellen dat de ingangsimpedan-tie van het circuit dat aangesloten is aan de lijn groot is t.o.v. Z0);

• de openklemspanning van de spanningsdeler moet zo zijn dat de ruismarges vande gebruikte componenten optimaal benut worden, en dat bovendien de dissipatiein de afsluitweerstanden zo klein mogelijk is.

Bij een parallelterminatie bestaat het hele overgangsverschijnsel uit een enkele looptijddoorheen de lijn. Dit is dus een methode om snelle circuits te maken. Het probleemis natuurlijk de dissipatie: de impedantie van de gebruikte transmissielijnen is zeldengroter dan 200 Ω, en dikwijls maar 50 Ω. Wanneer de spanningszwaai van de logischesignalen dan 5 Volt zou bedragen, en de openklemspanning van de terminatieschakelingis 2,5 Volt, dan bestaat de spanningdeler bijvoorbeeld uit twee weerstanden van 100 Ω, ofuit een weerstand van 50 Ω naar 2,5 Volt. De gemiddelde dissipatie in de weerstanden isin het eerste geval V 2/R = 25/0,1 = 250 mW, omdat steeds over een van de weerstandende volle 5 Volt staat. In tweede geval staat over de weerstand steeds 2,5 Volt, en is dedissipatie (2, 50)2/50 = 125 mW, maar men heeft een extra voedingsspanning nodig.Andere technieken maken gebruik van een serieschakeling van een terminatieweerstanden een voldoend grote condensator als terminatiecircuit, maar hier moet men oplettendat de mogelijk variabele gelijkstroomcomponent van de signalen niet gaat zorgen voorproblemen.

De vermelde dissipaties zijn zeer grote waarden vergeleken met de eigendissipatievan de poorten zelf. Bij deze dissipatie moet bovendien nog de dynamische componentbijgeteld worden die nodig is om de lijn repetitief op te laden en te ontladen.

De statische dissipatie kan sterk gereduceerd worden door gebruik te maken van se-rieterminatie. Hier zorgt men ervoor dat men een extra impedantie opneemt aan deaanstuurkant, in serie met de lijn, zodanig dat de totale impedantie van waaruit men delijn stuurt gelijk is aan de karakteristieke impedantie. Wanneer men op deze manier eengolf op de lijn stuurt, zal de heenlopende golf (ter grootte van de helft van de openklem-spanning van de bron) het uiteinde bereiken, en afhankelijk van de impedantie op dieplaats al dan niet reflecteren. Het eindpunt neemt in elk geval een waarde aan gegevendoor de grootte van de openklemspanning van de bron, gedeeld door de spanningsde-ler gevormd door de karakteristieke impedantie en de belastingsimpedantie (ga dit na).De golf die eventueel weerkaatst wordt (indien de belastingsimpedantie verschilt van dekarakteristieke impedantie), loopt terug tot aan de bron, en wordt daar volledig geabsor-beerd.

Het hele overgangsverschijnsel duurt nu twee looptijden doorheen de lijn, maar deontvanger heeft zijn eindwaarde al bereikt na een enkele lijntijd. Wanneer de belastings-impedantie hoofdzakelijk capacitief is (b.v. een CMOS-poort), dan valt de statische dis-sipatie op nul na het overgangsverschijnsel, ook bij grote spanningszwaai op de lijn. Dedrie gevallen worden getoond in figuur C.17.

Zoals al gesuggereerd vormt, vooral bij hoge schakelfrequenties, de dynamische com-ponent van de dissipatie een belangrijke bijdrage. Wanneer men bijvoorbeeld de lijn uit

294

Page 299: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.17: Het belang van terminatie van lange verliesloze lijnen. Bovenaan: niet-getermineerde lijn. Bemerkt de grote opslingeringen, en de lange duur van het hele verschijnsel.Midden: parallelterminatie. Onder: serieterminatie.

figuur C.14 neemt, dan is haar totale capaciteit gelijk aan 0,1 nF. Het op- en ontladen (tot5 V) dissipeert een energie van CV 2 =2,5 nJ, wat opnieuw veel groter is dan de schake-lenergie van een poort (orde 1 tot 100 pJ). Het versturen van een signaal van 100 MHzop de lijn zou een vermogen vragen van 250 mW, evenveel als de statische dissipatie. Bijkorte lijnen (t.o.v. de frequentie van de signalen) neemt de dynamische component toemet de lengte van de lijn: een steeds grotere capaciteit moet dynamisch opgeladen enontladen worden om de signaalwisselingen over te brengen.

Om beide vormen van dissipatie gevoelig te reduceren moet men de spanningszwaaiover de lijn terugbrengen van veel lagere waarden. Bij ECL gebeurt dit van nature uit,omdat ECL zelf al een kleine spanningszwaai heeft. Bij TTL zal men de zwaai geen 5 Voltnemen, maar hoogstens 3,5 V. Moderne vormen van CMOS gaan steeds meer naar lagerespanningen (3,3 V, 2,5 V en lager); draad- en kabelverbindingen (bijvoorbeeld de popu-laire SCSI kabelverbindingen) maken gebruik van LVDS, waarbij men zich beperkt toteen spanningzwaai van 0,25 – 0,40 V rond een centrale spanning van 1,2 V, over getwijn-de paren met karakteristieke impedantie van 27 – 100 Ω. Op backplanes en moederbordenmaakt men gebruik van BTL en GTL, die een spanningszwaai hebben van 2,1 V resp.1,2 V.

C.3.2 Meerpuntconnecties en bussen

Tot nu toe hebben wij het gehad over punt-tot-puntverbindingen, dit zijn verbindingenwaar er geen bijkomende aftakkingen zijn aan de interconnectie. In heel wat gevallen isdit een goed model, omdat in de meeste normale elektrische circuits het aantal tweepunt-verbindingen veruit de meerderheid vormt. Nochtans zijn er in de meeste circuits ookeen aantal verbindingen die meer (en sommige veel meer) dan twee punten verbinden. Indeze verbindingen onderkennen wij twee sub-klassen: deze waarbij er een enkel aanstu-ringspunt is, en meer dan een ontvanger (bijvoorbeeld de distributie van een kloksignaal

295

Page 300: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

vanuit een centraal punt), en deze van de bussen4. Bussen komen bijzonder veel voor incomputersystemen, waar men de diverse onderdelen (processor, geheugen, randappara-ten) met elkaar wil verbinden via een gemeenschappelijk medium (op het moederbordof via een passieve backplane). Maar ook de coaxiale Ethernetkabel is een elektrische bus.

Bij een digitale bus is het zo dat er op dezelfde geleider meerdere poortoutputs aange-sloten zijn, wat vereist dat men speciale voorzorgen neemt om interferentie tussen dezeoutputs te vermijden. De elektrische eigenschappen van de outputs die men daarvoorkan gebruiken zijn in eerdere hoofdstukken al aan bod gekomen: men gebruikt poortenmet open collector (of open drain in de moderne GTL MOS-familie), ofwel poorten metafschakelbare output (tri-state).

Op elk ogenblik, wanneer de aansturing van de poorten correct verloopt, zal hoog-stens een enkele output het niveau op de bus dicteren; op deze geleider zullen dan eenaantal luisterende inputs, en een aantal afgeschakelde outputs aangesloten zijn. Er zijndus geen grote verschillen met de andere soort meerpuntsconnecties, en wij kunnen bei-de vormen gelijktijdig behandelen.

Meerpuntconnecties verschillen dus van punt-tot-puntverbindigen op drie vlakken:(i) er zijn meerdere belastingen aangesloten op de geleider, op verschillende plaatsen;(ii) het aanstuurpunt bevindt zich niet langer altijd op een uiteinde van de lijn, en delijn kan vertakkingen vertonen; en (iii) de poorten die de lijn aansturen hebben specialeeigenschappen. Wij zullen nu kort deze punten in wat meer detail overlopen.

Het effect van meerdere aansluitpunten

Elk aansluitpunt op een transmissielijn betekent een gelokaliseerde belasting. De logi-sche families die wij bestudeerd hebben vertonen alle een hoge tot zeer hoge resistieveingangsimpedantie vergeleken met de karakteristieke impedantie van de lijn. Elke poor-tingang heeft echter ook een capaciteit, en voor snelle verschijnselen vertoont deze eentransiente impedantie die wel vergelijkbaar wordt met de lijnimpedantie. Deze ingangs-capaciteiten zullen een complex patroon van reflecties veroorzaken bij elke transitie opde bus, en zullen bovendien de totale macroscopische capacitieve belasting van de aan-stuurpoort verhogen.

Wegens de complexiteit van de reflectiepatronen is hun nauwkeurige berekeningmeestal uitgesloten, maar zolang de signaalamplitudes van deze reflecties klein blijvenm.b.t. de ruismarges hoeven wij ze ook niet in detail te kennen. Hoe groot kunnen dereflecties dan wel worden? Om hiervan een idee te krijgen beschouwen wij een inputmet een capaciteit van 10 pF (een zeer courante waarde). Een voorbijlopende golf meteen (grote) flanksteilheid van 5 V/ns op een lijn van 50 Ω zal deze capaciteit opladen,en hiervoor een stroom vereisen van CdV/dt = 50 mA. Als deze capaciteit niet op hetuiteinde van de lijn staat, ziet zij aan weerszijden een omgeving van 50 Ω, wat in totaaldus 25 Ω uitmaakt (parallelschakeling). De capacitieve stroom veroorzaakt dus een ver-storing van ca. 25 · 0,05 =1,25 Volt. In dit geval is de opgewekte verstoring eerder groot.Met een meer realistische waarde van de flanksteilheid (b.v. 2 V/ns) blijft de verstoringbeperkt tot 0,5 V, en wordt in de praktijk beschouwd als ‘ruis’.

Een effect dat wel merkbaar blijft, en waarmee rekening moet gehouden worden wan-neer er aantal capacitieve belastingen op de lijn aangesloten worden, is de schijnbare ver-

4De term bus wordt in meer dan een betekenis gebruikt: soms bedoelt men alleen maar een bundeldraden; op andere ogenblikken bedoelt men interconnecties die kunnen aangestuurd worden door meerdan een bron, en daardoor een vorm van arbitrage nodig hebben. Dit is de betekenis die wij hier hanteren.

296

Page 301: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

hoging van c, de capaciteit van de lijn per lengte-eenheid. Deze verhoging uit zich dooreen verlaging van de effectieve karakteristieke impedantie, en een evenredige verlagingvan de golfsnelheid.

Een andere topologie

De distributie van een signaal naar meerdere plaatsen vereist een meerpuntnet. In som-mige gevallen, zoals de verdeling van een kloksignaal naar verschillende plaatsen, wenstmen dat de tijdsverschuiving van dat gedistribueerde signaal op de diverse plaatsen mi-nimaal is, m.a.w. men wil dat de flanken van het kloksignaal zich overal tegelijkertijdvoordoen. Om dit mogelijk te maken op een PCB zorgt men ervoor dat de afstand van degemeenschappelijke bron tot aan de eindpunten waar het kloksignaal moet afgeleverdworden, gelijk zijn (in de veronderstelling dat de loopsnelheid van de golven in elk deelvan de lijn dezelfde is). Dit kan natuurlijk niet door de verbinding als een transmissielijnvia alle bestemmingen te loodsen; men maakt in de plaats een geometrisch boomvormigestructuur, die op een symmetrische manier zoveel takken afsplitst als er eindpunten zijn,en zodanig dat de afstanden naar alle eindpunten even groot zijn. Dit schept natuurlijkhet probleem van de vertakkingen. Wanneer men voor het heengaande signaal een im-pedantiesprong wenst te vermijden (wat reeds zou leiden tot reflecties in de heengaandegolf), moet de parallelschakeling van de takken voorbij de splitsing precies de zelfde ka-rakteristieke impedantie hebben als de tak voor de splitsing. Is het aantal af te splitsentakken groot, dan zal de impedantie aan de wortel van de boom zeer laag worden wilmen nog realiseerbare impedantie aan de eindpunten overhouden5. Bovendien zal elkereflectie die terugkomt van een eindpunt weerkaatsen tegen de impedantiesprong aande splitsingen. Men moet de lijnen dus op hun eindpunt termineren.

Klokbomen op het chipoppervlak zijn van een totaal andere aard, omdat de intercon-necties hier niet gezien kunnen worden als bijna verliesloze transmissielijnen, en omdatde verbindingen kort zijn gegeven het signalspectrum. Hier zal men meestal gebruikmaken van zg. actieve klokbomen, waar bij elke vertakking een versterke opgenomen is diede signalen herstelt en bovendien in een kleinere belasting resulteert voor de versterkerstroomopwaarts. Het ontwerp van dergelijke klokdistributiecircuits voor hoge snelheidstaat bekend als een moeilijke opgave, en wij gaan er hier niet verder op in. Figuur C.18toont hoe een klokdistributienetwerk op een PCB er zou kunnen uit zien. Voor een goedewerking is vereist dat de uiteinden parallelgetermineerd worden.

Een buslijn op een backplane of moederbord heeft een veel eenvoudiger topologie:het is een lijn zonder aftakkingen. Maar het is wel zo dat zowel de bronnen als de ont-vangers niet noodzakelijk aan het uiteinde van de verbinding staan. Dit heeft als gevolgdat, zoals daarnet al opgemerkt, zowel de bronnen als de ontvangers ingebed liggen ineen omgeving die maar de helft van de karakteristieke impedantie vertoont van de ori-ginele lijn. Wanneer er bovendien veel ontvangers zijn aangesloten moet men rekeninghouden met de bijkomende verlaging van de karakteristieke impedantie door hun in-gangscapaciteit.

5Het is immers zeer moeilijk om verbindingen met hoge karakteristieke impedantie te maken op eenPCB: de baantjes zouden veel te smal moeten worden.

297

Page 302: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.18: Een geetste passieve klokboom. De karakteristieke impedantie van een baantjeboven een aardvlak is ruwweg omgekeerd evenredig met de breedte van de baan.

Open-collectorbussen versus tri-state-bussen

Laat ons nu even concreet onderzoeken hoe wij met open-collectorpoorten (of hun mo-derne variant, open-drainpoorten) een bus kunnen maken. Beschouw daartoe figuur C.19.Wij hebben een viertal segmenten van 10 cm elk, met een karakteristieke impedantie van132 Ω. Op de punten tussen de segmenten staat telkens een bron (bijvoorbeeld een stan-daard TTL 7406 open-collector driver) en een ontvanger (bijvoorbeeld een standaard TTL7404 invertor). Zowel de bron als de ontvanger vormen een capacitieve belasting voor debus. Hoewel standaard TTL duidelijk niet langer gebruikt wordt voor dit soort functies,zijn de conclusies die wij eruit zullen trekken perfect overdraagbaar op de moderne va-rianten BTL en GTL, gebruikt in hedendaagse bussen. Er werd gekozen voor standaardTTL wegens de beschikbaarheid van simulatiemodellen in de Spice-omgeving voor hetuitwerken van dit voorbeeld.

Wij onderscheiden twee gevallen: een met niet-getermineerde bus, waarbij een z.g.pull-up weerstand van 220 Ω er wel voor zorgt dat de bus een hoog niveau aanneemtwanneer geen enkele bron in geleiding staat, maar niet echt zorgt voor een busterminatie;en een met een echte parallelterminatie aan beide uiteinden van de bus. De terminatiezorgt tevens voor het hoge logische niveau. De weerstandsdelers bestaan uit resp. 220 en330 Ω, wat een openklemspanning oplevert van 3 V, en een impedantie van 132 Ω.

Figuur C.19 toont de resultaten van beide simulaties samen. Er vallen een aantaldingen op:

• De spanningszwaai van de niet-getermineerde bus is 5 Volt; deze van de getermi-neerde is lager (3 V).

• De spanningsvormen van de getermineerde bus zijn ‘properder’, en hebben eengrotere flanksteilheid. De niet-getermineerde versie doorloopt het verboden gebied

298

Page 303: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Figuur C.19: Een getermineerde versus een niet-getermineerde open-collectorbus.

299

Page 304: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

rond de logische drempel op een oscillerende manier, wat fouten kan veroorzakenbij ontvangers in CMOS.

• Bij de niet-getermineerde bus is bovendien de asymmetrie tussen de opgaande ende neergaande flank duidelijk merkbaar. Deze hangt uiteraard af van de groottevan de pull-up weerstand. De weerstand verder verlagen zou de flanken verbeteren,maar tegelijk de dissipatie opdrijven. De niet-getermineerde bus kan niet gebruiktworden tot dezelfde frequenties als de getermineerde bus.

• Geen van beide busuiteinden is getermineerd in het eerste geval. Dit resulteert innegatieve spanningen na een neerwaartse transitie (reflectie), en in oscillatiever-schijnselen (ringing) met een periode die bepaald wordt door de lengte van het uit-einde. De negatieve spanningen worden weggewerkt door de dioden die aanwezigzijn aan de ingangen van de 7404 – zonder de ontvangerchips zouden zij veel meeruitgesproken zijn.

De periode van de oscillaties is ruwweg viermaal de enkelvoudige doorlooptijdvan het bussegment; voor een buseind van 10 cm met de gegeven golfsnelheid isdit 4 × 0,45 ns = 1,8 ns, wat een frequentie oplevert van 550 MHz.

• Omdat het hier gaat over open-collectorpoorten wordt het vermogen dat gedis-sipeerd wordt in de terminatieweerstanden, en door het op- en ontladen van decapaciteiten verbonden met de bus, geleverd door de bronnen verbonden met determinatienetwerken of pull-up, en is dus eenvoudig te meten. Wat betreft de ver-mogendissipatie is de niet-getermineerde oplossing duidelijk beter (ca. 45 mW ver-sus 127 mW). De dynamische component van de dissipatie is hier wegens de eerderlage signaalfrequentie nog zeer beperkt, en de grotere spanningszwaai weegt noglang niet op tegen de statische dissipatie in het terminatiecircuit van de getermi-neerde versie. Een terminatie met een enkele weerstand van 132 Ω aan elke kantnaar 3 V zou echter al een hele verbetering zijn: de dissipatie daalt dan tot 36 mW!

Hedendaagse bussen worden ook vaak gemaakt met behulp van poorten met afschakel-bare uitgang. Ook hier kan men opteren voor al dan niet gebruiken van terminatie. Inhet bijzonder voor korte bussen (gemeten naar de stijgtijd van de signalen) ziet men afvan terminatie; en is dan overigens ook geen pull-up weerstand nodig, wat de bus veel ef-ficienter maakt. Langere bussen moet men ook hier termineren. De simulatie en analysevan deze gevallen wordt overgelaten aan de lezer.

Het is duidelijk dat deze korte behandeling van de interconnectieproblematiek niet meeris dan een eerste kennismaking. Voor een diepgaander behandeling van de interconnectie-en EMC-problematiek in snelle digitale schakelingen kan de lezer terecht in [Johnson93]en [Montrose99], alsook in cursussen in de Masteropleiding.

300

Page 305: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bijlage D

Maple-fragmenten en - voorbeelden

D.1 Representaties in Maple

De volgende voorbeelden (figuren D.1, D.2, D.3, D.4, D.5, D.6, D.7) tonen hoe men inMaple de diverse representatievormen kan voorstellen, en hoe men kan converteren tus-sen deze vormen.

301

Page 306: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Definitie van een Boolese vorm als streng

> bv1:="(X + YZ’)’(A + B)"; variabelen(bv1);

bv1 := “(X + YZ’)’(A + B)”

Conversie naar intern inert formaat over de operatoren &or, &and en &not

> l1:=bv2logic(bv1);

l1 := &not( V 3 &or ( V 4 &and &not( V 5)))&and ( V 1 &or V 2)

Met de functie bv2set vertalen wij een Boolese vormrechtstreeks naar eenternaire representatie van ternaire subkubussen (niet-minimalerepresentatie!).

> bv2set(bv1);

[[1, −, 0, −, 1], [1, −, 0, 0, −], [−, 1, 0, −, 1], [−, 1, 0, 0, −]]

Uit de logic-representatie kan men ook de lijst van mintermen van defunctie halen met behulp van de functie logic2mintermen.Dit is een hierarchische lijst, gesorteerd volgensgewicht.Alle variabelen in _V worden in aanmerking genomen.

> m1:=logic2mintermen(l1);

m1 := [[[0, 1, 0, 0, 0], [1, 0, 0, 0, 0]], [[1, 1, 0, 0, 0], [1, 0, 0, 0, 1], [0, 1, 0, 0, 1]],[[0, 1, 0, 1, 1], [1, 1, 0, 0, 1], [1, 0, 0, 1, 1]], [[1, 1, 0, 1, 1]]]

Toepassing van mintermen2decimaal op de lijst geeft de decimalerepresentatie van de mintermen:

> dec1:=mintermen2decimaal(m1);

dec1 := [[8, 16], [24, 17, 9], [11, 25, 19], [27]]

Omgekeerde conversies zijn ook mogelijk: van kubuslijst ofmintermlijst naar Boolese vorm met som2bv:

> bv1_2:=som2bv(m1);

bv1 2 := “A’BX’Y’Z’ + AB’X’Y’Z’ + ABX’Y’Z’ + AB’X’Y’Z + A’BX’Y’Z + \A’BX’YZ + ABX’Y’Z + AB’X’YZ + ABX’YZ”

Noteer dat de laatste vorm een disjunctieve standaardvorm is,gesorteerd volgens de decimale waarde van de mintermen. Menkan ook de Reed-Mullergedaante afleiden, door de functielogic2rm. De operator "+" is hier uiteraardde exclusieve-OF:

> Reed_muller1:=logic2rm(l1);

Reed muller1 := A + B + A B + A X + B X + A B X + A Y + B Y + A B Y+ A X Y + B X Y + A B X Y + A Y Z + B Y Z + A B Y Z+ A X Y Z + B X Y Z + A B X Y Z

Figuur D.1: Een fragmentje uit een Maple-sessie die gebruik maakt van enkele representatiesvan Boolese functies. Een sequentie van operaties: de definitie van een Boolese vorm, de extrac-tie van de variabelen, de conversie naar het intern logic-formaat, de conversie naar een ternairerepresentatie, de conversie naar mintermrepresentatie (een hierarchische lijst ingedeeld volgensgewicht), en tot slot de decimale representatie.

302

Page 307: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Wij kunnen functies met minstens 2 en ten hoogste 5 variabelen metbehulp van de functie Karnaugh ook in een Karnaugh-kaart tonen, dit via eenvoorstelling door middel van mintermlijsten van de ON-set en de DC-set:

> bv_on:="(X+Y’)Z+W’(X’+U)";> bv_dc:="XYZ’W";> variabelen(cat(bv_on,bv_dc));> Karnaugh(logic2mintermen(bv2logic(bv_on)),> logic2mintermen(bv2logic(bv_dc)),varnames);

bv on := “(X+Y’)Z+W’(X’+U)”bv dc := “XYZ’W”

dd

11 1

1

1

1

1

1

1 1

1

1

11

1

1

1

1

1

1

U=1U=0

Z

Y

Z

Y

X

W

X

W

Figuur D.1: – vervolg. Een karnaugh-kaart met vijf variabelen en met don’t care-termen (ziehoofdstuk 3).

D.2 Combinatorische minimalisatie in Maple

Figuren D.8, D.9, D.10, D.11 tonen implementaties in Maple van een aantal minimalisa-tiealgoritmen.

303

Page 308: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/logic2rm := proc(lf )local res, x, y, rep, z, varnos, allfalse;global ‘&not ‘, ‘&and ‘, ‘&or ‘, V ;

‘&not ‘ := proc(x) not x end proc ;‘&and ‘ := proc() convert([args], ‘and ‘) end proc ;‘&or ‘ := proc() convert([args], ‘or ‘) end proc ;unassign(’ V ’) ;varnos := [seq(i, i = 1..nops(vars))] ;rep := [] ;for x in combinatpowerset(varnos) do

z := false ;for y in combinatpowerset(x) do

V := map(x→ member(x, y), varnos) ; if eval(lf ) then z := not z end ifend do;if z then rep := [op(rep), x] end if

end do;unassign(’ V ’) ;unassign(‘&and ‘, ‘&or ‘, ‘&not ‘) ;convert(map(x→ ‘if‘(x = [], 1, convert(map(z → varsz, x), ‘ ∗ ‘)), rep), ‘ + ‘)

end proc

Figuur D.2: De transformatie naar de Reed-Mullerrepresentatie in Maple. De inerte interne re-presentatie van de functie in lf wordt geınterpreteerd over het Boolese domein, door een concretetijdelijke definitie van de inerte operatoren &and, &or, en &not. De coefficienten in de expansieworden berekend door herhaalde functie-evaluatie in een dubbele iteratie over machtsverzame-lingen van variabelen. De buitenste lus loopt gewoon over alle deelverzamelingen x van de va-riabelen; de binnenste lus doorloopt alle deelverzamelingen y van de gekozen deelverzamelingx, en evalueert de functie wanneer de variabelen in y ’waar’ zijn. Telkens een ’waar’ resulteert,wordt z gecomplementeerd (initieel vals). De eindwaarde van z is de gewenste coefficient.

304

Page 309: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/elimnot := proc()local ff , ff1 , opf , nn;

nn := nargs ;ff := args1 ;opf := op(0, ff ) ;ff1 := op(ff ) ;if opf = ‘&not ‘ then

if nn = 2 thenif op(0, ff1 ) = ‘&and ‘ then ‘&and‘(op(map(elimnot , [op(ff1 )])))elif op(0, ff1 ) = ‘&or ‘ then ‘&or‘(op(map(elimnot , [op(ff1 )])))else ff1end if

elseif op(0, ff1 ) = ‘&and ‘ then ‘&or‘(op(map(elimnot , [op(ff1 )], true)))elif op(0, ff1 ) = ‘&or ‘ then ‘&and‘(op(map(elimnot , [op(ff1 )], true)))elif ff1 = true then falseelif ff1 = false then trueelse ffend if

end ifelse

if nn = 1 thenif opf = ‘&and ‘ then ‘&and‘(op(map(elimnot , [ff1 ])))elif opf = ‘&or ‘ then ‘&or‘(op(map(elimnot , [ff1 ])))else ffend if

elseif opf = ‘&and ‘ then ‘&or‘(op(map(elimnot , [ff1 ], true)))elif opf = ‘&or ‘ then ‘&and‘(op(map(elimnot , [ff1 ], true)))elif ff = true then falseelif ff = false then trueelse ‘&not‘(ff )end if

end ifend if

end proc

Figuur D.3: De implementatie van stap 1 uit algoritme 2.1. De interne inerte representatie van deBoolese vorm wordt op een recursieve manier doorlopen, tot wanneer alle inversies &not enkelop lettervormen staan.

305

Page 310: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/distribute := proc(ff )localff1 , opf , nn, literals, orterms, andterms, x, y, res, newterm, v, result , literalsets;

opf := op(0, ff ) ;ff1 := op(ff ) ;if ff = true then return end if ;if ff = false then return end if ;if opf = ‘&or ‘ then

res := ;for x in ff1do

result := distribute(x) ; for y in result do res := selectiveadd(y, res) end doend do

elif opf = ‘&and ‘ thenliterals := ;andterms := ;orterms := ;for x in ff1 do

if not member(op(0, x), ‘&and ‘, ‘&or ‘) thenif not member(x, true, ‘&not‘(false)) then

literals := literals union xend if

elif op(0, x) = ‘&or ‘ then orterms := orterms union xelse andterms := andterms union xend if

end do;if literals = then literalsets := []elif isnil(literals) then literalsets := []else literalsets := [literals]end if;

Figuur D.4: Stap 2 van algoritme 2.1. Opnieuw wordt, recursief, de inerte Boolese vorm door-lopen, en worden haakjes uitgewerkt door gebruik te maken van distributiviteit. De verkregenproductvormen worden voorgesteld door verzamelingen lettervormen, wat automatisch herhaal-de symbolen elimineert. Bovendien test de hulpprocedure isnil voor het gelijktijdig optreden vanX en X ′, en zorgt de routine selectiveadd ervoor dat producten niet dubbel voorkomen, of elkaarkunnen bevatten.

306

Page 311: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

if member(‘&or ‘, map(x→ op(0, x), ff1)) thenliteralsets := [op(literalsets), op(map(distribute, orterms))]

end if;if member(‘&and ‘, map(x→ op(0, x), ff1)) then

andterms := ‘union‘(map(distribute, andterms)) ;literalsets := [op(literalsets), op(andterms)]

end if;if 1 < nops(literalsets) then

x := combinatcartprod (literalsets) ;res := ;while not xfinished do

newterm := xnextvalue() ;newterm := collapse(op(newterm)) ;if not isnil(newterm) then res := selectiveadd(newterm, res) end if

end do;res

else ‘if‘(op(literalsets) = , , op(literalsets))end if

else ff end if

end proc

Figuur D.4: – vervolg. Stap 2 van algoritme 2.1.

SA/expand2minterms := proc()local s, v, s1 , s2 , varno;

s := args1 ;if nargs = 1 then varno := 1 else varno := args2 end if ;v := V varno ;if not (member(v, s) or member(‘&not‘(v), s)) then

s1 := sunion v ;s2 := sunion ‘&not‘(v) ;if varno < nops(vars) then

expand2minterms(s1 , varno + 1), expand2minterms(s2 , varno + 1)else s1 , s2end if

else if varno < nops(vars) then expand2minterms(s, varno + 1) else s end ifend if

end proc

Figuur D.5: De stappen 5 en 6 in algoritme 2.1. Deze recursieve procedure wordt toegepast opelk product dat overblijft na de voorgaande stap. Nadien worden de resulterende, aangevuldeproducten verzameld in een verzameling, wat automatisch eventuele dubbels elimineert.

307

Page 312: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/mkBDD := proc(l)local Gl , root ;global G, ‘&not ‘, ‘&and ‘, ‘&or ‘, V ;

‘&not ‘ := proc(x) not x end proc ;‘&and ‘ := proc() convert([args], ‘and ‘) end proc ;‘&or ‘ := proc() convert([args], ‘or ‘) end proc ;unassign(’ V ’) ;G := graph(, ) ;root := mkBDDrec(eval(l), 1) ;Gl := eval(G) ;G := “G” ;unassign(’ V ’) ;unassign(‘&and ‘, ‘&or ‘, ‘&not ‘) ;[root , eval(Gl)]

end procSA/mkBDDrec := proc(l, lev)local vv , n, level , leftson, rightson, varnos, ll ;global V ;

varnos := [seq(i, i = 1..nops(vars))] ;level := nops(vars)− lev + 1 ;if evalb(l = true) then

if not member(2, vertices(G)) then addvertex(2, weights = 0, G) end if ; 2elif evalb(l = false) then

if not member(1, vertices(G)) then addvertex(1, weights = 0, G) end if ; 1else

V lev := false ;ll := evalb(l) ;leftson := mkBDDrec(eval(ll), lev + 1) ;V lev := true ;

ll := evalb(l) ;rightson := mkBDDrec(eval(ll), lev + 1) ;unassign(’ V lev ’) ;if leftson = rightson then leftsonelse

n := searchnode(G, level , leftson, rightson) ;if n = then n := insertnode(G, level , leftson, rightson) end if ;op(n)

end ifend if

end proc

Figuur D.6: Een Maple-routine voor het opstellen van een BDD uitgaande van een Boolese vormin interne logic-representatie. Het algoritme zorgt impliciet voor de reductie van de BDD, doordaterover gewaakt wordt dat knopen niet dubbel ingevoerd worden. De BDD wordt opgeslagenin een MAPLE graph, waarin het gewicht van een knoop het niveau in de boom voorstelt. Deknopen 1 en 2 worden gereserveerd voor de constanten.

308

Page 313: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/comBDDrec := proc(BDD1 , BDD2 , hoe)local newnode, root1 , root2 , G1 , G2 , vv , n, level , level1 , level2 , leftson, rightson;

root1 := BDD1 1 ;root2 := BDD2 1 ;G1 := BDD1 2 ;G2 := BDD2 2 ;level1 := G1 ( Vweight)root1 ;level2 := G2 ( Vweight)root2 ;if level1 + level2 = 0 then

if hoe = “and” then newnode := ‘if‘(root1 = 1, 1, root2 )elif hoe = “or” then newnode := ‘if‘(root1 = 2, 2, root2 )elif hoe = “exor” then newnode := ‘if‘(root1 = 1, root2 , 3− root2 )end if;if not member(newnode, vertices(G)) then addvertex(newnode, weights = 0, G)end if;newnode

elseif level2 < level1 then

level := level1 ;leftson := comBDDrec([lefts(G1 , root1 ), G1 ], [root2 , G2 ], hoe) ;rightson := comBDDrec([rights(G1 , root1 ), G1 ], [root2 , G2 ], hoe)

elif level1 < level2 thenlevel := level2 ;leftson := comBDDrec([root1 , G1 ], [lefts(G2 , root2 ), G2 ], hoe) ;rightson := comBDDrec([root1 , G1 ], [rights(G2 , root2 ), G2 ], hoe)

elselevel := level1 ;leftson := comBDDrec([lefts(G1 , root1 ), G1 ], [lefts(G2 , root2 ), G2 ], hoe) ;rightson := comBDDrec([rights(G1 , root1 ), G1 ], [rights(G2 , root2 ), G2 ], hoe)

end if;if leftson = rightson then leftsonelse

n := searchnode(G, level , leftson, rightson) ;if n = then n := insertnode(G, level , leftson, rightson) end if ;op(n)

end ifend if

end proc

Figuur D.7: Een Maple-routine voor de combinatie van twee BDD’s via een logische operator.Opnieuw zorgen de laatste statements voor het vermijden van redundante knopen.

309

Page 314: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/McCluskey1 := proc(MT )local i, j, term1 , term2 , fn1 , fn2 , newtable, p, p1 , p2 , u, π, tt , ttt , fff , newt , groups;

π := [] ;newt := [] ; groups := nargs ;u := [

seq(array(1..rowdim(argsi), [seq(‘− ‘, j = 1..rowdim(argsi))]), i = 1..groups)];for p to groups − 1 do

if gewicht(argsp1, 1) + 1 = gewicht(argsp+11, 1

) then

tt := [] ;for p1 to rowdim(argsp) dofor p2 to rowdim(argsp+1) do

term1 := argspp1 , 1;

fn1 := argspp1 , 2;

term2 := argsp+1p2 , 1;

fn2 := argsp+1p2 , 2;

fff := [seq(fn1 i ∗ fn2 i, i = 1..nops(fn1 ))] ;if distance(term1 , term2 ) = 1 and 0 < add(i, i = fff ) then

ttt := comb(term1 , term2 ) ;if fn1 = fff then upp1 := ‘ ∗ ‘ end if ;

if fn2 = fff then up+1p2 := ‘ ∗ ‘ end if ;

if not member([ttt , fff ], tt) then tt := [op(tt), [ttt , fff ]] end ifend if

end doend do;if 0 < nops(tt) then

newtable := array(1..nops(tt), 1..2) ;for p1 to nops(tt) do newtablep1 , 1 := ttp1 1 ; newtablep1 , 2 := ttp1 2

end do;newt := [op(newt), eval(newtable)]

end ifend if;for p1 to rowdim(argsp) do

if upp1 6= ‘ ∗ ‘ then π := [op(π), [argspp1 , 1, argspp1 , 2

]] end if

end do;end do;for p1 to rowdim(argsgroups) do

if ugroupsp1 6= ‘ ∗ ‘ then

π := [op(π), [argsgroupsp1 , 1, argsgroupsp1 , 2

]]

end ifend do;if 0 < nops(newt) then [op(π), op(McCluskey1(op(newt)))] else π end if

end proc

Figuur D.8: De eerste stap in de tabelmethode van McCluskey in Maple. De input is een rijvan mintermen, geordend volgens gewicht. De procedure doorloopt de lijst, extraheert priemim-plicanten, en maakt de volgende lijst aan. Wanneer deze laatste niet leeg is, roept de procedurezichzelf recursief aan.

310

Page 315: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA/McCluskey2bb := proc(c, s, t)localselected , newpis, residu, temp, mincost , currcost , i, j, r, rr , cc, weights,bestweight , withcost , withsol , cost , p, withoutsol , sol , tempwith, tempwithout ,fnwith, withselected , fnset ;global bestcost , bestsol

if nargs = 1 thenresidu := args1 ;currcost := [0, 0] ;fnset := ;for i from 3 to coldim(residu) do fnset := fnset union residu1, i end do ;selected := [seq([], i = 1..nops(fnset))] ;bestcost := [rowdim(residu)− 2, (rowdim(residu)− 2) ∗ nops(residu3, 1)] ;

else residu := t ; selected := s ; currcost := c

end if;do

newpis := [seq([], i = 1..nops(selected))] ;cost := [seq([0, 0], i = 1..nops(selected))] ;temp := essentiele PI(cost , newpis, elim dominantie(residu)2) ;residu := temp3 ;if 0 < add(nops(i), i = temp2) then

selected := [seq([op(selected i), op(temp2i)], i = 1..nops(selected))] ;currcost := currcost + add(i, i = temp1)

else breakend if

end do;if 2 < coldim(residu) then

rr := rowdim(residu) ;cc := coldim(residu) ;weights := seq(

add(‘if‘(residui, j = 1, 1/add(residuk, j , k = 3..rr), 0), j = 3..cc), i = 3..rr);bestweight := max(weights) ;member(bestweight , [weights], ’p’) ;tempwithout := delrows(residu, 2 + p..2 + p) ;fnwith := residu1, min(op(select(x→residu2+p, x=1, [seq(i, i=3..cc)]))) ;

tempwith := concat(col(residu, 1), col(residu, 2), seq(col(residu, j), j =select(x→ residu2+p, x = 0 or not (residu1, x = fnwith), [seq(i, i = 3..cc)])));

tempwith2+p, 2 := [0, 1] ;withselected := selected ;withselected fnwith := [op(withselected fnwith), residu2+p, 1] ;withcost := currcost + residu2+p, 2 ;

Figuur D.9: De tweede stap in de tabelmethode van McCluskey in Maple.

311

Page 316: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

if costsless(withcost + MinimalCost(tempwith), bestcost) thenwithsol := McCluskey2bb(withcost , withselected , tempwith) ;if costsless(withsol1, bestcost) then bestcost := withsol1 ; bestsol := withsol2end if;

end if;if costsless(currcost + MinimalCost(tempwithout), bestcost) then

withoutsol := McCluskey2bb(currcost , selected , tempwithout) ;if costsless(withoutsol1, bestcost) then

bestcost := withoutsol1 ; bestsol := withoutsol2end if;

end ifelse

sol := [currcost , selected ] ;if costsless(sol1, bestcost) then bestcost := sol1 ; bestsol := sol2 end if

end if;[bestcost , bestsol ]

end proc

Figuur D.9: –vervolg. De tweede stap in de tabelmethode van McCluskey in Maple. De input be-staat uit de kost (initieel zeer hoog, het aantal rijen in de tabel met alle inputs aanwezig), de reedsgeselecteerde priemimplicanten (initieel leeg), en de resterende tabel (initieel de bedekkingsta-bel).In de bedekkingstabel werd, naast de ternaire representatie, ook de kost van een priemimpli-cant opgenomen in de tweede kolom. De procedure elimineert eerst herhaaldelijk gedomineerderijen en dominerende kolommen, en extraheert de essentiele en de secundair, tertiar, ... essentielep.i.’s. Wanneer dit niets meer oplevert, dan wordtde ‘beste’ rij geselecteerd, en twee deeltabellenberekend: een waarbij de beste rij gewoon geschrapt wordt, en eenwaarbij de rij aanzien wordtals geselecteerd (wat leidt tot het schrappen van kolommen, en eventueel ook de rij zelf). Wan-neer de geraamde kost (currcost + MinimalCost) lager is dan de laagste kost tot nu toe, dan wordthet alternatief onderzocht door een recursieve oproep naar zichzelf. Nadien worden de mogelijkedeeloplossingen vergeleken met de beste oplossing totnu toe, die eventueel aangepast wordt.

312

Page 317: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA2/compl := proc(vv , set)local b, CFU , CFU1 , CFU2 , i, j, variab, VV , commons;

VV := vv ;member(vv1, vars, b) ;if nops(vv) = 1 then

if 1 < nops(set) then elif nops(set) = 0 then [seq(‘− ‘, i = vars)]elif set1b = 1 then subsop(b = 0, set1)elif set1b = 0 then subsop(b = 1, set1)else end if

elsevariab := VV 1 ;VV := subsop(1 = NULL, VV ) ;CFU := cofactors(variab, set) ;CFU1 := compl(VV , CFU 1) ;CFU2 := compl(VV , CFU 2) ;commons := CFU1 intersectCFU2 ;CFU1 := CFU1 minus commons ;CFU2 := CFU2 minus commons ;for i in CFU1 dofor j in CFU2 do

if bedekt(i, j) then CFU2 := CFU2 minus j ; commons := commons union jend if

end doend do;for i in CFU2 dofor j in CFU1 do

if bedekt(i, j) then CFU1 := CFU1 minus j ; commons := commons union jend if

end doend do;(map(x→ subsop(b = 0, x), CFU1 ) union map(x→ subsop(b = 1, x), CFU2 ))

union commonsend if

end proc

Figuur D.10: De Maple-implementatie van het complement van een verzameling ternaire kubus-sen. De inputs zijn een lijst van variabelenamen en een verzameling ternaire kubussen. Eerst wor-den de speciale gevallen opgevangen (een variabele over). Dan worden de cofactoren berekendop de eerste variabele, en de routine wordt recursief opgeroepen. De resulterende verzamelin-gen worden gecombineerd, waarbij de gemeenschappelijke termen onmiddellijk samengenomenworden, en waarbij er getest wordt op mutuele bedekking van termen uit de twee deelverzame-lingen.

313

Page 318: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA2/kruis := proc(s1 , s2 )local k, i, j, kr1 , kr2 , diffs, res;

if s2 = then s1elif s1 = then elif s1 ::set then

res := ;for i in s1 do res := ‘if‘(res = , kruis(i, s2 ), Vee(res, kruis(i, s2 ))) end do ;res

elseif s2 ::set then res := s1 ; for i in s2 do res := kruis(res, i) end do ; reselse

k := [seq(kr s1 i, s2 i , i = 1..nops(s1 ))] ;if member(’X’, k) then s1elif s1 = k then else

diffs := select(x→ s1 x 6= kx, [seq(j, j = 1..nops(s1 ))]) ;‘union‘(seq(subsop(i = ki, s1 ), i = diffs))

end ifend if

end ifend procSA2/Vee := proc(ss1 , ss2 )local i, j, s1 , s2 ;

s1 := ss1 ;s2 := ss2 ;for i in s1 dofor j in s2 do

if bedekt(i, j) then s2 := s2 minus j end if ;if bedekt(j, i) then s1 := s1 minus i end if

end doend do;s1 union s2

end procSA2/kr := table([(−, 1) = 0, (0, −) = 0, (1, −) = 1, (0, 0) = 0,

(−, −) = −, (1, 0) = X, (−, 0) = 1, (0, 1) = X, (1, 1) = 1])

Figuur D.11: De Maple-implementatie van de kruisoperatie. De tabel kr bevat de operatietabelvoor individuele bits; de operatie Vee combineert twee verzamelingen kubussen, en gaat na of ergeen mutele bedekkingen zijn. De eigenlijke routine kruis gaat, afhankelijk van het type van deoperands (verzamelingen of enkelvoudige kubussen) een verschillend verloop volgen; uiteinde-lijk valt men terug op de definitie van de combinatie van twee kubussen.

314

Page 319: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

D.3 Sequentiele analyse in Maple

Figuren D.12, D.13, D.14 tonen implementaties in Maple van een aantal technieken voorde analyse van teruggekoppelde poortnetwerken.

315

Page 320: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA3/Zoekfuncties := proc(ttt)local ft , nodes, leesfunctie, vv , n, G;

leesfunctie := proc(nn)local argum;

if not assigned(ftnn) thenargum := map(leesfunctie, [op(arrivals(nn, G))]) ;if nops(argum) = 1 then ftnn := ‘&not‘(argum1)else ftnn := ‘&not‘(‘&and‘(op(argum)))end if

end if;ftnn

end proc;unassign(’ V ’) ;G := tttOPENNET ;if not islusvrij(G) then

print(‘Circuit is niet lusvrij ‘) ; RETURN(’procname(argum)’)end if;ft := table([]) ;vv := select(x→ arrivals(x, G) = , convert(G( Vertices), list)) ;for n in vv do ftn := V n end do ;ft inputs := select(x→ vweight(x, G)1 6= “ ”, vv) ;

fthuidige := select(x→ vweight(x, G)1 = “ ”, vv) ;

ftvolgende := map(

x→ op(select(y → cat(“ ”, vweight(y, G)) = vweight(x, G), G( Vertices))),fthuidige);

nodes := select(x→ arrivals(x, G) 6= , convert(G( Vertices), list)) ;for n in nodes do if not assigned(ftn) then leesfunctie(n) end if end do ;tttFUNCTIES := eval(ft)

end proc

Figuur D.12: Een Maple-fragment dat de functies geassocieerd met netwerkknopen bepaalt ineen netwerk dat opgeslagen ligt in een graaf. Er wordt verondersteld dat de knopen van degraaf NAND-functies of invertors voorstellen. De functies worden voorgesteld in logic-formaat,en worden niet vereenvoudigd. De resultaten worden opgeslagen in de tabel ft. In het veld inputskomen de primaire circuit-inputs, in het veld huidige de namen van de toestandsvariabelen voor-bij de knipplaatsen (deze namen beginnen met een ’ ’), in het veld volgende de toestandsvariabelenvoor de knipplaatsen (dezelfde namen, maar zonder ’ ’). De functie leesfunctie stelt recursief de lo-gische uitdrukking op die hoort bij een knoop met niet-ledige fan-in. De uiteindelijke argumentenzijn de primaire circuit-inputs en de waarden voorbij de knipplaatsen.

316

Page 321: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA3/mkTTT := proc(circuit)localttt , Toest , Inp, r, c, ssize, isize, svars, svals, ivars, ns, ff , x, values, G, rijnummer ;

if not assigned(circuitOPENNET ) thenprint(‘Knip eerst het netwerk open‘) ; RETURN()

end if;G := circuitOPENNET ;if not assigned(circuitFUNCTIES ) then Zoekfuncties(circuit) end if ;ff := circuitFUNCTIES ;if not type(ff , table) then print(‘knip meer lussen‘) ; RETURN() end if ;ssize := nops(ff huidige) ;

isize := nops(ff inputs) ;

ivars := op(map(x→ ff x, ff inputs)) ;

svars := op(map(x→ ff x, ff huidige)) ;

svals := map(x→ logic2bool(ff x), ff volgende) ;

Toest := map(x→ gray(ssize, x), [seq(i, i = 0..2ssize − 1)]) ;Inp := map(x→ gray(isize, x), [seq(i, i = 0..2isize − 1)]) ;ttt := array(1..2ssize , 1..2isize) ;for r to 2ssize dofor c to 2isize do

values := map(x→ evalb(x = 1), [op(Inpc), op(Toestr)]) ;for x to isize + ssize do assign([ivars, svars]x, valuesx) end do ;unassign(’rijnummer ’) ;member(map(x→ ‘if‘(x = true, 1, 0), eval(svals)), Toest , rijnummer) ;tttr, c := rijnummer

end doend do;for x to isize do unassign(parse(vweight(ff inputsx

, circuitOPENNET )))

end do;for x to ssize do unassign(parse(vweight(ff huidigex

, circuitOPENNET )))

end do;circuitTTT := eval(ttt) ;circuit ’Toestandsvariabelen’ := svars ;circuit ’Toestanden’ := Toest ;circuit ’Inputvariabelen’ := ivars ;

circuit ’Inputs’ := Inp ;

unassign(’ V ’)end proc

Figuur D.13: Een Maple-fragment dat de TTT van een netwerk berekent. Dit gebeurt door deevaluatie van de netwerkfuncties over het Boolese domein (binair), voor alle waarden van deinputs en van de toestandsgrootheden. Deze worden geenumereerd volgens een Gray-sequentie,om voornamelijk hamming-1-transities te kunnen tonen. Met de resultaten van de analyse wordtde TTT ingevuld.

317

Page 322: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA3/Zoekhazards := proc(circuit)localttt , Toest , Inp, r, c, ssize, isize, svars, svals, ivars, ns, ff , x, values, G, ttd , s,

ss, sss, cc, rr , diff , newstate, newerstate, Shazardstate, rrr , fanin, fanout ;global ‘&and ‘, ‘&not ‘;

if not assigned(circuitOPENNET ) then RETURN(’procname(args)’) end if ;G := circuitOPENNET ;if not assigned(circuitFUNCTIES ) then Zoekfuncties(circuit) end if ;ff := circuitFUNCTIES ;if not type(ff , table) then print(‘knip meer lussen‘) ; RETURN() end if ;ttd := circuitTTD ;ttt := circuitTTT ;ssize := nops(ff huidige) ;

isize := nops(ff inputs) ;

ivars := op(map(x→ ff x, ff inputs)) ;

svars := op(map(x→ ff x, ff huidige)) ;

svals := map(x→ ff x, ff volgende) ;Toest := circuitToestanden ;Inp := circuit Inputs ;‘&and ‘ := proc(x)

local a;a := [args] ;if nargs = 1 then x

elif member(0, a) then 0elif not member(‘− ‘, a) then 1else ‘− ‘end if

end proc;‘&not ‘ := proc(x) if x = 1 then 0 elif x = ‘− ‘ then ‘− ‘ else 1 end if end proc ;

Figuur D.14: Maple-code voor ternaire analyse van een poortnetwerk. Het voorbereidend werk:het klaarzetten van de datastructuren, en de tijdelijke herdefinitie van de logische operatoren anden not voor gebruik in het ternaire domein.

318

Page 323: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

for ss in ttd( Vertices) docc := vweight(ss, ttd)3 ;fanin := select(x→ vweight(x, ttd)1,

map(x→ ttd( Tail)x, select(x→ ttd( Head)x = ss, ttd( Edges))));for s in fanin do

r := vweight(s, ttd)2 ;c := vweight(s, ttd)3 ;values := [op(comb(Inpc, Inpcc)), op(Toestr)] ;for x to isize + ssize do assign([ivars, svars]x, valuesx) end do ;newstate := Toestr ;newerstate := eval(svals) ;Shazardstate := newerstate ;while newstate 6= newerstate do

newstate := newerstate ;for x to ssize do assign([svars]x, newstatex) end do ;newerstate := eval(svals)

end do;newstate := newerstate ;for x to isize do assign([ivars]x, Inpccx) end do ;newerstate := eval(svals) ;while newstate 6= newerstate do

newstate := newerstate ;for x to ssize do assign([svars]x, newstatex) end do ;newerstate := eval(svals)

end do;

Figuur D.14: – vervolg. Hier wordt eerst de veranderende input op ‘-‘ gezet, en de resulterendenieuwe toestand (zonder terugvoer) wordt in Shazardstate opgeslagen. Nadien wordt newstategeıtereerd tot wanneer geen verandering meer optreedt. Dan wordt de input op zijn eindwaardegebracht, en de eindwaarde komt in newerstate.

319

Page 324: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

if not vweight(ss, ttd)1 thensss := op(map(x→ ttd( Head)x, select(x→ ttd( Tail)x = ss, ttd( Edges)))) ;rrr := coords(sss, circuit)2 ;if0 <add(‘if‘(Toestrx = Toestrrrx and Shazardstatex = ‘− ‘, 1, 0), x = 1..ssize)then

printf(“%s %a %s %a %s %a \n %s %a %s %a %s %a\n”, ‘Statische Hazard : ‘,coords(s, circuit), ‘ − > ‘, coords(ss, circuit), ‘ − > ‘, coords(sss, circuit), ‘ = ‘,totale toestand(s, circuit), ‘− > ‘, totale toestand(ss, circuit), ‘− > ‘,totale toestand(sss, circuit));

printf(“%s %a\n”, ‘Overgang = ‘, Shazardstate)end if;if member(‘− ‘, newerstate) then

printf(“%s %a %s %a %s %a \n %s %a %s %a %s %a\n”, ‘Essentiele hazard : ‘,coords(s, circuit), ‘− > ‘, coords(ss, circuit), ‘− > ‘, coords(sss, circuit), ‘ = ‘,totale toestand(s, circuit), ‘− > ‘, totale toestand(ss, circuit), ‘− > ‘,totale toestand(sss, circuit));

printf(“%s %a\n”, ‘Eindwaarde = ‘, newerstate)end if

elseif member(‘− ‘, Shazardstate) then

printf(“%s %a %s %a \n %s %a %s %a\n”, ‘Statische hazard : ‘, coords(s, circuit),‘− > ‘, coords(ss, circuit), ‘ = ‘, totale toestand(s, circuit), ‘− > ‘,totale toestand(ss, circuit));

printf(“%s %a\n”, ‘Overgang = ‘, Shazardstate)end if

end ifend do

end do;for x to isize do unassign(parse(vweight(ff inputsx

, circuitOPENNET )))

end do;for x to ssize do unassign(parse(vweight(ff huidigex

, circuitOPENNET )))

end do;unassign(‘&and ‘, ‘&not ‘)

end proc

Figuur D.14: – einde. De resultaten worden onderzocht, en meldigen van statische en essen-tiele hazards worden uitgeschreven. De starttoestand is s, de onstabiele tussentoestand ss, en deeindtoestand sss. De operatoren &and en &not worden weer vrijgegeven.

320

Page 325: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

D.4 Sequentiele synthese in Maple

Figuren D.15, D.16, D.17 illustreren de basistappen in de synthese van sequentiele scha-kelingen op logisch niveau.

321

Page 326: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA4/compatibele toestanden := proc(c)local comptab, ns, iocompat , i, j, l, opvolgers, sn, list ;

sn := c’Toestandsnamen’ ;

ns := nops(sn) ;comptab := table() ;list := [] ;for i to ns dofor j from i + 1 to ns do

iocompat := iocompatibel(c, i, j) ;if assigned(comptabsni, snj) then comptabsni, snj1

:= iocompat

else comptabsni, snj := [iocompat , false, ]end if;if iocompat thenfor l from 2 to coldim(c’POT ’) do

opvolgers := c’PTTT ’i+1, l, c’PTTT ’j+1, l

;

if 1 < nops(opvolgers) and not member(‘− ‘, opvolgers) thenif assigned(comptabopvolgers) then

comptabopvolgers3:= comptabopvolgers3

union sni, snjelse comptabopvolgers := [true, false, sni, snj]end if

end ifend do

else list := [op(list), sni, snj]end if

end doend do;while list 6= [] do

opvolgers := list1 ;list := subsop(1 = NULL, list) ;comptabopvolgers2

:= true ;

for j in comptabopvolgers3do

if comptabj1= true then comptabj1

:= false ; list := [op(list), j] end if

end doend do;select(x→ comptabx1, map(op, indices(comptab)))

end proc

Figuur D.15: Het equivalentie-algoritme in Maple. Eerst wordt de tabel van voorgangers op-gesteld, en die koppels aangemerkt die output-incompatibel zijn. Nadien worden iteratief devoorgangers van incompatibele koppels aangemerkt.

322

Page 327: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA4/MaxComp := proc(c)local cc, n, m, seen, neigh;

if c( Edges) 6= thencc := complement(c) ;m := [] ;seen := ;for n in cc( Vertices) do

neigh := cc( Neighbors)n minus seen ;if 1 < nops(neigh) then m := [op(m), ‘&or‘(n, ‘&and‘(op(neigh)))]elif nops(neigh) = 1 then m := [op(m), ‘&or‘(n, op(neigh))]end if;seen := seen union n

end do;m := [distribute(‘&and‘(op(m)))] ;if nops(m) = 1 then [cc( Vertices) minus op(m)]else sort(map(x→ cc( Vertices) minus x, m), (x, y)→ evalb(nops(y) < nops(x)))end if

else seq(n, n = c( Vertices))end if

end proc

Figuur D.16: Een Maple-fragment voor het opzoeken van de maximale compatibele klassen metde methode van Marcus. De input is een compatibiliteitsgraaf. Deze wordt gecomplementeerd,en op basis van die graaf wordt een logic-vorm m opgesteld, die geminimaliseerd wordt. Deontbrekende literals uit de termen worden als resultaat teruggegeven.

323

Page 328: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

SA4/StabPart := proc(x, G)local visited , tovisit , part , newpair , curr , nxt , newblock , b, i, statenames, notin;

part := ;tovisit := x ;visited := ;while tovisit 6= do

curr := tovisit1 ;tovisit := tovisit minus curr ;visited := visited union curr ;nxt := map(y → G( Head)y, select(x→ curr = G( Tail)x, G( Edges))) ;for i in nxt do

NULL ; if not member(i, visited) then tovisit := tovisit union i end ifend do;newpair := vweight(curr , G) ;newblock := newpair ;for b in part do

if b intersectnewpair 6= thenpart := part minus b ; newblock := newblock union b

end ifend do;part := part union newblock

end do;statenames := ‘union‘(op(map(x→ vweight(x, G), G( Vertices)))) ;notin := statenames minus ‘union‘(op(part)) ;part := part union seq(i, i = notin) ;part

end proc

Figuur D.17: Het bepalen van de minimale stabiele partitie die hoort bij een toestandspaar.Inputs: x is een toestandspaar, en G is een opvolgergraaf, een graaf gedefinieerd over de toe-standsparen van de automaat. Een knoop leidt naar een andere knoop indien de tweede knoophet opvolgerpaar voorstelt van de eerste onder een inputwaarde. De input x is een te onderzoe-ken paar. Wij houden twee lijsten bij: de nog te onderzoeken paren (opvolgers), en de paren die alonderzocht werden. Wij doorlopen de graaf, en verzamelen alle koppels die wij tegen komen, totwanneer de ‘te onderzoeken’ lijst leeg is. Dan worden de overlappende koppels samengevoegdtot grotere gehelen, en de ontbrekende toestanden worden eraan toegevoegd als singletons. Hetresultaat is een minimale stabiele partitie.

324

Page 329: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Bibliografie

[Abram90] Abramovici, M., Breuer, M.A., Friedman, A.D. (1990), Digital SystemsTesting and Testable Design, IEEE Press: Piscataway, New Jersey.

[Armstrong62] Armstrong, D. (1962), On the efficient assignment of internal codes tosequential machines, IRE Transactions on Electronic Computers, Vol. EC-11, pp. 611-622.

[Armstrong89] Armstrong, J.R. (1989), Chip-level modeling with VHDL, Prentice Hall:Englewood Cliffs, New Jersey.

[Ashar92] Ashar, A., Devadas, S., Newton, R. (1992), Sequential Logic Synthesis,Kluwer Academic Publishers: Boston.

[Bell71] Bell, C.G., Newell, A. (1971), Computer Structures: Readings andExamples, McGraw-Hill: New York.

[Birtwistle95] Birtwistle, G., en Davis, A., editors, (1995) Asynchronous Digital CircuitDesign, Springer Verlag: London.

[Borrione91] Borrione, E., Waxman R. (eds.) (1991), Computer Hardware DescriptionLanguages and their Applications, North-Holland: Amsterdam.

[Brayton84] Brayton, R.K., Hachtel, G.D., McMullen, C.T., Sangiovanni-Vincentelli,A.L (1984), Logic Minimization Algorithms for VLSI Synthesis, KluwerAcademic Publishers: Boston.

[Brayton87] Brayton, R.K., Rudell, R., Sangiovanni-Vincentelli, A., Wang, A.R.(1987), “MIS: A Multiple-Level Logic Optimization System,” IEEETransactions on Computer Aided Design, Vol. CAD-6, No. 6, pp. 1062–1081.

[Breuninger85] Breuninger, R.K., Frank, K. (1985), “Metastable Characteristics of TexasInstruments Advanced Bipolar Logic Families,” TTL Advanced Low-Power Schottky, Advanced Schottky Data Book, Vol 2., Texas Instruments.

[Bryant86] R. Bryant (1986), “Graph-Based Algorithms for Boolean Function Ma-nipulation,” IEEE Transactions on computers, Vol. C-35, No. 8, pp. 677–691.

[Brzozowski95] Brzozowski, J., en Seger, C., (1995) Asynchronous Circuits, Springer Ver-lag: New York.

[Clare73] Clare, C.R. (1973), Designing Logic Systems Using State Machines,McGraw-Hill: New York.

325

Page 330: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

[DeMicheli94] De Micheli, G. (1994), Synthesis and Optimization of Digital Circuits,McGraw-Hill: New York.

[Devadas94] Devadas, S., Ghosh, A., Keutzer, K. (1994), Logic Synthesis, McGraw-Hill: New York.

[Dietmeyer71] Dietmeyer, D. (1971), Logical Design of Digital Systems, Allyn & Bacon.

[Green86] D. Green (1986), Modern Logic Design, Addison-Wesley: Wokingham.

[Hachtel96] G. D. Hachtel, F. Somenzi (1996), Logic Synthesis and Verification Algo-rithms, Kluwer: Boston.

[Hartenstein87] Hartenstein, R.W. (ed.) (1987), Hardware Description Languages, North-Holland: Amsterdam.

[Hartmanis61] Hartmanis, J. (1961), On the state assignement problem for sequentialmachines I, IRE Trans. Electron. Comput., Vol. EC-10, pp. 593-603.

[Hennie68] Hennie, F. (1968), Finite-State Models for Logical Machines, Wiley: NewYork.

[Hong74] Hong, S., Cain, R., en Ostapko, D. (1974), MINI: A heuristic approachfor Logic Minimization, IBM J. Res. Dev., sept., 443-458.

[Hurst85] S. L. Hurst, D. M. Miller, en J. C. Muzio (1985), Spectral Techniques inDigital Logic, Academic Press: London.

[Johnson93] H. Johnson, M. Graham (1993), High-Speed Digital Design – A Handbookof Black Magic, Prentica Hall: Upper Saddle River, New Jersey.

[Lewin92] Lewin, D., Protheroe, D. (1992), Design of Logic Systems, Chapman &Hall: London.

[Lipsett89] Lipsett, R., Schaefer, C., Ussery, C. (1989), VHDL: Hardware Descriptionand Design, Kluwer Academic Publishers: Boston.

[Marcus64] Marcus, M. (1964), Derivation of Maximum Compatibles usingBoolean Algebra, IBM J. Res. Developm., Vol. 8, pp. 537-538.

[McCluskey65] McCluskey, E. (1965), Introduction to the Theory of Switching Circuits,McGraw-Hill: New York.

[McCluskey86] McCluskey, E.J. (1986), Logic Design Principles, Prentice-Hall: Engle-wood Cliffs, N.J.

[Michel92] Michel, P., Lauther, U., Duzy, P. (eds.), (1992), The Synthesis Approach toDigital System Design, Kluwer Academic Publishers: Boston.

[Montrose99] M. Montrose (1999), EMC and the Printed Circuit Board. Design, Theoryand Layout Made Simple, IEEE: New York.

[Navabi93] Navabi, Z. (1993), VHDL, Analysis and Modeling of Digital Systems,Prentice-Hall: Englewood Ciffs, NJ.

[Parker92] Parker, K.P. (1992), The Boudary Scan Handbook, Kluwer: Boston.

326

Page 331: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

[ITRS01] Sematech (2001), International technology road map for semiconductors. Ziehttp://public.itrs.net

[Siewiorek82] Siewiorek, D.P., Bell, C.G., Newell, A. (1982), Computer Structures: Prin-ciples and examples, McGraw-Hill: Auckland.

[Stone73] H. S. Stone (1973), Discrete Mathematical Structures and Their Applicati-ons, SRA: Chicago.

[Tracey66] Tracey, J. (1966), Internal state assignment for asynchronous sequentialmachines, IEEE Trans. Electron. Comput., Vol. EC-15, pp. 551-560.

[Varma89] Varma, D., and Trachtenberg, E.A. (1989) “Design Automation Tool forEfficient Implementation of Logic Functions by Decomposition,” IEEETransactions on Computer-Aided Design, Vol. 8, No. 8, pp. 901–916.

[Voith77] Voith, R.P. (1977), “ULM Implicants for Minimization of Universal Lo-gic Module Circuits,” IEEE Transactions on Computers, Vol. C–26, pp.417–424.

[White81] White, D. (1981), Bit-Slice Design: Controllers and ALUs, Garland STPMPress: New York.

[Wilkins86] Wilkins, B.R. (1986), Testing Digital Circuits An Introduction, Van Nos-trand

[Zissos72] Zissos, D. (1972), Logic Design Algorithms, Oxford University Press.

327

Page 332: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

Index

Asynchrone inputs, 9, 182, 233Hamming-afstand, 234hazards, 234synchronisatieflipflop, 234synchronisatieprotocol, 235

BDD’s, 40, 57compositie, 44ITE-compositie, 46reductie, 43

Boole-algebra, 20alternatieve definitie, 21atomen, 26dualiteit, 22eigenschappen, 21exclusieve-OF, 29

Boolese functies, 23complementering, 41don’t care-termen, 92functiecompositie, 24, 41gelijkheidstest, 41gewicht, 24, 92monotone, 48ON-set, DC-set en OFF-set, 99pseudo-functies, 49representatie, 24

Boolese decisiediagrammen, zie BDD’sBoolese vormen, 31Hadamard-transformatie, 28karnaughkaart, 25mintermfuncties, 27Reed-Muller, 29ternaire kubuslijsten, 40, 92waarheidstabel, 25

satisfaiseerbaarheid, 41symmetrische, 47tautologietest, 41, 108unaatheid, 48, 97, 103, 104, 208zelfduale, 49

Boolese matrices, 55Boolese vormen, 31, 49

assignatie en valuatie, 33disjunctieve normaalvorm, 36

algoritme, 39dualiteit, 34equivalentie, 33minimalisatie, 88

algebraısch, 88implicantenmethode, 91methode van Zissos, 88

niet-redundant, 90optioneel product, 88som-van-producten, 88verband met poortnetwerken, zie Poort-

netwerkenverband met taknetwerken, zie Taknet-

werkenBouwstenen, 58

ASIC’s, 76full custom, 82gate arrays, 77, 123IP cores, 81PLA’s, 82, 116, 117soft core, 76standaard-celcomponenten, 78

programmeerbare componenten, 63architectuur, 67FPGA’s, 71, 123macrocel, 196ontwerpshulpmiddelen, 198PAL, 69, 117, 123, 247PLA, 68, 117PLS, 195programmeertechnologie, 65PROM, 71

standaardcomponenten, 58LSI en VLSI, 62, 185MSI, 61SSI, 58

Bus, 59differentieel, 61

328

Page 333: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

drivers en transceivers, 62open-collector, 253open-drain, 60tri-state, 59

Complete somkarnaughkaartmethode, 92kubuslijsten, 104meervoudige functies, 98tabelmethode van Quine en McCluskey,

92topologische methode, 99verwijdering van hazards, 148

Compositie en decompositie, 225logisch niveau

cascade, 227factorisering, 228parallel, 227synchrone compositie, 230

DRAM, 187speciale vormen, 191werking, 188

Fieldbus, 193Flipflops, 177

datagedrag, 178D-flipflop, 178J/K-gedrag, 178S/R-fliflop, 178T-gedrag, 178

klokgedrag, 177asynchroon, 177flanksturing, 177I-interval, 179master-slave, 177metastabiliteit, zie Metastabilteitniveausturing, 177O-interval, 179pulssturing, 177

Fysische beschrijving, 13layout, 13

Gedragalgoritmisch niveau, 10asynchroon, 187circuitniveau, 3combinatorisch versus sequentieel, 9, 247declaratieve beschrijving, 15

logisch niveau, 4, 74, 77, 247BDD, 139

procedurale beschrijving, 15RT-niveau, 10, 74, 77synchroon, 8, 179systeemniveau, 11uitvoerbare beschrijving, 15

Geheugens, 185dynamisch, 187registers, 185statisch, 186

Grafische beschrijvingen, 260circuitschema’s, 263OrCAD, DASH, 74PMS, 260tijdsdiagrammen, 262

Gray-code, 151

Hazardsstatische, 71

Hyperkubus, 25, 91deelkubus, 91Hammingafstand, 25, 92implicant, zie Implicant

Implicant, 91complete som, 91essentieel, 91, 95, 107, 108niet-redundante som, 91, 108partieel redundant, 108priem, 91, 108

meervoudige functies, 98totaal redundant, 108

Implicantentabel, 95branch-and-bound, 95cyclisch, 95kolomdominantie, 95meervoudige functies, 98methode van Petrick, 97rijdominantie, 95verbeterde methode, 108

Kronecker-produkt, 28Kruisoperatie, 105Kubuslijsten, 99

complete som, zie Complete somEspresso Exact, 104functierepresentatie, zie Boolese functieskruisoperatie, zie Kruisoperatie

329

Page 334: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

minimale som, zie Minimale somShannonexpansie, 101

cofactoren, 101complementering, 101residufuncties, 101tautologietest, 102unaatheid, 103

Lettervorm, 36, 87, 91Logische drempelspanningen, 4Logische functies

MSIaritmetische circuits, 62busdrivers, 62decoder, 62multiplexer, 62, 134, 247registers, 184teller, 184, 248

SSIflipflops, 177poorten, 58ULM’s, 134

VLSIgeheugens, 185processors, 192

Logische Syntheseboolese netwerken, 125meerniveau, 117

algebraısche deling, 121algoritme van Voith, 135factorisatie, 119kernen, 121multiplexersynthese, 133, 134spectrale technieken, 139

tweeniveauESPRESSO, 110circuitrealisaties, 117

Mobius-inversie, 31Metastabiliteit, 182, 235Microprocessors, 192

DSP’s, 193grafische, 193microcontrollers, 192

Minimale som, 92kubuslijsten, 107tabelmethode, 95

Minterm, 36, 92

Ontwerpruimte, 2Gajskidiagram, 2gedragsbeschrijving, 3

Ontwerpstrajectfysisch ontwerp

technology mapping, 247valideren, verifieren en testen, 247

Ontwerptraject, 13, 75bibliotheek, 74, 77, 79

modulegeneratoren, 79decompostie en verfijning, 16formalisering van gedragsbeschrijving,

14fysisch ontwerp, 17

back annotation, 17, 75, 78technology mapping, 17, 74plaatsing en routering, 17

synthese, 16valideren, verifieren en testen, 18

LVS-verificatie, 18Optioneel product, 88

Parallellismepijplijnen, 187

Partiele ordening, 22, 49tralie, 22, 48, 217

Poorten, 52CMOS, 84vertragingstijden, 157, 161, 162

Poortnetwerkenalgemenere interconnecties, 53meerniveau, 87synthese, 86, 87teruggekoppeld, 157

analyse, zie Sequentiele netwerkenTTD, zie ToestandstransitiediagramTTT, zie Toestandstransitietabel

twee-niveau, som-van-producten, 86, 87verband met Boolese vormen, 52

Poortnewerkenverband met Boolese vormen, 155

RAM, 186synchroon, 187

Schakelaars, 50Schakelnetwerken, 50

combinatorisch, 154, 157hazards, 147, 161, 164

330

Page 335: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

poortnewerken, zie Poortnetwerkensequentieel, 154taknetwerken, zie Taknetwerkenterugkoppeling, 153

Sea of gates, 78Sequentiele netwerken, 155

analyse, 157fundamentele mode, 159, 164Hamming-1-inputveranderingen, 159,

164asynchroon, 165flip-flop, 165geheugencellen, 165incrementele gedragsbeschrijving, 199,

200MEALY versus MOORE, 156outputfunctie, 156reguliere uitdrukkingen, 157synchroon, 165

datagedrag, 165kloksignaal, 165

synthese, 199toestand, 156

onstabiele, 156stabiele, 156totale, 156

toestandsassignatie, 2131-uit-r-assignaties, 224afstandsmethode, 214partitiemethode, 216vermijden van races, 220

toestandsfunctie, 156toestandsminimalisatie, 203

compatibele klassen, 208compatibele koppels, 205, 208kliekbedekking, 208methode van Marcus, 208onvolledig bepaalde tabellen, 206volledig bepaalde tabellen, 206

Shannondecompositie, Shannonexpansie, 37,48, 101

Stabiele partitie, 216algoritme, 217

Structuur, 11beschrijving

EDIF, 78, 265JEDEC, 75

circuitniveau, 11logisch niveau, 12, 74netlijst, 78PMS-niveau, 12RT-niveau, 12, 74

Synchroon ontwerpasynchrone inputs, 233klokverschuiving, 179ontwerpregels, 179toelaatbaar klokgedrag, 182

Taknetwerkenalgemenere interconnecties, 53connectiematrix, 55, 84, 150serie-parallel, 51systematische analyse, 55transmissiematrix, 55verband met Boolese vormen, 52

Tekstuele representaties, 243ABEL, ALTERA, 74, 247ISPS, 244VHDL, 74, 77, 249

Ternaire interpretatie, 154, 163detectie van hazards, 148, 161

Testentestvectoren, 75, 247

Toestandstransitiediagram, 159Toestandstransitietabel, 159

eindtoestandentabel, 168exitatietabel, 168hazards

combinatorisch, 147, 161essentiele, 162races, 161ternaire analyse, zie Ternaire interpre-

tatie, zie Ternaire interpretatiemeervoudige overgangen, 161

Vertragingstijdinertiaalmodel, 4, 259transportmodel, 4, 259

VHDL, 251algemene structuur, 251

architecture, 251entity, 251

datatypes, 251parallellisme, 257

asserties, 258

331

Page 336: Digitale Elektronica - users.ugent.beusers.ugent.be/~jvncampe/digel/pdf/cursus.pdf · Een systeem, en in het bijzonder een digitaal systeem, kan op verschillende manieren be-schreven

blocks, 258data-flow statements, 258interagerende processen, 257

resolutiefunctie, 253, 258signals, 256

attributes, 257driver, 259inertiaalvertraging, 259transportvertraging, 259

simulatie, 250structuurbeschrijving, 259

generics, 259instantieringen, 259

tijdsmodellering, 258deltavertraging, 258simulatietijd versus gesimuleerde tijd,

258volgorde en tijdsloosheid, 258

332