11/13/2009
2.3. Ký hiệu các phần tử lôgic cơ bản
Hoặc-Đảo (NOR)
A
1
A+B
1
B
Hoặc mở rộng (XOR)
A
A
=1
B AB AB
A B
AB
F
00
0
01
1
10
1
11
0
B
87
Chương 3
Hệ tổ hợp
88
44
11/13/2009
Nội dung chương 3
3.1. Khái niệm
3.2. Một số hệ tổ hợp cơ bản
3.3. Các mạch số học
89
3.1. Khái niệm
Hệ lôgic được chia thành 2 lớp hệ:
Hệ tổ hợp
Hệ dãy
Hệ tổ hợp: Tín hiệu ra chỉ phụ thuộc tín hiệu vào
ở hiện tại
Hệ khơng nhớ. Chỉ cần thực
hiện bằng những phần tử logic cơ bản.
Hệ dãy: Tín hiệu ra khơng chỉ phụ thuộc tín hiệu
vào ở hiện tại mà cịn phụ thuộc q khứ
của tín hiệu vào
Hệ có nhớ. Thực hiện
bằng các phần tử nhớ, có thể có thêm các
phần tử logic cơ bản.
90
45
11/13/2009
Nguyên tắc hệ tổ hợp
Hệ tổ hợp được thực hiện bằng cách mắc các
phần tử logic cơ bản với nhau theo nguyên tắc:
Đầu ra của một phần tử
logic có thể nối vào một
hoặc nhiều đầu vào của
các phần tử logic cơ bản
khác.
Không được nối trực
tiếp 2 đầu ra của 2
phần tử logic cơ bản lại
với nhau
91
3.2. Một số hệ tổ hợp cơ bản
Bộ
Bộ
Bộ
Bộ
mã hóa
giải mã
chọn kênh
phân kênh
92
46
11/13/2009
3.2.1. Bộ mã hóa
Dùng để chuyển các giá trị nhị phân của
biến vào sang một mã nào đó.
Ví dụ - Bộ mã hóa dùng cho bàn phím của
máy tính.
Phím Ký tự Từ mã
- Cụ thể trường hợp bàn phím chỉ có 9
phím.
- N: số gán cho phím (N = 1...9)
- Bộ mã hóa có :
+ 9 đầu vào nối với 9 phím
+ 4 đầu ra nhị phân ABCD
93
3.2.1. Bộ mã hóa
‘1’
P1
1
P2
A
2
Pi
B
i
Mã hố
N=i
C
D
P9
9
N=4
ABCD = 0100, N = 6
ABCD = 0110.
Nếu 2 hoặc nhiều phím đồng thời được ấn
Mã hóa ưu tiên
(nếu có 2 hoặc nhiều phím đồng thời được ấn thì bộ mã hóa
chỉ coi như có 1 phím được ấn, phím được ấn ứng với mã
cao nhất)
94
47
11/13/2009
3.2.1. Bộ mã hóa
• Xét trường hợp đơn giản, giả thiết tại mỗi thời điểm chỉ
có 1 phím được ấn.
A = 1 nếu
(N=8) hoặc (N=9)
N
ABCD
B = 1 nếu
(N=4) hoặc (N=5)
1
0001
hoặc (N=6)
2
0010
hoặc (N=7)
3
0011
C = 1 nếu
(N=2) hoặc (N=3)
4
0100
hoặc (N=6)
5
0101
hoặc (N=7)
6
0110
D = 1 nếu
(N=1) hoặc (N=3)
7
0111
hoặc (N=5)
8
1000
hoặc (N=7)
hoặc (N=9)
9
1001
95
3.2.1. Bộ mã hóa
• Sơ đồ bộ mã hóa
N=1
1
D
N=2
N=3
1
C
N=4
N=5
N=6
1
B
N=7
N=8
1
A
N=9
96
48
11/13/2009
3.2.1. Bộ mã hóa
Mã hóa ưu tiên
A=1
nếu
N = 8 hoặc N = 9
B=1
nếu
(N = 4 hoặc N = 5 hoặc N = 6 hoặc N=7)
và (Not N = 8) và( Not N=9)
C=1
nếu
N = 2 và (Not N=4) và (Not N= 5) và (Not
N = 8) và (Not N = 9)
hoặc
N = 3 và (Not N=4) và (Not N= 5) và (Not N = 8)
và (Not N = 9)
hoặc
N = 6 và (Not N = 8) và (Not N = 9)
hoặc
N = 7 và (Not N = 8) và (Not N = 9)
D = 1 nếu N = 1 và (Not N =2) và (Not N = 4) và (Not N =
6)và (Not N = 8)
hoặc
N = 3 và (Not N = 4) và (Not N = 6)và (Not N =
8)
hoặc
N = 5 và (Not N = 6)và (Not N = 8)
hoặc
N = 7 và (Not N = 8)
hoặc
N=9
97
3.2.2. Bộ giải mã
Cung cấp 1 hay nhiều thông tin ở đầu ra khi đầu vào xuất hiện tổ
hợp các biến nhị phân ứng với 1 hay nhiều từ mã đã được lựa chọn
từ trước.
Có 2 trường hợp giải mã:
• Trường hợp 1: Giải mã cho 1 cấu hình (hay 1 từ mã) đã được xác định
Ví dụ
Đầu ra của bộ giải mã bằng 1(0) nếu ở đầu vào 4 bit nhị phân
ABCD = 0111, các trường hợp khác đầu ra = 0(1).
D
C
B
A
&
Y=1 nếu
N=(0111)2 = (7)10
98
49
11/13/2009
3.2.2. Bộ giải mã
• Trường hợp 2: Giải mã cho tất cả các tổ hợp của bộ mã
Ví dụ
Bộ giải mã có 4 bit nhị phân ABCD ở đầu vào, 16 bit
đầu ra
A
B
C
D
Y0
Y1
Giải
mã
:
:
Yi
Y15
Ứng với một tổ hợp 4 bit đầu vào, 1 trong 16 đầu
ra bằng 1 (0) , 15 đầu ra còn lại bằng 0 (1).
99
3.2.2. Bộ giải mã - Ứng dụng
Bộ giải mã BCD: Mã BCD (Binary
Coded Decimal) dùng 4 bit nhị phân
để mã hoá các số thập phân từ 0
đến 9. Bộ giải mã sẽ gồm có 4 đầu
vào và 10 đầu ra.
100
50
11/13/2009
Bộ giải mã BCD
Bảng mã
Chữ số thập Từ mã nhị
phân
phân
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
101
Bộ giải mã BCD
N
A
B
C
D
Y0
Y1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
2
0
0
1
0
0
0
3
0
0
1
1
0
0
4
0
1
0
0
0
0
5
0
1
0
1
0
0
6
0
1
1
0
0
0
7
0
1
1
1
0
0
8
1
0
0
0
0
0
9
1
0
0
1
0
0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Y9
0
0
0
0
0
0
0
0
0
1
102
51
11/13/2009
Bộ giải mã BCD
Y0
CD
AB
ABCD
00 01 11 10
Y1
ABCD
Y2
BCD
Y3
BCD
01
Y4
BC D
11
Y5
BC D
Y6
BC D
Y7
BCD
Y8
AD
Y9
AD
00
10
1
Bài tập: Vẽ sơ đồ của bộ giải mã BCD
103
Bộ giải mã BCD
104
52
11/13/2009
Giải mã địa chỉ
Địa chỉ 10 bit. CS: Đầu vào cho phép chọn bộ nhớ.
CS = 1: chọn bộ nhớ
CS = 0: khơng chọn
địa chỉ
i
Giải mã
địa chỉ
dịng 0
1 0 0 1 1 0 1 0
dòng 1
0 0 1 0 1 1 0 0
dòng i
0 1 0 1 0 0 0 1
10
dòng 1023
1 0 1 1 1 0 0 0
Đọc ra ô nhớ thứ
i
CS (Chip Select)
105
Giải mã địa chỉ
Địa chỉ 16 bit.
Số ơ nhớ có thể địa chỉ hố được : 216 = 65 536.
Chia số ô nhớ này thành 64 trang, mỗi trang có 1024 ơ.
16 bit địa chỉ từ A15...A0, 6 bit địa chỉ về phía MSB A15...A10 được
dùng để đánh địa chỉ trang, còn lại 10 bit từ A9...A0 để đánh địa
chỉ ô nhớ cho mỗi trang.
10
Bộ nhớ
A9....A0
Địa chỉ
CS
6
Giải mã
A15....A10
Ơ nhớ thuộc trang 3 sẽ có địa chỉ thuộc khoảng:
(0C00)H (0 0 0 0 1 1 A9...A0)2 (0FFF)H
106
53
11/13/2009
Tạo hàm lơgic
Giả sử có hàm 3 biến : F(A,B,C) = R(3,5,6,7)
Y0
22
A
Y1
Y2
B
21 Giải
mã
C
20
Y3
1
Y4
Y5
F(A,B,C)
Y6
Y7
107
Bộ chuyển đổi mã
Chuyển một số N viết theo mã C1 sang vẫn số N nhưng
viết theo mã C2.
Ví dụ: Bộ chuyển đổi mã từ mã BCD sang mã chỉ thị 7
thanh.
a
N
A
B
C
D
a
b
c
d
e
f
g
f
g b
0
0
0
0
0
1
1
1
1
1
1
0
e
c
1
0
0
0
1
0
1
1
0
0
0
0
2
0
0
1
0
1
1
0
1
1
0
1
3
0
0
1
1
1
1
1
1
0
0
1
4
0
1
0
0
0
1
1
0
0
1
1
5
0
1
0
1
1
0
1
1
0
1
1
6
0
1
1
0
1
0
1
1
1
1
1
7
0
1
1
1
1
1
1
0
0
0
0
8
1
0
0
0
1
1
1
1
1
1
1
9
1
0
0
1
1
1
1
1
0
1
1
d
Mỗi thanh là 1 điôt phát
quang (LED)
A
K
108
54
11/13/2009
Bộ chuyển đổi mã
1
0
A
B
1
1
0
1
1
0
0
D 1
1
C
109
Tổng hợp bộ chuyển đổi mã
CD
AB
00 01 11 10
00
1 0 1 1
01
0 1 1 1
B
D
11
10
&
&
1 1
A
C
a A C BD B D
Bài tập: Làm tương tự cho các thanh còn lại
110
55
11/13/2009
Tổng hợp bộ chuyển đổi mã
(tiếp)
CD
AB
00 01 11 10
CD
AB
00 01 11 10
00
1 1 1 1
00
1 1 1 0
01
1 0 1 0
01
1 1 1 1
11
10
11
1 1
10
1 1
c
b
111
Tổng hợp bộ chuyển đổi mã
(tiếp)
CD
AB
00 01 11 10
CD
AB
00 01 11 10
00
1 0 1 1
00
1 0 0 1
01
0 1 0 1
01
0 0 0 1
11
10
11
1 1
10
d
1 0
e
112
56
11/13/2009
Tổng hợp bộ chuyển đổi mã
(tiếp)
CD
AB
00 01 11 10
CD
AB
00 01 11 10
00
1 0 0 0
00
0 0 1 1
01
1 1 0 1
01
1 1 0 1
11
10
11
1 1
10
1 1
g
f
113
3.2.3. Bộ chọn kênh (Multiplexer)
Có nhiều đầu vào tín hiệu và một đầu ra.
Chức năng: chọn lấy một trong các tín hiệu đầu vào đưa tới đầu ra
MUX 4-1
MUX 2-1
X0
X0
Y
X1
Y
X2
X3
X1
C0
C0
C1
Đầu vào điều khiển
C1
C0
Y
C0
Y
0
0
X0
0
X0
0
1
X1
1
X1
1
0
X2
1
1
X3
114
57
11/13/2009
3.2.3. Bộ chọn kênh (Multiplexer)
Ví dụ Tổng hợp bộ chọn kênh 2-1
MUX 2-1
X0
Y
0
1
X0
Y
Y
0
0
0
0
0
X0
0
0
1
1
1
X1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
C0
00
X1
C0
X1
X1X0
C0
C0
01
11
1
1
10
1
1
Y X0C0 X1C0
115
Sơ đồ bộ chọn kênh 2-1
X0
&
C0
1
Y
&
X1
116
58
11/13/2009
Ứng dụng của bộ chọn kênh
Chọn nguồn tin
Nguồn tin 1
Nguồn tin 2
Nhận
117
Ứng dụng của bộ chọn kênh
Chọn nguồn tin
A = a3 a2 a1 a0
B = b3 b2 b1 b0
C0
Y3 Y2 Y1 Y0
118
59
11/13/2009
Ứng dụng của bộ chọn kênh
Chuyển đổi song song – nối tiếp
C0
a0
1
a1
Y
0
a2
C1
a3
1
t
0
C0
t
Y
a0
C1
a1
a2
a3
t
119
Ứng dụng của bộ chọn kênh
Tạo hàm lơgic
Thí dụ: Mux 4-1
f(A,B)
A Bf(0,0) A Bf(0,1) A Bf(1,0) A Bf(1,1)
Y
C1C0E0
Các đầu vào
chọn hàm
C1C0E1 C1C0E2
f(0,0)
E0
f(0,1)
E1
C1C0E3
Y = f(A,B)
f(1,0)
E2
f(1,1)
E3
C1
C0
A
Các biến
B
120
60
11/13/2009
Ứng dụng của bộ chọn kênh
Tạo hàm lôgic
A
B
f=AB
Y
C1
C0
0
0
0= f(0,0)
=
X0
0
0
0
1
=
X1
0
1
1
0
0=f(1,0)
=
X2
1
0
1
1
1=f(1,1)
=
X3
1
1
0 =f(0,1)
0
X0
0
X1
0
X2
1
X3
Y = AB
C1 C0
A
B
&
121
Ứng dụng của bộ chọn kênh
Tạo hàm lôgic
A
B
f=A+B
Y
C1
C0
0
0
0
=
X0
0
0
0
1
1
=
X1
0
1
1
0
1
=
X2
1
0
1
1
1
=
X3
1
1
0
X0
1
X1
1
X2
1
X3
C1
Y=
A+B
C0
A
B
1
Bộ tạo hàm có thể lập trình được
122
61
11/13/2009
3.2.4. Bộ phân kênh (Demultiplexer)
Có một đầu vào tín hiệu và nhiều đầu ra.
Chức năng : dẫn tín hiệu từ đầu vào đưa tới
một trong các đầu ra.
DEMUX 1-4
Y0
X
Y1
Y2
Y3
C0
C1
123
3.2.4. Bộ phân kênh (Demultiplexer)
C0
X
Y0
Y1
DEMUX 1-2
0
0
0
1
0
1
0
0
Y0
X
Y1
1
0
0
0
1
1
0
1
C0
124
62
11/13/2009
3.3. Các mạch số học
Thực hiện các phép toán số học
Bộ so sánh
Bộ cộng
Bộ trừ
125
3.3.1. Bộ so sánh
So sánh đơn giản: So sánh 2 số 4 bit
A = a3a2a1a0 và B = b3b2b1b0.
A = B nếu:(a3 = b3) và (a2 = b2) và (a1 = b1) và
(a0 = b0).
a
3
=1
b3
a2
=1
b2
a1
&
A=B
=1
b1
a0
=1
b0
126
63
11/13/2009
3.3.1. Bộ so sánh
So sánh đầy đủ: Thực hiện so sánh từng bit
một, bắt đầu từ MSB.
a >b
a
E
ai
bi
ai=bi
Phần tử so sánh
S
I
i
i
i
Ei
i
i
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
i
E
Si
Phần tử
ai
bi
Ei
so sánh
Ii
E: cho phép so sánh
E = 1: so sánh
E = 0: không so sánh
127
3.3.1. Bộ so sánh
Si
E(aibi )
Ii
E(ab
i i)
Ei
E(ai
bi ) Eaibi Eai bi
E.Si.Ii
E(Si Ii )
E
ai
&
Si
bi
1
&
Ei
&
Ii
128
64
11/13/2009
3.3.1. Bộ so sánh
So sánh đầy đủ: Bộ so sánh song song
Ví dụ So sánh 2 số 3 bit A = a2a1a0, B = b2b1b0
S2
a2
b2
a1
b1
a0
b0
Phần tử
so sánh
E2
1
A>B
I2
E
S1
Phần tử
so sánh
E1
E
S0
Phần tử
so sánh
E0
1
A
I1
A=B
I0
129
3.3.2. Bộ cộng
Bộ cộng
a
Cộng
b
r
b
r
0
0
0
0
(Tổng)
0
1
1
0
(Số nhớ)
1
0
1
0
1
1
0
1
a
Bộ bán tổng
(Half Adder)
a
=a
b
r = ab
=1
b
&
r
130
65
11/13/2009
3.3.2. Bộ cộng
Cộng 2 số nhiều bit:
r3
r2
r1
r0
A=
a3
a2
a1
a0
+B =
b3
b2
b1
b0
r4
Kết
quả
4
r3
3
3
r2
2
r1
1
2
0
1
0
131
3.3.2. Bộ cộng
Thao tác lặp lại là cộng 2 bit với nhau và
cộng với số nhớ
Full Adder
ai
ri
bi
Cộng
đầy đủ
ri+1
ai
bi
ri
i
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
i
0
1
1
0
1
ri+1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
132
66
11/13/2009
3.3.2. Bộ cộng
aibi
ri
i
00
0
1
aibi
ri
01
11
1
1
1
1
ri+1
00
01
11
0
1
10
10
bi ri
i = ai
ri+1 = ai bi + ri (ai
bi)
1
1
1
1
133
3.3.2. Bộ cộng
Bộ cộng đầy đủ (Full Adder)
ri
ai
=1
=1
i
bi
&
&
1
ri+1
134
67
11/13/2009
Bộ cộng 2 số n bit
A = an-1an-2...a1a0 , B = bn-1bn-2...b1b0
Bộ cộng song song
an-1 bn-1
rn-1
FA
a1
an-2 bn-2
b1
a0 b0
r1
rn-2
FA
r 0= 0
FA
FA
1
0
rn
r2
n
n-1
n-2
135
Bộ cộng song song tính trước số nhớ
Pi = ai
ri+1 = aibi + ri(ai
bi và Gi = aibi
r1 = G0 + r0P0
G1
r2
1
bi)
ri+1 = Gi + ri Pi
G0
P0
r1
1
&
r0
G0
&
1
2
P1
r2 = G1 + r1P1 = G1+(G0 + r0P0)P1
&
P0
r0
r2 = G1 + G0P1 + r0P0P1
1
2
136
68