Luận lý số digital logic 2.. Mức cổng gate level 3.. Mức chuyển mạch switch level 4.. Thành phần logic tổ hợp combinational logic 5.. Logic tuần tự sequential logic 6.. Qui trình th
Trang 11 Luận lý số (digital logic)
2 Mức cổng (gate level)
3 Mức chuyển mạch (switch level)
4 Thành phần logic tổ
hợp (combinational logic)
5 Logic tuần tự (sequential logic)
6 Công cụ (tools)
7 Thanh ghi (register)
8 Qui trình thiết kế Số (digital design processing)
9 Qui trình thiết kế Số (digital design processing) Robert Noyce, 1927 – 1990
1 BIỂN DIỄN SỐ
số
Thập Phân(Decimal) 10 0,1,2,3,4,5,6,7,8,9 2745.214 10 =2* 10 3 +7* 10 2 +4* 10 1 +5* 10 0 +
2* 10 -1 +1* 10 -2 +4* 10 -3
Nhị Phân (Binary)
2 0, 1 1011.101 2= 1* 2 3 + 0* 2 2 + 1* 2 1 + 1* 2 0 +
1* 2 -1 + 0* 2 -2 + 1* 2 -3 Bát Phân(Octal) 8 0, 1, 2, 3, 4, 5, 6, 7 372 8= 3* 8 2 + 7* 8 1 + 2* 8 0
Thập Lục(Hexadecimal)
16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 A(10), B(11), C(12), D(13), E(14), F(15)
3BA 16= 3* 16 2 + 11* 16 1 + 10* 16 0
Trang 2Nhị Phân
(Binary)
Bát Phân (Octal)
Thập Lục (Hexadec imal)
Thập Phân (Decimal)
11
1
3
5 7
6
8 12
10
4
1 Thập Phân => Nhị Phân
VD: 1110 => Số Nhị Phân (10112)
5
2
1
0
Dư 1
Hoặc
11=2 3 +2 1 +2 0
Suy ra 1011
VD: 0,62510 => Số Nhị Phân (0,1012)
1,25
Bit lấy dư 1 *2
0,5 *2
1,0
Bit lấy dư 0 Bit lấy dư 1
Trang 3VD: 9,62510 => Số Nhị Phân (1001.1012)
• Phần nguyên 9 đổi sang hệ nhị phân là 1001
• Phần lẻ 0.625 đổi sang hệ nhị phân là 0.101
2 Thập Phân => Thập Lục Phân
VD: 70010 => Thập Lục Phân (2BC16)
43
C Dư 12 16
2
0
2 Dư 2
3 Thập Phân => Bát Phân
VD: 14210 => Thập Lục Phân (2168)
43
2
0
Dư 2
4 Bát Phân => Nhị Phân
VD: 12348 => Nhị Phân (001- 010-011-1002)
5 Bát Phân => Thập Lục Phân
Trang 4VD: 12348 => Nhị Phân (001- 010-011-1002 ) => 0010-1001-11002=29C16
6 Bát Phân => Thập Phân
VD: 3728 => Phận phân (25010 )
372 = 3*8 2 + 7*8 1 + 2*8 0
192 + 56 + 2 = 250
7 Thập Lục => Nhị Phân
VD: C0DE16 => Nhị Phân (1100-0000-1101-11102)
8 Thập Lục => Bát Phân
VD: C0DE16 => Bát Phân (1403368)
C0DE 16=> Nhị Phân (1100-0000-1101-11102) = 1-100-000-011-1102 = 140336 8
9 Thập Lục => Thập Phân
VD: 3BA16 => Thập Phân (95610)
3BC = 3*16 2 + 11*16 1 + 12*16 0
768 + 176 + 12 = 956
10 Nhị Phân => Bát Phân
VD: 1000110011102=> Bát Phân (43168)
100011001110 = 100 011 001 110 = 4316
Trang 5VD: 10,10110010112=> Bát Phân (2,54548)
10,10110010112= 010. -101-100-101-1002
11 Nhị Phân => Thập Phân
VD: 10112 => Thập Phân (1110)
1011 = 1* 2 3 + 0* 2 2 + 1* 2 1 + 1* 2 0
8 + 0 + 2 + 1 = 11
VD: 101.0012 => Thập Phân (5,12510)
101,001 = 1*2 2 + 0*2 1 + 1*2 0 + 0*2 -1 + 0*2 -2 + 1*2 -3
4 + 0 + 1 + 0 + 0 + 0,125 = 5,125
12 Nhị Phân => Thập Lục
VD: 111011011101010012 => Thập lục (1DBA916)
11101101110101001 = 0001 1101 1011 1010 1001 = 1DBA9
VD: 10,10110010112=> Bát Phân (2,54548)
10,10110010112= 010 . -101-100-101-1002 =00010 -1011-0010-1100 2 =2.B2C 16
13 Thập Phân => BCD
137 10 = 0001_0011_0111 (BCD)
Trang 6Thập Phân
(Decimal)
10
0→9
Nhị Phân
(Binary)
2 0,1
Bát Phân
(Octal)
8 0→7
Thập Lục
(Hexadecimal)
16 0→9 A→F
BCD
(Binary Coded Decimal) 0→9
Trang 7• Ngoài ra để cho nhanh trong việc chuyển đổi các hệ số ta có thể dùng máy tính, ví
dụ như tính năng Calculator trong hệ điều hành Windows, ta chọn chế độ Programmer
• Hoặc trang online sau http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html
• Tìm số dư của phép chia 9124565217 cho 123456
Ấn: 9124565217 chia 123456 Máy hiện thương số là: 73909,45128 đưa con trỏ lên dòng biểu thức sửa lại là:
9124565217 chia 123456 nhân 73909 và ấn Kết quả: Số dư: r = 55713
Tìm số dư của phép chia 2345678901234 cho 4567 Ta tìm số dư của phép chia
234567890 cho 4567 được kết quả là 2203 Tìm tiếp số dư của 22031234 cho
4567 Kết quả cuối cùng là 26 Vậy r = 26
• Dùng casio để đổi Mode 4
14 Phép tính số nhị phân
KHÔNG CÓ DẤU
➢ PHÉP CỘNG
• Cộng 2 số nhị phân 1-bit
Trang 81 0 1
• Cộng 2 số nhị phân không dấu
11 (3) +110 (6)
1001 (9) 11.011 (3.375) +10.110 (2.750) 110.001 (6.125)
1 0 1 1 1 1 1 0 (190) +1 0 0 0 1 1 0 1 (141)
1 0 1 0 0 1 0 1 1 (331)
1 1 1 1
➢ PHÉP NHÂN
• Nhân 2 số nhị phân 1-bit
• Nhân 2 số nhị phân không dấu
➢ PHÉP TRỪ
Trang 91 0 1 0 1 (21)
- 0 0 1 1 1 (7)
0 1 1 1 0 (14)
Mượn 1
1+1(Mượn)=0 nhớ 1 rồi
1-0=1
0+1(nhớ)=1 rồi 0-1=1 mượn 1
0+1(mượn)=1 rồi 1-1=0
CÓ DẤU
Phương pháp biểu diễn số có dấu:
Sử dụng thêm 1 bit (sign bit) để thể hiện dấu của số:
– 0: dương
– 1: âm
Bit thể hiện dấu nằm ở ngoài cùng bên trái của số
• Dạng số bù 1: Đảo bit
01_ 0010 _0100 (29210) => 10_ 1101_1011 (-29210)
• Dạng số bù 2
01_ 0010 _0100 (29210) => 10_ 1101_1011 (-29210) Bù 1
10_1101_1011 (-29210)
+1
10_1101_1011 (-29210) Bù 2
• Chuyển dạng số bù 2 sang số nhị phân
Trang 101710 = 0001 _ 00012
1110_11102
+1
1110_1111= -1710
Bù 1
Bù 2
• Các phép tính trong hệ thống số bù 2
Phép cộng trong hệ thống số bù 2
– Bit dấu được xử lý dựa theo cách tương tự như các
bit độ lớn
– Bit nhớ ở vị trí cuối cùng sẽ được loại bỏ
– Nếu kết quả phép tính là số âm, để đọc được giá trị
của số đó ta chuyển sang dạng bù 2 của nó (số dương) Số âm cần tìm sẽ là ngược dấu với số dương vừa tìm được
Phép trừ trong hệ thống số bù 2
1.Cho 2 số nhị phân 8 bit (gồm cả bit dấu) thực hiên phép toán dau trong hệ bù 2: 15 – 6 Bg:
Ta có: 1510 = 0000_11112
610 = 0000_01102
Bù 1 của 610 : 1111_1001
+1
1111_1010
Hệ bù 2 của (-610) = 1111_10102
Phép tính 15 – 6
0000_1111
+ 1111_1010
1_0000_1001
Loại bỏ bit nhớ cuối cùng ta được
0000_10012 (910)
2.Cho 2 số nhị phân 8 bit (gồm cả bit dấu) thực hiên phép toán dau trong hệ bù 2: 47 – 19
Trang 11Ta có: +4710= 0010_11112
1910 = 0001_00112
Bù 1 của 1910 : 1110_1100
+1
1110_1101
Hệ bù 2 của (-1910) = 1110_11012
Phép tính +47 – 19
0010_1111
+ 1110_1100
1_0001_0011
Loại bỏ bit nhớ cuối cùng ta được
0001_11002 (2810)
Số dấu chấm động
1.Biểu diễn số thực -206.3410 dưới dạng số dấu chấm động chính xác
đơn 32 bit (8 bit mũ)
BG
• Phần nguyên 206 = 1101_00012
• Phần thập phân
0.34 *2 = 0.68 → 0
0.68 *2 = 1.36 → 1
0.36 *2 = 0.0.72 → 0
0.72 *2 = 1.44 → 1
0.44 *2 = 0.88 → 0
Trang 120.88 *2 = 1.76 → 1
0.76 *2 = 1.52 → 1
0.52 *2 = 1.04 → 1
………
0.34 = 0101_01112
Ta có: 206.3410 = 1101_0001 0101_01112 = 1 1010_0010_1010_1112 * 2 7
Biểu diễn số quá 127 của mũ 7 là: 127+7 = 13410 = 100001102
chuẩn IEEE 754 như sau
1 1000_0110 1010_0010_1010_1110_0000_000
2 Biểu diễn số thực 209.812510 dưới dạng số dấu chấm động chính xác
đơn 32 bit (8 bit mũ)
BG
• Phần nguyên 209=1101_00012
• Phần thập phân
0.8125 *2 = 1.625 → 1
0.625 *2 = 1.25 → 1
0.25 *2 = 0.5 → 0
0.5 *2 = 1 → 1
0.8125 = 11012
Ta có: 209.812510 = 11010001.11012 = 1.101000111012 * 2 7
Biểu diễn số quá 127 của mũ 7 là: 127+7 = 13410 = 100001102
chuẩn IEEE 754 như sau
0 1000_0110 1010_0011_1010_0000_0000_000
3 Biểu diễn số thực 0.0664062510 dưới dạng số dấu chấm động chính
xác đơn 32 bit (8 bit mũ)
BG
Ta có: 0.0664062510 = 0.000100012 = 1.00012 * 2 -4
Trang 13Biểu diễn số quá 127 của mũ -4 là: 127-4 = 12310 = 0000_10112
theo chuẩn IEEE 754 như sau