KỸ THUẬT SỐ
Nội Dung Chương Trình
Chương 1: Hệ Thống Số Đếm
Chương 2: Đại Số Boole
Chương 3: Hệ Tổ Hợp
Chương 4: Hệ Tuần Tự
Chương 5: Các Thiết Bị Logic Lập Trình Được (PLD)
Chương 6: Ngôn Ngữ Mô Tả Phần Cứng (VHDL)
Chương 1: HỆ THỐNG SỐ ĐẾM –
SỐ NHỊ PHÂN
I. Các hệ thống số đếm:
1. Các khái niệm:
- Cơ số (r radix):
là số lượng ký tự chữ số (ký
số - digit)
để biểu diễn trong hệ
- Trọngsử
sốdụng
(weight):
thống số đếm
đại lượng biểu diễn cho vị trí
của 1 con số trong chuỗi số.
Trọng số = Cơ
Vị trí
số
- Giá trị (value):
tính bằng tổng theo trọng số
Giá trị = (Ký số x
3
Trọng số)
a. Số thập phân (Decimal):
= 10
Cơ số r
4
0
7
.
6
2
5
102
4x102
400
101
0x101
0
100
7x100
7
.
.
.
10-1
6x10-1
0.6
10-2
2x10-2
0.02
10-3
5x10-3
0.005
400 + 0 + 7 + 0.6 + 0.02 + 0.005 = 407.625
b. Số nhị phân (Binary):
2
Cơ số r =
1
0
1
.
0
1
1
22
1x22
4
21
0x21
0
20
1x20
1
.
.
.
2-1
0x2-1
0
2-2
1x2-2
0.25
2-3
1x2-3
0.125
4 + 0 + 1 + 0 + 0.25 + 0.125 = 5.375
4
c. Số thập lục phân (Hexadecimal):
số r = 16
Hexadeci
mal
Decim Binary
al
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
Hexadeci
mal
0000
0001
0010
0011
0100
0101
0110
0111
Cơ
Decim Binary
al
8
9
A
B
C
D
E
F
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
5
A
0
.
4
D
1
162
5x162
1280
161
10x161
160
160
0x160
0
.
.
.
16-1
4x16-1
0.25
16-2
13x16-2
0.0508
16-3
1x16-3
0.0002
5
1280 + 160 + 0 + 0.25 + 0.0508 + 0.0002 = 1440.301
2. Chuyển đổi cơ số:
a. Từ thập phân sang nhị phân
8 . 625
8
4
2
1
:
:
:
:
2
2
2
2
=
=
=
=
4
2
1
0
dư
dư
dư
dư
0 (LSB)
0
0
1
1 0 0 .0 1 0 1
.
B
0.625 x 2 = 1.25 phần nguyên
(MSB)
0.25 x 2 = 0.5
phần nguyên
0.5
x 2 = 1.0
phần nguyên
1
0
1
6
b. Từ thập phân sang thập lục phân:
1480.4296
875
1480 : 16 = 92 dö
92 : 16 = 5 dö
5 : 16 = 0 dö
8 (LSD)
12
5
5 C 8. . 6 E
H
0.4296875 x 16 = 6.875 phần nguyên
6 (MSD)
0.875
x 16 = 14.0
phần nguyên
14
7
c. Từ nhị phân sang thập lục phân:
0 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 . 001
10101
B
.
6
3
B
5
A
H
D .
d. Từ thập lục phân sang nhị phân:
2
C
9
.
E
8
H
0 01011001001.11101
000 B
8
II. Số nhị phân (Binary):
1.Các tính chất của số nhị phân
- Số nhị phân n bit có 2n giá trị từ 0
đến 2n - 1
- Số nhị phân có giá trị 2n-1:
1……
… 1 (n bit 1)
- Số nhị phân
có
giá
trị lẻ
và
giá
trị
2n: là
1 số
0…
có
1; bit 0)
… LSB
... 0 =(n
ngược lại giá trị
chẵn là số có LSB = 0
- Các bội số của bit:
1 B (Byte) = 8 bit
1 KB
= 210 B
=
1024
1 MB B
= 210 KB =
220
B
1 GB
=
210 MB
9
2. Các phép toán số học trên số nhị phân:
a. Phép cộng:
0
0
1
1
+ 0
+ 1
+ 0
+ 1
nhớ
=
=
=
=
1
0
1
1
0
1
1 1
1
0 1 1
11 0
1 1 1 10 0
b. Phép trừ:
0
0
1
1
- 0 =
- 1 =
mượn 1
- 0 =
- 1 =
0
1
1
0
-
1
- 1 1 1
1 0 1
01 1
1 0 0 11 1
10
1 0 1
1 01 0
1
1 0 1
0 0 01
0 0 00
1 0 10
1 1 010 0 1
1
c. Phép
nhân:
d. Phép
chia:
1
0 0 1 0 0 0 11 0 1
1
1 0 1
1 1 0 1
1 11 0
1 1
0 1
11
0 1
11 0 1
1 01
11
3. Mã nhị phân:
Từ mã:
là các tổ hợp nhị phân được sử dụng
trong loại mã nhị phân
a. Mã nhị phân cho số thập phân (BCD –
Binary Coded Decimal)
Số
BCD
BCD
BCD
Mã 1 trong
thập
(8 4 2 (2 4 2 quá 3
10
phâ
1)
1)
0011
n
000 000 0100 0000000
0
1
2
3
4
5
6
7
8
0
00
1
00
0
00
1
01
0
0
1
1
0
0
00
1
00
0
00
1
01
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
001
0000
010
0000
100
0000
000
0000
000
00
00
01
1 120
b. Mã
là Gray:
mã nhị phân mà 2 giá trị liên tiếp
nhau
có tổ hợp bit biểu diễn chỉ khác nhau
bit
Giá Binary 1Gray
trị
0
1
2
3
4
0
0
0
0
1
0
0
1
1
0
Đổi từ Binary sang
Gray
Gray
:
1 0 1 1
1 0 1 1
0
1 1 1 0 1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
Đổi từ Gray sang
Binary
Gray
:
1 0 0 0
1 1 0 0
1
1 0 0 0 1 13
c. Mã LED 7
đoạn:
0
1
2
3
4
5
6
7
8
9
a
b
c
d
e
f
g
1 1 1 1 1 1
0
0 1 1 0 0 0
f
b
g
0
1 1 0 1 1 0
e
c
1
1 1 1 1 0 0
d
1
0 1 1 0 0 1
1
Maõ 1 trong n:
1 0 1 1 0 1
là mã nhị phân n bit1có mỗi từ mã
chỉ có 1 bit là 1 (hoặc
1 0)
0 và
1 1n-1
1 bit
1
còn lại là 0 (hoặc 1) 1
1 0 0
1 1 1 0 0 10 1
0
0
0
1
0 1 0
1 0 1
1 1 1 1 1 1
Mã 1 trong
hoặ
0 0 1
1 1 0
1
4:
c
1 1 1 11 1
0 1
0 0 0
1 14
1
a
d.
Giá
trị
d. Mã ký tự
ASCII:
(Hà
ng)
(Cột) b6 b5 b4
00
0
00
1
01
0
01
1
10
0
10
1
11
0
111
b 3 b 2b
b
1 0
He
x
0
1
2
3
4
5
6
7
000
0
000
1
001
0
001
1
010
0
010
1
011
0
011
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
NUL
SO
H
STX
ETX
EOT
EN
Q
ACK
BEL
BS
HT
LF
VT
FF
DLE
DC1
DC2
DC3
DC4
NA
K
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
SP
!
”
#
$
%
&
’
(
)
*
+
,
.
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~
15
III. Số nhị phân có dấu :
1. Biểu diễn số có dấu:
a. Số có dấu theo biên độ
(Signed_Magnitude):
- Bit MSB là bit dấu: 0 là số dương
và 1 là số âm,
các bit còn lại biểu diễn giá
+ lớn
trị độ
13 :
13 :
01101
11101
- Phạm vi biểu diễn:
- (2n-1 – 1)
– 1)
÷
+ (2n-1
16
b. Số bù_1 (1’s Complement):
- Số bù_1 của 1 số nhị phân N có
chiều dài n bit
Bù_1 (N) = 2n – 1 – N
Buø_1 (1 0 =
24 - 1 - 1
0 1)
0
= 0111 1 1 - 1
001
= 0110
- Có thể lấy Bù_1 của 1 số nhị
phân bằng cách lấy đảo từng bit
của nó (0 thành 1 và 1 thành 0)
- Biểu diễn số có dấu bù_1:
* Số có giá trị dương:
bit dấu = 0, các bit còn lại
* Số diễn
có giá
âm:
biểu
độtrị
lớn
lấy bù_1 của số dương
có cùng độ lớn
- Phạm vi biểu diễn
- (2
n-1
– 1) ÷ + (2
n-1
– 1)
17
c. -Số
Complement):
Sốbù_2
bù_2(2’s
của
1 số nhị phân N có chiều
dài n bit cũng có n bit
Bù_2 (N) = 2n – N = Bù_1 (N) +
1
Bù_2 (1 0 =
0 1)
hoặc
Bù_2
(1 0 0 1)
24
- 1
0
= 0110 0 0 0 - 1
0
=0 1
01
11
=
Buø_1 (1 0 0
1)
= +1
0
= +1
011
01
11
18
- Biểu diễn số có dấu bù_2:
* Số có giá trị dương:
bit dấu = 0, các bit còn lại
biểu
độtrị
lớn
* Số diễn
có giá
âm:
lấy bù_2 của số dương
có cùng độ lớn
- Phạm vi biểu diễn số nhị phân có
dấu n bit
- (2n-1 )
÷
Giá trị
dương
000 = 0
001 = + 1
010 = + 2
011 = + 3
+ (2n-1 - 1)
Giá trị âm
100
101
110
111
=
=
=
=
-
4
3
2
1
19
- Để tìm được giá trị của số âm:
ta lấy bù_2 của nó; sẽ nhận được
số dương có cùng biên độ
- giá
Số âm 1 1 0 0 0 1 có
trị : ………
15
Buø_2 (1 1 0 0 0 1) = 0 0 1 1 1 1
: + 15
- Mở rộng chiều dài bit số có dấu:
số dương thêm các bit 0 và số âm
thêm các bit 1 vào trước
-3
: 101 = 11101
- Lấy bù_2 hai lần một số thì bằng
chính số đó
- Giá trị -1 được biểu diễn là 1 ….
11 (n bit 1)
- Giá trị -2n được biểu diễn là 1 0
0 .... 0 0 (n bit 0)
20
- 32 = - 25 : 1 0 0 0 0 0
2. Các phép toán cộng trừ số
có- dấu:
Thực hiện giống như số không
dấu.
- Thực hiện trên toán hạng có cùng
chiều dài bit,
và kết
quả
- Kết quả đúng nếu nằm trong
phạm
vi
cũng
có cùng
sốdấu.
bit
biểu diễn
số có
(nếu kết quả sai thì cần
:
1
0 1 dài bit)
:
111
mở rộng
chiều
+- 6 0
001
+3 :
-3 1 110
:
+ 4 : 10 1 0
+
0
: 0101
+5
-7
1 0 0(Kq
1
sai)
:
+- 2 0
101
-5 :
-7 1 100
0: 0 1 1
0
00010
1 0 1 0 0: + 9(Kq
21
đúng)
1
Tràn (overflow) xảy ra khi số nhớ Cin và Cout tại vị trí dấu là khác nhau.
:
--6 0
-2 :
-4 0
:
0
101
111
110
-7 : 100
1
: 0101
+5
+4
0 1 0(Kq
0
sai)
:
2
-5
+7
:
+
:
0
:
1
1
1100
10010
1 1 0 1 0: 12
0
001
101
011
(Kq
đúng)
22
Trừ với số
bù_2:
A – B = A + Bù_2
(B)
* Trừ với số có dấu
101
-6 :
:
110
-3 0
1
-3 :
bù_
2:
+
1010
0011
110
1
23
Một số khái niệm tổng quát về số bù:
1. Bù cơ số trừ 1
Cho trước 1 số N gồm n ký số trong hệ cơ số r, bù cơ số trừ 1 của N
được định nghĩa là rn – 1 – N.
Số N và bù cơ số trừ 1 của N phải có cùng ký số.
Ví dụ:
Xét số 123D
- N = 123, n = 3, r = 10.
- Bù 9 (bù cơ số trừ 1) của 123D là:
rn
-1
-N
103
-1
- 123
= 999 – 123 = 876D
-Tương tự, bù 1 của 1100B là:
= 1111B – 1100B
24 – 1 – 1100B
15
-
1
1
1
1
1
0
1
0
0
0
1
1