Upload
martena-burnett
View
26
Download
1
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
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