Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
45
CHƯƠNG 3. MẠCH LOGIC TỔ HỢP 3.1. GIỚI THIỆU
Chương 2 đã khảo sát các phép toán của tất cả các cổng logic và việc sử dụng đại
số Boolean để mô tả và phân tích các mạch kết hợp từ các cổng logic. Các mạch
này được gọi là mạch logic tổ hợp, vì mức logic ngõ ra chỉ phụ thuộc vào tổ hợp
logic ngõ vào hiện tại.
Một mạch tổ hợp thì không có đặc tính nhớ
Các phương pháp tối thiểu hóa thường được sử dụng trong thiết kế số là:
• Sử dụng các đònh lý của đại số Boolean
• Các kỹ thuật dùng bìa (Karnaugh, Quine Mc. Cluskey)
Mơ hình mạch tổ hợp với n đầu vào và m đầu ra
3.2. THIẾT KẾ MẠCH LOGIC TỔ HỢP
3.2.1. Các bước thiết kế mạch logic tổ hợp
• Ứng với mỗi tổ hợp ngõ vào, đặt các mức logic ngõ ra theo yêu cầu thiết kế, tất
cả các khả năng ngõ ra của một mạch logic có thể được biểu diễn thông qua
bảng sự thật.
• Từ bảng sự thật suy ra biểu thức Boolean cho mạch cần thiết kế
• Rút gọn biểu thức Boolean
• Chuyển biểu thức Boolean thành mạch tổ hợp
Ví dụ,
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
0
1
1
1
Mạch (b) có phần đơn giản hơn vì chỉ sử dụng các cổng 2 ngõ vào thay vì phải sử
dụng cổng OR 3 ngõ vào như mạch (a). Trên thực tế người thiết kế vẫn chọn mạch
(a) bởi vì nhiều lý do, một trong những lý do là tín hiệu ngõ vào A, B ở mạch (b)
phải qua 3 cổng logic trước khi được đưa ra ngõ ra. Điều này có thể ảnh hưởng rất
lớn trong một hệ thống số tốc độ cao.
Ví dụ, Thiết kế một mạch logic 4 ngõ vào, A, B, C, D (trong đó A ứng với MSB, và
D ứng với LSB) với yêu cầu ngõ ra sẽ ở mức cao khi giá trò thập phân của các ngõ
vào ABCD > 6
10
74LS08
B
C
A X
74LS08
1
74LS08
B
A
X
C
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
47
3.2.2. Một số điểm quan trọng khi thực hiện thiết kế cuối cùng
Trong các ví dụ về thiết kế trên, các mạch được thực hiện thông qua các cổng AND
và OR, trong đó một hay nhiều cổng AND lái một cổng OR do việc biểu diễn hàm
dưới dạng minterm. Khi biểu diễn hàm dưới dạng minterm ta có thể dễ dàng
chuyển đổi các cổng logic thành một cổng NAND duy nhất (lưu ý xem lại phần
chuyển đổi đã khảo sát ở chương 2), bởi vì cổng NAND là cổng logic có đáp ứng
Ví dụ. Rút gọn hàm Boolean sau dùng phương pháp Quin McCluskey
ABCD
Y= (0,1,2,3,5,7,8,9,11,14)
∑
74LS08
B
C
A X
B
C
A X
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
48
Bước 2.
Các biến Nhóm
(số bit 1)
Minterm
A B C D
1 1
2
8
0
0
1
0
0
0
0
1
1
1
1
0
Bước 3. Nhóm các minterm chỉ sai khác 1 bit
Các biến Nhóm
Minterm
A B C D
1 0,1
0,2
0,8
0
0
-
0
0
0
0
-
0
-
0
0
2 1,3
1,5
1,9
2,3
8,9
1
0
1
1
-
-
1
1
1
1
4 14 1 1 1 0
Lặp lại bước 3, tiếp tục nhóm các minterm chỉ sai khác 1 bit
Các biến Nhóm
Minterm
A B C D
Nguyên tố
cơ bản
1 0,1,2,3
0,1,8,9
0
-
0
0
-
0
-
-
A
A
BCD
14
⊗
A
B
0,1,2,3 X X
⊗
X
BC
0,1,8,9 X X
⊗
X
A
D
1,3,5,7 X X
⊗ ⊗
BD
1,3,9,11 X X X
⊗
Thấy rằng, tất cả các nguyên tố đều có ⊗, đây là các minterm đã cực tiểu hóa, vậy
hàm cuối cùng là
Y=
A
BCD +
A
B +BC+
A
toán tương đương hay cổng XNOR (ngõ ra sẽ ở
mức cao nếu 2 ngõ vào bằng nhau) ta sẽ thấy
vấn đề cần giải quyết sẽ đơn giản hơn nhiều.
x
1
x
0
y
1
y
0
z
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0 3.4.2. Mạch tạo và kiểm tra chẵn lẻ
Khi truyền dữ liệu từ máy phát sang máy thu, có nhiều cách để kiểm tra lỗi trong
khi truyền, một trong những cách đơn giản nhất là thêm 1 bit vào dữ liệu được
truyền đi, bit đó gọi là bit chẵn lẻ (parity bit).
Parity bit có hai giá trò 0 hay 1 tùy thuộc vào số bit 1 có trong nhóm mã. có hai
phương pháp tạo bit parity.
Phương pháp parity chẵn
Giá trò của bit parity được chọn sao cho tổng các chữ số 1 trong nhóm mã là số
chẵn.
Nếu số bit 1 trong nhóm mã là lẻ thì bit parity thêm vào là 1
Nếu số bit 1 trong nhóm mã là chẵn thì bit parity thêm vào là 0
Ví dụ mã ASCII của chữ C là 1000011, nhóm mã này có 3 bit 1 vì vậy sẽ đặt thêm
parity bit là 1 để sao cho nhóm mã tạo ra có số bit 1 là chẵn (4 bit 1)
1 1 0 0 0 0 1 1
mã ASCII của chữ A là 1000001, bit parity thêm vào sẽ là bit 0 (01000001)
Mạch tạo Parity chẵn dựa trên phương pháp so sánh số bit 1
Ngõ ra cổng XOR ở mức cao khi số bit 1 ở ngõ vào là lẻ
Ta có thể thiết kế mạch dùng bảng sự thật và kết quả cũng giống như trên
Mạch chỉ kiểm tra các bit gốc có bò lỗi hay không chứ không biết được bit nào lỗi
trong trường hợp phát hiện được lỗi
3.4.3. Mạch cho phép/cấm
Mỗi cổng logic cơ bản có thể được sử dụng để điều khiển cho phép hoặc không cho
phép các tín hiệu đi qua cổng đó.
Ở đây ta sử dụng một ngõ vào làm chân điều khiển cho phép hoặc cấm, ngõ còn lại
cấp tín hiệu
Bit parity thêm vào
P
D3
D2
D1
D0
Error (E)
1=error
0=no error
Khi B=0 ngõ ra X = 0, Y= A
74LS11
A
B
C
X
Bài Giảng Kỹ Thuật Số Chương 3
3.5.
MẠCH GIẢI MÃ (Decoder)
Là mạch logic giải mã N-bit nhò phân ngõ vào thành M đường ngõ ra, chỉ duy nhất
một đường ngõ ra ở mức tích cực ứng với một tổ hợp N-bit ngõ vào. Gọi bộ giải
mã là bộ phát hiện mã
Một số mạch giải mã không sử dụng hết tất cả các khả năng của ngõ vào, vì vậy
ứng với tổ hợp ngõ vào không sử dụng thì khi thiết kế không có ngõ ra nào tích cực
A
N-1
A
2
A
1
A
0
O
M-1
6
Q
7
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
BA.C
Q
2
= C.BA
Q
4
=
A.BC
Q
3
= C.BA
Q
5
=
A.BC
Q
6
=
A.CB
Q
4
=
CB.A
Q
7
= CBA
2B
G
1
Output
0
1
x
x
0
x
1
x
1
x
x
0
Ngõ ra tích cực theo mã của A
2
A
1
A
0
Không giải mã, ngõ ra ở mức cao
Không giải mã, ngõ ra ở mức cao
Không giải mã, ngõ ra ở mức cao
Y7
Y6
Y5
Y4
Y3
A
1
A
0
(LSB) (MSB) A
2
2B
G
G
1 Ví dụ
Xác đònh ngõ ra nào của 74LS138 tích cực ứng với các ngõ vào như sau:
G
2A
= 0; G
EN=0 cho phép mạch giải hoạt động
Đối với các bộ giải mã lớn hơn, có thể thêm vào 1 bộ giải mã như sau
74LS138
A
B
A2
A1
EN
74LS138
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A3
EN
A0
HI
74LS138
A2
A1
Y0
Y1
Y2
Y3
Y4
DEC13
DEC14
DEC15
DEC8
DEC9
DEC10
DEC11
DEC12
DEC13
DEC14
DEC15
EN3
74LS138
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A
B
C
G2B
Y0
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
G1
G2A
G2B
A
B
C
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A2
A1
DEC0
DEC1
DEC2
DEC3
DEC4
55
Bài Giảng Kỹ Thuật Số Chương 3
3.5.5.
Sử dụng bộ giải mã tạo các minterm
Các ngõ ra của bộ giải mã (ở chế độ cho phép) tương ứng với các minterm của các
ngõ vào.
Ví dụ các minterm của các ngõ ra 74LS138 như sau
A.B.CY
0
=
,
AB.CY
1
=
, v.v.
Nếu một hàm logic có các minterm như ngõ ra của bộ giải mã thì ta có thể sử dụng
bộ giải mã đó để xây dựng hàm trên
Ví dụ
Xét hàm F =
ZYXYZXZYXZYX
ZYX
+++=
∑
,,
)5,3,2,0(
Có thể thiết lập hàm như sau:
74LS20
F
∑
ZYX ,,
)5,4,2(
∑
ZYX ,,
)3,1,0( , H =
∑
ZYX ,,
)7,6,3(
HI
74LS138
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
A
G2B
B
C
G1
G2A
74LS10
X
Y
Z
LED 7 đoạn Cathode chung LED 7 đoạn Anode chung
+Vcc
g
f
e
d
c
b
a
g
f
e
d
c
b
a
74LS49
A
B
E
F
G
BI/RBO
B
A
HI
Tính toán các giá trò điện trở bằng công thức sau
R =
LED
LEDCC
I
VV −
V
LED
khoảng 2,7V, I
LED
khoảng 10mA, vậy R = 230
Ω
Segmen
Blackblane
4070
Control
40hz signal
Phương pháp để lái một LCD 7 đoạn như sau
40hz
4511
A
B
C
D
LT
BI
LE
A
B
C
D
E
F
G
Blackblane
LCD
4070
Y9
D
C
B
A
74LS42
Trang
58
Bài Giảng Kỹ Thuật Số Chương 3
3.6.
MẠCH MÃ HÓA (ENCODER)
Ngược với quá trình giải mã là quá trình mã hóa và được thực hiện bởi mạch logic
mã hóa. Chỉ một ngõ vào của bộ mã hóa được tích cực, và từ mã N-bit ngõ ra tùy
thuộc vào ngõ vào nào được tích cực
A
N-1
A
2
A
1
A
0
O
M-1
O
2
2
Q
1
Q
0
x
x
x
x
x
x
x
x
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
Xác đònh các ngõ ra của bộ giải mã trên khi A
3
=A
5
=0
3.6.2.
Mã hóa ưu tiên
Từ ví dụ trên thấy rằng khi có 2 ngõ vào tích cực cùng lúc đối với một bộ mã hóa
đơn giản sẽ dẫn đến kết quả không mong muốn.
Trang
59
Bài Giảng Kỹ Thuật Số Chương 3
Để tránh tình trạng trên, thường sử dụng bộ mã hóa ưu tiên. Khi có 2 hay nhiều ngõ
vào cùng tích cực thì ngõ ra sẽ tương ứng với ngõ vào có độ ưu tiên cao nhất.
Ví dụ
Khi A
3
=A
5
=0 thì ngõ ra ẽ tương ứng với A
5
nghóa là 101.
Xét một hệ thống với 2
n
ngõ vào, mỗi ngõ vào biểu thò cho một yêu cầu của một
thiết bò như sau: Request
encoder
1
x
x
x
x
x
x
0
0
1
x
x
x
x
x
0
0
0
1
x
x
x
x
0
0
0
0
1
x
x
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Đònh nghóa 8 biến trung gian H0 đến H7 như sau:
H7 = I7
H6 =
7I6I
H5 =
7I.6I5I
…
H0 =
7I.6I.5I.4I.3I.2I.1I.0I
động ở chế độ mã hóa và có 1 trong số các ngõ vào
đang tích cực. E0 (enable output) tích cực mức 0 khi EI
tích cực mức 0 và không có ngõ vào nào tích cực.
74LS148
Ví dụ
Sử dụng 74LS148 thiết kế mạch mã hóa ưu tiên 32 ngõ vào, 5bit ngõ ra: RA4 đến
RA0
74147 là bộ mã hóa ưu tiên 10 đường sang BCD
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
IN9
D
C
A
B
74LS147
Khi không có ngõ vào nào được tác động, ngõ ra sẽ là
1111, vì ngõ ra là ngõ ra đảo nên đảo của 1111 là 0000,
giá trò BCD là 0 nên IC 74LS147 không có ngõ vào IN
0
,
khi ngõ vào IN
9
S3
S6
BCD
Các phím có thể là bàn phím từ 0 đến 9 trong máy tính. Khi một phím được nhấn, ngõ
ra sẽ là mã BCD của phím nhấn đó. Khi có 2 phím được nhấn cùng lúc thì phím ngõ ra
sẽ là mã BCD của phím ưu tiên cao nhất
Trang
61
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
62
3.7. BỘ CHỌN KÊNH (MULTIPLEXERS)
Một bộ chọn kênh tương tương với bộ chuyển mạch số, nó kết nối data từ n nguồn
khác nhau. Ngõ ra sẽ chọn một trong các nguồn data ngõ vào tùy thuộc vào các ngõ
lựa chọn
Z=I
1
Z=I
2
Z=I
3 S
I
0
I
1
Z
74LS08
74LS04
1
74LS32
1
Z
I
1
S0
I
output
Multiplexer
Selector
Enable
D
0
D
n-1
D
1
Data
output
s
s
s
s
Select Output
0
1
Z=I
0
Z=I
1
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
63
3.7.3. Mạch chọn kênh 8 ngõ vào 74LS151
0
1
0
1
0
1
0
1
0
D0
D1
D2
D3
D4
D5
D6
D7
W= Y
Ví dụ
Dùng 2 IC 74ls151 và 1 cổng đảo, một cổng OR thiết kế mạch chọn kênh 16 ngõ
vào, 1 ngõ ra và 4 ngõ select S0, S1, S2, S3
3.7.4. Mạch chọn kênh 2 nhóm ngõ vào 74LS157
74LS157 chứa 2 nhóm ngõ vào như hình sau
G
A
/B
1Y 2Y 3Y 4Y
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
Z=A.B.C+ABC+ABC
74LS157
1A
1B
2A
A
B
C
G
W
Y=Z
HI
Các biến
ngõ vào
Z=A.B.C+ABC+ABC
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
64
Mux có thể được dùng để thực hiện các hàm logic trực tiếp từ bảng sự thật mà
không cần đơn giản hoá hàm logic. Khi sử dụng Mux vào mục đích này, các ngõ
select được sử dụng như các biến logic và mỗi ngõ vào data được nối với mức 1 hay
0 sao cho thỏa mãn bảng sự thật.
Định hướng data
MUX có thể đònh hướng data từ nhiều nguồn data thành 1 nguồn đích.
Ví dụ, sử dụng 74LS157 để chọn và hiển thò nội dung của hai bộ đếm BCD.
select
display
74LS157
1A1B
2A
2B
3A3B
4A4B
A
/B
G
1Y2Y3Y4Y
74LS157
1A 1B
2A
2B
3A
3B
4A4B
A
/B
G
1Y
2Y 3Y4Y
74LS47
LT
RBI
RB0
sang nối tiếp là sử dụng bộ Multiplexer như sau:
Một bộ đếm 3 bit được sử dụng để cung cấp các bit mã chọn CBA từ 000 đến 111,
bằng cách này ngõ ra của Mux sẽ chọn từng kênh X
i
theo mỗi xung clock, ví dụ,
xung clock đầu tiên CBA = 000 ngõ ra sẽ là X0, xung clock thứ hai CBA = 001 ngõ
ra sẽ là X1, cứ như thế ngõ ra Z sẽ là các ngõ vào như ở dạng nối tiếp
X
7
X
6
X
5
X
4
X
3
X
2
X
1
X
0
D4
D5
D6
D7
A
B
C
G
W
Y
X5
Mạch
đếm
3 bit
EN
Enable
SEL
s
Select
s
s
s
O
0
O
1
O
n-1
S
0
Y
7
Y
6
Y
5
Y
4
Y
3
Y
2
Y
1
Y
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
In
0
0
0
0
0
0
In
0
0
0
0
0
0
In
0
0
0
0
0
0
In
0
0
0
0
0
3.8.2. Mạch phân kênh 1 sang 8 và mạch chọn xung clock dùng 74LS138
Phần trước đã khảo sát 74LS138 làm nhiệm vụ giải mã, đến đây sẽ tiếp tục ứng
dụng 74LS138 làm bộ phân kênh data và mạch chọn xung clock S0
HI
74LS138
A
B
C
G1
G2A
G2B
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Counter
S2
S1
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
67
3.8.3. Mạch chọn xung clock
Có rất nhiều ứng dụng dựa vào nguyên lý DeMUX. Sau đây sử dụng 74LS138 làm
bộ chọn clock
3.9. MẠCH SỐ HỌC
3.10.1. Mạch cộng bán phần
S=AB+AB
C
OUT
= AB
3.10.2. Mạch cộng toàn phần
Ví dụ, Thiết kế mạch cộng toàn phần từ mạch cộng bán phần
Ví dụ, Thiết kế mạch cộng hai số nhò phân 4 bit (a
A
B
S
C
OUT
A B S C
OUT
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
B
S
Cout
A
C
IN
A B S C
OUT
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
S2
S1
74LS183
Cộng tồn phần 1 bit
Cin
B
A
Cout
S
Bài Giảng Kỹ Thuật Số Chương 3
GV: Nguyễn Trọng Hải Trang
68
3.10.3. Mạch cộng nhìn trước số nhớ
Ở mạch cộng nhiều bit, phép cộng hàng cao hơn cần số nhớ lần cộng hàng kế trước.
Thời gian trì hoãn này là lớn đối với các phép tính nhanh. Để khắc phục phải thêm
mạch logic để tạo trực tiếp số nhớ gọi là mạch cộng nhìn trước số nhớ (tốc độ cộng
độc lập với số bit)
Gọi
ii i
P=A B⊕
iii
G=AB
⇒
phương trình cộng toàn phần
ii-1
S=P C
i
⊕
B S
Ci
C
i-1
A
P
i
G
i
A
0
A
3
A
2
A
1
C4
B0
B3
B2B1
S0S3S2S1
Cin
A
0
A
3
A
2
Bước 2. Tính tổng của các số nhò phân tương đương với bit 1 (theo trọng số của mã
BCD)
Ví dụ, (52)
10
có mã BCD là 01010010, tổng nhò phân là
80 40 20 10 8 4 2 1 Trọng số BCD
0 1 0 1 0 0 1 0 BCD
0000010 (mã nhò phân cho 2)
0001010 (mã nhò phân cho 10)
0101000 (mã nhò phân cho 40)
0110100 (mã nhò phân cho 52)
Bước 3. Xây dựng mạch sử dụng mạch cộng nhò phân
Ví dụ, Bảng cộng cho số BCD có 2 chữ số
Mã nhò phân tương đương
Bit BCD Trọng số
b
6
b
5
b
4
b
3
b
2
b
1
b
0
A
1
= B
0
+ A
1
; b
2
= C
0
+ B
1
; b
3
= D
0
+ A
1
+ C
1
;
b
4
= B
1
+ D
1
;
b
5