Digitala kretsar 9789144019185 [PDF]

This book covers basic digital technology. Since basic digital technology is largely concerned with combinational and se

169 60 78MB

Swedish Pages [584] Year 2001

Report DMCA / Copyright

DOWNLOAD PDF FILE

Table of contents :
Framsida
Innehåll
Förord
Inledning
Digital – analog
Klassificering av integrerade kretsar
Talsystem och koder
Realisering av en liten krets i PLD – en introduktion till VHDL
Övningsuppgifter
Grindar, vippor, kombinations- och sekvenskretsar
Grindar och kombinationskretsar
Vippor och sekvenskretsar
Övningsuppgifter
Boolesk algebra
Boolesk algebra – definition
Räknelagar
Operationen XOR (Exklusivt-ELLER)
Övningsuppgifter
Kombinationskretsar
Definition av kombinationskrets
Booleska funktioner
Förenkling och realisering av booleska funktioner i grindnät
Quine-McCluskeys förenklingsmetod
Kombinationskretsar i tidsplanet
Adderare
Aritmetisk Logisk Enhet (ALU)
Paritetskrets
Komparator för likhet
Övningsuppgifter
Sekvenskretsar
Generella sekvenskretsar
Räknare
Register och skiftregister
Latchar
Asynkrona sekvenskretsar
Synkronisering av asynkrona signaler och metastabilitet
Övningsuppgifter
MOS-transistorn; Grindar i CMOS och nMOS
MOS-transistorn
CMOS-inverteraren
nMOS-inverteraren
Grindar i CMOS och nMOS
Övningsuppgifter
Halvledarminnen
Inledning – minnesmodell och en översikt av halvledarminnen
Läsminnen
Läs/skriv-minnen
Övningsuppgifter
Programmerbara logiska kretsar
VHDL – en introduktion
VHDL – bakgrund
Beskrivning av kombinationskretsar
Beskrivning av generella sekvenskretsar
Beskrivning av räknare
Beskrivning av skiftregister
Strukturbeskrivning
Beskrivning av en D-vippa och en D-latch
Övningsuppgifter
D/A- och A/D-omvandlare
D/A-omvandlare
A/D-omvandlare
2-potenser
ASCII-koden
PSpice simuleringsfiler
Halvledarminnen – datablad
PLD – datablad
Svar till övningsuppgifter
Inledning
Grindar, vippor, kombinations- och sekvenskretsar
Boolesk algebra
Kombinationskretsar
Sekvenskretsar
MOS-transistorn; Grindar i CMOS och nMOS
Halvledarminnen
VHDL – en introduktion
Sakregister
Papiere empfehlen

Digitala kretsar
 9789144019185 [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau



''•

.- -

•--



31•

-

.

'

' '

\ '

�.=:t:-1 -�. -

____;-,_

-- '"'r: :'.?>rri ---·- --:;_

--- .

::,,;:: ,:: �-

••

KOPIERINGSFORBUD

Detta verk är skyddat av lagen om upphovsrätt. Kopiering, utöver lärares rätt att kopiera för undervisningsbruk enligt BONUS-Presskopias avtal, är förbjuden. Sådant avtal tecknas mellan upphovsrättsorganisationer och huvudman för utbildningsanordnare t.ex. kommuner/universitet. För information om avtalet hänvisas till utbildningsanordnarens huvudman eller BONUS-Presskopia. Den som bryter mot lagen om upphovsrätt kan åtalas av allmän åklagare och dömas till böter eller fängelse i upp till två år samt bli skyldig att erlägga ersättning till upphovsman/rättsinnehavare. Denna trycksak är miljöanpassad, både när det gäller papper och tryckprocess.

Art.nr 3454 ISBN 978-91-44-01918-5 © Lars Hugo Hemert och Studentlitteratur 1992, 2001 Omslagsbild: Agneta Hemert Omslagslayout: LithoMontage AB Tredje upplagan Printed in Sweden Studentlitteratur, Lund www.studentlitteratur.se Tryckning/år

6

7

8

9 10

11

12

13

14

2011 10 09 08 07

Förord 9 1

Inledning 11 1.1 Digital - analog 11 Analogt telefonsystem 12 Digitalt telefonsystem 13 1.2 Klassificering av integrerade kretsar 20 Kundspecificerade kretsar 21 Standardkretsar 23 1.3 Talsystem och koder 25 Representation av tal i talsystem med olika baser 25 Omvandling mellan olika baser 28 Elementär aritmetik för binära, hexadecimala och oktala heltal utan tecken 32 Numeriska och alfanumeriska koder 34 1.4 Realisering av en liten krets i PLD - en introduktion till VHDL 41 Specifikation 42 Beskrivning 43 Syntes 50 VHDL - ett måste vid modern kretskonstruktion 52 •• 1.5 Ovningsuppgifter 53

2 Grindar, vippor, kombinations- och sekvenskretsar 56 2.1 Grindar och kombinationskretsar 56 OCH-grind 56 ELLER-grind 58 Inverterare 58 Några kombinationskretsar 59 NAND-grind 72 NOR-grind 74 © Studentlitteratur

3

Exklusivt-ELLER-grind, XOR-grind 74 Några fler kombinationskretsar 75 Three-state-utgång 77 Fördröjning 78 2.2 Vippor och sekvenskretsar 80 D-vippan 80 Register och skiftregister 82 Räknare 84 Några generella sekvenskretsar 91 •• 2.3 Ovningsuppgifter 96 3 Boolesk algebra 102 3.1 Boolesk algebra - definition 103 3.2 Räknelagar 104 Räknelagar för en var·iabel 104 R ·· elagar för flera va1·iabler 105 3.3 Operationen XOR (Exklusivt-ELLER) 111 Räknelagar 111 •• 3.4 Ovningsuppgifter 115 4 Kombinationskretsar 118 4.1 Definition av kombinationskrets 119 4.2 Booleska funktioner 120 4.3 Förenkling och realisering av booleska funktioner i grindnät 126 Kamaughdiagram 127 NAND- och NOR-nät 139 Ofullständigt specificerade funktioner 142 Grinddelning 145 Standardgrindnät i PLD för realisering av booleska funktioner 147 Faktorisering 152 4.4 Quine-McCluskeys förenklingsmetod 155 4.5 Kombinationskretsar i tidsplanet 167 Hasard 167 Kapplöpning 169 4.6 Adderare 171 4.7 Aritmetisk Logisk Enhet (ALU) 175 Aritmetik 175 Aritmetisk enhet 185 Logisk enhet 188 Aritmetisk Logisk Enhet (ALU) 190 4

© Studentlitteratur

4.8 Paritetskrets 196 Felupptäckande och felrättande kod 196 Par·itetskrets 200 4.9 Komparator för likhet 201 •• 4.10 Ovningsuppgifter 202

5 Sekvenskretsar 213 5.1 Generella sekvenskretsar 213 Realisering av en sekvenskrets typ Moore 213 Realisering av en sekvenskrets typ Mealy 227 5.2 Räknare 250 BinärT·· are modulo-2n med n bitar 251 Dekadräknare 269 5.3 Register och skiftregister 274 Serie in/parallell in - serie ut/parallell ut 274 Serie in/parallell in - serie ut/parallell ut - skift höger/skift · vänster 275 5.4 Latchar 277 SR-latchen 277 D-latchen 281 5.5 Asy ona sekvenskretsar 284 Realisering av en asynkron sekvenskrets 286 5.6 Sy onisering av asy ona signaler och metastabilitet 299 •• 5.7 Ovningsuppgifter 302 6 MOS-transistorn Grindar i CMOS och nMOS 312 6.1 MOS-transistorn 313 Uppbyggnad 313 Funktion 317 Kapacitanser 322 Liten historik 324 6.2 CMOS-inverteraren 324 Struktur 324 Logisk funktion 326 Statiska egenskaper 328 Dynamiska egenskaper 334 Effektförbrukning 337 6.3 OS-inverteraren 338 OS-inverterare med en resistor som passiv pull-up 338 © Studentlitteratur

5

nMOS-inverterare med en transistor som aktiv pull-up 339 6.4 Grindar i CMOS och nMOS 341 NAND-grind 341 NOR-grind 343 OCH-grind och ELLER-grind 344 Exklusivt-ELLER-grind, XOR-grind 345 Three-state-utgång 346 •• 6.5 Ovningsuppgifter 349 7 Halvledarminnen 352 7.1 Inledning - minnesmodell och en översikt av halvledar·minnen 352 Minnesmodell 353 Klassificering av halvledar·minnen 357 7.2 Läsminnen 361 ROM 361 Expansion till ett minne med flera kapslar 364 PROM 367 Modell för ett minneschip 369 EPROM 370 EEPROM 374 Flash-minnen 376 7.3 Läs/skriv-minnen 378 Statiska R (S M) 378 Dynamiska R (D M) 383 •• 7.4 Ovningsuppgifter 389 8 Programmerbara logiska kretsar 391 9 Vlll>L - en introduktion 398 9.1 VHDL - bakgrund 398 9.2 Beskrivning av kombinationskretsar 399 Parallella (concurrent) signaltilldelningar 399 Process 404 9.3 Beskrivning av generella sekvenskretsar 407 9.4 Beskrivning av räknare 415 9.5 Beskrivning av skiftregister 419 9.6 Strukturbeskrivning 420 9.7 Beskrivning av en D-vippa och en D-latch 429 Beskrivning av en D-vippa 429

6

© Studentlitteratur

Beskrivning av en D-latch 430 •• 9.8 Ovningsuppgifter 431

-omvandlare 434 10 D/A- och 10.1 DIA-omvandlare 435 DIA-omvandlare med spänningsdelare 436 DIA-omvandlare med viktade resistorer 438 DIA-omvandlare med R-2R-resistorstege 440 Fel i överföringskarakteristiken hos DIA-omvandlare 442 Unipolär och bipolär utsignal 444 DlA-omvandling genom pulsbreddsmodulering (P ) 446 10.2 -omvandlare 447 -omvandlare - typ parallell (''flash'') 448 -omvandlare - typ nivåramp 450 -omvandlare - typ successiv approximation 452 Appendix 1 2-potenser 455 Appendix 2 ASCII-koden 456 Appendix 3 PSpice simuleringsfiler 457 Appendix 4 Halvledarminnen - datablad 459 Appendix 5 PLD - datablad 472 Svar till övningsuppgifter 500 1 Inledning 500 1.3 Talsystem och koder 500 1.4 Realisering av en liten krets i VHDL - en introduktion till VHDL 502 2 Grindar, vippor, kombinations- och sekvenskretsar 504 2.1 Grindar och kombinationskretsar 504 2.2 506 Vippor och sekvenskretsar 506 3 Boolesk algebra 509 4 Kombinationskretsar 511 4.2 Booleska funktioner 511

© Studentlitteratur

7

4.3 Förenkling och realisering av booleska funktioner i grindnät 511 4.5 Kombinationskretsar i tidsplanet 517 4.6 Adderare 517 ·tmetisk logisk enhet (ALU) 518 4.7 5 Sekvenskretsar 519 5.1 Genrella sekvenskretsar 519 6 MOS-transistorn Grindar i CMOS och nMOS 530 6.4 Grindar i CMOS och nMOS 530 7 Halvleda,·minnen 532 9 VHDL - en introduktion 535

Sakregister 572

8

© Studentlitteratur

••

Denna bok är avsedd som kurslitteratur för en grundkurs i digitalteknik på högskolenivå. Innehållet är till största delen av fundamental och tidlös karaktär, nödvändigt för att förstå digitala kretsars funktion och för att kunna konstruera digitala kretsar. Huvuddelen av boken ägnas åt kombinationskretsar och sekvenskretsar, de fundamentala klasserna av digitala kretsar. Kombinationskretsar är kretsar utan minne, medan sekvenskretsar är kretsar med minne. Efter en inledning om begreppen analog och digital samt binära talsystem analyseras enkla kombinations- och sekvenskretsar uppbyggda med digitalteknikens minsta byggstenar, grinda1·11a och vipporna. Tanken är att denna analys skall belysa begreppen kombinationskrets och sekvenskrets. Förutom analys av generella kretsar visas där också exempel på fundamentala kretsar som används som byggblock i digitala kretsar, såsom multiplexer, demulti­ plexer, avkodare, räknare och register. Efter analysen av kretsar·na följer en genomgång av boolesk algebra, ett ovärderligt hjälpmedel för analys och syntes av digitala kretsar, som varje digitaltekniker måste vara förtrogen med. Därefter följer sedan en ingående behandling av syntes av kombina­ tions- och sekvenskretsar. Konstruktion, syntes, av digitala kretsar sker med mycket avancerade dator­ baserade syntesverktyg. Vid konstruktionsprocessens början beskrivs kret­ sen som skall konstrueras, utgående från kretsspecifikationen, i något formellt språk för inmatning i datorn i syntesverktyget. Det finns ett stand­ ardiserat språk för beskrivning av kretsar, språket VHDL (Very High Speed Integrated Circuit Hardware Description Language), skapat under första hälften 1980-talet och med en första standard 1987. Redan i bokens inled­ ningskapitel ges en försmak av språket VHDL med ett litet exempel där en kombinationskrets beskrivs i VHDL. I kapitel 9 ges en fylligare introduk­ tion till språket VHDL för beskrivning av kombinations- och sekvenskret­ sar. Många av kombinations- och sekvenskretsa1·na som behandlas i de tidi­ gare kapitlen i den löpande texten och i övningsuppgifterna, beskrivs i där © Studentlitteratur

9

VHDL. Det är lämpligt att samtidigt som kombinations- och sekvenskretsar studeras i kapitel 4 och 5, parallellt studera beskrivning av kretsar·na i VHDL i kapitel 9, och om det finns tillgång till syntesverktyg, realisera dem i program1nerbara kretsar. En kurs i digitalteknik kräver praktiskt arbete med syntesverktyg och kretsar för fullgott resultat. Filerna till de i den löpande texten i kapitel 9 i VHDL beskrivna kretsar·na samt filerna till kretsar·na som skall beskrivas i övningsuppgifterna finns att hämta på http://www.studentlitteratur.se/3454. Beskrivningar·na är gjorda i VHDL-93, nuvarande standard som följde på första standarden VHDL-87. Introduktionen av VHDL i kapitel 9 ger hjälp att ta första steget in i VHDL. Även om det är ett ganska litet steg, VHDL är ett stort språk och här behandlas bara en delmängd av VHDL, så ger det möjlighet att att beskriva och realisera relativt komplicerade kretsar. I boken behandlas även halvledar·minnen och Digital/Analog- och Analog/ Digital-omvandlare. Vidare visas hur digitalteknikens minsta byggstenar, grindar·na, realiseras med MOS-transistorer, den komponent som var·it och är förutsättningen för den fantastiska utvecklingen av digitala kretsar. Det är min förhoppning att boken skall ge en gedigen grund i digitalteknik för yrkesliv och vidare studier. Lycka till! Lund i augusti 2001 Lars-Hugo Hemert

10

© Studentlitteratur



Kapitlet inleds med en analys av begreppen digital och analog, skillnaden mellan digital och analog signal samt fördelar med digital representation. Därefter följer en liten klassificering av integrerade kretsar. Bl. a. inordnas där de viktiga klasserna programmerbara logiska kretsar (PLD) och tillämpningsspeci.fika kretsar (eng. Application Speci.fic Integrated Circuits, ASIC). Informationen i digitaltekniken kodas normalt binärt som binära ord eller tal. Framställningen i boken förutsätter att man är väl förtrogen med binära talsystemet. I detta inledningskapitel behandlas d.. ör representation i viktiga talsystem i digitaltekniken, såsom binära, hexadecimala och oktala talsystemen samt några olika koder för de tio decimala siffrorna O till 9. Kapitlet avslutas med ett litet exempel som belyser arbetsgången vid reali­ sering av en digital krets i en PLD och ger en introduktion till VHDL.







Digital: ''som avser siffror'', (SAOL, 1998). Ordet kommer från det engel­ ska ordet digit (sv. siffra), som i sin tur kom1ner från det latinska ordet digi­ tus (sv. nger, tå). Vi träffar också på ordet i digitalis, det latinska namnet på fingerborgsblomma. Ordet digit härstammar synbarligen från det primi­ tiva sättet att r·· a på fingra1·na. I digitala system representeras informationen med siffror och informations­ överföringen sker med digitala signaler. En signal är en informationsbärande storhet för kommunikation mellan människor, djur, maskiner etc. Ordet signal kommer från det latinska ordet signum, ''tecken''. Exempel på signaler i tekniska sammanhang är: elektrisk spänning och elektrisk ström. Motsatsen till en digital signal är en analog signal. Exempel på en analog signal är den elektriska spänningen från en mikrofon. © Studentlitteratur

11

1 Inledning

••



spann1ng -- elektrisk signal analog signal

ljudvågor ljudsignal _,__,_,,,

tid

Figur 1.1 Exempel på en analog signal.

Ordet analog är grekiska och betyder liknande, överensstämmande. Ljudsignalens variationer representeras här med en fysikalisk storhet, elek­ trisk spänning, vars amplitud är direkt proportionell mot ljudsignalen. Den elektriska spänningen liknar ljudsignalen, den är en analog signal. Den analoga signalen är en kontinuerligt va1·ierande signal och ordet analog används synonymt med ordet kontinuerlig om signaler. En digital signal är en diskontinuerlig signal. Ljudsignaler representeras idag i stor utsträckning som digitala signaler, exempelvis i digitala telefonsystem, CD-skivor och digital radio. Låt oss studera skillnaden mellan analog och digital representation av ljud­ signalen i telefonsystemet och fördelar med digital representation.

Analo talsignal störning l /; v ,

t

sändare

t

t

kanal

mottagare

Figur 1.2 Princip för överföring av ta/signalen i ett analogt telefonsystem.

12

© Studentlitteratur

1.1 Digital- analog

I ett analogt telefonsystem överförs talsignalen från sändare till mottagare som en analog signal i princip i samma form som den har efter mikrofonen i telefonen. Störningar i överföringskanalen som påverkar talsignalens amplitud, enligt figuren ovan, är kritiska och försämrar kvaliteten.

I ett digitalt telefonsystem överförs talsignalens amplitud i form av siffer­ värden. Den analoga talsignalen från mikrofonen samplas, mäts, (eng. sample = sv. prov, mätvärde) med jämna mellanrum och samplens siffer­ värden överförs genom kanalen till mottagaren, där siffervärdena återska­ pas till en analog talsignal. talsignal sampel

D/A-utsignal

t

t

Analog/Digital-omvandling +5V ... 0 V - ----, .------,----. .-1011000101011100111011000001

t

Digital/Analog-omvand I ing

störning

-

-

•••

1011000101011100111011000001

t

-

• ••

1011000101011100111011000001

t

sampel i binär form som 8-bitars tal r------t

sändare

A/D i-------t

i-----

kanal

DlA i----

mottagare

Figur 1.3 Princip för överföring av talsignal i ett digitalt telefonsystem.

Omvandlingen av samplen vid sändaren från analog till digital form görs i ) och omvänt vid mottagaren i en Digi­ en Analog/Digital-omvandlare ( tal/Analog-omvandlare (DIA).

© Studentlitteratur

13

1 Inledning

Varje sampel tilldelas av -omvandlaren ett siffervärde. Man har för tele­ fonsystemet bestämt att talsignalen skall kunna anta 256 olika siffervärden, värdena 0, 1, 2, ..., 255. Talsignalen kvantiseras i 256 olika intervall, innebärande att alla nivåer hos talsignalen inom ett visst intervall tilldelas samma siffervärde, enligt principen i figuren nedan. talsignal (maxvärde)

0

0

Figur 1.4 Princip för kvantisering av en analog signal i 256 olika nivåer.

De minsta byggstena,·na i digitala system, switcharna, är tvåvärda, binära, har två lägen, 'till' och 'från', 'leder ström' respektive 'leder inte ström'. Digitala signaler har därför bara två värden, norn1alt +5V och OV vid repre­ sentation med elektrisk spänning. Informationen i digitala system kodas binärt med kodord innehållande bara siffrorna O och 1. Avbildningen av sig­ nalnivåerna +5V och OV på siffrorna O och 1 görs vanligen så att +5V avbildas på siffran 1 och OV avbildas på siffran 0, s.k. positiv logik, men även den omvända avbildningen kan förekomma, s. k. negativ logik. I det digitala telefonsystemet kan talsignalens 256 nivåer kodas med kod­ ord, i detta fall binära tal, som har 8 binära siffror, bitar, (eng. binary Samplingsteoremet (amerikanen Claude Shannon, 1949) säger att: ''All information i ursprungssignalen finns med i den med sampel beskrivna sig­ nalen, om samplingsfrekvensen är större än dubbla högsta frekvensen i ursprungssignalen''.

14

© Studentlitteratur

1.1 Digital- analog

Redan för det analoga telefonsystemet bestämdes att frekvensområdet skall vara 300-3400Hz. Högsta frekvensen i talsignalen som överförs är alltså 3400Hz och enligt samplingsteoremet skall då samplingsfrekvensen vara minst 2-3400 = 6800 Hz. Samplingsfrekvensen bestämdes till 8000Hz. sampel

talsignal

•I

• •

• •I •I

I



I

t

I • I I





I



I



1/8000 s= 1/8 ms

Figur 1.5 Sampling av talsignal med samplingsfrekvensen 8000 Hz.

Med samplingsintervallets längd 1/8 ms och kodordets samtliga 8 bitar för­ delade över hela intervallet, så blir bitlängden l/64 ms och bithastigheten 64000 bit/s. Den binära kodningen av samplen kallas Pulskodmodulering, PCM (eng. Pulse Code Modulation). ett ord= 1/8 ms

! -- I

+5 V

ov

• I• •I

I• I•

• •I I• I• •I I

I• •I I• •I

I

1 bit= 1/64 ms



I

-

01100010 0111001101100000







(

Figur 1.6 Sampel av talsignalen i PCM med 8 bitar.

I figur 1.3 ovan visas påverkan av en störning på de digitala orden i över­ föringskanalen. Amplitudstörningar är inte så kritiska i digitala system. Så länge nivåerna för ettorna och nollorna håller sig i 1-intervallet respektive 0-intervallet som är definierat för de digitala komponenterna och ej hamnar i det odefinierade området, så påverkas ej informationen i kodordet. Den © Studentlitteratur

15

1 Inledning

fundamentala principen för binära signaler i digitaltekniken visas i figur 1.7 nedan. Den binära signalen här exemplifierad med en spänning i området 0 till +5 V, är kvantiserad i två diskreta (åtskilda) intervall, ett I-intervall och ett 0-intervall, åtskilda av ett område där signalen är odefinierad. Digitala signaler får statiskt bara ligga i I-intervallet och 0-intervallet och endast vid omslag befinna sig i det odefinierade området. V +5V

1 Odefinierad ...

.. .. ' .. ..

0

0



Figur 1. 7 Principen för en binär signal.

En stor fördel med digital representation jämfört med analog är att det inte är några större noggrannhetskrav på komponenterna, det spelar ingen roll var i det tillåtna intervallet signalen ligger, bara den ligger i intervallet och ej i det odefinierade området. Med relativt onoggranna komponenter kan man med digital representation uppnå godtyckligt hög precision genom att bara ta till tillräckligt många binära siffror. Med analog representation representeras värden med en kontinuerlig signal, en fysikalisk storhet, t.ex. elektrisk spänning, vars storlek är direkt proportionell mot värdet, och pre­ cisionen blir helt avhängig komponenternas noggrannhet. I digitala system har man noggrannhetskrav i gränssnittet till den analoga världen, i det digitala telefonsystemet ovan i - och DIA-omvandlaren. En annan fördel med digitala system är att de digitala komponenterna kan återbilda ''dåliga'' ettor och nollor till ''ordentliga'' ettor och nollor, som antytts i figur 1.3 ovan, där trots störningar i kanalen ''ordentliga'' ettor och nollor når mottagaren.

16

© Studentlitteratur

1.1 Digital - analog

Låt oss återvända till det digitala telefonsystemet. Samplingen och den digi­ tala representationen möjliggör att överföra flera telefonsamtal på samma ledning (kanal). Binära ord från flera telefonsamtal kan på sändarsidan sammanföras i en Multiplexer (MUX) och på mottagarsidan fördelas ut igen i en Demultiplexer (DMUX). Principen visas i blockschemat nedan för fyra telefonsamtal. bithastighet = 4·64000 = 256000 biUs bitlängd = 1 /256 ms/"',..

bithastighet = 64000 biUs bitlängd = 1 /64 ms 1

A/D - Skiftregister 1

Skiftregister 2

A/D 1--------4 Skiftregister 1

Skiftregister 2

A/0 1------1 Skiftregister 1

Skiftregister 2

-� A/D � Skiftregister 1

Skiftregister 2

,___---4

2

3 4

Biträknare

stYrenhet

kanal

adress

bithastighet = 64000 biUs bitlängd = 1 /64 ms

Skiftregister 2

Skiftregister 1

Skiftregister 2

Skiftregister 1 - D/A -

1----1

D/A

�:t.--,,,,.,,,

Skiftreg ister 2 - Skiftregister 1 - D/A -

adress

Skiftregister 2

Ad ressräknare

Figur 1.8

kanal

Adressräkn are

bithastighet = 4·64000 = 256000 biUs bitlängd = 1 /256 ms

DMUX

M UX

stYrenhet

Skiftregister 1 - D/A -

.___;.:;::

Biträknare

Princip för tidsmultiplex av fyra telefonsamtal i ett digitalt telefon­ system.

© Studentlitteratur

17

1 Inledning

En MUX är en dataväljare (eng. data selector) och en DMUX är en datafördelare (eng. data distributor) vars princip visas nedan i en mekanisk analogi (MUX och DMUX i det digitala telefonsystemet ovan är naturligtvis elektroniska komponenter som kan göra o...,... opplingar mellan kanalerna på någon nanosekund; i äldre telefonsystem var det faktiskt mekaniska komponenter enligt nedan). I MUX:en väljs med adressen en av de fyra inkorrunande kanalerna och en dataväg upprättas till den utgående kanalen. I DMUX:en väljs med adressen en av de fyra utgående kanalerna och en dataväg upprättas från den inkommande kanalen. M UX Dataväljare

Data

In

II

DMUX Datafördelare

Data

Data

Ut

In

I •I

. I ..· .• I

I

II



I

'

I

Data

..

I

Ut

• • I •

II •

II I I

adress

adress

Figur 1. 9 Mekanisk analogi för en MUX och en DMUX.

Funktionen hos det digitala telefonsystemet ovan med de fyra telefonerna är i stora drag följande. - De fyra talsignalernas 8-bitars sampel inmatas bit för bit, i serieform, i skiftregister 1 (en typ av minne för lagring av ett ord) med 64000 bit/s. När hela ordet inkommit överförs det omedelbart till skiftregister 2, samtliga bitar på en gång, i parallellforrn. I skiftregister 1 kan då nästa 8-bitars sample inmatas. Orden i skiftregister 2 sänds sedan ett i taget via multiplexern ut på kanalen, med en hastighet som är 4 gånger så hög som den tidigare hastigheten, eftersom 4 ord skall hinna sändas på samma tid som det tar för ett ord att inkomma i skiftregister 1. På mottagarsidan inkommer orden ett i taget via demultiplexern till skiftregister 2. När hela ordet inkommit i skiftregister 2 överförs det omedelbart till skiftregister 1, varifrån bita1·na skiftas ut. Kanalen utnyttjas alltså av de fyra talsignalerna i tur och ordning under (1/8)/4 = 1/32 ms för 18

© Studentlitteratur

1.1 Digital - analog

varje 8-bitars sampel enligt figur 1 . 1 0 nedan. Denna princip för tidsupp­ delning av kanalen benämnes tidsmultiplex. �-

ta Isig n a I nr:

•• •

t

1/32 ms

Figur 1.10 Överföring av de fyra talsignalema i tidsmultiplex på kanalen.

Det digitala telefonsystemet ovan med 4 telefoner har en uppbyggnadsprin­ cip som är karakteristisk för digitala system, en uppdelning i en dataväg (eng. data path) och en styrenhet (eng. control unit) enligt figur 1 . 1- 1 nedan.

Data

Styrsignaler

Statussignaler Styrdata _.......; 1n

Data ut

Dataväg (data path)

1n

Styrenhet ( control unit)

Styrdata ut

Figur 1.11 Uppbyggnadsprincip för digitala system.

Styrenheten kan innehålla 1nikrodatorer, mikrostyrkretsar, specialkretsar av standardtyp, kundanpassade kretsar etc. I figur 1 .8 ovan har antytts att det i styrenheten bör finnas r·· are, i detta fall en biträknare som håller reda på antalet bitar och en adressräknare som adresserar in- och utgånga,·na i MUX:en respektive DMUX:en. Datavägen innehåller normalt MUX:ar och DMUX:ar samt skiftregister och register. Räknare, skiftregister, multiplexrar och demultiplexrar är fundamentala kretsar vars uppbyggnad och funktion vi kommer att studera längre fram i boken. Ovan nämndes bl.a. kundanpassade kretsar, en klass av integrerade kretsar, och i avsnittet som följer görs en liten klassificering av integrerade kretsar. © Studentlitteratur

19

1 Inledning

av



Först ett par begrepp. - Halvleda,fabrikanten (eng. semiconductor manufacturer) tillverkar de integrerade kretsar·na. Kunden (eng. customer) köper dessa kretsar för att använda dem i sina produkter. Tillverkning av integre­ rade kretsar kräver mycket hög kompetens och mycket stora investeringar och det finns därför bara ett relativt litet antal halvledarfabrikanter i värl­ den. En första indelning av integrerade kretsar kan göras i standardkretsar och kundspeci cerade (eng. custom speci ed) kretsar. Kundspecificerade kret­ sar specificeras, som namnet säger, av kunden och tillverkas sedan av halv­ ledarfabrikanten. Specifikationen kan vara på olika nivå, från beteende till struktur. Ena ytterligheten är en fullständig specifikation av kretsens struk­ tur på kiselnivå med alla masker. Specifikationen är då alltså en fullständig konstruktion av kunden (eng. full custom design) och förutsätter då mycket hög kompetens och avancerade konstruktionsverktyg hos kunden. Andra ytterligheten är bara en specifikation av kretsens beteende och konstruktio­ nen överlåts sedan helt till halvledarfabrikanten. Kundspecificerade kretsar konstrueras och tillverkas för tillämpning i en speciell produkt, de är s.k. tillämpningsspecifika kretsar (eng. Application Specific Integrated Circuits, ASIC). 1 990-talet har inneburit det stora genombrottet för ASIC, vilket till viss del får tillskrivas framsteg inom halvledarteknologin, men till största del framsteg för avancerade datorbase­ rade utvecklingsverktyg som kan köras på persondatorer och arbetssta­ tioner. Exempel på användning av ASIC är i mobiltelefoner.

I ntegrerade kretsar

Standardkretsar

Kundspecificerade kretsar

Figur 1.12 Klassificering av integrerade kretsar.

20

© Studentlitteratur

1.2 Klassificering av integrerade kretsar '

nds · · •· •· Kundspecificerade ,kretsar · · • · '

. .

'

.

.

.

Delvis kundspecificerade kretsar (Semi custom)

Grindmatriser ( Gate arrays)

.

..

.

.

.

.

.

'.

Helt kundspecificerade kretsar (Full custom)

Standardceller (Standard cells)

Figur 1. 13 Klassificering av kundspecificerade kretsar.

Delvis kundspecificerade kretsar (semi custom) Grindmatriser Halvledarfabrikanten tillverkar en grindmatris (eng. gate array) med flera hundratusen grindar (eng. gate) placerade på chippet. Grindar är funda­ mentala byggstenar i alla digitala kretsar, uppbyggda av de tidigare nämnda tvåvärda switchar·na och ligger i komplexitetsnivå just ovanför dessa. I grindmatrisen ligger grindar·na i ett matrismönster, ett s.k. ''hav av grindar'' (eng. sea of gates) eller i block med mellan liggande kanaler för förbind­ ningar. Grinda1·na är inte förbundna och kretsen har sålunda i detta stadium ingen definierad funktion. Grindmatrisen är ett halvfabrikat som halvledar­ fabrikanten håller som lagervara. Utgående från halvledarfabrikantens spe­ cifikation av grindmatrisen konstruerar kunden sin krets och bestämmer grindar·nas förbindningsmönster, grindar är ju de minsta byggstena1·na i alla digitala kretsar. Kunden sänder sedan in beskrivningen av förbindnings­ mönstret för sin krets till halvledarfabrikanten, som tar grindmatrisen, halv­ fabrikatet, från lagret och färdigtillverkar kretsen genom att lägga på det aktuella förbindningsmönstret, normalt i form av tre masker, två för metalliseringslager av förbindningar och en för förbindningar mellan lagren.

© Studentlitteratur

21

1 Inledning

Vid konstruktion med grindmatris kan ej grindarna utnyttjas till hundra pro­ cent. Normalt kan bara ca 50,-75 % av grindar·na i matrisen utnyttjas, beroende på restriktioner vid förbindning av grindar·na. Om exempelvis en krets kräver ca 500.000 grindar, så måste man alltså realisera den i en grindmatris med ca 1000.000 grindar. Kiselytan på chippet utnyttjas sålunda inte optimalt vid grindmatriser, medförande högre kiselkostnad jämfört med konstruktion med standardceller. Tiden från beställning av en grindmatris till leverans rör sig om ett antal veckor. Grindmatriskretsar lämpar sig för medelstora volymer. Standardceller Kunden konstruerar sin krets med standardceller ur en katalog som tillhan­ dahålles av halvledarfabrikanten som skall tillverka kretsen. Standardcel­ lerna kan vara typ enkla r ·· are, register e.d., men kan också vara kom­ plicerade standardkretsar typ mikroprocessorer, signalprocessorer e.d. Kunden placerar ut standardcellerna på chippet och drar förbindningar·na. Kretsschemat översänds till halvledarfabrikanten som gör maskerna och tillverkar kretsen. Till skillnad från tillverkning med grindmatriser så utgår nu halvledarfabrikanten inte från ett halvfabrikat utan chippet tillverkas från början i alla processteg. Dock har halvledarfabrikanten färdiga masker för sina standardceller som kan integreras med det av kunden genererade förbindningsmönstret. Jä ört med grindmatriser så utnyttjas kiselytan här mer optimalt, det finns i detta fall inga outnyttjade komponenter på kise­ lytan. Tiden från beställning till leverans är längre än för grindmatriser och rör sig om några månader. Standardceller lämpar sig för stora volymer av kretsar. Helt kundspecificerade kretsar (full custom) Halvledarfabrikanten tillverkar samtliga masker från början. Det krävs mycket stor kompetens av kunden för att utföra konstruktion på denna nivå och det sker då normalt i nära samarbete med halvledarfabrikanten eller görs helt av halvledarfabrikanten. Denna typ av konstruktion är lämplig bara för kretsar i mycket stora volymer, typ fickräknare, klockor etc. Ibland kan en kundspecificerad krets så småningom bli en standardkrets. Exempel på en sådan krets är mikroprocessorn, som 1969 beställdes hos det ameri­ kanska företaget Intel, då bara ett år gammalt, som en kundspecificerad krets för en fickräknare av en japansk kalkylatortillverkare. Hur det gick

22

© Studentlitteratur

1.2 Klassificering av integrerade kretsar

sedan vet vi, kretsen blev 1971 den första mikroprocessorn Intel 4004, en 4-bitars mikroprocessor, och starten på mikroprocessorepoken.

Standardkretsar är exempelvis mikroprocessorer, signalprocessorer, min­ neskretsar, kretsar ur logikfamiljer såsom grindar, räknare, register osv. Dessa kretsar är bestämda till sin funktion. Till standardkretsa1·na bör man också r·· a de programmerbara kretsa1·na (PLD), som saluförs på samma sätt som de förstnämnda ''vanliga'' standardkretsa,·na, sam1na krets ofta av flera olika fabrikanter, s.k. alternativfabrikanter (eng. second source). De program1nerbara kretsa1·na skiljer sig dock från de ''vanliga'' standardkret­ sar·na, genom att de inte är bestämda till sin funktion, vilken bestäms först vid programmeringen. En programmerbar krets kan realisera funktionen hos många olika ''vanliga'' standardkretsar. En möjlig klassificering av standardkretsar visas nedan.

Icke funktionsbestämda - strukturprogrammerbara

Funktionsbestämda

Standard LSI - VLS I (räknare, register e.d)

Generella PLD

Tillämpningsspecifika PLD (ASPLD)

Programexekverande ( mikroprocessorer) Parameterprogrammerbara (UART, Timers e.d)

Figur 1.14 Klassificering av standardkretsar.

© Studentlitteratur

23

1 Inledning

Funktionsbestämda kretsar

Funktionen hos dessa kretsar är helt bestämd. Viss mindre förändring av funktionen genom inställning av parametrar kan dock ibland vara möjlig, som t.ex i en VART (Universal Asynchronous Receiver and Transmitter), en kommunikationskrets, där parametrar som baudrate (bit/s), ordlängd, antal stoppbitar o.s.v. är programmerbara. Sådana kretsar kan kallas param­ eterprogrammerbara. En mikroprocessor kan exekvera olika program och kan därför kanske inte tyckas vara funktionsbestämd, men det är den uppen­ bart, dess funktion är att vara mikroprocessor och exekvera program. Icke funktionsbestämda kretsar - strukturprogrammerbara

Programmerbara logiska kretsar (eng. Programmable Logic Device, PLD) är icke funktionsbestämda, strukturen i kretsen måste först programmeras innan funktionen blir bestämd och kretsen kan realisera det önskade beteen­ det. Generella PLD är inte konstruerade för en viss tillämpning, utan blir en tillämpningsspecifik krets först efter programmeringen, då strukturen blir bestämd, kretsen blir då en ASIC. Vissa PLD är konstruerade för speciella tillämpningar, såsom t.ex. för bussanslutning till mikroprocessorer, och dessa PLD brukar då benämnas tillämpningsspecifika PLD (eng. Applica­ tion Speci c PLD), ASPLD. PLD är en viktig klass av kretsar. De används som tillämpningsspecifika kretsar i produkter och för prototyptestning vid utveckling av ASIC. Dagens PLD är så komplexa att de medger möjlighet att lägga in mikroprocessorer och signalprocessorer i kapseln. I exempelvis en XILINX Virtex-11 FPGA kan man programmera in en mikroprocessor, typ IBM PowerPC 405 32-bit RISC CPU, en DSP (Digital Signal Proces­ sor) eller andra dylika kretsar som man kan köpa av fabrikanten som fär­ diga s.k. IP-block (IP = Intellectual Property) och använda dessa kretsar till­ sammans med de kretsar som man själv konstruerar. Ofta används ordet PLD endast för e "-A.are typer av programmerbara kretsar med den struktur de hade i begynnelsen. För mer komplexa PLD bestående av ett antal av de ursprungliga PLD på samma chip med en programmerbar förbindningsma­ tris mellan dem, används benämningen CPLD (eng. Complex PLD). För en komplex PLD med en matrisstruktur av konfigurerbara logikblock med mellanliggande förbindningsledningar, används benämningen FPGA (eng. Field Programmable Gate Array).

24

© Studentlitteratur

1.3 Talsystem och koder

r Represen

1on av

baser

Det decimala talsystemet har basen (eng. base, radix) 10 och har tio siffer­ symboler (siffror) 0, 1, 2, ..., 9, alltså lika många siffersymboler som basen. Ett decimaltal representeras med en sekvens av dessa siffersymboler. Det decimala talsystemet är ett positionssystem, innebärande att siffrans vikt (eng. weight) i talet bestäms av siffrans position i talet. Sålunda är det deci­ mala talet 370,81 ett symboliskt skrivsätt för 2

1

0

3 · 10 + 7 · 10 + 0 · 10 + 8 · 10

-1

+ 1 · 10

-2

En siffras vikt i ett decimaltal är som bekant en potens av basen 10. Principerna ovan gäller för ett godtyckligt talsystem och för ett talsystem med basen b gäller alltså att det har b siffersymboler 0, 1, 2, ..., (b-1) och att siffrornas vikt är en potenser av basen b. Notera att siffran omedelbart till vänster om kommat (punkten) alltid har vikten 1, är en entalssiffra, oavsett 0 basen b, eftersom b = 1 . Det binära talsystemet (eng. binary number system) har basen 2 och två siffersymboler O och 1. Siffrornas vikt är potenser av 2. Exempelvis är det binära talet 1011. 101 ett symboliskt skrivsätt för 3

2

1

0

1 · 2 +0 · 2 +1 · 2 +1 · 2 +1 · 2

-1

+0· 2

-2

+1·2

-3

Räknar vi ut denna summa finner vi att den är lika med 11,625. Vi konstat­ erar således att det binära talet 1011.101 är lika med decimala talet 11,625, vilket kan uttryckas som 1011.1012 = 11, 625 10 där index anger talets bas (vi använder ''punkt'' i stället för ''komma'' vid andra baser än 10). I det binära talsystemet har alltså siffrorna till vänster om bin ·· unkten (heltalssiffrorna) vikterna 1, 2, 4, 8, 16, 32, 64, ..., och siffrorna till höger om bin ·· unkten (bråktalssiffrorna) vikterna 1/2, 1/4, 1/8, 1/16, ... . I ett tal benämns siffran som har den största vikten, mest signi kant si ra (eng. Most Significant Digit, MSD) och siffran som har den minsta vikten,

© Studentlitteratur

25

1 Inledning

minst signi kant siffra (eng. Least Signi cant Digit, LSD). För 4-bitarstalet 101 1 (bit = binary digit) är alltså MSD LSD

J, J, 101 1 När det gäller binära siffror, som i detta fall, används också benämningen MSB (Most Significant Bit) och LSB (Least Significant Bit). Binära talvariabler brukar namnges så att det framgår vilken bit som är mest respektive minst signifikant. Norn1alt används lägsta index för den minst signifikanta siffran, t.ex. kan en 4-bitars talva1·iabel betecknas d= (d3 , d2 , d 1 , d0) . Ibland används vikterna som index, d = (d 8 , d4 , d2 , d 1 ) . I vissa fall, exempelvis i databöcker för digitala kretsar, låter man bokstaven A beteckna den minst signifikanta siffran, bokstaven B den näst minst sig­ nifikanta siffran o.s.v. Man kan se en 4-bitars insignalvar·iabel betecknad l = (D, C, B , A) och en tillståndsvar·iabel betecknad Q = (Q 0 , Qc, Q8 , QA)Det finns två andra talsystem som används i digitalte · en, det hexa­ decimala talsystemet och det oktala talsystemet, och då speciellt det först­ nämnda. Den huvudsakliga användningen av dessa talsystem är för att bekvämt och kompakt representera långa binärtal, som är svåröverskådliga och svårhanterliga. Orsaken till att just dessa två talsystem används för representation av binärtal är, som vi skall se längre fram, att det är lätt att omvandla ett binärtal till ett hexadecimalt eller ett oktalt tal och tvärtom. Det hexadecimala talsystemet har basen 1 6 och 1 6 siffersymboler och siff­ rornas vikter är potenser av 1 6. En komplikation här är att det behövs sex ytterligare siffersymboler utöver symbolerna 0, 1 , 2, ... , 9. Om siffersymbo­ lerna 10, 1 1 , 1 2 o.s.v. skulle användas, kunde missförstånd lätt uppstå vid tolkningen av talen. T.ex. skulle talet 1 2 kunna tolkas som symbolen 1 2 eller som symbolerna 1 och 2. För att slippa markera med parenteser e.d. vad som avses, betecknas siffersymbolerna 1 0, 1 1 , 1 2, . . . , 1 5 med bokstä­ verna A, B, C, . . . , F. Exempel på ett hexadecimalt tal är B9. F för vilket alltså gäller 1

0

-1

B9.F 1 6 = 1 1 · 1 6 + 9 · 16 + 15 · 16 = 1 8 5 , 9 3 7 5 1 0 Det oktala talsystemet har basen 8 och 8 siffersymboler 0, 1 , 2, ... , 7 och siffrornas vikter är potenser av 8.

26

© Studentlitteratur

1.3 Talsystem och koder

Exempel på ett oktalt tal är 1 25.4 för vilket gäller 2

1

-1

0

1 25.4 g = 1 · 8 + 2 · 8 + 5 · 8 + 4 · 8 = 85, 5 1 0 Vi kan nu samrnanfatta och konstatera att för ett tal N=xpXp -l· · ·x1x0.x_ 1 . . . x_k i ett talsystem med basen b gäller att p- 1

p

N =

+ x_ 1 · b

-1

+ x_2 · b

-2

1

+ ... + x_k · b

0

-k

( 1 .1 )

där talets siffror xi kan anta b olika värden 0, 1 , 2, ..., (b-1 ). Det råder ett enkelt samband mellan ett talsystems bas och antalet erforder­ liga positioner (siffror) för att representera ett visst talområde. Antag att de M heltalen 0, 1 , 2, ..., (M-1 ) skall representeras i ett talsystem med basen b. Med n siffror och basen b kan bildas b-b · ...· b (n st) = bn olika tal, ty första siffran kan väljas på b olika sätt, andra siffran på b olika sätt osv. För att de M heltalen skall kunna representeras med n siffror måste alltså gälla att b0 > M. Med exempelvis fyra siffror, dvs n = 4, kan i det binära talsyste­ met bildas 2-2-2-2 = 24 = 1 6 olika tal, 0000, 000 1 , 00 1 0, ..., 1 1 1 1 , motsva­ rande heltalen 0, 1 , 2, ..., 1 5. Uppenbart ju mindre basen är desto fler siffror åtgår det för att representera ett visst talområde. Tabell I . I : Heltalen O t. o.m. 15 i några olika baser. ---.----r-- -- ---r-- .. ..... .... .. . .. . -. . ... ----, .. . ... . .

bas

2

3

4

5

!9 } .

. .. . .. .·>. ..•. . ..

8

. .

. . . : : : .:

.

.

16

---- -- -- ---+--- ..;.......,·......, . . .,,.... . . . ......... . . ---I 0000 000 00 00 00 00 ) 0 .

0001 . 00 1 0 00 1 1 0 1 00 0101 0 1 10 01 1 1 1 000 1 00 1 1010 101 1 1 1 00 1 1 01 1 1 10 1111

00 1 002 010 01 1 012 020 02 1 022 1 00 101 1 02 1 10 111 1 12 1 20

© Studentlitteratur

01 02 03 10 11 12 13 20 21 22 23 30 31 32 33

01 02 03 04 10 11 12 13 14 20 21 22 23 24 30

01 02 03 04 05 06 07 10 11 12 13 14 15 16 17

'.

.

': .

"

·• · •· o·1. .. . ... -. .

.

.; . ,"' ' : :

: : ,: : . . .. ' . . .. ..

- · - - · - - ·· ..

..

.. .---.

.

.

: --- r· -:_, NA ). 72

© Studentlitteratur

2.1 Grindar och kombinationskretsar

Exempel 2. 11 Realisera en Inverterare, en OCH-grind och en ELLER-grind med enbart 2-ingångars NAND-grindar. Lösning

a-&

·. . · •· · y = (aa) , = a ,

a

b ____.

• •. y = ((ab)' ) ' = ab

OCH

Inverterare a

· . · y = (a ' b ' ) ' = a + b

b -- & ELLER

Figur 2.29 Inverterare, OCH och ELLER realiserad med NAND-grindar.

Realiseringa1·na fås ur sanningstabellen för NAND-grinden. Inverteraren för insignalerna AB=00 och AB= 1 1 . OCH-grinden genom att byta O mot 1 och tvärtom i Y-kolumnen. ELLER-grinden genom att i sanningstabellen invertera A och B (byta O mot 1 och tvärtom) och sedan skriva om raderna i ordning, vilket ger sanningstabellen för ELLER. Med hjälp av boolesk al­ gebra, som vi skall studera i nästa kapitel, kan man lätt visa realiseringar·na rent algebraiskt. Som alternativ till att lägga samrna signal till båda ingångar·na vid realiser­ ingen av inverteraren kan i stället den ena ingången ges insignalen 1 enligt figuren nedan. Observera inte insignalen 0, ty då blir utsignalen hos NAND-grinden alltid lika med 1 oavsett värdet hos den andra insignalen. Oanvända ingångar hos OCH- och NAND-grindar skall alltså ges insig­ nalen 1. •

a

.• &

1

.

. · y = (a 1 ) ' = a '

Inverterare

Figur 2.30 Alternativ realisering av inverterare med 2-ingångars NAND-grind.

© Studentlitteratur

□ 73

2 Grindar, vippor, kombinations- och sekvenskretsar

Sanningstabell

Symbol A ------t > 1 B

AB y

I EC

y

0 0 1 1

0 1 0 1

1 0 0 0

Logisk operation Y = (A + B) '

Am.

Figur 2.31 NOR-grind.

I sanningstabellen för NOR-grinden läser vi att ''Y= 1 om och endast om ICKE((A= 1) ELLER (B= 1))''. Kretsen realiserar den logiska operationen IC -ELLER (eng. NOT-OR, NOR). NAND- och NOR-grindar är enklare att realisera med transistorer än OCH­ och ELLER-grindar beroende på transistorns naturliga förmåga att invert­ era, som utnyttjas vid realisering av NAND och NOR, men som måste kompenseras med en extra inverterare vid realisering av OCH och ELLER. •• Aven om fabrikanterna visar funktionsschema för en krets med OCH- och ELLER-grindar, så är det vanligen bara en beskrivning av den logiska funk­ tionen och inte den verkliga realiseringen med grindar, som sannolikt är med NAND- och NOR-grindar.

Symbol A - =1 _y

B-

I EC

Sanningstabell

AB y 0 0 1 1

0 1 0 1

0 1 1 0

Logisk operation

Y = A EFJ B alt. Y = A xor B

Y=AAB

Am .

Figur 2.32 Exklusivt-ELLER-grind, XOR-grind (eng. Exclusive-Or gate).

74

© Studentlitteratur

2 . 1 Grindar och kombinationskretsar

I sanningstabellen för Exklusivt-ELLER-grinden utläser vi att '' Y= 1 om och endast om antingen (A= 1) ELLER (B= 1) ''. Exklusivt-ELLER är således rent språkligt '' antingen-eller '', en sk·· ning av det ''vanliga'' eller genom att A= 1 och B= 1 utesluter, exkluderar, varandra, därav benämnin­ gen Exklusivt-ELLER. I grindsymbolen för Exklusivt-ELLER står ''= 1 '' motiverat av att '' Y= 1 om och endast om exakt en insignal har värdet 1 ''. Det finns andra tolkningar av Exklusivt-ELLER som ger viktiga användnin­ gar av Exklusivt-ELLER-grinden. - En tolkning är att '' Y= 1 om och en­ dast om insignalema är olika '' eller alternativt att '' Y=0 om och endast om insignalema är lika '', som gör det möjligt att använda grinden som järn örare, komparator.

Komparator

Ofta behöver man i digitala system jämföra (eng. compare) två binära ord med avseende på relationen ''likhet'' (=), dvs överensstämmelse i alla bitar. En komparator Compequ_2bit som jämför två 2-bitars ord a=(a 1 , a0) och b= (b 1 , b0) med avseende på 1 · et visas nedan. Komparatom har fyra in­ gångar a 1 , a0, b 1 och b0 och en utgång equal. Beteendet skall vara equal= l om och endast om a=b

a b

Komparator Compequ 2bit

eq ual

Figur 2.33 Komparator som jämför två 2 -bitars ord med avseende på likhet.

För orden a och b gäller att a=b om och endast om (a 1 =b 1 ) och (ao=bo)

© Studentlitteratur

75

2 Grindar, vippor, kombinations- och sekvenskretsar

Jämförelsen av a 1 med b 1 respektive a0 med b0 kan göras i var sin XOR­ grind. Utsignalerna från de två XOR-gindar·na ansluts sedan till en grind för vilken gäller att utsignalen är 1 om och endast om båda insignalema är 0, dvs en NOR-grind.

a

'

..

..

=1

eq ual

>1

b

.

=1 ..

Figur 2.34 Realisering av komparatom Compequ_2bit.

Jämförelsen av orden görs alltså bitvis (eng. bitwise) En annan tolkning av Exklusivt-ELLER är att '' Y = 1 om och endast om ett udda antal insignaler har värdet 1 '', som gör det möjligt att använda grinden för s.k. paritetskontroll, en metod för felupptäckt i binära ord, som berörs i ett senare kapitel. XOR-grinden kan också användas som styrbar inverterare, enligt figuren nedan.

s

=

O



u

=

x

s

=

s=O

1 s

⇒ =

u

=

x

1 ,

Figur 2. 35 XOR-grinden som styrbar inverterare.

Med insignalen s i figuren ovan betraktad som en styrsignal, så gäller att för s = 0 (se A = 0 i sanningstabellen ovan för XOR-grinden) så går insignalen x opåverkad genom XOR-grinden (se B och Y i sanningstabellen), medan för s = 1 (se A = 1 i sanningstabellen) så inverteras insignalen x (se B och Y i sanningstabellen).

76

© Studentlitteratur

2. 1 Grindar och kombinationskretsar

De hittills studerade grinda1·11a har haft två utgångsvärden (utgångstill­ stånd), Låg (0) eller Hög ( 1 ). Många digitala kretsar är försedda med utgån­ gar som förutom dessa två utgångstillstånd även kan anta ett tredje tillstånd, då utgången varken är Låg eller Hög, utan är frisvävande, högohmig (eng. high impedance). Kretsen har alltså en utgång med tre utgångstillstånd (eng. three-state output, äv. eng. tri-state). I figuren nedan visas symbol, sanningstabell och funktionsprincip för en inverterare som är försedd med three-state-utgång. Three-state-funktionen hos inverteraren styrs med insignalen E, Enable (eng. enable=sv. möjliggöra för ngn). För E=0 är utgången Y frisvävande, medan för E = 1 är utgången Y ansluten till inverteraren och kretsen fun­ gerar som en inverterare. - Insignaler benämnda Enable förekommer ofta hos digitala kretsar och används för att aktivera respektive inaktivera någon funktion hos kretsen.

Sanningstabell

Symbol

E -----r-,

A ---t 1 '1 i,.-,.,_ y

ox z 10 1 1 1 0

I EC E

A_

EA y

y

Funktionsprincip E

.

'

A_ 1 •• • I

(X = don't care) (Z = högohmig) (E = Enable)

Am.

Figur 2.36 Inverterare med three-state-utgång

Orsaken till att digitala kretsar ofta har utgångar av typ three-state är att det skall gå lätt att koppla samman kretsar. Dataöverföring mellan olika enheter i digitala system sker nor1nalt via s.k. bussar (av latinets omnibus: ''till för alla''), så är fallet t.ex. i en dator. En buss i detta sammanhang är ett antal parallella ledningar, se figuren nedan, som bildar en väg på vilken binära ord, med lika många bitar som antalet ledningar, kan överföras. Ett god­ tyckligt antal enheter skall kunna anslutas till bussen, som uppenbarligen är ''till för alla''. Förutsättningen för att en enhet skall kunna anslutas till bus© Studentlitteratur

77

2 Grindar, vippor, kombinations- och sekvenskretsar

sen är att dess utgångar är av typ three-state. Principen för kommunikation på bussen är att endast en enhet i taget, sändande enheten, får ha sina utgån­ gar aktiva, medan samtliga andra enheter har sina utgångar inaktiva, fri­ svävande, så att de inte påverkar bussledningar·nas tillstånd.

Enhet 1 Ut In

V V

V

•••

•••

Ut

Enhet 2

V V

•••

V

In

•••

•••

Enhet n Ut In

V V

V

•••

•••

buss • · • -••-• .

Figur 2.37 Princip för anslutning av enheter till en buss.

I digitala kretsar tar det alltid en viss tid innan en ändring av en insignal ger en ändring av en utsignal, det finns enfördröjning (eng. propagation delay), tpd, mellan insignal och utsignal. Fördröjningen beror på att det i kretsens uppbyggnad med transistorer på kiselbrickan, naturligt och oundvikligen finns diverse kondensatorer, som skall laddas upp eller laddas ur vid sig­ naländringar. Fördröjningens storlek beror på kondensatorernas storlek och upp- och urladdningsströmmar·nas storlek. Ju mindre kondensator och ju större ström desto snabbare upp- och urladdning och mindre fördröjning. Digitala kretsar blir snabbare och snabbare för varje år, dvs fördröjninga1·na blir mindre och mindre. Detta beror på att man lyckas göra kretsa1·na mindre och mindre och dä1·1ned blir också kondensatorerna mindre och mindre och sålunda även fördröjninga1·na. Amerikanen Gordon Moore, företaget Intels grundare, påstod 1965 att man kommer att kunna fördubbla antalet transistorer per kvadrattum på ett chip var 18.e månad. Utveck­ lingen har hittills med förvånansvärd noggrannhet följt denna s.k. Moores lag. Fördröjningen i en digital krets illustreras nedan med fördröjningen i en in­ verterare.

78

© Studentlitteratur

2.1 Grindar och kombinationskretsar

a

1

1

a

0 1

y

I I I I I I I I I I I I I I I

I I I I I I I I I I I I I

0

I

t

I

Fördröjning tpd

Figur 2.38 Fördröjning i en inverterare.

Signalerna ändrar sig inte momentant från O (L) till 1 (H) och tvärtom, utan har alltid en viss stigtid (eng. rise time) och /alltid (eng. fall time), som också beror på upp- och urladdning av kondensatorer, såsom schematiskt åskådliggjorts i figuren ovan. Fördröjningen mäts vid signalernas 50 %n1va. •

0

Exempel 2.12 Bestäm maximala fördröjningen för grindnätet nedan (samma grindnät som i figur 2. 5 ). Antag följande fördröjningar d-INV

= 0,2 ns

-OCH

a

J &

C

1

b

=

0,4 ns

>1

d-ELLER

=

0,5 ns

u

Lösning Fördröjninga1·na från ingång till utgång är

a, b

-> u:

d-OCH

+ d-ELLER = 0,4 + 0,5

=

0,9 ns

c

-> u:

d-INV

+ d-ELLER = 0,2 + 0,5

=

0,7 ns

Maximala fördröjningen i grindnätet är 0,9 ns.

□ © Studentlitteratur

79

2 Grindar, vippor, kombinations- och sekvenskretsar

Grinda1·na och grindnäten vi sett exempel på i detta kapitel tillhör en klass av kretsar som kallas kombinationskretsar (eng. combinational circuits). Det är kretsar utan minne. Utsignalerna hos en kombinationskrets beror en­ dast av det aktuella insignalvärdet och ej av tidigare insignalvärden, efter­ som kretsen ej kommer ihåg vad som skett tidigare. Tiden är intressant för en kombinationskrets bara vad gäller fördröjningen mellan insignal och ut­ signal. Vi skall nu studera D-vippan, en minneskrets, som används för att realisera kretsar med minne, tillhörande klassen sekvenskretsar (eng. sequential cir­ cuits).



D-vippan D-vippan (eng. D flip flop) är en minneskrets som kan lagra en bit. Den kan realiseras med grindar, vilket vi skall se i ett senare kapitel. Här skall vi bara betrakta den som ett byggblock. värdet som skall skrivas in i minnet D C

D Q : C

Symbol

klocksignal som styr inskrivning i minnet, vilket sker då klock­ signalen går från 0 till 1

minnescell för lagring av en bit Q nuvarande värde i minnet

Funktionsprincip

Figur 2.39 D-vippa, symbol ochfunktionsprincip.

Som framgår av figuren ovan så har D-vippan två ingångar, en ingång D (Data) för biten som skall skrivas in och en ingång C (Clock) som styr in­ skrivning i minnescellen, och en utgång Q som visar värdet hos biten som är lagrad minnescellen i D-vippan. Klocksignalen är normalt enfyrkantvåg 80

© Studentlitteratur

2.2 Vippor och sekvenskretsar

(eng. square wave) enligt exemplet i figuren nedan, som visar D-vippans funktion i tidsplanet. Inskrivning av värdet på D-ingången i minnescellen sker då klocksignalen går från O (L) till 1 (H), på klocksignalens positiva ank (eng. positive edge), man säger att vippan är positivt flanktriggad (eng. positive edge triggered). Värdet på Q-utgången kan bara förändras på denna flank, med en viss fördröjning som ej är utritad i figuren nedan.

I

1

C0

I

I

1

t

D 0 1

Q 0

Figur 2. 40 D-vippansfunktion i tidsplanet.

D-vippan kan också konstrueras så att inskrivning av värdet på D-ingången i stället sker då klocksignalen går från 1 (H) till O (L), på klocksignalens negativa ank (eng. negative edge), och är då negativt flanktriggad (eng. negative edge triggered). I symbolen för D-vippan markeras detta med en invertera1·ring på klocksignalingången C, enligt figuren nedan.

----tO

C



Symbol C t

D

I

Q I

Figur 2.41 D-vippa, negativt fianktriggad.

© Studentlitteratur

81

2 Grindar, vippor, kombinations- och sekvenskretsar

D-vippans beteende kan beskrivas grafiskt i ett tillståndsdiagram (eng. state diagram) och i en tillståndstabell (eng. state table) enligt figuren nedan. D=O

�o a­ c

0=1 0=1

1

0

D=O Sy mbol

Tillständsdiagram

CD Q+ 0 X Q 1 X Q 0 _r 1 Tillständstabell

so

Figur 2.42 D-vippan beskriven i ett tillståndsdiagram och en tillståndstabell.

D-vippan kan befinna sig i två olika tillstånd (eng. state) Q = 0 och Q = 1. I tillståndsdiagrammet representeras tillstånden med cirklar och tillstånds­ övergångar·na med pilar. Tillståndsövergångar sker för D-vippan ovan på klocksignalens positiva flank. På piJar·na står ingångsvärdet som ger tillståndsövergången. I tillståndstabellen betecknar Q+ nästa tillstånd (eng. next state), tillståndet som intas efter klocksignalens positiva flank. Vidare står X i tabellen för don 't care, irrelevant. Sålunda då klocksignalen är kon­ stant O eller 1 så är sker ingen tillståndsändring, dvs Q+ = Q, nästa tillstånd är lika med nuvarande tillstånd (eng. present state äv. current state). D-vippan används inte för uppbyggnad av stora 1ninnen, till det används en­ klare minnesceller, som visas längre fram i kapitlet Halvledar·minnen. D-vippans främsta användning är dels för konstruktion av speciella sek­ venskretsar såsom register, skiftregister och räknare, vilka används som byggblock vid realisering av digitala kretsar, dels för konstruktion av ge­ nerella sekvenskretsar.

Ett register (eng. register) är ett minne för lagring av ett ord. I figuren nedan visas exempel på ett register för lagring av ett 8-bitars ord. Inskrivning av ordet i registret nedan sker med klocksignalen. 82

© Studentlitteratur

2.2 Vippor och sekvenskretsar

Data in (parallell) Register 8 bitar

clock (inskrivning parallell)

Data ut (parallell) Data in

d in7 D

· c

d in6 Q .

• ••· ·�

d in5 Q . · · · .· •. D

· · c

d in4 Q . · .·

· D

· ·· · ·•· c

d_ut7 d_ut6 d_ut5

d in3 Q ··

·

D

. ·· .. . ·. c

d_ut4

d in2 Q .. ··•• ·.•· ·• D

c

d in1 .

Q •.•. ·· · .

d inO . . .· • . . D

.

c

Ql,,i.,, .. ..· ..

d_utO

d_ut3 d_ut2 d_ut1

Data ut

Figur 2.43 Register för 8-bitars ord, parallell in - parallell ut.

Registret ovan är av typ parallell in - parallell ut, dvs inskrivning av ett ord och utläsning av ett ord sker med alla bitar på en gång. Det finns också register där inskrivning och utläsning av ett ord sker med en bit i taget, s.k. skiftregister (eng. shift register). Exempel på ett sådant register visas i fig­ uren nedan. Data in (serie) clock (inskrivning och • utläsning serie)

Data ut (serie)

Register 8 bitar Data ut (parallell)

Data in

d_in ·• ·• ............... -□ a.••.. ..

·.o a. .. · . . . o a .. .·· · · · ••c •... c ·

=::.....

•· .• c

clock . ....::•

o c

d_ut7 d_ut6 d_ut5

a.. ..·. ·.

.•o a .--... ·· · · •·· c

d_ut4

�D .

···· C

Q ·. •·

Data ut .........___··. d ut

. D

...

d_ut3 d_ut2 d_ut1

C

Q

d_utO

Data ut

Figur 2.44 Skiftregister för 8-bitars ord, serie in - parallell/serie ut. © Studentlitteratur

83

2 Grindar, vippor, kombinations- och sekvenskretsar

Bita1·na läggs en i taget på ingången Data in och skrivs in, skiftas in åt höger, med klocksignalen (clock). Utläsning kan här ske med alla bita1·na på en gång eller genom utläsning av en bit i taget på utgången Data ut och skift höger av bitarna i registret med klocksignalen. Registret är av typ serie in - parallell/serie ut. Fler varianter av skiftregister förekommer och visas i ett senare kapitel.

En annan viktig användning av D-vippan är för realisering av räknare (eng. counter). I figuren nedan visas en räknare som r·· ar 00, 0 1, 10, 1 1, 00, ... . Uttryckt i decimaltal r·· ar den 0, 1, 2, 3, 0, ... , dvs modulo-4. R.. ingen sker med klocksignalen. I schemat nedan är D-vippoma försedda med en inversutgång Q', vilket ofta är fallet. clock

.·• LSB

' ' ' ' ' ',, ' ,,",,' ,, , ' ,,

.

' :c

Kretschema

_ clock Binärräknare Cnt2b

qo q1

1--

Blocksymbol

Figur 2.45 2-bitars binärräknare Cnt2b, som räknar modulo-4.

84

© Studentlitteratur

2.2 Vippor och sekvenskretsar

00

01

11

10 Tillståndsdiagram

Nuvarande Nästa tillstånd tillstånd

01 10 11 00

00 01 10 11 Tillståndstabell

Figur 2.46 2-bitars binärräknare Cnt2b, tillståndsdiagram och tillståndstabell.

Räknaren har två D-vippor, som vardera kan anta två olika tillstånd O och 1. ras med 4 cirklar i tillståndsdiagram1net ovan. Tillståndsövergånga,·na fås fram ur binärTäknarens schema i figuren ovan genom att man för varje värdekombination hos D-vippoma, nuvarande tillstånd, bestämmer d 1 och , dvs nästa tillstånd för D-vippoma. För exempelvis q 1 q0 = 00 blir d 1 = 01. Tillståndsdiagrammet ovan har ett för räknare karakteristiskt ut­ seende, tillstånden ligger i en ring. I blocksymbolen har r·· aren getts namnet Cnt2b, där Cnt står för Counter, 2 för antalet bitar och b för att aren r·· ar binärt. I figuren nedan visas binä1Täknarens utsignaler i tidsplanet. Vi ser där att frekvensen hos utsignalen q 0 är hälften av klocksignalens frekvens och att frekvensen hos utsignalen q 1 är en fjärdedel av klocksignalens frekvens. Frekvensdelare (eng. frequency divider) är också ett användningsområde för r·· are. I

clock

I t

I II

I I

Figur 2.47 Tidsdiagram för 2-bitars binärräknaren Cnt2b ovan. © Studentlitteratur

85

2 Grindar, vippor, kombinations- och sekvenskretsar

Nollställning D-vippan är norn1alt försedd med asynkrona insignaler för nollställning (eng. Clear, Cl) och ettställning (eng. Preset, Pr) enligt figuren nedan. Nor­ malt är signalerna aktivt Låga, som i detta fall. Pr 1 0 1 1 1 1

------tO Pr Q _ C Cl

Cl 0 1 1 1 1 1

C D X X

X X 0 X 1 X I 0

J 1

Q+

0 1 Q Q 0 1

Tillståndstabell

Symbol

Figur 2.48 D-vippa med signaler för ettställning (Pr) och nollställning (Cl).

Insignalema Preset och Clear är asynkrona, vilket innebär att de påverkar D -vippan utan medverkan av klocksignalen. Insignalen D är ju en synkron insignal, klocksignalens aktiva flank krävs för att verkställa inmatning av D-signalens värde. I figuren nedan visas funktionen i tidsplanet. I

'

11

C Cl lo

'

''

1 Pr 1'0 I '

I

t

:' '

''' I

''II I

I

!

I I'

' 'I' ''' ''

I

I'

I '

'

I '

I

I

I

I

I

I



I

I''

!• I

I

II

11 I

'• ' • ' '

I

I ' ''

''••I

'I

I

I •I

'

I

I I

II'

'

Q lo

I I

I

I

'I •• I• ••

!1 D 10

I

I

:' ''

!O :I '

'l'

I I I'

' I' ' '

I

' I

'

Figur 2.49 D-vippansfunktion i tidsplanet med signalerna Preset och Clear.

86

© Studentlitteratur

2.2 Vippor och sekvenskretsar

Asynkron nollställning av räknaren . R. aren i figur 2.45 kan enkelt förses med asy nollställning enligt figuren nedan.

on signal resetna för

------...............------·. -··· ·• •-·•· • ·•··•-•• ····•-···..---·.• · · ·• < .··. •· ·1 i i·•.···• ··· > ··•••i LSB .. . qo cl� ... · . r""'"""""' r a• i i•·••··. __ resetna · · ·· ··•· ·· •··•·•·.·····•··.••·. •:•·••··.•····•·.. i•·••••· D ·· .· ..: .... •·••... '··• ·••·••..· . .•. . · •· i . ·•··• . •·· •• •.ii•··•·· •. C . clock

·•·• .· .••••. ···.• .••· .

. . ·•:. •

•·· .•· •···••·•··• • .•·· •.

.. .. .

'

.

..

.

·:, ·,:, " '

• ·i·.·..·• . · ··.·

'

;

'

'

:,

'

'

.

·.

·.

. .

.. ·..

.

'.

.

" ' '.,", "., '.,',' ' ", " '->

. . ·.• . l . --------· -· --'

' .," ,

.

' ," ,

,

',

"

'

..

-& -. '

'

'

'

'

'

' ''

' ' '.'.

. .

.

.

. .... ---�&,,· . : ,'

. . .

.. .. ... . : .. .

:

'

.

.

'

.: ..

I ..

,'

'

',' '

'

,,

'

· · ••· MSB

••· ·

.

.. >1 _-___, . .

''

. ·. 1

'

... ...

.

. ..

. ..

. . : . _ ' ':_ : _:__ - - =:

D . .-. . :::::_ C

···· ··· ...... .•...... ·.

. ·•. .

.· .. .. ·

q1 · ·. · .......,__�

. .. .. . . .. . .· . : : : : . : ·-. . ' .. ' . ... .. . . : . ':_. : : : :: ; : ,: ,: . : :-

.

Kretschema

_ clock _ resetna Binärräknare

qo

Blocksymbol

Figur 2.50 2-bitars binärräknare, som räknar modulo-4 med asynkron resetna.

Nollställning av r·· aren sker sålunda med resetna = 0, utan medverkan av klocksignalen. I signalnamnet resetna har speciella egenskaper hos signalen markerats, 'n' (''not'') anger att signalen är aktiv låg och 'a' att den är asyn­ kron. I schemat har till de icke använda ingångar·na Pr anslutits 1 (Hög) för att poängtera att man ej skall lämna dem öppna.

© Studentlitteratur

87

2 Grindar, vippor, kombinations- och sekvenskretsar

Synkron nollställning av räknaren

En sy on signal resetn (vi markerar inte i signalnamnet att den är synk­ ron) kan införas i r·· aren enligt figuren nedan. Eftersom signalen är synk­ ron måste den påverka insignalema d till D-vippoma. För resetn = 0 skall sålunda båda d-signalema bli 0, medan för resetn = 1 skall d-signalema inte påverkas. Problemet löses med en OCH-grind för signalen d 0 och extra in­ gångar hos OCH-grindar·na som genererar d 1. Den sy ona nollställningen ger alltså en ökning av komplexiteten hos grindnätet som genererar d-sig­ nalema, vilket inte den asy ona nollställningen ger. Fördelen med synk­ ron nollställning är att man har full kontroll över när den skall ske, den kan bara ske på klocksignalens aktiva flank, medan asynkron nollställning kan ske var som helst och t.ex. av någon oönskad störning ''spik''.

clock

.

' '

.

'

'

'

.. .

'

.

resetn



_...,_

'

·.. · >" "","' ' :- . ;. ., ·. " :

.

'

"

'

.' .'

LSB

•.·•·• ·•- ·-•··••··•

1

'

...,.______ _

- C Cl

',

'

"

'

'

••··•····•····

"

-

.

-

;.,, -+--+---t . .

.

.

.. .

..

.

'

.

'

.

"

1

' ' " " "

' :: ·,:: ' '

1

. .

'

"

"

.

· ···• MSB

. C

..

'

' '

'

.

, _

'

' .

Kretschema

_ clock ----t resetn qo Binärräknare J

Blocksymbol

Figur 2.51 2-bitars binärräknare, som räknar modulo-4 med synkron resetn.

88

© Studentlitteratur

2.2 Vippor och sekvenskretsar

R.. are kan förses med diverse andra in - och utsignaler. En vanlig insignal är enable, som styr om räknaren skall ''räkna'' eller ''inte r ·· a''. R.. aren i figuren nedan är den ursprungliga räknaren Cnt2b som försetts med enable sådan att enable = 0 medför att räknaren inte räknar och enable = l att den ar. Räknaren har också försetts med utsignal max, som indikerar att r·· aren är i sitt maxläge, dvs 1 1. clock

..

..

.

. ;

.:

m ax ................... · • ------------ ----- --_ . & ,-.. enable · · · · · · · · ......................_.. .•. -. · · ·· · ·· •.· . •·•. . · ·1· ·.· p:.ti & ·. • . · . ·. ·.•.· · . . . . · LSB .

.

.

.

.

.

.

.

:

''

',

.

' ' . ,' ' :

'

· . · .· · • · •· · · . . : ..

. .

Q ·· •.···· · · .• · . · · • · -

.

.

·.:_:·.. ·-.-•: · · MSB

. ... .

.

: - ::

C

• -+------......_ •··--··------------_____________________ ·

,......

, · •· .· ·

I

Kretschema

clock _ enable ----t

max

Binärräknare

qo

Blocksymbol

Figur 2.52 Binärräknaren Cnt2b, försedd med insignal enable och utsignal max.

I schemat för räknaren Cnt2b_em ovan ser vi att max = q 1 q0 , dvs att max = 1 om och endast om q 1 q0 = 1 1 . Vidare ser vi att för enable = 0 är för d0 den övre OCH-grinden öppen och den nedre stängd, innebärande att d0 = q0, och för d 1 den övre OCH-grinden öppen och de två nedre stängda, © Studentlitteratur

89

2 Grindar, vippor, kombinations- och sekvenskretsar

innebärande att d 1 = q 1 och sålunda sammantaget att d 1 d0 = q 1 q0, dvs att nästa tillstånd = nuvarande tillstånd, dvs r·· aren räknar inte. För enable = 1 är de övre OCH-grinda1·na hos d0 och d 1 stängda, medan övriga OCH-grindar öppna och d0 och d 1 får samma värden som i den tidigare r·· aren, dvs r·· aren räknar. Tillståndsdiagram och tillståndstabell blir enligt nedan. Utsignalen max, som endast beror av tillståndet, har skrivits inne i tillståndscirklar·na som /max och tillfogats som en kolumn i tillstånds­ tabellen.

enable = 0 00 /0

enable = 1

01

11 /1

/0

Nuvarande Nästa tillstånd tillstånd lnsignal enable

0 00 01 10 11

00 01 10 11

10

/0

Tillståndsdiagram

Utsignal max

-::i

01 10 11 00

0 0 0 1

Tillståndstabell

Figur 2.53 Tillståndsdiagram och tillståndstabell för räknaren Cnt2b_em.

Nedan visas exempel på ett tidsdiagram för r·· I

clock

aren Cnt2b_em.

I

t

enable

I•

max

I

I

Figur 2.54 Tidsdiagram för räknaren Cnt2b_em.

90

© Studentlitteratur

2.2 Vippor och sekvenskretsar

tsar clock _...........,__..,....___..,...._..,....__________--____ '

"

, '

I

X

.. ·. ________ ____.........._u_ &. . . · Q· + · . ...· ... . . · . ·. o .

'

'

'

'

'

'

'

'::

' '

'

::

:, ' : :

:

::

'

.

:

.

'

:

.

·. . .

.

. .

:

..

..

.· . .· ·

:

..

C

,· . ·---­

-- -------------· · "1· · ·· ------

1

Kretschema

u _ � clock �x Sekvensdetektor Sdet1 mo

Blocksymbol

Figur 2.55 Sekvenskretsen Sdetl _mo, en sekvenskrets av typ Moore.

Tillståndsdiagram och tillståndstabell för sekvenskretsen Sdetl_mo visas nedan. Sekvenskretsen är benämnd sekvensdetektor och har konstruerats för att i en godtyckligt lång insekvens i x, detektera förekomster av en delsekvens bestående av minst tre på varandra följande ettor. Utsignalen u blir 1 när delsekvensen detekteras, annars är u = 0. Observera att när x var·it

© Studentlitteratur

91

2 Grindar, vippor, kombinations- och sekvenskretsar

1 i tre på varandra följande klocksignalperioder, blir u lika med 1 i nästa klocksignalperiod. Starttillstånd är 00. /0

00

0

1

1

01 /0

0 0

1

10 /0

11 /1

1

Tillståndsdiagram

Utsignal

Nuvarande Nästa tillstånd tillstånd q 1 +q 0+ lnsignal X

0 00 00 00 00

q 1 q0

00 01 10 11

u

1 01 10 11 11

0 0 0 1

Tillståndstabell

Figur 2.56 Tillståndsdiagram och tillståndstabell för sekvenskretsen Sdetl _mo.

Som framgår av kretsschemat och tillståndsdiagrammet så beror utsignalen u endast av nuvarande tillstånd och ej av insignalen x. Sekvenskretsar för vilka detta gäller benämnes typ Moore [Moore, E. F., ''Gedanken Experi­ ments on Sequential Machines," i C. E. Shannon och J. McCarthy (Ed.), Automata Studies, Princeton Univ. Press, Princeton, N.J., 1 956] . Nedan visas tidsdiagram för en insekvens x lika med 0 1 1 01 1 1 1 1 0 1 1 10. clock

0

X

0

2

1 1

I

3

1

4

5

6

1

1

1

0

7

8

1

1

I

9

10 1 0

I

11

12

1

1

13

0

14

I

t

I

u

'

I I

I

I I

Figur 2.57 Tidsdiagram för sekvenskretsen Sdetl_mo.

92

© Studentlitteratur

2.2 Vippor och sekvenskretsar

Det förtjänar att påpekas att beteendet för en kombinationskrets kan beskri­ vas i en sanningstabell, där utgångsvärdet anges för varje insignalkombina­ tion, men att detta inte är möjligt för en sekvenskrets, eftersom i en sekvens­ krets samma insignalvärde vid olika tidpunkter kan ge olika utsignalvärden. Vi ser ju för sekvenskretsen Sdetl_mo ovan hur x = 1 ibland ger u = 0 och ibland u = 1 och hur x = 0 ibland ger u = 0 och ibland u = 1. Klocksignal­ intervall X

u

0 0 0

1 1 0

2 1 0

3 0 0

4 1 0

5 1 0

6 1 0

7 1 1

8 1 1

9 0 1

10 1 1 12 13 14 1 1 1 0 0 0 0 0 1 0

För att kunna bestämma utsignalen till en sekvenskrets vid en godtycklig tidpunkt räcker det sålunda inte med att veta insignalen utan man måste också veta tillståndet. I tillståndstabellen används beteckningen q + för nästa tillstånd, som ju är detsa1runa som insignalen d till D-vippan som också visas i kretsschemat. Det finns två fundamentala sekvenskretsmodeller, Moore som vi sett exem­ pel på ovan, och Mealy [Mealy, G. H., ''A Method for Synthesizing Sequential Circuits," Bell System Tech. J., 34, No 5, 1045- 1080 (September, 1955).], som skall visas nedan.

1 /0 0/0 1 /0

1 /1 10

11

0/0 0/0

Tillståndsdiagram

N uvarande Nästa / Utsignal u tillstånd tillstånd q 1 +qo+/ u q 1 q0

00 01 10 11

0 00/0 00/0 00/0 00/0

1 0 1 /0 1 0/0 1 0/1 00/0

Tillståndstabell

Figur 2.58 Tillståndsdiagram och tillståndstabell för sekvenskretsen Sdetl_me. © Studentlitteratur

93

2 Grindar, vippor, kombinations- och sekvenskretsar •

clock

X

··• • · . 1 . .... . .. •. • ·

· ·•. --t-"-•· ,.. ·- .. . .

·� ·

.. . . • . · . & · · • · · • •· • ·· · · .......... . ... ..._•.

.

.

·

. . . ,--+, . . ....... . ,,

,.

'

-

'

q1 "

+. .

" '

C

.

.

.

Kretschema

_ clock -----4

u

X

_

Sekvensdetektor Sdet1 me

Blocksymbol

Figur 2.59 Sekvenskretsen Sdetl_me, en sekvenskrets av typ Mealy.

Ur kretsschemat fås att u = xq 1 q0 ' , dvs utsignalen u beror av insignalen x. Detta är karakteristiskt för en sekvenskrets av typ Mealy. Under hela klock­ pulsperioden kan insignalerna påverka utsignalerna i Mealy-modellen, vilket inte är möjligt i Moore-modellen där utsignalerna endast beror av till­ ståndet. I tillståndsdiagrammet till en sekvenskrets av typ Mealy skriver vi utsignalerna tillsammans med insignalerna på pilar·na åtskilda med ett sned­ streck (/). Tolka beteckningen på pilen rätt ! Exempelvis för tillståndet 10 gäller att ''då nuvarande tillstånd är 10 så är u = 1 om x = 1 och u = 0 om

94

© Studentlitteratur

2.2 Vippor och sekvenskretsar

x = O'', vilket gäller under hela klocksignalperioden tills nästa positiva flank, då tillståndsändring sker. Utsignalen som anges på pilen erhålles alltså inte på tillståndsövergången, utan under hela tiden i det aktuella till­ ståndet för den tillhörande insignalen. I tillståndstabellen för en sekvens­ krets av typ Mealy skrivs utsignalen tillsamrnans med nästa tillstånd åtskild med ett snedstreck (/) inne i tillståndstabellen. Nedan visas tidsdiagram för en insekvens x lika med 01 1 0 1 1 1 1 10 1 1 10 till sekvenskretsen Sdetl_me, samma insekvens som till sekvenskretsen av typ Moore, Sdetl_mo vars sig­ naler också visas igen i diagrammet nedan för jämförelse. 1

0

clock

2 1

X

3

4

5

6

7

8

1

1

11

1

1

1 0

0

9

10

11

12

1

1

1

13

0

'

14

I

t

0

Sdet1_m10 qo

I

I

u Sdet1_m qo

I'

I

I '

I

u

I

I

I

I

I

I

I

I

I

I

I

I

I

I I

I

I

I

I

I

I

I

Figur 2.60 Tidsdiagram för sekvenskretsama Sdetl_me och Sdetl_mo.

Klocksignal­ intervall

u Sdetl_mo

0 0 0

1 1 0

2 1 0

3 0 0

4 1 0

5 1 0

6 1 0

7 1 1

8 1 1

9 0 1

1 0 1 1 1 2 1 3 14 1 1 1 0 0 0 0 0 1 0

u Sdetl_me

0

0

0

0

0

0

1

1

1

0

0

X

0

1

0

0

I sekvenskretsen Sdet_me används endast tre tillstånd för att realisera beteendet, men sekvenskretsen har fyra tillstånd, eftersom totala antalet till­ stånd är en 2-potens av antalet D-vippor. Sekvenskretsen har konstruerats så att det icke använda tillståndet 1 1 har starttillståndet 00 som nästa tillstånd.

© Studentlitteratur

95

2 Grindar, vippor, kombinations- och sekvenskretsar



••

2.1 Grindar och kombinationskretsar 2.1 a) Skriv upp logiska uttrycken för grindnäten nedan. Använd här och i fortsättningen symbolerna ( • ), (+) och (' ) för OCH, ELLER respektive IC , där punkten för OCH ej skrivs ut.

8

b

b

8-

&

b C

1

8

&

C

b

b-

t

8

b

0

C

8 C

>1

b

&

C

C

8

b C

& &

>1

> 1

Ys

C-

>1

>

1 �

> 1

Ya

> 1 &

>1

8>

&

C

&

C -----

& &

>1

C

&

C

8

b

> 1

C

8

8

&

1 > 1

b->1 C ---i

b) Bestäm sanningstabellema till grindnäten ovan.

96

© Studentlitteratur

••

2. 3 Ovningsuppgifter

2.2 a) Skriv upp logiska uttrycket för grindnätet nedan. a b

�1 y

=1

a

b) Bestäm sanningstabellen för grindnätet.

2.3 a) Skriv upp logiska uttrycket för grindnätet nedan. b a

=1

= 1 ....--Y

&

b) Bestäm sanningstabellen för grindnätet.

2.4 a) Skriv upp logiska uttrycket för grindnätet nedan. a b C

=1 y

=1

b) Bestäm sanningstabellen för grindnätet. c) Utgående från sanningstabellen, ge en beskrivning av grindnätets funktion. 2.5 Konstruera med OCH -, ELLER -grindar och Inverterare ett grindnät, switch22, med två ingångar x 1 och x2 , två utgångar u 1 och u2 och bete­ ende enligt nedan. adress switch22

© Studentlitteratur

adress = O



u 1 = x 1 och u2 = x2

adress = 1



u 1 = x2 och u2 = x 1

97

2 Grindar, vippor, kombinations- och sekvenskretsar

2.6 a) Skriv upp logiska uttrycket för OCH-ELLER-nätet nedan. OCH a b

&

C

&

-

ELLER �1

d

X

b) Skriv upp logiska uttrycket för NAND-NAND-nätet nedan. NAN D

a b

----t

C

----t

----t

d -

-

NAND

& & &

-Y

c) Bestäm sanningstabellema för grindnäten i a) och b). d) Vad gäller för sanningstabellema till OCH-ELLER-nätet och NAND-NAND-nätet? Formulera något lämpligt samband mellan OCH-ELLER-nät och NAND-NAND-nät. Forn1ulera samband mellan nätens logiska uttryck?

2.7 a) Skriv upp logiska uttrycket till data_ut i MUX 4-1 i figur 2. 1 3. b) Skriv upp logiska uttrycken till data_ut(O), data_ut(l ), data_ut(2) och data_ut(3) i DMUX 1 -4 i figur 2.20. 2.8 a) Om man byter plats på a0 och a 1 i MUX 4-1 i figur 2. 1 5, hur skall då insignalema numreras uppifrån och ner? b) Om man byter plats på a0 och a 1 i DMUX 1 -4 i figur 2.22, hur skall då utsignalerna numreras uppifrån och ner? 2.9 Bestäm maximala fördröjningen från ingång till utgång för grindnäten i övningsuppgiftema 2. 1-2.4. Antag följande fördröjningar för grinda1·na. OCH: 1 ,4ns, ELLER: 1 ,3 ns, NAND: 0,8 ns, NOR: 0,9 ns, XOR: 1 ,9 ns, inverterare: 0,6 ns.

98

© Studentlitteratur

••

2.3 Ovningsuppgifter

2.2 Vippor och sekvenskretsar 2.10 Rita klocksignal och utsignal q i tidsplanet för D-vippan nedan . .---- D

clock

C

2.11 a) Rita tillståndsdiagram för sekvenskretsen nedan. clock

. LSB

.. .. .. .

qo • • • ·•·• • •··• • • · •· ·.•. do •· ···.···•·· D Q- ...., __ ...... . ... ............. . ·. +--t,,---------------........... " " " ',

•. ·•· . • T '

"

'

. ... C

o••i·. . • · ,

'

'

'

·

· · ·.•••••-:. · ·• -:..-:.-:.-:... ..........,.......___ • ·•··••· ·•••._i-+ it...... _ . .· ·..·. . _ ·__ . ___..............,._...._.,_.

· ..·. · ·. • . • ·. : ,



. · .. . .· . .

.. ..::·. . .

• .· · . .

.

.

.

.

.

. . . .

.

.

C . . . .. . . . . .. · 1· ·• . . . . . . .

. .

.

. .

. . .. .. . . . . .. . . . ···.1· . .·• .

' . .. . . . . . . . . .

'

'

'

. .

"

'

'

. ..

'

.

..

b) Utgående från tillståndsdiagrammet, ge en sammanfattande beskrivning av beteendet.

2.12 Bestäm utsekvensen för sekvenskretsen med tillståndsdiagrammet nedan för insekvensen O O 1 0 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 0. Starttill­ stånd är 00. Vilken är sekvenskretsmodellen, Mealy eller Moore? - C OC

U-

_X

0 00 /0

1 1 0

0

© Studentlitteratur

1

01 /1

11 /0

0

10 /0

1

99

2 Grindar, vippor, kombinations- och sekvenskretsar

2.13 Bestäm tillståndsdiagram och tillståndstabell för sekvenskretsen nedan. Vilken är sekvenskretsmodellen, Mealy eller Moore? clock X

u , &

..I ::

'

'

'

:

'

'

'

'

:'

p.- · · .

2.14 Bestäm tillståndsdiagram och tillståndstabell för sekvenskretsen nedan. Vilken är sekvenskretsmodellen, Mealy eller Moore? clock X

..

. . .· &

.....,...__ ____--t

0



·

&

. .___. •

.. . . . o • q·

♦.. .

.· D

Q . •·

C

u

q o . . ·. . .·

. ·. .

. .

. . ' ,' . .. ' .' . :-: . . .

. . '. :

..

'

.

--,

..

,-----

• . ..• q 1 +

_.....,._____________..........,----_______ • ·•• •• D C



1 00

© Studentlitteratur

••

2.3 Ovningsuppgifter

2.15 a) Bestäm tillståndsdiagram för sekvenskretsen nedan . ..

T clo

ek

..

..

J

.. ..

..

..

..

.. .. ..

1

Q

D C

..

q

.. ..

..

b) Vilken är sekvenskretsmodellen, Mealy eller Moore?

c) Formulera utgående från tillståndsdiagrammet en verbal beskriv­ ning av sekvenskretsens beteende. d) Antag sekvenskretsen startas i tillståndet 0. Ange utsekvensen för insekvensen O O O 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 1 1 .

2.16 Bestäm tillståndsdiagram och tillståndstabell för sekvenskretsen nedan. clock

__.,__.................................___.....__.....__.....__.....__....._____

resetn

. . · . . . .• • · 1 •. · ·. • • . . • ··

·

·.

. .

·.

.

-

.

.... .

. . : :

..

-

.

.



·.

.

.

• . · · & .· . · ·.. · • · . · . · . .. .• . . • •· · • . .. . • · . • . . .

.

.

·

. . . .. . .. .

.

.

.

· •· • • • · .· ·.. · · .. .. · . ·• • • .• .. • •• . ·.. · · . •· ···. · . . . . . • · · • · · ··· · · .

. .



:

··

.. · • . ·. · • · • · •· • • . • · .. < · · · • · •· • · . . . . .. . . · • .•· ·• . . . ·. · • •· ··• ·• • • ••. · ·. · · . •• •·· . · .�

.

. .

. . . . .. . .

. .

.

.

.

.

. .

.

'

..

.

. . .

.

. .. .

.

..



.

.

..

.

• . · • ·· • . . · . • · •· · . · •· •

. . ·. . . . . .

.

. .. .

.



.

.

..

.

.

.

.. .

. .

.

.1

..

. .

.

..

. . .

. . • · . . . .. • · • • · . . . · . . . . . . ..· . . . · . . ·· . ·. · • ··· · · •. · . . · . · . . . • · • · •··. • · • • • ·• • · . .

.

___, .

·.

.

. : . . .

..

.

.

·

.

.

. . . . . . .· . . . . .

.

. . .

.

.

.

· . .. .•. : :.. .. · .· ... . . ·. ·: .. ... . : . · .•. · ·.· ·. · ..•. : - . • & · · .

.

.

.

.

·.

.

.

. .

. .

..

.

· 1

.

.

.

. .

..

.



.. . . . .

. . . ·. . . . . . . .

.

. .. . . . . · . .. • . . . .

. •.

.

.

.

.

• . . ·· · • · • . . . · . • . . . . • >

q 1. + • . . . . . · . · • . . • . · . . · . . • ·· •· .· · • • · · · · • • • • . . d i ·.. . . . .. •.. . . . • •· ·••·• . . .... . . .. • ·•• • q · . . . .. . · · . . . . . . ..... . . _·. ··1. . . ··:-•.· ·. ··.·: .·· o 0 .. .: . . i··. . ...: . . • : :. 1 :

· -· -

.

..

. . .. . .. ..

..

• · · • . · ·.

C

.

© Studentlitteratur

..

::

·••· ••· · • • ·• · ·. • • · .·

C

. . .•

·

.

. :

.

..

. .

.

qö+

.

·

. .

.. .

.. . .. ..

.. . ,. . .. .

101

I detta kapitel presenteras boolesk algebra och exemplifieras användning av axiom och r·· elagar för omformning av logiska uttryck. Boolesk algebra är ett oumbärligt hjälpmedel för analys och syntes av digitala kretsar. Boolesk algebra har fått sitt namn efter George Boole ( 18 15-64), engelsk matematiker och logiker, som lade grunden till den moderna symboliska logiken. I uppsatserna Mathematical analysis of logic ( 1847) och wws of thought ( 1854) utvecklade han en logisk algebra för matematisk behandling av logiska satser och relationer. I vårt dagliga språk kan vi formulera satser, påståenden, som kan vara sanna eller falska. Satserna kan sättas samman till nya satser med de logiska operationerna och, eller och icke. Sam­ mansatta satser kan o ormas och före as med lagar·na i logisk algebra. I programspråk, t.ex. Java och C, använder man logiska satser och relationer. Den första viktiga tillämpningen av boolesk algebra inom digitalteknik kan tillskrivas den amerikanske matematikern Claude Shannon (f 19 16), främst känd som grundare av informationsteorin (i vilken ingår det i kapitel 1 cit­ erade samplingsteoremet). Han publicerade år 1938 en uppsats där han visade hur boolesk algebra, i uppsatsen benämnd switching algebra, kunde användas inom telefontekniken för analys, syntes och förenkling av nät med reläkontakter. Boolesk algebra definieras nedan som ett abstrakt algebraiskt system, på samma sätt som den vanliga heltalsalgebran, med en mängd av element (konstanter, var·iabelvärden), en mängd av operationer och en mängd av axiom som definierar operationerna på elementen. För att belysa sambandet mellan boolesk algebra och symbolisk logik, anges i definitionen av boolesk algebra vid sidan av konstanterna och oper­ ationerna, motsvarande inom symbolisk logik, Falsk och Sann respektive ELLER, OCH och IC . Sätt in dessa logiska konstanter och operationer i axiomen och verifiera att axiomen överensstämmer med vanligt språkbruk.

1 02

© Studentlitteratur

3.1 Boolesk algebra - definition

• Konstanter (variabelvärden) 0 (Falsk) 1 (Sann) Operationer (ELLER) + (OCH) · ,, (IC ) Axiom O+O = 0 1·1 = 1

(A l ) (A2)

1+1 1 0-0 = 0

(A3) (A4)

1 +0 = 1 1 ·0 = 0 · 1 =0

(AS) (A6)

O+ l

O" = 1 1" = 0

·.

(A7)

(A8)

En trivial illustration till sambandet mellan boolesk algebra och symbolisk logik kan fås genom att i axiom (A8) sätta in logiska konstanter och operationer, var·vid erhålles: IC (Sann) = Falsk. I den fortsatta framställningen kommer operationerna IC , ELLER och OCH, normalt att betecknas enligt definitionen ovan, dvs. med apo­ stroftecken, prim, ( ,, ), plustecken ( + ) respektive multiplikationstecken ( · ). Som nämndes i kapitel 2 förekom1ner andra beteckningar. För opera­ används bl.a. snedstreck ( / ), utropstecken ( ! ) och ordet tionen IC NOT, samt speciellt inom symbolisk logik, tecknet ( , ). För operationen ELLER används inom symbolisk logik vanligen tecknet ( v ), som är första bokstaven i det latinska ordet ''vel'' (sv. eller). Detta tecken kommer att användas när förväxling med vanlig addition kan befaras. För operationen OCH komrner multiplikationstecknet ( · ) normalt att utlämnas, som bruk­ ligt är vid multiplikation. När tecknet för operationen OCH måste sättas ut, © Studentlitteratur

1 03

3 Boolesk algebra

används ofta något av tecknen ( * ), ( & ), ordet and eller tecknet ( A ), det sistnämnda tecknet speciellt inom symbolisk logik, vilket inte har något samband med ordet ''och'', utan bara är tecknet ( v ) för ELLER vänt upp och ned. Operationerna ( + ) och ( · ) i boolesk algebra har alltså inget att göra med vanlig addition och multiplikation, men det hindrar inte att vi kan konsta­ tera likheten mellan axiomen (Al ) - (A6), bortsett från (A3), och motsvar­ ande axiom i den vanliga heltalsalgebran. Studerar vi vidare axiomen ser vi att de grupperats parvis. Detta beror på att det råder ett enkelt samband mel­ lan axiomen inom ett par, det ena axiomet kan erhållas ur det andra genom att man byter O och 1 samt operationerna ( + ) och ( · ). Man säger att axi­ omen inom ett par är duala, och denna dualitetsprincip gäller generellt inom boolesk algebra, gäller en likhet, så gäller också den duala likheten.



Rä x+x =x =X

(Ll ) (L2)

1 =0

(L3) (L4)

X+1 = 1

0 =0

(L5) (L6)

x+O =x X · 1 =X

(L7) (L8)

X · X

X+X X · X

X ·

.,

.,

=

(L9)

Liksom i vanlig heltalsalgebra kan i boolesk algebra införas variabler. Dessa kan bara anta värdena O och 1 , eftersom booleska algebran bara inne­ håller konstanterna O och 1 . Ur axiomen kan satser (teorem) för variabler visas. Dessa satser kan användas som ''r ·· elagar'' för boolesk algebra. 104

© Studentlitteratur

3.2 Räknelagar

R.. elagar·na (Ll ) - (L9) kan enkelt visas med s.k. perfekt induktion, dvs genom att man låter var·iablema genomlöpa samtliga värden och verifierar varje fall med ett axiom. Låt oss t.ex. visa (L3).

Bevis av (L3) x = 0 i (L3) ger x = 1 i (L3) ger

0 + O'

=0+1 =1

1 + 1' = l + O =1

(enl. A7) (enl. A5) (enl. A8) (enl. A5) 0

x + (y + z) = (x + y) + z x(yz) (xy)z x+y =y+x xy yx

(Ll O) (associativa laga1·na) (Ll l ) (L 12) (kommutativa lagarna) (L 13)

x(y + z) xy+ xz x + yz = (x + y)(x + z)

(Ll 4) (distributiva lagar·na) (L15)

xy x(x + y)

(L16) (absorptionslagar·na) (Ll 7)

X+

=X x

xy + x 'z = xy + x 'z + yz (L 18) (consensuslagar·na) (x + y)(x ' + z) (x + y)(x ' + z)(y + z) (L19) (x + y) ' = x 'y' (xy) ' x' + y'

(L20) (De Morgans lagar) (L2 1 )

R.. elagar·na (L6) - (L8) och (Ll O) - (L14) överensstämmer med mots­ varande lagar i heltalsalgebran. Distributiva lagen (L 14) läst från vänster till höger känner vi igen som ''multiplicera in'' och läst från höger till vänster som ''bryta ut''. Den distributiva lagen (L 15) gäller däremot inte i vanlig heltalsalgebra (verifiera med ett exempel med heltal !). Räknelagar·na är inte alla oberoende, utan vissa räknelagar kan visas med hjälp av de övriga räknelaga1·na. Sålunda kan r·· elag (L 15) visas med hjälp av (L 14), (L2), (Ll 6) och (L13) enligt nedan.

© Studentlitteratur

1 05

3 Boolesk algebra

Bevis av (LlS)

(x + y)(x + z) = (x + y)x + (x + y)z = x(x + y) + z(x + y) = xx + xy + zx + zy = x + xy + zx + zy = x + zx + zy = x + xz + yz = x + yz

(enl. L l 4) (enl. L 1 3) (enl. L 1 4) (enl. L2) (enl. L 1 6) (enl. L l 3) (enl. L 1 6) 0

Låt oss illustrera användningen av räknelagar·na med ett litet exempel. För att inte lösningar·na skall bli onödigt omfattande utelämnas här och i fortsätt­ ningen triviala mellanled som t.ex. användning av komrnutativa lagar·na.

Exempel 3.1 Förenkla så långt möjligt uttrycket z"( l + zx). Lösning

,,

,,

,,

z ( 1 + zx) = z · 1 + z zx = z" + O· x = z" + 0

(enl. L 1 4) (enl. L8,L4) (enl. L6) (enl. L7) 0

Absorptionslagar·na, consensuslagar·na och De Morgans lagar är viktiga r·· elagar som förtjänar speciell uppmärksa et. En verbal tolkning av dessa lagar underlättar förståelse och memorering. Absorptionslagen (L 1 6) kan tolkas som ''om i en summa av två produkter, (i detta fall x och xy; x är en trivial produkt av bara en var·iabel), den ena produkten är en del av den andra produkten, (i detta fall är x del av xy), så får den längsta produkten strykas'', ty summan av produkterna är ju enligt (L 1 6) lika med x. Orden ''summa'' och ''produkt'' här avser självklart ELLER-summa och OCH-produkt. R.. elagar·na är angivna för enskilda variabler, men gäller också med variablerna ersatta med godtyckligt stora logiska uttryck. Så kan t.ex. absorptionslagen tillämpas på logiska uttrycket yz "+ xyz"w, där alltså produkten yz " är en del av produkten xyz"w och sålunda kan den längre produkten strykas och ut cket reduceras till yz".

106

© Studentlitteratur

3.2 Räknelagar

Absorptionslagar·na (L16) och (L l 7) kan åskådliggöras med switchar enligt figuren nedan. I det vänstra nätet till (Ll 6) så är förbindelsen i nedre grenen sluten bara om switchen x är sluten, men då är ju förbindelsen i övre grenen också sluten. Den undre grenen är alltså onödig och nätet till vänster kan ersättas med nätet · till höger, som absorptionslagen (L16) säger. I det vän­ stra nätet till (Ll 7) så är förbindelsen sluten bara om switchen x till vänster är sluten, men då är ju switchen x i den övre parallella grenen också sluten. De parallella grenar·na är alltså onödiga och nätet till vänster kan ersättas med nätet till höger, som absorptionslagen (Ll 7) säger.

L 1 6:

-

X + XY

X

I

•••

XI •

:

L1 7:

XI •

-

Y,

:



x(x + y)

-

.-

o-

X

XI •• •

XI ••



Y,

-

X

•• •

o-

Figur 3.1 Absorptionslagen illustrerad med switchar.

Consensuslagen (L 18) kan tolkas som ''om i en summa av två produkter, (i detta fall xy och x "z), finns en variabel som är icke-inverterad i den ena produkten och inverterad i den andra produkten, (i detta fall x och x "), så får till uttrycket adderas produkten av de i de två produkterna övriga ingående variablerna (i detta fall yz)''. Det kan tyckas konstigt att man vill göra ett logiskt uttryck längre, men det är faktiskt så man normalt använder consen­ suslagen, dvs från vänster till höger, och inte från höger till vänster, där uttrycket blir kortare. Ofta används consensuslagen och absorptionslagen tillsammans omväxlande vid förenkling av uttryck, som visas i exempel 3.2 nedan, där consensuslagen först ger ett längre uttryck, men sedan absorp­ tionslagen ger ett kortare och enklare uttryck.

© Studentlitteratur

1 07

3 Boolesk algebra

Exempel 3.2 Visa likheten x + x'y = x + y. Lösning

x + x'y = x· 1 + x'y = x· 1 + x'y + 1 · y ,

(enl. L8) (enl. L 1 8)

=x+xy+y

(enl. L8)

=x+y

(enl. L 1 6) 0

Exempel 3.3 Förenkla uttrycket yz' + xyz + x'z. Lösning , , , , yz + xyz + x z = yz + xyz + x z +yz ,

,

(enl. L 1 8)

= yz + x z +yz

(enl. L 1 6)

= y(z ' + z) + x 'z

(enl. L 1 4)

= y· 1 + x'z ,

=y+x z

(enl. L3) (enl. L8) 0

Lägg speciellt märke till i exemplet ovan förenklingen yz' + yz = y(z' + z) = y· 1 = y, där man alltså bryter ut och erhåller en parentes av typen (z ' + z), som är lika med 1 . Denna förenklingsprincip är viktig och vi kommer att möta den i samband med före ing av logiska uttryck med Ka,·naughdia­ gram i kapitel 4.

Exempel 3.4 Förenkla uttrycket xy' + x'y + xy. Lösning , , , , xy + x y + xy = xy + x y + xy + xy

(enl. L l )

= x(y' + y) + y(x' + x)

(enl. L 1 4)

= x · l + y· l

(enl. L l 4)

=x+y

(enl. L8) 0

108

© Studentlitteratur

3.2 Räknelagar

Notera i exemplet ovan hur ter111en xy i uttrycket adderats till uttrycket en gång till. Det är tillåtet att till ett uttryck addera termer i uttrycket hur många gånger som helst, p.g.a. räknelagen (Ll): x + x = x. De Morgans lagar (L20) och (L2 1 ) från vänster till höger kan tolkas som ''inverstecknet utanför en parentes får flyttas in på de enskilda variablerna (uttrycken) om samtidigt operationen mellan variablerna (uttrycken) bytes, ( + ) mot ( · ) och tvärtom''. De Morgans lagar kan utvidgas till ett godtyckligt antal variabler (uttryck) enligt: ,, (L20a) (x 1 + X2 + ... + Xn) = x 1 " x 2 " • · · xn " ,,

,, ( X 1 X2 ... Xn) = X 1 ,, + X2 + . . . + Xn

,,

(L2 1a)

Exempel 3.5 Omforma uttrycket (x " (yz) " + xy) " till ett uttryck där inverstecknen verkar direkt på de enskilda variablerna. Lösning

(x " (yz) " + xy) " = (x " (yz) ") " (xy) "

(enl. L20)

= (x + (yz))(x " + y ") ,,

,,

(enl. L2 1, L9) ,,

,,

= xx + x yz + xy + y yz ,, ,, = x yz + xy

(enl. L14) (enl L4, L6, L7)

□ De Morgans lagar kan illustreras med grindar enligt figuren nedan.

L20 : X

>1

y

X

(x + y ) '

1 J

&

-

y

1

X

1

y

1 (

xy I

I

L2 1 : X

-----t

y

-----t

&

(xy)'

>1

x'

+

y'

Figur 3.2 De Morgans lagar illustrerade med grindar. © Studentlitteratur

1 09

3 Boolesk algebra

I figuren nedan illustreras några andra räknelagar med grindar. - Om insig­ nalen s i figuren tolkas som en styrsignal, så kan OCH-grinden betraktas som stängd för s = 0, då utsignalen u = 0 oavsett värdet hos insignalen x, och betraktas som öppen för s = 1 , då utsignalen u = x och alltså x kan pas­ sera genom grinden. Namnet grind är här som synes relevant. För ELLER­ grinden ser vi att den är stängd för s = 1, då utsignalen u = 1 oavsett värdet hos insignalen x, medan den är öppen för s = 0.

1

X

(x' ) ' =

1 :

(L9)

X

s &

X

s=O



u=O

(L6 )

s=1



u

=

x

(L 8 )

s=O



u

=

x

(L7)

=1



u

=1

(L5)

s

X

>1

s

Figur 3.3 Några räknelagar illustrerade med grindar.

1 10

© Studentlitteratur

3.3 Operationen XOR (Exklusivt-ELLER)

• I kapitel 2 visades en XOR -grind och gavs olika tolkningar av operationen XOR. Denna operation har stor betydelse i digitaltekniken och vi skall nedan kort beröra några räknelagar. Operationen XOR ingår inte i booleska algebran, men vi skall se hur den kan beskrivas med operationer i booleska algebran och tvärtom hur operationen OR i booleska algebran kan beskrivas med operationen XOR. xy

xffiy

00 01 10 1 1

0 1 1 0

Figur 3.4 Sanningstabell för operationen XOR.

Ur sanningstabellen ovan fås direkt räknelagar·na (El ) - (E3) för konstant­ erna O och 1.

Räknelagar för konstanterna O och 1 O ffi O = 0 O ffi 1 1 ffi O = 1 1 ffi 1 0

(El) (E2 ) (E3)

Ur räknelagar·na för konstanterna O och 1 ovan fås räknelagar·na nedan för en och flera var·iabler. Lagar·nas riktighet kan man verifiera på samma sätt som i booleska algebran genom att sätta in samtliga värden på variablerna och tillämpa r·· elagar·na för konstanterna O och 1 ovan.

Räknelagar för en variabel x (f) O = x x ffi x = O

© Studentlitteratur

(E4) (E5)

111

3 Boolesk algebra

Räknelagar för flera variabler

x E0 (y (f) z) = (x (f) y) E0 z x EB y = y x

x(y (f) z) = xy E0 xz

(x (f) y = x (f) z)

(E6) (associativa lagen) (E7) (kommutativa lagen) (E8) (distributiva lagen)

� (y = z)

(E9)

R.. elag (E9) kan jämföras med motsvarande lag för addition i heltalsalge­ bran. (E9) från höger till vänster innebär att det är tillåtet att till båda sidor av en likhet addera xor samma storhet, medan (E9) från vänster till höger innebär att det är tillåtet att på båda sidor om en likhet stryka samma stor­ het. Med hjälp av räknelaga1·na (E9) och (E5) kan ekvationer lösas på samma sätt som i heltalsalgebran enligt principen i exemplet nedan.

Exempel 3. 6 Lös ekvationen x E0 b = a. Lösning

=a



x E0 b $ b = a E0 b

(enl. E9)



x (f) 0 = a E0 b

(enl. E5)



x = a E0 b

(enl. E4) D •

Omvandling från XOR till operationer i Boolesk algbra och tvärtom

x y = x"y + xy"

( E l O)

(x (f) y) " = x "y" + xy

(E l l )

X

+ y = X (f) y E0 xy

X (f)

1 12

1 =x

(E l 2)

(E 1 3)

© Studentlitteratur

3.3 Operationen XOR (Exklusivt-ELLER)

Exempel 3. 7 Omforma uttrycket w "x"y"z " + w "x "yz + wxy"z"+ wxyz så att det kan reali­ seras i ett grindnät innehållande två XOR-grindar och en NOR-grind. Lösning ,, ,, ,, ,, ,, ,, ,, w ,,x y z + w x yz + wxy z + wxyz

= w "x"(y"z" + yz) + wx(y"z " + yz) = (w "x " + wx)(y"z " + yz)

= (w © x) "(y © z) " = ((w © x) + (y © z)) " w X

y z

=1 >1

=1

Figur 3.5 Grindnät till exempel 3. 7.

□ R.. elagar·na (E4) och (E13) ger en intressant tillämpning av XOR-grinden som styrbar inverterare, visad i figuren nedan (tidigare visad i kapitel 2). s =

X

1

u

s=O



u=x

s= 1



u=x

(E4)

(E 1 3)

Figur 3.6 XOR-grinden som styrbar inverterare.

Med insignalen s i figuren ovan betraktad som en styrsignal, så gäller att för s = 0 så går insignalen x opåverkad genom XOR-grinden, medan för s = 1 så inverteras insignalen x. Denna tillämpning av XOR-grinden används, som vi kommer att se längre fram, bl. a. i programmerbara grindnät för att ge icke-inverterad alternativt inverterad utsignal.

© Studentlitteratur

1 13

3 Boolesk algebra

Exempel 3.8 Omforma logiska uttrycket 1 c (f) abc, med hjälp av lagarna i booleska algebran och lagar för XOR, så att det kan realiseras i ett grindnät med två 2-ingångars NAND-grindar. Insignaler till grindnätet är a, b och c. Lösning

1 (f) c abc

= (c (f) abc) '

(enl. E 13)

= (c( l ab)) '

(enl. E8)

= (c(ab) ') '

(enl. E 13)

a -----t & (ab) ' b_ & c ____

(c(ab )'),

---4

Figur 3. 7 Grindnät till exempel 3.8 0

Exempel 3.9 Omforma logiska uttrycket ( (a (f) b) ' + (a + b ') ' + a 'b) ' med hjälp av lagarna i booleska algebran och lagar för XOR, så att det kan realiseras i ett grindnät med en 2-ingångars NOR-grind och en 3-ingångars NOR-grind. Insignaler till grindnätet är a och b. Lösning ((a (f) b) ' + (a + b ') ' + a ö) ' = ( a b)(a + b ')(a 'b) '

(enl. L20)

= (a'b + ab')(a + b')(a + b') (enl. E l O, L21)

a

> -

1

= (aö + ab')(a + b')

(enl. L2)

= ab'

(enl. L4, L7)

= (a' + b) '

(L20, L9)

(a + a) '= a' (a' + b + b) ' = (a' + b) '

b _______ ---1

Figur 3.8 Grindnät till exempel 3.9. 0

1 14

© Studentlitteratur

••

3.4 Ovningsuppgifter •• •

3.1 Förenkla logiska uttrycken med hjälp av r·· bran. a) ac'd + ad b) ac'd + acd c) a(b' + a 'c + ab) d) ab' + abc e) a + b' + aö + c' f) a + abc + ad + a 'b + ad'+ a öc g) (a + bc')(a'b' + c) h) aöc' + a'd + bc'd' i) (a + b')(a' + b)(a + b) j ) a'b 'c' + abc' + aöc' + ab'c ' k) a ö 'c + abc + aöc I) ae + abc'd + bc'e' m) aöc' + aöd' + cd n) a(b + c')' o) a + (a'b')' p) (ab) ' (ab ')' q) (a' + (a'b + c) ')' r) ((ab')(a + b)')'

elagama i booleska alge­

3.2 Omforma logiska uttrycken till grindnäten i övningsuppgift 2. 1 till summa av produkter. 3.3 Visa följande likheter genom tillämpning av booleska algebrans räkne­ lagar på vänstra ledet så att högra ledet erhålls. a) (vw + x + y)(x ' + y)(x' + y +z) = vwx ' + y b) (x + y ' + xy')(xy + x 'z + yz) = xy + x 'y'z c) (x + y' + xy)(x + y')x'y = 0 d) wx + w 'y + xyz = wx + w 'y e) xy' + yz ' + x 'z = x 'y + y'z + xz ' (Ledning: Använd consensuslagen L1 8, först tre gånger för att lägga till produkter och därefter tre gånger för att ta bort produkter.) f) ((x + y') + x'z)' = x 'yz ' g) ((xz + (yz)')' + y(xz)') ' = y' + xz © Studentlitteratur

1 15

3 Boolesk algebra

3.4 Realisera med ett minimalt antal 2-ingångars NAND- och NOR-grin­ dar (motivera kopplingen med logiskt uttryck). a) En 4-ingångars OCH-grind b) En 4-ingångars ELLER-grind 3.5 Visa att med enbart S-grindar (fiktiv grind) är det möjligt att realisera operationerna IC , OCH, ELLER samt XOR. Konstanterna O och 1 får anslutas som insignal. A B­ s - Y C --

Y = A' + BC ' + B 'C

3.6 Visa att b) x 01 (x + y) = x 'y a) x � xy = xy' d) x ' (f) y x 01 y' e) x � y = x ' � y '

c) (xy + (x +y) ' ) '= x (f) y f) not A xor B = A xnor B

3.7 Visa att med enbart G-grindar (fiktiv grind) är det möjligt att realisera operationerna IC , OCH och ELLER. Konstanterna O och 1 är tillgängliga som insignal.

A_ B

G

y

Y =A � AB

3.8 Konstruera med exakt två XOR-grindar och inga andra grindar, ett grindnät med två ingångar x och s och två utgångar u 1 och u2 enligt specifikationen nedan. Konstanterna O och 1 är tillgängliga som insig­ nal. X ­ S

---i

s = 0 ⇒ u 2 = x och u 1 = x' s =1 ⇒ u 2 = x' och u 1 = x

3.9 Omforn1a logiska ut cket (b (f) c) + be + a, med hjälp av laga1·11a i booleska algebran och lagar för XOR, så att det kan realiseras i en 4ingångars ELLER-grind. Insignaler till grindnätet är a, b och c. 3.10 Omforma logiska uttrycket ((a (f) b)c + b ') ', med hjälp av lagarna i booleska algebran och lagar för XOR, så att det kan realiseras i ett grindnät med fyra 2-ingångars NAND-grindar. Insignaler till grindnä­ tet är a, b och c. 1 16

© Studentlitteratur

••

3.4 Ovningsuppgifter

3.11 Omforma logiska uttrycket (ab" + ao)c + cd(ao " + ab) + abcd", med hjälp av laga1·na i booleska algebran, så att det kan realiseras i grind­ nätet nedan. Insignaler till grindnätet är a, b, c och d. �1

>1 -



1 I[

3.12 Omforma logiska uttrycket (ac)"(bd(ac)") + ac(bd(ac)")", med hjälp av lagar·na i booleska algebran, så att det kan realiseras i grindnätet nedan. Insignaler till grindnätet är a, b, c och d. &

& &

3.13 Omforma logiska uttrycket till grindätet i övningsuppgift 2.2 med hjälp av lagarna i booleska algebran och lagar för XOR, så att det kan realiseras i grindnätet nedan. Insignaler till grindnätet är a och b. Kon­ stanterna O och 1 är tillgängliga som insignal. -1

-1

&

&

&

3.14 Omforma logiska uttrycket till grindätet i övningsuppgift 2.3 med hjälp av lagarna i booleska algebran och lagar för XOR, så att det kan realiseras med endast två av grinda1·na (flera varianter är möjliga !). Insignaler till grindnätet är a och b. Konstanterna O och 1 är tillgäng­ liga som insignal.

© Studentlitteratur

1 17





Kombinationskretsar är en klass av kretsar utan minnesfunktion, vilka karakteriseras av att samma insignalvärde vid olika tidpunkter alltid ger samma utsignalvärde. I kapitel 2 studerade vi några kombinationsskretsar uppbyggda med grindar, såväl generella som speciella fundamentala kom­ binationskretsar såsom multiplexer, demultiplexer och avkodare. Vi ägnade oss huvudsakligen åt analys, i detta kapitel skall vi studera syntes av kom­ binationskretsar, hur de utgående från en given specifikation realiseras med ett minimalt antal grindar. Booleska funktioner är intimt förknippade med kombinationskretsar och vi skall när·mare studera normalformer och minimering av booleska funk­ tioner. Minimeringen innebär att man strävar efter att realisera en boolesk funktion i en kombinationskrets med ett minimalt antal grindar. Minimering är naturligtvis önskvärd vid de flesta realiseringar, speciellt viktig är den vid realisering av kretsar i programmerbara logiska kretsar, där den pro­ gramrnerbara kretsens komplexitet är given och definierad av halvledar­ fabrikanten och man alltså måste se till att få plats med kretsen som skall realiseras i den program1nerbara kretsen i kapseln. Kretskonstruktion görs med datorbaserade syntesverktyg och naturligtvis finns det datorprogram som utför minimering av booleska funktioner. Det har utvecklats nya minimeringsmetoder av heuristisk typ, som kanske inte alltid ger det absolut minimala nätet, men som är minnessnåla och snabba. I utvecklingssytem för programmerbara kretsar ingår alltid program för minimering av booleska funktioner. Icke desto mindre skall vi minimera booleska funktioner för hand med s.k. Karnaughdiagram, dels därför att det ökar förståelsen av booleska funktioner och minimering, dels d.. ör att Kamaughdiagrammet är ett användbart verktyg för minimering av booleska funktioner av upp till sex var·iabler som varje digitaltekniker måste kunna hantera och som här ger oss möjlighet till enkel minimering av booleska funktioner vid realisering av kombinations- och sekvenskretsar i den fort­ satta framställningen. 118

© Studentlitteratur

4.1 Definition av kombinationskrets

Illa

nav



Formellt definieras en kombinationskrets (eng. combinational circuit) som en krets där utsignalvärdet u(t) vid en godtycklig tidpunkt endast beror av insignlvärdet x(t) vid samma tidpunkt..

x(t)

Kombinationskrets

u(t)

u(t) = f(x(t)) där u(t) = (um(t), ..., u 1 (t), u0(t)) x(t) = (x0(t), ..., x 1 (t), x0(t)) Ui(t), Xj(t) E { 0, 1}

Figur 4.1 Kombinationskrets, formell definition.

Tidsvar·iabeln t behövs ej för att beskriva beteendet hos en kombinations­ krets och användes ju heller inte då vi studerade kombinationskretsar i kapi­ tel 2. Vi utelämnar den i fortsättningen och använder modellen i figur 4.2 nedan för en kombinationskrets. Tiden är bara intressant för en kombina­ tionskrets vad gäller fördröjningen mellan insignal och utsignal.

• •

Kombinationskrets

• •

u = f(x) där

= (Um, ..., U 1, Uo) X 1 , Xo) X = (X 0 , U

... ,

Ui, Xj E { 0,

1}

Figur 4.2 Kombinationskrets, modell.

Kombinationskretsens insignaler xo, x 1, ..., Xn och utsignaler uo, u 1, ..., um är ovan definierade binära på mängden { 0, 1}. Ibland kan de vara definier­ ade på en större mängd, t.ex. vara ternära (trevärda) och definierade på mängden {O, 1, Z}, där Z är det i kapitel 2 tididigare omnämnda signalvär­ det högohmig. Vi betecknar normalt i fortsättningen insignalen x såsom x = (xn, ...,x 1, x0) och utsignalen u såsom u = (um, ...,u 1, uo), så att mest signifikant bit (MSB) är placerad till vänster och har högst index. © Studentlitteratur

119

4 Kombinationskretsar

oner



En boolesk unktion (eng. booleanfunction) f(x0_ 1, ..., x 1, x0) av n va1·iabler är en funktion som bara kan anta värdena O och 1 och vars va1·iabler också bara kan anta värdena O och 1.

f: { 0, 1}Il ➔ { 0, 1} Exempel på en boolesk funktion är funktionen lo3 i kretsen BCDcheck, vars funktionstabell visas i tabell 4.1 nedan. Funktionen lo3 har fyra va­ riabler x0, x 1, x2, x 3 och eftersom varje variabel bara kan anta två värden, 0 och 1, så blir antalet var·iabelkombinationer lika med 2·2·2·2 = 2 4 = 16. För var och en av de 16 va1·iabelkombinationema kan en godtycklig boolesk funktion av fyra variabler också bara anta två värden, 0 och 1. Totala antalet tioner av fyra va1·iabler. Enligt samma resonemang kan vi lätt räkna ut an­ talet booleska funktioner av n variabler. Antalet variabelkombinationer blir likan med 2° och sålunda antalet booleska funktioner av n var·iabler lika med

22

Tabell 4.1: Booleskafunktionen lo3 i kretsen BCDcheck. X3 X2 Xt Xo

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

120

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

lo3

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0



© Studentlitteratur

4.2 Booleskafunktioner

I tabellen nedan visas antalet booleska funktioner för några olika värden på antalet variabler n. Vi kan där se hur antalet funktioner växer mycket snabbt med antalet var·iabler. Tabell 4.2: Arttalet booleska funktioner för olika antal variabler. n

!Antal variabler n !Antalet booleska funktioner ( 2 2 )

0 1 2 3 4 5

2 4 16 256 65 536 4 294 967 296

Låt oss nu se hur man kan skriva upp ett booleskt uttryck till en boolesk funktion specificerad i en funktionstabell. I kapitel 3, Boolesk algebra, har vi sett hur booleska uttryck kan omforn1as och förenklas och man inser där­ för att varje boolesk funktion kan beskrivas med många (i princip hur många som helst) olika booleska uttryck av helt olika utseende. Det är dock bara ett fåtal uttryck som är intressanta vid realisering av en boolesk funk­ tion i ett grindnät, speciellt intressanta är booleska uttrycken på s.k. normalform. Varje boolesk funktion kan skrivas på två olika normalformer och låt oss skriva upp dessa till booleska funktionen lo3 i tabell 4.1 ovan. Vi börjar då med att komplettera funktionstabellen med ytterligare tre kolumner enligt tabell 4.3 nedan. Studerar vi mintermerna, ser vi att om den till mintermen mi hörande variabelkombinationen i sätts in i mintern1en, så blir den lika med 1, medan den för alla övriga var·iabelkombinationer blir lika med 0. Mintermen är alltså bara 1 för en enda variabelkombination, därav namnet minterm. För maxtermerna gäller det omvända förhållandet. Om den till maxtermen Mi hörande va1·iabelkombinationen i sätts in i maxtermen, så blir den lika med 0, medan den för alla övriga var·iabelkombinationer blir lika med 1. Maxter­ men är alltså O för bara en enda var..iabelkombination, därav namnet max­ term. Vidare kan konstateras att det råder ett samband mellan sa örande minterm och maxterm, nämligen att Mi = mi'· Exempelvis gäller att m3' = (x3'x 2'x1 xo)' = x3 + x2 + x1' + xo' = M3. © Studentlitteratur

121

4 Kombinationskretsar Tabell 4.3: Booleskafunktionen lo3 med mintermer och maxtermer.

Variabelkombination • nr 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

X3 X2 Xt Xo

0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1

0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Io3

1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

Maxterm M•I

Minterm m•I ,

,

,

,

,

,

,

,

,

,

X3 X2 X1 Xo X3 X2 X1 XQ X3 X2 X1XQ

,

,

X3 X2 X1XQ ,

,

,

,

X3 X2X1 Xo X3 X2X1 Xo ,

X3 X2X1Xo

,

,

,

X3 X2X1XQ ,

,

,

,

X3X2 X1 Xo

,

X3X2 X1 Xo ,

X3X2 X1Xo

,

,

X3X2 X1Xo ,

X3X2X1 Xo

,

,

X3X2X1 XQ X3X2X1XQ X3X2X1XQ

,

X3+X2+X1+xo , X3+X2+X1+XQ , X3+X2+X1 +XQ , , x3+x2+x1 +xo , x3+x2+x1+xo , , x3+x2+x1+xo ,

,

,

,

X3+X2+X1+Xo

,

x3+x2+x1+xo , x3+x2+x1+xo , , X3 +X2+X1+Xo , , X3+X2+X1+XQ , , , x3 +x2+x1+xo ,

,

X3+X2+X1+Xo , , , X3+X2+X1+Xo ,

,

,

,

,

,

X3+X2+X1+XQ

x3 +x2 +x1+xo

En minterm (maxterm) till en boolesk funktion f(x0_ 1, ..., x 2, x 1) är alltså en boolesk produkt (summa) av samtliga variabler, där var·iabeln antingen är icke-inverterad eller inverterad. Mintermen (maxtermen) är 1 (0) för en och endast en variabelkombination. Med hjälp av mintermema och maxtermema kan man nu lätt skriva upp booleska uttryck till en boolesk funktion. Uppenbart kan funktionen lo3 i tabell 4.3 ovan skrivas som lo3 (4.1) Funktionen lo3 har skrivits som en boolesk sum1na av de minter1ner för vilka lo3 = 1, vilket innebär att lo3 blir lika med 1 för de och endast de vari­ abelkombinationer, vars mintermer finns med i booleska uttrycket. Booleska uttrycket till lo3 är en summa av produkter, SP-form, och efter122

© Studentlitteratur

4.2 Booleskafunktioner

som varje produkt är en minterm benämnes uttrycket SP-normalform. Således gäller att SP-normalformen till en boolesk nktion är booleska summan av de mintermer för vilka f = 1. SP-normalformen till en boolesk funktion f(x 0_ 1, ..., x 1, x 0) av n variabler kan komprimerat skrivas som 2n - 1

i= 0

fi · mi

(4.2)

Uttrycket (4.2) är en boolesk summa av samtliga mintermer vardera multi­ plicerad (boolesk produkt) med tillhörande funktionsvärde, innebärande att SP-nor1nalformen blir su1nman av de mintermer för vilka funktionsvärdet fi är lika med 1. I stället för att beskriva en boolesk funktion i en funktionstabell kan det vara bekvämt att bara ange numret för de va1·iabelkombinationer för vilka funktionen har värdet 1. Exempelvis kan funktionen lo3 beskrivas som lo3 = f(x 3 , x 2, x 1, x0) = I(O, 1, 2) Vi har nu sett hur en boolesk funktion kan skrivas på SP-normalfor1n med mintermema och p.g.a. booleska algebrans dualitetsprincip förväntar vi oss naturligtvis en dual form som är precis tvärtom, dvs. skriven med maxter­ mema. Funktionen lo3 skriven på normalform med maxter1nema blir lo3= f(x 3 , x 2, x 1, xo) = M3· M4· M5· M6· M7· Ms·M9· M1o· M11· M12· M13· M14· M15 Denna normalform är booleska produkten av de maxtermer för vilka funk­ tionen har värdet 0. Uppenbart blir funktionen lo3 skriven med maxter­ mema ovan lika med noll då en maxterm i produkten är lika med 0, vilket inträffar för den till maxtern1en hörande var·iabelkombinationen. Normal­ formen med maxtermer är en produkt av sum1nor, PS-form, och eftersom summorna är maxtermer benämnes den PS-normalform. PS-normalformen till en boolesk funktion f(x 0_ 1, ..., x 1, x 0) av n variabler kan komprimerat skrivas som i= 0

© Studentlitteratur

(4.3)

123

4 Kombinationskretsar

I booleska produkten (4.3) gäller att om fi = 0, så blir fi+Mi = 0+Mi = Mi , dvs. maxtermen kom1ner att ingå i produkten, medan om fi = 1 så blir fi+Mi = 1+Mi = 1, dvs. maxtermen kommer inte att ingå i produkten. PS-normalformen kan också användas till att kompakt beskriva en boolesk funktion med numren för de variabelkombinationer för vilka funktionen är lika med 0. Funktionen lo3 kan beskrivas som lo3 = f(x 3, x2, x 1, x0) = Il(3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) Självklart är de nummer som ingår i PS-normalformen de som saknas i SP­ normalformen. SP-normalformen som är en summa av produkter, realiseras naturligt i ett grindnät av typ OCH-ELLER , och PS-normalformen som är en produkt av summor, realiseras lika naturligt i ett grindnät av typ ELLER-OCH. I figur 4.3 nedan visas realiseringen av SP-normalformen och PS-norn1alformen till funktionen lo3. Bortsett från en eventuell första nivå av inverterare som krävs för att invertera insignalema , så har grindnäten två nivåer grindar, en nivå av OCH-grindar och en nivå av ELLER-grindar. Ur fördröjningssyn­ punkt är två-nivå-näten fördelaktiga och nor1nalt realiseras booleska funk­ tioner i två-nivå-nät. I detta fall där funktionen lo3 har avsevärt fler nollor än ettor så blir ELLER-OCH-nätet självklart mer komplext och innehåller 13 ELLER-grindar i första nivån och en OCH-grind med lika många in­ gångar i andra nivån. OCH r

-

ELLER -

ELLER

OCH

z1

& l

,

&

I

z1

lo3

"' z 1 &

1

&

• • •

lo3

• •

z1

Figur 4.3 SP- och PS-normalformerna till funktionen lo3 realiserde i grindnät.

124

© Studentlitteratur

4.2 Booleskafunktioner

Vi avslutar nu denna sektion med att studera samtliga booleska funktioner f(x, y) av två va1·iabler. Det finns enligt tabell 4.2 ovan totalt 16 sådana funktioner, dvs. inte fler än att vi kan skriva upp dem i en tabell enligt nedan. Tabell 4.4: Samtliga booleskafunktioner av två variabler. X

y

0 0 1 1

0 1 0 1

fo

0 0 0 0

f1

0 0 0 1

f2

0 0 1 0

f3

0 0 1 1

f4

0 1 0 0

fs

0 1 0 1

f6

0 1 1 0

f7

0 1 1 1

fs

1 0 0 0

f9 f10 f11 f12 f13 f14 f1 5

1 0 0 1

1 0 1 0

1 0 1 1

1 1 0 0

1 1 0 1

1 1 1 0

1 1 1 1

De 16 booleska funktionerna f0, f 1, ... , f 15 kan skrivas som booleska uttryck enligt nedan (prova själv att ta fram dem genom att skriva upp SP- eller PS­ normalformerna och sedan tillämpa r·· elaga1·na i booleska algebran).

fo = O f1 = xy (OCH) f2 = xy" f3 xy" + xy = x f4 = x"y f5 x"y + xy = y f6 x"y + xy" (XOR) f7 x + y (ELLER)

© Studentlitteratur

f8 = x"y"= (x + y)" (NOR) f9 = x"y"+ xy (XNOR) f 10 = x"y"+ xy" = y" f11 =X+ y" f 12 = x"y"+ x"y = x" f 13 = x"+ y" f14 = x"+ y" = (xy)" (NAND) f15

=1

125

4 Kombinationskretsar

0�



••





• •



••

a

oner1

av

Låt oss börja med att algebraiskt förenkla funktionen lo3, som i föregående sektion skrevs på SP-norn1alform i uttryck (4.1). lo3

0+ 1

= x3"x2"x 1"(xo" + xo) + O+l

2

1

0

2

(4.4) 2

(4.5)

Principen för förenklingen ovan är: ur två produkttermer som skiljer sig i bara en variabel, som är icke-inverterad i den ena termen och inverterad i den andra, bryter man ut den gemensamma delen. Termerna O och 1 ovan skiljer sig i bara x0-variabeln och den gemensamma delen x3"x2 "x 1" kan brytas ut. Eftersom x0,, + x 0 = 1, så kan alltså de två termerna O och 1 slås samman till termen x 3,,x2,,x 1,,. Det förenklade uttrycket (4.5) ovan för lo3 har bara två produkttermer jäm­ fört med SP-nor1nalformen (4.4) som har tre, innebärande att lo3 kan reali­ seras i ett OCH-ELLER-nät med bara två OCH-grindar i första nivån. Om man låter ett syntesverktyg generera en minimal SP-form till funktio­ nen lo3 så får man (4.6) Jämför vi uttrycken (4.5) och (4.6) ser vi att båda uttrycken innehåller lika många produkttermer, men att uttrycket (4.5) har en var·iabel mer i andra produkttermen, motsvarande en ingång mer hos OCH-grinden som reali­ serar denna produktterm. Det går således att förenkla uttrycket (4.5) ytter­ ligare och låt oss göra det. I normalformen (4.4) har produkttermerna O och 1 kombinerats, men vi ser att det också skulle vara möjligt att kombinera produktter1nerna O och 2 som skiljer sig bara i var·iabeln x 1. Produkttermen O skulle sålunda behöva kombineras med två produkttermer, vilket också är möjligt. Booleska alge­ brans räknelag (Ll): x + x = x, säger nämligen att en term kan upprepas hur många gånger som helst utan att det ursprungliga uttrycket förändras. En 126

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

produktterm får alltså upprepas godtyckligt många gånger i en boolesk summa och förenklingen av lo3 kan därför göras enligt nedan. lo3

= X3 X2 X1 Xo ,,

,,

,,

,,

,,

,,

O+l

= x3 "x2"X 1 ,,(Xo" + Xo) + O+l

= X3 X2 X 1 ,,

,,

,,

+

,,

,,

,,

+ X3 X2 X1 Xo+ X3 X2 X1Xo

0+ 2 ,,

,,

X3 X2 XQ

,,

(4.7)

0+ 2 " " X3 X2 Xo,, (X 1 ,, + X 1)

,,

(4.8)

& I

>1 -

lo3

&

Figur 4.4 Det förenklade uttrycket (4.8) till lo3 realiserat i ett OCH-ELLER-nät.

Förenklingen av SP-nor1nalformen var i detta fall enkel, normalt blir det omfattande algebraiska ber·· ingar och framförallt är det svårt att avgöra vilka termer som skall kombineras för att det enklaste uttrycket skall erhål­ las. I stället för att göra algebraisk förenkling av SP-normalformen kan man emellertid använda s.k. Karnaughdiagram, där den mänskliga hjärnans fina förmåga att känna igen olika mönster kan utnyttjas för att bestämma vilka termer som skall kombineras till det enklaste booleska uttrycket. Kar·naugh­ diagram är utmärkta hjälpmedel vid förenkling för hand av booleska funk­ tioner upp till ungefär sex var·iabler, vid större antal var·iabler blir det svårt även för vår hjä1·na att urskilja optimala mönster. Förutom som rent förenk­ lingsverktyg är Kamaughdiagram också av stort pedagogiskt värde för förståelsen av booleska funktioner och minmering.

© Studentlitteratur

127

4 Kombinationskretsar

Vi har tidigare sett hur en boolesk funktion kan beskrivas i en funktionsta­ bell. Karnaghdiagrammet är i princip bara funktionstabellen i forn1 av ett rutmönster. Rutmönstret skall ha lika många rutor som antalet variabelkom­ binationer, dvs. som antalet rader i funktionstabellen, och i varje ruta skall funktionsvärdet anges. Låt oss rita ett Karnaughdiagram till den tidigare funktionen lo3 med funktionstabellen 4.1. belkombinationer, varför Karnaughdiagrammet skall ha 16 rutor. Kar­ naughdiagrammet blir enligt figur 4.6 nedan.

00

1

1

0

1

01

0

0

0

0

0

0

0

0

0 �

0

0

0

10

lo3

Figur 4.5 Karnaughdiagram tillfunktionen lo3.

Vid den tidigare algebraiska förenklingen av SP-normalformen till funktio­ nen lo3, kombinerades termer som skilde sig i bara en var·iabel och den ge­ mensamma delen bröts ut. Finessen med Karnaughdiagrammet är att det är konstruerat så att rutor som ligger intill varandra horisontellt eller vertikalt har variabelkombinationer som skiljer sig i bara en variabel. Vi ser i dia­ grammet ovan hur rutorna i övre raden från vänster representerar varia­ belkombinationerna 0000, 0001, 0011 och 0010, dvs. binärtalen skiljer sig ruta för ruta i bara en va,·iabel (observera att 0011 placerats före 0010 för att detta skall gälla). Vertikalt skiljer sig också binärtalen för rutorna bara i en variabel. Vidare skiljer sig radernas respektive kolumnernas ytterrutor också i bara en variabel. För att det direkt skulle framgå att ytterrutorna skiljer sig i bara en var·iabel så borde diagrammet ritas på en toroid.

128

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Ka1·naughdiagrammet ger oss alltså möjlighet att lätt se om två mintermer kan slås samn1an, då skall tillhörande 1:or ligga intill varandra horisontellt eller vertikalt. För funktionen lo3 i Karnaughdiagrammet i figur 4.5 ovan, ser vi direkt att produkttermerna hörande till rutorna 0000 och 0001 kan slås sam1nan och så även produkttermerna hörande till rutorna 0000 och 0010 eftersom ytterrutorna också ligger intill varandra. Sammanslagningen markeras genom att de två 1:orna inringas enligt figuren nedan.

'

X1Xo

00 00

11

10

1

1

0

1

01

0

0

0

0

1

0

0

0

0

10

0

0

0

0

'

lo3

Figur 4.6 Inringningar i Kamaghdiagrammet tillfunktionen lo3.

Vid den algebraiska förenklingen av lo3 såg vi vid sammanslagningen av produkttermerna att variabeln som skiljer sig i de båda termerna försvinner p.g.a. att x + x" = 1. Sammanslagningen i Ka1·naughdiagrammet ovan av ettorna i rutorna 0000 och 0001 resulterar i tern1en x3 "x2"x 1 ", dvs. va,·iabeln x0 försvinner eftersom den skiljer sig för de båda 1:orna i sammanslag­ ningen, den är O för ruta 0000 och 1 för ruta 0001. Regeln för att skriva upp produkttermen till en inringning av 1:or blir således, att endast en variabel som har samma värde för hela inringningen skall ingå i produkten och ingå som inverterad om den har värdet O för hela inringningen och icke-inverterad om den har värdet 1 för hela inringningen.

© Studentlitteratur

129

4 Kombinationskretsar

Exempel 4.1 Xo

0 0

1

1

0

1

1 0

Exempel 4.2



0

1

1

1

0

0

0

0 r '-

1

" �

0

Exempel 4.3

X 1 Xo

00

01

11

10

00

0

0

0

1

01

1

1

0

0

1

1

0

0

0

0

0

1

10

0

I exempel 4.3 ovan har fyra ettor inringats. Inringning av de två ettorna i översta raden av. denna inringning ger termen x3 'x2x 1 ' och inringning av de två ettorna i understa raden ger termen x3x2x 1 '. Dessa två ter1ner ger sedan x3 'x2x 1 ' + x3x2x 1 ' = x2x 1 '(x3 ' + x3) = x2x 1 ', vilket är tern1en till inring­ ningen av de fyra 1 :orna.

130

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Vi har i exemplen ovan sett hur inringning av en, två och fyra ettor kan göras och allmänt gäller att antalet ettor som kan förekomma i en inring­ ning måste vara en potens av 2, dvs 1 , 2, 4, 8, 1 6, osv. I figur 4.7 nedan visas de olika typer av inringningar som kan förekomma i ett Kamaugh­ diagram med fyra var·iabler. Ju större inringning desto färre antal var·iabler i produktter1nen och sålunda fär·re antal ingångar i OCH-grinden i första nivån. Ju fä1·1·e antal inring­ ningar desto fä1·re antal produkttermer i funktionsuttrycket och fä1Te antal OCH-grindar i första nivån och ingångar i ELLER-grinden i andra nivån. Normal målsättning vid realisering av en boolesk funktion i ett booleskt ut­ tryck är därför så få och så korta termer som möjligt i funktionsuttrycket och alltså i Kamaughdiagrammet, så få och så stora inringningar som möjligt.

Definitioner: En produktterm hörande till en maximal inringning benämnes primimplikator. En primimplikator som täcker en minterm (etta i Ka1·naughdia­ grammet) som inte täcks av någon annan primimplikator, benämnes väsentlig primimplikator.

En minimal SP-form till en boolesk funktion med så få och så korta termer som möjligt är uppenbart liktydigt med en summa av så få primimplika­ torer som möjligt. Samtliga väsentliga pri1nimplikatorer måste alltid ingå i det minimala uttrycket, eftersom de vardera täcker en minterm som inte täcks av någon annan primimplikator. Inringningama till funktionen lo3 i Kamaughdiagrammet i figur 4.6 är båda väsentliga primimplikatorer. Dels är de maximala inringningar, dvs. prim­ implikatorer, dels täcker de ettor i rutorna 000 1 respektive 00 1 0 som inte täcks av någon annan primimplikator.

© Studentlitteratur

13 1

4 Kombinationskretsar

00

X 1 Xo

01

11

10

00 01

1

1

11

\. 1

1

1

10

I

1

1

1

1

1

1

1

1

1

1

1

1

1

1 1 I

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

I

,

Figur 4. 7 Inringningar i ett Kamaughdiagram med fyra variabler.

1 32

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Bestämning av en minimal SP-form till en boolesk funktion (utan att man är intresserad av att bestämrna samtliga primimplikatorer) kan ske i följande tre steg. Steg 1. Bestäm samtliga väsentliga primimplikatorer genom att leta upp ettor i Ka1·naughdiagram1net som bara täcks av en primimplikator, dvs. en väsentlig primimplikator. Markera sådana ettor med en asterisk (*), så att man ser vilken etta som motiverar att det är en väsentlig primimplikator (det kan finnas flera sådana ettor för en väsentlig primimplikator, men det räcker att markera en). Steg 2. Bestäm återstående primimplikatorer, som krävs för att täcka ettorna som ej är täckta av väsentliga primimplikatorer. Steg 3. Skriv upp det minimala uttrycket till funktionen som summan av prim­ implikatorerna som erhållits i steg 1 och 2.

Steg 1 är relativt enkelt. Observera att det inte alltid behöver finnas väsentliga primimplikatorer. Steg 2 kan ibland innebära svår·igheter att be­ stämma vilka primimplikatorer som skall medtagas i det minimala ut­ trycket. - Låt oss nu ta några exempel.

Exempel 4.4 Bestäm en minimal SP-for1n till booleska funktionen f(x 3, x2, x 1, xo) = 1:(3, 4, 5, 7, 9, 13, 14, 15 ). Lösning

00 01

0

1*

0

1

1

0

0

1

1

*1

0

1*

0

0

0

1*





10

Figur 4.8 Kamaghdiagram till exempel 4.4.

© Studentlitteratur

Minimala SP-formen blir

0

133

4 Kombinationskretsar

I exempel 4.4 ovan, om man inte följer steg 1-3 ovan, frestas man kanske att börja med att göra en så stor inringning som möjligt och ringa in de fyra ettorna i mitten av Ka1·naughdiagram1net. Detta är onekligen en primimp­ likator, men inte en väsentlig primimplikator och skall inte ingå i det mini­ mala uttrycket eftersom samtliga ettor täcks av väsentliga primimplikatorer.

Exempel 4.5 Bestäm en minimal SP-form till booleska funktionen f(x 3 , x2 , x 1 , x0) = L(2, 3, 7, 8, 10, 12, 15).

Lösning X X

1 o

11

10

0

1

1

0

0

1

0

1 *1

0

1

0

1

0

0

1

00

01

00

0

01

10

Figur 4.9 Kamaghdiagram till exempel 4.5.

En minimal SP-form blir



I exempel 4.5 ovan finns det tre ettor som inte täcks av väsentliga prim­ implikatorer. En minimal SP-form visas ovan. Det finns emellertid två andra minimala SP-former. Vilka? Vi har nu sett hur Kamaughdiagrammet kan användas för att skriva en boolesk funktion som en minimal summa av produkter, minimal SP-form, som kan realiseras i ett minimalt OCH-ELLER-nät. Kar·naughdiagrammet kan lika bra användas för att skriva funktionen som en minimal produkt av summor, minimal PS-form, som kan realiseras i ett minimalt ELLER-OCH­ nät. Metoden är mycket enkel. Steg 1-3 ovan appliceras på nktionens in­ vers. Den erhållna minimala SP-formen till funktionens invers inverteras sedan och ger som resultat den minimala PS-formen.

134

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Exempel 4. 6 Bestäm en minimal PS-form till booleska funktionen f(x3 , x2 , x 1 , x0) = I,(2, 3, 7, 8, 10, 1 2, 1 5) (sam1na funktion som i exempel 4.5 ovan). Lösning I stället för att rita ett speciellt Ka1·naughdiagram för funktionens invers f" och där göra inringningar av ettorna går det självklart lika bra att inringa nollorna i Karnaughdiagrammet till funktionen f.

00

o*

01

0

0

1

0*

1

0

10

Figur 4.10

I

..

1

1

1

*O

1

0

*o

1

De Morgans lagar ger ,, f = (f") =(x3 + x 1 )(x 1 + x0")(x2" + x 1 ,, + x0) · (x3 ,,+ x2 + xo")

Kamaghdiagram till exempel 4.6.

0

Vi fortsätter med ytterligare exempel på Karnaughdiagram. Som tidigare nämnts är Kar·naughdiagram användbara åtminstone upp till 6 variabler och exemplen som följer gäller minimering av funktioner av 5 respektive 6 va1·iabler.

Exempel 4. 7 Bestäm en minimal SP-form till booleska funktionen f(x4, x3, x2, x 1 , xo) =

I,(2, 4, 10, 1 1 , 16, 20, 26, 27, 30, 3 1 ).

Lösning

rita två stycken Ka1·naughdiagram med vardera 1 6 rutor, ett för x4 = 0 och ett för x 4= 1 . I rutorna har angetts den decimala siffran till rutans binära var·iabelkombination, vilket kanske kan underlätta inplacering av ettorna på rätt plats.

© Studentlitteratur

1 35

4 Kombinationskretsar

Inringning i de två Kamaughdiagrammen görs på samma sätt som tidigare, men en inringning kan nu även gå över båda diagrammen på så sätt att om en inringning förekommer på samrna ställe i båda diagram1nen (markerade sammanbundna i diagra1nmen nedan) , så försvinner x4-var·iabeln för den till inringningen hörande produkttermen.

00

0

0

,r �4

01 \. 1

0

10

0

,J

12 8

0 0 0

0

1 5 13 9

0 0 0

3 7 15 11

1*

X4 -- 0

I'

2

*1

6

0

0

14 10

f

*1 1 0 0

16 0 28 24

0 0 0 0

17

0

21

0

29 25

:::t::-

X4

19 23 31

1*

- 1

--

27

0

18

22

0 1

30 6

1

Figur 4.11 Karnaughdiagram till exempel 4. 7.

Den minimala SP-formen blir 0

Exempel 4.8 Bestäm en minimal PS-form till booleska funktionen f(x5, X 4, X 3 , X 2, x 1, Xo)

=L( l , 3, 4, 5, 6, 7, 8, 10, 12, 14, 17, 19, 24, 26, 33, 35, 40, 42, 50, 54, 58, 62). Lösning

rita fyra stycken Kar·naughdiagram med vardera 16 rutor, för x 5 x4 = 00, 0 1, 1 1 respektive 10. Observera att de fyra diagrammen ritas i en sådan ordning att x5 x4, horisontellt och vertikalt, skiljer sig i bara en var·iabel på samma sätt som rutorna inne i själva diagrammet. Samma inringning kan nu kom­ bineras i två diagram, horisontellt eller vertikalt, varvid den variabel av x 5 och x4 som skiljer sig i de båda diagramrnen, försvinner i termen som hör till inringningen. Om samma inringning kan kombineras i alla fyra dia­ gramrnen försvinner både x5 och x4 i termen. 136

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät



...::-

00

0

1

1

0

0

1

1

0

01

1

1

1

1

0

0

0

0

1

0

*O

1

0

0

0

*0

1

0

0

1

1

0

0

1

10

X5X4

= 0

X5X4

0

1

1

0

0

0

0

0

0

0

0

0

0

*o

0

1

0

0

1

0*

= 01

0

*O

1

0

0

1

0

1

0

1

·t 0 0

=

Figur 4. 12 Karnaghdiagram till exempel 4.8.

Den minimala SP-formen till f / blir

X5 X3 x2 xo +X4 X3 x2 xo /

/

/

/

/

/

/

/

Den n1inimala PS-formen till f blir

f = (x3 /+x0 /)(x5+x4 /+x2 /)(x5 /+x4+x2 /)(x5 /+x4/+x 1 ) · (x5 /+X4 /+Xo /)(x5+X3+X2+Xo)(x4+X3+X2+Xo) 0

© Studentlitteratur

137

4 Kombinationskretsar

Exempel 4.9 Realisera booleska funktionen f(x 3 , x2 , x 1 , x0) = Il(O, 1, 2, 4, 5, 8, 10) och dess invers i var sitt minimalt OCH-ELLER-nät.: Lösning Realisering av funktionen f:

00

0

0

1*

01

0

0

1

*1

1

1

1

1

0

I

1 10

*

0

1

*

X3

0

&

X2

r

X3 ...

Xo

&

X1

·&

X2 X1

·&

Xo

>1 -

f

>1 -

f'

Figur 4.13 Karnaughdiagram och grindnät tillfunktionen f.

Realisering av funktionens invers f ,,: X 1 Xo

00

01

11

00

0

0*

1

01

0

0

1

1

1

1

1

1

0

1

1

0

10 *

0

I& •

10

-

,

&

Figur 4.14 Kamaughdiagram och grindnät tillfunktionenf ". 0

Notera i exempel 4.9 ovan att funktionens invers går att realisera med fä1Te produkttermer än funktionen. Detta inträffar ibland och i vissa fall, som t.ex. i PLD som vi skall se längre fram, kan det vara lämpligt att realisera funktionens invers följd av en inverterare som bildar funktionen. Låt oss nu avsluta denna sektion om Ka,·naughdiagram med att återvända till kretsen BCDcheck. Vi har förenklat funktionen lo3 i Kar·naughdiagram 1 38

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

och det återstår att förenkla funktionen noBCD, vilken som det visar sig vi inte skrivit på minimal SP-for1n i den första VHDL-beskrivningen.

00

0

0

0

0

01

0

0

0

0

1 * 1

1

1

0

1

10

0

*

-

1 I

noBCD Figur 4.1 5 Minimering av funktionen noBCD i kretsen BCDcheck.

Den minimala SP-formen till noBCD blir noBCD = x 3 x2 + x 3 x1 som har lika många produkter som i VHDL-beskrivningen, men där den andra produkten bara har två va1·iabler jämfört med tre i VHDL-beskrivn1ngen.

I kapitel 2 nämnde vi att funktionerna OCH och ELLER är mer komplexa att realisera med transistorer än NAND och NOR, beroende på transistorns naturliga förmåga att invertera, som direkt kan utnyttjas i NAND och NOR, men som måste kompenseras med en extra inverterare i OCH och ELLER. Vi har i det föregående vid förenkling av booleska funktioner uteslutande diskuterat realisering i OCH-ELLER-nät och ELLER-OCH-nät. Vi skall nu se hur ett OCH-ELLER-nät är ekvivalent med ett NAND-NAND-nät och ett ELLER-OCH-nät är ekvivalent med ett NOR-NOR-nät. När vi i fort­ sättningen exempelvis visar realisering av en boolesk funktion i ett OCH­ ELLER-nät så är det bara för att detta nät direkt ger en bild av realisering av en summa av produkter, SP-form, och inte hur funktionen i verkligheten är realiserad, vilket normalt är i ett NAND-NAND-nät. © Studentlitteratur

139

4 Kombinationskretsar

Betrakta OCH-ELLER-nätet nedan.

w X

y z

& 21

f

J &

Figur 4.16 OCH-ELLER-nät.

Booleska funktionen f = wx + yz på SP-for1n, som är realiserad i OCH­ ELLER-nätet kan omformas enligt f = wx + yz = ((wx + yz)")" = ((wx)"(yz)")" Vi ser i det omformade uttrycket att de inre parenteserna liksom den yttre parentesen är NAND-funktioner. Samtliga grindar i OCH-ELLER-nätet kan alltså ersättas med NAND-grindar! Betrakta på samma sätt ELLER-OCH-nätet nedan. w X

y

z

21 &

f

21

Figur 4.1 7 ELLER-OCH-nät.

Booleska funktionen f = (w + x)(y + z) på PS-form, som ELLER-OCH-nätet kan omformas enligt

är

realiserad i

f = (w + x)(y + z) = (((w + x)(y + z))")" = ((w + x)" + (y + z)")" Vi ser i det omformade uttrycket att de inre parenteserna liksom den yttre parentesen är NOR-funktioner. Samtliga grindar i ELLER-OCH-nätet kan alltså ersättas med NOR-grindar !

140

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Sammanfattning:

w X

y z

w X

y z

OCH

-

NAND

ELLER

w

&

21

f

&

ELLER

OCH

-

21

f

21

NAND

&

X

&

y z

f

&

w

&

-

X

-

NOR 21 2 1 ..

y z

NOR 21

f

Figur 4.18 OCH-ELLER NAND-NAND och ELLER-OCH NOR-NOR.

I OCH-ELLER-, ELLER-OCH-, NAND-NAND-, och NOR-NOR-näten måste insignalemas inverser, om de ej redan finns tillgängliga, genereras i en första grindnivå av inverterare (eller NAND- och NOR-grindar). I vissa fall, vid användning av NAND-grindar, kan invertering av två eller flera sig­ naler utföras i en NAND-grind. Principen illustreras i figur 4.19 nedan vid realisering av Exklusivt-ELLER-funktionen f = x E9 y = x�y + xy�. X

1 y

1 t>

X

& & &

(•

f = x EB y

& &

Y- -------1

& &

f = x EB y

Figur 4.1 9 Realisering av XOR på två olika sätt. © Studentlitteratur

14 1

4 Kombinationskretsar

I det övre grindnätet är Exklusivt-ELLER-funktionen realiserad på konven­ tionellt sätt med en första nivå inverterare, medan i det undre grindnätet inverterarna ersatts med en NAND-grind. Principen bygger på sambandet (4.9) Sambandet (4.9), som uppenbart gäller, ty a(ab) ' = a(a' + b ') = ab ', kan ut­ läsas som att ''i en produkt av variabler, i detta fall ab ', kan en va1·iabel flyt­ tas in under en invertering, om variabeln fortfarande också behålles utanför inverteringen''. Principen gäller inte bara en va1·iabel, utan ett godtyckligt antal va1·iabler, t.ex. gäller abc ' = ab( abc) '. Enligt denna princip kan Exklu­ sivt-ELLER-funktionen skrivas om enligt I stället för två inverterare för generering av x ' och y ' kan således en NAND-grind för generering av (xy) ' användas .

1oner För en kombinationskrets kan specifikationen vara sådan att vissa insig­ nalkombinationer aldrig kan förekomma. Detta innebär att utgångsvärdet fritt kan väljas till O eller 1 för dessa insignalkombinationer (självklart ger kombinationskretsen utgångsvärden även för de insignalkombinationer som aldrig kan inträffa). Specifikationen kan också vara sådan att utgångsvärdet är ointressant för vissa insignalkombinationer och därför fritt kan väljas till 0 eller 1 för dessa.

Exempel 4.10 En kombinationskrets C542l toBCD som översätter 542 1 -kod (se tabell 1 .3 i kapitel 1 ) till BCD-kod skall konstrueras. Kretsen skall realiseras i ett minimalt OCH-ELLER-nät.

Ya Kombinationskrets - Y4 C542 1toBCD 1---

- kodomvandlare 542 1 -kod till BCD-kod

1---

Y2

- Y1

Figur 4.20 Blockschemaför kodomvadlare 5421 -kod till BCD-kod.

1 42

© Studentlitteratur

4.3 Förenkling och realisering av booleska funktioner i grindnät

Lösning Utgående från tabell 1.3 ritar vi upp Kar·naghdiagrammen för utsignalerna y8' y4, y2 och y 1.

00

0

0

0

0

0

0

0

01

0

-

-

-

1*

-

-

0

-

1* 10

0

-

1

0

*



0





••

• • • • •

1

• •

••

-

• • • • •

1



. . . - ••

0

0

• - . . . ..

-

• • • • • •





• • • • • •

. .1 ..-•

Ya 0

0

1*

1

0

1*

1

0

0

-

-

-

0

-

-

-

0

-

-

-

T

-

-

- -

0

1

0

1

*1

0

0

*

*

-

1

I

Figur 4.21 Kamaughdiagram till kombinationskretsen C5421toBCD.

I Kar·naughdiagrammen har funktionvärdena för de sex insignalkombina­ tioner som ej kan förekomma i 5421-koden markerats med streck (-). Sådana värden som ''inte har någon betydelse'', benämnes ju don /t care. I den komprimerade funktionsspecifikationen I() kan ospecificerade värden tillfogas som d(). Exempelvis kan funktionen y 8 komprimerat skrivas som: Ys = 1(11, 12) + d(5, 6, 7, 13, 14, 15). Inringningar får nu även innehålla (-), ospecificerade funktionsvärden. Om en ospecificerad ruta ingår i en inringning innebär det att funktionsvärdet i rutan blir 1, medan om en ospecificerad ruta inte ingår i någon inringning blir funktionvärdet 0. Väsentliga primimplikatorer har på vanligt sätt markerats med en asterisk (*). Samtliga funktioner med undantag för y4 har realiserats med enbart väsentliga primimplikatorer. Funktionen y4 kan realiseras på flera olika sätt med användning av också de streckade inringningama. © Studentlitteratur

143

4 Kombinationskretsar

Med inringninga1·na i Karnaughdiagrammen ovan blir de minimala SP­ formerna:

,,

Y 1 = X5 X 1

+ X5X1 ,,

Ett alternativ till minimeringen ovan med ospecifierade värden vore att från början sätta alla don"t care till O eller till 1. De minimala funktionerna blir då normalt mer komplexa beroende på att större restriktioner lagts på funk­ tionerna. Det är alltså viktigt att minimeringen får bestäm111a de ospe­ cificerade funktionsvärdena.

1

& &

..

.. ..

1

J

& & &



.. ..

..

..



1

..

.. . .·.

..

Ya

I

>I -

..

•·

1

>I

... .. .. .. .. . . .. .. . .. .. ..

'

& & &

> - 1

& &

> - I

:>

Figur 4.22 Grindnät till kombinationskretsen C5421 toBCD.

Grindnätet ovan har ritats så att det antyder principen för programmering av förbindningar i en PLD. De fyllda stora ringarna i den skuggade matrisen markerar programmerade förbindningar mellan kretsens ingångar och OCH-grinda,·nas ingångar. Ett komprimerat ritsätt har använts för de 8-in­ gångars OCH-grinda1·11a. Ingångar·na symboliseras med en enda linje på vilken anslutning till en ingång markeras med en tjock fylld ring. 144

© Studentlitteratur

4.3 Förenkling och realisering av booleskafunktioner i grindnät

Vid realiseringen av kombinationskretsen C5421toBCD minimerades de fyra booleska funktionerna var för sig och realiserades i skilda grindnät. Det kan finnas möjlighet att minska totala antalet grindar i kretsen genom att utnyttja samma grind i mer än ett grindnät, använda grinddelning. Stud­ erar vi de minimala uttrycken till booleska funktionerna för C5421toBCD, så ser vi att funktionerna y4 och y2 båda innehåller produkttermen x 5 x2 �x 1. Denna produktterm behöver bara realiseras i en OCH-grind vars utgång ansluts dels till ELLER-grinden i y4 dels till ELLER-grinden i y2. Vi sparar alltså en grind genom detta förfarande. I detta fall finns inga fler gemen­ sam1na produkttermer i funktionerna som ger mer besparing av grindar. Dock går det som vi skall se, att ytterligare reducera totala antalet grindar i kretsen C5421toBCD. Detta kan ske genom att redan vid minimeringen av de olika funktionerna beakta möjlighet till grinddelning, motsvarande en optimering av sammanlagda antalet grindar i hela kretsen i stället för op­ timering av antalet grindar i var och en av kretsar·na till de olika funktion­ erna. Låt oss se hur detta kan göras.

00 01

0

1 10

0

0

0

*

0

0

-

-

-

-

0

1

0 1

*

0

0

0

-

-

-

-

0

-

-

-

*

0

1

1

0

1

1

0

Ya 0

0

1*

1

0

1

0

-

-

-

0

-

-

-

0

-

-

-

1

-

-

-

0

1

0

1

1

0

0

1

*

*

*

Figur 4.23 Minimering av y8, y4, y2 och y 1 under beaktande av grinddelning. © Studentlitteratur

145

4 Kombinationskretsar

Inringning i Ka1·naughdiagrammen under beaktande av grinddelning startar lämpligen med att man för varje funktion gör alla inringningar för vilka grinddelning ej är möjlig. Detta är liktydigt med att man börjar med att leta efter ettor som bara finns i ett K.ar·naughdiagram på den aktuella platsen och ringar in dem på bästa sätt. Sådana ettor i Ka1·naughdiagrammen i figur 4.23 ovan är, för funktionen y 8 ettan i ruta 1 0 1 1 , för funktionen y4 ettan i ruta 0 1 00, och för funktionen y 1 ettan i ruta 000 1. Därefter görs inringningar för grinddelning, innebärande att man måste analysera flera Kar·naughdiagram samtidigt, vilket inte alltid är så lätt. I exemplet ovan så har jämfört med in­ ringning utan grinddelning, endast funktionen y 1 blivit annorlunda. I denna har inringningen x 5 x 1 .,ersatts med de två inringningar·na x 5 x 4 och x 5 x4 .,x 1 ., som delas med funktionerna y 8 respektive y4. Nedan visas booleska ut­ trycken för funktionerna med grinddelning. Gemensamma produkttermer i funktionerna har markerats med samma nummer. 1

Y s = x 5 x4 + x 5 x 2x 1 2

3

Y4 = X5 X4 + X5X4 X 1 + X5X2 X 1 .,

.,

.,

3

.,

Y2 = X5 X2 + X2X1 + X5X2 X 1 Yl

.,

.,

.,

+ X5X4 + X5X4

= X5 X 1

1

2

.,

.,

X1

.,

I grindnätet i figuren nedan har grinddelningen i den skuggade matrisen också ritats för att illustrera principen i en PLD. ELLER-grindar·na har åtta ingångar till vilka kan anslutas utgångar från åtta av de tio OCH-grinda1·11a. Liksom för OCH-grindar·na har för ELLER-grindarna använts ett förenklat ritsätt med bara en ingångsledning. Som framgår av figuren så används to­ talt åtta OCH-grindar vid realiseringen med grinddelning (observera två av OCH-grindarna används ej), jämfört med tio OCH-grindar vid realise­ ringen utan grinddelning i figur 4.22 ovan.

1 46

© Studentlitteratur

4. 3 Förenkling och realisering av booleskafunktioner i grindnät

& &

' '

' '

''

1

·,: ''

'''

''

I

''

' '

' '

& & &

'

''

' '

' '

''

'' ' '

1 '

1

'

'

''

'

"

' "

''

' '



' '

''

' '

.

1

' '

' '

..

& & &





''

_.....,

>- 1

> -

Ya

1

"

> - 1

& & "

>1

Figur 4.24 Grindnät med grinddelning till kombinationskretsen C5421 toBCD.

I programmerbara logiska kretsar PLD, finns ett antal standardgrindnät av typ OCH-ELLER av en viss komplexitet. Normalt kan bara anslutningarna till OCH-grindarnas ingångar programmeras, men det finns också PLD där även OCH-grindar·nas anslutning till ELLER-grindarna kan programmeras och alltså grinddelning utnyttjas. Vid realisering av en krets i en PLD så be­ stämmer syntesverktyget hur programmeringen av anslutningarna skall •• goras. I en PLD där bara anslutningar·na till OCH-grindarnas ingångar kan pro­ grammeras är antalet OCH-grindar ingående i ett OCH-ELLER-nät bestämt av tillverkaren av PLDn. En SP-form som skall realiseras i ett enda sådant OCH-ELLER-nät får då ha högst så många OCH-produkter som det finns OCH-grindar i OCH-ELLER-nätet. Vi har tidigare (exempel 4.9) sett hur ibland funktionens invers har färTe produkttermer än funktionen. Det kan alltså hända att det inte är möjligt att realisera funktionen i ett givet OCH© Studentlitteratur

1 47

4 Kombinationskretsar

ELLER-nät i PLDn p.g.a. för få OCH-grindar, medan det är möjligt att real­ isera funktionens invers. Om funktionens invers f' realiseras i OCH­ ELLER-nätet så måste utsignalen från ELLER-grinden inverteras för att funktionen f skall erhållas. Tillverkare av PLD gör d··- ör standardgrindnät enligt principen i figuren nedan som OCH-ELLER-nät följda av en styrbar invertering, vilken kan programmeras att inte invertera för realisering av funktionen eller invertera för realisering av funktionens invers. ••

&

• • •



• •

&



• • • •

• • •

&

• •



> - 1

&

lnv

& •

=1 • •

>1 -



lnv • •

0



lp

1

1

MUX 2-1

&

Figur 4. 25 Standardgrindnät av typ OCH-ELLER med styrbar invertering.

Vid realisering av en funktion f i standardgrindnätet skall Inv = 0 om den minimala SP-formen till funktionen f skall realiseras i OCH-ELLER-nätet, ty då går utsignalen f från ELLER-grinden genom XOR-grinden respektive MUX:en opåverkad (icke-inverterad). Om i stället den minimala SP-for­ men till funktionens invers f ' skall realiseras i OCH-ELLER-nätet så skall Inv = 1 , ty utgången från ELLER-grinden ger då funktionens invers f ', vilken sedan inverteras i XOR-grinden respektive via inverteraren och MUX:en så att (f ') ' = f erhålles. Låt oss studera ett exempel.

Exempel 4.11 En kombinationskrets BCDtest skall konstrueras. X3

X2

-----t

Xo

-----t

X1

-

Kombinationskrets BCDtest

-

Figur 4.26 Blocksch.ema för kombinationskretsen BCDtest.

1 48

© Studentlitteratur

4. 3 Förenkling och realisering av booleska funktioner i grindnät

Kretsen skall ha fyra ingångar x 3 , x2 , x 1 , x0 på vilka inmatas decimala siff­ ror i BCD-kod, betecknade x = (x 3 , x 2 , x 1 , x0) . Kretsen skall ha två utgån­ gar f 1 och f2 för vilka gäller: om och endast om

5 P3: 8,10 (2)

X

P1 ::> P5: 3,7 (4)

X

Samtliga primimplikatorer är i detta fall lika komplexa, omfattar lika många variabler, och har d.. ör samma prioritet vid val av minimal mängd. I tabell 4.9 ovan framgår att alla mintermer som täcks av primimplikator P3, täcks också av primimplikator P2 , man säger att P2 dominerar P3 , som kan betecknas P2::, P3. Likaså gäller att P 1 dominerar P5. Om vi bara söker en minimal mängd av primimplikatorer kan alltså P3 och P5 föras bort från resonemanget och tabellen reduceras ytterligare till tabellen nedan.

Tabell 4.10: Reducerad primimplikatortabell för funktionen fq•

P 1: 2,3 (1)

P2: 2,10 (8)

2

3

X

X

10 X

X

= X3X1 XQ ,

,

+ X2X1XQ + X3

,

,

X2 Xl

+ X2

,

XlXQ

,

Observera att dominerande primimplikatorer kan bara uppträda i en re­ ducerad tabell. I den ursprungliga tabellen kan självfallet ingen primimp­ likator täcka en annan primimplikator, ty då vore enligt definitionen på primimplikator den täckta primimplikatom ingen primimplikator. I detta exempel har vi nöjt oss med en minimal form. Om samtliga mini­ mala former önskas, kan efter bestämningen av väsentliga primimplika­ torer, valet av övriga pri1nimplikatorer reduceras till ett logiskt problem och utföras med en metod av Petrick (1956). Låt oss applicera denna metod på exemplet ovan.

164

© Studentlitteratur

4.4 Quine-McCluskeys förenklingsmetod

Vi utgår från den reducerade primimplikatortabellen i tabell 4.9, som erhål­ lits efter eliminering av väsentliga primimplikatorer. - Med varje primimp­ likator Pi i denna tabell associerar vi en logisk var·iabel P i, sådan att Pi: 1 (sann) innebär att primimplikatom Pi skall ingå i en 1ninimal SP_ säge1· vilka primimplikatorer som måste medtagas i en minimal SP-form för att täcka samtliga mintermer i tabell 4.9 ovan. Det logiska uttrycket blir

Uttrycket P betyder, att för att täcka minterm 2 skall primimplikator (P 1 eller P2) medtagas, och för att täcka minterm 3 skall (P 1 eller P5) medtagas, och för att täcka minterm 10 skall (P2 eller P 3) medtagas. För att ur uttrycket P få fram de olika alternativen, omvandlar vi uttrycket P med lagarna i Booleska algebran, t ex distributiva lagar·na, absorptionsla­ gar·na etc, till SP-form enligt P = (P1 + P2)(P1 + P5)(P2 + p3) = (P1 + P2P5)(P2 + p3)

Vi ser här att det förutom den tidigare framtagna minimala formen med P 1 och P2 (första termen i uttrycket P ovan), även finns två andra minimala former som innehåller P 1 och P3 respektive P2 och P5. Vid bestämning av en minimal form enbart med hjälp av primimplikatorta­ bellen konstaterades att dominerade rader kunde strykas. Nedan domineras rad Pr av rad P 8 , v ör rad P 8 alltså kan strykas. Med Petricks metod er­ hålles naturligtvis samma resultat med uttrycket (P r + p8 )pr, som enligt absorptionslagen är lika med Pr X X

X

dominerande rad dominerad rad

I reducerade primimplikatortabeller kan också uppträda dominerande och dominerade kolumner enligt nedan, där kolumn Ku domineras av kolumn Kv. © Studentlitteratur

165

4 Kombinationskretsar

X

X X

X

dominerad kolumn

X

dominerande kolumn

I fallet med dominerade och dominerande kolumner får den dominerande (obs!) kolumnen strykas. Detta är uppenbart möjligt då alla primimplika­ torer som täcker mintermen till den dominerade kolumnen alltid också täcker mintermen till den dominerande kolumnen. Ovan kan alltså den dominerande kolumnen Kv strykas, vilket också erhålls med Petricks metod och absorptionslagen enligt (Pr + p1)(Pr + Ps + Pt) = Pr + Pt Ofullständigt specificerade funktioner Minimering av ofullständigt specificerade funktioner med Quine-McCluskey skiljer sig inte nämnvärt från minimering av fullständigt specificerade funktioner.­ Vid generering av samtliga primimplikatorer behandlas de ospecificerade position­ erna som ettor, medförande alltså att en maximal mängd primimplikatorer genere­ ras. Vid val av en minimal mängd primimplikatorer i primimplikatortabellen med­ tages däremot inte mintermerna för de ospecificerade positionerna, endast mintermerna där funktionen är specificerad skall ju täckas av primimplikatorer.

Minimering av kombinationsnät med flera utgångar Quine-McCluskey kan även användas för minimering av flera funktioner samtidigt med beaktande av grinddelning. Man genererar då primimplikatorer inte bara för funktionerna var för sig, utan även för funktionernas ''snittmängder''. Exempelvis om man har tre funktioner f 1, f2 och f3, bildar man på vanligt sätt primimplikator­ erna för funktionerna var för sig, men också för funktionerna f 1 f2, f 1 f3, f2f3 och f 1f2f3. Vi går inte när·mare in på metoden här.

166

© Studentlitteratur

4.5 Kombinationskretsar i tidsplanet •







r1

sard Låt oss studera kombinationskretsen nedan i tidsplanet.

be 01 11

00 a

10

0

0

0

0

1

1

0

1

1

1

y

a

&

C

1

b

b

22

�1 21

y

& 3

y = ac + be' a 1 __________________

01------ ---

---- -------

b 1 _________________

o�------ -----------

c

1 0

-----I------''-- �--------

21 1 :------,

o __ __._______________ 22

= 0 och

23

=0

'

'

y

1



''glitch'' i utsignalen

0 --t►

Figur 4.39 Kombinationskrets med hasard.



© Studentlitteratur

167

4 Kombinationskretsar

Som framgår av funktionens y Ka1·naughdiagram och booleska uttryck, så är y = 1 om a = b = 1 oavsett värdet hos c. Antag nu att a = b = 1 och att c ändras enligt O ➔ 1 ➔ 0. Om vi antar att grindar·na har samma fördröjning, då blir tidsdiagrammet enligt figuren ovan. Vi ser i tidsdiagrammet att sig­ nalerna z 2 och z 3 kortvarigt blir lika med O samtidigt, under en tid som be­ stäms av grindar·nas fördröjning, medförande att utsignalen efter fördröj­ ningen i ELLER-grinden kortvarigt antar värdet 0. Det blir en oönskad ''spik'', på engelska ofta benämnd glitch, i utsignalen. Fenomenet brukar benämnas hasard (eng. hazard) och är alltså formellt kortva1·iga icke önskade värden i utsignalen hos en kombinationskrets, då insignalen ändras från ett värde till ett annat. Man brukar skilja på olika typer av hasard, statisk hasard och dynamisk hasard, och för statisk hasard, statisk I -hasard och statisk 0-hasard. Hasarden i grindnätet ovan är en statisk I-hasard, innebärande att en signal som skall vara 1, kortvarigt antar värdet 0. En statisk 0-hasard innebär att en signal som skall vara 0, kortvarigt antar värdet 1. Dynamisk hasard innebär att en signal som skall ändra värde från O till 1 eller från 1 till O ändrar värde tre gånger eller fler. 1 __ 0 --------------� ·--·-

Statisk 1-hasard Statisk 0-hasard

Dynamisk hasard

Dynamisk hasard

t

Figur 4.40 Hasard.

Hasard kan ställa till problem i vissa sammanhang och orsaka felaktigt be­ tende hos en krets och måste beaktas vid konstruktion av digitala kretsar, t.ex. vid konstruktion av asynkrona sekvenskretsar som behandlas i kapitel 5. Som namnet hasard antyder så medför den en osäker funktion hos en krets. Under vissa fördröjningar hos de ingående komponenterna så kan kretsen fungera korrekt, medan sam1na krets uppbyggd med andra kompo­ nenter ej fungerar korrekt.

Hasard i en kombinationskrets kan elimineras genom att den booleska funktionen realiseras med samtliga primimplikatorer. Funktionen y ovan kan realiseras hasardfri, enligt figur 4.41 nedan, genom att även primimplikatorn ab medtages i funktionens booleska uttryck.

168

© Studentlitteratur

4. 5 Kombinationskretsar i tidsplanet

00

a

be 01 11

10

0

1

0

0

0

1

0

1

'

1

'

'

:

'

'

"

a

e

1 :

b

. '

' '

1

Z2

&

1

>1 -

Z1

y

& Z3

y y = ae + be' + ab

'

&

'

'

'



' '

.

Figur 4.41 Hasardfri realisering.

Vi ser i det nya booleska uttrycket för funktionen y ovan, att termen ab som lagts till det ursprungliga uttrycket är konsensus till de två första termerna. Om nu i de nya funktionsuttrycket a = b = 1, så är alltså ab = 1 och således y = 1 oavsett värdet och förändringar hos c.

Låt oss studera kombinationskretsen nedan.

a

b

&

1

&

a

1 0

b

+------�---

1 ---------------- ---- ·-· - -- � 0 ,�

-� -��

. · - -�

-�

Y1 1 01----y2

1

1---------+---.i;

--►

Figur 4.42 Kombinationskrets med kapplöpning.

© Studentlitteratur

169

4 Kombinationskretsar

Antag nu i kombinationskretsen ovan att a = 0 och b = 1, var·vid alltså y 1 = 0 och y2 = 1. Om nu a ändras till 1, så skall utsignalerna bli y 1 = 1 och y2 = 0, och ändringen sker enligt signaldiagram1net i figur 4.42 ovan. Utsig­ nalerna y 1y2 ändras från 01 till 10, vilket sker enligt 01 ➔ 11 ➔ 10. Under ändringen av utsignalerna uppkommer alltså mellanliggande utgångs­ värden. Fenomenet brukar benämnas kapplöpning (eng. race) och kan inte undvikas när mer än en utsignal skall ändras. I detta fall skall två utsignaler ändra värde och en av utsignalerna komrner alltid att ändra sig före den an­ dra, vinna kapplöpningen, i detta fall utsignal y 1. Med en annan konstruk­ tion av kretsen så skulle ändringen O1 till 10 lika väl kunnat ske enligt 01 ➔ 00 ➔ 10. Kapplöpning kan alltså inte undvikas när mer än en utsignal skall ändras och om det ställer till problem i en krets, så får det lösas genom att kretsen konstrueras om så att en ändring av en insignal alltid resulterar i ändring av högst en utsignal.

170

© Studentlitteratur

4.6 Adderare



rare

Adderaren är en mycket viktig kombinationskrets, som förekommer i bl.a. fickräknare, datorer, mikrostyrkretsar och signalprocessorer. Den är ''kä1·11an'' i Aritmetiska enheten (eng. Arithmetic Unit, AU), i vilken utförs aritmetiska operationer addition, subtraktion, multiplikation och division. En adderare som kan bilda sumn1an x + y = s = (s0_ 1 , . . . , s 1 , s0) av två binära tal x = (x0_ 1 , . . . , x 1 , x0) och y = (y0_ 1 , . . . , y 1 , y0) är en kombinations­ krets med 2n insignaler och n utsignaler enligt figuren nedan. Den skulle kunna konstrueras enligt tidigare som ett två-nivå OCH-ELLER-nät, NAND-NAND-nät e.dyl, men redan för relativt få bitar hos de binära talen som skall adderas får detta nät en sådan komplexitet att det inte är möjligt att realisera kretsen med två nivåer. Ett två-nivå-nät karakteriseras av att det är mycket snabbt. Gör vi avkall på snabbheten och ökar djupet, så kan kom­ plexiteten fås ned till en acceptabel nivå, ''tid är pengar''. Additionsproces­ sens iterativa natur, dvs att samma förfarande upprepas för varje position i talet, bildande av en sum1nasiffra och en minnessiffra enligt additions­ exemplet nedan, kan utnyttjas för uppbyggnad av en adderare.

.

Yn-1 •••

y

Y1 Yo

•••

Adderare n bitar Adder n •••

Figur 4.43 Adderare - kombinationskrets.

© Studentlitteratur

17 1

4 Kombinationskretsar

Additionen av de två 8-bitars talen 10011010 + 01011011 kan utföras en­ ligt

X

1

1-

1 -1-

0 0 1 1

0 1

0

y +O 1 0 1 1 0 1 1 s 1 1 1 1 Lr- 1 0 1

-

1 5 4 + 9 1 2 4 5

Minnessiffra (eng. carry) inträffar för 1+1 = 102 och för 1+1+1 = 112 , och behandlas på samma sätt som i det decimala talsystemet. Adderaren kan således byggas upp av ett antal likadana delnät, s.k. helad­ derare (eng. full adder, FA). Delnäten benämnes heladderare p.g.a. att näten även adderar föregående minnessiffra, ett nät som bara adderar x och y bru­ kar benämnas halvadderare (HA). Adderaren är uppbyggd för att bara kunna addera två tal och så konstrueras adderare normalt. Addition av flera tal utförs genom upprepade additioner och lagring av mellanresultat.

Xo

xn-1 Y n-1

FA







Yo

FA

Figur 4.44 Adderare uppbyggd med heladderare (FA).

En heladderare kan konstrueras på vanligt sätt som en kombinationskrets med två nivåer, enligt figuren nedan. Ur Kar·naughdiagrammen erhålles

Heladderaren uppbyggd med NAND-grindar visas i figur 4.46 nedan. 172

© Studentlitteratur

4.6 Adderare

x. Y· I

I

0 0 0 1 1 1 1

c.I

FA

s.I

I

0 1 1 0 0 1 1

Y. c.

I

I

x. y. c.

I

Ci+1 Si

I

._..

1 0 1 0 1 0 1

0 0 1 0 1 1 1

1 1 0 1 0 0 1

x.

0

00

01

11

10

0

0

1

0

0

1

1

1

0

r 1 "'

I

'-

r .... '- 1

r

0

,J

r 1" '-

0

,J

'- 1

,J

.... ,J

0

s.

I

Figur 4.45 Funktionstabell och Karnaghdiagram för heladderaren (FA).

x.

I

1

1 �

& 1

&

-

c.I

& -

&

& ....

---

&

&

1

&

....

& I

s.

I

Figur 4.46 Grindnät NAND-NAND till heladderaren (FA).

© Studentlitteratur

1 73

4 Kombinationskretsar

För en adderare uppbyggd med kaskadkopplade heladderare enligt princi­ pen i figur 4.44 är antalet grindnivåer är proportionellt mot antalet bitar. Om adderaren realiseras med heladderare uppbyggda med grindar enligt figur 4.46 ovan, blir längsta signalvägen c 0 ➔ c1 ➔ ... ➔ c0_ 1 ➔ s0_ 1 , där sig­ nalen har att passera inte mindre än (n - 1 ) ·2 + 3 = 2n + 1 grindnivåer. Om fördröjningen per grind är exempelvis 2 ns, så tar det för en adderare med 64 bitar, 1 29 ns från det att insignalema x och y applicerats tills summan s bil­ dats. Den kritiska signalen i adderaren är alltså minnessiffran som måste transporteras hela vägen från LSB till MSB. Med speciella nät, s.k. carry­ acceleratorer (eng. look-ahead carry generator), kan sista minnessiffran för en grupp av heladderare bildas betydligt snabbare än i den vanliga adderaren. Principen illustreras i figuren nedan.

Carryaccelerator

Ca

- FA - FA - FA - FA

FA

----1

FA

---t

FA

---t

FA

Figur 4.47 Adderare för 8 bitar försedd med carryaccelerator.

Antag att car·ryacceleratom i figuren ovan är realiserad i ett grindnät med två nivåer. Maximala antalet nivåer i adderaren blir då 1 1 , ty signalvägen c0 ➔ c 1 ➔ c2 ➔ c3 ➔ s3 har 9 nivåer och c0 ➔ c4 ➔ c5 ➔ c6 ➔ c7 ➔ s7 har 1 1 nivåer. Utan carryacceleratom blir maximala antalet nivåer 1 7. Vid större antal bitar kan flera c acceleratorer användas. Adderaren är en kritisk komponent i en dator. I den utförs alla aritmetiska operationer, inte bara addition utan även subtraktion, multiplikation och division. Subtraktion utförs nämligen, som vi skall se i nästa sektion, som addition. Multiplikation utförs som ett antal additioner och division som ett antal subtraktioner, dvs. ett antal additioner. För att aritmetiska operationer skall kunna utföras snabbt i en dator är det sålunda viktigt att adderaren är snabb.

1 74

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)









I denna sektion skall vi studera a1·itmetik med n-komplementet och speciellt a1·itmetik med 2-komplementet, representation av negativa tal och BCD­ a,·itmetik. Endast addition och subtraktion av heltal kon1mer att behandlas. Vi skall studera uppbyggnaden av en Aritmetisk Enhet och en Logisk Enhet och avslutningsvis skisseras en "tmetisk Logisk Enhet (ALU).

Aritmetik med n-komplementet

Addition och subtraktion av binära heltal berördes kort i kapitel 1. Låt oss börja med att visa en subtraktion ''på vanligt sätt'' av två 8-bitars tal. Talen i den fortsatta framställningen är normalt binärtal, dock förekommer ibland i texten decimaltal, men av sam1nanhanget bör det framgå vilken typ av tal som avses. I vissa fall anges för tydlighets skull talets bas som index, exem­ pelvis 2 1 0 = 102 (decimaltalet 2 är lika med binärtalet 10). Subtraktion Subtraktionen av de två 8-bitars talen 10001001 - 01010100 kan utföras enligt nedan

ro ro ro 1 0 x t" O o o i-- o o 1 y -0 1 0 1 0 1 0 0 s O O 1 1 0 1 0 1

-

10 ,-- 3 7 8 4 5 3

Lånesiffra (eng. borrow) behandlas på samma sätt som vid subtraktion av decimala tal. I det decimala talsystemet med basen 10 lånar man en enhet från positionen till vänster om den aktuella positionen, som då blir värd 10 gånger så mycket då den flyttas ett steg åt höger. I det binära talsystemet med basen 2 lånar man också en enhet från positionen till vänster, som då blir värd 2 gånger så mycket då den flyttas ett steg åt höger. Oavsett talets bas b, så lånar man alltså alltid 1Ob. © Studentlitteratur

175

4 Kombinationskretsar

Liksom för addition utförs subtraktion av bara två tal i taget. Subtraktion av flera tal utförs genom upprepade subtraktioner och lagring av mellanre­ sultat. Subtraktionsenheter konstrueras normalt inte för att utföra subtraktion en­ ligt principen ovan. Subtraktion utförs istället såsom en addition!, såsom addition av det s.k. 2-komplementet till talet som skall subtraheras. Om det ur kretssynpunkt är enkelt att realisera 2-komplementet, vilket vi nedan skall se är fallet, är det uppenbart fördelaktigt att utföra subtraktion på detta sätt, eftersom då en additionsenhet kan användas för både addition och sub­ traktion, och inte nog med det, utan eftersom multiplikation är ett antal ad­ ditioner och division är ett antal subtraktioner, så kan alltså alla fyra räknesätten utföras i en additionsenhet.

2-komplementet till ett binärtal bildas enligt regeln: 1 . Invertera samtliga bitar i talet.

(4. 1 0)

2. Addera 1 till det inverterade talet. Av definitionen (4. 1 0) ovan inses att det ur kretssynpunkt bör vara relativt enkelt att realisera 2-komplementet. För realisering av steg 1 krävs bara lika många inverterare som bitar i talet, och för realisering av steg 2 kan ettan adderas i den minst signifikanta positionen i additionsenheten i t.ex. ingången för minnessiffran c 0 .

Exempel 4.13 Bilda 2-komplementet till binärtalet 0 1 0 1 0 1 00. Lösning

1 1 1 0 1 0 1 0 1 1 + 1 1 0 1 0 1 1 0 0

steg 1 steg 2



Alternativ regel ·�ör att bilda 2-komplementet 1 . Leta upp den minst signifikanta ettan i binärtalet.

(4. 1 1 )

2. Invertera alla bitar till vänster om denna.

176

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

Att denna regel ger samma resultat som regel 4.10 inses lätt. Nollorna till höger om den minst signifikanta ettan kommer i steg 1 att inverteras och bli ettor, men kommer sedan åter att bli nollor vid additionen av ettan i steg 2. Minnessiffran vid additionen av ettan i steg 2 kommer att ''dö ut'' vid den minst signifikanta nollan i det inverterade talet, dvs vid den minst signi­ fikanta ettan i det ursprungliga talet, som alltså åter blir en etta. Siffrorna till vänster om denna etta förblir inverterade. Denna princip att bilda 2-komple­ mentet används inte vid realisering av en additions-/subtraktionsenhet, utan då används principen i regel (4.10), men den alternativa regeln (4.11) är lämplig att använda då man snabbt i huvudet skall bilda 2-komplementet.

Exempel 4. 14 Utför subtraktionen 10001001 - 01010100 som utfördes på ''vanligt'' sätt ovan, som addition av 2-komplementet. Lösning med 2N). 1 1 0 0 0 1 0 0 1 + 1 0 1 0 1 1 0 0 + 0 0 1 1 0 1 0 1 1

20 1010 100

Minnessiffran som erhålles vid additionen av de två mest signifikanta siff­ rorna ingår ej i resultatet. Som synes blir resultatet detsamma som vid den ''vanliga subtraktionen''. 0

Subtraktion genom addition av 2-komplementet verkar kanske så här långt vara trolleri med siffror, men bakgrunden är ganska enkel, som vi skall se i det följande. För att formellt bevisa subtraktion genom addition av 2-komplementet, ger vi nu en rent aritmetisk definition av 2-komplementet.

© Studentlitteratur

177

4 Kombinationskretsar

Subtraktionen M - N av två n-bitars binärtal M och N kan utföras som additionen av 2-komplementet, ty M - N= M - N + O = M - N + 2° - 2° = M + (2° - N) - 2° 2-komplementet till N

minnessiffran som stryks i resultatet

2-komplementet till 8-bitars binärtalet 1 0 1 0 1 0 1 1 i exemplet 4. 14 ovan bil­ dat enligt definition 4. 1 2 blir: 21010101 1

= 2 8 - 10 1 0 1 0 1 1 = 1 00000000 - 1 0 1 0 1 0 1 1 = ( 1 1 1 1 1 1 1 1 + 1) - 1010101 1 = ( 1 1 1 1 1 1 1 1 - 1010101 1) + 1 steg 1 i def (4. 10)

steg 2 i def (4. 10)

Inverteringen motsvaras här alltså av ( 1 1 1 1 1 1 1 1 - 1 0 1 0 1 0 1 1 ), dvs för varje siffra i talet bildas '' 1 minus siffran'', vilket benämnes I -komplementet. (Ob­ servera ovan att 2 8 är ett 9-bitars tal !). Vi ser alltså att definitionerna 4. 1 0 och 4. 1 2 är ekvivalenta. Definitionen 4. 1 2 gäller även för bråktalsdelen till ett binärtal. Exempel 4. 15 Bilda 2-komplementet till talet 0. 1 0 1 1 0 1 1 0 (obs ! talet har en heltalssiffra). Lösning

20. 1 0 1 1 0 1 1 0

= 2 1 - 0. 1 0 1 1 0 1 1 0 1 0.00000000 - 0. 1 0 1 1 0 1 1 0 = ( 1 . 1 1 1 1 1 1 1 1 + 0.0000000 1 ) - 0. 1 0 1 1 0 1 1 0 1 . 1 1 1 1 1 1 1 1 - 0. 1 0 1 1 0 1 1 0 + 0.0000000 1 1 .0100 1 00 1 + 0.0000000 1 1 .0100 1 0 1 0 0

1 78

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

Exempel 4.16 Utför subtraktionen 0.11101011 - 0.10110110 = 0.00110101 som addition av 2-komplementet. Lösning

0.1 1 1 0 1 0 1 1 + 1.0 1 0 0 1 0 1 0 -l- 0. 0 0 1 1 0 1 0 1

2

0.10110110



2-komplementet till 2-komplementet till ett binärtal ger tillbaka det ur­ sprungliga talet, dvs 2 2

( N)

ty

2

=N

(4.13)

( 2N) = 2° -

(2° - N) = N

Komplementaritmetik är inte förbehållet det binära talsystemet, utan kan användas för vilken bas som helst. Sålunda kan i det decimala talsystemet aritmetik utföras med J 0-komplementet enligt följande.

1

= 10

°

till ett decimaltal N med n heltalssiffror definieras: -N

(4.14)

Subtraktionen M - N av två n-siffrors decimaltal M och N kan utföras som addition av 10-komplementet, ty M-N =M-N+O = M - N + 10° - 10° = M +( 10° - N) - 10° 10-komplementet till talet N

minnessiffran som stryks i resultatet

10-komplementet till ett decimaltal bildas enligt regeln: 1. Ersätt varje siffra i talet med 9-komplementet till siffran, dvs ''9 minus siffran''.

(4.15)

2. Addera 1 till det så erhållna talet. © Studentlitteratur

179

4 Kombinationskretsar

Exempel 4.1 7 Bilda 10-komplementet till 5-siffrors decimaltalet 17396 enligt definition 4.14. Lösning

1 017396

= 105 - 17396

= 100000 - 17396 = ( 99999 + 1) - 17396 = ( 99999 - 17396) + 1 = 82603 + 1 = 82604



Vi ser av exemplet ovan att definitionerna 4.14 och 4.15 är ekvivalenta.

Exempel 4.18 Utför subtraktionen 7492 - 3879 = 3613 som addition av 10-komplementet. Lösning

7 4 9 2

+ 6 1 2 1

-l- 3 6 1 3

103879



Representation av negativa tal Positiva och negativa tal brukar ju markeras med plustecken (+) respektive minustecken (-), oftast sätter man inte ut plustecknet utan använder konven­ tionen att inget tecken markerar positivt tal. I digitaltekniken där tal repre­ senteras med de binära siffrorna O och 1, måste också talets tecken repre­ senteras med dessa siffror, med en teckenbit (eng. sign bit), som naturligt placeras längst till vänster i talet. Normalt används representationen tecken­ bit O för positiva tal och teckenbit 1 för negativa tal. Undantag är s.k. ''binär-offset-representation'', där det är tvärtom. Det vore nu naturligt att låta bitarna till höger om teckenbiten utgöra talets belopp, s.k. ''tecken-belopp-representation''. Normalt används emellertid inte denna representation i aritmetiska sammanhang p.g.a. att den leder till en relativt komplicerad realisering av en additions-/subtraktionsenhet. Efter vad som tidigare sagts om fördelen med att utföra subtraktion som addition av 2-komplementet, inser man kanske att det är lämpligare att låta negativa 1 80

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

tal representeras som 2-komplementet till motsvarande positiva tal (inklu­ sive teckenbiten).

Låt oss som exempel anta att vi har 8 bitar till vårt förfogande för att skapa ett talområde omfattande positiva och negativa heltal. Med 8 bitar är det -128 till +127. I tabellen nedan visas några heltal i detta talområde där de negativa talen representeras som 2-komplementet till motsvarande positiva tal. Tabell 4.11 : Ta/område -128 till + 127 med 8-bitars tal.

Decimaltal Binärtal

+ 1 27 0 1 1 1 1 1 1 1 + 1 26 0 1 1 1 1 1 10 + 1 25 0 1 1 1 1 101 • • •

+4 +3 +2 +1 0 -1 -2 -3

-4 • • •

. 1 25 1 26 1 27 1 28

• • •

00000 100 0000001 1 00000010 00000001 00000000 11111111 1 1 1 1 1 1 10 1 1 1 1 1 10 1 1 1 1 1 1 100 • • •

1000001 1 10000010 10000001 10000000

Talområdet ovan med heltalen -128 till +127 förekommer exempelvis i pro­ gramspråket C, med datatypen benämnd signed char och i programspråket Java, med datatypen benämnd byte. Med de negativa talen representerade som 2-komplementet till motsvarande positiva tal kan de behandlas på exakt sam1na sätt som de positiva talen, de kan adderas på vanligt sätt och subtraheras genom addition av 2-komple­ mentet. Nedan visas några exempel på operationerna addition och subtrak© Studentlitteratur

1 81

4 Kombinationskretsar

tian av positiva och negativa tal i talområdet -128 till +127 hämtade ur tabellen ovan. (Håll isär operationen och talets tecken !).

Tabell 4.12: Exempel på addition och subtraktion i ta/området -128 till +127

Operation addition

1 27 -2 1 25 1 25 + - 1 28 -3 3 + -3 0 -1 + -2 -3 +

01 1 1 1 1 1 1 1 1 1 1 1 1 10 101 1 1 1 101 01 1 1 1 101 + 10000000 1 1 1 1 1 101 0000001 1 + 1 1 1 1 1 101 100000000 11111111 + 1 1 1 1 1 1 10 1 1 1 1 1 1 101 +

Operation subtraktion

2 -1 3 - 1 27 - -2 - 125 2 - 1 27 - 1 25 - 1 00 - 100 -200 (< - 1 28 !) -

00000010 + 0000000 1 0000001 1

10000001 + 0000001 0 1000001 1

00000010 + 1000000 1 1000001 1 +

1001 1 100 1001 1 100 100 1 1 1000

(2 1 1 1 1 1 1 1 1 ) ( 2 1 1 1 1 1 1 10)

< 201 1 1 1 1 1 1) ( 201 100 1 00)

Låt oss när·mare analysera uppkomsten av minnessiffra och vad som indik­ erar att talo1nrådet överskrids vid additioner och subtraktioner. - Ett nega­ tivt tal M betecknas som -M, vilket alltså är 2-komplementet till M, dvs. = nedan !). Addition Resultatet inom ta/området 1 . M + N > 0: ingen minnessiffra.



2. M + -N > 0: M + -N = M + (2n - N) = 2n + (M - N) = (M - N): minnessiffra.

3 . M + -N < 0: M + -N = M + (2n - N) = 2n - (N - M ) = -(N-M) : ingen minnessiffra. 4. -M + -N < 0: -M + -N = (2n - M) + (2n - N) = 2° + (2n - (M + N)) = -(M + N): minnessiffra Resultatet utanför talområdet

För att detta skall kunna inträffa måste båda talen ha samma tecken, antingen båda talen pos­ itiva eller båda talen negativa.

1 82

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU) 1 . M + N: ingen minnessiffra, men minnes siffra till teckenbiten, så att resultatet utanför tal­ området även får felaktigt, negativt tecken.

2. -M + -N: minnessiffra, men ingen minnessiffra till teckenbiten, så att resultatet utanför tal­ området även får felaktigt, positivt tecken.

Subtraktion Resultatet inom ta/området 1.

M - N > 0: M - N = M + (2n - N) = 2n + (M - N) = (M - N) : minnessiffra.

2. M - N < 0: M - N = M + (2n - N) = 2n - (N - M) = -(N - M): ingen minnessiffra. 3. M - -N > 0: M - -N = M + (2n - (2n - N)) = (M - N): ingen minnessiffra. 4 . -M - -N < 0: -M - -N =(2n -M) + (2n - (2n - N)) = 2n - (M - N) = -(M - N):ingen minnessiffra. Resultatet utanför ta/området

För att detta skall inträffa måste talen ha olika tecken. 1 . M - -N: ingen minnessiffra, men minnessiffra till teckenbiten, så att resultatet även får felaktigt tecken. 2. -M - N: minnessiffra, men ingen minnessiffra till teckenbiten, så att resultatet utanför tal­ området även får felaktigt tecken.

Identifiera de tidigare additions- och subtraktionsexemplen bland fallen ovan och gör även själv exempel till de fall som inte förekommer bland ex­ emplen. Programspråket Java innehåller ett antal olika datatyper för heltal. De nega­ tiva heltalen representeras som 2-komplementet till motsvarande positiva heltal. Datatypernas antal bytes och talområde visas nedan.

Datatyp byte short int long

Antal bytes 1 2 4 8

Talområde -128 till +127 -32768 till + 32767 1 -2147483648 till +2147Ll83647 18 18 ;..--: -9· 10 till :-:: + 9· 10

BCD-aritmetik Aritmetiska operationer i en dator utförs norn1alt i binäraritmetik enligt ovan, med talen representerade som rena binärtal. Vid in- och utmatning av tal i digitala system representeras ofta talets siffror i BCD-kod (Binary Coded Decimal), se tabell 1.3 i kapitel 1. Efter inmatning av tal i BCD-kod utförs omvandling till ren binärkod, varefter aritmetik enligt ovan kan ske. Före utmatningen av talen utförs omvandling till BCD-kod, varefter ut© Studentlitteratur

183

4 Kombinationskretsar

matning och presentation kan ske. I vissa enstaka fall förekom1ner dock att man gör a1·itmetik med talen i BCD-kod, dvs man gör decimalaritmetik. Låt oss studera vilka problem man då måste beakta. Antag att decimaltalen 27 och 54, representerade i BCD-kod som 0010 0111 respektive 0101 0100, skall adderas som två 8-bitars tal med summan bibehållen i BCD-kod. Additionen av de två 8-bitarstalen utförd på vanligt sätt, blir då 1 0 0 1 0 0 1 1 1 + 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1

1

2 7

+ 5 4 8 1

Additionen av de två BCD-talen ovan ger som synes ej det önskade resulta­ tet 1000 0001, talet 81, utan istället 0111 1011, talet ''sjuttioelva''�· Uppen­ bart uppstår ett felaktigt resultat då additionen av två BCD-siffror ger en summa som är större än 9, dvs ej är en BCD-siffra. Det felaktiga resultatet kan emellertid justeras enligt nedan. Antag att sumrnan av två BCD-siffror blir 1010, dvs talet tio. I BCD-kod skall sum1nan egentligen vara 0001 0000, decimaltalet 10. Det korrekta re­ sultatet kan erhållas om till det felaktiga resultatet adderas talet 6, ty 1010 + 0110 = 1 0000. Uppenbart gäller alltså att talet 6 skall adderas till resultatsiffran om binärtalet för denna är större än 9 och mindre eller lika med 15. Emellertid skall talet 6 även adderas om binärtalet för summan av de två BCD-siffroma är större än 15, dvs då det uppstår en minnessiffra vid additionen. Om exempelvis BCD-siffroma 8 och 9 adderas blir resultatet 17 i ren binärkod, dvs 1 0001, och även i detta fall skall alltså talet 6 adderas, vilket ger 1 0001 + 0110 = 1 0111, dvs det korrekta resultatet 1 7 i BCD­ kod. Sammanfattningsvis skall alltså justering av resultatet vid addition av två tal i BCD-kod göras, då binärtalet för resultatsiffran är större än nio eller då en minnessiffra uppstår vid additionen av de två siffrorna. I datorer finns normalt en instruktion för att justera resultatet av en BCD-addition enligt • • pr1nc1pen ovan. Subtraktion av två tal i BCD-kod kan utföras som en addition av 10-kom­ plementet, som tidigare behandlats, varvid då 9-komplementet till varje sif­ fra bildas med hjälp av en tabell. Justering av resultatet av additionen görs sedan enligt regeln ovan.

1 84

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

------------------------------ -

Adderaren behandlades i sektion 4.6. Låt oss införa symbolen nedan för en n-bitars adderare.

•••

•••

xn-1

Yn- 1

X1 Xo

Adderare n bitar

Y1 Yo

cin

Adder n 8 n-1

i-----

8 1 80

•••

Figur 4.48 Symbol för en n-bitars adderare.

En Aritmetisk enhet (eng. Arithmetic Unit, AV) som kan utföra addition och subtraktion av två n-bitars tal, skall nu konstrueras. Vi använder symbolen nedan.

•••



••

Yn-1

Y1 Yo

su b_add Aritmetisk enhet n bitar � cut

AU

Sn-1

i---

8 1 So

•••



Figur 4.49 Symbol för en Aritmetisk enhet (AU).

Insignalen sub_add bestämmer om operationen skall vara addition eller subtraktion enligt addition, sub_add = 0 s=x+y ⇒ sub_add = 1

© Studentlitteratur



subtraktion,

S

X-

y

185

4 Kombinationskretsar

Utsignalen c01 är samma minnessiffra som i adderaren i figur 4.47. Utsig­ nalen OJ (eng. overflow), indikerar om talområdet överskrids, (Of = 1), eller inte överskrids, (Of = 0), vid addition och subtraktion av tal i ett talområde med både positiva och negativa tal. Vi kommer längre fram att studera hur denna signal skall realiseras. I avsnittet · tmetik såg vi hur subtraktion kan utföras som addition av 2-komplementet. I ·tmetiska enheten kan subtraktionen s = x - y utföras Aritmetisk enhet innehålla en adderare för att realisera addition och sub­ traktion. Vidare måste finnas en enhet som kan bilda 2-komplementet till y vid subtraktion. Vid addition, s = x + y, skall y gå direkt in till adderaren, medan vid sub_ Enligt tidigare bildas ju 2-komplementet genom invertering av samtliga bitar och efterföljande addition av talet 1. Additionen av talet 1 kan göras i adderaren, ingång cin, som ej används. terstår alltså vid bildande av 2-komplementet problemet att kunna invertera y. Detta kan göras med XOR-grindar, som ju kan användas som styrbara inverterare. I figuren nedan visas uppbyggnaden av ·tmetiska enheten. Där framgår att sub_add = 0 gör att y går opåverkad genom XOR-grindar·na och att c in = 0 medförande s = x + y, medan sub_add = 1 gör att y inverteras i XOR-

•••

Of

•••

sub add

Overflowindikator •••

t

= 1 =1

=1

cut

•••

Adderare n bitar Adder n

'

cin

••• •••

Figur 4.50 Aritmetisk enhet (AU).

1 86

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

Vi skall nu studera uppbyggnaden av overflow-indikatom, som genererar signalen Of - I avsnittet Aritmetik utreddes i detalj förutsättninga1·na för att talområdet skall överskridas och vad som då händer med minnessiffran cn . Där konstaterades att talområdet kan överskridas vid addition bara om båda talen har samma tecken, antingen båda talen positiva eller båda talen nega­ tiva, och vid subtraktion bara om talen har olika tecken. Om dessa förutsätt­ ningar är uppfyllda inträffar overflow, om teckenbiten sn - l i resultatet s inte har samma värde som teckenbiten xn - l i talet x. Funktionstabellen för sig­ nalen Of blir enligt nedan. Analysera noga värdet hos OJ för de olika insig­ nalkombinationema till overflow-indikatom.

sub add 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

yn-1 Of 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1

s n_1 xn_1

sub_add

s n_1

xn- 1 Yn-1

00

01

11

10

00

0

0

1

0

01

1

0

0

0

11

0

1

0

0

10

0

0

0

1

Of

Figur 4.51 Funktionstabell och Karnaughdiagram för funktionen OJ ( Overflow).

Ur Ka1·naughdiagram1net fås booleska uttrycket för Of till Of =

© Studentlitteratur

sub_add"sn_1 "xn-1 Yn-1 + sub_add"sn- l xn -1 ,,Y n-1 ,, + sub_add Sn - lXn-l ,,Yn- l + sub_add Sn-1 "xn- l Yn-1 "

1 87

4 Kombinationskretsar

•••

•••

Logisk enhet n bitar LU

2n- 1

2 1 2o

m0 _

•••

Figur 4.52 Symbol för Logisk enhet (LU).

En Logisk enhet (eng. Logic Unit, LU), symbol enligt figuren ovan, som kan utföra de logiska operationerna Invers, OCH, ELLER och XOR på två n-bitars ord ska konstrueras. Logiska operationen skall väljas med två mod­ signaler m0 och m 1 enligt tabellen nedan. Tabell 4. 13: Logiska operationer bestämda med signalerna m 1 och m0.

m1mo 0 0 1 1

0 1 0 1

Logisk operation ,,

z

X

Z

XA

y z x�y Z Xvy

(Invers) (OCH) (XOR) (ELLER)

Logiska operationerna skall utföras bitvis (eng. bitwise) på n-bitars oper­ anderna x och y enligt Invers: OCH: XOR:

Z·1

= X·1 � Y·1

ELLER:

188

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

Exempel 4. 19 Utför bitvisa logiska operationer OCH, ELLER och XOR på de två 8-bitars orden x= 10110101 och y= 00101110. Lösning X

y z

10110101 " 00101110 00100100

V

10110101 00101110 10111111

10110101 � 00101110 10011011 0

Med de bitvisa logiska operationerna kan bitar i ett ord nollställas, ettställas eller inverteras. Nollställning av bitar i x sker med operationen OCH, där nollor placeras i operanden y på de platser där x skall nollställas och ettor på övriga platser i operanden y där x inte skall påverkas. Ettställning av bitar i x sker med operationen ELLER, där ettor placeras i operanden y på de platser där x skall ettställas och nollor på övriga platser i operanden y där x inte skall påverkas. Invertering av bitar i x sker med operationen XOR, där ettor placeras i oper­ anden y på de platser där x skall inverteras och nollor på övriga platser i op­ eranden y där x inte skall påverkas.

Eftersom de logiska operationerna utförs bitvis kan Logiska enheten byggas upp av n likadana delnät, enligt figuren nedan, betecknade FL (Full Logic) i analogi med heladderarna FA.

Xo Yo

FL

•••

FL

FL

Figur 4.53 Logisk enhet (LU).

© Studentli tteratur

189

4 Kombinationskretsar

x.IyI. 01 11

00 00

m 1 mo

FL

Z-1

01

1 ..

0

..

1

0

0

1

11

0

1

1

10

0

1

0

10

. Invers xi ·

0 0

..

... ..

.

.. ..

.

.. ..

...

..

1

.. ..

.

..

.

..

.

.

ELLER x. V Y·

· ·· ·· •

• •



I

I

1

z. I

Figur 4.54 Symbol och Kamaughdiagram för en FL.

Ur Kar·naughdiagrammet ovan erhålls booleska uttrycket för z i till zi = m 1 mo xi + ,

,

,

,

XiYi + m 1 xi Yi + m 1XiYi

,

I Logiska enheten (LU) i figur 4.53 ovan finns inget problem med transport av någon ca11y som i ·tmetiska enheten, utan signalvägen är endast ver­ tikalt i schemat från xi , Yi , m 1 , m0 till zi och en FL kan realiseras i ett två­ nivå-nät med inverterare till insignalema.

y

X

•••

•••

Flaggor ,---Of

1 _Y •-sub add

C

z p

Aritmetisk Logisk Enhet ALU

s

A L

•••

Figur 4.55 Symbol för Aritmetisk Logisk Enhet (ALU)

1 90

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

En Aritmetisk Logisk Enhet (eng. Arithmetic Logic Unit, ALU) är en viktig del i varje dator. Den ingår i Centralenheten (eng. Central Processing Unit, CPU), mikroprocessorn, ''hjärnan'' i datorn, som exekverar programmet. Nedan skall skisseras uppbyggnaden av en U, som bör påpekas inte visar en verklig ALU utan bara en möjlig realisering. Funktionen hos ALUn beskrivs i tabellen nedan (x = don"t care). De vanliga operationsmoderna för logiska och ar·itmetiska operationer har utökats med två moder, ökning (eng. increment) med 1 och minskning (eng. decrement) med 1 . Orsaken är att dessa två speciella operationer förekommer så ofta i datorprogram (t.ex. i loopräknare) att det är motiverat att ha dem i en ALU. I tabellen längst till höger antyds med s.k. mnemonics, tänkbara namn för de olika operationerna i CPUns instruktionsrepertoar. Mnemonics, förkort­ ningar lätta att minnas (grek. mneme = sv. minne), bildar assemblyspråket, det maskinnära programspråket.

Tabell 4. 14: Operationsmoder för ALU

1 y

A L

sub add

0 0 0 0

X

X

X

X

X

X

X

X

1 1 1 1

0

1

0

1

0 0

1 1

m 1 l11o Operationsmod ,, Invers 0 0 u X OCH 0 1 u X /\ Y 1 0 u x ffi y XOR 1 1 u xvy ELLER X X Addition u x+y X X Subtraktion u X y •• X X Okning med 1 u x+l X X Minskning med 1 u X 1



mnemon1c

COMX ANDXY XORXY ORXY ADDXY SUBXY INCX DECX

I figuren nedan visas blockschemat för U:n. Där ingår naturligt en Arimetisk Enhet (AU) och en Logisk Enhet (LU) samt vidare också två multiplexrar som används för att bilda vägar för operanderna till och från AU:n och LU:n. Låt oss se lite när·n1are hur ALU:n fungerar. Insignalen A_L bestämmer om ALU:n skall utföra en logisk operation (A_L = 0) eller en aritmetisk operation (A_L = 1). Som framgår av block­ schemat så används signalen A_L som adress till en multiplexer vilken bil­ dar en dataväg antingen från LU:n eller från AU:n till ALUns utgångar u. Sålunda görs på operanderna x och y både en logisk och en aritmetisk ope­ ration, men resultatet från en av operationerna överförs till utgångarna u. © Studentlitteratur

19 1

4 Kombinationskretsar

De vanliga ar·itmetiska och logiska operationerna behöver ingen när·mare förklar·ing då de behandlats tidigare i samband med genomgången av AU:n och LU:n. Operationerna ökning med 1 och minskning med 1 utförs i ALU:n som x + y respektive x - y med operanden y = 1, vilket fås med insignalen l_Y = 1. I den övre multiplexern är signalen l _Y adress som väljer att till aritmetiska enheten antingen överföra operanden y (l_Y = 0) eller talet 1 (l_Y = 1 ). Utsignalerna Of, C, Z, P och S från ALU:n är s.k. flaggor, signaler som indikerar värdefulla uppgifter hos ALU:ns resultat u. Signalerna Of och C har redan berörts för AU:n. För de övriga statussignalerna gäller att Z (Zero) indikerar resultatet u = 0 (Z = 1 ) eller u "# 0 (Z = 0). Signalen P (Par­ ity) indikerar jämn par·itet, dvs. jämnt antal ettor i resultatet u (P = 1 ) eller udda paritet, dvs. udda antal ettor i resultatet u (P = 0). Signalen S (Sign) indikerar positivt resultat u (S = 0) eller negativt resultat u (S = 1). Samtliga dessa statussignaler realiseras enkelt. Signalen Z realiseras med en NOR­ grind med insignalerna u0 , u 1 , . . . , un- l , signalen P realiseras med XOR­ grindar, se sektion 4.9 och signalen S realiseras som S = un- l (teckenbit om talområde med positiva och negativa tal används). Efter figuren som visar ALU:n följer en figur som visar en enkel dator1no­ dell, där ALU:n är inplacerad i CPU:n. Vi avslutar denna sektion med att kort beröra datorns arbetssätt. Program och data ligger i minnet i form av binära ord. Programmet består av instruktioner som normalt utförs i tur och ordning. Instruktionen inne­ håller uppgift om vilken operation som skall utföras och på vilken operand operationen skall utföras. En CPU:s instruktionsrepertoar, som bestäms av tillverkaren av CPU:n, omfattar runt hundra olika instruktioner. Varje in­ struktion representerar normalt bara en mycket enkel operation, typ addera två operander, och varje problem som skall lösas i en dator måste slutligen brytas ned i ett program bestående av sådana enkla instruktioner av binära ord som konstituerar maskinspråket, det primitivaste programspråket och det enda språk som CPU:n begriper. I minnet i datormodellen i figuren ovan visas som exempel operationskoden för några fiktiva instruktioner och bredvid tillhörande mnemonic ur assem­ blyspråket. LDX och LDY står för LoaD (Ladda) register X respektive Y, ADDXY för ADDera register X till register Y. Datorn exekverar program­ met genom att CPUn hämtar (eng. fetch) en instruktion och utför (eng. exe­ cute) den, hämtar nästa instruktion och utför den osv.

192

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

•••

•••

0

01 •••

t t , .•• ··· 1 .... ·· 1 1 · · . . . ..

.

. . ..

...

•.

•••

O_ f -- Of . ·

C

- --

cut·



..

..

•••

..

o· oo ·•

Mux 2 .. 1 .

·

..

xn . .. .. .. ..

..

..

_Y 1 _______________1_ sub-add

.. ..

..

..

•••

•••

••• ..

..

..

..

sub add •1•---..... ·

...

. Aritmetisk enhet . · ..

AU

•••

•••

t

1

•••

-- _ --7

·· 0

MUX 2-1

·

z

•••

t t

.. ·· .. 1 1

x n · · ·. .·

O ..··O ··

1 __________ A_ _L

l < ------ --

_ P --- Paritetsnät

• • •



• •

=----............. --------+-+--t l ---4------------s

•••

u

Figur 4.56 Skiss till en Aritmetisk Logisk Enhet (ALU). -

© Studentlitteratur

1 93

4 Kombinationskretsar

· · Datormodell · · · · . .

Centralenhet CPU

.

I n/Ut-enheter 1/0

Minne

Databuss, Ad r ssbuss och Styrbuss

Program

: I nstruktioner -. LDX 1 00 1 01 1 0 LDY 1 1 0 1 01 1 0 ADDXY 000 1 1 0 1 1 STY 1 00 1 01 1 0

Data • ••

I

000000 1 1 00000 1 1 0 •••

I

• • •

I ntern buss

Statusregister (Flaggor)

Yn-1

•••

•••

Y1

...---

0

sub_add o

c

o 1-tt__ -­ 1 1'

Yo

1 -y

0 � -F_

o z__

000 1 1 0 1 1 Instru ktions­ register (IR)

00000 1 1 0 Reg ister Y y

Reg ister X 000000 1 1 X

Aritm etisk Logisk Enhet

ALU

lnstruktions­ m_1------4 0 _ a v kodare mo 0

A-L

o s__

1 '

.

•••

lnstruktionsräknare (IC) 1 1 1 1 0 1 1 000 1 000 1 1 Reg ister U 0000 1 00 1

I ntern buss

Figur 4.57 Datormodell.

1 94

© Studentlitteratur

4. 7 Aritmetisk Logisk Enhet (ALU)

En CPU innehåller alltid vissa fundamentala enheter. Dessa är, ett Instruk­ tionsregister, IR i vilket CPUn placerar instruktionens operationskod etter uthämtning från minnet, en Instruktionsräknare (eng. Instruction Counter, IC), äv. benämnd Programräknare (eng. Program Counter, PC) som håller reda på vilken instruktion i program111et som är i tur att exekveras, en In­ struktionsavkodare (eng. Instruction Decoder) som avkodar operations­ koden och sänder ut diverse styrsignaler till enheter i eller utanför CPUn så att den aktuella operationen utförs, en Aritmetisk Logisk Enhet (ALU) och några register för lagring av operander (i CPU:n ovan registren X, Y och U). I programexemplet ovan har instruktionerna LDX och LDY utförts, in­ nebärande att registren X och Y laddats med operanderna i dataarean i min­ net 00000011 respektive 00000110. Instruktionens ADDXY operationskod 00011011 har sedan hämtats och lagts i instruktionsregistret i CPU:n. Ut­ förande av denna instruktion går till så att instruktionsavkodaren sänder styrsignaler, se figuren, till ALU:n så att en addition utförs. Summan 00001001 hamnar i register U och överförs sedan till Y, eftersom X skulle adderas till Y. Statussignalerna vid operationen i ALU :n överförs till ett Sta­ tusregister (Flaggor), vars utsignaler överförs till instruktionsavkodaren, där de används vid villkorliga instruktioner som t.ex villkorliga hopp som JNZ (Jump if Not Zero), ''hoppa om resultatet inte var lika med noll''.

© Studentlitteratur

1 95

4 Kombinationskretsar



Informationsöverföring kan beskrivas med modellen sändare-kanal-motta­ gare nedan. Man tänker kanske närmast på tekniska sammanhang såsom telekommunikation el.dyl. när man ser modellen, men den kan appliceras på all form av informationsöverföring. Det kan exempelvis vara en person som säger något till en annan person, vilka är sändaren respektive motta­ garen och kanalen kan vara luften mellan mun och öra. Det kan också vara överföring av information mellan datorer, längre sträckor via telenätet eller kortare sträckor i lokala datanät. Det kan också vara överföringar av ord inne i själva datorn mellan olika enheter.

Sändare

Kanal

Mottagare

fel : 1 ➔ 0

1 01 1 01 00

1 01 1 0000

1 01 1 0000

Figur 4.58 Modell för informationsöverföring.

Vid informationsöverföringen kan fel inträffa. En störning i kanalen kan medföra att mottagaren får felaktig information. Det är då naturligtvis önsk­ värt att mottagaren kan upptäcka att fel inträffat. En vanlig felmodell som används vid överföring av binära ord är att antaga att bara två typer av fel kan inträffa, att en nolla felaktigt blir en etta eller att en etta felaktigt blir en nolla. I figuren ovan visas som exempel överföring av en byte där fel inträf­ far i en bit så att en etta blir en nolla. Om vilken byte som helst kan förväntas från sändaren, så kan mottagaren uppenbart inte upptäcka att ett fel inträffat. För att felupptäckt (eng. error detection) skall vara möjlig så måste de in­ formationsbärande orden hämtas ur en större mängd ord, så att ett fel alltid resulterar i ett icke informationsbärande ord, som då kan upptäckas. En enkel metod med vilken fel av typen ovan kan upptäckas är att använda s.k. paritetskontroll (eng. parity check). Denna metod innebär att de binära orden utökas med en överflödig, redundant (eng. redundant) bit, paritetsbit 196

© Studentlitteratur

4.8 Paritetskrets

(eng parity bit), enligt regeln att antalet ettor i det nya ordet (inklusive par­ itetsbiten) skall bli jämnt, s.k. jämn paritet (eng. even parity). Om jämn paritet används i exemplet ovan så blir pa,·itetsbiten en nolla eftersom antalet ettor i det ursprungliga ordet är jämnt. Informationsöverföringen sker då enligt figuren nedan, med paritetsbiten tillfogad längst till vänster.

Sändare

paritetsbit

0 1 0 1 1 01 00

jämnt antal ettor

Kanal

Mottagare

fel : 1 ➔ 0

0 1 0 1 1 0000

0 1 0 1 1 0000

udda antal ettor

Figur 4.59 Informationsöverföring med jämn paritet.

Felet i överföringen ovan gör att antalet ettor i ordet blir udda och motta­ garen, kan nu om han alltid räknar antalet ettor i de mottagna orden, upp­ täcka felet. Fel i en bit kan alltid upptäckas, medan fel i två bitar inte kan upptäckas. Sannolikheten för två fel är avsevärt mindre än sannolikheten för ett fel och det är normalt tillräckligt att kunna upptäcka enkelfel för att tillförlitligheten i överföringen skall bli god (egentligen kan alla fel av udda antal upptäckas). Jämn par·itet har använts ovan, men sändaren och motta­ garen kan lika bra komma överens om att alla ord alltid skall ha ett udda antal ettor, benämnt udda paritet (eng. odd parity). Tillägg av en paritetsbit innebär att totala antalet ord blir dubbelt så stort. I = ursprungliga 256 orden försedda med en paritetsbit för jämn paritet är en delmängd av mängden av samtliga 512 stycken 9-bitars ord. Denna delmängd utgör hälften av orden, den andra hälften utgör orden med udda pa,·itet. När det inträffar ett enkelfel i ett ord i den ena delmängden, så blir det felaktiga ordet ett ord i den andra delmängden och felet således möjligt att upptäcka, se figuren nedan.

© Studentlitteratur

1 97

4 Kombinationskretsar

udda antal fel jämnt antal fel ord med jämn paritet

ord med udda paritet jämnt antal fel

Figur 4. 60 Felbeteende för en ordmängd med jämn och udda paritet.

Par·itetskontroll medger alltså upptäckt av enkelfel, men inte rättning av fe­ let. Detta beror på att enkelfel i två olika ord kan resultera i samrna felaktiga ord. I exemplet i figur 4.5 8 ovan resulterade ett enkelfel i ordet 010110100 i det felaktiga ordet 010110000, vilket också erhålls t.ex. vid sändning av ordet 110110000 och ett enkelfel i biten längst till vänster, paritetsbiten. För att felrättning (eng. error correction) skall vara möjlig, så måste distansen mellan orden vara större. Distansen d(w 1 , w2 ) mellan två binärord w1 och w2 med lika många bitar, definieras som antalet positioner i vilka orden skiljer sig. Sålunda gäller för orden ovan O10110100 och 110110000 med paritetsbit, att distansen d(010110000, 110110000) = 2, se figuren nedan. För hela mängden av ord med jämn par·itet (liksom för hela mängden av ord med udda paritet) gäller att distansen mellan två ord är minst lika med 2 (var­ e·· ?. ) . 1or

1 1 01 1 0000

0 1 01 1 0 1 00 d=2

Figur 4. 61 Distansen d mellan orden 010110100 och 110110000.

198

© Studentlitteratur

4.8 Paritetskret.\'

---------------------------·-

Eftersom distansen mellan två ord i mängden av ord med jämn par·itet är minst lika med 2, så ger ett enkelfel i ett sådant ord inte ett ord i denna mängd utan ett ord med udda paritet, se figur 4.59 ovan, och felet således möjligt att upptäcka. För att ett enkelfel skall kunna rättas för en mängd av ord, så måste uppen­ bart distansen mellan två godtyckliga ord i mängden vara minst 3, ty då ger enkelfel i två olika ord aldrig sam1na felaktiga ord. Antag för enkelhets skull att vi har de två I-bitars orden O och 1, som skall förses med redun­ danta positioner så att det blir möjligt att rätta enkelfel. Detta kan enkelt ske genom att ordet O utökas med 00 till 000 och ordet 1 utökas med 11 till 111, vai·vid således distansen d(OOO, 111) = 3, se figuren nedan.

000 •---•---•---• 111 d=3

Figur 4.62 Distansen d mellan orden 000 och 111.

För den enkla koden omfattande bara de två orden 000 och 111 kan enkelfel rättas och dubbelfel upptäckas. De ursprungliga orden var alltså O och 1, som hade distansen 1, och för att kunna rätta enkelfel fick vi avbilda orden 0 och 1 på två ord i en större mängd, i detta fall på orden 000 respektive 111 med distansen 3 i mängden av 3-bitars ord, som innehåller 8 ord. Möjlighet till felupptäckt och felrättning kostar pengar - vid överföring och behandling av bitar i parallell form kostar det fler kretsar, större bussar etc., och vid överföring och behandling av bitar i serieforn1 kostar det tid, som ju också är pengar. Normalt får man av kostnadsskäl nöja sig medfelupptäck­ ande koder (eng. error detecting codes) och ev. möjlighet till begäran om sändning av ordet en gång till, denna gång kanske med lyckat resultat. En­ dast i avancerade sammanhang där man inte har möjlighet att upprepa sänd­ ningen kan man ha råd medfelrättande koder (eng. error correcting codes). Låt oss nu avsluta sektionen med vad som egentligen är rubriken för sektionen, en paritetskrets.

© Studentlitteratur

199

4 Kombinationskretsar

Vid behandlingen av XOR-grinden i kapitel 2 nämndes flera tolkningar av grindens funktion, bl. a. att ''utsignalen är 1 om och endast om ett udda antal av insignalema är 1''. För XOR-uttrycket nedan gäller att ''y = 1 om och endast om ett udda antal av variablerna xo,x1,...,xn-l är lika med 1''. y = XQ ffi X 1 � ... � Xn-1 Nedan visas en krets som realiserar funktionen y för n = 9 bitar. Kretsen, kan kontrollera pariteten för ett 9-bitars ord för udda pa1·itet (y = 1) eller jämn par·itet (y = 1). Kretsen kan också generera paritetsbit för ett 9-bitars ord va1·vid då funktionen y blir paritetsbit för jämn paritet och y par·itetsbit för udda pa1·itet. Kretsen har djupet åtta XOR-grindar plus en inverterare. En alternativ realisering av samma funktion med djupet fyra XOR-grindar och en inverterare visas nedan.

'

'

'

' '

'

' '

'

'

'

' '

'

' '

.:,

'

.

Figur 4.63 Kretsför 9-bitars udda/jämn paritetskontroll/paritetsgenerering.

•• do ----••••• ·• ==1•·_. . d1

. .· . · .· . · ·• .·•'-·.·

.·.. . ....

d2 �. •.•�=�1rr •• .. ·••-· · · ..�-­

d3

-1..____

d4 _..

ds ds

.r::· •

=�... 1r-·..........

......................

=1 ••

-

d7 _,___ ---

da -----------

Figur 4.64

200

Krets för 9-bitars udda/jämn paritetskontroll/paritetsgenerering - alternativ realisering med färre antal grindnivåer. © Studentlitteratur

4.9 Komparator för likhet

• ,

Ofta behöver man i digitala systemjämföra (eng. campare) två binära ord a = ('1n-l, ..., a 1, a0) och b = (b0_ 1, ..., b 1, b0) med avseende på ''likhet'' (=), dvs överensstäm1nelse i alla bitar, och om a och b är binärtal jämföra med avseende på ''mindre än'' ((i){ . . .. '

• .. .. ..

.. .

4 3 2 1



4

Realisera kombinationskretsen i ett minmalt NAND-NAND-nät. In­ signalerna inverser är tillgängliga. 4.9 En kombinationskrets Maxnumber med fem insignaler x1, x2, ..., x5 och tre utsignaler u0, u 1 och u2 skall realiseras i ett minimalt OCH­ ELLER-nät. Kretsen skall ge binärtalet u = (u2, u 1, u0) för högsta numret på den insignal som har värdet 0. Om ingen insignal är 0, skall kretsen ge u = 000. Exempel: Om x = (x5, x4, ,x3, x2, x1) = 10100, så skall utsignalen bli u = 100, dvs decimaltalet 4, eftersom högsta num­ ret på insignalen som har värdet O är fyra, x4 = 0. Insignalemas inver­ ser är tillgängliga. 4.10 x = (x3, x2, x1, x0) är decimala siffror O - 9 i BCD-kod. Realisera i en kombinationskrets funktionen z = 5·x, där z = (z 5, z4, z3, z2, z1, zo) är heltal i vanlig binärkod. Exempel: Om x = 0111, dvs siffran 7, så skall kretsen ge z = 100011, dvs talet 35, eftersom z = 5-7 = 35. - Realisera kombinationskretsen som ett minimalt OCH-ELLER-nät, under beaktande av grinddelning. Insignalemas inverser är tillgängliga. 4.11 Booleska funktionen f(x, y, z) = z(xy)/ + z/xy skall realiseras med NAND-grindar i tre nivåer. Insignaler till grindnätet skall vara x, y och z. Det är lätt att konstruera nätet med fem NAND-grindar. Visa att det går att konstruera nätet med endast fyra NAND-grindar.

204

© Studentlitteratur

••

4.10 Ovningsuppgifter

4.12 Visa att varje boolesk funktion av tre var·iabler kan realiseras i en SP­ forn1 med maximalt fyra produkttermer av tre va1iabler (Ledning: Analysera Karnaughdiagrammet!). 4.13 Realisera en 6-ingångars ELLER-grind med en 2-inångars NOR­ grind, en 3-ingångars NAND-grind och en 4-ingångars NOR-grind. Visa med logiska uttryck att den föreslagna kopplingen realiserar den önskade ELLER-operationen. Grind som skall realiseras: a >1 b C y • d e f

Tillgängliga grindar: - >1

&

>1 .,...

....

y = a+b+c+d+e+f

4.14 a) Realisera med två XOR-grindar och en NAND-grind, booleska funktionen f(w, x, y, z) = TT(5, 6, 9, 1 0) b) Realisera med två XOR-grindar och en 2-ingångars NOR-grind, booleska funktionen nedan. Grindnätet skall ha två nivåer. Till grindarna får anslutas variablerna och konstanterna O och 1 (variabler­ nas inverser är ej tillgängliga).

f(x, y, z) = L(4, 7)

4.15 En kombinationskrets Lower_�z som jämför tre tal x = (x 1, x0), y = (Y1, Yo) och z = (z1, z0) med avseende på relationen ''mindre än'' ( 1 -

=1

&

I

lnv

b) Realisera booleska funktionen f = a'b'c' + abcde i en PLD som innehåller flera grindnät enligt uppgift a), där alltså ut­ signalen kan anslutas som insignal till grindnäten. Använd så få nät som möjligt. 4.17 En jämförare, komparator, för två binära 2-bitars tal x = (x 1, x0) och y = (y 1, y0) skall realiseras i en PLD. Komparatom skall ha två utsig­ naler u 1och u0 för vilka skall gälla att

u 1u0 = 1 1 u 1u0 = 01 u 1u0 = 1 0

om om om

x=y xy

I PLDn finns två OCH-ELLER-nät enligt nedan. Till en ingång på OCH-grindar·na kan anslutas var·iabeln eller variabelns invers eller konstanten O eller 1 . Till ingången Inv på XOR-grinden kan bara an­ slutas O eller 1. & & &

206

� >1 -

=1 lnv

© Studentlitteratur

••

4.10 Ovningsuppgifter

4.18 a) Realisera funktionen f = 1 � Xo� XoX1� X2X3� X3

i ett grindnät enligt nedan i en PLD. Till en ingång på OCH-grindarna kan anslutas en va1·iabel eller dess invers eller konstanten O eller 1 . Till ingången Inv på XOR-grinden kan bara anslutas konstanten O eller 1 .

& 1

&

u>1 I

&

=1

-

lnv &

b) Realisera samma funktion som i uppgift a), i en PLD i vilken finns flera grindnät enligt nedan. Jämfört med grindnätet ovan har alltså dessa grindnät bara tre OCH-grindar, men grindnätens utsignal kan återkopplas och anslutas som insignal till grindnäten. & &

>1 -

=1

I

&

I

lnv

I

4.19 Realisera booleska funktionen f(x4, x 3, x 2, x 1, x0) = (((x4 "x 2) "x 1 ") "x 3 + x4x 2(x 1 "x0 ") "+x4x 3 x 2 "x 1"x0) " i ett grindnät enligt uppgift 4. 1 8 a.

© Studentlitteratur

207

4 Kombinationskretsar

4.20 De decimala siffrorna O till 9 är kodade i 7421 -kod (viktad kod med positionsviktema 7, 4, 2 och 1 ). En kombinationskrets som översätter från denna kod till BCD-kod skall konstrueras. X7

Ya Y4 Y2 Y1

Kombinationskrets C7421toBCD

X4 X2

- kodomvandlare 7 421-kod till BCD-kod

X1

Realisera kombinationskretsen i ett minimalt OCH-ELLER-nät under beaktande av grinddelning. Insignalernas inverser är tillgängliga. Visa realiseringen i PLDn nedan genom markering av de program1nerade förbindelserna i OCH- och ELLER-matrisen.

& .•.•.· ·-· . .__...... .............. . -+-----+----------+---i & - ___._.................. --- - ---------+--+--�

. X2

1

X1

1

-_ _

----------------+--- ---1 & .. ·. ---t-

t--

.

.. .

T ··..

'. ' ." . . '. ' . ' . . ' : ' '

'

& &

'

"

--1�

-



f,,-

>1

Y2

> -

Y1

1

4.21 x = (x3, x2, x 1, x0) är decimala siffror 0-9 i BCD-kod. En kombina­ tionskrets med ingångarna x3, x2, x 1 och x0 och utgångar·na y3, Y2, Yt och y0 skall konstrueras. Kombinationskretsen skall bilda 9-komple­ mentet till siffran x, definierat som y = (y3, Y2, y 1, y0) = 9 - x. Reali­ sera kretsen i en PLD som innehåller fyra grindnät enligt nedan. & & '&

208

>1 -

=1 lnv

© Studentlitteratur

••

4.10 Ovningsuppgifter

4.22 Realisera booleska funktionerna f1 (x 3 , x2, x 1 , x0) = L(O, 1,2,3,8,9,10,11,12,14) f2(x 3,x2,x 1 ,x0)=L(l,3,4,5,6,7,13,15)

i två grindnät enligt nedan som ingår i en PLD. Till en ingång på OCH-grinda,·na kan anslutas en variabel eller dess invers eller kon­ stanten O eller 1. Till ingången Inv på XOR-grinden kan bara anslutas konstanten O eller 1. Grindnätens utsignal och dess invers kan åter­ kopplas och anslutas som insignal till OCH-grindar·na. & >1 -

=1

&

lnv �1

4.23 Realisera booleska funktionerna f 1(X4, X3, X2, X 1, Xo) =L(4,6,7,8,9,10,11,12,13,14,15,20,22,23,

24,25,26,27,28,29,30,31)

f2 (x4,x 3,x 2,x 1 ,x0)=L(O,1,2,3,5,8,10,12,14,16,17,18,19,21,

22,23,30,31)

i två grindnät enligt nedan som ingår i en PLD. Till en ingång på OCH-grindar·na kan anslutas en variabel eller dess invers eller kon­ stanten O eller 1. Till ingången Inv på XOR-grinden kan bara anslutas konstanten O eller 1. Grindnätens utsignal och dess invers kan åter­ kopplas och anslutas som insignal till OCH-grindar·na. & I

& I

�1

=1

I

&

lnv

I

1

© Studentlitteratur

209

4 Kombinationskretsar

4.5 Kombinationskretsar i tidsplanet 4.24 Bestäm statisk 0- och I-hasard för grindnäten nedan. Konstruera om näten som hasardfria två-nivå-nät av typ OCH-ELLER.

a a d b d'

b & l

�1 &

a b'

1

&

>1 & > -1

1

a b'

�1

C

�1

&

C

4.25 Rita tidsdiagram för utsignalerna till grindnäten nedan för den angivna insignalen. Fördröjningen för inverteraren är 1 ns och för de andra grindar·na 2 ns. X

1 0 ...,__....,_ ----------- --r--r-"t"""-"t"""-'r------=� 15 5 10 t [ns] 0

b

4.6 Adde rare 4.26 Skriv summasignalen si hos heladderaren FA i figur 4.45 med enbart operationer XOR. 4.27 a)I figur 4.47 visas en adderare för 8 bitar försedd med en ca1Tyaccel­ erator för 4 bitar. Rita om schemat så att adderaren i stället blir försedd med tre carTyacceleratorer för 2 bitar. b) Realisera can·y acceleratorn för två bitar med insignalema x = (xi+ l xi), y = (Yi+ l, Yi) och minnessiffran ci samt utsignalen ci + 2 i ' ett minmalt NAND-NAND-nät. c) Utan ca1·1·yacceleratorer blir maximala antalet nivåer i adderaren 1 7. Beräkna maximala antalet nivåer i adderaren försedd med de tre ca11·y­ acceleratorena ovan.

210

© Studentlitteratur

••

4. 10 Ovningsuppgifter

4.7 Aritmetisk log isk enhe t (ALU) 4.28 En aritmetisk enhet för 8 bitar är uppbyggd enligt principen i figur 4.50 och utför subtraktion som addition av 2-komplementet. Den är försedd med utsignaler för flaggor Z (Zero), C (CarTy), Of (Overflow), PE (Parity Even), PO (Parity Odd) och S (Sign). •••

-Z Flaggor

X7

•••

X1 Xo

- PE

Y7

Y 1 Yo

sub_add -

AU

- PO

___.s

•••

Nedan visas exempel på en addition och en subtraktion. Addition De c He x x in + y.1D 8ut

49 65 114

0

Bin

1 31 00110001 4 1 +01 000001 72 01110010

Z C O f PE PO S 0 0 0 1 0 0

Subtraktion De c He x xin - yin

49 65

31 41

8 ut

-16

FO

Bin 0 111111 00110001 10111110 +0 0 0 0 0 0 0 1 11110000

Z C O f PE PO S 0 0 0 1 0 1

Utför följande additioner och subtraktioner enligt principen ovan och bestäm s01 och flaggor. Addition a) -49 + -,65

b) -49 + 65

c) 49 + -,65

d) 49 + -49

e) 49 + 85

f) -49 + -85

Subtraktion g) -49 - -65

h) -49 - 65

i) 49 - _6, 5

j) 49 - 49

k) 49 - -85

1) -49 - 85

© Studentlitteratur

211

4 Kombinationskretsar

4.29 a) I ett 8-bitars ord skall bitarna O och 6 nollställas i en Logisk Enhet (LU), utan att övriga bitar påverkas. Ange logisk operation och 8bitars operand för att utföra nollställningen. b) I ett 8-bitars ord skall bita1·na 1 , 3 och 7 ettställas i en Logisk Enhet (LU), utan att övriga bitar påverkas. Ange logisk operation och 8bitars operand för att utföra ettställningen.

c) I ett 8-bitars ord skall bitar·na 1 , 2, 4, 5 och 7 inverteras i en Logisk Enhet (LU), utan att övriga bitar påverkas. Ange logisk operation och 8-bitars operand för att utföra inverteringen. 4.30 x = (x4, x 3, x2, x 1 , x0) är binära heltal i talområdet -16 till + 1 5 med de negativa talen representerade som 2-komplementet till de positiva talen. a) En kombinationskrets med insignalerna x4, x3, x2, x 1 , x0 och utsig­ nalerna y4, y 3 , y 2, y 1, Yo som bildar beloppet av talet x, dvs. y = x skall konstrueras. Bestäm minimala SP-former till utsignalerna y. b) Talen i talområdet -1 6 till + 1 5 kan enkelt omvandlas till tal i talom­ rådet O till + 3 1 . Hur? c) Talen i talområdet O till +31 kan enkelt omvandlas till tal i tal­ området - 1 6 till + 1 5. Hur?

2 12

© Studentlitteratur

Sekvenskretsar är en klass av kretsar med minnesfunktion. För dessa kretsar är tiden en väsentlig parameter - sa1111na insignalvärde kan vid olika tid­ punkter ge olika utsignalvärden. I kapitel 2 studerade vi några enkla sekvenskretsar, såväl generella sekvenkretsar som speciella sekvenskretsar såsom räknare och register. Vi analyserade då beteendet för givna sekvens­ kretsar och diskuterade bl.a. tillståndsbegreppet, sättet att beskriva beteen­ det med tillståndsdiagram och tillståndstabell, klocksignal och hur till­ ståndsregistret kan realiseras med D-vippor. Vidare berördes de två sekvenskretsmodellema av typ Moore och Mealy. I detta kapitel skall vi nu studera syntes av sekvenskretsar, dvs realisering av sekvenskretsar utgående från en given specifikation av beteendet och se hur syntesen sker i väldefi­ nierade steg från specifikation till färdig krets. Huvudsakligen kom1ner vi att studera synkrona sekvenskretsar, men även att kort beröra asynkrona sekvenskretsar. Vi komrner att återvända till D-vippan och diskutera tids­ aspekter och maximal klockfrekvens för en sekvenskrets. En annan vippa, T-vippan, som är fördelaktig att använda vid realisering av räknare, kommer att studeras. Latchar, enklare minneskretsar jä ört med vippor, kommer också att studeras. - Sekvenskretsar benämnes ibland på engelska Finite State Machines (FSM), ''tillståndsmaskiner''.



oore I kapitel 2 analyserade vi beteendet för en given sekvenskrets av typ Moore, en sekvensdetektor benämnd Sdetl_mo, vars kretsschema visades i figur 2.55. Det önskade beteendet som legat till grund för konstruktion av © Studentlitteratur

2 13

5 Sekvenskretsar

sekvenskresten, beskrevs. Tillståndsdiagram, tillståndstabell, tidsdiagram för en insekvens visades. Vi skall nu återvända till denna sekvenskrets och göra syntesen av sekvenskretsen och börjar då med den tidigare givna be­ skrivningen av beteendet. Specifikation av beteendet ror sekvensdetektorn Sdetl_mo

En sekvensdetektor Sdetl_mo, med en insignal x, en utsignal u samt en klocksignal clock, skall konstrueras. Sekvensdetektom skall i en godtyck­ ligt lång insekvens i x, detektera förekomster av delsekvenser bestående av minst tre på varandra följande ettor. Utsignalen u skall bli 1 när delsekven­ sen detekteras, annars skall u vara 0. Delsekvenserna får vara överlappande. Sekvenskretsen skall vara av typ Moore. Sekvenskretsen förutsätts starta i ett speciellt starttillstånd då inmatning av en ny insekvens börjar (hur övergång till starttillståndet skall ske, behöver inte beaktas här, det behand­ las längre fram).

_ clock

u

___,, X

_

Sekvensdetektor Sdet1_mo

Blocksymbol

Figur 5.1 Blocksymbol för sekvensdetektom, Sdetl_mo.

Tillståndsdiagram

Realiseringen av en sekvenskrets börjar med det svåraste steget i hela pro­ cessen, att formelit beskriva det specificerade beteendet med tillstånd. Det finns ingen väldefinierad metod för detta, man får huvudsakligen lita till in­ tuition och erfarenhet. Beskrivningen kan ske på olika sätt, grafiskt i ett till­ ståndsdiagram, i tabellform i en tillståndstabell, eller i en textfil i t.ex. hårdvarubeskrivande språket VHDL. Vilken beskrivning som är lämpligast i ett aktuellt fall bestäms närmast av regelbundenheten i sekvenskretsens 2 14

© Studentlitteratur

5.1 Generella sekvenskretsar

beteende. Om sekvenskretsen som skall realiseras är en r·· ::...are eller ett skiftregister så är beteendet mycket regelbundet och antalet tillstånd ofta mycket stort och man beskriver då beteendet i en textfil i VHDL. Om i stäl­ let sekvenskretsen har ett oregelbundet beteende och ett mindre antal till­ stånd så kan det vara lämpligt att börja med att grafiskt beskriva beteendet i ett tillståndsdiagram som sedan beskrivs i en textfil i VHDL. Tillstånden i tillståndsdiagrammet representeras med cirklar, ellipser el.dyl. och tillståndsövergångar·na med pilar, som vi redan sett i kapitel 2. Man vet från början inte hur många tillstånd som krävs för att beskriva det aktuella beteendet, utan man får börja med ett tillstånd och bygga på med fler till­ stånd efter hand. Det kan hända att man råkar använda fler tillstånd än vad som egentligen behövs. Det har ingen större betydelse, kan innebära att det krävs någon extra D-vippa i tillståndsregistret, men antalet D-vippor är nor­ malt inte något problem. Orsaken till att man har fått fler tillstånd än vad som krävs är att det då finns tillstånd som är s.k. ekvivalenta och som kan slås sam1nan till ett tillstånd. Konstruktionen av tillståndsdiagrammet börjar med ett starttillstånd, som lämpligen benämnes start. Principen är sedan att när sekvenskretsen be­ höver ''komma ihåg'' något, så går man till ett nytt tillstånd. I ett aktuellt tillstånd för en viss insignal har man att ta ställning till om man skall • stanna kvar i tillståndet • gå till ett annat redan befintligt tillstånd • skapa ett nytt tillstånd och gå till detta /

I figur 5 .2 visas steg för steg, som kommenteras nedan, konstruktionen av tillstånds grafen. 1 . Starttillstånd start; u = 0. 2. Inledande O:or behöver ej kommas ihåg, stanna kvar; u = 0. 3. En 1 : a är inledning på en delsekvens och måste kommas ihåg, skapa ett nytt till­ stånd first_l och gå till detta; u = 0. 4. En O:a efter inledande 1 :an innebär avbruten delsekvens, gå tillbaks till starttill­ ståndet; u = 0. 5. En 1 :a efter inledande 1 :an innebär andra 1 :an i delsekvensen som måste kom­ mas ihåg, skapa ett nytt tillstånd second_l och gå till detta; u = 0. 6. En O:a efter två 1 :or innebär avbruten delsekvens, gå tillbaks till starttillståndet; u = 0. 7. En 1 :a efter två 1 :or innebär korrekt delsekvens som måste kommas ihåg, skapa ett nytt tillstånd third_l och gå till detta; u = 1 . 8. En 1 :a efter den korrekta delsekvensen innebär ytterligare en korrekt delsekvens (överlappande); u = l . 9. En O:a innebär avbruten delsekvens, gå tillbaks till starttillståndet; u = 0. © Studentlitteratur

215

5 Sekvenskretsar

1.

2.

0

start /0 3.

0

start /0

'

\

4.

1 . 0

start /0

' 'I

----

5.

1

I

�/· 0

--

first 1 /0 --·---�

---·-...__

'

:\

'

---

-----

--------

7.

,;1

0

0

8. ''

0

\

, ___ _

,i

0

start �\\ /0

9.

----------------- ---

---.

/0

----

1

�--

/'

\ /0 ·-...,�-

I

/0

----- �---------

- - ---------

/�lllo.J

0

�--

/0

/..-,', 111"",\

/0

--

\

0

-----.... 1'.

)

/

--- -

/--------

►..

/0 --

I

/0

�'

- - -��------....__,_'· .....,,,,-

,,

first 1 \'I

'

I

_,/

I 'I

------------

0

start \ 1 I /0 \ � -----/ /. 0 0

1'

6.

first_1 I0

....__---1�.

I

0

0

' --

------ -...� ..._

.,,.. ----

;

,-/

__.,...-

�- -­

1 I

---.-----� -/ 1

start /0

\.�-

Figur 5.2 Konstruktionen av tillståndsdiagrammet för Sdetl_mo.

216

© Studentlitteratur

5.1 Generella sekvenskretsar

1

0 start /0

1

first_1 /0

1

.,____

second/0

1

i----

third_1 /1

0

Figur 5.3 Slutliga tillståndsdiagrammetför sekvensdetektom Sdetl_mo.

Tillstånden bör döpas så att namnen antyder vad tillstånden innebär, såsom gjorts i tillståndsdiagrammet ovan, där namnen anger hur långt man kommit i den korrekta delsekvensen. Tillståndstabell

Tillståndstabellen innehåller ingen ny information j ämfört med tillstånds­ diagram1net.

N uvarande tillstånd

Nästa tillstånd l nsignal

start first 1 second 1 third 1

0 start start start start

X

1 first 1 second 1 third 1 third 1

Utsignal u

0 0 0 1

Figur 5.4 Tillståndstabell för sekvensdetektom Sdetl_mo.

Sekvenskretsen skall enligt specifikationen realiseras som typ Moore. Nedan visas den generella modellen för en sekvenskrets av typ Moore.

© Studentlitteratur

217

5 Sekvenskretsar

Modell för en sekvenskrets av typ Moore cl ock ----------------------... ..

..

.. ..

.. .. ..

..

..

..

... . . ' .. '

..

rxo, , , •.. 1na1.1ons... ..,______.___________ u(t) • •k·••·f•·e· ·t••·s·· ·•·· ·.•.· · •· •.• .g· •· •· · · · . ·· · · · V

. " . : ... .. . ' : .. '. ..

q(t)

x(t)

x(t)

...... . . ....··.. .· · . •· .• ..· . •. .

···· .� ..· l"W"ll b .

_.

.

...

..

.. ' ..

.. . . .

..

..

. : .. . .

.

: .. . ..

. .

..

'.

'.

Nästa tillstånd

. q(t+ 1 ) + Kombinations- q . . "

.

"

I----______;

N uvarande tillstånd

-· · ·•---......... . . q(t) . Tillstånds... i q ::.

"

. .

"

..

"

-----� krets . . . ..----� · · · register . · • · · • •·· • . . • · f · . . · . · · ·•. ·• . . . . • ·• · (minne) q(t)

"

"

"

.

• . --...·

Figur 5.5 Modell för en sekvenskrets av typ Moore.

Kretsschemat för sekvensdetektom Sdetl_mo som visades i figur 2.55 i ka­ pitel 2 har ritats så att det överensstämmer med modellen ovan. Tillstånds­ registret utgörs där av D-vippoma och kombinationskretsarna f och g av grindnäten. För Moore-modellen ovan gäller q(t+ l ) = f(q(t), x(t)) u(t) = g(q(t)) Ofta utelämnas av bekvämlighet parametern t i uttrycken ovan. Nästa till­ stånd betecknar vi med q+, som vi redan sett i kapitel 2. Ut eken blir då

q+ = f(q, x) u = g(q) Karakteristiskt för Moore-modellen är att utsignalen u endast beror av nu­ varande tillstånd q och ej av insignalen x. Vi fortsätter nu realiseringen av sekvensdetektom Sdetl_mo.

218

© Studentlitteratur

5. 1 Generella sekvenskretsar

Tillståndskodning - ''binary''

Tillståndsregistret som håller nuvarande tillstånd, realiseras normalt med D­ vippor. Tillstånden i tillståndsdiagrammet/tillståndstabellen måste d··- ör kodas som binära ord för att kunna lagras i tillståndsregistret. Tillstånden kan kodas på många olika sätt, i princip hur många som helst. Komplex­ iteten hos kombinationskretsar·11a f och g beror av kodningen. Det finns ingen metod som anger optimal kod. Vi skall i det följande visa exempel på några olika typer av tillståndskodningar (eng. state assignment), som brukar erbjudas i syntesverktyg. Låt oss börja med, som rubriken antyder, med ''vanlig'' binärkod, här benämnd ''bin ''. Sekvenskretsen Sdetl mo har fyra tillstånd. Det krävs minst två bitar för att � dvs två bitar. Tillståndet q betecknar vi i fortsättningen q = (q 0 , q0_ 1 , . . . , qo), sålunda index O för LSB. Tillståndskodning ''bin '' innebär kodning av den definierade uppräk­ nebara tillståndsmängden med binärtal i ordning med början på binärtalet 0. Det krävs sålunda en definierad uppräknebar (eng. enumerated) tillstånds­ mängd för att kodningen skall vara relevant. En sådan tillståndsmängd definierar man t.ex. i VHDL-beskrivningen. För sekvenskretsen Sdetl_mo är det naturligt att defiera tillståndsmängden som { start, first_ l , second_l , third_ l } . Tillståndskodningen ''binär'' med två bitar blir då tillstånd

start first_ l second_l third_ l

kodning ''binary'' qlqO 00

01 10 11

N uvarande tillstånd q1q0

00 01 10 11

Nästa tillstånd q 1 +q 0+ lnsignal

0 00 00 00 00

X

1 01 10 11 11

Utsignal u

0 0 0 1

Figur 5. 6 Tillståndstabell med tillståndskodning '' binary '' för Sdetl_mo. © Studentlitteratur

2 19

5 Sekvenskretsar

Vi fortsätter realiseringen med denna tillståndskodning och återkommer sedan till några andra typer av kodningar. Nästa steg i realiseringsprocessen blir att bestäm1na booleska uttryck för booleska funktionerna i kombina­ tionskretsa,·na f och g i sekvenskretsmodellen i figur 5.5. Booleska uttryck ror nästa tillstånd q + och utsignal u

Booleska funktioner för nästa tillstånd q 1 + och q0+ samt utsignal u är spe­ cificerade i tillståndstabellen i figur 5.6 ovan. Vi använder på vanligt sätt Kar·naughdiagram för att bestä1n1na minimala booleska uttryck på SP-form. Karnaughdiagram

0

1

00

0

0

0

1

01

0

1

0

0

11

0

1

0

1

0 0

r

1 "



10

0

1

0

1

0 u

Figur 5. 7 Kamaughdiagram för nästa tillstånd q + och utsignal u.

Booleska uttryck ql +

= q()X + q l X

qo+ = qo "x + q 1x

u

220

© Studentlitteratur

5.1 Generella sekvenskretsar

Kretsschema klock----------------signal u Tillstånds­ q o+ register d o ·•· · ..· · · · · · · ·. q o · > · -----+-...... . ·.·· · •·. · I· .· .· ·•· D O •· . . .. . . ·• .· ••·· •·•·• ·· · ·· ·. &. --·· · ·.

X

C

'

'

'

'

'

'

'

'

.-

.

'

Figur 5.8 Kretsschemaför Sdetl_mo.

I kretsschemat ovan identifierar vi i de skuggade områdena tillståndsregist­ ret samt kombinationskretsar·na som ber·· ar nästa tillstånd och utsignal. I kapitel 2 visades tidsdiagram för en insekvens. Låt oss nu gå tillbaka i realiseringsprocessen och studera några andra till­ ståndskodningar.

Tillståndskodning - ''Gray'' tillstånd start first_ l second_ l third_ l

kodning ''Gray'' q l qO 00 01 11 10

Tillståndskodningen ''Gray'' innebär kodning av den uppr·· ståndsmängden i Gray-kod.

© Studentlitteratur

ebara till­

22 1

5 Sekvenskretsar

N uvarande tillstånd

Nästa tillstånd q 1 +q 0+ l nsignal

q 1q0

0 00 00 00 00

00 01 11 10

X

1 01 11 10 10

Utsignal u

0 0 0 1

Figur 5.9 Tillståndstabell med tillståndskodning ''Gray '' för Sdetl_mo.

Booleska uttryck ror nästa tillstånd q + och utsignal u

Karnaughdiagram

0

X

1

00

0

0

0

1

0

01

0

1

0

1

0

11

0

0

0

0

10

0

0

0

1

r

1' �

u

Figur 5.10 Karnaughdiagramför nästa tillstånd q + och utsignal u.

Booleska uttryck ql

+

= q()X + q l x

u Jä ör vi dessa booleska uttryck med motsvarande för tillståndskodningen ''binär'' så kan vi konstatera att q 1 + har sam1na komplexitet, två produktter222

© Studentlitteratur

5.1 Generella sekvenskretsar ••

mer med vardera två va1·iabler. Aven u har samma komplexitet, en produktterm med två variabler. Däremot är q0+ något enklare, bara en produktter1n. Generellt behöver inte tillståndskodningen ''Gray'' ge minst komplexitet, utan det är strukturen hos tillståndsdiagrammet som bestämmer vilken av tillståndskodninga1·na ''binär'' och ''Gray'' som ger minst komplexitet, för ett annat tillståndsdiagram så ger kanske tillståndskodningen ''binär'' minst komplexitet. Orsaken till att man använder tillståndskodningen ''Gray'' är nor1nalt inte att man vill få mindre komplexitet, utan i stället att man vill att endast en tillståndsvar·iabel i taget skall ändra sig vid tillståndsövergån­ ga1·na. För att detta skall vara möjligt krävs naturligtvis också en speciell struktur hos tillståndsdiagram111et. För både tillståndskodningen ''binär'' och ''Gray'' ovan har vi använt mini­ malt antal tillståndsvariabler, två variabler. Sålunda har tillståndsregistret samma komplexitet för de två tillståndskodningarna, det innehåller två D­ vippor. I nästa tillståndskodning skall vi se hur man kan minska komplex­ iteten hos kombinationskretsarna som genererar nästa tillstånd och utsignal, genom att öka komplexiteten hos tillståndsregistret.

Tillståndskodning - ''one-hot'' tillstånd

kodning ''one-hot''

q3q2q1qo 000 1 00 1 0 0 1 00 1 000

start first_l second_l third_l Tillståndskodningen ''one-hot'' innebär kodning med kodord som vardera innehåller endast en etta, en ''het etta''. Antalet bitar i kodorden blir lika med antalet tillstånd, i tillståndsdiagrammet ovan sålunda fyra bitar. N uvarande Nästa tillstånd tillstånd q3 +q2 +q 1 +qo + q 3q 2q 1 q 0

0001 001 0 01 00 1 000

lnsignal

0 0001 0001 0001 0001

X

1 001 0 0 1 00 1 000 1 000

Utsignal u

0 0 0 1

Figur 5.11 Tillståndstabell med tillståndskodning ''one-hot'' för Sdetl_mo. © Studentlitteratur

223

5 Sekvenskretsar

Booleska uttryck för nästa tillstånd q + och utsignal u Karnaughdiagram

00

-

0

-

0

-

01

0

-

-

-

11

-

-

-

10

0

-

-

0

-

1

-

-

-

-

-

-

-

-

-

1

-

-

-

x=O

0

x= 1

q 1q0

00

01

11

10

00

-

0

-

0

-

0

-

1

01

0

-

-

-

0

-

-

-

11

-

-

-

-

-

-

-

-

10

0

-

-

-

0

-

-

-

1

-

0

-

-

-

-

-

-

-

x=O

x= 1

q 1 q0

00

01

11

10

00

-

0

-

0

-

01

0

-

-

-

0

11

-

-

-

-

-

10

0

-

-

-

0

-

-



-

x=O

x= 1

q 1 q0

00

01

11

10

-

1

-

1

-

0

-

0

01

1

-

-

-

0

-

-

-

11

-

-

-

-

-

-

-

-

10

1

-

-

-

0

-

-

-

00

r

x=O

"

X= 1 +

Figur 5.12 Kamaughdiagramför nästa tillstånd q .

224

© Studentlitteratur

5. 1 Generella sekvenskretsar

-

0

-

0

-

0

-

-

-

-

-

-

-

-

1

-

00

-

0

01

0

-

11

-

10

1

x=O

-

u



-

-

0

-

-

x=1

Figur 5. 13 Karnaughdiagramför utsignalen u

Booleska uttryck + q3 =ql ,,qo" x + q2 =q1 x + ql =qQX

qo+ = x " u

Kodningen ''one-hot'' ger normalt mindre komplexitet i form av fär·re pro­ dukttermer i booleska uttrycken till nästa tillstånd och utsignaler p.g.a. att kodorden bara innehåller en etta, men till priset av fler bitar (antal D-vip­ por) i tillståndsregistret. Kodningen ''one-hot'' ökar antalet tillstånd. Till­ ståndsdiagrammet till Sdetl_mo konstruerades med fyra tillstånd, men till'' one-hot'' kan vara lämplig att använda i PLD av typ FPGA, som innehåller många D-vippor, men inte har så komplexa OCH-ELLER-nät för genere­ ring av nästa tillstånd och utsignaler. Realiseringen av Sdetl_mo med tillståndskodningen ''one-hot'' resulterade i en sekvenskrets med totalt 1 6 tillstånd, vilket är 1 2 ''extra'' tillstånd utöver de fyra tillstånd som finns i tillståndsdiagrammet. Låt oss studera hur till­ ståndsövergångar och utsignal blivit för dessa extra tillstånd. I figuren S tu den tl itteratur

225

5 Sekvenskretsar

nedan visas den fullständiga tillståndstabellen med samtliga 1 6 tillstånd och de fyra ursprungliga tillstånden i tillståndsdiagrammet skuggade.

N uvarande Nästa tillstånd tillstånd q 3 + q 2 + q 1 +q 0 + l nsignal

· ·•.• · ·· . • · 0001

X

0

Utsignal u

1

· 0001 . ·. · ·. 001 0. . ·· · • · i .·• • · o ·•.· · . . .. . .. •· •· · · • .•· •o·• · •oi 1-•· -·•o.-·•· -. ·. ·. · · • · . ·· .•..· •.·O•...-·o·.•·..o.. ·-_•1_· .:· . .· o••. -•o./1·.•. V"·· · •· ·i · . . -·· . I'\-.U..· ..• : : < ·/...· · · . 01 00 .. 0001 > 01 00 .. . . • . · · · 0 . . . . .. 1 000 . . 0001 1 000 · .1 0 1 000 0000 000 1 001 1 000 1 01 1 0 0 0 1 01 0001 001 0 0 01 1 0 000 1 0 1 00 0 01 1 1 0001 01 1 0 0 1 001 000 1 001 0 1 1 1 01 0 0001 0 1 00 1 01 1 01 1 0 000 1 1 1 1 000 0001 1 1 00 1 1 01 0001 001 0 1 1 0 1 00 1 1 10 0001 1111 0001 1 0 1 00 .

..

.

..

.. : ' .

..

.

'

.' ..

.

.

.

.

.

"

..

"

'

.

.

.

.

.

'

'

.

i

.. ..

..

..

Figur 5.14 Fullständiga tillståndstabellen för Sdetl_mo med tillståndskodningen '' one-hot ''.

Vi har nu gått igenom de fundamentala stegen i realiseringen av en sekvens­ krets, som kan sammanfattas enligt nedan.

Realisering av en sekvenskrets - fundamentala steg 1 . Specifikation 2. Tillståndsdiagram/tillståndstabell · 3. Tillståndskodning 4. Booleska uttryck för nästa tillstånd och utsignaler 5. Kretsschema

226

© Studentlitteratur

5.1 Generella sekvenskretsar ts

ealy

I kapitel 2 analyserade vi beteendet för en given sekvenskrets av typ Mealy, en sekvensdetektor benämnd Sdetl_.m e och jä � örde beteendet med sekvensdetektom Sdetl_mo, realiserad som typ Moore. Vi skall nu göra syntes av en sekvenskrets typ Mealy och börjar med beskrivningen av beteendet.

Specifikation av beteendet for sekvensdetektom GrayBin En sekvenskrets GrayBin som skall omvandla 4-bitars Gray-kod (se kapitel 1 , figur 1 . 17 och tabell 1 .4) till 4-bitars vanlig binärkod enligt tabellen nedan, skall konstrueras. Sekvenskretsen skall ha en insignal x, en insignal r (resetn), en utsignal u samt en klocksignal clock.

Gray-kod Binärkod __ clock -----t

-----+

x Sekvenskrets u -GrayBin r ( resetn)

0000 000 1 001 1 001 0 01 1 0 01 1 1 0101 01 00 1 1 00 1 1 01 1111 1 1 10 1 01 0 1 01 1 1 00 1 1 000

0000 000 1 00 1 0 001 1 0 1 00 01 01 01 1 0 01 1 1 1 000 1 001 1 01 0 1 01 1 1 1 00 1 1 01 1110 1111

Figur 5.15 Blocksymbol för sekvenskretsen GrayBin och översättningstabell.

Orden i Gray-kod matas in i seriefor1n, med MSB först, på ingången x syn­ kront med klocksignalen clock. Orden i binärkod skall matas ut på utgån­ gen u bit för bit samtidigt som bitar·na i Gray-koden inkommer, endast med den fördröjning som finns i grindnätet i sekvenskretsen. Sekvenskretsen •• antages befinna sig i ett starttillstånd då första ordet inkommer. Overgång till starttillståndet sker med en sy on resetsignal r, aktiv Låg. © Studentlitteratur

227

5 Sekvenskretsar

Tillståndsdiagram

Kravet i specifikationen att bita1·na i binärkoden skall matas ut på utgången i samma klockpulsintervall som motsvarande bit i Gray-koden matas in på ingången x, leder fram till en sekvenskrets av typ Mealy. Tillståndsdiagram­ mets utseende för en sekvenskrets av typ Mealy berördes i kapitel 2. Speci­ fikationen av beteendet med en översättningstabell gör det lämpligt att kon­ struera tillståndsdiagrammet som ett träd direkt utgående från tabellen. Starttillståndet betecknas start, övriga tillstånd s 1, s2, . . . . 0/ 1

0/1

r= 0

x/u 1 /1

S

3

0/ 1

S7

1 /0

Sa

1/1

Sg

0/0

S1 0

S1

1 /0

S4

start

1/1

0/0

0/ 1

81 1

1 /0

81 2

S5

S2

0/0

1/1

S1 3

S5

0/0

S14

1 /0 1/1 0/0 0/ 1 1 /0 1/1 0/0 0/ 1 1 /0 1/1 0/0 0/ 1 1 /0 1/1 0/0

Figur 5. 16 Tillståndsdiagram för sekvenskretsen GrayBin.

Tillståndsminimering

Vi ser i tillståndsdiagrammet ovan att tillstånden s4 och s6 har exakt samma utgående grenar. Tillstånden s6, s 1 3, och s 14 kan d.. ör tas bort och till­ ståndsövergången 0/0 från s2 till s6 flyttas till s4 . Tillstånden s3 och s5 har också exakt samma grenar, varför tillståndet s5 kan tas bort och tillstånds228

© Studentlitteratur

5. 1 Generella sekvenskrets·a,�

övergången 1/1 från s2 till s5 flyttas till s3 . Tillstånden s7 och s9 har samma grenar, varför s9 kan tas bort och tillståndsövergången 0/1 från s4 till s9 flyt­ tas till s7 . Slutligen ser vi att s 8 och St o har samma grenar, varför St o kan tas bort och tillståndsövergången från s5 till s 10 flyttas till s8 . Det minimerade tillståndsdiagrammet visas i figuren nedan.

0/1 1 /0

0/1 S3

0/1 S1

x/u r =O

1 /1

start

1 /1

1 /0 1 /1

1 /0

S4

Sa

/0

0/0 1 /1

0/0

0/0

Figur 5. 1 7 Minimerat tillståndsdiagram för sekvenskretsen GrayBin.

Antalet tillstånd har genom tillståndsminimeringen minskats från 1 5 till 7, innebärande att antalet bitar i tillståndsregistret kan minskas från 4 till 3 om man väljer att koda tillstånden med minimalt antal bitar. Tillståndsminimer­ ingen ovan var enkel att utföra, normalt är det inte lika enkelt. Det finns al­ goritmer för tillståndsminimering, men de har ingen större praktisk be­ tydelse, vilket belyses av det faktum att syntesverktyg för programmerbara kretsar alltid har en eller flera algoritmer för minimering av booleska funk­ tioner, men sällan någon algoritm för tillståndsminimering. Orsaken är att normalt är inte problemet att få plats med tillståndsregistret p.g.a. för många bitar, utan i stället att få plats med booleska funktionerna i OCH­ ELLER-näten. Vi har ju t.o.m. sett hur man ibland medvetet ökar antalet < Studentlitteratur

229

5 Sekvenskretsar

bitar i tillståndsregistret med kodningen ''one-hot'' för att minska komplex­ iteten hos booleska funktionerna. Tillståndsminimeringen ovan har gjorts för att belysa att det tillståndsdiagram som man konstruerat utgående från specifikationen sålunda kan innehålla fler tillstånd än vad som är nödvändgt för att realisera det önskade beteendet.

Tillståndstabell Nuvarande Nästa / Utsignal u tillstånd tillstånd

start S1

S2 S3 S4 S7 Sa

0

S2/0 S 3/1

S4/0 S 7/1

s8/0 start/1 start/0

X

1

S 1 /1

S4/0 S 3/1

s8/0 S 7/1

start/0 start/1

Figur 5.18 Tillståndstabell för sekvenskretsen GrayBin.

Tillståndskodning

Vi väljer tillståndskodning ''bin '', dvs kodning av den uppräknebara till­ ståndsmängden { start, s 1 ,s2 , s3 , s4 , s7 , s8 } med 3-bitars binärtal i ordning med början på binärtalet 000. tillstånd

kodning ''binary'' q2qlq0 000 001 010

011

100 101 110 230

© Studentlitteratur

5.1 Generella sekvenskretsar

Nuvarande Nästa / Utsignal u tillstånd tillstånd q2 +q 1 +qo +/ U

0

000 001

X

0 1 0/0 0 1 1 /1 1 0 0/0 1 0 1 /1 1 1 0/0 0 0 0/1 0 0 0/0

01 0 01 1

1 00

1 01 1 1 0

1 0 0 1 /1

1 0 0/0 0 1 1 /1 1 1 0/0

1 0 1 /1

0 0 0/0 0 0 0/1

Figur 5.19 Tillståndstabell med tillståndskodning '' binary '' för GrayBin.

Sekvenskretsen skall realiseras som typ Mealy. Nedan visas den generella modellen för en sekvenskrets av typ Mealy.

Modell för en sekvenskrets av typ Mealy clock u(t) x (t) Kombinations- i----------------,--____,; ---··. . ► ·· "

"

"

"

"

--- krets · · i q (t)

Nästa tillstånd

x (t)

x (t)

q (t+ 1 ) . Kombinations- q "

+

• ·11 .

.

.

t>-

- -+- ·· ..

...

.

,-·.------------

Figur 5.45 Kretsschema med D-vipporför binärräknaren modulo-16 med 4 bitar.

© Studentlitteratur

253

5 Sekvenskretsar

Beräkning av maximal klockfrekvens för räknaren

Maximal klockfrekvens bestäms främst av fördröjningen i D-vippan och grindnätet som genererar nästa tillstånd. Det finns dock för D-vippan även några andra tidsparametrar än fördröjningen som måste beaktas. I figuren nedan visas viktiga tidsparametrar för en D-vippa.

-D Q­ C

Datainsignal D_ t

Utsignal Q

Figur 5.46 Inställningstid t5u, hålltid th och fördröjning tpLH, tpHL för en D-vippa.

Fördröjningen tpd (eng. propagation delay time), definieras som tiden från klocksignalens aktiva flank till omslaget hos D-vippans utsignal. Ibland anges fördröjningen dels då utsignalen slår om från Låg till Hög, betecknad tpdLH, dels då utsignalen slår om från Hög till Låg, betecknad tpdHL·

Det är självklart viktigt att insignalen till D-vippans dataingång D är stabil under klocksignalens aktiva flank. Detta är emellertid inte tillräckligt, utan insignalen kan också behöva vara stabil en viss tid före klocksignalens aktiva flank, benämnd inställningstid tsu (eng. set-up time) och hållas stabil en viss tid efter klocksignalens aktiva flank, benämnd hålltid th (eng. hold time). Båda dessa tider är alltså minimitider. Låt oss nu ber·· a maximala klockfrekvensen för räknaren, utgående från kretsschemat i figur 5.45 ovan. För OCH- och ELLER-grindarna betecknas fördröjninga1·11a tpd OCH respektive tpd ELLER· För D-vippan betecknas _ _ fördröjning, inställningstid och hålltid tpd_D, tsu D respektive th D· _ _

254

© Studentlitteratur

5.2 Räknare

Tclock

Klocksignal C ____ t

tpd_D

tpd_OCH

tpd_ELLER

D-vipporna börjar slå om D-vippornas omslag är färdigt och nya q -värden finns på D-vippornas Q-ut ån ar De nya q -värdena har passerat genom OCH-g rindarna

Senast här måste nya q + -värden ha genererats Nya q +-värden har genererats

De nya q -värdena har passerat genom ELLER-grindarna

Figur 5.47 Tidsdiagramför ett omslag hos räknaren.

Hålltiden th-D i diagram1net ovan behöver inte beaktas vid beräkning av maximala klockfrekvensen. Ur diagram1net fås att Tclock > d-D + 1-rd-OCH + d-ELLER + tsu-D fclock = 1 / Tclock < 1 /( d-D + d-OCH + d-ELLER + tsu-o) Antag som exempel tpd_D = 0,7 ns, t80_0 = 0,2 ns, th_D = 0 ns och d-OCH = 0,3 ns, d-ELLER = 0, 4 ns. Då blir enligt ovan Tclock > 0,7

+

0,3 + 0, 4 + 0,2 = 1,6 ns

fclock = 1/ Tclock < 1/ 1,6 = 0,625 GHz

© Studentlitteratur

255

5 Sekvenskretsar

Realisering av räknaren med T-vippor Låt oss gå tillbaka och studera booleska uttrycken för q +-funktionerna hos räknaren realiserad med D-vippor. Vi ser där att q0+ har en produktterm, q 1 + två, q2+ tre och q3 + fyra produkttern1er. Generellt gäller för en binä1T·· are modulo-2° med n bitar att antalet produkttermer hos qi+-funktionerna blir lika med (i+ 1 ) och sålunda att MSB q0_ 1 + har n produkttermer. Vid realiser­ ing av r·· are med många bitar blir det stora antalet produkttermer ett problem. Ett sätt att lösa problemet är att dela upp räknaren i ett antal räknare med fä1Te antal bitar och kaskadkoppla dem, något som kommer att visas längre fram. Ett annat sätt är att realisera räknaren med T-vippor, som har ett beteende speciellt lämpat för realisering av räknare, som vi nu skall se. Vi börjar med en genomgång av T-vippan. T-vippan

T=O -T

Q-

----;..,.; .r> C

0

T=O T= 1

C T Q+

0 X Q

1 X Q

1

O Q , 1 T illståndsta bell _f

T=1

T i I lståndsd i a g ra m

Sy m bo l

Figur 5.48 T-vippan beskriven i ett tillståndsdiagram och en tillståndstabell.

T-vippan fungerar så att T = 0 ger ingen tillståndsändring, ''står kvar'', medan T = 1 ger tillståndsändring, ''slår om''. Bokstaven T i namnet kom­ mer från det engelska ordet ''toggle'', som betyder ''slå om, ändra tillstånd'' och som förekommer i ordet ''toggle switch'', vippo ::: opplare. I figuren nedan visas ett tidsdiagram för T-vippan. C

I

1

I

1

T

.Q

Q

0

I

I I

0

I

t

1 I

I

Figur 5.49 T-vippans funktion i tidsplanet.

256

© Studentlitteratur

5.2 Räknare

T-vippan kan konstrueras med en D-vippa och en XOR-grind enligt figuren nedan (se också övningsuppgift 2. 1 5 i kapitel 2). För T = 0 kommer värdet på D-vippans utgång att återmatas till D-ingången och ingen tillståndsänd­ ring sker, medan för T = 1 kommer värdet på D-vippans utgång att inverte­ ras i XOR-grinden och D bli Q', som ger tillståndsändring.

T '

::

C

.. '

..

1

..

..

D

·

.. .

Q

C

+-

Q

t -

Figur 5.50 T-vippa realiserad med en D-vippa och en XOR-grind.

I PLD är det ofta möjligt att programmera vipporna till D- eller T-vippor, just för att kunna realisera räknare med T-vippor. Kopplingsprincipen visas i figuren nedan, där typ av vippa väljs med signalen progT_D som kan pro­ grammeras till O eller 1 . Med progT_D = 0 väljs kanal O på MUX:en och den programmerbara vippans insignal T_D går då direkt via MUX:en in i D-vippan medförande att den programmerbara vippan blir en D-vippa. Med progT_D = 1 väljs kanal 1 på MUX:en och XOR-grindens utsignal går via MUX:en in i D-vippan medförande att vippan blir en T-vippa.

progT D T D

0

=1 C

1

1

MUX 2/1

D

Q

Q C

p

Figur 5.51 Vippa programmerbar som D- eller T-vippa. © Studentlitteratur

257

5 Sekvenskretsar

Låt oss nu realisera r·· aren med T-vippor. För D-vippan gäller att D = q + och när vi realiserade r·· aren med D-vippor så bestämde vi minimala booleska uttryck för nästa tillstånd q+ som realiserades i grindnät vars ut­ signal anslöts som insignal till D-vippoma. För T-vippan gäller inte att T är lika med q+, utan i stället gäller att T = q+ (f) q. Nästa tillstånd kommer inte att finnas explicit i kretsen såsom fallet är i sekvenskretsmodellen där till­ ståndsregistert är realiserat med D-vippor. Grindnäten som tidigare genere­ rade nästa tillstånd skall nu i stället generera T-signaler. Vi bestämn1er nu minimala booleska uttryck för T-signalema. Booleska uttryck för T-signaler

00

10

0

0

0

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

1

0

0

0

0

0

0

0

1

0

0

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

Figur 5.52 Karnaughdiagram för T-signaler.

Booleska uttrycken för T-signalema blir To = 1 T 1 = qo T 2 = q 1qo T 3 = q 2 q l q0

258

© Studentlitteratur

5.2 Räknare

Kretsschema för räknaren clock

T

qo

C

Q .,__ __

. . : . : ·. : : : ·: · :· ·:·; :·. : : _ · : : : : ' _ : :_ .: : : , ;: : : < ·: :. : : · · . _

. . ' .

.

. .. : ..

'

'

.

"

..

T

_______________1__ T

C

' .

.

:

.

.

'

:

.



'

· :

.

: ., : ;:.. ·

'

"

'

'

'

: -

" ·•

'

'

:.:,_::.

:

"

· ' :: _. ..

: _ : : __ : _ .

.

:

_ __

..

. · ,•

·_

.

'

.: ·.: .-::: . ,"

.

.

1 _ 0 .,__ _Q_

'

·

:. :: · .

"

'

'

. . . . . .- -

;

.

o.....

p---,

Figur 5.53 Kretsschema med T-vippor för binärräknaren modulo-16 med 4 bitar.

Vi konstaterar att komplexiteten är avsevärt mindre vid realisering av r·· aren med T-vippor jämfört med realisering med D-vippor. Booleska uttrycken för T-funktionema innehåller endast en produktterm. Beträffande booleska ut eken så hade vi kunnat skriva upp dem direkt utgående från räknarens tillståndstabell utan att gå via Ka,·naughdiagram. I tillståndstabel© Studentlitteratur

259

5 Sekvenskretsar

'

len ser vi att q0 alltid skall ''slå om'' vilket ger T O = 1 , q 1 skall ''slå om'' när q0 = 1 vilket ger T 1 = q0 , q2 skall ''slå om'' när (q 1 = 1 ) och (q0 = 1 ) vilket ger T2 = q 1 q0 , q3 skall ''slå om'' när (q2 = 1 ) och (q 1 = 1 ) och (q0 = 1 ) vilket ger T 2 = q2q 1 q0, osv, principen gäller vid utbyggnad av räknaren till god­ tyckligt antal bitar.

Räknare med enable

Vi bygger nu ut binär·räknaren med en insignal enable med vilken man styr om räknaren skall räkna (enable = 1 ) eller inte räkna (enable = 0).

e=O

LSB

clock q0 - e (enable) q 1 ------1

Räknare

Cnt4b_e

q2 q3 -

MSB

1111 .__ 1 1 1 0

001 0 • •' ••

•• •

1 001

000

01 1 1

Figur 5. 54 Binärräknare modulo-16 med 4 bitar och med en insignal enable.

Det är enkelt att bygga ut räknaren, realiserad med T-vippor, med enable (e). Orsaken är T-vippans funktion. För e = 0 skall r·· ::- aren inte r·· a, in­ nebärande T = 0 hos samtliga vippor, medan för e = 1 skall räknaren räkna, innebärande oförändrade T-signaler. De nya T-signaler kan sålunda bildas genom en OCH-operation mellan enable (e) och de ursprungliga T-signal­ ema enligt nedan.

260

© Studentlitteratur

5.2 Räknare

T0 = e

T 1 = ego T2 = eqlqO T3 = eq2q1qo clock • •· ·•·• • · ••• ·• • ··•·· ··•·• · •·• · • •·• . ••• .·· • . • Ta -

· •· · • ·•• i· . · ·•· ·-...... -+--------·••· •...... · ·· ·-· -· . ·-• · •·.. . · •· •• ·>......

_ •·

' ' '

:' ' :.

; ;

.. .

' '

'

'

.

"' " ' " '

' '

'

' '

'

'

" ' ' ', ' ' ' "

'

'

';

'

.

.

.

" ' '' ' . ' ' ', ' ' ' " ' ' " '' " '' ' ' ,'

' '

''

.

' ' ' .

qo

Q t--- -C

''' '

p

'

'

·•· · •· •• •· •··•......&:··-·· -·------- ---1T

.

' '

'

' ' ' ". ,'

--+-f....... ' ' ' ' '' ' ' '

. • · • .. • . · . . . . •·. · . ·•

'

'

",

.

'

.

'.

- ---1T

q1 Q t--- --

C

,·. '

'

'

p

·. .. . ...... . .• .· ..·--.·. · r•·· ·-•. ·. --.· · ·--· ··--. · --·· ......-------- ----.

-

.

· . . .

.

.

. ·.

..

.

•· •· · · ····· ·· ··· · · · ···· . · · · ·· · · · · .

.

.

.

.

..

• · · •· ·•• · • •• • • • •· •··· • - & .----------

T3----1T -

. . .. ''

'

. '

..

'

; '

.

.

---i..--

C

Q3 o� --

p

Figur 5.55 Kretsschemaför binärräknaren modulo-16 med enable (e).

© Studentlitteratur

26 1

5 Sekvenskretsar

Det är mer komplicerat att bygga ut räknaren realiserad med D-vippor med enable (e). Betecknar vi de tidigare q+-funktionerna utan enable med q+old så blir booleska uttrycken för de nya q+-funktionema med enable �

+ + q = eq old + e q

För e = 1 blir booleska uttrycket ovan q+ = q+old och r·· aren r·· ar enligt tidigare. För e = 0 blir q+ = q och det aktuella q-värdet återn1atas till D-in­ gången och r·· aren r·· ar inte. Utbyggnaden av r·· aren med enable sker således genom utökning av OCH-ELLER-näten som genererar D-signal­ ema, dels med en extra ingång i OCH-grinda1·na för enable ( första produk­ ten i booleska uttrycket ovan) , dels med en extra OCH-grind och extra in­ gång i ELLER-grinden för återmatning av q ( andra produkten i booleska uttrycket ovan) . Räknare med carry_out (c) for kaskadkoppling

I samband med realisering av binä•T·· �- aren med D-vippor tidigare och konstaterandet att antalet produkttermer i q+-funktionerna växer dramatiskt med antalet bitar, nämndes möjligheten att kaskadkoppla räknare med ett fä11·e antal bitar. LSB klocksignal -- ---- clock q0 enable- e (enable) q 0 q 1 ......- q 1 - q2

(carry_out) c I�-.. ----+---1 ------1

clock q0 e ( enable) Q 1

......-

q4

qs - qs

(carry_out) c t-� ,..__---1�--t ------1

clock q0 e ( enable) q 1

-

q8

i---

Q10

qg

(carry_out) c _

MSB

Figur 5.56 Kaskadkoppling av tre binärräknare 4 bitar till en räknare 12 bitar.

262

© Studentlitteratur

5.2 Räknare

Principen visas i figuren ovan där en binä1·1··· are modulo-4096, med 12 bitar byggts upp med tre kaskadkopplade binär·räknare modulo-16, 4 bitar. I figuren nedan visas hur utsignalen carry_out (c) genereras. clock

________________

;.;;.;:_

To ----�------------�T

e (enable ____."--_ .

.. .

.

.

..

.

.

:

.

--i..--

.

'

C

qo Q - --b-

. .. :.

.

· ·· · . • . . . · ··· · ·• · · . · .· □ -. . _:

.

. . .

. . . :. .

----tT

q1 Q .....__ --

..__--------.- T

Q - �-

1· · •. · · · · & . · · . ·. · .· . .• ·. ·

.. ... . . . • .... . . i . . . •. . . . . . • ·. . . . ., . . .. . . . .. · •· . . .. . . . . . ··. . ·. .

.

.

.

.

.

. _ . .

.

.

.

..

:.

.

.

.

. . :

. ,:

.

. . . .

.,_

. .

.

.

.

.

.

.

.

.

. ..

q2

- C

.

.

. .

b-

. : .

. .

.

.

..

. :

.

. ..

.

. : . . . : :

.

.

.

.

·· ·

· · • . · · ·• . . . ··.. .. • . li,-· ·· · · · -·· -·.........................____ ______,

. . •·

. .: ..

.

·· . . · . • .· • . . . . . . . .... . . • •.

.

.

_

.

:

. . .· . •. . . • I . •· . ··•• ·• . . • • . ··. . ...· . • • . . . . . . ·.. ·.. . . .

.

.

..

.

. .

. .

.

.

.

-

.. . .. . ......

--.

.

.

- . ..

.

· · · . . T3 & ..,.._· •··________ •• • • • • •· · · . · _____ --+- T

.

.

... .. ...

.

.____,

..

.'

:

.__ -

Q3

Q - --C

b-

.

.

.

..

Figur 5.57 Binärräknare med en utsignal carry_out (c)för kaskadkoppling.

© Studentlitteratur

263

5 Sekvenskretsar

Utsignalen carry_out (c) är bildad som c = eq3 q2q1qo

innebärande att c = 1 om och endast om e = 1 och räknaren har sitt maxvärde q3 q2q1q0 = 1111. Antag att de tre kaskadkopplade räkna1·na i figur 5.56 är nollställda och att enable = 1 till räknare 0. Endast räknare 0 kommer att räkna, eftersom r·· are 1 och 2 har e = 0 p.g.a. räknare O och 1 inte har sitt maxvärde. När r·· are O kommer till sitt maxvärde och 12bitars r·· aren alltså har värdet 000000001111 så blir c = 1 från räknare 0 och sålunda e = 1 till räknare 1 som kommer att räkna vid nästa klockpuls samtidigt som r·· are O slår om till 0000 och 12-bitars räknaren får värdet 000000010000. Räknare 1 räknar sedan inte förrän räknare O kommer till sitt maxvärde 1111 och 12-bitars räknaren värdet 000000011111, då r·· are 1 r·· ar ett steg och räknare O slår om till 0000 och 12-bitars räknaren får värdet 000000100000, osv. Det är viktigt att e ingår i uttrycket för carry_out, eftersom räkna1·na bara skall r·· a om e = 1 till r·· are 0. Upp/ned-räknare

De hittills visade räknar·na r·· ar bara åt ett håll, upp, medsols i till­ ståndsdiagram1net. Vi bygger nu ut räknaren med en insignal up/down (ud) som styr räknaren så att den kan r·· a både upp ( ud = 1) och ned ( ud = 0) . e=O

,-....:_

- clock e ( enable) - ud (up/down) Räknare --t

Cnt4bud_ecb

q0 q 1 ----

1111

Q2 ----

0000

e=1 ud = 1�

-.......-:e = 1 ud = 0

000 1

q 3 ---- .....__ 1 1 1 0

(carry/borrow_out) cb ----

00 1 0

.

•• '• •' '• ' •• ' •• •

'' '' I I

I I I 0 I I I I I I

1 001

000



.

01 1 1

Figur 5.58 Upp/ned-räknare.

264

© Studentlitteratur

5.2 Räknare

En upp/ned-räknare kan enkelt konstrueras utgående från den tidigare kon­ struerade binätTäknaren. Om vi vandrar medsols i tillståndsdiagram1net till binär·räknaren i figur 5.58 och betraktar inverserna, q "-signalema, så ser vi en nedräkning i dessa. Nu skall vi ju ha nedräkning i q-signalema, men det kan vi alltså åstadkomma genom att r·· a upp i q "-signalema! Om vi byter ut q-signalema som är anslutna till OCH-grindar·na i räknaren i figur 5.53 mot q "-signalema, så får vi en räknare som räknar ned i q-signalema. Nu vill vi ha en räknare som både kan r·· a upp och ned och som skall styras med signalen up/down ( ud) . I r·· aren måste då finnas de ursprungliga OCH-grindarna till vilka q-signalema är anslutna, som skall ge T-signaler för uppräkning, och de nya OCH-grindarna till vilka q "-signalema är an­ slutna, som skall ge T-signaler för nedräkning. Val av T-signaler skall ske med signalen up/down (ud) och skulle kunna göras med MUX 2-1 anslutna till T-ingångar·na. För att inte i onödan öka grinddjupet i kombinationskret­ sa1·na som genererar T-signalema och därn1ed minska maximala klock­ frekvensen, så splittrar vi upp MUX: ar·na så att multiplexems ELLER-grind bibehålls ansluten till T-ingången, medan multiplexems OCH-grindar sam­ mansmälts med de redan befintliga OCH-grinda1·na. Kretsschemat för upp/ ned-räknaren visas i figur 5 .59 nedan. I stället för att utöka OCH-grinda1·na med en ingång för signalen up/down ( ud) så har enable ( e) och up/down ( ud) grindats samman så att det blir en enable-signal för upp och en för ned. T-signalema är genererade enligt T0 = e T 1 = ( e( ud))q0 + ( e( ud) ")q0 " T 2 = ( e( ud))q 1 q0 + ( e( ud) ")q 1"qo" T 3 = ( e( ud))q2q 1 q0 + ( e( ud) ")q2 "q 1 "qo"

Upp/ned-räknaren har också försetts med en utsignal carry/borrow_out ( cb) för kaskadkoppling som genererats som cb = (e( ud))q3 q2q1qo + ( e( ud) ")q 3 "q2 "q 1 "qo"

Vid uppräkning fungerar cb på sam1na sätt som den tidigare utsignalen carTy_out ( c ) . Vid nedräkning fungerar den på följande sätt. Antag att vi har tre kaskadkopplade upp/ned-räknare och att 12-bitarsr·· aren befinner sig i tillståndet 010011000000 och att det är nectr·· ing. Eftersom räknare O har värdet 0000 blir cb = 1, vilket ger r·· are 1 enable = 1 och den r·· ar ned

© Studentlitteratur

265

5 Sekvenskretsar

ett steg samtidigt som räknare O räknar ned till 1 1 1 1 och 1 2-bitars r·· får värdet 0100 1 0 1 1 1 1 1 1 .

aren

k c l oc----------------

• · • ·. T ·• & � · . > 1 1 -+--IT · ........-· .· • . . .

. _...,..__ _....., & · · • . • • · ·• ·

q1

Q - -C

. . ---+---------------------- ---

-

.. . . .. .. .

. . •

• .· · • • .,- .

'

. ..

.

.'

.

..... . •..... ·• • · • · • . • . ·.· ·.. . . • .. ·• · · . . .• I • ..•.1 .. · . •·· ·· • . · ·... · . . •

i

"

.

..

.

. .

·

· & • ·. ·..

....,_

'----'.

.

. • · • .. . .

·• ·. • •••. ··. . •. . . · .. ·• ·

q a � -2

--------+----tT C

D

· ------------------�i--------' · . . ' . ·• . --.

.



--+--- • . · . . . . •

·. . . .

&

. . ·........·

· . · . ·--- · ·. ·• T3 .• . · . .. .... . _ >1 · ----+-- T



D

. .__,.,

' '

: ..

.

'

"

.

'

.. .

'

'

'

'

.

u . ..

•.

·.

..

. .

·

.

.

..

& .

:' : ' .

'

·----

.. .··.• ,

. .·

.

.

. .• ·

..

.



.

. ·. & .· · .• . · . "

'

' .,

.,

'

q3

Q - ---

: : ' ::

'

'

''

.. a_ t )_c_ bo yl_ b (c_ rr_ _r_ ro_w..=-_o_ . . · ____ u_ ·· •·• >1 ___

'

' ,.'

Figur 5.59 Kretsschema upp/ned-räknare.

266

© Studentlitteratur

5.2 Räknare

Exempel 5.4 Fyra enheter skall sända 8-bitars ord i seriefortn på en gemensam kanal. Orden skall sändas direkt efter varandra i tur och ordning i var sin tidlucka ( eng. timeslot) omfattande åtta klocksignalintervall enligt figuren nedan. En sändare Tx8Ch4_1 skall i tur och ordning låta enheterna sända sina ord i re­ spektive tidlucka och skicka ut dem på kanalen. Utsignalerna tidlucka, aktiv höga, ger information till respektive enhet när den får sända sitt 8-bitars ord. Konstruera sändaren med standardkomponenter. Kanal

0 1 1 000 1 1 0 1 000 1 1 0 1 0 1 1 0 1 1 1 001 1 0 1 00 1 00 1 00 1 00 1 01 01 0 1 0 . . .

Enhet

1

2

cloek resetn ena ble

4

3

1

2

3

-►

t

clock resetn enable Enhet 1

Enhet 2

d inO d in1

Enhet 3

d in2

Enhet 4

d in3

Sändare Tx8Ch4 1

d ut

Ka nal



tidlucka tidlucka tidlucka tidlucka

0 1 2 3

Figur 5.60 Sändareför sändning av 8-bitars ord på en gemensam kanal.

Lösning En MUX4_1 används för att bilda en dataväg mellan respektive enhet och den gemensamma kanalen. MUX: en adresseras med en r·· are modulo-4 Cnt2b_re, som räknar 00, 01, 10, 11, 00, 01.. . . Denna räknare skall r·· a ett steg var åttonde klockpuls . För att styra denna r·· are används en © Studentlitteratur

267

5 Sekvenskretsar

r·· are modulo-8 Cnt3b_rec, som var åttonde klockpuls genererar en carry_out som används som enable till r·· aren Cnt2b_re. Utsignalerna tidlucka genereras med en avkodare Avkodl_4, som adresseras av r·· aren Cnt2b_re. Schemat för sändaren visas nedan. Notera hur sändaren är upp­ delad i två enheter, en styrenhet och en datavägenhet. Styrenheten består av räknar·na och avkodaren. Datavägenheten består av multiplexern. Styren­ heten styr datavägenheten och ger även styrsignaler till enheterna 1 -4.

Tx8Ch4_1

Styrenhet.•

.. '

clock resetn____enable

.

..

---r •--

---·..._• clock resetn .........+- enable . Binärräknare Cnt3b rec carry_out 1----

clock ----·· resetn ·· ·· enable q0 Binärräknare Cnt2b_re q 1

··

2

·· __,._

.

--1

:�·

....

-

Dataväg enhet Enhet 1 Enhet 2 Enhet 3 Enhet 4

d inO ·.·· ·1·n· 1•·· ··· · · · · . d- . -·d.· •· 1n • · ·2•.· ···• • .

.

.

.. .

..

.

.

..

.

.

.

.. . .

d in3

tidlucka 0

1 tidlucka·-·1 2 tidlucka 2 �3 . tidlucka 3 ·

.. Avkod 1 -4

2

0 1

1

MUX ..

2 4-1

··

d ut

Kanal

1---------+--

3

...

Figur 5.61 Blockschemaför sändaren Tx8Ch4_1.

268



© Studentlitteratur

5.2 Räknare

Vi har hittills studerat n-bitars räknare som genomlöpt samtliga tillstånd i en cirkel och r·· at modulo-2° . En annan klass av intressanta räknare är r·· are modulo- 10. Sådana räknare benämnes dekadräknare och räknar 0, 1 , 2, ..., 9, 0, 1 .. . En dekadräknare måste uppenbart ha minst 4 tillstånds­ var·iabler. Naturligast är att låta en dekadräknare räkna i BCD-kod, inne­ bärande att r·· ecykeln innehåller de 1 0 första tillstånden i den tidigare behandlade 4-bitars binärräknaren. Tillståndsdiagrammet blir enligt figuren nedan.

clock Dekadräknare Cnt4d

qo q1 q2 q3

0000

LSB

0001 0010

MSB

••

1001

1000

•• •• ••

0111

Figur 5.62 Tillståndsdiagramför en dekadräknare som räknar i BCD-kod.

Dekadräknaren med 4 tillståndsvariabler har totalt 24 = 1 6 tillstånd och det finns sålunda 6 icke använda tillstånd 1 0 1 0, 1 0 1 1 , 1 1 00, 1 1 01, 1 1 10 och 1 1 1 1, som måste beaktas vid realiseringen. Vi väljer här att sätta nästa till­ stånd för de ospecificerade tillstånden till don"t care. Efter bestämning av de minimala q+-funktionema kan man sedan avgöra om tillståndsövergån­ gar·na för de ospecificerade tillstånden blivit acceptabla. Ett kriterium för de ospecificerade tillstånden kan vara att de alltid skall leda in i den normala räknecykeln. Ka1·naughdiagrammen för q+-funktionerna blir enligt figuren nedan.

© Studentlitteratur

269

5 Sekvenskretsar

00

0

0

0

0

0

0

1

0

01

0

0

0

-

1

-

0

-

1

-

-

1

1

-

1

.1

0

-

-

0

0

-

-

1

-

'

0

1

0

1

1

0

0

1

0

1

0

1

-

0

1

-

-

0

-

-

1

0

0

-

-

1

0

-

-

-

Figur 5.63 Kamaughdiagramför q + -funktionema till dekadräknaren.

De minimala booleska uttrycken för q+ -funktionema blir qo+ = qo"

= q3 ,,q 1 ,,qo + q1qo,, q2 = q2 ,, q1qo + q2q1,, + q2 qo" + q3 = q3 qo" + q2ql q0 q2

+

+

Dekadräknaren realiserad med D-vippor får samma struktur som den tidig­ are realiserade binär·räknaren modulo-1 6 i figur 5 .45, och vi ritar därför inte upp schemat - q+-funktionerna ovan ger tillräcklig information om räknaren. En användning av dekadräknaren är som frekvensdelare och det kan därför vara intressant att studera r·· arens q-signaler i tidsplanet, som visas i fig­ uren nedan (räknaren har antagits realiserad med vippor som slår om på

270

© Studentlitteratur

5.2 Räknare

positiv flank). Vi ser där att frekvensen hos utsignalen q 3 är fklock/1 0, och dekadr·· aren kan alltså användas för frekvensdelning med JO. Nu ser vi emellertid också i signaldiagrammet att utsignalen q 3 inte är symmetrisk, den är Låg under 8 klockpulsperioder och Hög under 2 klockpulsperioder. Orsaken till osym1netrin är naturligtvis kodningen av dekadräknarens 1 0 tillstånd, som här är gjord i BCD-kod. Om man önskar en symmetrisk sig­ nal, så får en annan tillståndskodning användas, t.ex. en kod med positions­ vikterna 5-4-2- 1 , se tabell 1 .3 i kapitel 1. Positionen med vikten 5 blir sym­ metrisk.

kl ock­ signal

0

1

2

3

4

5

6

7

8

9

0

1

t

Figur 5.64 Tidsdiagramför en dekadräknare som räknar i BCD-kod.

I vissa tillämpningar är det önskvärt att kunnaförinställa, ladda, en räknare med ett godtyckligt starttillstånd i räknesekvensen och sedan räkna från detta tillstånd. En n-bitars räknare förses då med n ingångar på vilka det aktuella tillståndet appliceras och med en speciell signal L, Ladda ( eng. Load) laddas sedan vipporna med detta tillstånd. I figuren nedan visas blockschemat för en 4-bitars dekadräknare med förin­ ställning. Med insignalen L = 1 tilldelas D-vipporna värdet på ingångar·na d_in. Med insignalen L = 0 påverkar inte ingångar·na d_in r·· aren. Ladd­ ningen kan realiseras som asynkron eller synkron beroende på önskemål och vad tillgängliga vippor medger. Asynkron laddning förutsätter att vip­ porna är försedda med asynkrona insignaler Preset och Clear. Synkron laddning verkställs av klockpulsen på klockpulsens aktiva flank om insig­ nalen L = 1 . Låt oss se hur dekadräknaren ovan kan förses med synkron laddning.

© Studentlitteratur

27 1

5 Sekvenskretsar

clock L (load) Dekadräknare .Cnt4d L d ln o • d 1n 1 • d 1n 2 d 1n 3

qo q1 q2 q3

LSB

MSB

Figur 5.65 Dekadräknare med förinställning, laddning, av starttillstånd.

Laddningen kan realiseras med en multiplexer MUX 2- 1 ansluten till D-ingången hos vardera D-vippa. Insignalen L ansluts som adress till mul­ tiplexem, dekadräknarens ursprungliga D-funktion enligt ovan som insig­ nal till multiplexems ingång O och insignalen d_in som insignal till multi­ plexems ingång 1 . De nya D-funktionerna med laddning, betecknade D mL, skrivna som funktion av de ursprungliga D-funktionerna (D), laddnings­ signalen (L) och laddningsvärdena (d_in) blir DmL = L 'D + L(d_in) För att inte öka grinddjupet och därmed minska räknarens maximala klock­ frekvens, så splittrar vi upp multiplexern och låter den sammansmälta med OCH-ELLER-näten för D-funktionema ovan, motsvarande att vi ''multi­ plicerar in'' L ' i D-funktionerna, innebärande att OCH-grindarna får en extra ingång för L ' och låter ELLER-grinda,·na få en extra ingång för funk­ tionen L(d_in) som realiseras i en extra OCH-grind. De nya D-funktionerna blir då enligt nedan och realiseringen av räknaren enligt figur 5 .66. DomT, = L 'q0 ' + L(d_in0)

D1mL = L 'q 3 'q1 'qo + L 'q1qo ' + L(d_in 1 )

D2mL = L 'q2 'q1qo + L 'q2 q1 , + L 'q2qo ' + L(d_in2)

D3mL = L 'q3 qo ' + L 'q2q1qo + L(d_in 3 )

272

© Studentlitteratur

5.2 Räknare

clock . .·. . ·. L (load) ----· . . . • . . . . . .· . . . . ... . . . ·. · .··. . . . .· . ........ -..

. .

.

---,

............----+�

. · . . · . .· . · . . . ·. · ·.. ... . J . . . .·• 1 · . ... · .• • · · · • & .... . .· ·... •.· > •.·· · · ··· . ... ·. .· ... · ..•. . .. . . . .

.

. : .

..

.

.

.

..

.

. ·

.. .

..

·

. ..

.

.

- - - �-

. . . . .

:

. ·.

· .�

.

·.

.

. ..· .. ...· .. · .. .. .· . . .. . .

.. . . .

. . .

..

.

.

.

..·

.. ... .

. .

. .

.

D

:

C

:

·

. . . . . . . ·... . . . . .

• .

..

.

.

- .· .. . ·.. . ·... ..... .. .. . ..• . ... . · . . . . .· . . . ...· .· . · •. •. •· . .•• •· ·• · & . . . .. . . . . ... • . .· ·• .. . .. . ·• · .

.

.

.

. .

.

------,..... D i":>

C

. . . . . . . . . . . . -.-·.-.---.--------------+------' • • •• •

• •

• • • • :.



I

· .. .. . .... .. . &. ··.· · ·.· . . ... .. . . . · . . ·. .. .. . . . . .... . ... ... .. .. . .. . .. .. . . .. . ·. . . ... .. .. . .. .. .. ·. . . ...n ..

.

:.

:_.

.



.

.

.

.

.

.

.

.

.

.

.

_,._._ .

.

..-

.

.

.

.

.



.

.

.



. ..

.. .. .

.

. . . . .. . . .. . . : · .. . .· . ----+--....;. . :� : . ·: : :. · ·: ..;. ·:--� :i - · · : . . . . . - - ·. . ..· . : : . : : : : :. :. .

.

.

. ·.

. .

. . .. . .

.

.

.

. .

.

..

.:

.

.

.

. ..: : . : .

:.

. . . . . . .. : : i & ;. :.:· . .: : . : _·: _ ·: : :- ;· . . . ;: . ; : : ; . .

.

.

..

.

.

.

.

. . ..

· ·· .

. ..

. ..

. '

.. ..

'

Figur 5.66 Kretsschema för dekadräknare medförinställning, laddning.

Med denna dekadräknare med förinställning avslutas sektionen om räknare, där vi har studerat räknare modulo-2n och modulo- 1 0, två viktiga klasser av räknare, och sett hur räknare kan förses med olika faciliteter, såsom enable, carry_out, up/down, car·ry/borrow_out och load. I programmerbar logik har man i princip möjlighet att realisera räknare för vilka modultal som helst och med vilka faciliteter som helst.

© Studentlitteratur

273

5 Sekvenskretsar •





Några enkla register och skiftregister visades i kapitel 2. I dessa styrdes parallell inmatning av data och skift enbart med klocksignalen. Ofta vill man ha speciella styrsignaler som anger vad som skall ske, t.ex. laddning eller skift, och endast använda klocksignalen för att verkställa aktiviteten. Nedan visas några sådana register/skiftregister.

Blockschema och funktionstabell visas i figuren nedan. parallell in d_in 3 d_in2 d_in 1 d_in0





ser1e_1_ n_ clock -

S kiftreg ister Shreg4_hL

q2 q1 parallell ut

serie_ut ( = qo )

m 1 mo 00 01 1 0 1 1

m od vila skift

-

parallell in

qo

Figur 5.67 Blockschema och funktionstabell för skiftregistret Shreg4_hL.

Skiftregistret styrs med två modsignaler m 1 och m0 som bestämmer mod, arbetssätt. Vi bygger upp skiftregistret med D-vippor och multiplexrar MUX 4-1 vars adress är modsignalema m 1 och m0 och vars utgångar är anslutna till D-vippomas ingångar enligt figuren nedan. För mod vila, m 1 1 = 00, väljs kanal O på multiplexem. Eftersom klocksignalen är kopp­ lad till alla D-vippor, som då alltså klockas för varje klockpuls, så innebär vila att D-vippan skall behålla sitt värde. Detta åstadkoms genom att D-ingången tilldelas värdet hos Q-utgången via anslutning av D-vippans utgång till kanal O på multiplexem. För mod ski t, m 1 = 01, väljs kanal 1 på multiplexem. Skift innebär skift höger och åstadkoms genom att serie­ ingången ansluts till kanal 1 på multiplexem längst till vänster och till · -"i

274

© Studentlitteratur

5.3 Register och skiftregister

övriga multiplexrars kanal 1 ansluts Q-utgången från D-vippan till vänster. För mod parallell in, m 1 = 1 1 , väljs kanal 3 på multiplexem. Laddning av D-vippoma med värdet på ingånga1·na d_in åstadkoms genom att ingån­ gar·na d_in ansluts till kanal 3 på multiplexra,·na.

d_in2

parallell in d_in 1

o2

klocksignal

o2

2 0 1 1 M UX 2 4-1 3

1 1 MUX 2 - 4-1 3

ser1 e 1n

D Q C

D Q C

1 1 MU 2 4-1 3

serie_ut

D Q C

D Q C D

parallell ut

o2

1 1 MU 2 4-1 3

D

I)

-

q2

Figur 5.68 Kretsschemaför skiftregistret Shreg4_hL.





ene 1 par vänster d_in3



ll in parallell in d_in2 d_in 1 d_in0 m 1 mo 00 01 1 0 1 1



ser1e_1nv clock serie_utv (= q3)

Skiftregister Shreg4_hvL

q2 q1 parallell ut

serie_uth ( = qo ) serie inh

m od vila skift höger skift vänster parallell in

qo •

Figur 5.69 Blockschema och funktionstabellför skiftregistret Shreg4_hvL © Studentlitteratur

275

5 Sekvenskretsar

Vi bygger ut skiftregistret med ytterligare en funktion, möjlighet till skift vänster. Detta kan enkelt ske med hjälp av den icke utnyttjade kanal 2 hos multiplexem och sålunda erhålls mod ski t vänster för m 1 = 1 0. Insig­ nalen serie_inh ansluts till kanal 2 på multiplexem längst till höger och till övriga multiplexrars kanal 2 ansluts Q-utgången från D-vippan till höger.

d_in2

serie 1nv (vid skift hög er) klocksignal serie utv skift (vid •• vanster )

o2

D Q C

D Q C

p

+

o2

2 0 1 1 MU 2 4-1 3

2 0 1 1 MU 2 4-1 3

1 1 MU 2 4-1 3

-

parallell in d_in 1

p

D Q >C

1 1 MU : � 4-1

p

_. q2

parallell ut

D Q -t> C

D-

serie_uth (vid skift höger)

serie_inh (vid skift qo vänster)

Figur 5.70 Kretsschemaför skiftregistret Shreg4_hvL.

276

© Studentlitteratur

5.4 Latchar

r



Latchar är en viktig klass av sekvenskretsar. De är liksom vippor min­ neskretsar, men är e are till sin uppbyggnad och mer prin1itiva i sin funk­ tion.

R-latchen SR-latchen är en asynkron sekvenskrets. Den används bl.a. som min­ neskrets i statiska halvledar·minnen. I sådana minneskapslar finns flera mil­ joner SR-latchar, som vardera lagrar en bit. - Vanligen brukar man se SR-latchens kretsschema ritat som två korskopplade grindar enligt nedan till vänster. SR-latchen är alltså ett grindnät, men till skillnad från de kom­ binationskretsar vi sett realiserade med grindar, så innehåller SR-latchens grindnät återkoppling, utsignalerna från grindar·na är återkopplade som in­ signaler. Till höger visas sam1na schema omr·itat så att det skall antyda likhet med sekvenskretsmodellen typ Moore. Det finns som synes inget tillståndsregister mellan Q+ och Q och ingen klocksignal. Trots detta blir kretsen en sekvenskrets, en asy on sekvenskrets, som kan anta två olika tillstånd Q = 0 och Q = 1 . I asynkrona sekvenskretsar kan tillstånd vara in­ stabila beroende på att det inte finns något tillståndsregister som spärTar vägen i återkopplingen. Låt oss analysera beteendet.

R

�1

Q

l

. . . . .. . . .. ·.

-

s

>1 -

s R

R

.

: .

.

I

·

.

.

:

.

.

. .

u

g . . ...

. . . . _.: . . . . . . .. . . .

.

.

. . .. . . . . . . . . . . . . .

.

. ..

.

.' .. . . .. . . .· .. . ..

.



-- · · ·. ··.· ···.....••. · · ·· · ·.•···.··. · . · .····· ·. ·· ·•. ··· · >1 ·•••· •· Q + Q . · . · . . . . .·.·. - · . . .

.

S_--+---1 ·. �1

Q

. . .

..

.

. .

.

l)

. .. . .

. . . . .. . . . . . .

..

·..

.

.. :. . .

.

.

. ..

.

o-· -. . . .. . .. . .. . . . . ..

. . .. . .. . . .

. . . . ·t . .

. . . . ...

.

.· ...·

.. .

. .

.

.

.. . . ..

.

.

.

. . . . . . . . .

. .

. .

.

: .

)-

I EC-symbol

Figur 5. 71 SR-latch. © Studentlitteratur

277

5 Sekvenskretsar

Tillståndsdiagram och tillståndstabell visas nedan. Vi ser där hur varje in­ signalkombination har ett stabilt tillstånd (understrukna i tabellen).

Nuvarande tillstånd

Nästa tillstånd Q+

Insignaler SR

Q

00 0 1

0 1

SR

00 01 11 0 /0

00 10 10 01 11

Q

1

10 1 1

11 0 0

01 0 0

00

01

SR 11

0

0

0

0

1

1

1

0

0

1

10

/1 Q + = (R + S 'R')'= (R + (S+R) ' ) '

Figur 5. 72 Tillståndsdiagram, tillståndstabell och Q + för SR-latchen.

För insignalkombinationen SR = 00 befinner sig SR-latchen i vad som kan kallas viloläge eller minnesfas och stannar kvar i det aktuella tillståndet. Om vi antar att latchen är 0-ställd, dvs Q = 0, och att SR = 00, kan latchen I -ställas genom att vi gör S = 1 , vilket enligt tillståndstabellen medför att nästa tillstånd blir 1 . Låter vi sedan S återgå till O så förblir latchen 1 -ställd och befinner sig åter i viloläge. Om vi nu med latchen 1 -ställd, dvs Q = l , och SR = 00, gör R = 1 , så blir enligt tillståndstabellen nästa tillstånd O och latchen blir 0-ställd. Låter vi sedan R återgå till O så förblir latchen 0-ställd och befinner sig åter i viloläge. S är alltså en 1 -ställningssignal och R är en 0-ställningssignal, båda aktivt höga. Signalbeteckningar·na S och R ko1rnner från de engelska orden Set och Reset. Ordet latch är det engelska ordet för lås, och benämningen SR-latch motiveras av att kretsen efter att ha blivit 0-ställd respektive I -ställd låses fast i det aktuella tillståndet med insig­ nalkombinationen SR = 00. Insignalkombinationen SR = 1 1 har vi inte dis278

© Studentlitteratur

5.4 Latchar

kuterat och den brukar inte användas, dels därför att då nästa tillstånd bestämmes av den insignal som längst bibehåller värdet 1, dels framförallt därför att de två utgångar·na hos SR-latchen då har samma värde 0, till skillnad från fallet för de andra insignalkombinationema då utgångar·na alltid är varandras invers Q och Q�. SR-latchen förekommer också i en va1·iant med aktivt låga ingångar och konstrueras då med NAND-grindar enligt figuren nedan. Strecket över S och R hör till själva signalbeteckningen och markerar att signalen är aktivt låg. Denna latch har sitt viloläge för insignalkombinationen 11 och 0-ställs och 1-ställs med insignalen 0. Analysen med tillståndsdiagram och till­ ståndstabell lämnas till en övningsuppgift.

(

Q ..

u

..

g R

&

s

&

._ ..

R

&

... .. ..

i....;

Q+ Q

..

f

Figur 5.73 S R-latch.

SR-latchen kan förses med en klocksignal C som verkställer tillståndsänd­ ringen så man får kontroll över när tillståndsändring skall ske. I figuren nedan visas SR-latchen med aktivt höga ingångar, försedd med en sådan klocksignal. Funktionen är lätt att förstå. För C = 0 är utsignalen från OCH­ grindar·na lika med O och den ursprungliga SR-latchen befinner sig i viloläget, medan för C = 1 är OCH-grindar·na öppna och insignalema S och R kan påverka SR-latchen på vanligt sätt. Där visas också den klockade SR­ latchens IEC-symbol. Siffran 1 fra ör S och R i symbolen markerar att de är beroende av klocksignalen med sam1na num1ner, dvs Cl. Vi har för D­ vippan inte följt IEC-standarden och satt ut siffror vid D- och klocksignalen och för latchar·na väljer vi i fortsättningen av bekvämlighet att heller inte © Studentlitteratur

279

5 Sekvenskretsar

sätta ut siffrorna, det bör inte leda till missförstånd. Funktionen hos den klockade SR-latchen exemplifieras i ett tidsdiagram. R

-&

&

s

>1 -

Q

s

1S Q C1 1R

�1 P--

Q

C R

-

Symbol (förenklad)

IEC-symbol

C

I

I

I

C .

s R Q

t

'



Figur 5.74 Klockad SR-latch.

Den klockade SR-latchen kan förses med ingångar med vilka latchen kan 0-ställas och I-ställas utan medverkan av klocksignalen. En sådan SR-latch visas i figuren nedan, där som synes dessa ingångar anslutits direkt i själva SR-latchen. I IEC-symbolen är dessa insignaler S och R ej försedda med siffran 1 eftersom de påverkar latchen oberoende av klocksignalen. Som tidigare nämnts för D-vippan så brukar sådana insignaler för 0-ställning och I-ställning oberoende av klocksignal, på engelska benämnas Clear (Cl) respektive Preset (Pr).

280

© Studentlitteratur

5.4 Latchar

Clear (Cl) R

&

s

&

C

>1 -

>1 -

Q

-)

s

1S Q C1 1R tR IEC-symbol

-s

Pr

-c ----4R

Cl

arr

Symbol (förenklad)

Preset (Pr)

Figur 5.75 Klockad SR-latch med Preset och Clear.

D-Iatchen D-latchen är liksom SR-latchen en minneskrets som kan låsas i tillståndet 0 eller 1, men till skillnad från SR-latchen som har en insignal för 0-ställning och en insignal för I-ställning, så har D-latchen endast en insignal D som bestämmer tillståndet och en klocksignal C som öppnar och stänger latchen. D-latchen förekommer endast klockad. D-latchen kan konstrueras med en klockad SR-latch och en inverterare enligt figuren nedan. Funktionen är en­ kel. För C = 0 befinner sig D-latchen i sitt viloläge. För C = 1 blir för D = 0 SR-latchen 0-ställd eftersom SR = 01, och för D = 1 blir SR-latchen I-ställd eftersom SR = 10. Funktionen kan sam1nanfattas som att när klock­ signalen C = 1, så följer utsignalen Q värdet hos insignalen D, i princip direkt förbindelse mellan ingång och utgång, och D-latchen brukar därför karakteriseras som transparent. När klocksignalen C blir 0, låses utgångs­ värdet Q till det värde insignalen D har i detta ögonblick. D-ingången kan tolkas som Dataingång, data O eller 1 som skall matas in i D-latchen, läggs på denna ingång. D-latchens symbol skiljer sig från den flanktriggade D­ vippans symbol genom att den inte har någon pil på ingången för klocksig­ nalen. Studera som jämförelse D-vippans tillståndstabell i figur 2.42 i kapi­ tel 2. Nedan visas ett tidsdiagram för en D-latch där det som jämförelse också i sam1na diagram visas tidsdiagram för en positivt flanktriggad Dvippa.

© Studentlitteratur

281

5 Sekvenskretsar -. -···

D C

·--·

s

Q

C

I

1

...

-----1D

-c

'

Q-

R Symbol

CD 010

011 C D Q+ 0X Q 1 0 0 1 1 1

11 1

0 10

Tillståndstabell

Tillståndsdiagram

Figur 5. 76 D-latch.

I

C

I

t

D QD-latch QD-vippa



Figur 5. 77 Tidsdiagram för en D-latch och en positivt flanktriggad D-vippa.

I modellerna för synkrona sekvenskretsar av typ Mealy och Moore ingår ett tillståndsregister. Tillståndsregistret fungerar ju så, att på klockpulsens ak­ tiva flank tilldelas utsignalen Q värdet hos insignalen D, dvs Q + . Nu efter att ha studerat D-latchen kan man kanske, utan nä1·mare eftertanke, tycka att tillståndsregistret borde kunna realiseras med D-latchar, en för varje till­ ståndsva1·iabel och med gemensam klocksignal. Detta kommer emellertid inte att fungera p.g.a. att D-latchen är transparent! När D-latchen öppnas med klocksignalen C = 1, kommer det att bildas en sluten väg från D-latch­ ens ingång genom D-latchen och kombinationskretsen f till D-latchens in­ gång enligt figuren nedan. 282

© Studentlitteratur

5.4 Latchar

_I ..I_

clock----------------------u X ___ __,,; . Kombinations� krets .• .... .... · .. ----+-----------. g q

X

=:::!•�==�

·Kombinations- q

X

-�---� krets ----q

Nuvarande tillstånd

Nästa tillstånd l+I

f

+

Tillstånds-

--re-·· · ·. 1s ·er · ·

(minne).· ...

q

"I==:'"

lfl

=======:::..�-------

Figur 5. 78 Sluten väg q + till q om tillståndsregistret realiseras med D-latchar.

Ett sätt att lösa detta problem är att i stället för en D-latch för varje tillståndsva1·iabel i tillståndsregistret, koppla två D-latchar efter varandra enligt figuren nedan. q

+

D C

Q

-

D C

q

Q

I

t

Figur 5. 79 Två kaskadkopplade D-latchar med tvåfasklockning.

q+ slussas över till q i två steg. Först öppnas den vänstra D-latchen och stängs sedan igen, medförande att q + befinner sig mellan D-latcharna. Därefter öppnas den högra D-latchen och stängs sedan igen, medförande att q+ nu nått utgången q. Utsignalen q har således tilldelats q+ utan att det varit en öppen väg mellan ingången q+ och utgången q. D-latcha1·na klockas med var sin klocksignal, enligt figuren, s k tvåfasklockning, där klocksignalerna aldrig är 1 samtidigt. Principen går ibland på engelska under benämningen master-slave, slaven (den andra D-latchen) följer alltid mästarens (den för­ sta D-latchens), utsignal. © Studentlitteratur

283

5 Sekvenskretsar

nase



I en asynkron sekvenskrets är minnet normalt invävt i kretsens struktur och ej direkt urskiljbart såsom i en synkron sekvenskrets, där minnet utgörs av ett tillståndsregister styrt av en klocksignal. Asynkrona sekvenskretsar kan också representeras med modellerna typ Mealy och Moore, enda skillnaden jämfört med synkrona motsvarigheterna är att tillståndsregistret är borta.

X

..

Kombinations... ------------krets·•·· ·••·•·•··· '

'

'

''.

'

Nästa tillstånd

X

>

...· .g.··

q

X

u

+

Nuvarande tillstånd

q Kombinations- ------------, q .krets . f

q

Figur 5.80 Modell för en asynkron sekvenskrets typ Mealy.

u

Kombinationskrets• ..

q

" ' .'

X

X

..

..

g

Nästa tillstånd

.. ... ..

Kombinations- q+ krets.·· ..

Nuvarande tillstånd

q

..

q

Figur 5.81 Modell för en asynkron sekvenskrets typ Moore.

284

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

I modellerna ovan ser vi att nästa tillstånd q + är lika med nuvarande till­ stånd q, dvs att q+ = q, vilket vi också noterade för SR-latchen, som är en asynkron sekvenskrets. Detta måste dock nödvändigtvis så småningom in­ träffa efter en tillståndsändring, om inte kretsen ständigt skall ändra till­ stånd och bete sig som en oscillator. I en asynkron sekvenskrets styrs tillståndsändringar·na av ändringar i insignalen. Detta innebär i sekvens­ kretsmodellen, att i kombinationskretsen f bildas av det nya värdet av insig­ nalen och nuvarande tillstånd, ett nytt tillstånd q+ , vilket tillsamrnans med fortfarande samma ingångsvärde, efter en viss fördröjning i kombinations­ kretsen ger ett eventuellt nytt tillstånd q+ osv., tills slutligen nästa tillstånd q+ är lika med nuvarande tillstånd enligt principen i figuren nedan. För till­ ståndet qm gäller att q+ = f(qm, xk) = qm . Tillståndet qm är ett stabilt till­ stånd. Tillståndsövergångar i en asynkron sekvenskrets måste alltid leda till ett stabilt tillstånd.

• • •

Figur 5.82 Princip för tillståndsövergång i en asynkron sekvenskrets. . ..

.

Kombinationskrets f ..

q..... -

Figur 5.83 skrets.

Fördröjning

... q+

Fördröjning q➔ q + i kombinationskretsen f i en asynkron sekven­

Nedan visas en trivial asynkron sekvenskrets, som för insignalen x = 1 inte intar ett stabilt tillstånd, utan ständigt ändrar tillstånd. 0 X

&

q+ q

0 1 0 /0

1

1 /1

Figur 5.84 Asynkron sekvenskrets, instabil för insignalen x = 1. © Studentlitteratur

285

5 Sekvenskretsar

I en asy on sekvenskrets måste insignalen efter en ändring som leder till en tillståndsändring, självklart ha kvar sitt värde tills det nya tillståndet in­ tagits. Vidare får endast en insignal åt gången styra en tillståndsändring. Om nämligen flera insignaler ändras samtidigt, kan helt felaktiga tillstånds­ vägar genomlöpas p.g.a. fördröjningarna i kretsen. Om exempelvis en asyn­ kron sekvenskrets har två insignaler som ändras från 00 till 11, så sker detta inte momentant, utan via någon av vägarna 00 ➔ 01 ➔ 11 eller 00 ➔ 10 ➔ 11, och de mellanliggande insignalvärdena 01 och 10 kan då leda in på tillståndsvägar som ger felaktigt sluttillstånd. För en asynkron sekvenskrets måste sålunda gälla att: • Endast en insignal åt gången får styra en tillståndsändring • Varje insignalkombination måste leda till ett stabilt tillstånd Det finns fler restriktioner som måste beaktas vid realisering av en asynk­ ron sekvenskrets. Låt oss belysa detta i ett exempel.

Specifikation Vid en jämvägskorsning utan bommar där en väg korsar en järnväg finns ett trafikljus, som styrs av två givare gv och gh på rälsen, belägna på vänster re­ spektive höger sida av vägen ca två kilometer från korsningen, se figuren nedan. Givaren ger utsignalen g = 1 när tåget befinner sig över givaren och annars g = 0. Trafikljuset skall slå om från vitt blinkande sken till rött blinkande sken när början av tåget kommer in över den ena givaren och slå om till vitt blinkande sken igen när slutet av tåget lämnar den andra givaren. Funktionen skall vara densamma oavsett om tåget är kortare eller längre än avståndet mellan givar·na. - En asynkron sekvenskrets Trafikljus som styr trafikljuset, skall konstrueras. Den skall ha två ingångar till vilka skall an­ slutas de två utsignalerna gv och gh från giva,·na, och en utgång T, som skall anslutas till trafikljusen. För utsignalen T gäller att T = 0 ger vitt blinkande sken och T = 1 ger rött blinkande sken. Det kan antagas att ett tåg passerar korsningen fullständigt innan nästa tåg kommer in och att självklart inga tåg möts i korsningen. Dessa antaganden medför att kravet att endast en insignal åt gången får ändra sig, är uppfyllt.

286

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

Trafikljus

- asynkron sekvenskrets

T

Figur 5.85 Jämvägskorsning som skall styras med en asynkron sekvenskrets.

Tillståndsdiagram 01 /1 1 0/1

00/0

lngetTåg

01 /1 0/-

00/1 1 1 /1

00/-

Utgående

Inkommande

----- Passerande

1 0/1 01 /1

1 0/1 01 /1

00/1 1 1 /1

Figur 5.86 Tillståndsdiagram för trafikljuset.

© Studentlitteratur

287

5 Sekvenskretsar

Beteendet skall uppenbart vara detsamma oavsett om tåget kommer från höger eller från vänster. Tillstånden behöver därför ej innehålla någon in­ formation om höger eller vänster. Relativt enkelt kommer man fram till att tillståndsdiagrammet, se figuren ovan, bara behöver innehålla fyra tillstånd, som benämnts IngetTåg, Inkommande, Passerande och Utgående. Det finns alltså bara ett tillstånd Inkommande och vi skiljer ej på om tåget kommer från höger eller från vänster, och motsvarande gäller för tillståndet Utgående. Starttillstånd är IngetTåg, i vilket vi kvarstannar med utgångsvärdet T = 0, vitt blinkande sken, så länge inget tåg kommer, dvs. för ingångsvärdet gvgh = 00. När ett tåg kommer från höger eller från vänster, dvs. för gvgh = 01 respektive gvgh = 10, går vi över till tillståndet Inkommande, i vilket vi stannar kvar med utgångsvärdet T = 1, rött blinkande sken, tills in­ gångsvärdet ändras. Utgångsvärdet under övergången från tillståndet Inget­ Tåg till tillståndet Inkommande har satts till don"t care, för att eventuellt ge en enklare realisering. Tillståndsövergången sker ju snabbt och det spelar d··-- ör ingen roll om utgångsvärdet blir T = 1 redan under tillstånds­ övergången eller först då tillståndet Inkommande intas. När sedan ett tåg kortare än avståndet mellan givarna passerar mellan givarna, dvs. då gvgh = 00, eller ett tåg längre än avståndet mellan giva1·na passerar över båda givar·na , dvs då gvgh = 11, går vi över till tillståndet Passerande. Vi stannar kvar i detta tillstånd tills gvgh = 01 eller gvgh = 10, dvs då tåget är på utgående, då vi går över till tillståndet Utgående. I detta tillstånd kvar­ stannar vi tills tåget passerat, dvs tills gvgh = 00, då vi går över till tillstån­ det IngetTåg. Tillståndskodning

Vi har tidigare vid realisering av synkrona sekvenskretsar sett hur till­ stånden i princip kan kodas fritt, men att kodningen har betydelse för kret­ sens komplexitet. Vid realisering av asynkrona sekvenskretsar måste tillståndskodningen ske på speciellt sätt för att inte kretsens funktion skall äventyras. Tillståndskodningen måste vara kapplöpningsfri, innebärande att bara en tillståndsvariabel åt gången ändrar sig vid varje tillståndsövergång. I vårt fall kan kapplöpningsfri kodning göras med Gray-kod enligt figuren nedan.

288

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

01/1 10/1

9v Qh / T 00/0

01/10/-

00

01 00/1 11/1

00/-

10

10/1 01/1

11 00/1 11/1

10/1 01/1

Figur 5. 87 Kapplöpninsfri tillståndskodning med Gray-kod.

9v Qh / T

01/1 10/1

00/0

01/10/-

00

-- -- -------------- . . 00

00/,,.,-......_ .

11





••

••



••

••

••

••

10/1 01/1

10/1 01/1

01 00/1 11/1

10 00/1 11/1

Figur 5. 88 Icke kapplöpningsfri tillståndskodning.

© Studentlitteratur

289

5 Sekvenskretsar

Om vi i stället gör en icke kapplöpningsfri kodning enligt figuren ovan kan funktionen bli felaktig. Antag exempelvis att vi befinner oss i tillståndet 01 och lägger på ingångsvärdet gvgh = 00, varvid enligt tillståndsdiagramrnet övergång skall ske till tillståndet 10. Om tillståndsva1·iabel q 0 ändrar sig före q 1 sker istället felaktig övergång till tillståndet 00 (streckad pil i till­ ståndsdiagrammet), i vilket man enligt den normala övergången kommer att kvarstanna med ingångsvärdet gvgh = 00. En felaktig tillståndsövergång har alltså inträffat. Likaså inträffar en felaktig tillståndsövergång till samma tillstånd 00 om i stället tillståndsvar·iabel q 1 ändrar sig före q0. Då sker först felaktig övergång till tillståndet 11 (streckad pil i tillståndsdiagrammet) och sedan övergång till tillståndet 00 enligt den normala vägen. För vårt tillståndsdiagram var det enkelt att finna en kapplöpningsfri kod­ ning. Om tillståndsdiagrammmet innehållit diagonala tillståndsövergångar hade det inte varit möjligt att finna en kapplöpningsfri kodning med två tillståndsvariabler och sålunda totalt fyra tillstånd. Man hade blivit tvungen att öka antalet tillstånd och ändra strukturen i tillståndsdiagrammet för att kunna göra en kapplöpningsfri kodning. I stället för att då först konstruera tillståndsdiagrammet utan tanke på tillståndskodningen och därefter kanske sedan konstatera att en kapplöpningsfri kodning inte är möjlig att göra, är det lämpligt att redan från början konstruera tillståndsdiagrammet så att strukturen blir sådan att kapplöpningsfri kodning blir möjlig. Ett tillståndsdiagram med tre eller fyra tillstånd måste ha en struktur och kodning med två tillståndsvariabler enligt figur 5.89 nedan. Tillstånds­ övergångarna får bara följa kvadratens kanter och ej gå diagonalt.

00

01

10

11

Figur 5.89 Kapplöpningsfri tillståndskodning med två tillståndsvariabler.

Ett tillståndsdiagram med fem till åtta tillstånd måste ha en struktur och kodning med tre tillståndsvariabler enligt figuren nedan. Tillståndsöver290

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

gångarna får bara följa kubens kanter. Till höger i sa1nrna figur visas kuben tillplattad, en form mer lämpad för inplacering av ett aktuellt tillståndsdia­ gram.

1 00 --- 1 01 000

----+--

001

1 00 -------- 1 01 000 --- 001

1 1 0 --- 1 1 1 01 0 --- 01 1

01 0 --- 01 1 1 1 0 -------- 1 1 1

Figur 5.90 Kapplöpningsfri tillståndskodning med tre tillståndsvariabler.

Tillståndstabell Tillståndstabellen till den kapplöpningsfria kodningen i figur 5.87 ovan får följande utseende. Tabell 5.5: Tillståndstabell till tillståndsdiagrammet i figur 5. 87.

Nuvarande tillstånd

Nästa tillstånd 4 1 +40+ / Utsignal T

4140

00 01 11 10

© Studentlitteratur

00 00/0 1 1/1 1 1/1 00/-

Insignaler gvgh 11 01 -01//1 1/1 0 1/ 1 1 1/1 1 0/1 --/1 0/1

10 01/01/1 1 0/1 1 0/1

29 1

5 Sekvenskretsar

Tidigare har konstaterats att i en asy on sekvenskrets måste varje insig­ nalkombination leda till ett stabilt tillstånd. I tillståndstabellen ovan innebär detta att det i varj e insignalkolumn måste finnas ett tillstånd sådant att q + = f(q, gvgh) = q. Sådana tillstånd är understrukna i tillståndstabellen. Booleska funktioner ror nästa tillstånd och utgångsvärde Ur tillståndstabellen ovan erhålles direkt Ka1·naughdiagrammen

00

01

11

10

0

0

-

0

-=i

0

1 ..:=i

10

9v9h

00

0

-

1 1

1 II

1 ::i

0

1

0 •

-

1

0

-

-

-

1

1

1

1

1

1

1

1

1

1

1

-

1

1

0

1

0

1

0

0

-

0

-



1 •

T

Figur 5.91 Kamaughdiagramför q 1 +, q0 + och T.

Ur Ka1·11aughdiagrammen erhålles

T B ooleska funktionerna q 1 + och q0+ har realiserats hasardfria med samtliga primimplikatorer. Det är viktigt att så sker, ty annars kan, som berörts tidig­ are i kapitel 4, Kombinationskretsar, spikar uppträda i utsignalerna från grindnäten som realiserar q 1 + och q0+ och ge upphov till felaktiga till­ ståndsövergångar. De minimala SP-formerna till q 1 + och q0+ innehåller bara de fyra första primimplikatorerna i uttrycken ovan, men vi har för hasardfrihet också tagit med resterande primimplikatorer. I detta fall en extra primimplikator i vardera funktion som är markerad med tjockare inringning i Karnaughdiagrammen och fet stil funktionsuttrycken.

292

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

Kretsschema

T . .

. .. . ... . .. . . . .. . .

.

.

.

. . .

.

. . . . . . . .. . .. . . . .. . .

. .. .

. .

.

. .

. . . . .. . . .. .

.

.

.

.

..

. . . .

.

. . .

.. : .. .. . . . .. .

.

. .. . . .. .. . . . . : . : . . . . ... .. . .

.

.

.

·· · . . . . : ·&. .. :. . . ·-i--._..

.

.. .

.

.

.

. .

'.

.

'

.

.

.

. . . .. . . . .

.

.

.

.

. .

. :

. ': :

& .

. .

. .

. . .. .

.

.

g

. . . ..

.

. . . . .

. .

. . . . . . . . . .. .. . . .. . . . .. . ..

. . ..

.

.

.

.

.

.

.

. .

.

. . . .' . . . . .. .

.:

. .. .' .. . .

.

.

.

.'

.

.

. . . . . . . . . .. . . .

. . . .

... .

. .. . . .. . . .. .

. .. :. .

.

· · . . . : •.. •: ·. . . • · : ·1 . . . : . . . ---1 . & .· . · . . .·· .·· · . : . .. ·. ·> .

.

.

.

.

.

,.

___,,

_,.

. . . .

.

.

.

.

.

f. .

·

.

Figur 5. 92 Kretsschemaför asynkrona sekvenskretsen Trafikljus.

Exempel 5. 6 En flanktriggad D-vippa är en asynkron sekvenskrets. Den kan konstrueras på olika sätt. I figuren nedan visas en variant, som är positivt flanktriggad. I stället för att direkt utgående från kretsschemat analysera beteendet, väljer vi en annan väg där vi får utnyttja våra kunskaper om asynkrona sekvens­ kretsar. Vi skall utgå från beteendet för en positivt flanktriggad D-vippa och realisera en flanktriggad D-vippa med exakt samma utseende som den • • givna vippan.

© Studentlitteratur

293

5 Sekvenskretsar

&

-

'"'

-

s

&

Q

&

-D

1

C R

&

&

J

Symbol C D Q+ 0 X Q t 0 0 t 1 1 Funktionstabell

& -J

D

Q-

Figur 5. 93 D-vippa, positivt flanktriggad.

D-vippan ovan kan naturligt delas upp i två delar, bestående av en asynkron sekvenskrets på ingångssidan, som styr en SR-latch på utgångssidan, enligt figuren nedan. Vi börjar med att rita tillståndsdiagrammet till styrkretsen.

C

D

Us

Styrkrets -asyn kron sekvens krets

UR

.(

s

...

R

� �

Q -

Figur 5. 94 D-vippan uppdelad i en asynkron styrkrets och en SR-latch.

Tillståndsdiagram för styrkretsen För klocksignalen C = 0 skall SR-latchen vara i viloläget, innebärande att utsignalerna usuR hos styrkretsen skall vara usuR = 1 1 . På klocksignalens positiva flank då C blir 1 , skall SR-latchen påverkas så att, för D = 0 skall den 0-ställas, innebärande att styrkretsen skall ge usuR = 1 0, medan för 294

© S tudentlitteratur

5.5 Asynkrona sekvenskretsar

D = 1 skall den I -ställas, innebärande att styrkretsen skall ge usuR = 0 1 . Under klockpulsen då C = 1 , skall SR-latchen ej påverkas av insignalen D. Sålunda efter exempelvis 0-ställning på klockpulsens positiva flank och under klockpulsen när C = 1 , så får D = 1 inte ge usuR = 0 1 , medan efter I -ställning på klockpulsens positiva flank och under klockpulsen då C = 1 , så skall D = 1 ge us uR = 0 1 . Eftersom samma ingångsvärde skall ge olika utgångsvärden vid olika tidpunkter kan styrkretsen ej vara en kombina­ tionskrets, utan måste vara en sekvenskrets. Resonemanget ovan leder relativt lätt fram till att den asynkrona sekvens­ kretsen behöver minst tre tillstånd, och det visar sig att det räcker med tre tillstånd. Vi döper tillstånden till Vila, Nollställ och Ettställ, som anger vad som sker med SR-latchen i tillstånden. Tillståndsdiagrammet blir enligt figuren nedan.

Nollställ

Vila

Ettställ

C/

U5 ,

UR

Figur 5. 95 Tillståndsdiagram för den asynkrona sekvenskretsen Styrkrets.

Vi ser att tillståndsdiagrammet är av typ Moore. Tillstånden skall på vanligt sätt för en asynkron sekvenskrets kodas kapplöpningsfritt och i detta fall med tre tillstånd skall kodningen ske enligt kvadraten i figur 5.89 ovan. Det är här möjligt att koda tillstånden så att tillståndsvar·iablema direkt kan an­ vändas som utsignaler. Tillståndsdiagrammet blir då enligt figuren nedan. Det icke använda tillståndet 00 måste beaktas och det är lämpligt att låta alla tillståndsövergångar för detta tillstånd leda bort från detta tillstånd, © Studentlitteratur

295

5 Sekvenskretsar

vilket är markerat med en utgående pil från tillståndet. De ospecificerade tillstånden i tillståndstabellen nedan får alltså ej vara tillståndet 00.

C'

C CD ' 10 /1 0

11 /1 1

C' C'

CD

01 /0 1

00 /00

C

Figur 5. 96 Tillståndsdiagrammet för styrkretsen med kapplöpningsfri kodning.

Tillståndstabell Nuvarande tillstånd

Utsignaler

Nästa tillstånd q 1 +qo+

Us UR

Insignaler CD

00 01 11 10

00 -

01 -

11 -

10

11 11 11

11 11 11

01 01 10

01 10 10

-

00 01 11 10

Inringningar·na i Kar·naughdiagrammen nedan för de ospecificerade värdena görs så att dels nästa tillstånd för tillståndet 00 ej blir 00, dels så att vi uppnår målet med konstruktionen av styrkretsen, nämligen att visa att de booleska funktionerna kan realiseras i en krets av exakt sam1na utseende som styrkretsen till den givna D-vippan. Det visar sig att inringninga1·na nedan ger önskat resultat.

296

© Studentlitteratur

5.5 Asynkrona sekvenskretsar

Karnaughdiagram

00

-

CD 01 11

10

-

-

-

-

1

1

0

0

1

1

0

10 -� 1

1

1

00 -

-

-

-

1

1

1

1

1

1

1

1

0

1

1

1

0

0

I



,

Figur 5. 97 Kamaughdiagramför q1 + och q0 + till styrkretsen.

q l + = C ' + q l qo' + q 1 D ' qo+ = C ' + q l , + qoD

Booleska uttrycken kan omformas enligt q l + = C ' + q l qo' + q 1 D ' = C ' + q 1 (qo' + D ') = C ' + q 1 (q0D) ' =

= (C(q 1 (qoD) ') ') ' qo+ = C ' + q l , + qoD = (Cq 1 (qoD) ') '

Styrkretsen har konstruerats så att utsignalerna us och uR är lika med tillståndsvariablerna, se tillståndstabellen. Således gäller Us

ql

UR = qo

Booleska funktionerna q 1 + och q0+ kan realiseras i styrkretsen nedan. Vi kan se att den överensstämmer exakt med den önskade styrkretsen i den givna D-vippan och vi har alltså nått målet att konstruera en D-vippa lika­ dan som den givna.

© Studentlitteratur

297

5 Sekvenskretsar

Kretsschema

q1

&

p

(q 1 (q 1 D ) ' ) '

&

q1+

us

&

qo+

uR

C q1

D

qo

&

t>

(qo D )'

Figur 5.98 Kretsschemaför den konstruerade styrkretsen.

298

© Studentlitteratur

5.6 Synkronisering av asynkrona signaler och metastabilitet

oas



De allra flesta digitala system konstrueras som sy ona system. Alla sig­ nalövergångar inuti och ut från det synkrona systemet styrs av en system­ klocksignal och sker synkront, t.ex. på klockpulsens positiva flank. För sig­ naler inuti det synkrona systemet har man möjlighet att med uppgift om fördröjningar se till så att kraven för de kritiska tiderna för vipporna, in­ ställnings- och hålltider, blir uppfyllda. Problemet är när det synkrona sys­ temet skall ta emot asynkrona insignaler utifrån, vilka exempelvis kan vara utsignaler från ett annat synkront system som har en annan systemklocksig­ nal eller kan vara slumpmässigt uppträdande signaler. Dessa asynkrona in­ signaler kan förändra värde var som helst i klockpulsintervallet och ibland komma så olyckligt att de inte uppfyller villkoren för vippans inställnings­ tid och hålltid, och då orsaka felaktiga tillståndsövergångar. Ett vanligt sätt att synkronisera en asynkron insignal är att låta den passera en flanktriggad D-vippa som klockas med syste locksignalen, enligt figuren nedan.

asynkron-insignal

Synkront system

asynkron insignal

D Q C

Synkront system p

systemklocksignal

systemklocksignal system­ klocksignal ___, asynkron insignal



t

system­ klocksignal _ asynkron insignal (D)--

-� t

synkron insignal (Q)_�

a. Asynkron insignal

till synkront system

b. Synkronisering av asynkron insignal till synkront system

Figur 5. 99 Asynkron signal till synkront system. Synkronisering.

© Studentlitteratur

299

5 Sekvenskretsar

Det synkrona systemet får nu en insignal som är synkron med system­ klocksignalen, visserligen fördröjd maximalt en klockpulsperiod, och synk­ roniseringsproblemet bör väl nu vara löst. TyvärT är det inte fullt så enkelt. Problemet med inställnings- och hålltider har nu flyttats ut från det synk­ rona systemet till D-vippan utanför. Vad är nu faran med att D-vippans in­ signal ändrar sig innanför det otillåtna inställnings-hålltid-intervallet? Det är inte att omslaget blir oförutsägbart O eller 1, ty det kom1ner vid nästa klockpuls att bli bestämt, utan det är att vippan kan gå över i ett s.k. meta­ stabilt tillstånd (eng. metastable state). Ett metastabilt tillstånd för en vippa innebär att vippans utsignal Q befinner sig i det förbjudna utsignalområdet (voHmin - voLmax) under en tid som är avsevärt längre än den normala omslagstiden. Det är alltså den icke förut­ sägbara omslagstiden som är problemet. - I figuren nedan visas några olika möjliga alternativ a - d för utsignalen hos en D-vippa i ett metastabilt till­ stånd, som här tänkts orsakad av att insignalen D ändrats innanför otillåtet intervall för inställningstid t su.

-D QC Datainsignal D_.....,....____, Klocksignal C

--+------'

I

◄---►

Utsignal Q (normal) signa a . ________ (metastabilt tillstånd) b. --------J

Figur 5. 1 00 Utsignal hos D-vippa i ett metastabilt tillstånd.

300

© Studentlitteratur

5. 6 Synkronisering av asynkrona signaler och metastabilitet

I figuren ovan visas utsignalen Q för ett normalt omslag från O till 1 samt för ett metastabilt tillstånd. I alternativ a påbörjas ett omslag till 1 som av­ bryts och återgång sker till O och i alternativ b fullföljs omslag till 1, i båda fallen med en omslagstid mycket större än normalt. I alternativ c och d av­ bryts omslaget respektive fullföljs, men i båda fallen under oscillering och med en omslagstid mycket större än normalt. Tyvä1·r är det omöjligt att förhindra att metastabilitet inträffar vid sy oni­ sering av asynkrona insignaler. Det finns emellertid möjlighet att minska sannolikheten för att metastabilitet skall inträffa. - Halvledarfabrikanterna är idag mycket observanta på problemet och brukar i sina databöcker dis­ kutera vippornas beteende vid metastabilitet. De strävar efter att konstruera vipporna så att tidsfönstret där metastabilitet kan inträffa blir så litet som möjligt och när metastabilitet inträffar, tiden i det metastabila tillståndet blir så kort som möjligt. Syste!:: onstruktören kan minska sannolikheten för metastabilitet genom olika åtgärder. Synkronisering av den asynkrona in­ signalen kan göras med två kaskadkopplade D-vippor i stället för med en, enligt figuren nedan, till priset att fördröjningen av den asynkrona insig­ nalen nu ökar till maximalt två klockpulsperioder. Vidare bör konstruktio­ nen av det synkrona systemet vad avser de asynkrona insignalerna, följa samma regler som vid konstruktion av ett asy ont system, nämligen att endast en asy on insignal i taget får påverka en tillståndsövergång och att vid en sådan tillståndsövergång endast en tillståndsvariabel får ändras. Sys­ te locksignalens frekvens bör också väljas så att den asynkrona signalens pulslängd är större än 2 perioder hos syste locksignalen.

asynkron insi g nal

D Q -t> C

D Q C

Synkront system

system klocksi g nal

Figur 5.101

Synkronisering av en asynkron insignal med två kaskadkopplade D-vippor.

© Studentlitteratur

30 1

5 Sekvenskretsar



••

r

5.1 Generella sekvenskretsar 5.1 Rita tillståndsdiagram för sekvenskretsar·na beskrivna i a-g nedan. Insekvensema kan vara godtyckligt långa. Vid sekvensens början antas sekvenskretsen befinna sig i ett starttillstånd. Övergång till start­ tillståndet sker med en synkron signal resetn, som ej behöver beaktas. a) Sekvenskrets typ Moore med en insignal x och en utsignal u, sådan att u = 1 om och endast om de fem senaste in signalvärdena varit 1 1 0 1 1 (överlappande sekvenser accepteras). b) Sekvenskrets typ Mealy med betende enligt a). c) Sekvenskrets typ Mealy med en insignal x och två utsignaler u 0 och u 1 . Utsignalen u = (u 1 , u 0) skall ange antalet ettor i insekvensen, räknat modulo-3. d) Sekvenskrets typ Moore med en insignal x och en utsignal u, sådan att u = 1 om och endast om insignalen x = 1 i exakt tre klocksignalin­ tervall. Då en fjärde etta inkommer skall u återgå till 0. e) Sekvenskrets typ Moore med två ingångar x och y och två utgångar u0 och u 1 . På ingångarna x och y inmatas två binära positiva heltal med MSB först. För utgångarna skall gälla att

= 00 om x = y = 1 0 om x > y = 0 1 om x < y f) Sekvenskrets typ Moore med en ingång x och en utgång u, sådan att u = 1 om och endast om insekvensen innehåller exakt en delsekvens innehållande en eller flera på varandra följande ettor. g) Sekvenskrets typ Moore med två insignaler x 0 och x 1 och en utsig­ nal u, sådan att u = 1 om och endast om x 1 x0 = 1 1 och det när·mast föregående insignalvärdet varit 1 1 eller de två närmast föregående insignalvärdena varit i ordning O 1 , 1 0.

302

© Studentlitteratur

••

5. 7 Ovningsuppgifter

5.2 En sekvenskrets Sdetl O med insignalema x, resetn och clock samt en utsignal u skall konstrueras. _ clock

_x

u

1---

_ resetn

Sekvensdetektor Sdet1 0

Sekvenskretsen skall detektera förekomst av en delsekvens 10 i en sekvens i insignalen x. Inmatning av en ny insekvens föregås alltid av en synkron resetn, aktiv låg, som överför sekvenskretsen till ett start­ tillstånd. Sekvenskretsen skall vara av typ Moore. Utsignalen skall vara O i starttillståndet och förbli O tills delsekvensen uppträder, då u skall bli 1 under ett klockpulsintervall för att sedan bli O under resten av sekvensen. a) Rita tillståndsdiagram för Sdetl O. b) Bestäm booleska uttryck för nästa tillstånd q+ och u för tillstånds­ kodningar·na ''bin '', ''Gray'' och '' one-hot''. Koda tillstånden i ord­ ning med början i starttillståndet. 5.3 En sekvensdetektor SdetOJ OorOJ 10 av typ Moore med insignalema x, resetn och clock samt utsignalen u, skall konstrueras. Sekvensdetek­ tom skall i en godtyckligt lång insekvens detektera förekomst av del­ sekvenser 0 1 0 och 0 1 10. Inmatning av en sekvens föregås alltid av en sy on resetn, aktiv låg, som överför sekvenskretsen i ett starttill­ stånd. Utsignalen skall bli O i starttillståndet och förbli O tills någon av delsekvenserna uppträder, då u skall bli 1 under ett klocksignalinter­ vall för att sedan åter bli O i nästa klocksignalintervall. Efter att en delsekvens detekterats måste innan en ny delsekvens kan detekteras, ha inkommit minst två på varandra följande ettor. - Exempel (efter resetn = 0): X

u

110001011010000110011010 000000010000100000000010

Rita tilståndsdiagram för sekvenskretsen.

© Studentlitteratur

303

5 Sekvenskretsar

5.4 En sekvensdetektor Sdetl 1 1 00 av typ Mealy med insignalerna x, resetn och clock samt utsignalen u, skall konstrueras. Sekvensdetek­ torn skall detektera förekomst av delsekvenser 11100 i en godtyckligt lång insekvens. Inmatning av en sekvens föregås alltid av en sy on återställning med signalen resetn, aktiv låg, som överför sekvenskret­ sen i ett starttillstånd. Utsignalen skall bli O i starttillståndet och förbli 0 tills sekvensen 11100 uppträder då utsignalen skall bli 1 för att sedan åter bli O i nästa klocksignalintervall. - Exempel (efter resetn = 0): X

u

00101110001011111100001 00000000100000000001000

Rita tillståndsdiagram för sekvenskretsen. Koda tillstånden ''binary'' i ordning med början i starttillståndet. Realisera sekvenskretsen med NAND-grindar och D-vippor. 5.5 En sekvensgenerator Sgen07 som skall generera sekvensen (q 2 , q 1 , q0) = 000, 111, 001, 110, 010, 101, 011, 100, 000, ..., skall konstrueras. Sekvensgeneratorn skall ha en synkron återställningssignal resetn, aktiv låg, som ger övergång till tillståndet 000. Sekvensgeneratorns utsignaler är tillståndsregistrets utsignaler. Realisera sekvensgeneratorn med NA -grindar och D-vippor. 5.6 En sekvensgenerator Sgen013764 som skall generera sekvensen (q2 , q 1 , q0) = 000, 001, 011, 111, 110, 100, 000, ..., skall konstrueras. Sekvensgeneratorn skall ha en synkron återställningssignal resetn, aktiv låg, som ger övergång till tillståndet 000 samt en insignal enable, aktiv hög, som styr sekvensgenereringen. Sekvensgeneratorns utsig­ naler är tillståndsregistrets utsignaler. Realisera sekvensgeneratom med NAND-grindar och D-vippor. 5.7 En 3-bitars sekvensgenerator Sgen064325 som skall generera sekven­ sen 0, 6, 4, 3, 2, 5, 0, ... i vanlig binärkod i utsignalerna q 2 , q 1 , q0 , skall konstrueras. Sekvensgeneratorns utsignaler är tillståndsregistrets utsignaler. De icke använda tillstånden skall som nästa tillstånd ha till­ ståndet 000. a) Rita tillståndsdiagram och bestäm booleska uttryck för q +-funktion­ erna. b) Utöka sekvensgeneratom med synkrona insignaler enable och set6, båda aktiv hög. Signalen set6 skall ge övergång till tillståndet 6, obe­ roende av värdet hos enable. Komplettera de i a) beräknade q + -funk­ tionerna med signalerna enable och set6. 304

© Studentlitteratur

••

5.7 Ovningsuppgifter

5.8 En adderare Adder__serial, som adderar två binärtal i serieform skall konstrueras som en sekvenskrets. 5

_ clock ----t X

-Y

C

ut

i---

_ resetn Adderare seriell Adder_serial

Binärtalen som kan innehålla godtyckligt många bitar, inmatas bit för bit på ingångarna x och y med LSB först. Adderaren skall för varje in­ matad bit av talen ge summan s och minnessiffran c_ut. En additon föregås av en resetn, aktiv låg. Rita tillståndsdiagram med lämpliga namn på tillstånden och realisera adderaren med D-vippor som en sek­ venskrets av typ a) Mealy b) Moore 5.9 En givare ger en fyrkantvåg, vars positiva flanker skall räknas i en räknare. En synkron sekvenskrets Pos_edge, som för varje positiv flank i fyrkantvågen ger enable = 1 under ett klockpulsintervall till räknaren, skall konstrueras. Klocksignalens periodtid är mycket mindre än fyrkantvågens. Både sekvenskretsen och räknaren ändrar tillstånd på klockpulsens positiva flank. clock clock

clock Givare

clock

p

Sekvenskrets Pos edge

u

enable Räknare

I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I

p u (Mealy) u (Moore) ____. t

a) Rita tillståndsdiagram för Mealy-varianten och realisera den med D-vippor. b) Rita tillståndsdiagram för Moore-varianten och realisera den med D-vippor. © Studentlitteratur

305

5 Sekvenskretsar

5.2 Räknare 5.10 En 3-bitars modulo-8 räknare Cnt3G som r·· ar i Gray-kod, (q2 , q 1 , q0) : 000, 001, 011, 010, 110, 111, 101, 100, 000, ... skall kon­ strueras. Räknaren skall vara försedd en asy on resetna, aktiv låg. Bestäm booleska ut ek för a) d-signalema vid realisering med D-vippor. b) T-signalema vid realisering med T-vippor. 5.1 1 En 2-bitars r·· are Cnt2Gm som som skall r·· a i Gray-kod skall vara försedd med två modsignaler m0 och m 1 som styr betendet enligt nedan. m1mo 00 01

10 1 1

beteende synkron nollställning, dvs övergång till tillståndet 00 uppräkning i Gray-kod, 00, 01, 11, 10, 00, .. . nedräkning i Gray-kod, 00, 10, 11, 01, 00, .. . synkron ettställning, dvs övergång till tillståndet 11

Rita tillståndsdiagram och bestäm booleska uttryck för d-signalema vid realisering av r·· aren med d-vippor.

5.12 En 4-bitars räknare Cnt4bd, som skall kunna r·· a som binärräknare modulo-16, dvs räkna 0, 1, 2, ... , 15, 0, ... eller som dekadräknare i BCD-kod, dvs räkna 0, 1, 2, ... , 9, 0, ... , skall konstrueras. Med insig­ nalen b_d skall styras mod binärräknare (b_d = 1) eller dekadr·· are (b_d = 0). Räknaren skall ha en synkron resetn, aktiv låg. Realisera räknaren med NAND-grindar och T-vippor. 5.13 En speciell 3-bitars binärr·· are Cnt3bJJlus3 skall konstrueras. Räknaren skall kunna arbeta i två olika moder, som väljs med insig­ nalen plus3. För plus3 = 0 skall r·· aren arbeta som en konventionell 3-bitars binärT·· are och räkna modulo-8 enligt 0, 1, 2, ... , 7, 0, .... För plus3 = 1 skall r·· ing ske i vart tredje tillstånd i den normala r·· e­ cykeln enligt 0, 3, 6, 1, 4, 7, 2, 5, 0, 3, ... . Räknaren skall ha en synk­ ron resetn, aktiv låg. Realisera r·· aren med NAND-grindar och Dvippor.

306

© Studentlitteratur

••

5. 7 Ovningsuppgifter

5.14 Ange för sändaren Tx8 Ch4_1 i exempel 5.4 vilka modifieringar i blockschemat i figur 5.61 som måste göras om a) enheterna skall sända 16-bitars ord i stället för 8-bitars ord. b) det är åtta enheter i stället för fyra.

5.15 På en kanal sänds en bitström synkront med klocksignalen. Bitström­ men består av 8-bitars ord. Orden skall tas emot av en mottagare Rx8Chl_4 som skall fördela orden i tur och ordning till fyra enheter via fyra kanaler. Konstruera mottagaren med standardkomponenter.

fördelas till enhet

->·

1

2

clock resetn enab le bitströ m 1n

Motta g are d 1n Rx8Ch 1 4

1

4

3

d utO

n' .

Enhet 1

d ut1

f

Enhet 2

d ut1

'





d ut2 tidlucka tidlucka tidlucka tidlucka

2

3

Enhet 3 Enhet 4

0 1 2 3

5.16 Ange för mottagaren Rx8Ch1_4 i övningsuppgift 5.15 ovan vilka modifieringar i den föreslagna realiseringen som måste göras om a) bitströmmen består 16-bitars ord i stället för 8-bitars ord. b) orden skall fördelas till åtta enheter i stället för fyra.

© Studentl itteratur

307

5 Sekvenskretsar

5.17 Bestäm maximal klockfrekvens för sekvensgeneratom Sdetl_mo i figur 5.8. Insignalen x får sitt nya värde samtidigt som D-vipporna får sina nya q-värden. Grindar·na har fördröjninga,·na tpd_Inv = 0,5 ns, d-OCH = 1 ns, d-ELLER = 1 ns. För D-vippoma gäller att d-O = 0,8 ns, tsu-O = 0,2 ns och th-O = 0 ns. 5.3 Register och skiftregister 5.18 Skiftregister återkopplade med XOR-grindar enligt principen i figur­ erna a) och b) nedan, får tillståndsdiagram med speciellt utseende. Tillståndet O bildar uppenbart en cykel med sig självt. För de övriga tillstånden gäller att de bildar tillståndscykler av olika längd. - Rita tillståndsdiagram för sekvenskretsar·na a) och b) nedan. a) b) clock serie 1 n •

-

q2 =1

Skiftreg ister

q1

qo

serie ut

(= qo)

clock • serie 1n

Skiftregister

q2 =1

q1

qo

serie ut (= qo)

=1

c) Tillståndsdiagram1net i a) har ett speciellt utseende - samtliga till­ stånd, bortsett från tillståndet 0, bildar en enda tillståndscykel. Detta medför att om sekvenskretsen startas i något av tillstånden i denna stora cykel, så kommer utsignalen att få en maximal periodlängd, i en maximal periodlängd av 2 ° - 1 erhållas. Verifiera periodlängden genom att bestämma 25 på varandra följande utgångsvärden. ter­ kopplade skiftregister enligt ovan, benämnes linjära sekvenskretsar. De kan bl.a. användas för att generera s.k. pseudoslumpsekvenser, sekvenser med stor periodlängd som ter sig slumpmässiga, men som naturligtvis inte är det. Linjära sekvenskretsar kan beskrivas matema­ tiskt.

5.19 Bestäm maximal skiftfrekvens för skiftregistret i figur 5.68. Antag att fördröjningen i MUX4_1, d-Mux4- 1 = 1,5 ns. För D-vippoma gäller att d-O = 2 ns, t80-0 = 0,5 ns och th-O = 0 ns.

308

© Studentlitteratur

••

5. 7 Ovningsuppgifter

5.4 Latchar 5.20 Analysera S R-latchen i figur 5.73 och rita tillståndsdiagram och till­ ståndstabell. 5.21 a) Bestäm tillståndstabell för den asy ona sekvenskretsen nedan. A B

&

1

&

Q+ Q

&

b) Sekvenskretsen skulle kunna användas som en latch, benämnd AB­ latch. För vilka värden på insignalema A och B befinner sig latchen i sitt viloläge, respektive nollställs och ettställs den?

5.5 Asynkrona sekvenskretsar 5.22 Konstruera D-latchen, utgående från tillståndsdiagrammet i figur 5.76, som en asy on sekvenskrets. 5.23 En asynkron sekvenskrets med två insignaler p och x samt en utsignal u skall konstrueras. Insignalen p består av aktivt låga pulser. Direkt efter att insignalen x gått från låg (0) till hög (1) skall alltid en och en­ dast en fullständig puls i insignalen p sändas ut i utsignalen u, som i viloläget har värdet hög (1). Insignalen x varierar långsamt i förhål­ lande till insignalen p. Konstruera den asynkrona sekvenskretsen med enbart NAND-grindar. p

---t

X

---t

p -

u

Asynkron sekvenskrets

-

-

-

-

-

- - - -

-

X

u t

© Studentlitteratur

309

5 Sekvenskretsar

5.24 En asy on sekvenskrets med två insignaler puls och g, samt en ut­ signal u skall konstrueras. Insignalen puls utgörs av pulser (0 och 5 V) och insignalen g kommer från en studsfri återfjädrande kontakt, sådan att nedtryckt kontakt ger g = 1 och icke nedtryckt kontakt ger g = 0. Så länge kontakten är ned ckt skall fullständiga pulser sändas ut på ut­ gången, fr.o.m. första möjliga fullständiga puls. Om kontakten släpps under pågående puls skall även denna sändas ut fullständigt (se figur). Manövreringen av kontakten g är långsam i förhållande till puls­ frekvensen. - Konstruera tillståndsdiagram för sekvenskretsen och koda tillstånden. puls

---1

Asynkron sekvenskrets .,______U

g puls _

t

g u

5.25 En asy on sekvenskrets som delar frekvensen hos en signal x med 3, skall konstrueras. Beteendet visas nedan. Konstruera kretsen med OCH-, ELLER-grindar och Inverterare. Asynkron sekvenskrets i----u Frekvensdelare

X

+3

X

--

u __,

3 10

t

© Studentlitteratur

••

5. 7 Ovningsuppgifter

5.26 En sekvensdetektor med två insignaler x 0 och x 1 och en utsignal u, skall konstrueras som en asynkron sekvenskrets. För utsignalen u skall gälla att u = 1 om och endast om de tre senaste insignalvärdena är x 1 x0 : 00, 10, 11. Endast en insignal ändrar sig i taget. Konstruera kret­ sen med NAND-grindar. Asynkron sekvenskrets t----u Sekvensdetektor

Exempel.

X1 :

xo: u:

© Student litteratur

0 0 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0

31 1







I kapitel 2 behandlades grindar som logiska byggblock. I detta kapitel skall vi studera hur de realiseras med transistorer. Vi kommer då att hålla oss till uppbyggnad med MOS-transistorer, den totalt dominerande transistorn inom digitaltekniken. Få digitaltekniker utför konstruktion av chip på transistornivå, normalt före­ kommer detta bara hos de stora halvledarfabrikanterna. För att kunna kon­ struera på denna nivå krävs omfattande kunskaper i bl. a. halvledarfysik och tillgång till mycket avancerade datorbaserade konstruktionsverktyg. Men även om man som digitaltekniker nor1nalt inte konstruerar på transistornivå, utan på grindnivå eller ännu högre nivå, så behöver man elementära kun­ skaper om digitala kretsar på transistornivå för att kunna förstå och få känsla för begrepp som logiska nivåer, störmarginaler, belastbarhet, fördröjn1ngar m.m. Kapitlet inleds med en kortfattad beskrivning av MOS-transistorns upp­ byggnad och funktion. Det blir bara en ytlig betraktelse som resulterar i en mycket enkel modell för MOS-transistorn, i stort sett bara som switch, till­ räcklig för förståelse av grindar·nas funktion. Digitala kretsar konstrueras i MOS-teknik huvudsakligen i två tekniker benämnda CMOS och nMOS. En Inverterare realiserad i CMOS respektive nMOS kommer att studeras och få illustrera struktur, statiska och dyna­ miska egenskaper för dessa två fundamentala MOS-tekniker. Därefter visas uppbyggnaden av andra grindar såsom NAND, NOR och XOR.

312

© Studentlitteratur

6.1 MOS-transistorn

• MOS-transistorn (eng. Metal Oxide Semiconductor) demonstrerades första gången år 1960 vid Bell Laboratories i USA. Den är en utveckling av FET­ transistorn (Fälte ekttransistorn) som konstruerades redan på 1950-talet, samtidigt som den bipolära transistorn, och dess fullständiga namn är egentligen MOSFET (eng. Metal Oxide Semiconductor Field Effect Tran­ sistor). Svårigheter att bemästra problem vid tillverkningen av MOS-tran­ sistorn gjorde att det dröjde till slutet av 1960-talet innan MOS-transistorn fick sitt kommersiella genombrott, när·mare bestämt till år 1968, då det amerikanska företaget Intel grundades och började introducera halvledar­ minnen och 1nikroprocessorer och då det amerikanska företaget RCA intro­ ducerade den första CMOS-familjen CD 4000 av digitala standardkretsar. MOS-transistorn medger mycket hög packningstäthet, miljontals MOS­ transistorer på ett chip och låg effektförbrukning. MOS-transistorn har var·it förutsättningen för den fantastiska elektronikutvecklingen sedan 1970-talet.

Det finns två huvudtyper av MOS-transistorn, n-kanal (nMOS) och p-kanal (pMOS), vars schematiska uppbyggnad visas i figur 6.1 nedan. - MOS­ transistorn har fyra elektroder, emitter (eng. source) S, kollektor (eng. drain) D, styre (eng. gate) G, och substrat (eng. substrate) B. Substratet, underlaget, benämnes på engelska även body och bulk, därav beteckningen B för substratelektroden. De engelska orden source och drain är så allmänt vedertagna att vi normalt använder dem i den följande framställningen i stället för emitter och kollektor. MOS-transistorns symboler visas också i figuren och som synes finns det två symboler för respektive typ av MOS-transistor, vilket beror på att MOS­ transistorn kan vara av antingen anrikningstyp (eng. enhancement type) eller utarmningstyp (eng. depletion type), begrepp som kommer att för­ klaras längre fram.

© Studentlitteratur

313

6 MOS-transistorn Grindar i CMOS och nMOS

nMOS-transistor:

styre

G

G

8 Source

Gate L

Drain

D metall

isolator (kiseldioxid)

S

D B Anrikningstyp G

metall - __ kanal­ område

D S B Utarmningstyp

p-substrat metall

Substrat

pMOS-transistor:

styre

G

S Source

Gate L

Drain

G

D metall

s

isolator (kiseldioxid)

D B Anrikningstyp

metall - __ G

kanal­ område

n-substrat metall

s

D B Utarmningstyp

Substrat

Figur 6. 1 nMOS-transistor och pMOS-transistor.

3 14

© Studentlitteratur

6. 1 MOS-transistorn

Source- och drain-områdena utgörs i nMOS-transistorn av kraftigt n-dopad kisel i ett substrat av p-dopad kisel, medan det i pMOS-transistorn är precis omvänt, dvs source- och drain-områdena utgörs av kraftigt p-dopad kisel i ett substrat av n-dopad kisel. Genomgående är pMOS ''tvärtom'' i förhål­ lande till OS, t.ex polaritet på matningsspänning, ström1·iktningar; nMOS och pMOS är komplementära på samma sätt som de bipolära tran­ sistorerna npn och pnp. Styret är isolerat från kanalområdet med ett lager oledande kiseldioxid (Si0 2 ), ett material som genomgående används som isolator vid uppbygg­ naden av MOS-transistorn. Numera tillverkas styret normalt av det ledande materialet polykristallinskt kisel (eng. polysilicon), som har mycket god ledningförmåga, men ursprungligen tillverkades det av metall (aluminium), därav namnet MOS (Metal Oxide Semiconductor). P.g.a. det isolerande oavsett pola1·iteten hos inspänningen på styret. Det isolerande oxidskiktet mellan styre och kanalområde har normalt en tjocklek av ca 0, 05 - 0, 1 µm. Kanallängd (L) och kanalbredd ( vill man naturligtvis göra så små som möjligt för att få plats med så många transis­ torer som möjligt på ett chip. Tillverkningsprocessen för integrerade kretsar är till stor del en fotografisk teknik med fotomasker, se figur 6.2 nedan, och man brukar ange minsta möjliga linjebredden som mått på vad tillverkningsprocessen medger i inte­ grationsgrad. Idag är linjebredder (och kanallängd och kanalbredd) av stor­ leksordningen 0, 1 µm möjliga att åstadkomma i tillverkningsprocessen. Kanallängd och kanalbredd har betydelse inte bara för packningstätheten, utan också för snabbheten hos transistorerna, ty ju mindre transistorer, desto mindre kapacitanser och dä1·med snabbare upp- och urladdningar (omslag från logiskt O till logiskt 1 och tvärtom). Kanallängd och kanal­ bredd har också betydelse för transistorernas strömdrivningsförmåga, ty kollektorströmmen iv (strömmen genom kanalen) är proportionell mot kvo­ ten W/L.

© Studentlitteratur

3 15

6 MOS-transistorn Grindar i CMOS och nMOS Ultra v1olet light R1otores1st R1otomask -.-. ..

. ··- .·.·.•, . .. ·... ..·,·....·.·.-. .·..

·-: . :-. _._.-:-_. :-. -:·- .· .•. : -:-:-:-::ii:)·:=:·i :·t -:- -.-.-:-: - . .-:-.:-:::-.:.::(;:; .-: :-·-:-·-:- -:· -· .-: . _.;._: .-:•-:::.::: :::�::--:: _:::::.:::-:• i:�?{t -./;t)·/::.·.·.·.· : ·-.-:::.·..::·-... -:-'.;:· '.:-:··· '

'

... •

·.

..

.

....

.. ...

. . ... . . . . ::-:.:, _:;.;:-· ·•:•.•=· -:-­

. --

..

..

--

.

.•

Silicon

Silicon dioxide

..

Fig ure 1 1 .2

Figure 11.1

Etching of silicon diox1de

Po�mer1zed photoresist .-'......-.

·•:-:-·

Figure 1 1 .4

Figure 11.3

Doping wth 1mpur1ty atoms -·

. ..:-: ' '' .;,:-:,:-: -... . . ... . .

..

.

..:-:.:-:- -:­ . ' . .. .. .. -..•.·. ... ..·..-... '.'. :-. --:-:-:-:-:-:-: :::::::::::::: . .... . . . ·.·.·-• .·.·.·.•.·.·.· .i. ..i. ..-..il.�.!.... ...i ....•.!i.-�.i.!.�.!i.!�: -- - . .- .- '.·.. ·'.-'.·:•·.: :.·. ..·. . . . ·.-,.-..... ·.· ·.'.·.·.•.·-. . .· ·,· ·.·.•.• ........ - . '-. - . . . . . .. - ' . . ' ·..-.-. .

·-·-·-·-·-·-·-·-•-·-·-·-•--.--·-·-·-·-

..

..... ..

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

.........

·i� !i� i�!i� !i� i�iJ

........

.

.. ..

'.'.'-

,•

..

----.

-....-



Figure 11.5

Figur 6. 2 Schematisk bild av tillverkning av integrerade kretsar. (Siemens: ''Com­ ponents Technical Descriptions and Characteristiscs for Students, Edition 1 986 '' ).

316

© Studentlitteratur

6. 1 MOS-transistorn

F

JOD

MOS-transistorn används i digitaltekniken som switch (strömbrytare) med två lägen. I det ena läget Till (eng. On) eller Sluten (eng. • •Closed) kan ström flyta genom kanalen. I det andra Från (eng. 0 eller Oppen (eng. Open) kan ström inte flyta genom kanalen. En analogi med en mekanisk switch visas nedan. G

G

s

8

D

s

o D

Figur 6. 3 Analogi nMOS-transistor och mekanisk switch.

En nMOS-transistor av anrikningstyp är tillverkad så att den saknar nega­ tiva laddningsbärare, elektroner, i kanalområdet. Vägen mellan source- och drain-elektroderna utgörs av två motriktade dioder, np och pn, med p-områ­ det (kanalområdet) gemensamt, se den övre transistorn i figur 6.1 ovan. En pn-övergång är en diod enligt figur 6.4 nedan, en komponent som leder ström iF i fram1·iktningen (från p till n), medan den i backriktningen (från n till p) endast leder läckström. För att dioden skall leda i framriktningen krävs att framspänningen vF över dioden är minst ca 0,7 V.

-

+ p

n

p n-övergång

diod

Figur 6. 4 pn-övergång som diod.

Utan någon inspänning på styret så kan det alltså endast flyta läckström (di­ odbackström) mellan source och drain och switchen är öppen. För att ström skall kunna flyta mellan source och drain, dvs switchen skall bli sluten, så måste elektroner föras in i kanalen så att det blir en n-kanal mellan de n-do© Studentlitteratur

317

6 MOS-transistorn Grindar i CMOS och nMOS

pade source- och drain-områdena. Om styret läggs på positiv potential i förhållande till substratet så kommer elektroner att attraheras in i kanalom­ rådet från det p-dopade substratet och de n-dopade source- och drain-om­ rådena. När potentialen på styret överskrider en viss positiv tröskelspänning (eng. threshold voltage) Vr, har det kommit in så många elektroner i kanalområdet att en kanal (ledare) bildats mellan source och drain och switchen är sluten, se figur 6.5 nedan. MOS-transistorn är en icke-ideal switch med en viss till-resistans, som i den mekaniska switchsymbolen markerats med en resistans rn (index n för n-kanal) i serie med switchen (ideal switch).

s

D

-

G n+

00000 00000

p-substrat B

n+

v 8 > Vr medför kanalen anrikad på elektroner och switchen sluten .

-

Figur 6.5 nMOS-transistor av anrikningstyp med kanalen anrikad på elektroner.

Med switchen sluten, elektroner i kanalen, så kan en ström flyta mellan source och drain om en spänning läggs över dem, se figur 6.6 nedan. Ström kan alltså flyta i båda riktningarna i kanalen. MOS-transistorn är symme­ triskt uppbyggd och source och drain är egentligen definierade först när spänningen är pålagd över dem, elektroden med högsta potentialen blir drain. Med substrat och source jordade, som i figur 6.6, så kom1ner en kollektorström iv att flyta från drain till source. Ökas inspänningen Vcs så ökar kollektorströmmen iv , se figur 6.6a, vilket i den enkla modellen för nMOS-transistorn med en resistor i serie med en switch, motsvaras av att resistansen rn minskar.

318

© Studentlitteratur

6.1 MOS-transistorn

Vi kan sålunda konstatera att för denna typ av nMOS-transistor tillverkad så att kanalen s ar negativa laddningsbärare, krävs att spänningen vas mel­ lan styre och source är större än en viss tröskelspänning VT, för att kanalen skall bli anrikad på negativa laddningsbärare och ström kunna flyta mellan source och drain. Denna nMOS-transistor är av anrikningstyp (eng. en­ hancement type). En nMOS-transistor kan också tillverkas med kanalområdet n-dopat, dvs. innehållande negativa laddningsbärare, vilket innebär att det utan inspän­ ning på styret kan flyta ström mellan source och drain om en spänning läggs över dem. För att denna transistor skall bli strypt måste en negativ in­ spänning appliceras på styret, så att de negativa laddningsbärarna stötes bort från kanalområdet och kanalområdet utarmas på laddningsbärare. Denna nMOS-transistor, för vilken alltså tröskelspänningen VT < 0, är av utarmningstyp ( eng. depletion type).

G

s

-

G

n+

•••

•• •

eeeee eeeee

-s

D

--substrat B



lo

+

G

D B

+

---- 0

lo

lo

D

Vos

s

+

-

a. Anrikningstyp (eng. enhancement type)

+





G

s

---- 0

B

lo

Vos

-

b. Utarmningstyp (eng. depletion type)

Figur 6.6 nMOS-transistor, iv =f(vcsJ-

© Studentlitteratur

319

6 MOS-transistorn Grindar i CMOS och nMOS

Transistorsymbolerna för anrikningstyp och uta1·mningstyp skiljer sig vad gäller linjen mellan source och drain. För anrikningstypen är linjen bruten, symboliserande att det utan inspänning på styret ( vGs = 0), inte finns någon kanal mellan source och drain, inga laddningsbärare i kanalområdet, ström­ vägen mellan source och drain är bruten. För utarmningstypen är linjen hel, symboliserande att det utan inspänning på styret ( vGs = 0) finns en kanal mellan source och drain, laddningsbärare i kanalområdet, strömvägen mel­ lan source och drain är sluten. Substratpilen i transistorsymbolen för nMOS-transistorn pekar in mot kanalområdet. Pilen markerar riktningen hos de pn-övergångar (dioder) som utgörs av p-substratet och n-01nrådet vid source respektive p-substratet och n-området vid drain. Dessa dioder måste alltid vara förspända i back­ riktningen, dvs. VSB > 0 och VDB > 0, så att ingen ström går i substratet (bortsett från backströmmen i dessa dioder). Därför måste en nMOS-tran­ sistor med substratet jordat som i figuren 6.6 ovan, ha en positiv matningsspänning. Substratet får alltså i nMOS-transistorn inte ha högre potential än source och drain. En intressant fråga är vad som händer om substratet har lägre po­ tential än source. Substratet kan betraktas som ett extra styre, som dock har avsevärt mindre inverkan på kanalen än det riktiga styret. Om substratet har negativ potential i förhållande till source, dvs spänningen VsB mellan source och substrat är positiv, kommer transistorn att strypas hårdare och kräva ett högre värde på vGs för att ström skall kunna flyta mellan source och drain, vilket är liktydigt med att nMOS-transistorns tröskelspänning VT har blivit högre (förflyttats på vGs-axeln åt höger i positiv riktning). Fenomenet bru­ kar på engelska benämnas ''body-effect''. Tröskelspänningen VT för nMOS­ transistorn som funktion av spänningen VsB mellan source och substrat (body), kan approximativt skrivas

V T �:-. V TO + y. v SB där VTo är tröskelspänningen för vsB normalt ligger i området 0,3 - 0,7.

(6.1)

= 0.

y är en transistorparameter som

pMOS-transistorn kan liksom nMOS-transistom tillverkas som anriknings­ typ respektive utarmningstyp. För att ström skall kunna flyta mellan source och drain i en pMOS-transistor av anrikningstyp måste positiva laddnings­ bärare, ''hål'', föras in i kanalen så att det blir en p-kanal mellan de p-do­ pade source- och drain-områdena. Om liksom för nMOS-transistorn sub­ strat och source jordas, så kommer positiva laddningsbärare att attraheras in 320

© Studentlitteratur

6.1 MOS-transistorn

i kanalen med en negativ inspänning på styret, vGs < 0, se figur 6.7 nedan. Med inspänningen mer negativ än en viss tröskelspänning V T, dvs. vGs < VT, så finns det så många positiva laddningsbärare i kanalen att en ström kan flyta mellan source och drain och switchen är sluten. Om nu drain läggs på negativ potential så kommer en kollektorström att flyta från source till drain (med positiv strömriktning markerad från drain till source i figuren, sålunda en negativ kollektorström iv)- Ju större negativ inspänning vGs, desto större kollektorström iv, se figur 6.7a, vilket i den enkla modellen för pMOS-transistom med en resistor i serie med en ideal switch, motsvaras av att resistansen rp minskar.

G

s

G

-

s n-substrat B -

lo

D

-

G

lo



B

s

lo Vos

VT

VGS

+'---- 0

D B VGS

+

a. Anrikningstyp (eng. enhancement type)

-

G



lo Vos

s

VT

V Gs

+:....,___ 0

VGs

+

b. Utarmningstyp (eng. depletion type)

Figur6.7 pMOS-transistor, iv =f(vcsJ-

I transistorsymbolen för pMOS-transistom är substratpilen riktad från kanalområdet ut från substratet. Liksom för nMOS-transistom markerar pilen riktningen hos de pn-övergångar (dioder) som utgörs av p-om1·ådet vid © Studentlitteratur

321

6 MOS-transistorn Grindar i CMOS och nMOS

source och n-substratet respektive p-området vid drain och n-substratet, vilka måste vara förspända i backriktningen, dvs. V SB < 0 och V 08 < 0. Därför måste en pMOS-transistor med substratet jordat ha en negativ matningsspänning

apac1 nser Digitala kretsars snabbhet, förmåga att snabbt slå om från logiskt O till lo­ giskt 1 och tvärtom, bestäms av kapacitanserna i kretsen, som vid omslag skall laddas upp eller laddas ur. Kretsens kapacitanser utgörs av kapaci­ tanserna hos transistorerna, ledningar·na på chippet, ledningar·na mellan kapslar·na etc. Upp- och urladdningstid bestäms av strömmens storlek och kapacitansens storlek, ju större ström och mindre kapacitans, desto snab­ bare upp- och urladdning. MOS-transistorn har själv många kapacitanser som visas i figur 6.8 nedan. Kapacitanserna C08 och Cs8 är diffusionskapacitanser i de backspända dioderna, pn-övergångarna, mellan substrat och drain respektive mellan substrat och source. Dessa kapacitanser beror inte bara på MOS-transis­ torns geometriska uppbyggnad och material, utan även på backspänningen i pn-övergången och varierar med denna spänning.

G CGS

D B

s

CSB

Figur6.8 Kapacitanser hos en MOS-transistor.

322

© Studentlitteratur

6.1 MOS-transistorn

Styret och kanalen kan betraktas som en plattkondensator enligt figuren nedan, där de ledande plattorna utgörs av styret som ju är en ledare och av kanalen som ju också är en ledare då den innehåller laddningsbärare. styre

L

4- 0 och för pMOS-transistorn är tröskelspänningen VTp < 0. För insignalen v1 = 0 är den undre transistorn, nMOS-transistorn, strypt, eftersom för denna Vcsn = 0 < VTn, medan den övre transistorn, pMOS-transistorn, är ledande, eftersom för denna =

va:=Voo·

För insignalen v1 = V 00, blir det tvärtom, dvs den undre transistorn är ledande, eftersom v GSn = V 00 > V Tn, medan den övre transistorn är strypt, = nalen v0 ··-· 0. Vi konstaterar sålunda att CMOS-inverteraren vänder om (in­ verterar), bildar komplementet till, insignalen. I CMOS-inverteraren arbetar nMOS- och pMOS-transistorn som switchar. nMOS-transistom brukar benämnas pull-down-transistor, eftersom den har till uppgift att dra ned utsignalen till OV, medan pMOS-transistorn benämnes pull-up-transistor, då den har till uppgift att dra upp utsignalen till Voo· 326

© Studentlitteratur

6.2 CMOS-inverteraren

Vid angivande av funktionen för digitala kretsar brukar symbolerna L och H användas för potentialerna Låg (Low) respektive Hög (High), i detta fall OV (V ss) respektive V 00. CMOS-inverterarens funktion kan då anges enligt funktionstabellen i figur 6.11b nedan. I figur 6.11a visas logiska symbolen för en inverterare enligt IEC-standard, där ringen på utgången symboliserar invertering. I digitaltekniken använder man normalt de binära symbolerna O och 1. Det finns två sätt att representera potentialerna L och H med symbolerna O och 1, s.k. positiv logik med representationen L H O och H H 1, (den naturli­ gaste representationen), och negativ logik med representationen L H 1 och H H 0. För inverteraren blir uppenbart funktionstabellen med de binära symbolerna O och 1 enligt figur 6.1 lc densamma, oavsett vilken logik som används. Inverteraren realiserar den logiska funktionen ICKE (NOT), ty ''Y = 1 om och endast om IC (A = 1)''. I figur 6.1 ld anges logiska uttrycket för inverteraren, där operationen IC symboliseras med ett primtecken ("), men som påpekades i kapitel 2 i genomgången av grindarna, så finns det flera andra symboler för operationen IC .

A

1

y

a. IEC-symbol

A L H

y H L

A 0 1

b. c. Funktionstabeller

y 1 0

y = (A)' d. Logiskt uttryck

Figur 6.11 Inverterare. ••

Aven om digitaltekniken till största delen handlar om O:or och 1 :or och logiska symboler, så är det som tidigare påpekats också viktigt att känna till komponenternas fundamentala elektriska egenskaper, såsom spännings­ och strömnivåer för in- och utsignaler, fördröjningar, effektförbrukning osv. Vi skall nu studera CMOS-inverterarens statiska och dynamiska egenska­ per. - Vad beträffar de statiska egenskaperna, så har vi ovan bara bestämt utsignalen v0 för två värden på insignalen, för v1 = 0 V och v1 = V 00, och skall nu gå vidare och studera överföringskarakteristiken, v 0 =f(v1) för 0 < v1 < V 00. När det gäller de dynamiska egenskaperna, så skall vi studera in- och utsignal i tidsplanet, stig- och falltider samt fördröjningar.

© Studentlitteratur

327

6 MOS-transistorn Grindar i CMOS och nMOS

Overföringskarakteristiken Vo = rv1) ••

I figur 6.12 nedan visas v0 =f(v1) och iv =f(v1) för en CMOS-inverterare förO< v 1 VTn, men nära VTn, så är resistansen rn i nMOS-transistom Ml mycket stor och resistansen rp i pMOS-transistom M2 liten, varför spänOS- och pMOS-transistorema geometriskt utformats för sym111etrisk överföringskarakterstik). Ökar sedan v 1 ytterligare mot VDD så fortsätter rn och v O :.-:: V ss= 0 V.

328

© Studentlitteratur

6.2 CMOS-inverteraren

+

+

+

-· - · · -

-· - · · +

+



v,

+

+

+

+

v,

v,

-

-

-

1V o U(2)

31uA�------------------------------------------------------------------------------------------� I I

I I

I I I

I

·

2 6uA , I I

·

· ·

·

I

I I I I

·

'

·

·

·









.

.

.

..

.

·









·

·

·

·

·

·

·

· ·

·

·

·

· ·

·

·

·

I I

.

·

·

·

·

I I





· ·

· ·

·











.

.

.

.

.











I

I

·

·

·

I I

,

I I

I



11uA-J

.

.

I I

I



I I

l j aA : ---,-----r----::-:'.-_-:'": �,--------7--------7--------,---------=-r ::-:: _�--==-=----.---�-__

IIU

D

6.5U

ID(lt1)

Figur 6.12

1. IIU

1.5U

2. IIU

2.5U

3.nu

3.5U

11.UU

4.5U

5. DU

UI

v0 = f(v1) och iv = f(v1) för en CMOS-inverterare - simulering med PSpiceför O < v1 < 5 V och Vvv = 5 V samt Vrn = 1 V och Vrp = -1 V.

(Kretsfilerna till simuleringar·na visas i appendix 3.). © Studentlitteratur

329

6 MOS-transistorn Grindar i CMOS och nMOS

Vvv - Vrp < v1 < Vvv pMOS-transistom M2 är s pt, ty vasp = v1 - V 00 > VT p · nMOS-transis­ tom Ml leder, ty vasn = v1 > VTn · Ström1nen iv från V 00 genom de båda transistorerna till jord utgörs bara av läckströmrnen genom pMOS-transis­ tom, som är mycket liten. Eftersom pMOS-transistom är strypt och nMOS­ transistom ledande blir utspänningen v0 :-,; V ss = 0 V.

Logiska nivåer I inledningskapitlet berördes den fundamentala principen för representation med binära signaler, som åter visas nedan. V + 5 V -t-i-vDD positiv logik

H

1

I -"

Odefinierad

L

0

0

Figur 6.13 Principenför en binär signal.

Den binära signalen ovan är exemplifierad med en spänning i området V ss (0) till V 00 , som är kvantiserad i två diskreta intervall avbildade på de binära storheterna L och H, och i positiv logik på de binära siffrorna O re­ spektive 1. Intervallen är åtskilda av ett område där signalen inte är defini­ erad, den är varken L eller H. Vi skall nu analysera förutsättningarna för att utsignalen hos en CMOS-in­ verterare skall kunna vara insignal till en annan likadan CMOS-inverterare och ge korrekt logisk funktion. Analysen baseras på figur 6.14 nedan.

330

© Studentlitteratur

6.2 CMOS-inverteraren

VoHmin

•••••••••••••• • •• • • • • • • • ••••• • • • •

- VIHmin

• • • • • • • • • • • • • • • • • •••••••••••••••

Odefinierad

Odefinierad -



1

VI Lmax

. . . . . . .. . . . . . . . . . . . .. . . . . . . . . ...

VoLmax

+



lo

II

+

__ o

1

C

o_

Figur6.14 Signalnivåer v0 och v1.

Ur figur 6.14 ovan framgår attför korrekt logiskfunktion måste gälla (Index OH och OL står för Output High respektive Output Low): V IHmin < V OHmin V ILmax > VOLmax Störmarginalerna (eng. noise margin) NM8 och NML definieras:

NMH = VoHmin - V1Hmin L = V1Lmax - VoLmax

För säker funktion hos systemet störmarginaler som möjligt.

är

det självklart önskvärt med så stora

För CMOS-inverteraren i figur 6.10 ovan konstaterade vi att v08 . · V 00 för v1 = 0 V och att v0L :::: 0 V för v1 = V00 . v 08 ::-: V00 och v0L :--: 0 V gäller bara om CMOS-inverteraren ej är belastad. Om vid utsignalen Låg hos CMOS-inverteraren, ström sänks (eng. sink) genom nMOS-transistom till jord, så ökar spänningen vvsn över nMOS-transistom (över rn i modellen), © Studentlitteratur

331

6 MOS-transistorn Grindar i CMOS och nMOS

se figur 6. 1 5a. Om vid utsignalen Hög hos CMOS-inverteraren, ström utma­ tas (eng. source) från V00 genom pMOS-transistom, så ökar spänningen vvsp över pMOS-transistom (över rP i modellen) och v 0H = V00 - vvsp sjunker, se figur 6. 1 5b. +

3 M2

2

+

+

M1

-

-

0

0

+

3

M2

+ V =0

1

2 Dn

+

Vo H

Vo H

Gn

M1

-

0

RL

sn

-

VDD

0

0

Figur 6.15 v 0 =f(i o).

332

© Studentlitteratur

6.2 CMOS-inverteraren

Utspänningarna v 0H och v0L beror sålunda av belastningen. Om belast­ ningen utgörs av bara CMOS-ingångar, vilka ju är mycket högohmiga, så är belastningsströmmen mycket liten och vOH : = VDD och v OL � = 0 V - så är normalt fallet mellan grinda1·na inne på chippet. Vid anslutning av en krets (kapsel) till andra kretsar (kapslar) måste spännings- och strömnivåer beak­ tas. Kretsfabrikanten specificerar för kretsens utgångar VOHmin och VOLmax och för kretsens ingångar V1Hmin och V1Lmax· Det är naturligtvis önskvärt med standardiserade spänningsnivåer som un­ derlättar sammankoppling av kretsar. Det finns en sådan standard - s.k. TFL-standard. Akronymen TTL står för Transistor Transistor Logic, nam­ net på en kretsfamilj i bipolär teknik, som kom fram under mitten av 1960talet. Den har haft mycket stor betydelse för digitalteknikens utveckling ända fram till mitten av 19 80-talet. Kretsfamiljen TTL innehöll en stor mängd standardkretsar, såsom grindar, multiplexrar, avkodare, r·· are, skiftregister, adderare. I och med genombrottet för de programmerade kret­ sarna under mitten av 1 9 80-talet, innebärande att en enda programmerbar krets kunde ersätta många L-kretsar, så förlorade TTL-familjen sin be­ tydelse. Under TTL-eran var anpassning till TTL-nivåema viktig för alla kretsfabrikanter, eftersom TTL-kretsar ingick i de flesta digitala system. TTL-nivåema blev därför standard och kretsfabrikanter angav i sina data­ blad TFL-kompatibel (eng. TFL compatible), som tecken på att kretsen kunde sammankopplas med kretsar som uppfyllde kraven för TTL•• nivåerna. Aven om TTL-kretsar nu inte i någon nämnvärd utsträckning används i nykonstruktioner så lever TTL-standarden kvar. TTL-nivåema är: VOHmin

= 2, 4 V

V1Hmin

= 2, 0 V

VOLmax

= 0, 5 V

V1Lmax

= 0, 8 V

© Studentlitteratur

333

6 MOS-transistorn Grindar i CMOS och nMOS

CMOS-inverterarens snabbhet, dvs. hur lång tid det tar för utspänningen v0 att slå om från Låg till Hög då inspänningen v1 slår om från Hög till Låg och vice versa är naturligtvis av stor betydelse. Omslagstidema beror på CMOS-inverterarens förmåga att ladda upp och ladda ur diverse kapaci­ tanser, såsom kapacitanser hos MOS-transistorer och metalledningar, som kort berördes i den tidigare genomgången av MOS-transistorn. Låt oss analysera omslagstider för en CMOS-inverterare vars utgång är kopplad till en likadan inverterare på chippet enligt figuren nedan. -----� 1 0----------� 1

3

+

M2

2

1

+

+

-

M1

0

-

-

Figur 6.16 CMOS-inverterare med en belastningskapacitans CL.

För att förenkla analysen av omslagstidema har alla relevanta kapacitanser, såsom utgångskapacitanserna hos första CMOS-inverteraren, kapaci­ tanserna hos metalledningarna som förbinder invertera1·na, ingångskapaci­ tanserna hos andra CMOS-inverteraren, ersatts med en enda sammanslagen (eng. lumped) kapacitans CL, ansluten till den första CMOS-inverterarens utgang. •

334

© Studentlitteratur

6.2 CMOS-inverteraren

+

3

+

3

M2

M2

...___, DP

1

+

D"

V1

2 + Vo

G"

M1 _

Vss (0)

0

2

+

D"

V1

G"

Cl

sn

DP

1

+

M1

-

Vo

cl

sn

-

0

urladdning

uppladdning

5 . IU - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- ...-----------•









SEL>>































IU -'- - - - -'----------------'-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _J

-------------------------------------

c U(1) •



































I I I I I I I

I I I I I I

- - - - - - - - - - - - - - --- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IIU

c U(2)

2 8 1uA - - - - - - - - - - - - - - - - - -·- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1

I

I

r-------..._____-------.:___ ___�--� •

I I I

I I I I I I I

























1 I

I

I I I

I



I

- 2 1 DuA + - - - - - - - - r - - - - - - - - ,- - - - - - - - , - - - - - - - - , - - - - - - - - , - - - - - - - - T - - - - - - - - r - - - - - - - - r - - - - - - - - r - - - - - - - � Os

C

I ( CL )

2ns

lins

6ns

Hns

1 0ns

1 2ns

1 .lins

1 6ns

1 Rns

2 0ns

T i 11te

Figur 6.1 7 Transientanalys av CMOS-inverterare.

Under CMOS-inverterarens viloläge med utgången Låg eller Hög går en­ dast läckström genom transistorerna och kapacitansen CL är urladdad till vOL r.= 0 V eller uppladdad till vOH VDD· Kapacitansens CL storlek har ingen betydelse i viloläget, vilket den däremot har vid omslag. När CMOS­ inverterarens utgång skall slå om från Låg till Hög skall kapacitansen CL uppladdas från VDD genom pMOS-transistom och när utgången skall slå =�

© Studentlitteratur

335

6 MOS-transistorn Grindar i CMOS och nMOS

om från Hög till Låg skall kapacitansen CL urladdas genom nMOS-transis­ torn till jord. Viktiga dynamiska parametrar för digitala kretsar är fördröjning tp (eng. propagation delay time) mellan insignal och utsignal, stigtid tr (eng. rise time) och alltid 1J (eng. fall time) hos utsignalen. Fördröjningen mäts vid signalernas 50 %-nivå och brukar anges dels för då utsignalen går från Hög till Låg, betecknad tpHL, dels för då utsignalen går 10 %-nivå och 90 %-nivå. För transientanalysen i figur 6.17 är dessa tider för tydlighets skull markerade i en separat figur nedan. Tiderna uppmäts till

= 1,8 ns

LH

= 3,7 ns 5 . HU

tr = 3,7 ns

- - - -r - - - - - - - - - - - - - - - � - - - - - - - - - - - - - - - - - I

I I

I

I



.







•:









.

.

.

.



. . . . . . . ., . . . ' . ' . . . . . . . . . . ' . . . . . . . . . . . . . . . . . . . . ' . . . . . . . . . . . . . . . . ' . ' . . . . . . . . . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

I

i'

I I I

:•

I.

I I

I

,

Ja . BU �

I

I I I I I I I I



I

I





,

·

. . ' . . . . . . .. .. . . ' . ' . . . . . . . ' . ' . . .. .. . . . . . . ' . . . ' . ' . ' . . . . . . . . - . . . ' . . . ' . - . . . .

.

.

·

·

·

.

.

'





·

· : ·



• • • •

·

:

·

·

·

·

·

·

·

·

·

·

·

·

.











.

'

.







































I I I I I I I I I

.



:

3 . nu -,

.

. .- .

.

.

.

.

.

.

.

.

.

.

'

.









.

'

.

.

.

'

.

.

.

.

.





'

.

.

.

.

.

.

'

.







I

.

.

.

.

.

.

.

.

• • •

' '

• • • •

I I

2 . ltU �



'



I





.

.

'



. • ' '

. ''

I I I I • -• • H ••O-OH

1

I I I

--�-

·

'

.











'





























.

: : · ·



•••-• ..••• .. ••-•• -• -•-•• N • OOO>• oooo ooo oooo>•HO OH>••·•••.. •-•••oo•O .. • • ..• • - • • - • • -- • •OOOONO•Mo••OO





o••••••••••oooO•

,..,,...,...,,, , 0 --�

-, .., .... , , . • - • ooOoooo••••••··• ..••-••-'"-"-•-• ....... ....... 1





I I I

·

' ---.-------.-----r--__. - - - -, - - - - - - - - - , - - - - - - - - ,- - - - - - - - - r - - - - - - - - _.__ , ----,,----r--'1

D

.

'

• O

I I

65

.



I

I

'

• • • •



1 . IU ""

' •

'

• • ' •

• •

nu

= 1,8 ns

HL

---2ns U(1 ) : ◊ : U(2)

"-n s

6n5

8ns

1 Dns

1 2n5

1 4ns

1 6ns

1 Hns

I

2 Dns

Figur 6.18 Fördröjningar, stigtid och /alltid för transientanalysen i figur 6.1 7.

336

© Studentlitteratur

6. 2 CMOS-inverteraren

ng CMOS-inverterarens statiska effektförbrukning är mycket liten. I viloläge och obelastad går endast läckström genom pMOS- och nMOS-transistom. Den väsentliga effektförbrukningen är i stället dynamisk och orsakas av omslagen från Låg till Hög och tvärtom. Vi har tidigare sett vid studium av CMOS-inverterarens överföringskarakteristik hur pMOS- och nMOS-tran­ sistorn samtidigt leder i omslagsområdet och ger upphov till en ström iv genom båda transistorerna. Detta är dock bara en mindre del av den dyna­ miska effektförbrukningen, vars huvuddel i stället härTör från upp- och ur­ laddningar·na av belstningskapacitansen CL. Denna effektförbrukning P är lika med

P = där V00 är CMOS-inverterarens matningsspänning, CL belastningskapaci­ tansen och f omslagsfrekvensen. Vi konstaterar alltså att ju högre omslagsfrekvens, desto högre e ektför­ brukning.

© Studentlitteratur

337

6 MOS-transistorn Grindar i CMOS och nMOS

• nMOS-inverteraren, representanten för nMOS-tekniken, innehåller endast en typ av transistorer, nMOS-transistorer, till skillnad från CMOS-inverter­ aren, som innehåller en nMOS- och en pMOS-transistor. nMOS-inverter­ aren är uppbyggd av en nMOS-transistor, som arbetar som switch och pull­ down-transistor, och en pull-up-komponent. I figur 6. 1 9 nedan visas upp­ byggnadsprincipen med en resistor R som passiv pull-up-komponent.

-up +

3 . passiv pull-up

· · ·. R · · . . · _. . .

. . ..

..

.

.

.

.

.

..

.. .. . .. . . . . . . . .. . .. .

.

.

2 +

1

M1

-

0

-

Figur 6.19 nMOS-inverterare med en resistor R som passiv pull-up.

För v1 = 0 är switchtransistom Ml strypt, endast läckström flyter genom Ml, och alltså är utspänningen v 0H :- : V 00 . För v1 = V 00 är switchtransis­ torn M l ledande och utspänningen v0L bestäms av spänningsdelningen mellan rn och R och med tillräckligt stort värde på R kan utspänningen fås att bli Låg. Kretsen är sålunda en inverterare. voLmax beror

alltså av storleken på pull-up-resistom R. En väsentlig skill­ nad mellan nMOS-inverteraren och CMOS-inverteraren, är att i viloläge och obelastad yter i nMOS-inverteraren en icke örsumbar ström iv vid Låg utgång, medan i CMOS-inverteraren endast yter läckström.

338

© Studentlitteratur

6.3 nMOS-inverteraren

För att begränsa effektförbrukningen i nMOS-inverteraren krävs en pull-up­ resistor av storleksordningen 1 00 kQ. Realisering av en så stor resistor i kisel på chippet kräver en kiselyta mer än hundra gånger större än nMOS­ transistoms. Nor1nalt konstrueras därför inte nMOS-inverteraren med en re­ sistor som pull-up, utan i stället med en transistor som aktiv pull-up, en nMOS-transistor av utar·mningstyp som i princip uppför sig som en resistor.

+ M2

3

i--- · ··-

_ aktiv pull-up

4

2

· . ------=:...__-\,.. 01 --- -

1

+

I I

M1

-

0

-

Figur6.20 nMOS-inverterare med en transistor som aktiv pull-up.

I figur 6.21 och 6.22 nedan visas överföringskarakteristik och transientanalys, simulerad med PSpice, för en nMOS-inverterare med V Tnl = 1 V och VT02 = -3 V. nMOS-transistom av utarmningstyp som aktiv pull-up är alltid ledande eftersom Vcs2 = 0 > VT02 = -3 V. (Observera att VT02 varierar p.g.a body-e..,.., ekten, eftersom substratet (body) är anslutet till jord, medan potentialen hos source bestäms av spänningsdelningen mellan M2 och M 1 , som varierar. rn2 varierar därför med potentialen på source). Vi ser i över­ föringskarakterstiken att en ström iv flyter i nMOS-inverteraren i viloläge vid Låg utgång. Vidare ser vi i transientanalysen att stigtiden är betydligt större än falltiden. Detta beror på att för att v OLmax skall bli tillräckligt liten, så måste resistansen rn2 göras avsevärt större än resistansen rnl . © Studentlitteratur

339

6 MOS-transistorn Grindar i CMOS och nMOS

5 . mu u

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - ,I

I I I I I I

I I I I I



I I

I I

I

I I I























SEL>> nu � - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - J a U(2)

R luA � - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - --- - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - ,

IJBU A �

·

·

· ·

· ·

·

·

·







· ·

·

·



















I I













I I















































eA L---,----�---�-::-: - -�--=--, - - - - - - - - , - - - - - - - - , - - - - - - - - -, - - - - - - - - - r - - - - - - - - , - - - - -- - - r - - - - - - - - 1 UU U . 5U a I D ( H1 )

1 . 0U

1 . 5U

2 . DU

2 . 5U

a . nu

3 . 5U

Il . DU

4 . 5U

5 . IIU

UJH

••

Figur 6.21 Overföringskarakterstik nMOS-inverterare.

5 . UU ..- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

------------------ -------------,









IU ...L. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - J

o U(2) 5 1"'1A -.---- - - - ------ - - - - - - ---- - - -- ---·--- --- - - ------ ------------------ --------- --- --- - --- - - - - - --- , I I I I I I

1A

I I I I I







































-S OOUA + - - - - - - - - - - - - - - r - - - - - - - - - - - - - - r - - - - - - - - - - - - - 7 - - - - - - - - - - - - - - , - - - - - - - - - - - - - - , - - - - - - - - - - -- - - i

Is

c::i I ( CL )

Sns

1 ons

1 5n s

2 0ns

25ns

3 1n s

Ti111e

Figur 6.22 Transientanalys nMOS-inverterare.

340

© Studentlitteratur

6.4 Grindar i CMOS och nMOS •





ar 1

M3

A

M2 B

nMOS

N2

B

M1 Vss

P1

P2

N1

O

CMOS

Enkla modeller av grindarna med switchar:

M3

P2- - - · -----

-··

P1

A o---- - - - . . . .

A - -----+--- . - . . - . . N2

B o---- · - - · - · -

B

M2

M1

Vss

nMOS

------ -- - - · N1

·---

O

CMOS

Figur 6.23 NAND-grind i nMOS och CMOS. © Studentlitteratur

34 1

6 MOS-transistorn Grindar i CMOS och nMOS

AB y LL LH HL HH

H H H L

AB y 0 0 1 1

0 1 0 1

A B

1 1 1 0

&

-

y

Y = (AB) '

Figur6.24 Sanningstabellför NAND-grinden i.figur6.23 ovan.

Ur transistorschemat för NAND-grinden framgår att förutsättningen för att utsignalen Y skall vara Hög är att inte båda pull-down-transistorema M l och M2 respektive N l och N2 leder, dvs. att inte båda insignalema A och B är Höga, eller formelit uttryckt med binära symboler att ''Y = 1 om och en­ dast om ICKE(A = l OCH B = 1)''. Kretsen realiserar alltså den logiska operationen IC -OCH (eng. NOT-AND, N D). Tidigare har fra ållits hur CMOS-inverteraren och nMOS-inverteraren är representativa för realisering av kretsar i CMOS- respektive nMOS-teknik och vi ser här hur realiseringen av NAND-grinden bygger på uppbyggnads­ principen för respektive inverterare. NAND-grindar med tre eller flera in­ gångar realiseras enligt sam1na princip, för varje ny ingång tillfogas i OS en ny pull-down-transistor i serie med de tidigare, och i CMOS ett nytt komplementärt transistorpar med pull-down-transistom i serie med de tidigare och pull-up-transistorn parallell med de tidigare. Observera alltså för NAND-grinden i CMOS hur pull-down-transistorema ligger i serie medan pull-up-transistorema ligger parallellt. NAND-grindens utimpedans varierar med insignalkombinationema. Exem­ pelvis blir vid Hög utgång utimpedansen lika med rp2 för insignalkombina­ tionen AB = 0 1 , medan den blir rp2/lrp 1 för insignalkombinationen AB = 00. I figur 6.25 nedan visas utimpedansen för samtliga insignalskom­ binationer. Utimpedansens var·iation med insignalskombinationema medför att omslagsområdets läge varierar och upp- och urladdningstidema varierar med insignalskombinationerna. AB 00 01 1 0 1 1

y 1 1 1 0

rut rP2 // rP 1 rp2 rp1 rN 1

+

rN2

Figur6.25 Utimpedansen hos NAND-grinden i CMOS för de olika insignal­ kombinationema.

342

© Studentlitteratur

6.4 Grindar i CMOS och nMOS

P1

M3

A ______ __

P2

Bo -- -----+-� ____ _..,__OY

M2

M1

.---- --- ---- y

N2

N1 0

0

CMOS

nMOS Enkla modeller av grindarna med switchar: Voo

M3

P1

A ------ -- · - · -

-··

B0 __ _____ __P _2_ _ . _ _ . _

---- --oy A o---- · - · . . . .

M2

M1

nMOS

N2

N1

CMOS

Figur6. 26 NOR-grind i nMOS och CMOS.

© Studentlitteratur

343

6 MOS-transistorn Grindar i CMOS och nMOS

Ur transistorschemat för NOR-grinden framgår att utsignalen Y är Hög en­ dast om inte någon av pull-down-transistorerna M l och M2 respektive Nl och N2 leder, dvs. inte någon insignal A eller B är Hög, eller formellt uttry­ ckt med binära symboler att ''Y = 1 om och endast om IC (A = 1 ELLER B = 1)''. Kretsen realiserar den logiska operationen IC -ELLER (eng. NOT-OR, NOR).

-gnn Operationerna OCH och ELLER är mer komplexa att realisera med transis­ torer än NAND och NOR. Detta beror på transistorns naturliga egenskap att invertera, som utnyttjas vid realiseringen av NAND och NOR, men som måste kompenseras med extra inverterare vid realiseringen av OCH och ELLER. Vi har redan i kapitlen 2 och 3 sett hur OCH och ELLER kan real­ iseras med NAND, NOR och inverterare enligt figur 6.27 nedan

A---. 1 AB ----.

&

1

· ·• •• Y = ((A B)')' · = AB

s ____

. ·• · · • .·· · •· · > 1

A __. 1

ELLER

= AB

1

OCH

OCH

A-· > 1 B-

Y - (A'+ B ')'

---i

1

Y _ = ((A + B)')' =A+B

·· • &

8 --1 1

• • · • . Y = (A 'B ' ) ' =A+B

ELLER

Figur6.27 Realisering av OCH-grind och ELLER-grind .

Vi har också i kapitel 4 sett hur grindnät med strukturen OCH-ELLER är ekvivalenta med grindnät med strukturen NAND-NAND och hur grindnät med strukturen ELLER-OCH är ekvivalenta med grindnät med strukturen NOR-NOR. Realisering av logiska funktioner utförs därför så gott som •• uteslutande med N D- och NOR-grindar. Aven om fabrikanterna anger 344

© Studentlitteratur

6.4 Grindar i CMOS och nMOS

funktionsschema med OCH- och ELLER-grindar, så är det normalt bara en beskrivning av den logiska funktion som realiseras, och inte hur den realis­ eras med grindar, vilket sannolikt är med NAND- och NOR-grindar.

USI

M3

M7 I

y

X

M4

M6

I I

A ,-...

M1

---

B ,,... Vss

I I

M2

M5

0

nMOS AB y LL L LH H HL H HH L

AB

00 01 10 1 1

y

0 1 1 0

A --t = 1 8 --t

y

Y = A ffi B

Figur 6.28 XOR-grind i nMOS.

© Studentlitteratur

345

6 MOS-transistorn Grindar i CMOS och nMOS

P5

--- - ------------

P1

,----- --

i---

I

,I-----'

I I

' '

P4

P2

I

'

I I

P3 X

y I

'

A

I

N1

I

N5 I

B

' I

N2

N3 N4

0

CMOS Figur 6.29 XOR-grind i CMOS.

Vi ser att operationen XOR är relativt komplex att realisera i nMOS och CMOS. Analysen av de två XOR-grinda,·nas transistorscheman i figurerna 6.28 och 6.29 ovan lämnas till ett par övningsuppgifter.

Grinda,·na som hittills realiserats i nMOS och CMOS har haft två utgångs­ värden (utgångstillstånd), Låg eller Hög. Många digitala kretsar har, som redan nämndes i kapitel 2, utgångar som förutom dessa två utgångstillstånd även kan anta ett tredje tillstånd, då den varken är Låg eller Hög, utan är högohmig, risvävande. Kretsen har alltså en utgång med tre utgångstill­ stånd (eng. three-state output). 346

© Studentlitteratur

6.4 Grindar i CMOS och nMOS

P3

P2

CMOS-inverteraren A

EA y

ox

1 0 1 1 1 0

N1 E

N3

(X = don 't care) (Z = högohmig)

N2

A ----t 1 '\J l E -...______.

_

y

Modell med switchar som visar hur three-state realiseras VDD

P2 ----- - · - · - ·

CMOS-inverteraren

y

N1 ----- · - · · E

N2

Figur 6.30 CMOS-inverterare med three-state-utgång. © Studentlitteratur

347

6 MOS-transistorn Grindar i CMOS och nMOS

I figur 6.30 ovan visas hur en three-state-utgång kan realiseras i CMOS. Principen illustreras för en CMOS-inverterare, men kan användas vilken CMOS-krets som helst. Själva CMOS-inverteraren består av transistorerna N l och P l. Three-state­ funktionen åstadkoms av transistorerna N2 och P2, vilka båda samtidigt antingen är Från (öppna)), innebärande att inverterarens utgång då varken får förbindelse med Hög (V 00) eller Låg (V ss), utan blir frisvävande, eller Till (slutna) då inverterarens utgång kan anta Hög eller Låg. Three-state­ funktionen styrs av insignalen E (eng. Enable). Som framgår av funktions­ tabellen i figuren ovan, så är utgången högohmig (Z) när E = 0, ty då leder uppenbart inte N2 och heller inte P2, ty via inverteraren P3-N3 inverteras E och ger en Hög insignal till styret på P2. Inverteraren P3-N3 åstadkon11ner alltså att P2 är sluten när N2 är sluten och öppen när N2 är öppen.

348

© Studentlitteratur

••

6.5 Ovningsuppgifter



••

r

6.4 Grindar i CMOS och nMOS 6.1 Fyll i funktionstabellerna nedan för XOR-grindarna i figurerna 6.28 och 6.29. Skriv i kolumnerna för transistorerna, T för Till och F för Från och i kolumnerna för signalerna X och Y, 0 eller 1. a) XOR-grinden i figur 6.28 A B Ml M2 X

M4 M5 M6 y

0 0

0 1

1 0 1 1

-

b) XOR-grinden i figur 6.29 A B Nl

Pl

N2 P2

X

N3 P3 N4 P4 N5 P5

y

0 0 0 1

1 0 1 1

6.2 Rita transistorschema i nMOS för kretsar som realiserar logiska ut­ trycken a) not((A and B) or C). b) (A and B) or C c) not((A or B) and C))

6.3 Rita transistorschema i CMOS för kretsar som realiserar logiska ut­ trycken i uppgift 6.2.

© Studentlitteratur

349

6 MOS-transistorn Grindar i CMOS och nMOS

6.4 a) Bestäm booleska uttrycket till utsignalen Y. Vilken grind reali­ seras? b) Grinden är realiserad på ett speciellt sätt. Vilket och varför?

y

A .....___ -

B --- -+--

0

6.5 Bestäm booleska uttrycket till utsignalen Y. Vilken grind realiseras? Vilken princip har använts vid realiseringen?

.•

.. •



A



1



y







..



. ..

.

• •

• •



• •



.

B



....

. .



. • ..

-

0

6.6 Bestäm funktionstabellen till CMOS-kretsen nedan.





.• •

• • •



E A 0

350

....

.



• • •



• ....



y

.... -

© Studentlitteratur

••

6.5 Ovningsuppgifter

6.7 Bestäm funktionstabellen till CMOS-kretsen nedan.

P3

E1

P2

P1

E2 -- -----+-T2-

N1

N3

N2

0

A

6.8 Bestäm funktionen hos CMOS-kretsen nedan.

-P3

P2

P1

Ts

.--- ----+---- t--

N1

N3

0

N2

0

C E

Studentlitteratur

35 1



Kretsar med minnesfunktion har vi redan sett i form av vippor och latchar i kapitlen 2 och 5. Vippan och latchen är var och en ett litet minne i vilket kan lagras en bit. De kan sättas samman till ett minne med flera bitar, exem­ pelvis till ett tillståndsregister för lagring av tillståndet i en sekvenskrets eller till ett generellt register för lagring av ett ord. Dessa minnen är mycket små minnen med en lagringskapacitet från några enstaka bitar till något tio­ tal bitar och brukar inte benämnas minne utan i stället register. I detta kapi­ tel skall vi studera egentliga minnen för lagring av tusentals, miljontals bitar. Enbart halvledar·minnen kommer att behandlas. Det finns även andra viktiga klasser av minnen, såsom exempelvis magnetiska minnen typ hård­ diskar. Framställningen inleds med en enkel minnesmodell och en översikt av halvleda1·1ninnen. Därefter följer en mer ingående behandling av olika typer av halvleda1·n1innen.





av

-

• •

e en

••

en overs



Den huvudsakliga användningen av halvledarminnen är i datorer. Person­ datorernas enorma utveckling sedan introduktionen i början av 1980-talet, beror i lika hög grad på halvledar·minnenas som på mikroprocessorernas utveckling.- När det gäller datorer så tänker man väl först på generella da­ torer, typ persondatorer, arbetsstationer etc., som används för körning av di­ verse olika program. Men det finns också en annan viktig klass av datorer, som omger oss överallt och som vi dagligen umgås med utan att tänka på det, datorer inbyggda (eng. embedded) i TV-apparater, videobandspelare, mobiltelefoner, bilar, dis askiner, tvättmaskiner, mikrovågsugnar, mätin­ strument m.m. Dessa datorer, som benämnes mikrostyrkretsar (eng. micro­ controller), är dedicerade för en specifik tillämpning och kör i huvudsak hela tiden ett och samma program under hela sin livslängd. Halvledarmin352

© Studentlitterat ur

7.1 Inledning - minnesmodell och en översikt av halvledarminnen

nenas utveckling har haft stor betydelse för också dessa datorers utveckling. I den inbyggda datorn där programmet skall ligga kvar ständigt, måste halv­ ledar·minnet kunna hålla kvar informationen även utan matningsspänning när datorn är avstängd, vilket inte behöver vara fallet i den generella datorn där det aktuella programmet vid en körning laddas in i halvleda1·minnet från ett annat lagringsmedium, t.ex. en hårddisk. Det ställs alltså olika krav på halvledarminnet beroende på tillämpningen och det finns en hel flora av olika halvledar·minnen som vi skall se i det följande. Innan vi berör dessa olika typer ger vi en enkel minnesmodell, som diskussionen kan baseras på.

i11a1esmodell D ata I n/Ut Dm . . . D 1 DO •••

minnescell ------�- - ➔ 1 . . . 0 1 som rymmer 0 ... 1 1 ett binärt ord 0 ... 1 1 • • •

Adress In An . . . A1 A0

Läs Skriv W R

•••

Minne

• • •

1 ... 1 0 0 ... 01

Figur 7.1 Minnesmodell.

Ett minne är en ''enhet i vilken data kan lagras och från vilken data kan hämtas''. - Minnet i minnesmodellen i figuren ovan består av ett antal lika stora celler, vardera rymmande ett binärt ord. Data lagras i minnet i form av binära ord, som kan överföras till/från minnet på dataledningar·na D 0 , D 1 , . . . , Dm, som antas dubbelriktade, dvs. de kan användas både som ingång och utgång. Varje minnescell har en bestämd adress och via adressledning­ arna A0 , A 1 , . . . , A0 , adresseras, utpekas, den aktuella minnescellen. Med exempelvis 16 adressledningar A0 , A 1 , . . . , A 1 5, är det möjligt att adressera teckna 2 1 0 = 1024 = 1 kilo = 1 k och sålunda kan då 2 1 6= 65536 i stället 64 k. På samma sätt © Studentlitteratur

353

7 Halvledarminnen

kilo·Mega) betecknas Giga (G). Exempelvis med 32 adressledningar A0 , ler. I januari 1999 fastställde det internationella standardiseringsorganet IEC (lntemational Electrotechnical Commission) nya prefix. Om man avser de i datasammanhang vanliga prefix som bygger på multipler av två, re­ kommenderas kibibyte (förkortat KiB), kibibit (Kibit), mebibyte (Mibyte), mebibit (Mibit), gibibyte ( Gibyte) respektive gibibit ( Gibit). Ledet bi i dessa prefix ska ses som en förkortning av binary (kibi = ''kilobinary'' osv.). När­ mare info om dessa och andra datatern1er kan fås på Svenska datatermgruppens hemsida http://www. nada. kth. se/datate I minnessammanhang används det engelska ordet byte som beteckning för en grupp av åtta bitar (egentligen betyder ordet byte ''bitgrupp''). Kapaci­ teten hos ett minne brukar anges i byte och detta oavsett ordlängden i min­ net. Antag exempelvis att ett minne är organiserat med 32 bitars ord och att minnet har 32 dataledningar D 0 , D 1 , . . . , D 3 1 samt att varje minnescell rym­ mer 32 bitar. Om detta minne har kapaciteten 2 Mega 32-bitars ord, så anges det nor1nalt i byte som 8 Mbyte. Minnets naturliga plats är sålunda i en dator och det kan vara motiverat att kort rekapitulera den enkla datorn1odellen som tidigare berördes i samband med ALUn i kapitel 4. Modellen underlättar förståelsen av principen för hur data läggs in i och hämtas ut från minnet. En dator består primärt av • Centralenhet, CPU (eng. Central Processing Unit) • Minne • I t-enheter, 1/0 (eng. Input/Output units) I minnet lagras program och data. CPU:n, som också ofta benämnes mikro­ processor, exekverar programmet, utför informationsbehandlingen. Pro­ grammets minsta delar är instruktioner som CPU:n utför. En instruktion be­ står av en operation och en operand, som ger CPU:n instruktion om vilken operation den skall utföra på operanden. CPU:n kan bara utföra mycket en­ kla, primitiva operationer, typ addera, subtrahera, flytta data. Datorn byggs upp kring och kommunicerar via tre bussar (eng. bus), data­ bussen, adressbussen och styrbussen, se figur 7 .2 nedan. Databussen och adressbussen används som namnen säger, för överföring av data respektive adresser. Vanlig bredd på databussen är 8, 16 eller 32 bitar och på adress­ bussen 1 6, 24 eller 32 bitar. Styrbussen (eng. Control bus) överför diverse 354

© Studentlitteratur

7.1 Inledning - minnesmodell och en översikt av halvledarminnen

styrsignaler mellan de olika enheterna. CPU: n hämtar ut, läser, ord från minnet och matar in, skriver, ord till minnet. I figur 7 .3 och 7 .4 nedan visas i tidsplanet principen för en läsning respektive skrivning.

CPU Dm · · D 1 Do •• •

Databuss

Adressbuss

•• •

An . . A 1 Äa

+

•••

•••

•+



+



.

..

Styrbuss

•• •

Läs Skriv

...

'

.

.

.

.

.

.

.

.

. .

.. ..

. .

. .

..

.i

.t

.

.

t

.

.. . .

.

... . .

1

. .



•••

D m · D 1 Do ·

•••

•••

An· · A 1 Äa

Minne

R

w

D m · · D 1 Do

•••

•••

An· · A 1 Äa

1/0

Figur 7. 2 Datormodell.

En läsning går till så att CPUn först lägger ut adressen på adressbussen var­ vid den aktuella minnescellen adresseras, därefter ger CPU : n styrsignalen Läs på styrbussen, som verkställer läsningen i minnet och öppnar minnets three-state-buffert på datautgångarna och det adresserade ordet i minnet kommer ut på databussen varifrån CPU: n hämtar in ordet i något av sina register. En skrivning går till så att CPU: n liksom vid en läsning börjar med att lägga ut adressen på adressbussen och adresserar den aktuella minnescellen i vilken data skall skrivas, lägger därefter ut ordet som skall skrivas in i min­ net på databussen och ger sedan styrsignalen Skriv på styrbussen, som verk­ ställer skrivningen i minnet. En viktig parameter för ett minne är snabbheten. I ett datablad för ett hal vleda1·minne anges ett flertal olika tider, varav speciellt intressanta är lästiden och skrivtiden. Lästiden, vanligen benämnd accesstid, åtkomsttid, ( . Student l i tteratur

355

7 Halvledarminnen

är i figur 7.3 nedan angiven som adressaccesstid tAA, tiden från adressering av minnet tills data från den adresserade minnescellen finns tillgänglig på databussen. Skrivtiden är i figur 7.4 nedan angiven som adresskrivtid tAw, tiden från adressering av minnet tills data är inskriven i den adresserade minnescellen. Intressant ur snabbhetssynpunkt är också hur snabbt på var­ andra följande läsningar respektive skrivningar kan göras. Detta anges av Läsning

Adress An· · · A 1 Ao

H L

t

H

Läs D ata

L

H.

'

z

D m· · · D 1 D 0 L .

J

Figur 7.3 Liisning från minnet.

Skrivning

Adress An· · ·A1Ao

H

--

L ---' ---------i-----------►

t Skriv

L

----....J

Figur 7.4 Skrivning till minnet.

läscykeltiden tRc (eng. read cycle time), definierad som minsta tillåtna tid mellan två på varandra följande läsningar, respektive skrivcykeltiden twc (eng. write cycle time), definierad som minsta tillåtna tid mellan två på var-

356

© Studentlitteratur

7. 1 Inledning - minnesmodell och en översikt av halvledarminnen

andra följande skrivningar. Uppenbart måste gälla att tRc > tAA och twc > tAw· - Styrsignalerna Uis och Skriv i figurerna ovan är aktivt höga, ofta brukar de vara aktivt låga.

Vi har redan berört att inbyggda datorer och generella datorer har olika krav på halvledar·minnet som skall lagra programmet, vad avser minnets förmåga att behålla informationen utan matningsspänning, och detta leder fram till indelningen av halvledarminnena i klasserna icke-flyktiga (eng. nonvolatile) halvledarminnen och fiyktiga (eng. volatile) halvledar·minnen. Flyktigheten avser alltså minnets förmåga att kvarhålla (eng. retain) informationen utan matningsspänning och ett icke-flyktigt minne är sålunda ett minne som kvarhåller informationen utan matningsspänning, medan ett flyktigt minne förlorar infor1nationen när matningsspänningen slås av. En naturlig fråga är då v ör inte alla halvleda1·n1innen görs icke-flyktiga. Svaret är att man inte klarar av att göra dessa minnen lika snabba som flyktiga minnen. Lästiden går att få lika bra, i området nanosekunder, medan skrivtiden blir relativt sett lång och ligger i området millisekunder. På grund av den jämfört med lästiden långa skrivtiden används de icke-flyktiga halvledar·minnena huvud­ sakligen för läsning av permanent information, såsom läsminnen, där skrivning görs i förhållande till läsning sällan eller kanske aldrig.

Halvledarminnen

Flyktiga

Icke-flyktiga

ROM PROM

EPROM

UV-EPROM OTP-EPROM

EEPROM

Flash• minnen

Statiska RWM (SRWM, SRAM )

Dynamiska RWM (DRWM , DRAM )

Figur 7.5 Klassificering av halvledarminnen.

c Studentlitteratur

357

7 Halvledarminnen

Icke-flyktiga minnen Läsminnena kan klassificeras med avseende på möjligheten och sättet för användaren att skriva in information i minnet. - Läsminnen med permanent information där det inte är möjligt att skriva in ny information, benämnes ROM (eng. Read Only Memory). Informationen i ett sådant minne skrivs in av halvledarfabrikanten vid tillverkningen och minnesinnehållet definieras av förbindningsstrukturen på chippet. Ett läsminne där användaren själv kan skriva in informationen en gång och sedan bara läsa informationen, benämnes PROM (eng. Programmable Read Only Memory), och även i detta minne definieras minnesinnehållet av förbindningsstrukturen på chip­ pet. Nästa klass av läsminnen är sådana där användaren inte bara kan skriva in informationen en gång, utan även kan radera (eng. erase) informationen och skriva in ny information. - I EPROM (eng. Erasable Programmable Read Only Memory), introducerade i början av 1970-talet, kan användaren radera informationen genom bestrålning av chippet med UV-ljus genom ett litet fönster i kapseln under ca 20 minuter. Inskrivning av infor1nationen sker med kapseln i en speciell programmeringsutrustning. Minnesinnehållet ligger på chippet som elektriska laddningar. I många tillämpningar används EPROM på samma sätt som PROM, dvs. de programmeras bara en gång och raderas aldrig, och därför tillverkas en variant av EPROM utan fönster, s.k. OTP-EPROM (eng. One Time Programmable EPROM), som blir billig­ are än UV-EPROM, dels därför att det inte behövs något fönster, dels därför att det då går att använda en plastkapsel i stället för en keramikkapsel som måste användas när man har ett fönster för att man skall få ungefär samrna utvidgningskoefficient för kapselmaterialet som för glaset. I EEPROM (eng. Electrical Erasable PRO , introducerade i slutet av 1970-talet, kan ' informationen raderas elektriskt på byte-nivå och ny byte skrivas in, med kapseln sittande i den aktuella tillämpningen. I Flash-minnen, intro­ ducerade i mitten av 1980-talet, kan infor1nationen också raderas elektriskt, men här hela kapselinnehållet på en gång, och ny information skrivas in med kapseln sittande i den aktuella tillämpningen.

Flyktiga minnen Snabba halvleda1·minnen i området nanosekunder i vilka det går lika snabbt att skriva som att läsa går bara att tillverka som flyktiga minnen. De benämnes lämpligen läs/skriv-minnen, RWM, (eng. Read Write Memory), men vanligen benämnes de M (eng. Random Access Memory), som

35 8

© Studentlitteratur

7.1 Inledning - minnesmodell och en översikt av halvledarminnen

betecknar ett minne sådant att för slumpmässigt (eng. random) valda adresser erhålles alltid sam1na accesstid Gfr en hårddisk, som inte är ett RAM, eftersom för denna accesstiden varierar och beror på var huvudena befinner sig i förhållande till den adresserade informationen). Läs/skriv-minnen, R , förekom1ner av två slag, statiska RWM (SRWM, M) och dynamiska RWM (DRWM, DRAM). I ett dynamiskt R lagras bitinformationen som en laddning i en kondensator. Efter en tid, ett antal millisekunder, laddas kondensatorn ur och informationen försvinner. För att inte minnesinnehållet skall gå förlorat måste det därför med jämna mellan­ rum uppfriskas (eng. refresh), ungefär var 50:e ms, som sker genom att in­ formationen läses och skrivs in igen. Nackdelen med dynamiska R är att det krävs speciella kretsar för att ombesörja uppfriskningen, däremot är tiden för uppfriskningen då minnet inte kan användas, inget större problem, då denna tid är kort och utgör mindre än en procent av tiden mellan upp­ friskninga1·na. I ett statiskt RWM lagras bitinformationen i en latch, innebärande att infor­ mationen inte dör ut med tiden som i ett dynamiskt R . Fördelen med ett statiskt R är att man inte behöver uppfriskningskretsar och att det är snabbare än ett dynamiskt RWM. En naturlig fråga är då varför inte alla läs/ skriv-minnen, R , görs statiska. Svaret är att bitcellen i ett dynamiskt RWM kräver bara en transistor, medan bitcellen i ett statiskt RWM kräver 4-6 transistorer, medförande att dynamiska R kan tillverkas med mycket större kapacitet än statiska R . I inbyggda datorer används ett större läsminne som program1ninne, medan läs/skriv-minnet normalt bara är ett mjndre minne som används dels för uppbyggnad av en s.k. stack (speciellt minne för lagring av återhopps­ adresser vid subrutinhopp och tillfällig lagring av registerinnehåll), dels för lagring av data (variabler). Läs/skriv-minnet i den inbyggda datorn utgörs av ett litet statiskt R . I den generella datorn behövs däremot ett stort läs/skriv-minne som programminne och det utgörs därför av ett dynamiskt RWM. Dock används normalt också ett mindre statiskt RWM som buffertminne (eng. cache mem­ ory) närmast CPUn för att snabbare dataöverföring mellan CPU och läs/ skriv-minne skall erhållas. Minnena ordnas alltså i en hierarki enligt figur 7.6 nedan. Med intelligent, förutseende dataöverföring mellan de olika min­ nena, som sköts av en speciell minnesadministrationsenhet ( eng. memory management unit), så skall normalt CPUn hitta önskad data i det nä1·mast cO , x => x( 0 ) , y => y ( 0 ) , s => s(O ) , c_ut => cl) ; FAl: FA port 11•ap(c_in => c 1 , x => x( 1 ) , y => y ( 1 ) , s => s(l) , c_ut => c2 ) ; FA2 : FA port 1rtap(c_in => c2 , x => x(2 ) , y => y (2 ) , s => s(2 ) , c_ut => c3 ) ; FA3 : FA port 1rtap(c_in => c 3 , x => x( 3 ) , y => y ( 3 ) , s => s(3 ) , c_ut => c4 ) ; end architecture struktur;

0

Kommentarer till beskrivningen av Adder4 Beskrivningen inleds på vanligt sätt med en entity som beskriver kretsen, i detta fall Adder4, sedd utifrån med sina portar. I architecture beskrivs här strukturen för Adder4 och vi har d.. ör valt namnet struktur. Architecture inleds med deklaration av vilka olika typer av komponenter som skall ingå i kretsen. I detta fall skall bara ingå en typ av komponet, en heladderare FA. Syntaxen för komponentdeklarationen är component n amn port ( ) ; end component ;

I komponentdeklarationen måste port() ha exakt samma utseende som i entity för komponenten.

422

Studentlitteratur

9. 6 Strukturbeskrivning

Efter komponentdeklarationen deklareras interna signaler med vilka data­ överföring sker mellan komponenternas portar. I detta fall deklareras in­ terna signaler cl, c2 och c3 för överföring av ca11·y. Därefter följer s.k. komponentinstansiering. Komponenterna som deklare­ rats i komponentdeklarationen kan användas flera gånger i kretsen genom att man skapar kopior, ''instansieringar'' (eng. instance) av dem. I vår krets Adder4 använder vi fyra heladderare FA och har sålunda gjort fyra instan­ sieringar av FA som vi kallat FAO, FAl, FA2 och FA3. Varje instansiering av en komponent skall ha ett unikt namn. För varje instansierad komponent beskrivs förbindningen med andra komponenter med p o r t map ( ) . Syn­ taxen för komponentinstansieringen är i n s t an sn amn : komponen tn am port 1,1ta p ( p l => s 1 , p 2 => s2 , . . . )

I port map ( ) beskrivs avbildningen (eng. map = sv. avbilda) av kompo­ nentens portar p1, p2, ... på de interna signalerna och portar·n a s1, s2, ... hos den stora kretsen, i princip en nätlista. ,

Komponentinstansieringa1·na avslutar strukturbeskrivningen. Vid kompilering av strukturbeskrivningen måste kompilatorn naturligtvis ha tillgång till de deklarerade komponenternas VHDL-beskrivningar via sökvägar till kataloger där de finns el. dyl.

Exempel 9. 15 Beskriv strukturen för sändaren Tx8Ch4_1 enligt schemat i figur 5.61. __ clock __ resetn enable ---t ---t

d-inO d-in 1

---t

---t

Sändare Tx8Ch4- 1

d-ut t----

d-in2

d_in3

tidl ucka-O __ tidl ucka-1 i---tidlucka_2 t---tidlucka-3 i----

Figur 9.1 7 Blocksymbol för sändaren Tx8Ch4_1, enligt figur 5.60. © Studentlitteratur

423

9 VHDL - en introduktion

Lösning I schemat för Tx8Ch4_1 ingår två binä1T·· are, en 3-bitars och en 2-bitars. Vi har tidigare beskrivit en 4-bitars binä1T·· are. I stället för att behöva be­ skriva varje binärr·· are med nytt antal bitar, vore det önskvärt att kunna göra en generell beskrivning där antalet bitar definieras av en parameter. Detta är möjligt i VHDL, man kan göra s.k. generiska (eng. generic) be­ skrivningar som innehåller parametrar, vars värde anges när man skall an­ vända komponenten. Principen skall visas nedan för en binärTäknare med n bitar, resetn, enable och car·ry_out som vi benämner Cntgnb_rec och som skall användas i konstruktionen av Tx8Ch4_ 1.

clock Qo resetn q1 enable • Binärräknare �

Cntgnb_rec

n- 1

• •

carry_out

Figur 9. 18 Generisk n-bitars binärräknare med resetn, enable och carry_out.

--Cntgnb_rec --2001-07-30

library I EEE; use I EEE.std_logic_11 64.al l; use I EEE.std_logic_arith.al l; entity Cntgnb_rec is generic(n: positive .. = 4., max_count: integer := 15); port(resetn, enable, clock: in std_logic; carry_out: out std_logic; q: out std_logic_vector((n-1) downto O)); end entity Cntgnb_rec;

424

© Studentlitteratur

9.6 Strukturbeskrivning architecture beteende of Cntgnb_rec is - - deklaration av tillståndstyp subtype state_type is integer range O to max_count; - - deklaration av nuvarande tillstånd och nästa tillstånd signal present_state, next_state: state_type; begin - - kombinatorisk process för beräkning av nästa tillstånd state_diagram: process(present_state, enable) begin if enable = '0' then next_state clock, resetn => resetn, enable => enable, carry_out => icarry, q => open); © Studentlitteratur

427

9 VHDL - en introduktion Cnt2b_re: Cntgnb_rec generic 1,aap(n => 2, max_count => 3) port n�p(clock => clock, resetn => resetn, enable => icarry, q => iq, carry_out => open); MUX4_1: MUX4_1 port 1nap(a => iq, data_in => d_in, data_ut => d_ut); Avkod1_4: port 1r1ap(adress => iq, data_ut => tidlucka); end architecture struktur;

Med generic 1,aap ( ) har vi ovan tilldelat parametrarna n och maxcount värden i instansieringa1·na för räkna1na Cnt3b_rec och Cnt2b_re. Vidare har för utsignalerna q i r·· aren Cnt3b_rec och ca1Ty_out i räknaren Cnt2b_re, som ej skall anslutas, angetts open. De interna signalerna har vi gett namn som börjar med bokstaven i (intern), vilket kan öka läsbarheten.



Ett alternativ till att göra strukturbeskrivningar i VHDL är att använda någon grafisk hierarkieditor. Syntesverktygen genererar symboler till VHDL-beskrivningar·na av komponenterna som sedan kan användas vid uppritning av ett blockschema för en större krets. Blockschemat kan kom­ pileras på sa1nma sätt som kompileringen av strukturbeskrivningen i VHDL. Det är relativt bekvämt men nackdelen är att den grafiska beskriv­ ningen blir knuten till ett syntesverktyg. Det kan vara en fördel att ha be­ skrivningar·na genomgående i VHDL och där·med beskrivna i ett standardi­ serat språk.

428

© Studentlitteratur

9. 7 Beskrivning av en D-vippa och en D-latch





av en

-



en

-

Vi avslutar nu avsnittet om VHDL med beskrivning av en D-vippa och en D-latch. Beskrivningen av D-vippan blir ingen överraskning, däremot kan det vara intressant att notera hur man beskriver en D-latch.

clock

d_ut C

Figur 9. 19 D-vippa, positivt flanktriggad. --D-vippa --200 1-07-30 Lars-H Hemert

library IEEE; use IEEE.std_ logic_ 1 164.al l; use IEEE.std_logic_arith.all; entity D_vippa is port (d_in, clock: in std_logic; d_ut: out std_logic); end entity D_vippa; architecture beteende of D_vippa is begin process (clock) begin if rising_edge (clock) then d_ut :: ·: ·, :: ·: :- :

.. .

'

i

-: : : ". . ,,: ,· : . .

'., '

' ' .

'

:

:

" '

!

" ''

'

'

'

R

.

·•· .•. ·.•.2• •·· ·•R· • •· ••....•..••·_. •· I 1 .

·· . l ..••··•· ..•.·.......... . ___,. ....·....······.•·.: . . . •. .. . ·• ·.••·••·I . . .:• . . .

Digital insignal X

.

:

..·

i

'

Analog utsignal

.........t+

V

-

X2

'

·a· ·· .

.·· . .· . . . . . R· ·. ··..•·...· ·.•.. ·• ..I 3 .

'

..

.

Referens­ spänningskälla

. ..

.

.

.. .. . . .. ....... .

.. ..

Transistorswitchar

.

.. .

.

.

.

.

.

.

.. . .. ..

.

. ..

.....

. .. . . : -... :

Nät av precisions­ resistorer

Figur 10.4 DIA-omvandlare med viktade resistorer.

Summering av ström1na1·na i den virtuella jordpunkten ger

-0 -O -0 --------+-----+----8R 4R 2R V =

-1

-2

-3

v-0

0 (10.2)

DIA-omvandlaren ovan är uppbyggd med viktade resistorer, viktade med 2potenser, vikterna i ett vanligt binärtal. Nätet av precisionsresistorer inne­ håller n resistorer jämfört med 2 n för den förra DIA-omvandlaren med spänningsdelare, en klar fördel. En nackdel är att resistorerna inte har samma värde, t.ex. har en 16-bitars DIA-omvandlare med viktade resistorer ett nät med precisionsresistorer inom ett mycket stort resistansområde, ___ tillverkningssynpunkt, varje resistor lasertrimmas på chippet. Vidare får då inte resistorerna samma temperaturkoefficient, vilket omöjliggör tempera(Q

Studentlitteratur

439

10 DIA- och

-omvandlare

turkompensering. DIA-omvandlare konstrueras därför normalt inte med viktade resistorer enligt ovan, utan med ett precisionsresistomät i form av en s.k. R-2R-resistorstege (eng. resistor ladder), innehållande resistorer med bara två olika resistansvärden, R och 2·R.

En 3-bitars DIA-omvandlare med R-2R-resistorstege visas i figuren nedan, där alltså nätet av precisionsresistorer innehåller resistorer med bara värdena R och 2R. R

•·•··• ••··• ·•· ··

Eref

MSB

·

X1

. . ·2···R· .· •·• · · . .

6

,''

'

·· · ·•· ·•·,,·· • ·····•····· ···· . ·· '· · ..· · ''. ,'. . ·.··· . '. · ·•··• ·.·. ··• . . . .' : '

'

'

'

'

:

'

.

,' . ·,·.,·.,·,·�·,," !

_...... ..... .. .

'

..

.

.·.::: ..·:.. :·..

.. ·,

Analog utsignal

.·•:: :.., , '

•... ·• . • ..J ••··••·· ·•·····...···. .... '

.

.. . ':· .·

.' .

.

·.

.

,

,

·'

' ·.

.

V

''

-

.. ..

•·•• .......·••-:.. R· · ......:..........: : .:..·.·.:..·.·••. . ·• ... ·.•. • · . : :: . . .. . .. .. . . .. . . . . .

. . .: ..

" .:',:, "' . " " ' ' · •- . . Referensspänningskälla

'

: : ':' : : :

, ''

'

''

'

.

.

.

:

X2

Digital insignal X

=

--. : . .. ..

-;

.: .

. . . ..

..

. ''

'

' .

' "'

'' ' "' ' ' '

.

: . : :·-·:--::: ':··: >::,:..::_::· :::.: ::. :·. • · · • · ··.. . •· • ·· • 2 . · .·· i . . ·..·.. ···il••• ·•. ··• · . 4 •...·•··..... ... ... .. i................·.·• -...... • · -� �..............,__-.................... 1 ·•· • ·· ···•·· · ·•···• 0 --+ · • ·• · 3 ♦·-·•· ...... (

i•·

·· • MO,• • ·

.... ·. · •·• ••·· ........·:..·:.•••: --o _:f"\.:.:: · ·.· :. ·. • .• .

.... . . .. . : . :-: :. ::: : :

. :

: : .. . . . :. . . . . .

.

.. .

::

: .. . . . : .. . . : : : . .

1 :-:r. + . ·•····••·.· •• · ···.•·.·• ·••. ·IR . i·•·· --· .• ·--·· ·· .. :·. 2 .. . ..

... . .. . . .. . . . .. .. . .. .

.

. ..

' '

(X 1 , X2, X3 )

:.

'

.

X3

.. :.

;

.

·

.

.

. .:

.

.

.�.�.?���:::.:-_:::::::i> :::::::::- ;;A•• •,M•.�• • • ••.....�•• ---•--•·•••·-�•"h•�•--• ••••.�•• ............ ... .�� . . . . . �

-•--=·•·--·•·• - • '•" -, _,_ • "·'---�M•M•.•.•.• •-• ,_ • • •• •• •·••••·•

"••-~~-�---•·•"•· -.•

:

•••- •-·-..

I

Ao•

•·�-=•J��•-•,,-,..�_. •- .,,. �.•.-.,,.. ,_,._ ,,__ ,,_ .A"-'>~>A••-.----••�•-•------�• . . .

�,,._ ,._._=.,�--~·• --� .

0• •• • • • • �-•....

• '' . . '• •.•. •..•...•••.•.•...•. ••. .••.. .• . •• •. • •• . • •. ••••.••...... ·••· ...•..•..••••••.• '•• ' ••·•······•···..•.....•....••..•.•.••.•..'.·.• •-• •-• ••-•� .

i Power Supply: 2.5V ± 0.2V.

j

:

1·····••····················································· ·······························································•t:: ·••·················•············································································•··················•············ , ................................ ,........................................ , ..................................... , ..·······································(

I

V REF

' W,........,,,A......,.,-•�••~~...-.,__._ .•..,.,....,_,..,,,..,,,__..,,..,,.

Page 3 of 72

462

:.



w-.., , ___..........,....., .

Supply --•-=••�--..

.i SSTL_2 referen ce voltage: (V ooa / 2)

•=•·•-•"-•_........,�t�w.-,........ .. .,..,...,A..........__,....,..�·•=,..,,.w. ..,,..,.,..,.,.,, ,.,~ .,_ ••-·...,.w w.,.,.,.,�.,-A.,_.•-•-• . .

�•·~~•

.

N�w,.,�.....,._....,., •--•.......�.�••=-..,��-•·-�•..._.....,,�.w.-,.-..�,_�,.-,...,,_.., . ~��=-�••~~·•�----• -• ,w.-...:

3/01

© Studentlitteratur

HYB25D256400/800T/AT 256-Mblt Double Data Rate SDRAM

Infineon

technologie1

,oM., ... ,....................... '""'"'...................................... .

.. • .... " ".

"

"•

""..,..

' .' ..Yf'>,o'""'"-'>•-""'"""



,.,, ' ' ,.,,

... , ....v"�

.............

................... ''",,....,,,.,,.,.,,_,,,.,,.,...'""'""""'"" "' """"

,,,' '" • ,,,'' _.,,_.,.........-.



Ordering Information

•• •

•• •• •

••)�-�- �=•,-w.�•-•-.,�........•••-••-•• •

r· .... ... . .. .... .. ................ ... . . ............... .... . .. . ..... .. .

r. .. ._. .CAS...... 1··--• .c,�·�k . .

• • ••• • •• ••• ••• •

100

• ••• •• • •

;

:

••

DDR200

CAS Latency

!

Clock

!

Speed

:

: . Org. ! Latency +-•·· i ····(MHz) i J···::::::: ( J. .... .... ..... .,,,, i ·························t········································· . . .............................................................................. ·.......................... ,.,, • •' • ......... . 4 , .........................................!... ......................................................................... Rvs·2sb256400Af�7· ... .::::::::::!::::::::::::::::::::::::::::::::::::::: , ! ; X I1 143 i, i.... . .. ......-- ....- .. . . . ........ . -......... ...... ... ...... ......... ...1 DDR266A f .. ···---· �--·· ..... · 133

r::: : : : .: :. i I

Part Number (WOS)

i

1- - ��������()()�!:� -· - l i

HYB25D256400AT-7.5 ,fi ........................................................................ ..·•.... . ... .. ..... ..... .....,: I HYB25D256800AT-7. 5

i

1-....................... -----·i::.vB25D 256400AT::a-.................: .............................. .... .................... .... ... ..... --1 1,

I ' •

H yB25D256800AT�8

l . .. ••••••••••• •• • . . . .............

2. 5

f

I I

133

-i

L........... -..............,

I

i

.

125

! '

I

!:'.':t�.>. . . L . . . . . . . ...... i

2

.;

125

:

: DDR266B ,

I

100

i i

... .

DDR200



:

8

: x [. .. .. . . .. .. . ... . . ..._ 1·---...... ----·-·------·- ....T............ ...... . .. .. -.... ,

:

.

i

Package

I. ' • • ,. • • • • • • • • • • •,•.,• • • • '• •i.

xa '· · · · · · · · · · · · · · · · · · · · j· · · · · · · · · · · · · · · · · · · · ,. . . . . . . x4· · · · · · · · !1 1

•• • •• • •

. . . . . . .. . . . . . . . . . . . . . . . . . . .1· ·. . . . . . . . . . . . . . . . . . . . . . . . . . . . ,

·•·-y·•···-···•··"···········-·······••u••y••···············-·-··················r·········•·•·--·--·--·-···.,.---.

!

66 pin TSOP-11

x8 x4

•i-�• • •·• • •--�, •-• •~·• ..rr>-••�• • -•••� , •

... �~,.s••r••�,

>·•····•·································



i

i

x4 ................... 8

x. ...

66 pin TSOP-11

1

:. I : ' : ' .. ··························.. ..........:.........................................c1 .••........ ...................·• ...".... . " .,...................................;....................................................................................... ················•···········•·•···•·············........ .. ··············'·····







;

Page 4 of 72

3/01

,,._o;,, ....... o,,o o oo,,o o o « o , MNWA'U ,-,.,, , ,•••o•,,•• "'''"''"o••'""'o

...,. o,,'" ow,,..,_

,.,_,,...,.. o

Block Diagram (32Mb x 8) ,

i

QFC generator t----,♦

CKE CK CK ..o-r-----,

OFC (Optional)

DRVR

cs

I

W"E

CAS

!i

Bank3

RAS

i

BankO Memory Array (81 92 X 5 1 2 X 1 6)

15

� -

-

-

Sense Amplifiers _' F

F

F

F

• 1\ 15 V

F

'

V

§ (1)

8 VJ

/

?

� h,1�

lU

Column-Address Counter/Latch

:i,_,i:.__�

_,.RI Column �)"j Decoder



,

1

COLO

V

_ ...,

"---1 �-�-

9

1_6

8, 7 .

"O

I'll

,

X

8.

4-

Generator -

�-• ?, .. :E 1------,,..�---, --:➔ DOS

(1)

/

:'.: 2 '. - - - - - · � �---'===Zs12 '"1-'' -,

➔ � t-----�---♦

Data

91-,. [7� �ai,r

1/0 Gating DM Mask Logic

''--,,I-' ---

'F

!

• •

DLL

Mode Registers

AO-A1 2, BAO, BA1

l

CK, CR

I

COLO

,

1

16 , ,

Write FIFO Drivers

Input Register

1 Ma k �� .,___,._ , 2

1,

.

.R

16 . 8.. elk elk out 1n Data ,

QK, CK

f-----i

1, ,

..,_8,

f-----i....,S .

I

as 1

.

8

DQO-DQ7, DM

F•



DOS

VJ

� ·-I 9l

.J ,' •.

i!S



a:

COLO I

Note: This Functional Block Diagram is intended to facilitate user understanding of the operation of the device; it does not represent an actual circuit implementation.

,, ,

'

,

,

Note: OM is a unidirectional signal (input only), but is internally loaded to match the load of the bidirectional DO and DOS signals.

i

j

j '

l

l

i ....... ·-........ " .......................................................................... "............ ' .. ' ... ''.' .... '' ''. ' .... , ................ , .......................................................... ' ................................. ········....................................... ........................................................................................................ ' ........................J .•

Page 6 of 72

© Studentlitteratur

3/01

465

.,-

Infineon

technolog ies

HYB25D256400/800T/AT 256-Mbit Double Data Rate SDRAM

...,.....No>,, ,,,••,, ,,,,,,,,,,,..,.,..,,._n,,u••,....,....,,,.,.,,••,• ..•.,•u,,,..,..,,,...,,,..v,-,.,,,.-.,,.,,.,....,....,.,,. ,,.,••,,.,, .u,•u,-.-.,,.,._._..,._,•••, ,, ,••,..,-.,,.,..,,,-,v,..,•..,• •w,,.,.,.-....,...... , .........,.,..,...,...,...,....,..,,.,...,.....,,,...,.,......, ...............,_.,.,..,..,....,...,...,.,.,.,........,..... ... N.w,,....,.,.,.,,,v.;,.-,...,••, • , ,w.,-.,...,..,..,._w..,._.,w.,_•,•,..,�...,.._,.,;.,, ,

Functional Description

••,••., ,.,,,....�.,..v, .,..,,,,.....,......... , ,, , , , , , , , , ,, , , , ,

, , , ,,,, .,.,.-.;,....,,.,,,., , ,"""'"'" , ,.. , , ,..,,, , , ,•,,,, , ,,..,..,., , ,••,

The 256Mb DDR SDRAM is a high-speed CMOS, dynamic random-access memory containing 268, 435, 456 bits. The 256Mb DDR SDRAM is internally configured as a quad-bank DRAM. The 256Mb DDR SDRAM uses a double-data-rate architecture to achieve high-speed operation. The double­ data-rate architecture is essentially a 2n prefetch architecture, with an interface designed to transfer two data words per clock cycle at the 1/0 pins. A single read or write access for the 256Mb DDR SDRAM consists of a single 2n-bit wide, one clock cycle data transfer at the internal DRAM core and two corresponding n-bit wide, one-half clock cycle data transfers at the 1/0 pins. Read and write accesses to the DDR SDRAM are burst oriented; accesses start at a selected location and continue for a programmed number of locations in a programmed sequence. Accesses begin with the regis­ tration of an Active command, which is then followed by a Read or Write command. The address bits regis­ tered coincident with the Active command are used to select the bank and row to be accessed (BAO, BA 1 select the bank; AO-A 1 2 select the row). The address bits registered coincident with the Read or Write com­ mand are used to select the starting column location for the burst access. Prior to normal operation, the DDR SDRAM must be initialized. The following sections provide detailed infor­ mation covering device initialization, register definition, command descriptions and device operation.

Initialization DDR SDRAMs must be powered up and initialized in a predefined manner. Operational procedures other than those specified may result in undefined operation. The following two conditions must be met: No power sequening is specified during power up or power down given the follwing criteria V00 and V000 are driven from a single power converter output Vn meets the specification A minimum resistance of 42 ohms limits the input current from the Vn supply into any pin and VREF tracks Vooo/2 or The following relationship must be followed V 000 is driven after or with V00 such that V000 < V 00 + 0.3 V Vn is driven after or with V000 such that Vn < V000 + 0.3V V REF is driven after or with VDDQ such that VREF < V D DQ + 0.3V The DQ and DQS outputs are in the High-Z state, where they remain until driven in normal operation (by a read access). After all power supply and reference voltages are stable, and the clock is stable, the DDR SDRAM requires a 200µs delay prior to applying an executable command. Once the 200µs delay has been satisfied, a Deselect or NOP command should be applied, and CKE must be brought HIGH . Following the NOP command, a Precharge ALL command must be applied. Next a Mode Reg­ ister Set command must be issued for the Extended Mode Register, to enable the DLL, then a Mode Register Set command must be issued for the Mode Register, to reset the DLL, and to program the operating parame­ ters. 200 clock cycles are required between the DLL reset and any read command. A Precharge ALL com­ mand should be applied, placing the device in the ''all banks idle'' state Once in the idle state, two AUTO REFRESH cycles must be performed. Additionally, a Mode Register Set command for the Mode Register, with the reset DLL bit deactivated (i.e. to program operating parameters without resetting the DLL) must be performed. Following these cycles, the DDR SDRAM is ready for normal operation.

Page 7 of 72

466

3/01

© Studentlitteratur

Infineon

tech nolog ies

.,.,.....•

HYB25D256400/800T/AT 256-Mbit Double Data Rate SDRAM

....... ••• -',..,.,.,'..,...'''••''•.....,..,,•' ,v,...,._.,.,,_..... -..--"v.wA'.....',,,.' ..... .....,.,.,,....'......'.''.......',.,.....'.•... •••,,,....",,•--,,.'.....',,,'NHN'N......... ,_.,.,_.,,,,,,,,, N.',V.IHAW,-,.,...,-,.,,,,.,... ' ' '...,._'ll,VJfN, ''"'"""--................,,.,.,'' ... ,.,,;, ' ....'"' ,.,..'.... ' .. ...' " ..... ,...,.,.. ...,.,.,.....''... .. "'••• " ••' •• ' ••••'•• ' ••''... " ••• ' ......' ••'. -- .... WAW� •• _.,,.,_ .,,,,.,.,,.

Register Definition Mode Register The Mode Register is used to define the specific mode of operation of the DDR SDRAM. This definition includes the selection of a burst length, a burst type, a CAS latency, and an operating mode. The Mode Reg­ ister is programmed via the Mode Register Set command (with BAO = 0 and BA 1 = 0) and retains the stored information until it is programmed again or the device loses power (except for bit AB, which is self-clearing). Mode Register bits AO-A2 specify the burst length, A3 specifies the type of burst (sequential or interleaved), A4-A6 specify the CAS latency, and A7-A1 2 specify the operating mode. The Mode Register must be loaded when all banks are idle, and the controller must wait the specified time before initiating the subsequent operation . Violating either of these requirements results in unspecified opera­ tion. Burst Length Read and write accesses to the DDR SDRAM are burst oriented, with the burst length being programmable. The burst length determines the maximum number of column locations that can be accessed for a given Read or Write command. Burst lengths of 2, 4, or 8 locations are available for both the sequential and the interleaved burst types. Reserved states should not be used, as unknown operation or incompatibility with future versions may result. When a Read or Write command is issued, a block of columns equal to the burst length is effectively selected. All accesses for that burst take place within this block, meaning that the burst wraps within the block if a boundary is reached. The block is uniquely selected by A 1 -Ai when the burst length is set to two, by A2-Ai when the burst length is set to four and by A3-Ai when the burst length is set to eight (where Ai is the most significant column address bit for a given configuration). The remaining (least significant) address bit(s) is (are) used to select the starting location within the block. The programmed burst length applies to both Read and Write bursts.

Page 8 of 72

© Studentlitteratur

3/01

467

HYS 64ll2V64220GU

I n ineon

SD RAM-Modu les

te c h nolo g i e s

Package Outlines L-DIM-1 68-30 (JEDEC M0-1 61 -BA) SDRAM DIMM Module Package HYS 64n2V64220GU

1 33.35

4 max.

1 27.35 '

LO

,..._

• .... C')

I I

' '

i



I

0

3 3

40

0

0

41

84

►t-+--t-,I 6 .35

42. 1 8 91

....

0

1 0

0

11 35 ►I--++,, 6.--



*) :

I I I I I I

10

1 --+I

'

X

1 .27

1 .27 = 1 1 5.57

2



C')

85

94

95

1 68

CX)

,..._

....

'

·j I I I

'

0

0

I I I

I

.

1 .27

-

I N FI N EON Technologies

0

,

*) on ECC modules only C

C\J

/

.

,

·-:4 ;1i•

.

468

'

I

C\J• 0

0

3

3 min. Detail of Contacts

l ''

1

'

Note: All tolerances according to J EDEC standard l·DIM-168-30

15

3 .0 1

© Studentlitteratur

'

ilicon ' ate M

1101A, 1101A1 ii

256 BIT FULLV DE DED RAND M A E MEM RV Access Time -- Typically Below 650 nsec - 11 01A1 , 850 nsec - 1101 A • Low Power Stand by Mode • Low Power Dissipation -- Typically less than 1.5 mW/bit during access • Directly DTL and TTL-Compatible • OR-Tie Capability



• Simple Memory Expansion -­ Chip Select Input Lead • Fully Decoded --On Chip Address Decode and Sense • Inputs Protected -- All Inputs Have Protection Against Static Charge ■ Ceramic and Plastic Package -16 Pin Dual In-Line Configuration

The 1 1 0 1 A is an i mproved version of t he 1 1 0 1 which requ i res o n l y two power su ppl i es (+5V and -9V) for operat ion. The 1 1 0 1 A is a d i rect pin for p i n rep lacement for the 1 1 0 1 . The I nte l 1 1 0 1 A is a 256 word by 1 bit random access memory element using norma l l y off P-cha nnel M OS devices i ntegrated on a mono l i thic array. I t u ses fu l l y de stable ( static) c i rcu itry and therefo re req u i res no clocks to operate. The 1 1 0 1 A is desi gned pr i ma r i l y for smal I buffer storage appl ications where h i gh performa nce, low cost, and ease of i nterfaci ng with other sta ndard logic c i rcuits are i m po rtant design obj ect ives. The u n it w i l l d i rect l y interface w ith sta nda rd bipolar integrated logi c c i rcu its ( TT L , DTL, etc.) The data output buffers are capable of d r iving TT L loads directly. A sepa rate ch ip select (CS) lead a l lows easy select ion of an i nd ivid u a l package when outputs are O R -tied . For appl ications req u i r i ng a faster access t i me we recommend the 1 1 0 1 A 1 wh ich is a selection from the 1 1 0 1 A and has a guaranteed max i m u m access t i me of 1 . 0 µsec. The I ntel 1 1 0 1 A i s fabricated with sil icon gate technology . Th is low threshold tech nology a l lows the design and product ion of h i gher performance M OS circu its a n d provides a hi gher fu nctiona l density on a mono l ithic chip than conventional MOS tech no logies. I nte l's silicon gate technology a lso provides exce l lent protection aga i nst conta m ination. This perm its t he use of low cost si l icone packaging.

P I N CON F I G U RATION cs

16

A,

2

16

R/�

Ag

l

1•

DATA OUT



1J

DATA OUT

Vee

5

12

OATA IN

A,

6

11

A

AO

7

10

A,

v ,o

8

V

O



B LOC K D I AG RAM

LOG I C SYMBO L �IW

o,.

cs

V)

10

Al

LL LL

9 Ao A1

A,

A3

l

Dour 1 101A

11

:,

al

A2



As

Ao

Al

� er :, w

LL � LL

14

DIN A o- A7

DATA I NPUT

cs

CH I P S E LECT

ADDR ESS I N PUT S

DATA O UTPUT

R /W

R EAD/WR ITE I NP UT

Do uT

15 12

u c .., --

:,

Cl.

P I N NAM ES -

er UJ > V) w -er .., Cl er Cl o >-- Cl

V)

Cl.

A3

tobur

A,

A,

er

7

A3

SENSE CIRCUIT

>--

-



CL U

::t u

- UJ ..J UJ V)

I

Y A DD R E SS D E CODE

./

I



� er :, LL .., Cl.

Y INPUT BUF F E R S

- :,al

2

LL

A4 6

A5 1

Ve e

V0

5

As 3

A7 2

VDD : 8

:4

2-3

© Studentlitteratur

469

ilicon

'

ate M

1103

FULLV DE DED RAND M 1 024 BIT DYNAMI MEM Low Power Dissipation - Dissipates Power Primarily on Selected Chips • Access Time - 300 nsec ■ Cycle Time - 580 nsec ■ Refresh Period . . • 2 milliseconds for 0 - 70 ° C Ambient • OR-Tie Capability ■

■ Simple Memory Expansion Chip Enable Input Lead • Fully Decoded - on Chip Address Decode ■ Inputs Protected - All Inputs Have Protection Against Static Charge

■ Ceramic and Plastic Package --

18 Pin Dual In-Line Configuration.

The I ntel 1 1 03 is d esig ned pri marily for main memory appl icat ions where h ig h performance, low cost, and large bit sto rage are i m portant design objectives. It i s a 1 024 word by 1 b i t random access mem o ry e l e m e nt usi ng n o rm a l l y off P-c h a n n e l MOS devices i nteg rated o n a monol ith i c array. It is fu l ly decoded, perm itt i ng the u se of an 1 8 p i n d u al i n- l i n e pac kage. It uses dynam i c c i rcu itry and primarily d i ssipates power o n l y d u ring p recharge. I nfo rmation stored i n the memory is non-dest ructively read . Refres h i n g of a l l 1 024 bits i s accom p l i shed i n 32 read cyc les and i s req u i red every two m i l l iseco nds. A separate cenable (ch i p enab l e) lead a l l ows easy sel ection of an i nd ividual package when outputs are O R-ti ed. The I ntel 1 1 03 is fabri cated with silicon gate technology. This low threshold tech nology al­ lows the desi g n and production of h igher perfo rmance MOS c i rcu its and prov i des a h ig h er fu nctional den sity on a monol ith i c c h i p than co nvent ional MOS tech nolog ies. I ntel 's s i l icon g ate technolog y also provides excel lent protection agai nst contam i n at i o n . This perm its t h e use of low cost p l ast i c pac kag i ng .

P I N CON F I G UR AT ION

B LOC K D I AG RAM

LOG I C SYMBO L PRC CE R/W 01N

.,

3

,

' '

16 C E N A B L E

Ao A1

A,

A, A4

I 3 AJI

I () f J7 ROW SI L f l l (J H

VHH

0

0 0

P R E C H ARGE 0 C E N A B LE 0

R f A [)/WR • T E 0

PI N NAMES

DouT

PR ECHARGE I NPUT CH I P ENABLE DATA OUTPUT

ri.1 A "" R I X

37 RO,�S )} COL UM'iS , 1 07• 111 rs,

()A T

A1

PRC CE

M f \10 R Y



•" h 4

Ao A9

DATA I NPUT ADDR ESS I NPUTS R EAD/WA ITE

ti•

Dour

A7

DIN A 0-A 9 R/W

H t A IJ/ WRI Tf "-MPL l f I F ll S

1103

A•

1 / [").A T A 11'1

]}

, •

L OC, I C O L OG I C 1

H I GH \' OL T AG[ LOW VOL T AG f

• • • • • •

H � � H f SH AMPL I f IE RS, H f A [ ) �',, R ! T f C ( J l ur,,1r,,,, ( , A T i '\I C

--

-

.� AT

•., _j !

I Of J} C O L UMN SE L E CTOR

,._

'

(

,._

(

2- 7

470

© Studentlitteratur

ilicon

1601/1 701 , 160211 702,1 301

ate M

I,

2048 BIT FULLY DE DED READ NLY MEM RY

1601 /1 701, 1602/1 702/ ELECTRICALLY PROGRAMMABLE 1 301 MASK PROGRAMMABLE ■ ■ ■

■ ■

Erasable and Field R.e programmable (1 701,1 702)



Field Programmable (1601 , 1602 ) All 2048 Bits Guaranteed Programmable - 100% factory tested (1601/1701 , 160,2 /170 2) Inputs and outputs DTL and TTL compatible Static and Dynamic Operation (1601 , 1701 , 1301 )

■ ■





Static Only Operation (1602 , 1702) OR-tie capability Simple Memory Expansion Chip Select input lead 24 pin dual-in-line hermetically sealed ceramic package (1601 , 1602,1301) 24 pin dual-in-line, quartz lid ceramic package (1701 , 1702 )

The I ntel 1601 , 1 602, 1 701 , and 1 702 is a 256 word by 8 bit electrically programmable ROM ideally su ited for uses where fast turnaround and pattern experimentation are important such as in prototype or in one of a kind systems. The 1 601 , 1 602, 1 70 1 , and 1 702 is factory reprogrammable which allows I ntel to perform a complete programming and functional test on each bit position before del ivery. The four devices 1 601 , 1 602, 1 70 1 , and 1 702 use identical chips. The 1 601 and 1 701 is operable in both the static and dy­ namic mode while the 1 602 and 1 702 is operable in the static mode only. Also, the 1 701 and 1 702 has the unique feature of being completely erasable and field reprogrammable. This is accompl ished by a quartz l id that al lows high intensity ultraviolet l ight to erase the 1 701 and 1 702. A new pattern can then be written into the device. This procedure can be repeated as many times as required. The 1 301 is a pin-for-pin replacement part which is programmed by a metal mask and is ideal for large volume and lower cost production runs of systems initially using the 1 60 1 / 1 70 1 or the static only 1 602/1 702. The dynamic mode of the 1 601 / 1 701 and 1 30 1 refers to the decod ing circu itry and not to the memory cel l . Dynamic operation offers higher speed and lower power dissipation than the static operation. The 1 601 , 1 602, 1 701 , and 1 702 is fabricated with sil icon gate technology. This low threshold technology allows the design and production of higher performance MOS circu its and provides a higher functional density on a monolithic ch ip than con­ ventional MOS technologies.

PI N NAMES

PI N CON F I G U R AT ION

B LOCK D IAG RAM DATA OUT 1

A n-A 7

, . >:\:/::: : Clear

•• •• • •• • '

J

: : :::::::: :=: ):'\.::�:::: :: :::: :::::: -:'. :\:i:::::)/ .: . : : :.:-- : :

;. ;;.:.:;.:- ·-:- .:-

: ::::: ::.: : :::r ::.: ::: •

• •

•-•

·:..:-:- - :....-:-. -:· :'.·:•

• • •'• • •'•' •••::•, • • • • • • ,

::=: ::::

- H • - < • • • •' • -'

::=::::::;:: ::.: .•: .·. :, ; ' ..;.: ..:.;":.:.:.:::. ':_:::.·.::::.: '

• •' '• • •' •• ••• •• • •• • •' ' '• •'

Macrocell ProductTerm Logic

.



, • • • • • • · ·" · · · · · ·· · .. . . . . . . . .. � · - · · · · · . . . .. . . . . . . . ,. . . .. .. . . . . . . . . . . . .. . . . . . . . . .. . . . .. . . . .. .. . . . . . . . . . . . .. . . . .. . . .. . . .. . . .. .. .. .. .. .. . . .. . . . . .. . . . . .. .. . . .. . .. .. .. .. . .. . . .. .. .. .. .. .. «

36 Signals from PIA

To Next Macrocell

1 6 Shared Expanders

Programmable Interconnect Array Logic is routed between LABs on the PIA. This global bus is a programmable path that connects any signal source to any destination on the device. All MAX 7000A dedicated inputs, I/0 pins, and macrocell outputs feed the PIA, which makes the signals available throughout the entire device. Only the signals required by each LAB are actually routed . 5 shows how the PIA signals are routed from the PIA into the LAB. Figt11·e into the LAB. An EEPROM cell controls one input to a 2-itJ,put AND gate, which selects a PIA signal to drive into the LAB.

12

Altera Corporation

© Studentlitteratur

487

MAX 7000A Programmable Logic Device Data Sheet

Figure 5. MAX 7000A PIA Routing - - - - - - - - ► - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - · - - - - - - - - - - - - - - - - - - - - - - - · - · · · · · · · · · · · · · - - - - · - - · · · - · - - - - - - - ->

> >

>

''> ' ''

''> ' ''> '

>

...

.:

.

> ' (

• >

•' • '•' > '•







:

'

/

I

' ,-

'-. , ",I



>

,

' L-..;.l�



,



.,_

'

:

• > •· -I ,>-+� �/ : •• ' > • ' •• • ••• •• • > ••

To LAB

. I

'• •

•• •

'

· · - - - - - - . .. .. . ... .. . .. .. .. . .. .. .. .. .. .. .. ... ... .. . .. ... . ... .. . . .. . . .. ... .. .. . . . . . . . . .. . .... .. .. .. . . .. . . .. .. .. .. . ... ..... ..... .. .. .. . . .. .. .. . . . . . .. ... .. . . . .. . . . .. . . . . . .. .. . . . ..••

PIA Signals

While the routing delays of channel-based routing schemes in masked or FPGAs are cumulative, variable, and path-dependent, the 7000A PIA has a predictable delay. The PIA makes a design's timing performance easy to predict.

1/0 Control Blocks The I/0 control block allows each I/0 pin to be individually configured for input, output, or bidirectional operation. All 1/0 pins have a tri-state buffer that is individually controlled by one of the global output enable signals or directly connected to ground or VCC · ·FigLtre 6 shows the 1/0 control block for 7000A devices. The I/0 control block has 6 or 10 global output enable signals that are driven by the true or complement of two output enable signals, a subset of the I/0 pins, or a subset of the 1/0 macrocells.

Altera Corporation

488

13

© Studentlitteratur

MAX 7000A Programmable Logic Device Data Sheet

Figure 6. 1/0 Control Block of MAX 7000A Devices

i--£:



,

6 or 10 Global Output Enable Signals (1)

PIA

• ••

vcc

OE Select Multiplexer

•• � --------• ••

To Other 1/0 Pins From Macrocell

GND

Open-Drain Output -­ Slew-Rate Control _____,

Fast Input to Macrocell Register To PIA

Note: (1) EPM7032AE, EPM7064AE, EPM7128A, EPM7128AE, EPM7256A, and EPM7256AE devices have six output enable signals. EPM7512AE devices have 10 output enable signals.

When the tri-state buffer control is connected to ground, the output is tri-stated (high impedance) and the 1/0 pin can be used as a dedicated input. When the tri-state buffer control is connected to Vcc, the output is enabled. The MAX 7000A architecture provides dual 1/0 feedback, in which macrocell and pin feedbacks are independent. When an I/0 pin is configured as an input, the associated macrocell can be used for buried logic.

Altera Corporation

14

© Studentlitteratur

489

MAX 7000A Programmable Logic Device Data Sheet

Same Frame Pin-Outs

7000A devices support the SameFrame pin-out feature for FineLine BGA packages. The SameFrame pin-out feature is the arrangement of balls on FineLine BGA packages such that the lower-ball­ count packages form a subset of the higher-ball-count packages. SameFrame pin-outs provide the flexibility to migrate not only from device to device within the same package, but also from one package to another. A given printed circuit board (PCB) layout can support multiple device density/package combinations. For example, a single board layout can support a range of devices from an EPM7128AE device in a 100-pin FineLine BGA package to an EPM7512AE device in a 256-pin FineLine BGA package. The Altera design software provides support to design PCBs with SameFrame pin-out devices. Devices can be defined for present and future use. The software generates pin-outs describing how to lay out a board to take advantage of this migration (see Fig u 1·e 7).

Figure 7. SameFrame Pin-Out Example :boo••••• .......... 0 0 0 ···. .1� ��:: ::;:;;:1;ig�:�r) ·l/·•·:•.{--:::1::::1::::::: ·-_ :,...}--·->··?·· ·?• '/ ::::,< ·

• MUXCY' I O I I I I I Shared between I x & y Registers I

-

f = ((y $ z)(w ffi x))" b) f(x, y, z) = I:(4, 7) = xy"z" + xyz = x(y"z" + yz) = x(y $ z)"

= (x" + (y ffi z))" = ((1 ffi x) + (y ffi z))" 4.15

© Studentlitteratur

513

Svar till övningsuppgifter

4.16 a)

b) C

a 1 d, C

I

I

I

a b

&

>1 -

&

f' =1

C

f

I

1

a

I

0 0 0

&

>1 -

&

=1

abC

=1

f

0

&

d e a, b,

>1

&

0

C

4.17 ,

&

I

&

&

I

U1

>1 -

,

=1

U1

& I

1

&

I

=1

Uo

1

&

I

Uo

�1

I

4.18 a)

b) ,

Xo , X2 X3

& & &

u >1 -

f'

-

1

=1

f

I

&

I

X1 , X2 X3

&

Xo , X1 , X3

-

=1

�1 0

&

& & &

,

1

I

&

514

-

f' =1

>1 -

f

1

© Studentlitteratur

Svar till övningsuppgifter

4.19 & &

-� 1

&

f

f

=1

r1

&

4.20 X7- 1

--�-------· · · · . .· .· .•.• .. . .. ..• · .•...)• . ........._ & __,.._. ...........-......s--. ·. · & -

---··-··......·: : -· ·-: : .: . .

..

.. ' . . . .

.. .: -:

.. .

.

.

..

:

:

..

'

-_

.

...........

"

_

--I

.

' :::·" : : .

.............._.....

. . .. . ·. ·· · . ..

........_ _ .....,.. . . .-:.:. :.: • :·. •:·... : ·. : -·.·.• •.. . · .•.• ....· ..• .• · · .... ... ---.. ..�--I : · : .:: \ .. -,

. :

.............. · . ·· .

. .

.. . . .

:

'

: .

•.

·

'

"

' .:

&. ___. & """""- .... ·.·: •·.·:··: .····.· ·· .. · ... �

'

.

.

.

.

...

.. ..

.': ·.: · .

' .

---·•·· .·• . ♦ • . :.

'

: :. . .:.. ..,·

:

. "

.

-.

.

: ' ..

.

: : .. · '

' :: ' : ' . -. ' ' ::_:::,;": . ","

''

'''

'

"

.

'

''



''

'

· & ...•.· ··•·. · ·...•. ··•· · · i.• .· .. .. ...... . •. . ' ,: " : . : : 1 -

& &

0

=1

f

f1

&

1

1

r

�1

=1

f1

&

I

>1 -

f2

=1 0