dce
2009
Thiết kế mạch số dùng HDL
Chương 2: Thiết kế mạch luận lý tổ hợp
CuuDuongThanCong.com
/>
Computer Engineering 2009
Nội dung chính
•
•
•
•
•
•
Luận lý tổ hợp và đại số Boole
Qui tắc tối giản đại số Boole
Biểu diễn mạch luận lý tổ hợp
Đơn giản hóa biểu thức Boole
Glitch và Hazard
Các khối cơ bản cho thiết kế luận lý
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
2
Computer Engineering 2009
Nội dung chính
•
•
•
•
•
•
Luận lý tổ hợp và đại số Boole
Qui tắc tối giản đại số Boole
Biểu diễn mạch luận lý tổ hợp
Đơn giản hóa biểu thức Boole
Glitch và Hazard
Các khối cơ bản cho thiết kế luận lý
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
3
Computer Engineering 2009
Mạch tổ hợp – mạch tuần tự
• Combinational circuit
Trạng thái ngõ ra của
mạch tại thời điểm t chỉ
phụ thuộc vào trạng thái
ngõ vào tại thời điểm t
a
b
c
d
y1
Combinational
y2
Logic
y3
• Sequential circuit
Trạng thái ngõ ra phụ
thuộc vào “lịch sử” ngõ
ra và ngõ vào hiện tại
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
a
b
c
y1
Sequential
y2
Circuit
y3
/>
©2009, Pham Quoc Cuong
4
Computer Engineering 2009
Điện áp nguồn
• GND = 0V
• Năm 1980 VDD = 5V
• VDD ngày càng giảm trong các bộ xử lý hiện
đại
VDD cao làm hư các Transistor
VDD thấp tiết kiệm năng lượng
• VDD = 3.3, 2.5, 1.8, 1.5, 1.2, 1.0,…
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
5
Computer Engineering 2009
Transistor
• nMos
• pMos
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
6
Computer Engineering 2009
Cơng nghệ CMOS
• Complementary metaloxide semiconductor
• Output của các cổng
CMOS luôn là 0 hoặc 1
Invert gate
pMos
Pull-up
network
Input
Output
nMos
Pull-down
network
NAND gate
NOR gate
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
7
Computer Engineering 2009
Example: O3AI
• Y ( A B C) D
A
B
C
D
Y
D
A
B
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
C
/>
©2009, Pham Quoc Cuong
8
Computer Engineering 2009
Đại số Boole – Định nghĩa (1)
• Đại số Boole gồm một tập
giá trị B = {0, 1} và hai phép
tốn “+” và “”
• Mỗi biến Boole nhận một
trong hai giá trị 0 hoặc 1
• Mỗi biến Boole a có phần
bù kí hiệu a’
• Một khơng gian nhiều chiều
được bao phủ bởi một tập
hợp n biến Boole được biểu
diễn bằng Bn
• Mỗi điểm trong khơng gian
Bn được gọi là đỉnh và được
biểu diễn bởi một vector nhị
phân n chiều
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
9
Computer Engineering 2009
Đại số Boole – Định nghĩa (2)
• Một biến Boole được biểu diễn bằng một ký tự (a, b,
c’…)
• Một biểu thức Boole được biểu diễn bằng một chuỗi
các biến và các phép toán Boole (abc’, a + b’c…)
• Một tích của các biến được gọi là 1 cube (abc’,
a’b…)
• Một cube chứa một hay nhiều đỉnh
• Một hàm Boole đầy đủ n ngõ nhập là một ánh xạ
f : Bn
B m
• Một hàm Boole khơng đầy đủ là ánh xạ
f : Bn
{0,1,*}
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
* don’t-care
/>
©2009, Pham Quoc Cuong
10
Computer Engineering 2009
Đại số Boole – Định nghĩa (3)
• On_Set của một hàm Boole là tập hợp các
đỉnh mà tại đó hàm khẳng định (đúng)
On_Set = {x:x Bn and f(x) = 1}
• Off_Set của một hàm Boole là tập hợp các
đỉnh mà tại đó hàm khơng khẳng định (sai)
Off_Set = {x:x Bn and f(x) = 0}
• Don’t_care_Set là tập hợp các đỉnh mà tại đó
khơng quan tâm đến giá trị hàm
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
11
Computer Engineering 2009
Đại số Boole – Tính chất
Tính chất
Tổng các tích
Tích các tổng
a+0=a
a1 = a
a+1=1
a0 = 0
a+b=b+a
ab = ba
Kết hợp với 0, 1
Giao hoán
Kết hợp
Phân phối
a+b+c = (a+b)+c
abc = (ab)c =
= a+(b+c)
a(bc)
a(b+c) = ab+ac a+bc = (a+b)(a+c)
a+a=a
aa = a
(a’)’ = a
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
a + a’ = 1
aa’ = 0
/>
©2009, Pham Quoc Cuong
12
Computer Engineering 2009
Định lý De-Morgan
a’
b’
a’
b’
a’.b’
(a.b)’
a+b
(a+b)’
a’+b’
(a+b+c+…)’ = a’b’c’… Phủ định của một tổng bằng tích các phủ định
(abc…)’ = a’+b’+c’+… Phủ định của một tích bằng tổng các phủ định
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
13
Computer Engineering 2009
Nội dung chính
•
•
•
•
•
•
Luận lý tổ hợp và đại số Boole
Qui tắc tối giản đại số Boole
Biểu diễn mạch luận lý tổ hợp
Đơn giản hóa biểu thức Boole
Glitch và Hazard
Các khối cơ bản cho thiết kế luận lý
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
14
Computer Engineering 2009
Các qui tắc tối giản đại số Boole
Tổng các tích
ab+ab’ = a
a+ab = a
ab’+b = a+b
a+a’b = a+b
(a+b)(a’+c) = ac + a’b
ab+bc+a’c = ab+a’c
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
Tích các tổng
(a+b)(a+b’) = a
a(a+b) = a
(a+b’)b = ab
(a’+b)a = ab
ab+a’c = (a+c)(a’+b)
(a+b)(b+c)(a’+c) =
(a+b)(a’+c)
/>
©2009, Pham Quoc Cuong
15
Computer Engineering 2009
Phần phụ đại số của hàm Boole (co-factor)
• Một hàm boole f(x1, x2, x3,…,xn) có phần phụ
đại số với biến xi là
fxi = f(x1, x2, x3,…xi-1, 1, xi+1,…,xn)
• Phần phụ đại số với biến xi’ là
fxi’ = f(x1, x2, x3,…xi-1, 0, xi+1,…,xn)
• Khai triển Shannon hàm f theo phần phụ đại
số của biến xi
f = xi.fxi + xi’.fxi’ = (xi + fxi’)(xi’ + fxi)
f
• Vi phân của một hàm boole
fx fx '
xi
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
i
/>
i
©2009, Pham Quoc Cuong
16
Computer Engineering 2009
Nội dung chính
•
•
•
•
•
•
Luận lý tổ hợp và đại số Boole
Qui tắc tối giản đại số Boole
Biểu diễn mạch luận lý tổ hợp
Đơn giản hóa biểu thức Boole
Glitch và Hazard
Các khối cơ bản cho thiết kế luận lý
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
17
Computer Engineering 2009
Biểu diễn mạch luận lý tổ hợp
•
•
•
•
Biểu diễn dưới dạng sơ đồ kết nối (schematic)
Bảng sự thật (Truth table)
Biểu thức boole
BDD (binary decision diagram)
Sử dụng trong các phần mềm thiết kế tự động
Hiệu quả và dễ tính tốn hơn bảng sự thật
Hỗ trợ phát hiện hazard
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
18
Computer Engineering 2009
Các thuật ngữ (1)
• Implicant của một hàm boole một số hạng trong
biểu thức boole ở dạng tổng các tích (SOP)
• Minterm là một cube trong đó tất cả các biến đều
xuất hiện
abcd là một minterm của hàm f(a, b, c, d)
a’bd không là một minterm của hàm f(a, b, c, d)
Minterm được biểu diễn bằng mi, ví dụ m7 = a’bcd
• Một hàm boole ở dạng SOP được gọi là chuẩn tắc
(canonical) nếu mọi cube có biểu diễn duy nhất mà
trong đó các biến ở dạng khẳng định hay phủ định
abcd + a’bcd là một canonical
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
19
Computer Engineering 2009
Các thuật ngữ (2)
• Một hàm boole ở dạng POS được gọi là chuẩn tắc
(canonical) nếu mọi thừa số có biểu diễn duy nhất
mà trong đó các biến ở dạng khẳng định hay phủ
định
(a+b+c)(a+b’+c) là một canonical
• Maxterm là một tổng các biến mà trong đó mỗi biến
xuất hiện một lần ở dạng khẳng định hoặc phủ định
• Một cube được gọi là dư thừa (redundant) nếu tập
hợp các đỉnh mà nó biểu diễn là con của tập hợp các
đỉnh được biểu diễn bởi một cube khác
• Một biểu thức boole khơng dư thừa (irredundant)
nếu khơng có cube nào chứa cube khác (khơng có
cube dư thừa)
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
20
Computer Engineering 2009
Các thuật ngữ (3)
• Prime implicant
Là implicant không thể suy ra từ implicant khác
Là một cube mà tất cả các đỉnh của nó khơng nằm
trong cube khác
• Essential prime implicant
Là prime implicant mà khơng bị bao phủ (covered)
bởi bất kỳ tập hợp các implicant nào
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
21
Computer Engineering 2009
Ví dụ
• Cube ab là redundant
trong biểu thức
f(a,b,c) = ab + ac’ + bc
• Prime implicant
• Essential prime
implicant
ac’, bc
Essential PI
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
22
Computer Engineering 2009
Nội dung chính
•
•
•
•
•
•
Luận lý tổ hợp và đại số Boole
Qui tắc tối giản đại số Boole
Biểu diễn mạch luận lý tổ hợp
Đơn giản hóa biểu thức Boole
Glitch và Hazard
Các khối cơ bản cho thiết kế luận lý
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
23
Computer Engineering 2009
Đơn giản hóa biểu thức Boole
• f1(a, b, c) = abc + a’bc +
abc’ + a’b’c + ab’c’ +
a’b’c’
• f2(a, b, c) = bc + ab +
a’b’ + b’c’
• f1 = f 2
• f1: canonical
• f2: minimal
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
• Một hàm boole SOP
được gọi là tối giản
(mininal) nếu và chỉ
nếu nó chứa số lượng
các tích số và các biến
ít nhất
• Các phương pháp tối
giản
Bìa Karnaugh
Quine-McClusky
Dùng các tính chất đại số
Boole
Dùng các cơng cụ
(Espresso-II, mis-II…)
/>
©2009, Pham Quoc Cuong
24
Computer Engineering 2009
Bìa Karnaugh (K-map)
• Dùng tối giản các mạch lên đến 5 hoặc 6 biến
• Sum of product
• Product of sum
CD
AB
00 01 11 10
00 0 0 x 1
01
11
10
0
0
1
1
1
1
1
0
0
0
0
1
CD
AB
00 01 11 10
00 0 0 x 1
01
11
10
0
0
1
1
1
1
1
0
0
0
0
1
bcd và abd là prime implicant nhưng
không là essential implicant
Advanced Digital
Design with the Verilog HDL –
CuuDuongThanCong.com
chapter 2
/>
©2009, Pham Quoc Cuong
25