Thứ Tư, 22 tháng 1, 2014

Kỹ thuật số - Chương 6

_________________________________________________________________
Chương 6


Mạch làm toán VI - 5

_______________________________________________________________

Thí dụ 8 : Tính 10110 - 10110
A = 10110 và B = 10110 ⇒ (B)
2
= 01010


Bỏ qua số tràn ta được A-B

=00000.

6.4 Phép toán với số có dấu
Cho tới giờ chúng ta thực hiện các phép toán với số không dấu và đôi khi xuất hiện
dấu trừ trong kết quả. Trong máy tính, điều này có thể khắc phục được bằng cách dùng số có
dấu.
Với qui ước số dương có bit dấu là 0 và số âm có dấu là 1

Thí dụ 9: +10
10
= 01010 +15
10
= 01111 +23
10
= 010111
-10
10
= 10110 - 15
10
= 10001 - 23
10
= 101001
Có thể thấy rằng số âm của một số là số bù 2 của nó kể cả bit dấu.
Với cách biểu diễn số có dấu, phép toán trừ trở thành phép toán cộng:
A-B

= A+(-B

)


Thí dụ 10: Tính A-B

=01110 - 01001; B

= 01001 = +9
10
⇒ - 9
10
= 10111


Bit dấu =0 chỉ kết quả dương, bỏ bit tràn C’
2
.
Vậy A-B

= 00101 [(+14
10
)-(+9
10
)] = +5
10
Nếu A

hoặc B

đều dương hoặc âm , kết quả có thể cần thêm một bit do tràn số. Trong
trường hợp này bit tràn đầu tiên thuộc kết quả và C’
2
là bit dấu

Thí dụ 11: Tính A+B

với A

= 01110 (+14
10
) và B

= 01001 (+9
10
)
Kết quả là 010111 = +23
10
với C’
2
= 0 là bit dấu


Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 6

_______________________________________________________________

Thí dụ 12: Tính A-B

với A

=10010 (-14
10
) và B

=01001 (+9
10
)


Một lần nữa C’
2
chỉ bit dấu. Kết quả là 101001 = -23
10
(010111 = 23
10
)

Từ các kết quả trên, ta rút ra qui tắc sau đây:
Nếu C
1
= C
2
thì C’
2
là bit tràn, bỏ đi và nếu C
1
≠ C
2
thì C’
2
là bit dấu.

Thí dụ 13: Tính A-B

với A

=011101 (+29
10
) và B

=0110 (+6
10
)
B
B

= 000110 = +6
10
⇒ - 6
10
= 111010


Ghi chú: - Trong tất cả trường hợp, ta luôn luôn thực hiện phép cộng do đó có thể bỏ
qua phép trừ
- Khi cộng hai số hạng cùng dấu thì có thể xảy ra hiện tượng tràn, lúc đó bit
dấu dời về bên trái một bit. Trong các trường hợp khác thì dấu của kết quả ở cùng vị trí với
dấu của các số hạng
- Ngoài ra kết quả còn được xử lý tùy vào kết quả so sánh sự khác nhau của
hai số nhớ C
1
và C
2
(nhờ một cổng EX-OR).

6.5 Mạch cộng nhị phân:
6.5.1 Mạch cộng bán phần (Half adder, HA):
Là mạch cộng hai số 1 bit

Bảng sự thật kết quả Mạch Ký hiệu

(H 6.3)


Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 7

_______________________________________________________________
6.5.2 Mạch cộng toàn phần

(Full adder,FA) :
Là mạch cộng hai bit ở cùng vị trí trong hai số nhị phân nhiều bit, nói cách khác, đây
là mạch cộng hai bit , giả sử thứ n, và bit nhớ có được từ phép cộng hai bit thứ n-1 của hai số
nhị phân đó. Ta có bảng sự thật

C
n-1
B
B
n
A
n
S
n
C
n
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
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1

Dùng bảng Karnaugh ta xác định được S
n
và C
n
như sau:

)B(ACBAC
)B(ACS
nn1nnnn
nn1nn
⊕+=
⊕⊕=






(H 6.4)

Có thể thấy một mạch cộng toàn phần gồm hai mạch cộng bán phần và một cổng OR

6.6 Cộng hai số nhị phân nhiều bit:
6.6.1 Cộng 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 C
n
được làm trễ một bit nhờ FF D và đưa vào ngã
vào C
n-1
. Như vậy tốc độ của phép cộng tùy thuộc vào tần số xung C
K
và số bit phải thực hiện.



(H 6.5)

Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 8

_______________________________________________________________
6.6.2 Cộng 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 (H 6.6).




(H 6.6)
Chính vì phải chờ số nhớ mà tốc độ cộng còn hạn chế. Muốn nâng tốc độ cộng lên,
người ta thực hiện phép cộng song song định trước số nhớ.

6.6.3 Mạch cộng song song định trước số nhớ
Để tăng tốc độ của mạch cộng song song, người ta tạo trước các số nhớ để đưa đồng
thời vào mạch cộng
Từ biểu thức xác định số nhớ

)B(ACBAC
nn1nnnn
⊕+=


Đặt P
n
= A
n
B
B
n
và G
n
= A
n
⊕ B
n

Ta xác định được C
1
, C
2
, C
3
như sau:






Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 9

_______________________________________________________________

(H 6.7)

Nhận thấy thời gian tính số nhớ giống nhau ở các tầng và bằng t
1
+t
2
. t
1
là thời gian
truyền đồng thời qua các cổng AND và t
2
là thời gian truyền qua cổng OR.
Sơ đồ khối mạch cộng song song định trước số nhớ:


(H 6.8)

Trên thị trường hiện có IC 7483 (tương đương 4008 của CMOS) là IC cộng 4 bit theo
kiểu định trước số nhớ.

6.6.4 Cộng hai số BCD
Trên thị trường có các IC cộng số nhị phân, trong lúc trên thực tế nhiều khi chúng ta
cần cộng các số BCD để cho kết quả là số BCD.
Chúng ta tìm cách dùng IC 7483 (4008) để cộng hai số BCD
Hai số BCD có trị từ 0
10
đến 9
10
khi cộng lại cho kết quả từ 0
10
đến 18
10
. Để đọc được
kết quả dạng BCD ta phải hiệu chỉnh kết quả có được từ mạch cộng nhị phân.
Dưới đây là kết quả tương đương giữa 3 loại mã: thập phân, nhị phân và BCD


Nhị
Phân B C
D
BCD đọc
TP
S’=C’
4
S’
4
S’
3
S’
2
S’
1
S =C
4
S
4
S
3
S
2
S
1
theo NP
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
2
3
4
5
6
7
8
9
16
17
18
19
20
21
22
23
Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 10

_______________________________________________________________
18 1 0 0 1 0 1 1 0 0 0 24

Nhận thấy:
- Khi kết quả <10 mã nhị phân và BCD hoàn toàn giống nhau
- Khi kết quả ≥10 để có được mã BCD ta phải cộng thêm 6 cho mã nhị phân
Để giải quyết vấn đề hiệu chỉnh này trước tiên ta sẽ thực hiện một mạch phát hiện kết
quả trung gian của mạch cộng hai số nhị phân 4 bit. Mạch này nhận vào kết quả trung gian
của phép cộng 2 số nhị phân 4 bit và cho ở ngã ra Y = 1 khi kết quả này ≥10, ngược lại, Y=0.
Bảng sự thật

TP C’
4
S’
4
S’
3
S’
2
Y
0-1
2-3
4-5
6-7
8-9
10-11
12-13
14-15
16-17
18
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1

Ta không dùng ngã vào S’
1
vì từng cặp trị có C’
4
S’
4
S’
3
S’
2
giống nhau thì S’
1
= 0 và
S’
1
= 1
Dùng bảng Karnaugh xác định được Y

Y =
C’
4
+ S’
4
(S’
3
+ S’
2
)
Và mạch cộng hai số BCD được thực hiện theo sơ đồ (H 6.9)

(H 6.9)

Vận hành:

- IC thứ nhất cho kết quả trung gian của phép cộng hai số nhị phân.
- IC thứ hai dùng hiệu chỉnh để có kết quả là số BCD:
- Khi kết quả < 10, IC 2 nhận ở ngã vào B số 0000 (do Y=0) nên kết quả không thay
đổi.
- Khi kết quả trung gian ≥ 10, IC 2 nhận ở ngã vào B số 0110
2
= 6
10
(do Y=1) và kết
quả được hiệu chỉnh như đã nói trên.

6.6.5 Mạch cộng lưu số nhớ
Nhắc lại, một mạch cộng toàn phần (FA) nhận 3-bit ở ngã vào và cho 2 ngã ra :
- Một là tổng của các bit có cùng trọng số với các bit ở ngã vào
- Một là số nhớ có trọng số gấp đôi trọng số của các bit ở ngã vào
Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 11

_______________________________________________________________
Để cộng một chuỗi số, nhiều mạch cộng toàn phần sẽ được sử dụng, số nhớ được lưu
lại để đưa vào mạch cộng bit cao hơn.

Thí dụ 14 : Với 3 số 3-bit X (X
3
X
2
X
1
), Y(Y
3
Y
2
Y
1
), Z (Z
3
Z
2
Z
1
) mạch cộng có dạng


(H 6.10)

Ngưòi ta dùng mạch cộng loại này để thực hiện bài toán nhân.
Để có kết quả nhanh hơn, có thể dùng mạch (H 6.11)



(H 6.11)


6.7 Mạch trừ nhị phân:
6.7.1 Mạch trừ bán phần
Là mạch trừ hai số 1 bit (H 6.12)


(H 6.12)


Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 12

_______________________________________________________________
6.7.2 Mạch trừ có số nhớ

(mạch trừ toàn phần)
Là mạch trừ 2 bit có quan tâm tới số nhớ mang từ bit trước

R
n-1
A
n
B
B
n
D
n
R
n
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
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
Bảng sự thật

Dùng bảng Karnaugh xác định được các hàm D
n
và R
n
)B(ARD
nn1nn
⊕⊕=



)BA(RBAR
nn1nn
n
n
⊕+=



Và mạch (H 6.13)


(H 6.13)


Nhận thấy cấu tạo mạch trừ giống như mạch cộng, chỉ khác ở mạch tạo số nhớ
6.7.3 Trừ số nhiều bit
Ta có mạch trừ số nhiều bit bằng cách mắc song song các mạch trừ 1 bit (H 6.14)


(H 6.14)
6.7.4 Cộng và trừ số nhiều bit trong một mạch
Nhắc lại để thực hiện phép toán trừ, người ta cộng với số bù 1 và cộng thêm 1 (hoặc
cộng với số bù 2), như vậy để thực hiện phép trừ A - B ta tính A + (B)
1
+ 1 . Mạch (H 6.6)
đưọc sửa đổi để có thực hiện phép cộng và trừ tùy vào ngã điều khiển C (H 6.15)
- Khi C=0, ta có mạch cộng
- Khi C =1, ta có mạch trừ

Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 13

_______________________________________________________________

(H 6.15)


Ta cũng có thể thực hiện mạch cộng trừ theo kiểu mắc nối tiếp (H 6.16)


(H 6.16)

Nếu hai số A, B là số 8 bit, có dấu, kết quả được xử lý bởi mạch dò số tràn, thiết kế
dựa vào biểu thức: OV = C
7
⊕ C
8
. Khi OV =1 nghĩa là có số tràn (tức C
7
≠C
8
), thì số tràn C
8

sẽ là bit dấu, S
8
là một bit của kết quả và khi OV = 0 (tức C
7
=C
8
), thì S
8
là bit dấu.

6.8 Mạch nhân
Lấy thí dụ bài toán nhân 2 số 4 bit

Y
4
X
4
Y
3
X
3
Y
2
X
2
Y
1
X
1
Số bị nhân
Số nhân



P
44


P
34
P
43

P
24
P
33
P
42
P
14
P
23
P
32
P
41
P
13
P
22
P
31

P
12
P
21

P
11

Tích từng phần
S
8
S
7
S
6
S
5
S
4
S
3
S
2
S
1
Kết quả

6.8.1. Mạch nhân cơ bản
Việc thực hiện bài toán nhân có thể xem như gồm hai bước:
- Tính các tích từng phần: thực hiện bởi các cổng AND
- Tính tổng của các tích từng phần: Áp dụng bài toán tổng chuỗi số (H 6.17)

Nguyễn Trung Lập
KỸ THUẬT SỐ


_________________________________________________________________
Chương 6


Mạch làm toán VI - 14

_______________________________________________________________

(H 6.17)

Dùng IC cộng 4 bit (7483 hoặc 4008) mạch nhân hai số 4 bit có dạng (H 6.18)

(H 6.18)

6.8.2. Mạch nhân nối tiếp - song song đơn giản (H 6.19)


(H 6.19)


Trong mạch này, một trong hai số được đưa nối tiếp vào mạch (trong trường hợp này
là số bị nhân) và số còn lại đưa song song vào mạch.
- Số nhân (b
4
b
3
b
2
b
1
) đưa song song vào mạch qua các cổng AND đồng thời kiểm soát
các cổng này: ứng với bit 1 số bị nhân qua mạch để tới mạch cộng (cổng 2 và 4); ứng với bit 0
ngã ra cổng AND bằng không (cổng 1 và 3)
Nguyễn Trung Lập
KỸ THUẬT SỐ


Không có nhận xét nào:

Đăng nhận xét