Fredag 9. januar

Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
DATS/ITPE 2400: Datamaskinarkitektur og
Nettverk
Forelesning 2: Boolesk algebra 2
T. M. Jonassen
Institute of Computer Science
Faculty of Technology, Art and Design
Oslo and Akershus University College of Applied Sciences
09. Januar 2015
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Oversikt
1
Boolesk algebra
2
To-verdi Boolesk algebra
3
Normalformer
4
Karnaugh-diagrammer (K-map)
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
˚
Oppgaver til neste uke (mandag 12.01) legges ut pa:
bluemaster.cs.hioa.no/edu/darknet-15/
˚ at vi primært bruker rommene PH 451 og PH 461,
Jeg foreslar
˚ formal
˚ na.
˚
da disse er best egnet for vare
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Om Boolesk algebra - litt repetisjon
Grunnlaget for datamaskiner slik vi kjenner disse i dag,
derfor viktig
Har postulater (aksiomer) som beskriver strukturen i en
Boolesk algebra
Aksiomer kan ikke bevises
Men, hvis vi definerer operasjoner, ma˚ vi vise at de
tilfredstiller aksiomene
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Definisjon
˚
En Boolsek algebra er en struktur bestande
av en mengde
elementer B sammen med to binære operasjoner + og · slik at
følgende seks aksiomer er oppfylt:
Aksiom 1: Lukket med hensyn pa˚ + og ·.
Lukket betyr at x, y ∈ B ⇒ x + y ∈ B. (Tilsvarende for ·)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Definisjon
Aksiom 2: Det fins et identitetselement mhp +, kalt 0 slik at
x +0=0+x =x
Det fins et identitetselement mhp ·, kalt 1 slik at
x ·1=1·x =x
Aksiom 3: Kommutativ mhp +, x + y = y + x
Kommutativ mhp ·, x · y = y · x
Aksiom 4: · er distributiv over +:
x · (y + z) = (x · y) + (x · z)
+ er distributiv over ·:
x + (y · z) = (x + y) · (x + z)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Definisjon
Aksiom 5: For hver x ∈ B fins x ′ ∈ B (komplement) slik at
x + x ′ = 1 og x · x ′ = 0.
Aksiom 6: Det fins minst to x, y ∈ B slik at x 6= y.
En Boolesk algebra er altsa˚ et trippel (B, +, ·) samt en
komplement operasjon ′ slik at aksiom 1-6 holder.
Det fins en rekke strukturer vi kjenner som er Booleske
algebraer: Mengdelære med snitt, union og komplement, eller
(hos oss) B = {0, 1} med AND, OR og NOT.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Noen grunnleggende teoremer
Teorem 1:
x + x = x og x · x = x
Teorem 2:
x + 1 = 1 og x · 0 = 0
Teorem 3:
(x ′ )′ = x
Teorem 4: (assosiativ)
x + (y + z) = (x + y) + z og x · (y · z) = (x · y) · z
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Noen grunnleggende teoremer
Teorem 5: (De Morgan)
(x + y)′ = x ′ · y ′ og (x · y)′ = x ′ + y ′
Teorem 6: (absorsjon)
x + x · y = x og x · (x + y) = x
Vi sa˚ pa˚ et par av bevisene forrige forelesning.
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
To-verdi Boolesk algebra
Vi skal se pa˚ en to-verdi algebra
Variable kan bare anta to verdier hos oss, 0 og 1.
Dette betyr at alt kan uttrykkes i endelige tabeller, n
variable, 2n muligheter. Sannhetstabeller.
Vi kan ogsa˚ angi funksjoner som algebraiske uttrykk.
Merk: + er OR og · er AND, ikke det samme som vi bruker
om “pluss” og “gange” fra barneskolen, men samme
symboler.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
AND, OR, NOT
AND OR NOT BUFFER
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
To-verdi Boolesk algebra
Det er lett a˚ verifisere fra tabellene at AND, OR og NOT
oppfyller aksiomene:
˚
Apenbart
lukket (1)
Indentitetselementer, og kommutative (2,3)
Kan sjekke (4) i tabell
(5) holder fra tabell
B = {0, 1} sa˚ (6) holder.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Elementære opersjoner
Pa˚ papir angis operasjoner med symboler:
AND: Ved x · y eller bare xy
OR: Ved x + y
NOT: Ved x ′ eller x
XOR: Ved x ⊕ y
NAND: Ved xy
XNOR: Ved x ⊕ y
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
NAND, NOR, XOR, XNOR
NAND NOR XOR XNOR
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
XOR og XNOR del 2
Vi har følgende uttrykk for XOR og XNOR:
XOR:
x ⊕ y = xy + x y
XNOR:
x ⊙ y = x ⊕ y = xy + x y
Uttrykket for x ⊙ y kan vises fra x ⊕ y ved a˚ bruke deMorgan,
og deretter redusere uttrykket.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
NAND er universell
NAND er en universell port:
Universell betyr at de tre grunnleggende operasjonene AND,
OR og NOT kan implementeres ved NAND alene.
NOT ved NAND: xx = x
AND ved NAND: xy = xy
OR ved NAND: x y = x + y = x + y
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Booleske funksjoner
En Boolesk funksjon i n variable er et uttrykk
y = f (xn−1 , xn−2 , . . . , x1 , x0 )
f har da 2n forskjellige muligheter for input, og bare to output, 0
eller 1.
Vi kan fremstille f ved et algebraisk uttrykk, en sannhetstabell
eller som et portdiagram.
n
Det kan vises at hvis vi har n variable, fins 22 forskjellige
Booleske funksjoner i disse.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Normalformer
Faktum:
f (w, x, y, z) = wxyz
er 1 hvis og bare hvis w = 0, x = 1, y = 0 og z = 1.
g(x, y, z) = xyz + xyz
˚ (x, y, z) = (1, 0, 1) eller (x, y, z) = (0, 1, 0), og 0 ellers.
er 1 nar
Denne observasjonen gir oss en metode for a˚ overføre en tabell
til et algebraisk uttrykk.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Normal former
Det fins to normalformer for Booleske funksjoner:
Sum av produkter (SOP) (sum of products)
Produkt av summer (POS) (products of sums)
Vi kommer stort sett til a˚ bruke SOP, mindre a˚ skrive,
˚
lettere a˚ handtere?
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Normalformer
Funksjonen
f (x, y, z) = xyz + x ′ y ′ z + xyz ′
er pa˚ normalform (SOP).
Funksjonen
h(x, y, z) = (x + y + z)(x + z ′ )(y + z ′ )
er pa˚ normalform (POS).
Funksjonen
g(x, y, z) = x ⊕ y + (x ′ + y + z)′
er ikke pa˚ normalform, hverken SOP eller POS.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Navn pa˚ produktledd POS
En funksjon i n variable pa˚ SOP form skrives som
X
mi
f (xn−1 , xn−2 , . . . , x1 , x0 ) =
i∈I
hvor mi er det produktleddet som er 1 pa˚ input svarende til i pa˚
binær form.
Leddene mi kalles min-termer.
Eksempel:
g(x, y, z) = m0 + m7 = x y z + xyz
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Navn pa˚ sumledd POS
En funksjon i n variable pa˚ POS form skrives som
Y
Mi
f (xn−1 , xn−2 , . . . , x1 , x0 ) =
i∈I
hvor Mi er det sum-leddet som er 0 pa˚ input tilsvarende i pa˚
binær form, altsa˚ motsatt av min-termer.
Leddene Mi kalles max-termer.
Med tre variable har vi for eksempel M0 = x + y + z,
M1 = x + y + z ′ og M7 = x ′ + y ′ + z ′ .
For eksempel er da
f (x, y, z) = M1 M3 M6 = (x + y + z ′ )(x + y ′ + z ′ )(x ′ + y ′ + z)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Konvertere POS → SOP
Metode for a˚ konvertere et uttrykk pa˚ produkt av summer til
sum av produkter:
Regn ut alle produktene mellom summeledd, og reduser.
Eksempel:
f (x, y, z) = (x + y + z)(x ′ + y ′ + z)(x + y ′ + z ′ )
Vi finner:
(x + y + z)(x ′ + y ′ + z) = (xy ′ + x ′ y + z)
og
(xy ′ + x ′ y + z)(x + y ′ + z ′ ) = xy ′ + xz + y ′ z + x ′ yz ′
sa˚
f (x, y, z) = xy ′ + xz + y ′ z + x ′ yz ′
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Konvertere SOP → POS
For a˚ konvertere en funksjon f fra SOP til POS kan vi bruke to
metoder.
Metode 1:
Beregn f ′ ved a˚ bruke deMorgan til a˚ oppna˚ en funksjon pa˚
SOP form. Forenkl uttrykket.
Siden f = f ′′ , bruker vi deMorgan til a˚ oppna˚ en POS form.
Metode 2:
Bruk et Karnaugh-diagram til a˚ skrive f = 0 pa˚ en SOP form.
Bruk deretter deMorgan for a˚ oppna˚ en POS form fra f ′ .
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Eksempel
La
f (x, y) = xy + x ′ y ′
Da er, ved a˚ bruke metode 1:
f ′ = (xy + x ′ y ′ )′ = (xy)′ (x ′ y ′ )′
= (x ′ + y ′ )(x + y) = x ′ y + xy ′
Derfor er
f = f ′′ = (x ′ y + xy ′ )′ = (x ′ y)′ (xy ′ )′
= (x + y ′ )(x ′ + y)
Hvis ønskelig, tar jeg detaljene pa˚ whiteboard.
Karnaugh-diagrammer (K-map)
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Karnaugh-diagrammer (K-map)
Vi beskriver ofte en Boolesk funksjon f = f (x1 , x2 , . . . , xn )
ved en tabell.
Karnaugh-diagrammer er en teknikk for a˚ oversette
tabellen til et algebraisk uttrykk.
Karnaugh-diagrammer er en effektiv metode for a˚ forenkle
uttrykk.
Basserer seg pa˚ expr (x + x) = expr · 1 = expr
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Eksempel pa˚ et Karnaugh-diagram
f (w, x, y, z) =
X
m(1, 2, 3, 5, 7, 10, 11, 15)
x
f (w, x, y, z) :
5
4
1
#
#
Ã
Ã
0
y
w
z
#Ã
2
0
1
0
1
1
"
!
6
7
3
1
0
1
"
"
!
!
15
11
14
10
8
1
0
1
9
0
0
1
13
0
12
0
f (w, x, y, z) = wz + yz + xy
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Definisjoner
Vi bruker følgende navn pa˚ ruter og naboruter i et
Karnaugh-diagram:
Implikant - Et produktledd
˚
Primimplikant - Et produktledd bestaende
av et maksimalt
antall naboruter. Antallet ma˚ være en potens av 2
Essensiell primimplikant - En primimplikant som
inneholder minst en implikant som ikke er dekket av andre
primimplikanter
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Metode
Vi bruker følgende metode for a˚ forenkle en Boolesk funksjon
pa˚ normalform satt inn i et Karnaugh-diagram:
Finn alle primimplikanter
Identifiser de essensielle primimplikantene, disse ma˚ være
med
Dekk eventuelle udekkede implikanter med et minimalt
antall primimplikanter
Merk: Siste punkt over behøver ikke a˚ være entydig, det kan
finnes flere ekvivalente valg.
Boolesk algebra
To-verdi Boolesk algebra
Normalformer
Karnaugh-diagrammer (K-map)
Noen oppgaver
Hvis tid, gjør følgende oppgaver:
Bruk Karnaugh-diagram til a˚ forenkle følgende Booleske
funksjoner gitt pa˚ SOP-form:
X
f1 (x, y, z) =
m(1, 3, 4, 6, 7)
X
f2 (x, y, z) =
m(0, 2, 4, 6)
X
f3 (w, x, y, z) =
m(0, 2, 5, 7, 8, 10, 13)
X
f4 (w, x, y, z) =
m(2, 3, 7, 11, 13, 15)
I hvert tilfelle, angi alle primimplikanter og hvilke av disse som
er essensielle primimplikanter.