Syntese af kombinatoriske kredsløb

Preview:

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

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.

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)

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:

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)

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’

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)

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:

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)

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.

10

Implementering – eksempel

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

X = fuses. XX

X

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’

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.

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

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

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.

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!

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’

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 !!!

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

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)

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

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:

23

Karnaugh-kort med 5 variable

5 Variable, Wakerly fig. X4.59

24

Karnaugh-kort med 5 variable

5 Variable, Wakerly fig. X4.59

Rektangler Kasser

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.

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)

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’

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 = Ø

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’

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.

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.

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

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

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

Recommended