You are on page 1of 30

Các bước thiết kế mạch logic tổ hợp

 B1: Đặt các biến ngõ vào và ngõ ra

 B2: Lập bảng sự thật

 B3: Viết biểu thức hàm logic liên hệ ngõ vào và ngõ ra

 B4: Rút gọn hàm logic theo Boole hoặc bìa Kanaugh

 B5: Vẽ mạch
6. Vi mạch tổ hợp

• 6.1 Mạch cộng cơ bản


• 6.2 Mạch cộng nhị phân song song
• 6.3 Truyền số nhớ và thấy trước số nhớ
• 6.4 Mạch so sánh
• 6.5 Mạch giải mã
• 6.6 Mạch mã hóa
• 6.7 Mạch biến đổi mã
• 6.8 Mạch ghép kênh (chọn kênh)
• 6.9 Mạch giải ghép kênh (phân đường)
• 6.10 Mạch kiểm tra chẵn lẻ
6.1 Mạch cộng cơ bản

• Mạch cộng bán phần (không đầy đủ)(half-adder)


Cộng nhị phân

0+ 0= 0 
A  Sum
0+ 1 = 1 Các ngõ
Các bit
1+ 0 = 1 ngõ vào ra
B Cout Carry
1 + 1 = 10

Mạch cộng bán phần HA


Mạch cộng bán phần (không đầy đủ) nhận hai bit (digit) nhị phân trên các ngõ vào và
tạo ra hai bit (digit) nhị phân trên những ngõ ra, bit tổng (sum bit) và bit nhớ (carry bit).
6.1 Mạch cộng cơ bản

• Mạch cộng bán phần (không đầy đủ)


Viết các hàm theo dạng chính tắc 1:
A B Cout ∑
0 0 0 0   AB  AB
0 1 0 1
1 0 0 1
  A B
1 1 1 0 Cout = AB
∑ = tổng
Cout = số nhớ ngõ ra
A và B = các biến ngõ vào (toán hạng)
  A  B  AB  AB

A Cout = AB
B
6.1 Mạch cộng cơ bản

• Mạch cộng toàn phần FA (đầy đủ)(full-adder)


Mạch cộng toàn phần (đầy đủ) nhận hai bit (digit) dữ liệu ngõ vào và bit nhớ ngõ vào
(input carry), tạo ra hai bit (digit) trên những ngõ ra, bit tổng (sum bit) và bit nhớ ngõ ra
(output carry).


Các bit A  Sum
ngõ vào
B
Output carry
Intput carry Cin Cout
11
1011
+0110
10001
6.1 Mạch cộng cơ bản

• Mạch cộng toàn phần (đầy đủ)


A B C C ∑   ABCin  ABCin  ABCin  ABCin
In Out

0 0 0 0 0  ( AB  AB)C  ( AB  AB)C
in in
0 0 1 0 1
0 1 0 0 1  ( A  B)C  ( A  B)C
in in
0 1 1 1 0
1 0 0 0 1  ( A  B)  C in
1 0 1 1 0
1 1 0 1 0 Cout  ABCin  ABCin 
1 1 1 1 1
ABCin  ABCin
Cin= số nhớ ngõ vào, đôi khi ký hiệu là CI
Cout= số nhớ ngõ ra, đôi khi ký hiệu là CO Cout  AB  ( AB  AB)Cin
∑ = tổng
A và B = các biến ngõ vào (các toán hạng)
Cout  AB  ( A  B)Cin
6.1 Mạch cộng cơ bản

• Lưu ý:
Cần ghi nhớ:
Cout = A.B + (A  B).Cin
Cout = A.B + (A  B).Cin + A.B.Cin
Cout = A.B + (A  B + A.B)Cin
Cout = A.B + (A.B + A.B + A.B).Cin
Cout = A.B + (A.B + A.B + A.B + A.B).Cin
Cout = A.B + (A + B).Cin
6.1 Mạch cộng cơ bản

• Mạch cộng toàn phần (đầy đủ)


A A B
B
Cin
 ( A  B )  C
in

A A B
B
Cin
  ( A  B)  Cin

( A  B)Cin
Cout  AB  ( A  B)Cin
AB
6.1 Mạch cộng cơ bản

• Mạch cộng toàn phần (đầy đủ)


Half-adder Half-adder

∑ ∑

A B ∑
Sum
A A A
( A  B)  Cin

B B COUT B COUT
( A  B)Cin

Output carry , Cout


AB
Input carry, Cin
AB  ( A  B )Cin
6.2 Mạch cộng nhị phân song song

• Giới thiệu
Mạch cộng nhị phân nối tiếp
Trong cách cộng nối tiếp, người ta dùng các ghi dịch để
chuyển các bit vào một mạch cộng toàn phần duy nhất, số
nhớ từ ngã ra Cn được làm trễ một bit nhờ FF D và đưa
vào ngã vào Cn-1. Như vậy tốc độ của phép cộng tùy thuộc
vào tần số xung CK và số bit phải thực hiện.
6.2 Mạch cộng nhị phân song song

• Giới thiệu
Mạch cộng 2-bit song song
Trong cách cộng song song, các bit được đưa đồng thời vào các mạch cộng toàn phần và số
nhớ của kết quả ở bit thấp được đưa lên bit cao hơn

A 2 B2 A 1 B1
Dạng tổng quát, cộng
hai số 2-bit:
A2 A1
+ B2 B1
---------- A B Cin A B Cin
∑3 ∑2 ∑1
Cout ∑ Cout ∑
0

(MSB) ∑3 ∑2 ∑1 (LSB)
6.2 Mạch cộng nhị phân song song

• Giới thiệu
Mạch cộng 3-bit song song

1 0 0 1 1 1

A B Cin A B Cin A B Cin

Cout ∑ Cout ∑ Cout ∑


0
1 1
∑4 ∑3 ∑2 ∑1
1 0 0 0
6.2 Mạch cộng nhị phân song song

• Mạch cộng 4-bit song song


1 1
Số nhị phân 2 2 Tổng
A ∑ 4-bit
A 3 3
4 4
1
Số nhị phân 2
B
B 3
4

Số nhớ Số nhớ
C0 C4
ngõ vào ngõ ra
6.2 Mạch cộng nhị phân song song

• IC 74LS283
6.2 Mạch cộng nhị phân song song

• Mở rộng thành mạch cộng 8-bit song song


B B B B A8 A A A B B B B A A A A
8 7 6 5 7 6 5 4 3 2 1 4 3 2 1

4 3 2 1 4 3 2 1 Cin 4 3 2 1 4 3 2 1 Cin

0 C0
∑ ∑

Cout 4 3 2 1 Cout 4 3 2 1

C
8 ∑8 ∑7∑6 ∑5 ∑4 ∑3∑2 ∑1
6.2 Mạch cộng nhị phân song song

• Ghép 2 IC 74LS283 để có mạch cộng 8-bit

∑ ∑
A1 1 (5) (5)
1 A5 1 1
A2 0 (3) (3)
2 A A6 1 2
A3 0 (14) (4) 1 ∑1 (14) A (4)
3 1 A7 0 3 1 0 ∑5
A4 1 (12)
4 (11) 1 ∑2 (12) (11)
2 A8 1 4 2 0 ∑6
(6)
∑ (13) 1 ∑3 ∑ (13)
B1 0 1 3 B5 1 (6)
1 3 1 ∑7
B2 1 (2)
4
(10) 0 ∑4 (2) (10)
2 B6 0 2 4 0 ∑8
(15) B (15) B
B3 1 (11)
3 B7 0 3
(11)
B4 1 4 B8 1 4
(7) (9) 1 (7) (9)
C0 C4 C0 C4 1 ∑9
0

Cộng 4-bit thấp Cộng 4-bit cao


6.2 Mạch cộng nhị phân song song

Ứng dụng
6.3 Truyền và thấy trước số nhớ

• Mạch cộng truyền số nhớ (ripple carry adder)


1 1 1 0 1 0 1 0

A B Cin A B Cin A B Cin A B Cin 1


Cout ∑ Cout ∑ Cout ∑ Cout ∑
1 1 1 1
1 MSB
LSB
FA4 FA3 FA2 FA1

8 ns 8 ns 8 ns 8 ns

32 ns
6.3 Truyền và thấy trước số nhớ

• Mạch cộng truyền số nhớ (ripple carry adder)


Cout = A.B + (A + B).Cin Đặt Cg = A.B và Cp = A + B
Ta có: Cout = Cg + Cp.Cin
A B Cin Cout S carry
status
0 0 0 0 0 diệt
0 0 1 0 1 diệt
0 1 0 0 1 truyền
0 1 1 1 0 truyền Cp
1 0 0 0 1 truyền
1 0 1 1 0 truyền
1 1 0 1 0 tạo
Cg
1 1 1 1 1 tạo
6.3 Truyền và thấy trước số nhớ

• Mạch cộng thấy trước số nhớ (look-ahead adder)

1 1 1 1 1 0 0 1

A B Cin A B Cin A B Cin A B Cin


Cout ∑ Cout ∑ Cout ∑ Cout ∑
1
6.3 Truyền và thấy trước số nhớ

• Mạch cộng thấy trước số nhớ

chỉ phụ thuộc cin1

chỉ phụ thuộc cin1

chỉ phụ thuộc cin1


6.3 Truyền và thấy trước số nhớ

 Mạch cộng thấy trước số nhớ

Mạch tạo trước Cout


6.4 Mạch so sánh

• So sánh hai bit

0
0 Các ngõ vào bằng nhau
0

0
1 Các ngõ vào không bằng nhau
1

1
1 Các ngõ vào không bằng nhau
0

1
0 Các ngõ vào bằng nhau
1
6.4 Mạch so sánh

• So sánh bằng
Ngõ ra (A = B) ở logic
A0 1 cho biết hai số A và
LSBs B bằng nhau.
B0

A=B
A1 HIGH chỉ ra bằng nhau
MSBs
B1

Dạng tổng quát: Số nhị phân A → A1 A0


Số nhị phân B → B1 B0
6.4 Mạch so sánh

• So sánh không bằng


So sánh 1-bit

a b a<b a=b a>b


0 0 0 1 0
a (a<b)
0 1 1 0 0
1 0 0 0 1 (a=b)
1 1 0 1 0 b (a>b)

a<b = a.b Ngõ ra a<b bằng 1 cho biết a nhỏ hơn b.


a=b = a  b Ngõ ra a=b bằng 1 cho biết a bằng b.
a>b = a.b Ngõ ra a>b bằng 1 cho biết a lớn hơn b.
6.4 Mạch so sánh

• So sánh không bằng


So sánh 4-bit
So sánh 2 số: A = A3A2A1A0 và B = B3B2B1B0
A3B3 A2B2 A1B1 A0B0 Kết quả
> x x x A>B
< x x x A<B
= > x x A>B
= < x x A<B
= = > x A>B Kết quả so sánh A3 và B3
= = < x A<B sẽ điều khiển việc so sánh
= = = > A>B A2 với B2, kết quả so sánh
= = = < A<B
A2 và B2 sẽ điều khiển việc
so sánh A1 với B1, v.v. . .
= = = = A=B
6.4 Mạch so sánh

• So sánh không bằng


So sánh 1-bit có điều khiển
Kết quả so sánh 2 bit có
trọng số lớn kế tiếp.
Ngõ vào điều khiển Ngõ ra so sánh

a>b a=b a<b a b a>b a=b a<b (a>b)(a=b)(a<b)


1 0 0 x x 1 0 0
a (a<b)
0 0 1 x x 0 0 1
(a=b)
0 1 0 0 0 0 1 0
b (a>b)
0 1 0 0 1 0 0 1
0 1 0 1 0 1 0 0
0 1 0 1 1 0 1 0
0 1 0
6.4 Mạch so sánh
(a>b)(a=b)(a<b)
A3 (a<b)
(a=b)
B3 (a>b)

• So sánh không bằng


So sánh 4-bit (a>b)(a=b)(a<b)
A2 (a<b)
A = A3A2A1A0 (a=b)
B2 (a>b)
B = B3B2B1B0

Ta ghép 4 mạch so sánh 1-bit (a>b)(a=b)(a<b)


có điều khiển để tạo thành mạch A1 (a<b)
so sánh 4-bit. (a=b)
B1 (a>b)

(a>b)(a=b)(a<b)
A0 (a<b) A<B
(a=b) A=B
B0 (a>b) A>B
6.4 Mạch so sánh

• IC so sánh 4-bit 74HC85

A0 0
A1
A
A2 A>B
A3 3
A=B
B0 0
B1 A<B
B2 B

B3 3
6.4 Mạch so sánh

• IC so sánh 4-bit 74HC85

You might also like