75
IN1020 Logiske porter om forenkling til ALU

02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Embed Size (px)

Citation preview

Page 1: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

IN1020

Logiske porter om forenkling til ALU

Page 2: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Hovedpunkter• Utlesing av sannhetsverdi-tabell; Max og Min-termer

• Forenkling av uttrykk med Karnaugh diagram

• Portimplementasjon

• Kretsanalyse

• Adder og subtraktor design

• Generell Black-box design/tankesett

• Enkoder og Dekoder

• Multiplexer og DeMultiplexer

• ALU

• Datapath

Page 3: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MintermI en funksjon kan en binær variabel x opptre som x eller x

En funksjon kan være gitt på “sum av produkt” form

Eksempel:F = xy + xy+ x

Hvert “produktledd” som inneholder alle variablene kalles en minterm.

For to variable finnes det 4 forskjellige mintermer:xy + xy+ xy + xy

For 3 variable finnes det 23 forskjellige mintermer

Omid Mirmotahari 4

Page 4: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MakstermEn funksjon kan være gitt på “produkt av sum” form

Eksempel:F = (x+y)(x+y)y

Hvert “summeledd” som inneholder alle variablene kalles en maksterm

For to variable finnes det 4 forskjellige makstermer:(x+y) (x+y) (x+y) (x+y)

For n variable finnes det 2n forskjellige makstermer

Omid Mirmotahari 5

Page 5: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Sannhetstabell / mintermer

Hvis man genererer en funksjon ut i frasannhetstabellen får man en sum av mintermer

Eksempel:

F = xyz + xyz + xyz

En sannhetstabell kan sees på som en liste av mintermer

Omid Mirmotahari 6

000 1

011 1

0100

x y z

000 1

011 1

00001111

F

1010

Page 6: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Notasjon

Mintermer har notasjon mxMaxtermer har notasjon Mx

Funksjoner som bare består av sum/produkt avmin/maxtermer (kanonisk form) har følengdenotasjon:

F(x,y,z) = S(m3, m6) = S(3, 6) = x’yz+xyz’F(x,y,z) = P(M3, M6) = P(3, 6) = (x+y’+z’)(x’+y’+z)

Omid Mirmotahari 7

Page 7: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

KarnaughdiagramGrafisk metode for forenkling av Boolske uttrykk

F = m1 + m3 = ab + ab

Eksempel, 2 variable:

F = m0 + m1 + m15 = AB´CD+ ABCD + ABCD

Eksempel, 4 variable:

• Uttrykket må være representert ved sum av mintermer (mx).Disse leser vi direkte ut av sannhetstabellen

• Metoden egner seg for funksjoner med 2-4(5) variable

Omid Mirmotahari 8

Page 8: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Prosedyre, 2 variableSetter inn mintermene i diagram

F = m0 + m1 + m2 + m3

• Eksempel: generell funksjon - 2 variable

Omid Mirmotahari 9

Page 9: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Prosedyre, 2 variable

F1 = xy og F2 = xy + xy + xy

Omid Mirmotahari 10

Page 10: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Prosedyre, utlesning

xy x

y

Omid Mirmotahari 11

• Representerer gruppene ved de variablene i gruppen som ikke varierer

• Grupperer naboruter som inneholder ”1” slik at vi får sammenhengende rektangler, Velg så store grupper som mulig. Antall element må være en potens av 2

Page 11: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Prosedyre, utlesning

Funksjonene som diagrammene beskriver er nå gitt av summen av uttrykkene som representerer hver gruppe

F1 = F2 =

xy

xy

y

+ y

x

x

Omid Mirmotahari 12

Page 12: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Karnaugh - 3 variablePlassering av mintermer for 3-variable funksjoner:

• Mintermene plasseres slik at kun 1 variabelvarierer i mellom hver vannrette/loddrette naborute

yz

Omid Mirmotahari 13

Page 13: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Karnaugh - 4 variablePlassering av mintermer for 4-variable funksjoner

• Mintermene plasseres slik at kun 1 variabel varierer i mellom hver vannrette/loddrette naborute

Omid Mirmotahari 14

Page 14: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Grupperingsregler for diagram med 2-4 variable

Grupperer naboruter som inneholder ”1” slik at vi får sammenhengende rektangler

Ytterkantene av diagrammet kan også være naboruter

Eksempel

Omid Mirmotahari 15

Page 15: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Grupperingsregler for diagram med 2-4 variable

1

Omid Mirmotahari 16

Page 16: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Grupperingsregler for diagram med 2-4 variable

Omid Mirmotahari 17

Page 17: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Utlesningssregler for diagram med 2-4 variable

Representerer hver gruppe ved de variablene i gruppen som ikke varierer.

CD +BC +ABAD +

Diagrammets funksjon blir summen av hvert gruppeledd:

F =

Eksempel

Omid Mirmotahari 18

Page 18: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Utlesningsreglerfor diagram med 2-4 variableEksempel:

F = y+

1

xzwz+

Merker oss at jo større ruter desto enklere uttrykk

Omid Mirmotahari 19

Page 19: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

F = ACDCB+BD+

Utlesningssregler for diagram med 2-4 variable

Omid Mirmotahari 20

Page 20: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Utlesning av ”0”ere

Ved å lese ut de tomme rutene (”0”erne) fra diagrammet får man F

Dette kan noen ganger gi en enklere funksjon, eksempel:

F = (yz + wx)F= yz + wx

F = xy + wy+ wz+ xz

Hadde vi lest ut ”1”ere ville vi fått

Omid Mirmotahari 21

Page 21: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Spesialteknikker

Omid Mirmotahari 22

Page 22: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

XORXOR funksjonen dekker maksimalt ”uheldige” ”1”er plasseringer i diagrammet

Har man XOR porter til rådighet bruker man disse

I dette eksemplet kan 1 stk. 3-inputs XOR realisere F

Omid Mirmotahari 23

Page 23: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

XORab

cd

1 11 1

1 111 ab

cd

111 1

1 11 1

ab

cd

1 11 1

1 111 ab

cd

111

11

11

1

ab

cd

1 11 1

1 111 ab

cd

1 11 1

1 111

Omid Mirmotahari 24

XNOR XOR

XOR representerer den odde funksjonen, dvs de kombinasjoner av inngangen hvordet er odde antall 1ere

Man kan også bruke Karnaugh diagram til åforenkle enkelte XOR funksjoner.

XNOR er den inverterte funksjonen av XOR

Page 24: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

XORXOR funksjonen kan kombineres med andre ledd

Eksempel:

F = AÅBÅCÅD + ACD

1

Omid Mirmotahari 25

Page 25: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

DesigneksempelVi ønsker å designe en krets som kan sammenligne to tall A og B. Hvert tall er representert ved to bit.

Kretsen skal finne A>B samt A=B

Vi har dermed 2·2=4innganger, og 2 utganger

Setter navn på utgangene: F1 for A>B og F2 for A=B

A0A1

B0

F1

F2

B1

Digitaltsystem

Omid Mirmotahari 26

Page 26: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Designeksempel

• Setter opp en sannhetstabell for hver utgang (slår sammen til en dobbel tabell)

UtgangerInnganger

000 1

011 1

0000

A0A1 B0

000 1

011 1

00001111

F1

1000

1000

F2

0100

00000000

000 1

011 1

000 1

011 1

00001111

11111111

B1

11001110

00100001

Vi trenger en oversikt over alle mulige inngangs/utgangs kombinasjoner, derfor:

• Leser ut mintermer

F1 = A1A0B1B0+ A1A0B1B0+ A1A0B1B0 +A1A0B1B0 + A1A0B1B0 + A1A0B1B0

F2 = A1A0B1B0+ A1A0B1B0+ A1A0B1B0+ A1A0B1B0

Omid Mirmotahari 27

Page 27: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Forenkler uttrykket for å spare porter

Setter inn i Karnaughdiagram

F1 = A1A0B1B0+ A1A0B1B0+ A1A0B1B0 + A1A0B1B0 +A1A0B1B0 + A1A0B1B0

A1A0

B1B0F1

00

01

11

10

00 01 11 10

1

1

1

1 1 1

F2 = A1A0B1B0+ A1A0B1B0+ A1A0B1B0+ A1A0B1B0

A1A0

B1B0F2

00

01

11

10

00 01 11 10

1

1

1

1

Omid Mirmotahari 28

Page 28: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Leser ut av diagrammene

A1A0

B1B0F1

00

01

11

10

00 01 11 10

1

1

1

1 1 1

A1A0

B1B0F2

00

01

11

10

00 01 11 10

1

1

1

1

F1 =

F2: Ingen forenkling mulig ved utlesning av ”1”ere, leser derfor ut ”0”ere

F2 =

F2 = (A1B1+ A0B0+ A0B0 + A1B1)Inverterer begge sider

A1A0B0A1B1+ A0B1B0+

A0B0 +A1B1+ A0 B0+ A1B1

Omid Mirmotahari 29

Page 29: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Implementerer uttrykkene

F1 = A1B1+ A0B1B0+ A1A0B0

F2 = (A0B0+ A0B0 + A1 B1+ A1B1) ( Hva med XOR? )

F1F2

A1

B1

A0

B1

A1

A0

B0

B0

A0

B0

A0B0

A1

B1

A1B1

F1

Omid Mirmotahari 30

Page 30: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Black box tankesett!

• Styring av heis

Omid Mirmotahari 31

Page 31: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Designeksempel 1

• Styring av heis

• Inngangssignaler fra sensorK = Knapp trykket inn: 0/1V = Overvekt: 0/1D = Dør lukket: 0/1

• Utgangssignal til aktuator:M = Motor på: 0/1

Omid Mirmotahari 32

Kontrolllogikk

KVD

M

Page 32: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Sannhetstabell for designet

Omid Mirmotahari 33

000 1

011 1

0000

K V D

000 1

011 1

00001111

M

0100

M = KV’D 0 11 1

Page 33: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Implementasjon på portnivå

Omid Mirmotahari 34

Page 34: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Generell analyseprosedyre for digitale kretser

1) Sett funksjonsnavn på ledningene

2) Finn funksjonene

3) Kombiner funksjonsuttrykkene

Omid Mirmotahari 35

Page 35: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

EksempelT2

T1

F´2

F2

F1

T3

T2=ABC

T1=A+B+C

F2=AB+AC+BC

T3= F´2 (A+B+C)F´2

F1=ABC+ (AB+AC+BC) (A+B+C)

F1

Omid Mirmotahari 36

Page 36: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Binær adder

En av de mest brukte digitale kretser

Vanlige anvendelser:

• Basis for addisjon / subtraksjon / multiplikasjon / divisjon og mange andre matematiske operasjoner

• All form for filtrering / signalbehandling

Mikroprosessor ALU / Xbox / mikserbord / digitalt kommunikasjonsutstyr / AD-DA omformere osv...

Omid Mirmotahari 37

Page 37: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Binær adderØnsker å designe en generell binær adder

Funksjonelt eksempel

Adder to tall A=5 og B=13:

10 1011 10

00+

=

10 1011 10

00

0

+

=

1

10 1011 10

00

0

+

=

1

1

10 1011 10

00

0

+

=

1

0

1

10 1011 10

00

0

+

=

1

00

11

10 1011 10

00

0

+

=

1

001

11

S

BA

A1

A0

B1

B0

S0

S1

0

C1

C2

Omid Mirmotahari 38

Page 38: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Et adder systemSystemelementer:

Halv adder

Fulladder

Fulladder

Fulladder

A0 B0

Halvadder: Tar ikke mente innFulladder: Tar mente inn

C1 C0=0

A1 B1

C2

A2 B2

C3

A3 B3

C4

S0S1S2S3Omid Mirmotahari 39

Page 39: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Halvadder (ingen mente inn)Adderer sammen de to minst signifikante bittene A0 og B0.

Sannhetstabell

A0 B0 C1S0

00100111

0110

0001

S0 = A0B0 + A0B0= A0 ÅÅB0

C1 = A0B0

Elementet har 2 innganger og 2 utganger

Omid Mirmotahari 40

Page 40: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Halvadder implementasjon

C1 = A0B0 C1 = A0B0

S0 = A0 ÅB0S0 = A0B0 + A0B0

C1

S0

B0

A0

C1

S0

B0

B0 ´

A0 ´

A0

B0

A0

Omid Mirmotahari 41

Page 41: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Fulladder (mente inn)Adderer sammen bit An , Bn med evt. mente inn

Sn = An ÅBn ÅCn (oddefunksjon)

Cn+1 = AnBnCn + AnBnCn + AnBnCn+ AnBnCn

Sannhetstabell

An Bn Cn+1Sn

00001010

0001

0110

Cn

0101

01011111

0101

0111

1001

Elementet har 3 innganger og 2 utganger

Omid Mirmotahari 42

Page 42: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Forenkling

Forenkler Cn+1 ved Karnaughdiagram

Cn+1 = AnBnCn + AnBnCn + AnBnCn+ AnBnCn

An

BnCn

01

00 01 11 10

1 1 11

Cn+1 = AnBn + AnCn + BnCn

Omid Mirmotahari 43

Page 43: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Implementasjon I

Rett fram implementasjon

Cn+1 = AnBn + AnCn + BnCn

Sn = An ÅÅBn ÅÅCn

Sn

An

Bn

Cn

AnBn

Cn

An

Cn

Bn

Cn+1

Omid Mirmotahari 44

Page 44: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Implementasjon IIForenklet implementasjon av Cn+1 basert på gjenbruk av porter fra Sn

Sn = (An ÅÅBn)ÅÅCn

An

BnCn

01

00 01 11 10

1 1 11

Leser ut Cn+1 fra karnaughdiagram på nytt

Cn+1 = AnBn + (AnBn+ AnBn ) Cn

Cn+1 = AnBn + (An ÅÅBn) Cn

Cn+1 = AnBn + AnBnCn + AnBnCn

Omid Mirmotahari 45

Page 45: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Implementasjon IIVanlig implementasjon av en-bits fulladder

Sn = (An ÅBn)ÅCn

Cn+1 = AnBn + (An ÅBn) Cn

Sn

Cn+1

Bn

An

Cn

An Å Bn

AnBn

Omid Mirmotahari 46

Page 46: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Binær adder

S

BA 10 10

11 1000+

=

10 1011 10

00

0

+

=

1

10 1011 10

00

0

+

=

1

1

10 1011 10

00

0

+

=

1

0

1

10 1011 10

00

0

+

=

1

00

11

10 1011 10

00

0

+

=

1

001

11 0

Sn

Cn+1

Bn

An

Cn

Fulladder (evt. mente inn)

An

Bn Sn

Cn+1 CnB0

A0

C1

S0

Halvadder (ikke mente inn)

C1

S0

A0

B0

Omid Mirmotahari 47

Page 47: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Menteforplantning4-bits binær adder

Halv adder

Fulladder

Fulladder

Fulladder

C1C2C3

C4

Omid Mirmotahari 48

Page 48: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MenteforplantningPortforsinkelse gir menteforplantning (rippeladder)

Adderer 0101 og 1011

Halv adder

Fulladder

Fulladder

Fulladder

000 00 000

000 0 0

000

111 1 0 10 0

0

0

1

00

110

Eksempel

111 1 0 10 0

0

1

0

00

110

111 1 0 10 0

0

1

0

10

010

111 1 0 10 0

0

1

0

11

000

111 1 0 10 0

0

1

0

11

001Omid Mirmotahari 49

Page 49: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

KomparatorKomparator – sammenligner to tall A og B

• 3 utganger: A=B, A>B og A<B

Kan skrives: (A0ÅB0)(A1ÅB1)(A2ÅB2)(A3ÅB3)

Eksempel: 4-bits komparator

Utgang A=B

Slår til hvis A0=B0 og A1=B1 og A2=B2 og A3=B3

Omid Mirmotahari 50

Page 50: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Komparator - eksempelUtgang A>B slår til hvis:

(A3>B3) eller

(A2>B2 og A3=B3) eller

(A1>B1 og A2=B2 og A3=B3) eller

(A0>B0 og A1=B1 og A2=B2 og A3=B3)

Kan skrives:

(A3B3) + (A2B2) (A3ÅB3)+ (A1B1) (A2ÅB2)(A3ÅB3)+

(A0B0)(A1ÅB1)(A2ÅB2)(A3ÅB3)Omid Mirmotahari 51

Page 51: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Komparator - eksempelUtgang A<B slår til hvis:

(A3<B3) eller

(A2<B2 og A3=B3) eller

(A1<B1 og A2=B2 og A3=B3) eller

(A0<B0 og A1=B1 og A2=B2 og A3=B3)

Kan skrives:

(A3B3) + (A2B2) (A3ÅB3)+ (A1B1) (A2ÅB2)(A3ÅB3)+

(A0B0)(A1ÅB1)(A2ÅB2)(A3ÅB3)Omid Mirmotahari 52

Page 52: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Komparator - eksempel

Omid Mirmotahari 53

Page 53: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Dekoder

Dekoder – tar inn et binært ord, gir ut alle mintermer

Eksempel: 3bit inn / 8bit ut

Omid Mirmotahari 54

Page 54: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Dekoder - sannhetstabellEksempel: 3bit inn

UtgangerInnganger

000 1

011 1

1000

x y z

000 1

011 1

00001111

D0

0000

0100

D1

0000

D2

00100000

D3

00010000

D4

00001000

D5

00000100

D6

00000010

D7

00000001

Omid Mirmotahari 55

Page 55: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Dekoder – generering av logiske funksjoner

Dekoder - elektrisk sannhetstabell. Kan generere generelle logiske funksjoner direkte fra mintermene på utgangen

Eksempel:Fulladder

An

Bn

Cn Cn+1

Sn

Omid Mirmotahari 56

Page 56: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

EnkoderEnkoder – motsatt av dekoder

UtgangerInnganger

000 1

011 1

1000

x y z

000 1

011 1

00001111

D0

0000

0100

D1

0000

D2

00100000

D3

00010000

D4

00001000

D5

00000100

D6

00000010

D7

00000001

Eksempel: 8x3 enkoder

x = D4 + D5 + D6 + D7

y = D2 + D3 + D6 + D7

z = D1 + D3 + D5 + D7

Antar at det ikke eksisterer andre inngangskombinasjoner

Omid Mirmotahari 57

Page 57: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Enkoder

Eksempel D0

D1

D2

D3

D4

D5

D6

D7

X

Y

zx = D4 + D5 + D6 + D7

y = D2 + D3 + D6 + D7

z = D1 + D3 + D5 + D7

Omid Mirmotahari 58

Page 58: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MultiplekserMultiplekser (MUX) – velger hvilke innganger som slippes ut

ABC

N

UT

Select

Hver inngang kan bestå av ett eller flere bit

Omid Mirmotahari 59

Page 59: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MUX

Eksempel: 2-1 MUX

Implementasjon SymbolOmid Mirmotahari 60

Page 60: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Eksempel: 4-1 MUX

Omid Mirmotahari 61

Page 61: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

MUX

Eksempel: 2-1 MUX

Omid Mirmotahari 62

Page 62: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

DemultiplekserDemultiplekser – motsatt av multiplekser

ABC

N

INN

SelectOmid Mirmotahari 63

Page 63: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Kombinert adder/subtraktor

M=0: adder / M=1: subtraktor / V: overflow bitOmid Mirmotahari

Page 64: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Aritmetisk logisk enhet (ALU)

• Den delen av CPU hvor logiske ogaritmetiske beregninger utføre, f.eksaddisjon, subtraksjon, AND, OR osv…

Omid Mirmotahari 65

Page 65: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

• Operasjoner som ALU skal utføre: (eksempelvis)

– AND– OR– XOR– Addisjon– Subtraksjon

• Følgende byggeblokker trenger vi:– Fulladder– Multiplekser– AND,OR og NOT

Omid Mirmotahari 66

Page 66: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Omid Mirmotahari 67

0 MU

1 X

a b

Out

Operasjon

Operasjon Out

0 AND (ab)

1 OR (a+b)

Page 67: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Omid Mirmotahari 68

Operasjon Out

0 0 AND0 1 OR1 0 XOR1 1 ?

a b

Out0

M1

U2

X3

Operasjon

Page 68: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Omid Mirmotahari 69

mente inn

Add

mente ut

a b

Out0

M1

U2

X3

Operasjon

Operasjon Out

0 0 AND0 1 OR1 0 XOR1 1 SUM

Page 69: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

Omid Mirmotahari 70

mente inn

Add

mente ut

Out0

M1

U2

X3

Operasjon

b

a

0

1

b_invert

Operasjon Out

000 ab001 a+b010 a XOR b011 a SUM b100 ab101 a+b110 a XOR b111 a SUB b

Operasjon = a2a1a0a2 = b_inverta1 = MSB MUXa0 = LSB MUX

Page 70: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

1-bit ALU

Omid Mirmotahari 71

inst computation

000 a · b

001 a · b010 a + b

011 a + b100 a ⊕ b

101 a ⊕ b110 a + b

111 a - b

inst = a2a1a0Inst(2) = a2 invert bInst(1) = a1 MSB MUXInst(0) = a0 LSB MUX

Page 71: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

N-bit ALU

Omid Mirmotahari 72

Page 72: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

ALUer i CPU• Moderne CPU kan inneholde flere ALUer

• ALUer kan designes til å håndtere flere funksjoner per trinn og merkomplekse.

• Alternativt kan man bruke software aktivt til å designe slik at en ALU kan utføre komplekse operasjoner over flere trinn.

• TRADE-OFF: hvor skal man plassere kompleksiteten, i hardware ellersoftware

• Ulemper med å sette kompleksitet i hardware er høyere kostnader ifbm strømforbruk, areal og produksjonskost.

• ALU designet spiller en stor rolle med hensyn på CPU sin ytelse, da det mest komplekse operasjonen setter maksimal klokkefrekvens.

Omid Mirmotahari 73

Page 73: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

ALU

ALU –ArithmeticLogic Unit

Generell regneenhet

Eksempel: SN74LS1814bit utbyggbar ALU30 forskjellige operasjoner

Omid Mirmotahari

Page 74: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

ALU - SN74LS181

Omid Mirmotahari

Page 75: 02 - Logiske porter til ALU Velg så store grupper som mulig. Antall element må være en potens av 2 Prosedyre, utlesning Funksjonene som diagrammene beskriver er nå gitt av summen

76

Komplett CPU: 4-bit databuss / 3bit adressebuss

Omid Mirmotahari