Kombinatoorsete süsteemide disain  L2. Arvusüsteemid ja kahend-loogika  L3. Loogikafunktsioonide esitamine ja teisendamine  L4.

Download Report

Transcript Kombinatoorsete süsteemide disain  L2. Arvusüsteemid ja kahend-loogika  L3. Loogikafunktsioonide esitamine ja teisendamine  L4.

Kombinatoorsete
süsteemide disain
 L2. Arvusüsteemid ja kahend-loogika
 L3. Loogikafunktsioonide esitamine ja
teisendamine
 L4. Digitaalsüsteemid, andme- ja juht-osa,
modelleerimise alused
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
1
Kahendloogika põhitehted
 Liitmine
- a+b, ab, a|b
 Korrutamine
- a·b, ab, a&b
 Aksioomid
 (1)
 (2)
 (3)
 (4)
 (5)
© Peeter Ellervee
X=0 kui X1
kui X=0, siis X’=1
0·0=0
1·1=1
0·1=1·0=0
X=1 kui X0
kui X=1, siis X’=0
1+1=1
0+0=0
1+0=0+1=1
I207 - Digitaalloogika ja -süsteemid - L3
2
Kahendloogika põhitehted
 Ühemuutuja teoreemid
 (1)
 (2)
 (3)
 (4)
 (5)
© Peeter Ellervee
X+0=X
X+1=1
X+X=X
(X’)’ = X
X + X’ = 1
X·1=X
X·0=0
X·X=X
X · X’ = 0
I207 - Digitaalloogika ja -süsteemid - L3
identsus
konstandid
idempotentsus
topelteitus
täiendid
3
Kahendloogika põhitehted
 Kahe- ja kolmemuutuja teoreemid
 (6) X+Y = Y+X
X·Y = Y·X
kommutatiivsus
 (7) (X+Y)+Z=X+(Y+Z)
(X·Y)·Z=X·(Y·Z)
assotsiatiivsus
 (8) (X·Y)+(X·Z)=X·(Y+Z)
(X+Y)·(X+Z)=X+(Y·Z)
distributiivsus
 (9) X+(X·Y)=X
X·(X+Y)=X
X+(X’·Y)=X+Y X·(X’+Y)=X·Y
neeldumine
 (10) (X·Y)’=X’+Y’
© Peeter Ellervee
(X+Y)’=X’·Y’
I207 - Digitaalloogika ja -süsteemid - L3
De Morgan
4
Loogikafunktsioonid
 f(x1,x2,…,xn), kus
 nii argumendid kui funktsiooni väärtus kuuluvad hulka {0,1}
 iga loogikafunktsiooni võib esitada tõeväärtustabelina
 Erinevate loogikafunktsioonide f(x1,x2,…,xn)
arv K on 2
2n
 n=1  K=4
 n=2  K=16
 n=3  K=256
 n=4  K=65536
 n=5  K=4,3109
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
5
Esitusviisid
 Tabelesitus (tõeväärtustabel)
 1-piirkond
 f = a,b,c(0,3,4,6,7)
 0-piirkond
 f = a,b,c(1,2,5)
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f
1
0
0
1
1
0
1
1
 Määramatused – väärtus ebaoluline (*,-)
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
6
Esitusviisid
 Funktsioon
 f = (bc)’ + a·b·c’
 f = b·(a + c) + b’·c’
 f = b·c + c’·(a + b’)
 Normaalkuju
 f = a·b + b·c + b’·c’
 f = b·c + a·c’ + c’·b’
 f = a·b + b·c + a·c’ + c’·b’
 f = ( b+c’ ) · ( a+b’+c )
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f
1
0
0
1
1
0
1
1
7
Avaldis & skeem
f = (bc)’ + a·b·c’
f = a·b + b·c + b’·c’
a
b
c
f
a
b
f
c
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
8
Avaldis & skeem
f = b·(a + c) + b’·c’
a
f
b
c
f = b·c + c’·(a + b’)
a
f
b
c
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
9
Skeemi optimaalsus?
a
b
c
a
f
f
b
c
a
a
b
c
f
f
b
c
 Kuidas alustada ja mida kasutada?
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
10
Kanoonilised esitusviisid
 f = a·b + b·c + b’·c’
 konjunktsioonide disjunktsioon
 korrutiste summa
• minterm – korrutis, kus kõik muutujad on esindatud
• konjunktsioon == implikant
 f = ( b+c’ ) · ( a+b’+c )
 disjunktsioonide konjunktsioon
 summade korrutis
• maksterm – summa, kus kõik muutujad on esindatud
• disjunktsioon ~~ implikant
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
11
Normaalkujud
 Kanoonilised standardsed esitusvalemid
 Disjunktiivne normaalkuju (DNK, DNF) –
elementaarkonjunktsioonide (product term)
disjunktsioon
 Elementaarkonjunktsioon koosneb argumentide
ja/või nende inversioonide konjunktsioonist
 Konjunktiivne normaalkuju (KNK, CNF) –
elementaardisjunktsioonide (sum term) konjunktsioon
 Elementaardisjunktsioon koosneb argumentide
ja/või nende inversioonide disjunktsioonist
 Iga funktsioon on esitatav DNK ja KNK kujul,
kuid mitte üheselt
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
12
Normaalkujud
 Täielik DNK (TDNK, CDNF)
 iga elementaarkonjunktsiooni pikkus on n
(st. iga elementaarkonjunktsioon sisaldab
funktsiooni kõiki argumente – minterm)
 Täielik KNK (TKNK, CCNF)
 iga elementaardisjunktsiooni pikkus on n
(st. iga elementaardisjunktsioon sisaldab
funktsiooni kõiki argumente – maxterm)
 Igal funktsioonil on täpselt üks TDNK ja
üks TKNK
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
13
Esitusviisid (järg)
a
0
0
0
0
1
1
1
1
bc
a
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
y
1
0
0
1
1
0
1
1
 Hüperkuup
 n sisendit
 n dimensiooni
011
a
001
000
b
c
010
 hüperkuup tasapinnal
11 10
0
1 0 1 0
1
1 0 1 1
© Peeter Ellervee
111
110
100
 Karnaugh kaart
c
00 01
101
c
b
0 1 3 2
a
4 5 7 6
b
1 0 1 0
a
I207 - Digitaalloogika ja -süsteemid - L3
1 0 1 1
14
Esitusviisid (järg)
 Hüperkuup – n sisendit, n dimensiooni & 2n ruumipunkti
 Karnaugh kaart ~~ hüperkuup tasapinnal
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
15
Normaalkujud & hüperkuup
 DNK
 f = a·b + b·c + b’·c’
 TDNK
 f = a’·b’·c’ + a’·b·c + a·b’·c’ +
a·b·c’ + a·b·c
c
b
minterm
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f
1
0
0
1
1
0
1
1
1 0 1 0
a
© Peeter Ellervee
1 0 1 1
I207 - Digitaalloogika ja -süsteemid - L3
16
Normaalkujud & hüperkuup
 KNK
 f = ( b+c’ ) · ( a+b’+c )
 TKNK
 f = ( a+b+c’ )·( a+b’+c )·( a’+b+c’ )
c
b
maksterm
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
f
1
0
0
1
1
0
1
1
1 0 1 0
a
© Peeter Ellervee
1 0 1 1
I207 - Digitaalloogika ja -süsteemid - L3
17
DNK  KNK
 KNK  DNK
c
 f = ( b+c’ ) · ( a+b’+c )
 f = b·a + b·b’ + b·c + c’·a +
a
c’·b’ + c’·c
 f = a·b + b·c + a·c’ + c’·b’
 f’ = a’·b·c’ + b’·c
 f = (f’)’ = (a’·b·c’ + b’·c)’
 f = (a’·b·c’)’ · (b’·c)’
 f = ( a+b’+c ) · ( b+c’ )
© Peeter Ellervee
1 0 1 0
1 0 1 1
c
 De Morgan - x’+y’=(x·y)’
b
b
1 0 1 0
a
I207 - Digitaalloogika ja -süsteemid - L3
1 0 1 1
18
Esitusviisid & realisatsioon
 Tabelesitus
 tõeväärtustabel (truth table)
 funktsiooni kõikide mintermide loetelu
 implkanttabel (implicant table) e.
intervalltabel e. kate (cover)
 funktsiooni defineerimiseks
piisavate implikantide loetelu
 Algebraline
 x = abc+a’c’
 y = b’c+a’b’+a’c
 z = abc+a’c’+a’b’
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
x
1
0
1
0
0
0
0
1
y
1
1
0
1
0
1
0
0
z
1
1
1
0
0
0
0
1
a b c
x y z
1
0
0
0
1
0
1
0
0
1
0
0
-
1
1
0
1
0
1
0
1
1
1
0
1
1
0
 Efektiivne realisatsioon?
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
19
Motivatsioon
 Parim realisatsioon
 pindala?
 viide?
 võimsustarve?
 testitavus?
 x = a’b’c’+a’bc’+abc
 y = a’b’c’+a’b’c+a’bc+ab’c
 z = a’b’c’+a’b’c+a’bc’+abc
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
x
1
0
1
0
0
0
0
1
y
1
1
0
1
0
1
0
0
z
1
1
1
0
0
0
0
1
20
Motivatsioon
 x = a’b’c’+a’bc’+abc
 y = a’b’c’+a’b’c+a’bc+ab’c
 z = a’b’c’+a’b’c+a’bc’+abc
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
a
0
0
0
0
1
1
1
1
b
0
0
1
1
0
0
1
1
c
0
1
0
1
0
1
0
1
x
1
0
1
0
0
0
0
1
y
1
1
0
1
0
1
0
0
z
1
1
1
0
0
0
0
1
21
Motivatsioon
 x = abc+a’c’
 y = b’c+a’b’+a’c
 z = abc+a’c’+a’b’
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
a
1
0
0
0
b
1
0
0
-
c
1
1
0
1
x
1
0
1
0
0
y
0
1
0
1
1
z
1
0
1
1
0
22
Motivatsioon
 pindala
 viide
 võimsus
12.0
2.73 ns
11.3 W
 pindala
 viide
 võimsus
22.0
1.57 ns
24.1 W
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
23
Motivatsioon
 pindala
 viide
 võimsus
11.0
1.84 ns
9.2 W
 pindala
 viide
 võimsus
10.0
2.26 ns
10.2 W
© Peeter Ellervee
I207 - Digitaalloogika ja -süsteemid - L3
24