34
1 Syntese af kombinatoriske kredsløb Indhold mm. 2: • Standardrepræsentation af logiske funktioner • Grafisk minimering, Karnaugh-kort Verbal formulering af opgave Definition af variable Opstilling af logiske udtryk Opstilling af sandhedstabel Reduktion af logiske udtryk Kredsløbsdesign Verbal formulering af opgave Definition af variable Opstilling af logiske udtryk Opstilling af sandhedstabel Reduktion af logiske udtryk m. Karnaugh Kredsløbsdesign Karnaugh-kort: En overskuelig metode til reduktion af logiske udtryk.

Syntese af kombinatoriske kredsløb

Embed Size (px)

DESCRIPTION

Syntese af kombinatoriske kredsløb. Indhold mm. 2: Standardrepræsentation af logiske funktioner Grafisk minimering, Karnaugh-kort. Karnaugh-kort: En overskuelig metode til reduktion af logiske udtryk. Verbal formulering af opgave. Verbal formulering af opgave. Definition af variable. - PowerPoint PPT Presentation

Citation preview

Page 1: Syntese af kombinatoriske kredsløb

1

Syntese af kombinatoriske kredsløb Indhold mm. 2:• Standardrepræsentation af logiske funktioner• Grafisk minimering, Karnaugh-kort

Verbal formulering af opgave

Definition af variable

Opstilling af logiske udtryk

Opstilling af sandhedstabel

Reduktion af logiskeudtryk

Kredsløbsdesign

Verbal formulering af opgave

Definition af variable

Opstilling af logiske udtryk

Opstilling af sandhedstabel

Reduktion af logiskeudtryk m. KarnaughKredsløbsdesign

Karnaugh-kort:En overskuelig metode til reduktion af logiske udtryk.

Page 2: Syntese af kombinatoriske kredsløb

2

Syntese af kombinatoriske kredsløbEksempel 1:

Man fanger fisk hvis ..

D*M*V +D*H*M +D*H*V +D’*H*M*V +D’*H*M +D’*H*V

• Man er Dygtig, der er Mange fisk, og godt fiskeVejr• Man er Dygtig, Heldig og der er Mange fisk• Man er Dygtig, Heldig og der er godt fiskeVejr• Man er ikke Dygtig men Heldig, der er Mange fisk og godt fiskeVejr• Man er ikke Dygtig men Heldig, der er Mange fisk• Man er ikke Dygtig men Heldig og der er godt fiskeVejrFisk = D*M*V + D*H*M + D*H*V + D’*H*M*V + D’*H*M + D’*H*V = D*M*V + D*H*(M+V) + D’*H*(M+V) = D*M*V + H*(M+V)

Page 3: Syntese af kombinatoriske kredsløb

3

Syntese af kombinatoriske kredsløb

Variabel

0 1

A Ikke adgangsk. Adgangskort

K Ingen kode Kode

D Ikke hverdag 8-16

Hverdag 8-16

Å Ikke åbne Åbne

A K D Å

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 1

Å = A*K’*D+A*K*D’+A*K*D = A*(K’*D+K*D’+K*D) = A*(K+D)

Eksempel 2:

Man kan Åbne døren til laboratoriet på hverdage i Dagtimerne hvis man har Adgangskort og på andre tidspunkter, hvis man også har en Kode.

Def. af variable: Sandhedstabel: Logisk udtryk:

Page 4: Syntese af kombinatoriske kredsløb

4

Standardrepræsentation – Sandhedstabellen

Sandhedstabel .. eller ”Perfekt induktion” (prøv alle muligheder i en sandhedstabel) :

X Y Z

00001111

00110011

01010101

X*Y X’*Z Y*Z Left

00000011

01010000

00010001

01010011

X*Y X’*Z Right

00000011

01010000

01010011

X*Y+X’*Z+Y*Z = X*Y+X’*Z

Logisk udtryk som udgangspunkt.

Definitioner:

Produkt term: X*YSum af produkter: X*Y + X’*Z + Y*Z

Sum term: X+YProdukt af summer: (X+Y) * (X’+Z) * (Y+Z)

Page 5: Syntese af kombinatoriske kredsløb

5

Standardrepræsentation – ”Sum af produkter”

”Sum af produkter”: ON-set/Minterm

Nr. A B C Fun Udtryk

0 0 0 0 1 A’*B’*C’

1 0 0 1 0

2 0 1 0 0

3 0 1 1 1 A’*B*C

4 1 0 0 1 A*B’*C’

5 1 0 1 0

6 1 1 0 1 A*B*C’

7 1 1 1 0

Fun = A’*B’*C’ + A’*B*C + A*B’*C’ + A*B*C’

B’*C’

A*C’

CBA

Fun,,

)6,4,3,0(

A*B’*C’

Page 6: Syntese af kombinatoriske kredsløb

6

Standardrepræsentation – ”Produkt af summer”

”Produkt af summer”: OFF-set/Maxterm

Nr. A B C Fun Udtryk

0 0 0 0 1

1 0 0 1 0 A+B+C’

2 0 1 0 0 A+B’+C

3 0 1 1 1

4 1 0 0 1

5 1 0 1 0 A’+B+C’

6 1 1 0 1

7 1 1 1 0 A’+B’+C’

Fun = (A+B+C’)*(A+B’+C)*(A’+B+C’)*(A’+B’+C’)

CBA

Fun,,

)7,5,2,1(

A*B’*C

Kan det nu også være rigtigt?

Jeps! (DeMorgan)

Fun’ = (A’*B’*C)+(A’*B*C’)+(A*B’*C)+(A*B*C)

Page 7: Syntese af kombinatoriske kredsløb

7

Standardrepræsentation – ”Minterm & Maxterm”

Nr.

A B C Fun Minterm Maxterm

0 0 0 0 1 A’*B’*C’ A+B+C

1 0 0 1 0 A’*B’*C A+B+C’

2 0 1 0 0 A’*B*C’ A+B’+C

3 0 1 1 1 A’*B*C A+B’+C’

4 1 0 0 1 A*B’*C’ A’+B+C

5 1 0 1 0 A*B’*C A’+B+C’

6 1 1 0 1 A*B*C’ A’+B’+C

7 1 1 1 0 A*B*C A’+B’+C’

CBA

Fun,,

)7,5,2,1(

CBA

Fun,,

)6,4,3,0(

Minterm = ”produkt” (and) af variable.

Maxterm = ”sum” (or) af inverterede variable.(= inverteret minterm)

To ligeværdige funktions-udtryk:

”Sum af produkter”: minterm’s for Fun = 1 or’et sammen.

”Produkt af summer”: maxterms for Fun = 0 and’et sammen:

Page 8: Syntese af kombinatoriske kredsløb

8

Standardbetegnelser – ”Gamle” definitioner .. og et par nye.

Literal: A, B, Y’Variabel eller inverteret variabel.

Produktterm: A, B*Y’, A*B’*YEn eller flere literals and’et sammen

Sum af produkter: A + B*Y’ + A*B’*Y + A’*BEn eller flere produkt termer or’et sammen

n- variabel minterm: A*B’*Y, A’*B*YProdukt term hvor alle literals optræder netop én gang (2n muligheder)

Normalt produktterm: A, B*Y’, A’*YHver literals optræder kun én gang.”Unormalt prod. term”: A*B’*Y*A’

Sum term: A, B+Y’, A’+B’+Y’En eller flere literals or’et sammen Normalt sumterm: A, B+Y’, A+Y

Hver literals optræder kun én gang.”Unormalt sumterm”: A+B+Y’+B

Produkt af summer: (A+B)*Y’*(B+ A’)*(Y+A’)En eller flere sum termer and’et sammen

n- variabel maxterm: A’+B’+Y, A’+B+Y’Sum term hvor alle literals optræder netop én gang (2n muligheder)

Page 9: Syntese af kombinatoriske kredsløb

9

Former for logiske funktioner – Forskellige repræsentationer

Forskellige måder at beskrive en logisk funktion på:

1. En sandhedstabel:

2. En algebraisk sum af produkttermer (min termer): R = A*B’*C+A’*B*C’

3. En min term-liste på sum-form:

4. Et algebraisk produkt af sum termer (max termer): R = (A+B’+C’)*(A’+B+C)

5. En max term-liste på produktform:

CBA

R,,

)7,6,4,3,0(

CBA

R,,

)5,2,1(

Nr.

A B R

0 0 0 1

1 0 1 0

2 1 0 0

3 1 1 1

Eks.

Page 10: Syntese af kombinatoriske kredsløb

10

Implementering – eksempel

”Sum of products” programmerbart kredsløb. (Wakerly fig. 6-21, side 371)AND-OR eksempel.

X = fuses. XX

X

Page 11: Syntese af kombinatoriske kredsløb

11

Minimering af kombinatoriske kredsløb – formål

Formål med minimering (2-niveau AND-OR, OR-AND, NAND-NAND, NOR-NOR):

1. Minimering af antallet af gates i 1. niveau

2. Minimering af antallet af inputs til hver gate i 1. niveau.

3. Minimering af inputs til gaten i 2. niveau.

Medtages ikke: Antal invertere inden 1. niveau.

Algebraisk minimering oftest baseret på:

(T10) X*Y+X*Y´= X(T10’) (X+Y)*(X+Y’)= X

Eks: A’*B*C’*D’+A’*B*C*D’ = A’*B*D’*(C+C’) = A’*B*D’

Page 12: Syntese af kombinatoriske kredsløb

12

Grafisk minimering af kombinatoriske kredsløb

Nr.

A B C R Min.t.

0 0 0 0 0

1 0 0 1 0

2 0 1 0 1 A’*B*C’

3 0 1 1 1 A’*B*C

4 1 0 0 0

5 1 0 1 0

6 1 1 0 1 A*B*C’

7 1 1 1 1 A*B*C

B

Nr.

A B C R Min.t.

0 0 0 0 0

1 0 0 1 0

3 0 1 1 1 A’*B*C

2 0 1 0 1 A’*B*C’

6 1 1 0 1 A*B*C’

7 1 1 1 1 A*B*C

5 1 0 1 0

4 1 0 0 0

B

A

Sandhedstabel Gray-kodet sandhedstabel- et skridt på vejen

Ved at ordne sandhedstabellen således at inputs fremstår som værende Gray encodedopnår vi den fornøjelige situation, at kun ét input ændres når der skiftes fra en inputstate til en ”nabo” state .... Regler for Gray kode på side 52.

Page 13: Syntese af kombinatoriske kredsløb

13

Grafisk minimering – Karnaugh-kort

Karnaugh-kort: Gray-kodet sandhedstabel på matrixform:

00 01 11 10

0 1 1 0

0 1 1 0

0

1

0 2 6 4

1 3 7 5

0 1

0 1

1 0

0

1

0 2

1 3

AB

ABC

A

B

2 Variable (R=A*B’+A’*B) 3 Variable

MSB

LSB

Celle-nummer = binær værdi afABC (kan udelades)

Funktionsværdi

A*B’*C

Page 14: Syntese af kombinatoriske kredsløb

14

Grafisk minimering – Karnaugh-kort

Karnaugh-kort: Gray-kodet sandhedstabel på matrixform:

4 Variable

00 01 11 10

0 1 1 0

1 1 1 1

0 1 1 0

1 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

MSB

LSB

A

B

C

D

A’*B*C’*D + A*B*C’*D + A’*B*C*D + A*B*C*D =B*D

A’*B*C’*D

A*B*C’*D

A’*B*C*D

A*B*C*D

Page 15: Syntese af kombinatoriske kredsløb

15

Karnaugh-kort – rektangler

Rektangler i Karnaugh-kort:

4 Variable

00 01 11 10

0 1 1 0

1 1 1 1

0 1 1 0

1 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

N variable giver 2N celler

Rektangel på 2K * 2M (= 2K+M)celler(K = 0, 1, 2, 3... M = 0, 1, 2, 3...)kan udtrykkes ved N-K-M literals

K = 1, M = 1Antal literals = N-K-M = 4-1-1 = 2B*C’

Store rektangler simple udtryk

Med N=4 kan rektanglerne KUN tage form af enten 1x1, 1x2, 1x4, 2x2, eller 4x4.

Page 16: Syntese af kombinatoriske kredsløb

16

Karnaugh-kort – rektangler

Eksempler på ”rektangler”:

00 01 11 10

0 1 1 0

1 1 1 1

0 1 1 0

1 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

B*C’

C’*D

B*D

B’*C*D’

F

F = B*C’ + C’*D + B*D + B’*C*D’

Rektangler må gerne overlappe. Naboceller kun én variabel skifter

En ”complete sum” er en legal løsning men resultere ikke altid i en minimum løsning!

Page 17: Syntese af kombinatoriske kredsløb

17

Karnaugh-kort – rektangler

Eksempler på ”rektangler”-2:

00 01 11 10

1 0 0 1

1 1 1 0

0 1 1 0

1 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

B’*D’

A’*C’*D

B*D???????? (Ikke legal!!)

A*B’*C*D’

Page 18: Syntese af kombinatoriske kredsløb

18

00 01 11 10

0 1 1 0

0 1 1 0

0 1 1 1

0 0 0 1

Karnaugh-kort – definitioner

Prime implicant:Et normalt produktterm, for hvilket det gælder, at hvis en variabel fjernes kan den ikke bruges til at realisere funktionen.Med andre ord: Et rektangel omfattende et antal 1-taller, der er så stort, at hvis vi laver rektang-let større kommer det til at includere et eller flere 0’er.

Distinguished 1-cell: (Grå baggrund)En celle indeholdende et 1-tal, der kundækkes af én prime implicant.

Essential prime implicant: En prime implicant, der indeholder mindst en distinguished 1-cell. Som navnet antyder er disse essentielle for funktionen og SKAL derfor altid medtages.

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

F

Eks. på en ikke-prime implicant:Denne 1x2 celle er IKKE en prime implicant da den jo kan udvides til den røde 2x2 rektangel uden at der kommer ’0’ med i feltet. Dette 1x2 felt vil derfor ikke blive brugt !!!

Page 19: Syntese af kombinatoriske kredsløb

19

Karnaugh-kort – procedure

Procedure:1. Lav en sandhedstabel (eller et logisk udtryk)2. Lav Karnaugh-kortet ud fra sandhedstabellen (eller det logiske udtryk)3. Tegn så få og så store rektangler som muligt for at dække 1-tallerne4. Find de essentielle termer (ud fra distinguished 1-cells)5. Lav et reduceret kort6. Fjern de unødvendige termer7. Vælg så få og så store termer af de resterende som muligt Wakerly

fig. 4-35

Page 20: Syntese af kombinatoriske kredsløb

20

Karnaugh-kort – eksempel

Hvordan gik det egentlig med vores fisketur ???

Fisk = D*M*V + D*H*M + D*H*V + D’*H*M*V + D’*H*M + D’*H*V = D*M*V + D*H*(M+V) + D’*H*(M+V) = D*M*V + H*(M+V)

Page 21: Syntese af kombinatoriske kredsløb

21

Karnaugh-kort – eksempel

00 01 11 10

1 1 0 0

0 1 1 0

0 1 0 0

0 1 0 0

PNLPNMLNMLPMLPNMb .

Minimodul 1 opg. 5.b:

00 01 11 10

1 1 0 0

0 1 1 0

0 1 0 0

0 1 0 0

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

LMNP

L

M

N

P

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

LMNP

N

P

L

M

L’*M + L’*N’*P’ + M*N’*P

Page 22: Syntese af kombinatoriske kredsløb

22

Karnaugh-kort – eksempel

00 01 11 10

1 1 0 0

0 1 1 0

0 1 0 0

0 1 0 0

Minimodul 1 opg. 5.b: (fortsat)

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

LMNP

L

N

P

M

L’*M + L’*N’*P’ + M*N’*PKredsløb:

Page 23: Syntese af kombinatoriske kredsløb

23

Karnaugh-kort med 5 variable

5 Variable, Wakerly fig. X4.59

Page 24: Syntese af kombinatoriske kredsløb

24

Karnaugh-kort med 5 variable

5 Variable, Wakerly fig. X4.59

Rektangler Kasser

Page 25: Syntese af kombinatoriske kredsløb

25

00

01

11

10

00 01 11 10 ABCD

Karnaugh-kort med 6 variable

6 Variable:

00 01 11 10

00

01

11

10

ABCD

00

01

11

10

00 01 11 10 ABCD

00 01 11 10

00

01

11

10

ABCD

EF = 00

EF = 01

EF = 11

EF = 10

For situationer hvor mere end 5 variable (literals) skal i brug, er Karnaugh-kort metodenikke god.

Page 26: Syntese af kombinatoriske kredsløb

26

”Produkt af summer”

Indtil nu har vi kun set på sum af produkter .. og dermed altså min. termer. Vi kan også brugeKarnaugh-kort til reducering af produkt af summer istedet.

Metode 1:Man lader som om 0 er 1 og når man laver formel udtrykket bruger man produkt afmax-termer i stedet for sum af min-termer.

00 01 11 10

0 1 1 0

0 1 1 0

0 1 1 1

0 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

F

F = (A+B) * (B+C) * (A+C’+D) * (B’+C’+D)

Page 27: Syntese af kombinatoriske kredsløb

27

”Produkt af summer”

Metode 2:

1. Man finder ”sum af produkter” af F’2. Man konverterer til ”produkter af summer”

v.h.a. DeMorgan

00 01 11 10

0 1 1 0

0 1 1 0

0 1 1 1

0 0 0 1

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

F

00 01 11 10

1 0 0 1

1 0 0 1

1 0 0 0

1 1 1 0

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

B

C

D

F’

F = (A+B)*(B+C)*(A+C’+D)*(B’+C’+D)

F’ = A’*B’ + B’*C’ + A’*C*D’ + B*C*D’

Page 28: Syntese af kombinatoriske kredsløb

28

Specialtilfælde – ”Don’t care”s

Der kan være situationer, hvor visse kombinationer af input aldrig forekommer.Output for disse kombinationer er derfor ligegyldig.Don’t care celler kan medtages hvor det er belejligt

Eksempel: 7-segment display driver:

a  

f b g e c     d

Inputs Vis-ningA B C D

0 0 0 0 00 0 0 1 10 0 1 0 20 0 1 1 30 1 0 0 40 1 0 1 50 1 1 0 60 1 1 1 71 0 0 0 81 0 0 1 9

Andre komb. X

   

 

00 01 11 10

1 0 X 1

0 1 X 0

1 0 X X

1 1 X X

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

ABCD

A

C

D

BSegmentd

don’t care = d = X = Ø

Page 29: Syntese af kombinatoriske kredsløb

29

Flere udgange

   

 

Hidtil har vi antaget at multible-output kredsløb designes som uafhængige single-output kredsløb. Det giver pålidelige løsninger og er den lette og sikre vej til et funktionelt kredsløb for designeren uden den store erfaring.

Hvis der skal mange udgange til bliver dette dog hurtigt en kostbar løsningsmodel .. her må andre metoder træde til.

Som et eksempel på en situationer hvor man ønsker flere udgange (funktioner) ud fra de samme variable har vi 7-segment displaydriveren. Her har vi 4 indgange og baseret på disse skal vi styre 7 udgange.

Rationaliseringer er mulige i nogle tilfælde .. og det ligefrem direkte fra de logiske udtryk:

X = A*B*C’ + A*B’*CY = A’*B + A*B’*CZ = A’*B + B*C’

Defineres L = (A’*B)’ og M = (A*B’*C)’ kan vi omskrive disse udtryk med max. genbrug

X = A*B*C’ + M’Y = L’ + M’Z = L’ + B*C’

Page 30: Syntese af kombinatoriske kredsløb

30

Flere udgange

   

 

Også til minimering af multible-output kan Karnaugh-kort bruges. Også her gælder dog, at ved ret mange outputs bliver det stadigt sværere at finde det sjove i opgaven.

Page 31: Syntese af kombinatoriske kredsløb

31

Eksempel på et kombinatorisk kredsløb

2-to-4 decoder:

Input Output

EN I1 I0 Y3 Y2 Y1 Y0

0 X X 0 0 0 0

1 0 0 0 0 0 1

1 0 1 0 0 1 0

1 1 0 0 1 0 0

1 1 1 1 0 0 0

00 01 11 10

0

1

00

20

60

40

1 0

3 0

71

5 0

I1I0EN

I1

I0

Y3 = EN*I0*I1

Y3

00 01 11 10

0

1

00

20

60

40

1 0

3 0

7 0

51

I1I0EN

I1

I0

Y2 = EN*I0’*I1

Y2

Her er der ikke basis for nogen form for reduktion så brug af Karnaugh-kort tjener ikke det store formål. Vi kan se hvordan kredsløbet skal se ud direkte fra sandheds-tabellen.

Page 32: Syntese af kombinatoriske kredsløb

32

Eksempel på et kombinatorisk kredsløb

2-to-4 decoder: (fortsat)

I 0

I 1

EN

Y 0

Y 1

Y 2

Y 3

I0I1

EN

Y0Y1Y2Y3

2-to-4decoder

Komponent

Kredsløbsimplementering

Page 33: Syntese af kombinatoriske kredsløb

33

Tomme Karnaugh-kort

00 01 11 10

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

00 01 11 10

0

1

0 2 6 4

1 3 7 5

0 1

0

1

0 2

1 3

AB

ABC

A

B

Page 34: Syntese af kombinatoriske kredsløb

34

Tomme Karnaugh-kort

00 01 11 10

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10

00 01 11 10

00

01

11

10

0 4 12 8

1 5 13 9

3 7 15 11

2 6 14 10