dce

2009

Thiết kế mạch số dùng HDL Thiết kế mạch số dùng HDL

Chương 2: Thiết kế mạch luận lý tổ hợp

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

2 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

3 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Mạch tổ hợp – mạch tuần tự

a

y1

• Combinational circuit  Trạng thái ngõ ra của

b

Combinational C bi l

ti

y2

c

Logic

y3

d

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 ngõ vào tại thời điểm t

i

• Sequential circuit

a a

y1

b

Sequential

y2

 Trạng thái ngõ ra phụ Trạng thái ngõ ra phụ thuộc vào “lịch sử” ngõ ra và ngõ vào hiện tai

c

Circuit Circuit

y3

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

4 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Điện áp nguồn

i

• VDD = 3.3, 2.5, 1.8, 1.5, 1.2, 1.0,…

0 0 0 2 • GND = 0V g n • Năm 1980 VDD = 5V • Năm 1980 V = 5V n i r • VDD ngày càng giảm trong các bộ xử lý hiện e e n đại đại g  VDD cao làm hư các Transistor n E  VDD thấp tiết kiệm năng lượng E ế r e t u p m o o C

5 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Transistor

• nMos

i

• pMos

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

6 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Công nghệ CMOS

nMos nMos Pull-up network

Input I t

• Complementary metal- oxide semiconductor • Output của các cổng

Output

CMOS luôn là 0 hoặc 1

i

pMos pMos Pull-down network

Invert gate In ert gate

NAND gate NAND gate

NOR gate

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

7 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Song song và nối tiếp

• Nối tiếp (Series): cả hai

• nMOS: 1 = ON • pMOS: 0 = ON

transistor phải đóng (ON) • Song song (Parallel): một trong 2 transistor đóng

a

a

a

a

a

i

a

a

a

a

0

0

1

1

g1

g1

g2

0

0

1

1

0

1

0

1

g2

0 0

1 1

0 0

1 1

b

b

b

b

b

b

b

b

b

b

(c)

OFF

ON

ON

ON

OFF

OFF

(a)

OFF

ON

a a

a a

a a

a a

a

a

a

a

a

0

1

1

0

g1

g1

g2

0

0

0

1

1

0

1

1

g2

1

0

1

0

b

b b

b b

b b

b b

b b

b

b

b

b

ON

ON

ON

OFF

OFF

ON

OFF

OFF (d)

(b)

0 0 0 2 g n p OS 0 O n i r e e n a g n E E r e t u a p m o o C

8 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Quy tắc “Conduction Complement”

dụ

• Các cổng CMOS luôn sinh ra giá trị 1/0 • Ví dụ: NAND

 Nối tiếp ở nMOS: Y=0 khi và chỉ khi cả hai ngõ nhập là 1  Và Y=1 khi có một ngõ nhập là 0

Y

i

A

B B

 Mạng kéo lên (pull-up) là “đối nghịch” với mạng kéo xuống

(pull-down) (pull down)

 Song song → Nối tiếp, Nối tiếp → Song song

0 0 0 2 g n n i r e e n  Mắc song song các transistor pMOS g n E • Quy tắc “Conduction Complements” E r e t u p m o o C

9 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS Inverter

VDD

i

A Y 0 1

A A

Y Y

A

Y

GND

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

10 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS Inverter

VDD

i

A Y 0 1

0

A 1 A=1

OFF Y 0 Y=0

ON

A

Y

GND

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

11 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS Inverter

VDD

i

ON

A Y 1 0 0 1

A 0 A=0

Y 1 Y=1

OFF

A

Y

GND

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

12 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NAND Gate

Y Y

i

A

B

0 0 0 2 g n A B Y A B Y n i r 0 0 e e n 0 1 g 0 1 n E E 1 1 r e t u p m o o C

13 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NAND Gate

ON

ON

Y=1 Y=1

i

A=0

OFF

B=0

OFF

0 0 0 2 g n A B Y A B Y n i r 1 0 0 e e n 0 1 g 0 1 n E E 1 1 r e t u p m o o C

14 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NAND Gate

ON

OFF

Y=1 Y=1

i

A=0

OFF

B=1

ON

0 0 0 2 g n A B Y A B Y n i r 1 0 0 e e n 0 1 1 g 0 1 n E E 1 1 r e t u p m o o C

15 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NAND Gate

OFF

ON

Y=1 Y=1

i

A=1

ON

B=0

OFF

0 0 0 2 g n A B Y A B Y n i r 1 0 0 e e n 0 1 1 g 1 0 1 n E E 1 1 r e t u p m o o C

16 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NAND Gate

OFF

OFF

Y=0 Y=0

i

A=1

ON

B=1

ON

0 0 0 2 g n A B Y A B Y n i r 1 0 0 e e n 0 1 1 g 1 0 1 n E E 0 1 1 r e t u p m o o C

17 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 CMOS NOR Gate

A

i

B

Y Y

0 0 0 2 g n A B Y A B Y n i r 1 0 0 e e n 0 0 1 g 0 0 1 n E E 0 1 1 r e t u p m o o C

18 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 3-input NAND Gate

i

Y

A A

B

C

0 0 0 2 • Y là 0 nếu TẤT CẢ ngõ vào là 1 g n • Y là 1 nếu TỒN TẠI ngõ vào là 0 • Y là 1 nếu TỒN TẠI ngõ vào là 0 n i r e e n g n E E r e t u p m o o C

19 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Thiết kế cổng CMOS

• Ví dụ:

 Bằng công nghệ CMOS hãy vẽ cấu tạo transistor Bằng công nghệ CMOS hãy vẽ cấu tạo transistor của cổng NOR 4 ngõ vào (4-inputs NOR gate)

i

A

B

C

D D

Y

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

20 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Thiết kế cổng CMOS

• Ví dụ (sinh viên tự làm):

 Bằng công nghệ CMOS hãy vẽ cấu tạo transistor Bằng công nghệ CMOS hãy vẽ cấu tạo transistor của cổng NAND 4 ngõ vào (4-inputs NAND gate)

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

21 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Các cổng kết hợp (compound)

• Các cổng kết hợp (Compound gates) có thể biểu diễn bất kỳ

hàm đảo (not) nào bất kỳ

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

22 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Compound Gates

(the bubble-out schematic). Use de Morgan’s theorems —“A NAND is an OR with inverted inputs and a NOR is an AND with inverted inputs”—to push the output bubble back to the inputs (this the dual icon or bubble-in schematic).

i

2. Form the n -channel stack working from the inputs on the bubble-out schematic: OR translates to a parallel connection, AND translates to a series connection. If you have a bubble at an input, you need an a series connection If you have a bubble at an input you need an inverter.

3. Form the p -channel stack using the bubble-in schematic (ignore the inversions at the inputs—the bubbles on the gate terminals of the p - the bubbles on the gate terminals of the p inversions at the inputs channel transistors take care of these). If you do not have a bubble at the input gate terminals, you need an inverter (these will be the same input gate terminals that had bubbles in the bubble-out schematic). schematic)

0 0 0 Step to construct single-stage combinational CMOS logic 2 cell g n 1. Draw a schematic icon with an inversion (bubble) on the last cell n 1 Draw a schematic icon with an inversion (bubble) on the last cell i r e e n g n E E r e t u p m o o C

23 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Compound Gates

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

24 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Example: AOI22

)

)

BA 

DC ( 

( • Y =

C

C

A

A

D

B

D

B

(a)

(b)

i

D

C

B C

D

A

B B

A A

(c)

(d)

D

C

B

A

Y

Y

C

A

A B C D

D D

B B

(f) (f)

(e)

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

25 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 AOI22

• Use AND/OR gate to implement?

 20 transitors 20 transitors

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

26 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Example: O3AI

Y

(

DCBA

)



A

i

B

C C

D D

Y

D

A

B

C

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

27 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Đạ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 toán “+” và “”

i

• Mỗi biến Boole nhận một trong hai giá trị 0 hoặc 1 ó hầ Mỗi biế B l bù kí hiệu a’ g g

g

• 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ị biểu diễn bởi một vector nhị phân n chiều

0 0 0 2 g n toán + và n i r e e n • Mỗi biến Boole a có phần g n E E r e t u p m o o C

28 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Đạ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 (abc’, a + b’c…)

i

a’b…)

• Một hàm Boole đầy đủ n ngõ nhập là một ánh xạ

m

n

Bf

B

:

• Một hàm Boole không đầy đủ là ánh xạ

,*}1,0{

: nBf

* don’t-care

0 0 0 2 g n n i r e e n • Một tích của các biến được gọi là 1 cube (abc’, g n E • Một cube chứa một hay nhiều đỉnh E r e t u p m o o C

29 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Đại số Boole – Định nghĩa (3)

• On_Set của một hàm Boole là tập hợp các

i

0 0 0 2 g n đỉnh mà tại đó hàm khẳng định (đúng) đỉnh mà tại đó hàm khẳng định (đúng) n i  r On_Set = {x:x Bn and f(x) = 1} e e n • Off_Set của một hàm Boole là tập hợp các Off Set của một hàm Boole là tập hợp các g đỉnh mà tại đó hàm không khẳng định (sai) n  E E Off_Set = {x:x Bn and f(x) = 0} r e • Don’t_care_Set là tập hợp các đỉnh mà tại đó t u không quan tâm đến giá trị hàm p m o o C

30 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

Tổng các tích

Tích các tổng

a + 0 = a

a1 = a

ế

a + 1 = 1

a0 = 0

a + b = b + a a + b = b + a

ab = ba ab = ba

i

Kết hợp

a+b+c = (a+b)+c = a+(b+c) +(b+ )

abc = (ab)c = a(bc) (b )

Phân phối

a(b+c) = ab+ac a+bc = (a+b)(a+c)

a + a = a

aa = a

) (a’)’ = a (

9 Đại số Boole – Tính chất 0 0 Tính chất 0 ấ 2 g n Kết hợp với 0, 1 n i r e e n Giao hoán Giao hoán g n E E r e t u p m o o C

a + a’ = 1

aa’ = 0

31 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Định lý De-Morgan

a’

b’

a’

b’

i

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

(abc…)’ = a’+b’+c’+… Phủ định của một tích bằng tổng các phủ định

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

32 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

33 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Các qui tắc tối giản đại số Boole

(

i

)(

)

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 a c ab+bc+a’c = ab+a’c ab bc a c

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)

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

34 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

• Một hàm boole f(x1, x2, x3,…,xn) có phần phụ

fxi = f(x1, x2, x3,…xi, 1, xi+1,…,xn)

i

fxi’ = f(x1, x2, x3,…xi, 0, xi+1,…,xn)

số của biến xi i

f = xi.fxi + xi’.fxi’ = (xi + fxi’)(xi’ + fxi) f f

• Vi phân của một hàm boole • Vi phân của một hàm boole

f f   x i

x 'i

f  x  i

9 Phần phụ đại số của hàm Boole (co-factor) 0 0 0 2 g n đại số với biến xi là đại số với biến xi là n i r e e n • Phần phụ đại số với biến xi’ là Phần ph đại số ới biến ’ là g n E • Khai triển Shannon hàm f theo phần phụ đại E r e t u p m o o C

35 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

36 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Biểu diễn mạch luận lý tổ hợp

i

 Sử dụng trong các phần mềm thiết kế tự động

 Hỗ trợ phát hiện hazard

0 0 0 2 • Biểu diễn dưới dạng sơ đồ kết nối (schematic) g n • Bảng sự thật (Truth table) • Bảng sự thật (Truth table) n i r • Biểu thức boole e e n • BDD (binary decision diagram) g n E  Hiệu quả và dễ tính toán hơn bảng sự thật E r e t u p m o o C

37 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 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

i

 a’bd không là một minterm của hàm f(a, b, c, d) ễ

0 0 0 2 g n n i r e e n  abcd là một minterm của hàm f(a, b, c, d) g n E  Minterm được biểu diễn bằng mi, ví dụ m7 = a’bcd E ằ r • Một hàm boole ở dạng SOP được gọi là chuẩn tắc e t u (canonical) nếu mọi cube có biểu diễn duy nhất mà (canonical) nếu mọi cube có biểu diễn duy nhất mà p trong đó các biến ở dạng khẳng định hay phủ định m  abcd + a’bcd là một canonical abcd + a bcd là một canonical o o C

38 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 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

khẳ

đị h h

đó á biế ở d

à t định  (a+b+c)(a+b’+c) là một canonical (a b c)(a b c) là một canonical

i

• 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ó nếu không có cube nào chứa cube khác (không có cube dư thừa)

0 0 0 2 g n mà trong đó các biến ở dạng khẳng định hay phủ n hủ i r e e n • Maxterm là một tổng các biến mà trong đó mỗi biến g xuất hiện một lần ở dạng khẳng định hoặc phủ định n E • Một cube được gọi là dư thừa (redundant) nếu tập E r hợp các đỉnh mà nó biểu diễn là con của tập hợp các e t u đỉnh được biểu diễn bởi một cube khác đỉnh được biểu diễn bởi một cube khác p m o o C

39 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Các thuật ngữ (3)

• Prime implicant

 Là implicant không thể suy ra từ implicant khác 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 trong cube khác

i

• Essential prime implicant

bởi bất kỳ tập hợp các implicant nào

0 0 0 2 g n n i r e e n g n E  Là prime implicant mà không bị bao phủ (covered)  Là prime implicant mà không bị bao phủ (covered) E r e t u p m o o C

40 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Ví dụ

• Cube ab là redundant

trong biểu thức

p

f(a,b,c) = ab + ac’ + bc • Essential prime

i

implicant  ac’, bc

CD

AB

00 01 11 10 1 x

1

0

0

1

1

1

0

x

x

0

00 00 01 11

1

0

1

10 0

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

41 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

42 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Đơn giản hóa biểu thức Boole

• f1(a, b, c) = abc + a’bc + abc’ + a’b’c + ab’c’ +

’b’

• f2(a, b, c) = bc + ab +

• Một hàm boole SOP được gọi là tối giản (mininal) nếu và chỉ (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 ít nhất

i

• 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ố Dùng các tính chất đại số Boole

 Dùng các công cụ

(Espresso II, mis II…) (Espresso-II, mis-II…)

0 0 0 2 g n a’b’c’ n ’ i r e e n a b + b c a’b’ + b’c’ • f1 = f2 g n E f1: canonical • f1: canonical E • f2: minimal r e t u p m o o C

43 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Bìa Karnaugh (K-map)

CD CD

i

AB

AB

00 01 11 10 1 0

0

x

00 01 11 10 1 0

0

x

0

0

1

1

00 01

0

1

1

0

00 00 01

1 1

1 1

1 1

0 0

11 11

1 1

1 1

0 0

1 1

11 11

0

0

0

1

10

0

0

1

0

10

0 0 0 2 • Dùng tối giản các mạch lên đến 5 hoặc 6 biến g n • Sum of product • Sum of product n i r • Product of sum e e CD CD n g n E E r e t u p m o o C

bcd và abd là prime implicant nhưng không là essential implicant Advanced Digital Design with the Verilog HDL – chapter 2

44 ©2009, Pham Quoc Cuong

9 Quine McClusky

• Giải thuật thực hiện qua hai bước

 Tìm các prime implicant Tìm các prime implicant  Tìm bao nhỏ nhất của hàm

i

thực hiện giải thuật Ví d dcbaF ,(

)13,10,9,8,6,5,4(

)15,7,0(

m

d

)

,

,

0 0 0 2 g n n i r e e n • Với mỗi bước sử dụng một bảng 2 chiều để • Với mỗi bước sử dụng một bảng 2 chiều để g n E • Ví dụ E r e t u p m o o C

45 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Tìm prime implicants (1)

Implicant table

( ) 0000 d(0)

• Điền vào cột 1 của bảng implicant các tổ hợp làm cho hàm bằng 1 và các tổ hợp don’t care

0100 m(4) 1000 m(8) 1000 m(8)

i

0101 m(5) 0110 m(6) 0110 m(6) 1001 m(9) 1010 m(10)

0111 d(7) 1101 m(13)

1111 m(15)

0 0 0 2 g n n i r e e n • Nhóm các tổ hợp theo g thứ tự tăng dần số n E lượng các bit 1 lượng các bit 1 E r e t u p m o o C

46 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Tìm prime implicants (2)

Implicant table

p

0000 d(0) 

( )

ế

0-00 * -000 *

01-- *

0100 m(4)  1000 m(8)  1000 m(8)

hi hậ

i

• So sánh từng cặp tổ hợp thuộc hai nhóm N bit 1 và y N+1 bit 1, nếu 2 tổ hợp này khác nhau 1 biến thì thay biến này bằng dấu “_” và thêm vào cột tiếp theo Đá h dấ hợp đã được kết hợp

-1-1 *

010-  010 01-0  100- * 10 0 10-0 *

ột tiế th

á

h

0101 m(5)  0110 m(6)  0110 m(6) 1001 m(9)  1010 m(10) 

0111 d(7)  1101 m(13) 

01-1  -101  101 011-  1-01 

1111 m(15) 

• Các tổ hợp được đánh dấu • Các tổ hợp được đánh dấu (*) là các prime implicant

0 0 0 2 g n n i r e e n • Đánh dấu ghi nhận các tổ á tổ g • Tiếp tục thực hiện kết hợp n t ê E trên các cột tiếp theo cho E đến khi không thể sinh ra r cột mới e t Tổ hợp nào không thể thực u • Tổ hợp nào không thể thực hiện kết hợp được đánh p dấu (*) m o o C

-111  11-1 

47 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Tìm tập bao nhỏ nhất (1)

5

6

8

9

10

13

4

x

0_00

_000

x

100_

x

x

i

10_0

x

x

1_01

x

x

01__

x

x

x

• Đánh dấu x tại các vị trí On_Set được bao bởi On Set được bao bởi prime implicant

_1_1 1 1

x x

x x

0 0 0 2 • Tạo bảng coverage g table có hàng là các n n prime implicant, cột là i r e các tổ hợp làm cho hàm e n đúng (On_Set) (không (O S t) (khô đú bao gồm các tổ hợp g n E don t care) don’t care) E r e t u p m o o C

48 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Tìm tập bao nhỏ nhất (1)

5

6

8

9

10

13

4

x

0_00

_000

x

100_

x

x

i

10_0

x

x

• Nếu cột chỉ có 1 dấu x thì prime implicant trên hà essential prime implicant và sẽ xuất p ca t à sẽ uất hiện trong hàm tối giản cuối cùng ấ ả

1_01

x

X

bao bởi các essential prime implicant prime implicant

01__

x

x

x

• Tìm tập hợp nhỏ các

_1_1 1 1

x x

x x

prime implicant có thể bao hết các cột còn lại

ế

0 0 0 2 g n hàng tương ứng là n là t i r e e n g n E • Xóa tất cả các cột được E r e t u p m o o C

49 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Tìm tập bao nhỏ nhất (1)

5

6

8

9

10

13

4

x

0_00

BA

DC A DB A F

_000

x

i

100_

x

x

10_0 10 0

x

x

1_01

x

X

các prime implicant là O(3m) (m là số biến)

01__

x

x

x

tập bao nhỏ nhất là O(2n) (n số prime implicant) số prime implicant)

_1_1

x

x

0 0 0 2 g n n i r e e n g n E • Độ phức tạp giải thuật tìm E r e t u • Độ phức tạp giải thuật tìm p m o o C

50 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

51 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Glitches và Hazards

i

ấ ồ

ề ầ

ế

bộ

0 0 0 2 • Glitches là những sự chuyển trạng thái không g n mong muốn ở ngõ ra của một mạch kết hợp mong muốn ở ngõ ra của một mạch kết hợp n i trong điều kiện ngõ vào không làm thay đổi r e ngõ ra ngõ ra e n • Một mạch có thể xảy ra glitches khi đưa tín g n E hiệu ngõ vào xác định được gọi là có hazard hiệu ngõ vào xác định được gọi là có hazard E • Không ảnh hưởng nhiều trên mạch đồng bộ r e t u • Là vấn đề cần giải quyết trên mạch bất đồng p m o o C

52 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Hazard tĩnh

• Ngõ ra thay đổi trên thực tế trong khi theo lý thuyết

là không thay đổi

g

y

y

y

• Xảy ra do sự trể lan truyền • Hazard có xảy ra hay không tùy thuộc vào các mẫu

i

tín hiệu ngõ vào

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

53 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Loại bỏ Hazard tĩnh

Có Hazard

• Thêm vào các cube dư thừa (hazard cover cube)

• Giả sử tín hiệu ngõ vào ổ

i

0 1 0 0

0 1 0 0

AB C 00 01 01

AB C 00 01 01

1 1

0 0

1 1

0 0

11

11

1 1

1 1

10 10

10 10

10 0 1

10 0 1

Không Hazard

0 0 0 2 g n n i r e e n chỉ thay đổi 1 bit g n E E r e t u p m o o C

54 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Hazard động

• Theo lý thuyết sự thay đổi trên ngõ vào chỉ gây ra một thay

• Là kết quả của nhiều hazard tĩnh trên mạch đa mức

i

• Nếu mạch không có hazard tĩnh thì không có hazard động

0 0 0 2 đổi ngõ ra, nhưng thực tế có hai hay nhiều sự thay đổi ngõ ra g n trước khi đạt đến giá trị mong muốn trước khi đạt đến giá trị mong muốn n i r e (multilevel circuit) e n • Khó để loại bỏ i bỏ Khó để l g n E E r e t u p m o o C

55 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Loại bỏ hazard động

• Theo các bước

 Chuyển mạch nhiều mức

về mạch hai mức  Tìm và loại bỏ tất cả

hazard tĩnh hazard tĩnh

i

AB C 0 1 0 1 AB 0 0 00 01

1

0

AB C 0 1 AB C 0 1 0 0 00 01

0

1

11

1 1

11

1 1

10

10

10

10

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

56 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Hazard – Tổng kết

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

57 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Nội dung chính

i

ể • Glitch và Hazard • Các khối cơ bản cho thiết kế luận lý

0 0 0 2 • Luận lý tổ hợp và đại số Boole g n • Qui tắc tối giản đại số Boole • Qui tắc tối giản đại số Boole n i r • Biểu diễn mạch luận lý tổ hợp e e n • Đơn giản hóa biểu thức Boole g n E E r e t u p m o o C

58 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Cấu trúc NAND-NOR

i

NAND NAND

• Chuyển mạch dạng POS về NOR và Invert

 Tương tự như trên

T

ê

h

0 0 0 2 • Trong kỹ thuật CMOS, cổng AND và OR g n không được hiện thực hiệu quả bằng NAND, không được hiện thực hiệu quả bằng NAND, n i NOR r e e n • Chuyển mạch dạng SOP về NAND và Invert • Chuyển mạch dạng SOP về NAND và Invert  Thay các cổng AND bằng NAND g n  Đặt các invert trước các ngõ vào cổng OR E  Đặt các invert trước các ngõ vào cổng OR E r  Thay cổng OR có các invert ở ngõ vào bằng e t u p m o o C

59 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Ví dụ

i

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

60 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Multiplexers

• Chọn dữ liệu từ một trong nhiều ngõ nhập để đưa ra ngõ ra • Multiplexers có thể dùng để hiện thực các mạch tổ hợp

address[m-1:0]

m

Data_in[0]

address

i

Data out

Data in

Gate level schematic

. . .

sel .a + sel.b y out = sel’ a + sel b y_out

Multiplexer

Schematic symbol

y

Data_out = Data_in[address[k]]

0 0 0 2 g n n i r e e n g n E E r e t u Data_in[n-1] Data in[n-1] p m o o C

61 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Demultiplexers

• Ngược lại với multiplexer • Multiplexer và demultiplexer không làm biến đổi dữ liệu

address[m-1:0]

m

i

address

Data_out[0]

Data in

Data in

. . .

Data_out[n-1]

Demultiplexer

Schematic symbol Schematic symbol

Data_out[address[k]] = Data_in

0 0 0 2 g n n i r e e n g n E E r e t u p m o o C

62 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Encoders

i

• Thông thường chỉ một bit ở ngõ nhập “khẳng định” ở một thời điểm Priority encoder cho phép nhiều bit ở ngõ nhập đồng thời khẳng • Priority encoder cho phép nhiều bit ở ngõ nhập đồng thời “khẳng định”

Data in[0] Data in[0]

Data out

Data out Data out

Data in Data in

m

m

n

Encoder n > m n > m

Encoder n > m >

. . . Data in[n-1] D t [ 1] i

0 0 0 • Biến đổi dữ liệu ngõ vào và đưa ra ngõ ra 2 g • Ánh xạ 1-1 giữa dữ liệu ngõ vào và dữ liệu ngõ ra n • Kích thước dữ liệu nhập lớn hơn kích thước dữ liệu xuất n ấ i r e e n g n E E r e t u p m o o C

63 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2

9 Decoder

• Ánh xạ 1-1 một mẫu dữ liệu đầu vào thành một mẫu

dữ liệu đầu ra

• Thông thường kích thước ngõ ra lớn hơn kích thước

i

Data out[0]

Data in

m

Data in

Data out

m

n

Decoder n > m

. . . Data out[n-1]

Decoder n > m n > m

0 0 0 2 g n n i r e ngõ vào e n • Priority decoder g n E E r e t u p m o o C

64 ©2009, Pham Quoc Cuong Advanced Digital Design with the Verilog HDL – chapter 2