Tải bản đầy đủ (.pdf) (121 trang)

Hệ thống số đếm và khái niệm về mã docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.04 MB, 121 trang )

Chng 1. H thng sm và khái nim v mã Trang 1
Chng 1
 THNG SM VÀ KHÁI NIM V MÃ
1.1. H THNG SM
1.1.1. Hm
1. Khái nim
m là tp hp các phng pháp gi và biu din các con s bng các kí hiu có giá tr s
ng xác nh gi là các ch s.
2. Phân loi
Có th chia các hm làm hai loi: hm theo v trí và hm không theo v trí.
a. Hm theo v trí:
m theo v trí là hm mà trong ó giá tr s lng ca ch s còn ph thuc vào v trí ca
nó ng trong con s c th.
Ví d: H thp phân là mt hm theo v trí. S 1991 trong h thp phân c biu din bng
2 ch s “1” và “9”, nhng do v trí ng ca các ch s này trong con s là khác nhau nên s mang
các giá tr s lng khác nhau, chng hn ch s “1”  v trí hàng n v biu din cho giá tr s
ng là 1 song ch s “1”  v trí hàng nghìn li biu din cho giá tr s lng là 1000, hay ch s
“9” khi  hàng chc biu din giá tr là 90 còn khi  hàng trm li biu din cho giá tr là 900.
b. Hm không theo v trí:
m không theo v trí là hm mà trong ó giá tr s lng ca ch s không ph thuc vào
 trí ca nó ng trong con s.
m La Mã là mt hm không theo v trí. Hm này s dng các ký t “I”, “V”, “X”
 biu din các con s, trong ó “I” biu din cho giá tr s lng 1, “V” biu din cho giá tr s
ng 5, “X” biu din cho giá tr s lng 10 mà không ph thuc vào v trí các ch s này ng
trong con s c th.
Các hm không theo v trí s không c  cp n trong giáo trình này.
1.1.2. C s ca hm
t s A bt k có th biu din bng dãy sau:
A= a
m-1
a


m-2
a
0
a
-1
a
-n
Trong ó a
i
là các ch s, (
1
m
n
i

÷

=
); i là các hàng s, i nh: hàng tr, i ln: hàng già.
Giá tr s lng ca các ch s a
i
s nhn mt giá tr nào ó sao cho tha mãn bt ng thc sau:
1Na0
i
−≤≤
(a
i
nguyên)
N c gi là c s ca hm.  s ca mt hm là s lng ký t phân bit c s
ng trong mt hm. Các h thng sm c phân bit vi nhau bng mt c s N ca h

m ó. Mi ký t biu din mt ch s.
Bài ging K THUT S Trang 2
Trong i sng hng ngày chúng ta quen s dng hm thp phân (decimal) vi N=10. Trong
 thng s còn s dng nhng hm khác là hm nh phân (binary) vi N=2, hm bát phân
(octal) vi N=8 và hm thp lc phân (hexadecimal) vi N=16.
- H nh phân : N =2 ⇒ a
i
= 0, 1.
- H thp phân : N =10 ⇒ a
i
= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
- H bát phân : N =8

a
i
= 0, 1, 2, 3, 4, 5, 6, 7.
- H thp lc phân : N =16 ⇒ a
i
= 0, 1, 2, …8, 9, A, B, C,D, E, F.
Khi ã xut hin c s N, ta có th biu din s A di dng mt a thc theo c s N, c ký
hiu là A
(N)
:
A
(N)
= a
m-1
.N
m-1
+ a

m-2
.N
m-2
+ + a
0
.N
0
+ a
-1
.N
-1
+ + a
-n
.N
-n
Hay:


−=
=
1m
ni
i
i(N)
NaA
(1.1)
i N=10 (h thp phân):
A
(10)
= a

m-1
.10
m-1
+ a
m-2
.10
m-2
+ + a
0
.10
0
+ + a
-n
.10
-n
1999,959
(10)
=1.10
3
+ 9.10
2
+ 9.10
1
+ 9.10
0
+ 9.10
-1
+ 5.10
-2
+ 9.10

-3
i N=2 (h nh phân):
A
(2)
= a
m-1
.2
m-1
+ a
m-2
.2
m-2
+ + a
0
.2
0
+a
-n
2
-n
1101
(2)
= 1.2
3
+1.2
2
+ 0.2
1
+ 1.2
0

= 13
(10)
i N=16 (h thp lc phân):
A
(16)
= a
m-1
.16
m-1
+ a
m-2
.16
m-2
+ + a
0
.16
0
+ a
-1
16
-1
+ + a
-n
16
-n
3FF
(16)
= 3.16
2
+ 15.16

1
+ 15.16
0
= 1023
(10)
i N=8 (h bát phân):
A
(8)
= a
m-1
.8
m-1
+ a
m-2
.8
m-2
+ + a
0
.8
0
+ a
-1
.8
-1
+ + a
-n
.8
-n
376
(8)

= 3.8
2
+ 7.8
1
+ 6.8
0
= 254
(10)
Nh vy, biu thc (1.1) cho phép i các s bt k h nào sang h thp phân (h 10).
1.1.3. i c s
1. i t c s d sang c s 10
 chuyn i mt s hm c s d sang hm c s 10 ngi ta khai trin con s trong c
 d di dng a thc theo c s ca nó (theo biu thc 1.3).
Ví d 1.1
i s 1101
(2)
 h nh phân sang h thp phân nh sau:
1011
(2)
= 1.2
3
+ 0.2
2
+ 1.2
1
+ 1.2
0
= 11
(10)
2. i t c s 10 sang c s d

 chuyn i mt s t c s 10 sang c s d (d = 2, 8, 16) ngi ta ly con s trong c s 10
chia liên tip cho d n khi thng s bng không thì dng li. Kt qu chuyn i có c trong
m c s d là tp hp các s d ca phép chia c vit theo th t ngc li, ngha là s d
u tiên có trng s nh nht. (xem ví d 1.2)
Chng 1. H thng sm và khái nim v mã Trang 3
Ví d 1.2:
t lun: Gi d
1
, d
2
, ,d
n
ln lt là d s ca phép chia s thp phân cho c s d  ln th 1, 2,
3, 4, , n thì kt qu chuyn i mt s t hm c s 10 (thp phân) sang hm c s d s là:
d
n
d
n-1
d
n-2
d
1
,
ngha là d s sau cùng ca phép chia là bít có trng s cao nht (MSB), còn d su tiên là bít
có trng s nh nht (LSB).
Trong các ví d trên, c s ca hm c ghi  dng ch s bên di. Ngoài ra cng có th ký
 ch phân bit nh sau:
B - H nh phân (Binary) O - H bát phân (Octal)
D - H thp phân (Decmal) H - H thp lc phân (Hexadecimal)
Ví d: 1010B có ngha là 1010

(2)
37FH có ngha là 37F
(16)
& Quy tc chuyn i gia các hm c s 2, 8, 16 ?
1.2. HM NH PHÂN VÀ KHÁI NIM V MÃ
1.2.1. Hm nh phân
1. Khái nim
m nh phân, còn gi là hm c s 2, là hm trong ó ngi ta ch s dng hai kí hiu
0 và 1  biu din tt c các s. Hai ký hiu ó gi chung là bit hoc digit, nó c trng cho mch
n t có hai trng thái n nh hay còn gi là 2 trng thái bn ca FLIP- FLOP (ký hiu là FF).
Trong hm nh phân ngi ta quy c nh sau:
- Mt nhóm 4 bít gi là 1 nibble.
- Mt nhóm 8 bít gi là 1 byte.
- Nhóm nhiu bytes gi là t (word), có th có t 2 bytes (16 bít), t 4 bytes (32 bít),
 hiu rõ hn mt s khái nim, ta xét s nh phân 4 bít: a
3
a
2
a
1
a
0
. Biu din di dng a thc
theo c s ca nó là:
a
3
a
2
a
1

a
0 (2)
= a
3
.2
3
+ a
2
.2
2
+ a
1
.2
1
+ a
0
.2
0
Trong ó:
- 2
3
, 2
2
, 2
1
, 2
0
(hay 8, 4, 2, 1) c gi là các trng s.
- a
0

 c gi là bit có trng s nh nht, hay còn gi bit có ý ngha nh nht (LSB - Least
Significant Bit), còn gi là bít tr nht.
1023 16
63 16
3 16
0
15
15
3
A
(10)
=1023

A
(16)
=3FFH
13
2
6 2
3
2
1
1
0
1
2
0
1
A
(10)

=13

A
(2)
=1101
Bài ging K THUT S Trang 4
- a
3
 c gi là bit có trng s ln nht, hay còn gi là bít có ý ngha ln nht (MSB - Most
Significant Bit), còn gi là bít già nht.
Nh vy, vi s nh phân 4 bit a
3
a
2
a
1
a
0
trong ó mi ch s a
i
(i t 0 n 3) ch nhn c hai
giá tr {0,1} ta có 2
4
= 16 t hp nh phân phân bit.
ng sau ây lit kê các t hp mã nh phân 4 bít cùng các giá tr s thp phân, s bát phân và s
thp lc phân tng ng.
& T bng này hãy cho bit mi quan h gia các s trong h nh phân vi các s trong h
bát phân (N=8) và h thp lc phân (N=16)? Tó suy ra phng pháp chuyn i nhanh gia các
 này?
 thp phân a

3
a
2
a
1
a
0
S bát phân S thp lc phân
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101

0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
00
01
02
03
04
05
06
07
10
11
12
13
14
15
16
17
0
1
2
3

4
5
6
7
8
9
A
B
C
D
E
F
ng 1.1. Các t hp mã nh phân 4 bít
 chuyn i gia các h thng s m khác nhau gi vai trò quan trng trong máy tính s.
Chúng ta bit rng 2
3
= 8 và 2
4
= 16, t bng mã trên có th nhn thy mi ch s trong h bát phân
ng ng vi mt nhóm ba ch s (3 bít) trong h nh phân, mi ch s trong h thp lc phân
ng ng vi mt nhóm bn ch s (4 bít) trong h nh phân. Do ó, khi biu din s nh phân
nhiu bit trên máy tính  tránh sai sót ngi ta thng biu din thông qua s thp phân hoc thp
c phân hoc bát phân.
Ví d 1.3
: Xét vic biu din s nh phân 1011111011111110
(2)
.
1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 0
y, có th biu din : 137376
(8)

theo h bát phân
hoc : BEFE
(H)
theo h thp lc phân.
67
3
7
3
1
EFEB
Chng 1. H thng sm và khái nim v mã Trang 5
& Vi s nh phân n bít có bao nhiêu t hp nh phân khác nhau? Xét trng hp s nh
phân 8 bít (n=8) a
7
a
6
a
5
a
4
a
3
a
2
a
1
a
0
có bao nhiêu t hp nh phân (t mã nh phân) khác nhau?
2. Các phép tính trên s nh phân

a. Phép cng
 cng hai s nh phân, ngi ta da trên qui tc cng nh sau:
0 + 0 = 0 nh 0
0 + 1 = 1 nh 0
1 + 0 = 1 nh 0
1 + 1 = 0 nh 1
Ví d 1.4
:
3

0011
2

0010
5

0101 = 1.2
2
+ 1.2
0
= 5
(10)
b. Phép tr
0 - 0 = 0 mn 0
0 - 1 = 1 mn 1
1 - 0 = 1 mn 0
1 - 1 = 0 mn 0
Ví d 1.5
:
7


0111
5

0101
2

0010 = 0.2
3
+ 0.2
2
+ 1.2
1
+ 0.2
0
= 2
(10)
c. Phép nhân
0 . 0 = 0
0 . 1 = 0
1 . 0 = 0
1 . 1 = 1
Ví d 1.6
:
7

0111
5

0101

35 0111
0000
0111
0000
0100011 = 1.2
5
+ 1.2
1
+ 1.2
0
= 35
(10)
d. Phép chia
0 : 1 = 0
1 : 1 = 1
u ý: Khi chia s chia phi khác 0
+
+
-
-
x
x
Bài ging K THUT S Trang 6
Ví d 1.7: 10 5

1010 101
2 101 10
(2)
= 2
(10)

00
0
ng dng thanh ghi dch thc hin phép toán nhân hai, chia hai:
1.2.2. Khái nim v mã
1. i cng
Trong i sng hàng ngày, con ngi giao tip vi nhau thông qua mt h thng ngôn ng qui
c, nhng trong máy tính và các h thng s ch x lý các d liu nh phân. Do ó, mt vn t
ra là làm th nào to ra mt giao din d dàng gia ngi và máy tính, ngha là máy tính thc hin
c nhng bài toán do con ngi t ra.
Vì các máy tính s hin nay ch hiu các s 0 và s 1, nên bt k thông tin nào di dng các ch
, ch cái hoc các ký t phi c bin i thành dng s nh phân trc khi nó có thc x
lý bng các mch s.
 thc hin u ó, ngi ta t ra vn  v mã hóa d liu. Nh vy, mã hóa là quá trình
bin i nhng ký hiu quen thuc ca con ngi sang nhng ký hiu quen thuc vi máy tính.
Nhng s liu ã mã hóa này c nhp vào máy tính, máy tính tính toán x lý và sau ó máy tính
thc hin quá trình ngc li là gii mã  chuyn i các bít thông tin nh phân thành các ký hiu
quen thuc vi con ngi mà con ngi có th hiu c.
Các lnh vc mã hóa bao gm:
- Mã hóa s thp phân
- Mã hóa ký t
- Mã hóa tp lnh
- Mã hóa ting nói
- Mã hóa hình nh v v
Phn tip theo chúng ta kho sát lnh vc mã hóa n gin nht là mã hóa s thp phân bng
cách s dng các t mã nh phân. Vic mã hóa ký t, tp lnh, ting nói, hình nh u da trên c
 mã hóa s thp phân.
0 0 0 0 0 1 011 0
0 0 0 0 0 0 111
Thanh ghi ban u
Thanh ghi sau khi dch trái 1 bít

ch trái 1 bít

nhân 2
0 0 0 0 0 0 10 1 1
0
Thanh ghi sau khi dch phi 1 bít
ch phi 1 bít

chia 20

Hình 1.1. ng dng thanh ghi dch thc hin phép toán nhân và chia 2
Chng 1. H thng sm và khái nim v mã Trang 7
2. Mã hóa s thp phân
a. Khái nim
Trong thc t mã hóa s thp phân ngi ta s dng các s nh phân 4 bit (a
3
a
2
a
1
a
0
) theo quy
c sau:
0

0000 ; 5

0101
1→ 0001 ; 6 → 0110

2

0010 ; 7

0101
3→ 0011 ; 8 → 1000
4→ 0100 ; 9 → 1001
Các s nh phân dùng  mã hóa các s thp phân c gi là các s BCD (Binary Coded
Decimal: S thp phân c mã hóa bng s nh phân).
b. Phân loi
Khi s dng s nh phân 4 bit  mã hóa các s thp phân tng ng vi 2
4
= 16 t hp mã nh
phân phân bit.
Do vic chn 10 t hp trong 16 t hp  mã hóa các ký hiu thp phân t 0 n 9 mà trong
thc t xut hin nhiu loi mã BCD khác nhau.
c dù tn ti nhiu loi mã BCD khác nhau, nhng có th chia làm hai loi chính: Mã BCD có
trng s và mã BCD không có trng s.
b1. Mã BCD có trng s là loi mã cho phép phân tích thành a thc theo trng s ca nó. Mã
BCD có trng sc chia làm 2 loi là: mã BCD t nhiên và mã BCD s hc.
Mã BCD t nhiên là loi mã mà trong ó các trng s thng c sp xp theo th t tng
n. Ví d: Mã BCD 8421, BCD 5421.
Mã BCD s hc là loi mã mà trong ó có tng các trng s luôn luôn bng 9.Ví d: BCD
2421, BCD 5121, BCD8 4-2-1
c trng ca mã BCD s hc là có tính cht i xng qua mt ng trung gian. Do
y,  tìm t mã BCD ca mt s thp phân nào ó ta ly bù (o) t mã BCD ca s bù 9
ng ng.
Ví d xét mã BCD 2421. ây là mã BCD s hc (tng các trng s bng 9), trong ó s 3
(thp phân) có t mã là 0011, s 6 (thp phân) là bù 9 ca 3. Do vy, có th suy ra t mã ca 6
ng cách ly bù t mã ca 3, ngha là ly bù 0011, ta s có t mã ca 6 là 1100.

b2. Mã BCD không có trng s là loi mã không cho phép phân tích thành a thc theo trng
 ca nó. Các mã BCD không có trng s là: Mã Gray, Mã Gray tha 3.
c trng ca mã Gray là b mã trong ó hai t mã nh phân ng k tip nhau bao gi cng ch
khác nhau 1 bit.
Ví d:
Các bng di ây trình bày mt s loi mã thông dng.
Mã Gray: 2

0011
3

0010
4

0110
Còn vi mã BCD 8421:
3

0011
4

0100
Bài ging K THUT S Trang 8
ng 1.2: Các mã BCD t nhiên.
BCD 8421 BCD 5421 BCD quá 3
a
3
a
2
a

1
a
0
b
3
b
2
b
1
b
0
c
3
c
2
c
1
c
0
 thp
phân
0 0 0 0 0 0 0 0 0 0 1 1 0
0 0 0 1 0 0 0 1 0 1 0 0 1
0 0 1 0 0 0 1 0 0 1 0 1 2
0 0 1 1 0 0 1 1 0 1 1 0 3
0 1 0 0 0 1 0 0 0 1 1 1 4
0 1 0 1 1 0 0 0 1 0 0 0 5
0 1 1 0 1 0 0 1 1 0 0 1 6
0 1 1 1 1 0 1 0 1 0 1 0 7
1 0 0 0 1 0 1 1 1 0 1 1 8

1 0 0 1 1 1 0 0 1 1 0 0 9
ng 1.3: Các mã BCD s hc
BCD 2421 BCD 5121 BCD 84-2-1
a
3
a
2
a
1
a
0
b
3
b
2
b
1
b
0
c
3
c
2
c
1
c
0
 thp
phân
0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 1 0 0 0 1 0 1 1 1 1
0 0 1 0 0 0 1 0 0 1 1 0 2
0 0 1 1 0 0 1 1 0 1 0 1 3
0 1 0 0 0 1 1 1 0 1 0 0 4
1 0 1 1 1 0 0 0 1 0 1 1 5
1 1 0 0 1 1 0 0 1 0 1 0 6
1 1 0 1 1 1 0 1 1 0 0 1 7
1 1 1 0 1 1 1 0 1 0 0 0 8
1 1 1 1 1 1 1 1 1 1 1 1 9
ng 1.4
: BCD t nhiên và mã Gray.
BCD 8421 BCD quá 3 Mã Gray Gray quá 3
a
3
a
2
a
1
a
0
c
3
c
2
c
1
c
0
G
3

G
2
G
1
G
0
g
3
g
2
g
1
g
0
 thp
phân
0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0
0 0 0 1 0 1 0 0 0 0 0 1 0 1 1 0 1
0 0 1 0 0 1 0 1 0 0 1 1 0 1 1 1 2
0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 1 3
0 1 0 0 0 1 1 1 0 1 1 0 0 1 0 0 4
0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 5
0 1 1 0 1 0 0 1 0 1 0 1 1 1 0 1 6
0 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 7
1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 8
1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 9
Chng 1. H thng sm và khái nim v mã Trang 9
Chú ý: Mã Gray c suy ra t mã BCD 8421 bng cách: các bit 0,1 ng sau bit 0 ( mã
BCD 8421) khi chuyn sang mã Gray c gi nguyên, còn các bit 0,1 ng sau bit 1 ( mã BCD
8421) khi chuyn sang mã Gray thì o bít, ngha là t bit 1 thành bit 0 và bit 0 thành bit 1.

3. Mch nhn dng s BCD 8421:
ch nhn dng s BCD 8421 nhn tín hiu vào là các bít a
3
, a
2
, a
1
ca s nh phân 4 bít
a
3
a
2
a
1
a
0
, u ra y c quy nh nh sau:
- Nu y = 1 thì a
3
a
2
a
1
a
0
không phi s BCD 8421
- Nu y = 0 thì a
3
a
2

a
1
a
0
là s BCD 8421
Nh vy, nu mt s nh phân 4 bit không phi là mt s BCD 8421 thì ngõ ra y = 1. T bng
1.1 ta thy mt s nh phân 4 bít không phi là s BCD 8421 khi bít a
3
luôn luôn bng 1 và (bit a
1
ng 1 hoc bít a
2
bng 1).
Suy ra phng trình logic ca ngõ ra y: y = a
3
(a
1
+ a
2
) = a
3
a
1
+ a
3
a
2
 logic:
ng do vic xut hin s BCD nên có hai cách nhp d liu vào máy tính: nhp s nh phân,
nhp bng mã BCD.

 nhp s BCD thp phân hai ch s thì máy tính chia s thp phân thành các các và mi
các c biu din bng s BCD tng ng. Chng hn: 11
(10)
có thc nhp vào máy tính
theo 2 cách:
- S nh phân : 1011
- Mã BCD : 0001 0001
4. Các phép tính trên s BCD
a. Phép cng
Do s BCD ch có t 0 n 9 nên i vi nhng s thp phân ln hn s chia s thp phân thành
nhiu các, mi các c biu din bng s BCD tng ng.
Ví d 1.8
Cng 2 s BCD mt các:
5

0101 7

0111
3

0011 5

0101
8 1000 12 1100
0110
0001 0010
ch nhn dng
 BCD 8421
y
a

3
a
2
a
1
a
1
a
2
a
3
y
a
1
a
2
a
3
y
 hiu chnh
+ + + +
+
Bài ging K THUT S Trang 10
Có hai trng hp phi hiu chnh kt qu ca phép cng 2 s BCD 8421:
- Khi kt qu ca phép cng là mt s không phi là s BCD 8421
- Khi kt qu ca phép cng là mt s BCD 8421 nhng li xut hin s nh bng 1.
Vic hiu chnh c thc hin bng cách cng kt qu vi s hiu chnh là 6 (0110
2
).
 ví d 1.8 ã xem xét trng hp hiu chnh khi kt qu không phi là mt s BCD 8421.

Trng hp hiu chnh khi kt qu là mt s BCD 8421 nhng phép cng li xut hin s nh bng
1 c xem xét trong ví d sau ây:
Ví d 1.9
Hiu chnh kt qu cng 2 s BCD mt các khi xut hin s nh bng 1:
8

1000
9

1001
17 1 0001
0110
0001 0111
b. Phép tr
Phép toán tr 2 s BCD c thc hin theo quy tc sau ây:
A - B = A +
B
Trong ó
B
là s bù 2 ca B.
Ví d 1.10
Thc hin tr 2 s BCD mt các:
7

0111 0111
5

0101 1010
2 0010 1 0001
1

0010
u ý:
- Bù 1 ca mt s nh phân là ly o tt c các bít ca só (bit 0 thành 1, bit 1 thành 0).
- Bù 2 ca mt s nh phân bng s bù 1 cng thêm 1 vào bít LSB.
Xét các trng hp m rng sau ây:
1. Thc hin tr 2 s BCD 1 các mà s b tr nh hn s tr ?
2. M rng cho cng và tr 2 s BCD nhiu các ?
 hiu chnh (6)
+ +
t qu là s BCD 8421 nh
ng
i xut hin s nh bng 1
t qu sau khi hiu chnh là 17
Bù 1 ca 5
- -
+
+
ng 1 LSB  có bù 2 ca 5
i s nh
t qu cui cùng
Chng 2. i s BOOLE Trang 11
Chng 2
I S BOOLE
2.1. CÁC TIÊN  VÀ NH LÝ I S BOOLE
Trong các mch s, các tín hiu thng c cho  2 mc n áp, ví d: 0V và 5V. Nhng linh
kin n t dùng trong mch s làm vic  mt trong hai trng thái, ví d Transistor lng cc
(BJT) làm vic  hai ch là tt hoc dn bão hoà… Do vy,  mô t các mch s ngi ta dùng
 nh phân (binary), hai trng thái ca các linh kin trong mch sc mã hoá tng ng là 0
hoc 1.
t b môn i s phát trin t cui th k 19 mang tên ngi sáng lp ra nó: i s Boole, còn

c gi là i s logic, thích hp cho vic mô t mch s. i s Boole là công c toán hc quan
trng  phân tích và thit k các mch s, c dùng làm chìa khoá i sâu vào mi lnh vc liên
quan n k thut s.
2.1.1. Các tiên  ca i s Boole
Cho mt tp hp B hu hn trong ó ta trang b các phép toán + (cng logic), x (nhân logic), -
(bù logic/nghch o logic) và hai phn t 0 và 1 lp thành mt cu trúc i s Boole (c là Bun).
∀ x,y ∈ B thì: x+y ∈ B, x*y ∈ B và tha mãn 5 tiên  sau:
1. Tiên  giao hoán
∀x,y ∈ B: x + y = y + x
2. Tiên  phi hp
∀x,y,z ∈ B: (x+y)+z = x+(y+z) = x+y+z
(x.y).z = x.(y.z) = x.y.z
3. Tiên  phân phi
∀x,y, z ∈ B: x.(y + z ) = x.y + x.z
x + (y.z) = (x + y).(x + z)
4. Tiên  v phn t trung hòa
Trong tp B tn ti hai phn t trung hòa là phn t n v và phn t không. Phn tn v
ký hiu là 1, phn t không ký hiu là 0.
∀x ∈ B: x + 1 = 1
x . 1 = x
x + 0 = x
x . 0 = 0
5. Tiên  v phn t bù

x

B, bao gi cng tn ti phn t bù tng ng, ký hiu
x
, sao cho luôn tha mãn:
x +

x
= 1 và x.
x
= 0
Bài ging K THUT S Trang 12
u B = B* = {0,1} (B* ch gm 2 phn t 0 và 1) và tha mãn 5 tiên  trên thì cng lp thành
u trúc i s Boole nhng là cu trúc i s Boole nh nht.
2.1.2. Các nh lý c bn ca i s Boole
1. Vn i ngu trong i s Boole
Hai mnh  (hai biu thc, hai nh lý) c gi là i ngu vi nhau nu trong mnh  này
ngi ta thay phép toán cng thành phép toán nhân và ngc li, thay 0 bng 1 và ngc li, thì s
suy ra c mnh  kia.
Khi hai mnh i ngu vi nhau, nu 1 trong 2 mnh c chng minh là úng thì mnh
 còn li là úng. Di ây là ví d v các cp mnh i ngu vi nhau.
Ví d 2.1
: x.(y+z) = (x.y) + (x.z)
x + (y.z) = (x+y).(x+z)
Ví d 2.2
: x +
x
= 1
x.
x
= 0
2. Các nh lý
a. nh lí 1 (nh lý v phn t bù là duy nht)

x, y

B, ta có:

xy
0x.y
1yx
=⇒
=
=
+





là duy nht (x và y là 2 phn t bù ca nhau)
Phn t bù ca mt phn t bt k là duy nht.
b. nh lí 2 (lý v sng nht ca phép cng và phép nhân logic)
∀x ∈ B, ta có:
x + x +. . . . . + x = x
x. x. x. . . . . . x = x
c. nh lý 3 (nh lý v phnh hai ln)
∀x ∈ B, ta có:
x
= x
d. nh lí 4 (nh lý De Morgan)
∀x, y, z ∈ B, ta có:
zyx zyx =++
zyxx.y.z ++=
 qu:
∀x, y, z ∈ B, ta có:
x + y + z =
zyx ++ = z.y.x

x. y. z = x.y.z = zyx ++
e. nh lí 5 (nh lý dán)

x, y

B, ta có:
x. (
x
+ y) = x.y
x + (
x
.y) = x + y
Hai m
nh  này là i ngu
Hai m
nh  này là i ngu
Chng 2. i s BOOLE Trang 13
f. nh lí 6 (nh lý nut)
∀x, y ∈ B, ta có:
x + x. y = x
x.(x + y) = x
g. nh lí 7 (Quy tc tính i vi hng)
i 0, 1

B, ta có:
0 = 1
1
= 0
2.2. HÀM BOOLE VÀ CÁC PHNG PHÁP BIU DIN
2.2.1. Hàm Boole

1. nh ngha
Hàm Boole là mt ánh x ti s Boole vào chính nó. Ngha là

x, y

B c gi là các
bin Boole thì hàm Boole, ký hiu là f, c hình thành trên c s liên kt các bin Boole bng các
phép toán + (cng logic), x / . (nhân logic), nghch o logic (-).
Hàm Boole n gin nht là hàm Boole theo 1 bin Boole, c cho nh sau:
f(x) = x, f(x) =
x
, f(x) = α (α là hng s )
Trong trng hp tng quát, ta có hàm Boole theo n bin Boole c ký hiu nh sau:
f(x
1
, x
2
, , x
n
)
2. Các tính cht ca hàm Boole
u f(x
1
, x
2
, , x
n
) là mt hàm Boole thì:
- α.f(x
1

, x
2
, , x
n
) cng là mt hàm Boole.
-
f
(x
1
, x
2
, , x
n
) cng là mt hàm Boole.
u f
1
(x
1
, x
2
, , x
n
) và f
2
(x
1
, x
2
, , x
n

) là nhng hàm Boole thì:
- f
1
(x
1
, x
2
, , x
n
) + f
2
(x
1
, x
2
, , x
n
) cng là mt hàm Boole.
- f
1
(x
1
, x
2
, , x
n
).f
2
(x
1

, x
2
, , x
n
) cng là mt hàm Boole.
y, mt hàm Boole f cng c hình thành trên c s liên kt các hàm Boole bng các
phép toán + (cng logic), x (.) (nhân logic) hoc nghch o logic (-).
3. Giá tr ca hàm Boole
Gi s f(x
1
, x
2
, , x
n
) là mt hàm Boole theo n bin Boole.
Trong f ngi ta thay các bin x
i
bng các giá tr c th
α
i
(
n,1i = ) thì giá tr f (
α
1
,
α
2
, ,
α
n

)
c gi là giá tr ca hàm Boole theo n bin.
Ví d 2.3
:
Xét hàm f(x
1
, x
2
) = x
1
+ x
2
Xét trong tp B = B* ={0,1, ta có các trng hp sau (lu ý ây là phép cng logic hay còn gi
phép toán HOC / phép OR):
- x
1
= 0, x
2
= 0 → f(0,0) = 0 + 0 = 0
Bài ging K THUT S Trang 14
- x
1
= 0, x
2
= 1 → f(0,1) = 0 + 1 = 1
- x
1
= 1, x
2
= 0 → f(1,0) = 1 + 0 = 1

- x
1
= 1, x
2
= 1 → f(1,1) = 1 + 1 = 1
Ta lp c bng giá tr ca hàm trên.
Ví d 2.4
:
Xét hàm cho bi biu thc sau: f(x
1
, x
2
, x
3
) = x
1
+ x
2
.x
3
Xét tp B = B* = {0,1}. Hoàn toàn tng t ta lp c bng giá tr ca hàm:
x
1
x
2
x
3
f (x
1
, x

2
, x
3
) = x
1
+ x
2
.x
3
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0

1
0
1
0
0
0
1
1
1
1
1
2.2.2. Các phng pháp biu din hàm Boole
1. Phng pháp biu din hàm bng bng giá tr
ây là phng pháp thng dùng  biu din hàm s nói chung và cng c s dng  biu
din các hàm logic. Phng pháp này gm mt bng c chia làm hai phn:
- Mt phn dành cho bin  ghi các t hp giá tr có th có ca bin vào.
- Mt phn dành cho hàm  ghi các giá tr ca hàm ra tng ng vi các t hp bin vào.
Bng giá tr còn c gi là bng chân tr hay bng chân lý (TRUE TABLE). Nh vy vi mt
hàm Boole n bin bng chân lý s có:
- (n+1) t: n ct tng ng vi n bin vào, 1 ct tng ng vi giá tr ra ca hàm.
- 2
n
hàng: 2
n
giá tr khác nhau ca t hp n bin.
Ví d 2.5
: Hàm 3 bin f(x
1
, x
2

, x
3
) có thc cho bng bng giá tr nh sau:
x
1
x
2
x
3
f (x
1
, x
2
, x
3
)
0
0
0
0
1
1
1
1
0
0
1
1
0
0

1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
Trong các ví d 2.3 và 2.4 chúng ta cng ã quen thuc vi phng pháp biu din hàm bng
ng giá tr.
x
1
x
2
f(x
1
, x
2
) = x
1

+ x
2
0
0
1
1
0
1
0
1
0
1
1
1
Chng 2. i s BOOLE Trang 15
2. Phng pháp gii tích
ây là phng pháp biu din hàm logic bng các biu thc i s. Phng pháp này có 2 dng:
ng ca các tích s hoc tích ca các tng s.
ng tng ca các tích s gi là dng chính tc th nht (Dng chính tc 1).
ng tích ca các tng s gi là dng chính tc th hai (Dng chính tc 2).
Hai dng chính tc này là i ngu nhau.
ng tng các tích s còn gi là dng chun tc tuyn (CTT), dng tích các tng s còn gi là
ng chun tc hi (CTH).
a. Dng chính tc 1(Dng tng ca các tích s)
Xét các hàm Boole mt bin n gin: f(x) = x, f(x) =
x
, f(x) = α (α là hng s).
ây là nhng trng hp có th có i vi hàm Boole 1 bin.
Chúng ta si chng minh biu thc tng quát ca hàm logic 1 bin si vi dng chính tc 1.
Sau ó áp dng biu thc tng quát ca hàm 1 bin  tìm biu thc tng quát ca hàm 2 bin vi

vic xem 1 bin là hng s. Cui cùng, chúng ta suy ra biu thc tng quát ca hàm logic n bin cho
trng hp dng chính tc 1 (tng các tích s).
Xét f(x) = x:
Ta có: x =0.
x
+ 1.x
t khác:
( )
()
( )



=
=
⇒=
00f
11f
xxf
Suy ra: f(x) = x có th biu din:
f(x) = x = f(0).
x
+ f (1).x
trong ó: f (0), f (1) c gi là các giá tr ca hàm Boole theo mt bin.
Xét f(x) =
x
:
Ta có:
x
= 1.

x
+ 0. x
t khác:
( )
(
)
( )



=
=
⇒=
10f
01f
xxf
Suy ra: f(x) =
x
có th biu din:
f(x) =
x
= f(0).
x
+ f(1).x
Xét f(x) =
α
(
α
là hng s):
Ta có:

α
=
α
.1 =
α
.(x +
x
) =
α
.
x
+
α
.x
t khác:
( )
(
)
( )



=
=
⇒=
0f
1f
xf
Suy ra f(x) = α có th biu din:
f(x) =

α
= f(0).
x
+ f(1).x
t lun
: Dù f(x) = x, f(x) =
x
hay f(x) = α, ta u có biu thc tng quát ca hàm mt bin vit
theo dng chính tc th nht nh sau:
Bài ging K THUT S Trang 16
f(x) = f(0).
x
+ f(1).x
y f(x) = f(0).
x
+ f(1).x, trong ó f(0), f(1) là giá tr ca hàm Boole theo mt bin, c gi là
biu thc tng quát ca hàm 1 bin vit  ng chính tc th nht (dng tng ca các tích).
Biu thc tng quát ca hàm hai bin f(x
1
, x
2
)
:
Biu thc tng quát ca hàm 2 bin vit theo dng chính tc th nht cng hoàn toàn da trên
cách biu din ca dng chính tc th nht ca hàm 1 bin, trong ó xem mt bin là hng s.
 th là: nu xem x
2
là hng s, x
1
là bin s và áp dng biu thc tng quát ca dng chính tc

th nht cho hàm 1 bin, ta có:
f(x
1
,x
2
) = f(0,x
2
).
x
1
+ f(1,x
2
).x
1
Bây gi, các hàm f(0,x
2
) và f(1,x
2
) tr thành các hàm 1 bin s theo x
2
. Tip tc áp dng biu
thc tng quát ca dng chính tc th nht cho hàm 1 bin, ta có:
f(0,x
2
) = f(0,0).
x
2
+ f(0,1).x
2
f(1,x

2
) = f(1,0).
x
2
+ f(1,1).x
2
Suy ra:
f(x
1
,x
2
) = f(0,0).
x
1
x
2
+ f(0,1).
x
1
x
2
+ f(1,0).x
1
x
2
+ f(1,1).x
1
x
2
ây chính là biu thc tng quát ca dng chính tc th nht (dng tng ca các tích s) vit cho

hàm Boole hai bin s f(x
1
,x
2
).
Biu thc tng quát này có th biu din bng công thc sau:
f(x
1
,x
2
) =
2

2
1

12
1
0e
1
x)x,f(
2
2


=
Trong ó e là s thp phân tng ng vi mã nh phân (α
1

2

) và:
x
1
nu α
1
= 1
x
1
nu α
1
= 0
x
2
nu α
2
= 1
x
2
nu α
2
= 0
Biu thc tng quát cho hàm Boole n bin
:
T biu thc tng quát vit  dng chính tc th nht ca hàm Boole 2 bin, ta có th tng quát
hoá cho hàm Boole n bin f(x
1
,x
2
, ,x
n

) nh sau:
f(x
1
,x
2
, ,x
n
) =
n
n
2
21
xx)x, ,,f(
n2
1
n
2
0e
1



1



=
trong ó e là s thp phân tng ng vi mã nh phân (
α
1

,
α
2
, ,
α
n
);
và: x
i
nu
α
i
= 1
x
i
nu α
i
= 0 (vi i = 1, 2, 3,…,n)
1
1
x

=
2
2
x

=
i
i


x
=
Chng 2. i s BOOLE Trang 17
Ví d 2.6:
Vit biu thc ca hàm 3 bin theo dng chính tc 1:
f(x
1
,x
2
,x
3
) =


=
12
0e
3
f (α
1

2

3
).x
1
α1
.x
2

α2
.x
3
α3
ng di ây cho ta giá tr ca s thp phân e và t hp mã nh phân (α
1

2

3
) tng ng:
e
α
1
α
2
α
3
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Biu thc ca hàm 3 bin vit theo dng tng các tích nh sau:
f(x
1
, x

2
, x
3
) = f(0,0,0)
x
1
x
2
x
3
+ f(0,0,1)
x
1
x
2
x
3
+ f(0,1,0)
x
1
x
2
x
3
+ f(0,1,1)
x
1
x
2
x

3
+ f(1,0,0) x
1
x
2
x
3
+ f(1,0,1)x
1
x
2
x
3
+ f(1,1,0) x
1
x
2
x
3
+ f(1,1,1) x
1
x
2
x
3
Vy dng chính tc th nht là dng tng ca các tích s mà trong mi tích s cha y
 các bin Boole di dng tht hoc dng bù (nghch o).
b. Dng chính tc 2 (tích ca các tng s):
ng chính tc 2 là dng i ngu ca dng chính tc 1 nên biu thc tng quát ca dng
chính tc 2 cho n bin

c vit nh sau:
f(x
1
, x
2
, , x
n
) =


=
12
0e
n
[f(α
1

2

3
) + x
1
α1
+ x
2
α2
+ + x
n
αn
)]

trong ó e là s thp phân tng ng vi mã nh phân (α
1

2
, ,α
n
);
và:
x
i
nu
α
i
= 1
x
i
nu α
i
= 0 (vi i = 1, 2, 3,…,n)
Ví d 2.7: Biu thc ca hàm Boole 2 bin  dng tích các tng s (dng chính tc 2) c vit
nh sau:
f(x
1
,x
2
)=[f(0,0)+x
1
+x
2
][f(0,1)+x

1
+
x
2
][f(1,0)+
x
1
+x
2
][f(1,1)+
x
1
+
x
2
]
Ví d 2.8
: Biu thc ca hàm Boole 3 bin  dng chính tc 2:
f(x
1
,x
2
,x
3
) = [f(0,0,0)+x
1
+ x
2
+x
3

].[f(0,0,1)+x
1
+x
2
+
x
3
].
[f(0,1,0)+x
1
+
x
2
+x
3
].[f(0,1,1)+x
1
+
x
2
+
x
3
].
[f(1,0,0)+
x
1
+x
2
+x

3
].[f(1,0,1)+
x
1
+x
2
+
x
3
].
[f(1,1,0)+
x
1
+
x
2
+x
3
].[f(1,1,1)+
x
1
+
x
2
+
x
3
]
i
i

x

=
Bài ging K THUT S Trang 18
Vy, dng chính tc th hai là dng tích ca các tng s mà trong ó mi tng s này
cha y  các bin Boole di dng tht hoc dng bù.
Ví d 2.9:
Hãy vit biu thc biu din cho hàm Boole 2 bin f(x
1
,x
2
)  dng chính tc 1, vi bng giá tr
a hàm c cho nh sau:
x
1
x
2
f(x
1
,x
2
)
0 0 0
0 1 1
1 0 1
1 1 1
Vit di dng chính tc 1 ta có:
f(x
1
,x

2
) = f(0,0).
x
1
x
2
+ f(0,1).
x
1
.x
2
+ f(1,0).x
1
.
x
2
+ f(1,1).x
1
.x
2
= 0.
x
1
x
2
+ 1.
x
1
.x
2

+ 1.x
1
.
x
2
+ 1.x
1
.x
2
=
x
1
.x
2
+ x
1
.
x
2
+ x
1
.x
2
Nhn xét:
• Dng chính tc th nht, tng ca các tích s, là dng lit kê tt c các t hp nh
phân các bin vào sao cho tng ng vi nhng t hp ó giá tr ca hàm ra bng 1
→ ch cn lit kê nhng t hp bin làm cho giá tr hàm ra bng 1.
• Khi lit kê nu bin tng ng bng 1 c vit  dng tht (x
i
), nu bin tng ng

bng 0 c vit  dng bù (
x
i
).
Ví d 2.10
:
Vit biu thc biu din hàm f(x
1
,x
2
,x
3
)  dng chính tc 2 vi bng giá tr ca hàm ra c cho
nh sau:
x
3
x
2
x
1
f(x
1
,x
2,
x
3
)
0 0 0 0
0 0 1 0
0 1 0 0

0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1
Vit di dng chính tc 2 (tích các tng s):
f(x
1
,x
2
,x
3
) = (0+x
1
+x
2
+x
3
).(0+x
1
+x
2
+
x
3
).(0+x
1
+
x
2

+x
3
).
(1+x
1
+
x
2
+
x
3
).(1+
x
1
+x
2
+x
3
).(1+
x
1
+x
2
+
x
3
).
(1+
x
1

+
x
2
+x
3
).(1+
x
1
+
x
2
+
x
3
)
Chng 2. i s BOOLE Trang 19
Áp dng tiên  v phn t trung hòa 0 và 1 ta có:
x + 1 = 1, x . 1 = x
x + 0 = x, x . 0 = 0
nên suy ra biu thc trên có th vit gn li:
f(x
1
,x
2
,x
3
) = (x
1
+x
2

+x
3
).(x
1
+x
2
+
x
3
).(x
1
+
x
2
+x
3
)
Nhn xét:
• Dng chính tc th hai là dng lit kê tt c các t hp nh phân các bin vào sao cho
ng ng vi nhng t hp ó giá tr ca hàm ra bng 0 → ch cn lit kê nhng t
hp bin làm cho giá tr hàm ra bng 0.
• Khi lit kê nu bin tng ng bng 0 c vit  dng tht (x
i
), nu bin tng ng
bng 1 c vit  dng bù (
x
i
).
Ví dn gin sau giúp SV hiu rõ hn v cách thành lp bng giá tr ca hàm, tìm hàm mch
và thit k mch.

Ví d 2.11
Hãy thit k mch n sao cho khi công tc 1 óng thì èn , khi công tc 2 óng èn , khi
 hai công tc óng èn  ?
i gii:
u tiên, ta qui nh trng thái ca các công tc và bóng èn:
- Công tc h : 0 èn tt : 0
- Công tc óng : 1 èn  : 1
ng trng thái mô t hot ng ca mch nh sau:
Công tc 1 Công tc 2 Trng thái èn
x
1
x
2
f(x
1
,x
2
)
0
0
1
1
0
1
0
1
0
1
1
1

 bng trng thái có th vit biu thc ca hàm f(x
1
,x
2
) theo dng chính tc 1 hoc chính tc 2.
- Theo dng chính tc 1 ta có:
f(x
1
, x
2
) =
x
1
.x
2
+ x
1
.
x
2
+ x
1
.x
2
=
x
1
.x
2
+ x

1
(
x
2
+ x
2
)
=
x
1
.x
2
+ x
1
= x
1
+ x
2
- Theo dng chính tc 2 ta có:
f(x
1
, x
2
) = (0+x
1
+x
2
) = x
1
+ x

2
T biu thc mô t trng thái /tt ca èn f(x
1
,x
2
) thy rng có th thc hin mch bng phn
 logic HOC có 2 ngõ vào (cng OR 2 ngõ vào).
Bài tp áp dng: Mt hi ng giám kho gm 3 thành viên. Mi thành viên có th la chn NG
Ý hoc KHÔNG NG Ý. Kt qu gi là T khi a s các thành viên trong hi ng giám kho
NG Ý, ngc li là KHÔNG T. Hãy thit k mch gii quyt bài toán trên.
Bài ging K THUT S Trang 20
3. Biu din hàm bng bng Karnaugh (bìa Karnaugh)
ây là cách biu din li ca phng pháp bng di dng bng gm các
ô vuông nh hình bên.
Trên bng này ngi ta b trí các bin vào theo hàng hoc theo ct ca
ng. Trong trng hp s lng bin vào là chn, ngi ta b trí s lng
bin vào theo hàng ngang bng s lng bin vào theo ct dc ca bng.
Trong trng hp s lng bin vào là l, ngi ta b trí s lng bin vào
theo hàng ngang nhiu hn s lng bin vào theo ct dc 1 bin hoc ngc li.
Các t hp giá tr ca bin vào theo hàng ngang hoc theo ct dc ca bng c b trí sao cho
khi ta i t mt ô sang mt ô lân cn vi nó ch làm thay i mt giá tr ca bin
, nh vy th t
 trí hay sp xp các t hp giá tr ca bin vào theo hàng ngang hoc theo ct dc ca bng
Karnaugh hoàn toàn tuân th theo mã Gray.
Giá tr ghi trong mi ô vuông này chính là giá tr ca hàm ra tng ng vi các t hp giá tr ca
bin vào.  nhng ô mà giá tr hàm là không xác nh (có th bng 0 hay bng 1), có ngha là giá tr
a hàm là tùy ý (hay tùy nh), ngi ta kí hiu bng ch X.
u hàm có n bin vào s có 2
n
ô vuông

.
Phng pháp biu din hàm bng bng Karnaugh ch thích hp cho hàm có ti a 6 bin, nu
t quá vic biu din s rt rc ri.
i ây là bng Karnaugh cho các trng hp hàm 2 bin, 3 bin, 4 bin và 5 bin:
2.3. TI THIU HÓA HÀM BOOLE
2.3.1. i cng
Trong thit b máy tính ngi ta thng thit k gm nhiu modul (khâu) và mi modul này
c c trng bng mt phng trình logic. Trong ó, mc  phc tp ca s tùy thuc vào
phng trình logic biu din chúng. Vic t c  n nh cao hay không là tùy thuc vào
phng trình logic biu din chúng  dng ti thiu hóa hay cha.  thc hin c u ó, khi
thit k mch s ngi ta t ra vn  ti thiu hóa các hàm logic. u ó có ngha là phng
f(x
1
,x
2
)
x
1
x
2
0
1
0 1
f
x
1
x
2
x
3

0
1
00 0111 10
f
x
1
x
2
x
3
x
4
00
01
11
10
00 0111 10
f
x
2
x
3
x
4
x
5
00
01
11
10

000111 10 10 110100
x
1
=0 x
1
=1
Chng 2. i s BOOLE Trang 21
trình logic biu din sao cho thc s gn nht (s lng các phép tính và s lng các sc biu
din di dng tht hoc bù là ít nht).
Các k thut t c s thc hin hàm Boole mt cách n gin nht ph thuc vào nhiu
u t mà chúng ta cn cân nhc:
t là s lng các phép tính và s lng các s (s lng literal) c biu din di dng tht
hoc bù là ít nht, u này ng ngha vi vic s lng dây ni và s lng u vào ca mch là ít
nht.
Hai là s lng cng cn thit  thc hin mch phi ít nht, chính s lng cng xác nh kích
thc ca mch. Mt thit kn gin nht phi ng vi s lng cng ít nht ch không phi s
ng literal ít nht.
Ba là s mc logic ca các cng. Gim s mc logic s gim tr tng cng ca mch vì tín hiu
 qua ít cng hn. Tuy nhiên nu chú trng n vn  gim tr s phi tr giá s lng cng tng
lên.
i vy trong thc t không phi lúc nào cng t c li gii ti u cho bài toán ti thiu hóa.
2.3.2. Các bc tin hành ti thiu hóa
• Dùng các phép ti thiu  ti thiu hóa các hàm s logic.
• Rút ra nhng tha s chung nhm mc ích ti thiu hóa thêm mt bc na các phng
trình logic.
2.3.3. Các phng pháp ti thiu hóa
Có nhiu phng pháp thc hin ti thiu hoá hàm Boole và có tha v 2 nhóm là bin i
i s và dùng thut toán. Phng pháp bin i i s (phng pháp gii tích) da vào các tiên ,
nh lý, tính cht ca hàm Boole  thc hin ti thiu hoá.
 nhóm thut toán có 2 phng pháp thng c dùng là: phng pháp bng Karnaugh (còn

i là bìa Karnaugh – bìa K) dùng cho các hàm có t 6 bin tr xung, và phng pháp Quine-
Mc.Cluskey có th s dng cho hàm có s bin bt k cng nh cho phép thc hin tng theo
chng trình c vit trên máy tính.
Trong phn này ch gii thiu 2 phng pháp i din cho 2 nhóm:

Phng pháp bin i i s (nhóm bin i i s).
• Phng pháp ng Karnaugh (nhóm thut toán).
1. Phng pháp bin i i s
ây là phng pháp ti thiu hóa hàm Boole (phng trình logic) da vào các tiên , nh lý,
tính cht ca i s Boole.
Ví d 2.12
Ti thiu hoá hàm f(x
1
,x
2
) =
x
1
x
2
+ x
1
x
2
+ x
1
x
2
f(x
1

,x
2
) =
x
1
x
2
+ x
1
x
2
+ x
1
x
2
= (
x
1
+ x
1
).x
2
+ x
1
x
2
= x
2
+ x
1

x
2
= x
2
+ x
1
Ví d 2.13
Ti thiu hoá hàm 3 bin sau
f(x
1
,x
2
,x
3
) =
x
1
x
2
x
3
+ x
1
x
2
x
3
+ x
1
x

2
x
3
+ x
1
x
2
x
3
+ x
1
x
2
x
3
Bài ging K THUT S Trang 22
=
x
1
x
2
x
3
+ x
1
x
2
x
3
+ x

1
x
2
x
3
+ x
1
x
2
(
x
3
+ x
3
)
=
x
1
x
2
x
3
+ x
1
x
2
(
x
3
+ x

3
) + x
1
x
2
=
x
1
x
2
x
3
+ x
1
(
x
2
+ x
2
)
=
x
1
x
2
x
3
+ x
1
= x

1
+ x
2
x
3
Ví d 2.14
Rút gn biu thc: f = BCACAB +++
Áp dng nh lý De Morgan ta có:
f =
BCACAB ++.
=
BCACBA +++ ).(
=
BCACBCA +++
= CBCACA +++
= BCACA +++ ).1(
=
BACC ++
=
CBA
+
+
Vy,  thc hin mch này có th dùng cng OR 3 ngõ vào.
2. Phng pháp bng Karnaugh
 ti thiu hóa hàm Boole bng phng pháp bng Karnaugh phi tuân th theo qui tc v ô k
n: “Hai ô c gi là k cn nhau là hai ô mà khi ta t ô này sang ô kia ch làm thay
i giá tr ca 1 bin.”
Quy tc chung ca phng pháp rút gn bng bng Karnaugh là gom (kt hp) các ô k cn li
i nhau.
Khi gom 2 ô k cn s loi c 1 bin (2=2

1
loi 1 bin).
Khi gom 4 ô k cn vòng tròn s loi c 2 bin (4=2
2
loi 2 bin).
Khi gom 8 ô k cn vòng tròn s loi c 3 bin (8=2
3
loi 3 bin).
Tng quát, khi gom 2
n
ô k cn vòng tròn s loi c n bin. Nhng bin b loi là
nhng bin khi ta i vòng qua các ô k cn mà giá tr ca chúng thay i.
Nhng u cn lu ý:
Vòng gom c gi là hp l khi trong vòng gom ó có ít nht 1 ô cha thuc vòng gom nào.
Các ô k cn mun gom c phi là k cn vòng tròn ngha là ô k cn cui cng là ô k cn
u tiên.
Vic kt hp nhng ô k cn vi nhau còn tùy thuc vào phng pháp biu din hàm Boole theo
ng chính tc 1 hoc chính tc 2, c th là:

u biu din hàm theo dng chính tc 1 (tng các tích s) ta ch quan tâm nhng ô k
n có giá tr bng 1 và tùy nh. Kt qu mi vòng gom lúc này s là mt tích rút gn.
t qu ca hàm biu din theo dng chính tc 1 s là tng tt c các tích s rút gn ca
t c các vòng gom.
• u biu din hàm theo dng chính tc 2 (tích các tng s) ta ch quan tâm nhng ô k
n có giá tr bng 0 và tùy nh. Kt qu mi vòng gom lúc này s là mt tng rút gn.
Chng 2. i s BOOLE Trang 23
t qu ca hàm biu din theo dng chính tc 2 s là tích tt c các tng s rút gn ca
t c các vòng gom.
Ta quan tâm nhng ô tùy nh (X) sao cho nhng ô này kt hp vi nhng ô có giá tr bng 1
(nu biu din theo dng chính tc 1) hoc bng 0 (nu biu din theo dng chính tc 2) làm cho s

ng ô k cn là 2
n
ln nht. u ý các ô tùy nh (X) ch là nhng ô thêm vào vòng gom  rút
n hn các bin mà thôi.
Các vòng gom bt buc phi ph ht tt c các ô có giá tr bng 1 có trong bng (nu ti thiu
theo dng chính tc 1), tng t các vòng gom bt buc phi ph ht tt c các ô có giá tr bng 0
có trong bng (nu ti thiu theo dng chính tc 2) thì kt qu ti thiu hoá mi hp l.
Các trng hp c bit:
u tt c các ô ca bng Karnaugh u bng 1 và tunh (X) ngha là tt c các ô u k cn
→ giá tr ca hàm bng 1.
u tt c các ô ca bng Karnaugh u bng 0 và tunh (X) ngha là tt c các ô u k cn
→ giá tr ca hàm bng 0.
Ví d 2.15
: Ti thiu hóa hàm sau
0 1
0 0 1
1 1 1
Ví d 2.16:
i thiu theo chính tc 1: Ta ch quan tâm n nhng ô có giá tr bng 1 và tùy nh (X), nh
y s có 2 vòng gom  ph ht các ô có giá tr bng 1: vòng gom 1 gm 4 ô k cn, và vòng gom
2 gm 2 ô k cn (hình v).
i vi vòng gom 1: Có 4 ô = 2
2
nên loi c 2 bin. Khi i vòng qua 4 ô k cn trong vòng
gom ch có giá tr ca bin x
1
không i (luôn bng 1), còn giá tr ca bin x
2
thay i (t 1→0) và
giá tr ca bin x

3
thay i (t 0→1) nên các bin x
2
và x
3
b loi, ch còn li bin x
1
trong kt qu
a vòng gom 1. Vì x
1
=1 nên kt qu ca vòng gom 1 theo dng chính tc 1 s có x
1
vit  dng
tht: x
1
i vi vòng gom 2: Có 2 ô = 2
1
nên s loi c 1 bin. Khi i vòng qua 2 ô k cn trong vòng
gom giá tr ca bin x
2
và x
3
không i, còn giá tr ca bin x
1
thay i (t 0

1) nên các bin x
2

x

3
c gi li, ch có bin x
1
b loi. Vì x
2
=1 và x
3
=1 nên kt qu ca vòng gom 2 theo dng chính
c 1 s có x
2
và x
3
vit  dng tht: x
2
.x
3
t hp 2 vòng gom ta có kt qu ti gin theo chính tc 1:
f(x
1
,x
2
,x
3
) = x
1
+ x
2
.x
3
00 01 11 10

0 0 0 1 1
1 0 1 1 1
x
1
x
2
f(x
1
,x
2
)
i thiu hoá theo chính tc 2:
f(x
1
,x
2
) = x
1
+ x
2
x
1
,x
2
x
3
f(x
1
,x
2

,x
3
)
Vòng gom 2:
x
2
.x
3
Vòng gom 1: x
1
Bài ging K THUT S Trang 24
i thiu theo chính tc 2: Ta quan tâm n nhng ô có giá tr bng 0 và tùy nh (X), nh vy
ng có 2 vòng gom (hình v), mi vòng gom u gm 2 ô k cn.
i vi vòng gom 1: Có 2 ô = 2
1
nên loi c 1 bin, bin b loi là x
2
(vì có giá tr thay i t
0→1). Vì x
1
=0 và x
3
=0 nên kt qu ca vòng gom 1 theo dng chính tc 2 s có x
1
và x
3
 dng
tht: x
1
+ x

3
.
i vi vòng gom 2: Có 2 ô = 2
1
nên loi c 1 bin, bin b loi là x
3
(vì có giá tr thay i t
0

1). Vì x
1
=0 và x
2
=0 nên kt qu ca vòng gom 2 theo dng chính tc 2 s có x
1
và x
2
 dng
tht: x
1
+x
2
.
t hp 2 vòng gom có kt qu ca hàm f vit theo dng chính tc 2 nh sau:
f (x
1
,x
2
,x
3

) = (x
1
+x
3
).(x
1
+x
2
)
= x
1
.x
1
+ x
1
.x
2
+ x
1
.x
3
+ x
2
.x
3
= x
1
+ x
1
.x

2
+ x
1
.x
3
+ x
2
.x
3
= x
1
(1+ x
2
+ x
3
) + x
2
.x
3
= x
1
+ x
2
.x
3
Nhn xét:
Trong ví d này, hàm ra vit theo dng chính tc 1 và hàm ra vit theo dng chính tc 2
là ging nhau. Tuy nhiên có trng hp hàm ra ca hai dng chính tc 1 và 2 là khác nhau, nhng
giá tr ca hàm ra ng vi mt t hp bin u vào là duy nht trong c 2 dng chính tc.
Chú ý:

Ngi ta thng cho hàm Boole di dng biu thc rút gn. Vì có 2 cách biu din hàm
Boole theo dng chính tc 1 hoc 2 nên s có 2 cách cho giá tr ca hàm Boole ng vi 2 dng
chính tc ó:
ng chính tc 1: Tng các tích s.
f(x
1
,x
2
,x
3
) =
Σ
(3,4,7) + d(5,6)
Trong ó ký hiu d ch giá tr các ô này là tùy nh (d: Don’t care)
Lúc ó bng Karnaugh sc cho nh hình trên. T biu thc rút gn ca hàm ta thy ti các ô
ng vi t hp nh phân các bin vào có giá tr là 3, 4, 7 hàm ra có giá tr bng 1; ti các ô ng vi
 hp nh phân các bin vào có giá tr là 5, 6 hàm ra có giá tr là tùy nh; hàm ra có giá tr bng 0
 nhng ô còn li ng vi t hp các bin vào có giá tr là 0, 1, 2.
ng chính tc 2: Tích các tng s.
Phng trình trên cng tng ng vi cách cho hàm nh sau:
f(x
1
,x
2
,x
3
) =
Π
(0, 1, 2) + d(5, 6)
00 01 11 10

0 0 0 1 1
1 0 1 1 1
00 01 11 10
0 0 0 X 1
1 0 1 1 X
x
1
,x
2
x
3
f(x
1
,x
2
,x
3
)
Vòng gom 2: x
1
+ x
2
Vòng gom 1: x
1
+ x
3
x
1
,x
2

x
3
f(x
1
,x
2
,x
3
)
Chng 2. i s BOOLE Trang 25
Ví d 2.17: Ti thiu hóa hàm 4 bin cho di dng biu thc sau:
f(x
1
,x
2
,x
3
,x
4
) =
Σ
(2,6,10,11,12,13) + d(0,1,4,7,8,9,14,15)
Thc hin ti thiu hóa theo dng chính tc 1: t bn  Karnaugh ta có 2 vòng gom, vòng gom 1
m 8 ô k cn và vòng gom 2 gm 8 ô k cn. Kt qu ti thiu hóa nh sau:
Vòng gom 1:
x
1
Vòng gom 2: x
4
y: f(x

1
,x
2
,x
3
,x
4
) =
x
1
+ x
4
00 01 11 10
00
X X 1 X
01
X 0 1 X
11
0 X X 1
10
1 1 X 1
00 01 11 10
00
X X 1 X
01
X 0 1 X
11
0 X X 1
10
1 1 X 1

x
4
x
3
x
2
x
1
f(x
1
,x
2
,x
3
,x
4
)
x
4
x
3
x
2
x
1
f(x
1
,x
2
,x

3
,x
4
)
Vòng gom 2
Vòng gom 1

×