Cộng Trừ Nhị Phân

You might also like

You are on page 1of 23

MẠCH CỘNG TRỪ NHỊ PHÂN

MẠCH SO SÁNH NHỊ PHÂN

NGUYỄN TRƯỜNG DUY


UTE 4.0
Mạch cộng nhị phân

Nhớ 1 1 1 1
1 0 1 1 1
+
0 1 1 0 1
1 0 0 1 0 0

Cộng toàn phần Cộng bán phần

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 2


UTE 4.0
Mạch cộng bán phần (Half Adder – HA)
 Cộng bán phần là cộng hai số nhị phân 1 bit cho ra kết quả ghi lại 1 bit và nhớ lại
1 bit. Cộng bán phần chỉ thực hiện cho cột số cuối cùng của một số nhị phân (cột
số có trọng số bằng 0).
 Bảng trạng thái
 Sơ đồ khối
Ngõ vào Ngõ ra  Mạch điện
A B S Co
0 0 0 0
0 1 1 0
Trong đó
1 0 1 0
 A, B là 2 bit ngõ vào cộng (số hạng) 1 1 0 1
 S là kết quả ghi lại  Hàm ngõ ra S  AB  A B  A  B
 Co là số nhớ Co = AB
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 3
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Cộng toàn phần là cộng hai số nhị phân 1 bit và cộng thêm bit nhớ của cột có
trọng số nhỏ hơn 1 đơn vị. Cộng toàn phần cho phép cộng bất kỳ ở cột số nào
của số nhị phân.
 Bảng trạng thái
 Sơ đồ khối Ngõ vào Ngõ ra
A B CI S Co
0 0 0 0 0
Trong đó 0 0 1 1 0
0 1 0 1 0
 A, B là 2 bit ngõ vào cộng (số hạng)
0 1 1 0 1
 S là kết quả ghi lại 1 0 0 1 0
 Co là số nhớ 1 0 1 0 1
1 1 0 0 1
 CI: số nhớ của cột số có trọng số thấp hơn 1 đơn vị
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 4
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Cộng toàn phần là cộng hai số nhị phân 1 bit và cộng thêm bit nhớ của cột có
trọng số nhỏ hơn 1 đơn vị. Cộng toàn phần cho phép cộng bất kỳ ở cột số nào
của số nhị phân.
 Bảng trạng thái
 Hàm ngõ ra Ngõ vào Ngõ ra

S  A.B.CI  A.B.CI  A.B.CI  A.B.CI A B CI S Co


0 0 0 0 0
S  (A.B  A.B)CI  (A.B  A.B)CI 0 0 1 1 0
0 1 0 1 0
S  (A  B)C I  (A  B)C I 0 1 1 0 1
1 0 0 1 0
S  (A  B)  CI
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 5
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Cộng toàn phần là cộng hai số nhị phân 1 bit và cộng thêm bit nhớ của cột có
trọng số nhỏ hơn 1 đơn vị. Cộng toàn phần cho phép cộng bất kỳ ở cột số nào
của số nhị phân.
 Bảng trạng thái
 Hàm ngõ ra S  (A  B)  CI Ngõ vào Ngõ ra
AB A B CI S Co
00 01 11 10 0 0 0 0 0
CI
0 0 0 1 0 0 0 1 1 0
0 1 0 1 0
1 0 1 1 1
0 1 1 0 1
Co  AB  AC I  BC I  AB  (A  B)CI 1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 6
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Cộng toàn phần là cộng hai số nhị phân 1 bit và cộng thêm bit nhớ của cột có
trọng số nhỏ hơn 1 đơn vị. Cộng toàn phần cho phép cộng bất kỳ ở cột số nào
của số nhị phân.
 Bảng trạng thái
 Hàm ngõ ra S  (A  B)  CI Ngõ vào Ngõ ra
Co = AB + (A + B)CI A B CI S Co
0 0 0 0 0
 Nếu không sử dụng bảng Karnaugh thì Co được
0 0 1 1 0
viết như sau:
0 1 0 1 0
Co  A.B.CI  A.B.CI  A.B.CI  A.B.CI
0 1 1 0 1

Co  (A.B  A.B)CI  A.B(CI  CI ) 1 0 0 1 0


1 0 1 0 1
Co  A.B  (A  B)C I 1 1 0 0 1
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 7
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Cộng toàn phần là cộng hai số nhị phân 1 bit và cộng thêm bit nhớ của cột có
trọng số nhỏ hơn 1 đơn vị. Cộng toàn phần cho phép cộng bất kỳ ở cột số nào
của số nhị phân.
 Mạch điện
 Hàm ngõ ra S  (A  B)  CI
Co = AB + A + B CI
 Nếu không sử dụng bảng Karnaugh thì Co được
viết như sau:
Co  A.B.CI  A.B.CI  A.B.CI  A.B.CI

Co  (A.B  A.B)CI  A.B(CI  CI )


Co  A.B  (A  B)C I
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 8
UTE 4.0
Mạch cộng toàn phần (Full Adder – FA)
 Mạch cộng toàn phần cũng có thể được thiết kế từ các mạch cộng bán phần
 Giả sử cộng toàn phần 2 số X và Y  Mạch cộng bán phần thứ hai
X + Y + CI  Kết quả S và số nhớ Co S1 + CI  Kết quả S2 và số nhớ Co2

Với S  (X  Y)  C I S2  S1  C I  (X  Y)  C I
Và C o  XY  (X  Y )C I 𝐶𝑜2 = 𝑆1 𝐶𝐼 = (𝑋⨁𝑌)𝐶𝐼
 Mạch cộng bán phần thứ nhất Vậy S = S2 và Co = Co1 + Co2

X + Y  Kết quả S1 và số nhớ Co1


S1  X  Y
Co1 = XY
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 9
UTE 4.0
Mạch cộng nhị phân nhiều bit
 Giả sử cộng 2 số nhị phân A và B 4 bit CI3 CI2 CI1 CI0
A3 A2 A1 A0
CI0 = 0 CI1 = Co0 +
B3 B2 B1 B0
CI2 = Co1 CI3 = Co2
Co3 S3 S2 S1 S0
Co2 Co1 Co0

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 10


UTE 4.0
Mạch cộng BCD
 Mạch cộng nhị phân 4 bit tích hợp

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 11


UTE 4.0
Mạch cộng BCD
TP Co S3 S2 S1 S0
 Cho 2 mã BCD 4 bit vào mạch cộng 0 0 0 0 0 0
0 BCD BCD 1 0 0 0 0 1
Đúng mã BCD
… … … … … …
9 0 1 0 0 1
10 0 1 0 1 0
11 0 1 0 1 1
12 0 1 1 0 0 Không đúng mã
13 0 1 1 0 1 BCD
14 0 1 1 1 0
15 0 1 1 1 1
Kết quả
16 1 0 0 0 0 Đúng mã BCD
17 1 0 0 0 1 Kết quả chưa
18 1 0 0 1 0 đúng
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 12
UTE 4.0
Mạch cộng BCD
TP Co S3 S2 S1 S0
 Nếu kết quả không đúng mã BCD thì phải
0 0 0 0 0 0
hiệu chỉnh bằng cách cộng thêm 6 (0110) vào
kết quả. 1 0 0 0 0 1
Đúng mã BCD
… … … … … …
 Nếu kết quả nếu là các trạng thái từ 16 đến
18 thì cũng phải cộng thêm 6 (0110) mới cho 9 0 1 0 0 1
ra kết quả đúng. 10 0 1 0 1 0

 Phương pháp thực hiện như sau: 11 0 1 0 1 1


12 0 1 1 0 0 Không đúng mã
 Các trạng thái từ 10 đến 15 sử dụng một BCD
13 0 1 1 0 1
mạch nhận dạng để phát hiện ra các trạng
thái này. 14 0 1 1 1 0
15 0 1 1 1 1
 Còn các trạng thái 16 đến 18 thì sẽ được
nhận dạng bằng ngõ ra Co (Co = 1). 16 1 0 0 0 0 Đúng mã BCD
17 1 0 0 0 1 Kết quả chưa
18 1 0 0 1 0 đúng
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 13
UTE 4.0
Mạch cộng BCD
S3 S2 S1 S0 Y1
 Thực hiện mạch nhận dạng số nhị phân
0 0 0 0 0
ngõ ra (S3, S2, S1, S0) không phải mã BCD
0 0 0 1 0
Đặt Y1 là hàm nhận dạng: Đúng mã BCD
… … … … …
 Nếu đúng BCD thì ngõ ra Y1 = 0, 1 0 0 1 0
1 0 1 0 1
 Nếu không đúng BCD thì ngõ ra Y1 = 1
1 0 1 1 1
Viết hàm Y1 và tối giản hàm ta có được: 1 1 0 0 1 Không đúng
Y1 = (S1 + S2)S3 1 1 0 1 1 mã BCD
1 1 1 0 1
Vì Y1 = 1 hoặc Co = 1 đều phải hiệu chỉnh kết
quả bằng cách cộng 610 nên phải lập hàm Y 1 1 1 1 1
tổng hợp theo bảng trạng thái

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 14


UTE 4.0
Mạch cộng BCD
TP Co S3 S2 S1 S0 Y1 Y
Y1 = (S1 + S2)S3
0 0 0 0 0 0 0 0
Vì Y1 = 1 hoặc Co = 1 đều phải hiệu chỉnh kết 1 0 0 0 0 1 0 0
quả bằng cách cộng 610 nên phải lập hàm Y … … … … … … … …
tổng hợp theo bảng trạng thái
9 0 1 0 0 1 0 0
Y1 Co Y 10 0 1 0 1 0 1 1
0 0 0 11 0 1 0 1 1 1 1
0 1 1 12 0 1 1 0 0 1 1
Y = Y1 + Co
1 0 1 13 0 1 1 0 1 1 1
1 1 1 14 0 1 1 1 0 1 1

Vậy nếu ngõ ra Y = 1 thì kết quả ngõ ra được 15 0 1 1 1 1 1 1


cộng thêm 610, còn nếu ngõ ra Y = 0 thì kết 16 1 0 0 0 0 0 1
quả ngõ ra sẽ cộng thêm 0 17 1 0 0 0 1 0 1
18 1 0 0 1 0 0 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 15
UTE 4.0
Mạch cộng BCD
Mạch thực hiện như sau
Y1 = (S1 + S2)S3
Vì Y1 = 1 hoặc Co = 1 đều phải hiệu chỉnh kết
quả bằng cách cộng 610 nên phải lập hàm Y tổng
hợp theo bảng trạng thái
Y1 Co Y
0 0 0
0 1 1
Y = Y1 + Co
1 0 1
1 1 1

Vậy nếu ngõ ra Y = 1 thì kết quả ngõ ra được


cộng thêm 610, còn nếu ngõ ra Y = 0 thì kết quả
ngõ ra sẽ cộng thêm 0

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 16


UTE 4.0
Mạch trừ bán phần (Half Subtractor – HS)
 Mạch trừ nhị phân bán phần là mạch trừ hai số nhị phân 1 bit, mạch này chỉ sử
dụng để trừ cột số cuối cùng của số nhị phân (cột số có trọng số bằng 0)
 Sơ đồ khối  Bảng trạng thái  Mạch điện
Ngõ vào Ngõ ra
A B D Bo
0 0 0 0
Trong đó 0 1 1 1
 A là số bị trừ 1 0 1 0
 B là số trừ 1 1 0 0
 D là kết quả  Hàm ngõ ra D  AB  A B  A  B
 Bo là số mượn B 0  AB
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 17
UTE 4.0
Mạch trừ toàn phần (Full Subtractor – FS)
 Trừ toàn phần là trừ hai số nhị phân 1 bit và trừ thêm bit mượn của cột có trọng
số nhỏ hơn 1 đơn vị. Trừ toàn phần cho phép trừ bất kỳ ở cột số nào của số nhị
phân.
 Bảng trạng thái
 Sơ đồ khối Ngõ vào Ngõ ra
A B BI D Bo
0 0 0 0 0
Trong đó 0 0 1 1 1
 A là số bị trừ, B là số trừ 0 1 0 1 1
0 1 1 0 1
 D là kết quả
1 0 0 1 0
 Bo là số mượn 1 0 1 0 0
 BI là bit mượn của cột số có trọng số 1 1 0 0 0
thấp hơn 1 đơn vị (bit trả) 1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 18
UTE 4.0
Mạch trừ toàn phần (Full Subtractor – FS)
 Trừ toàn phần là trừ hai số nhị phân 1 bit và trừ thêm bit mượn của cột có trọng
số nhỏ hơn 1 đơn vị. Trừ toàn phần cho phép trừ bất kỳ ở cột số nào của số nhị
phân.
 Bảng trạng thái
 Hàm ngõ ra Ngõ vào Ngõ ra
D  A.B.BI  A.B.BI  A.B.BI  A.B.BI A B BI D Bo
0 0 0 0 0
D  (A.B  A.B)BI  (A.B  A.B)BI 0 0 1 1 0
0 1 0 1 0
D  (A  B)BI  (A  B)BI 0 1 1 0 1

D  (A  B)  BI 1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 19
UTE 4.0
Mạch trừ toàn phần (Full Subtractor – FS)
 Trừ toàn phần là trừ hai số nhị phân 1 bit và trừ thêm bit mượn của cột có trọng
số nhỏ hơn 1 đơn vị. Trừ toàn phần cho phép trừ bất kỳ ở cột số nào của số nhị
phân..
 Bảng trạng thái
 Hàm ngõ ra D  (A  B)  BI Ngõ vào Ngõ ra
AB A B BI D Bo
00 01 11 10 0 0 0 0 0
BI
0 0 1 0 0 0 0 1 1 0
0 1 0 1 0
1 1 1 1 0
0 1 1 0 1
1 0 0 1 0
Bo  AB  AB I  BB I  AB  (A  B)B I 1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
NGUYỄN TRƯỜNG DUY 3/18/2020 Page 20
UTE 4.0
Mạch trừ toàn phần (Full Subtractor – FS)
 Trừ toàn phần là trừ hai số nhị phân 1 bit và trừ thêm bit mượn của cột có trọng
số nhỏ hơn 1 đơn vị. Trừ toàn phần cho phép trừ bất kỳ ở cột số nào của số nhị
phân..
 Hàm ngõ ra D  (A  B)  BI  Mạch điện

AB
00 01 11 10
BI
0 0 1 0 0
1 1 1 1 0

Bo  AB  AB I  BB I  AB  (A  B)B I

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 21


UTE 4.0
Mạch trừ nhị phân nhiều bit
 Thực hiện tương tự như mạch cộng nhị phân nhiều bit ta có được
mạch trừ nhị phân như sau:

NGUYỄN TRƯỜNG DUY 3/18/2020 Page 22


UTE 4.0
MẠCH SO SÁNH NHỊ PHÂN
 SO SÁNH NHỊ PHÂN 1 BIT Bảng trạng thái Mạch điện
 Mạch này có hai ngõ vào A Ngõ vào Ngõ ra
và B dùng để so sánh, kết
quả có ba trường hợp xảy ra A B YA>B YA=B YA<B
là A>B, A=B và A<B. 0 0 0 1 0
Sơ đồ khối 0 1 0 0 1
1 0 1 0 0
1 1 0 1 0

Hàm ngõ ra YA  B  A B
YA  B  A.B  AB  A  B
YA  B  AB Page 23
NGUYỄN TRƯỜNG DUY 3/18/2020

You might also like