MẠCH TỔ HỢP

Đại cương

 Mạch tổ hợp gồm một số các cổng luận lý kết   nối với nhau với một tập các ngõ vào và ra.

 Mạch tổ hợp chuyển thông tin nhị phân từ dữ

liệu nhập thành dữ liệu xuất định trước.

 Mạch tổ hợp dùng trong các máy tính số để  tạo ra các quyết định điều khiển nhị phân và  cung cấp các linh kiện số để xử lý dữ liệu.

Lược đồ mạch tổ hợp

 Mạch tổ hợp có thể được xác định qua bảng  chân trị với n biến nhập và m biến xuất; và có  thể xác định qua m hàm boolean.

n biến vào

m biến ra

Mạch tổ hợp

Thiết kế mạch tổ hợp

 Thiết kế mạch tổ hợp bắt đầu từ việc xác định  bài toán và kết thúc là lược đồ mạch luận lý.  Quy trình gồm các bước:

1. Lập bảng chân trị xác định mối quan hệ  giữa nhập và xuất.

2. Xác định hàm Boolean đã đơn giản cho  mỗi ngõ ra.

3. Vẽ lược đồ luận lý.

Mạch cộng

 Mạch nửa cộng:

Mạch tổ hợp thực hiện phép cộng số học  2bit được goị là mạch nửa cộng.

Các biến xuất mạch nửa cộng là tổng nhớ.  Cần có hai biến xuất là vì

1 + 1 = 10 chiếm 2 ký số

Gọi x, y là hai biến nhập; S (tổng) và C (nhớ)  là hai biến xuất.

Mạch cộng (tt)

 C là 0 trừ khi hai ngõ vào là 1.  Ngõ ra S biểu diễn bít có nghĩa thấp nhất của

tổng.

y

S = x’y + xy’ = x ¯ C = xy Bảng chân trị

Lược đồ

S

C

Mạch cộng (tt)

 Mạch toàn cộng:  Mạch toàn cộng là mạch tổ hợp thực hiện phép

cộng 3 bit. Gồm 3 ngõ vào và 2 ngõ ra.

 Hai ngõ vào x, y biểu diễn hai bit cần cộng, ngõ

vào 3 z biểu diễn bit nhớ.

 Hai ngõ ra là S (tổng) và C (nhớ).  Trị các biến xuất do phép cộng các bit nhập.  Khi tất cả các bít nhập là 0 thì xuất là 0  Ngõ ra S là 1 khi có 1 hoặc tất cả ngõ vào là 1.  Ngõ ra C là 1 khi hai hoặc 3 ngõ vào là 1

Mạch cộng (tt)

Bảng chân trị mạch toàn cộng

y nên:

Vì x’y + xy’ = x ¯  y ¯ S = x ¯  z C = xy + (x’y ¯

xy’)z

S= x’y’z + x’yz’ + xy’z’ + xyz   = x ¯ y ¯ z

C = xy + xz + yz    = xy + (x’y ¯ xy’)z

Mạch cộng (tt)

 Các ô trong bảng đồ S không thể kết hợp vì

không có các ô liền kề.

 Ngoài ra S bằng 1 khi số ngõ vào 1 là lẻ nên

S là hàm lẻ.

 Các ô trong bảng đồ C có thể kết hợp theo

nhiều cách khác nhau như:

C = xy + (x’y + xy’)z

Với cách này cho phép ghép 2 mạch nữa cộng

thành mạch cộng.

Mạch giải mã và mã hoá

 Mạch giải mã:

­ Là mạch tổ hợp đổi thông tin nhị phân với n ngõ  nhập thành 2n ngõ xuất. ­ Nếu ngõ nhập có một số tổ hợp không dùng thì  số ngõ ra có thể ít hơn 2n ; mạch giải mã này gọi  là mạch giải mã n –m, với m ≤ 2n ­ Mục đích của mạch giải mã là tạo ra 2n (hoặc ít  hơn) tổ hợp nhị phân của n biến nhập. ­ Khi các biến nhập tạo số nhị phân có trị k thì  ngõ ra thứ k sẽ cao, các ngõ khác sẽ thấp. ­ Mạch giải mã có n nhập và m xuất còn gọi là  mạch giải mã n x m

Mạch giải mã và mã hoá (tt)

Sơ đồ mạch giải mã

Mạch toàn cộng

Mạch giải mã và mã hoá (tt)

 Mạch giải mã cổng NAND:

­ Một số mạch giải mã tạo ra từ cổng NAND  thay vì AND. Nó tạo ra ngõ xuất theo dạng  đảo. ­ Ngoài ra ta có thể ghép hai hoặc nhiều  mạch nhỏ để tạo ra mạch lớn hơn

Mạch giải mã và mã hoá (tt)

 Mạch mã hoá:

­ Mạch mã hóa thực hiện tác vụ ngược lại với  mạch giải mã.

­ Mạch mã hóa có 2n (hoặc ít hơn) ngõ nhập  và n ngõ nhập.

­ Ngõ xuất tạo mã nhị phân tương ứng trị  nhập.

­ Giả sử chỉ có một ngõ vào 1 tại một thời  điểm. Nếu ngõ đó là ngõ thứ k thì các ngõ tạo  thành số nhị phân trị k.

Mạch dồn

 Là mạch tổ hợp nhận thông tin từ 1 trong 2n

ngõ nhập và đưa ra ngõ xuất.

 Việc xác định đường nhập vào được xuất do

các ngõ nhập chọn.

 Mạch dồn 2n­1 có 2n nhập, 1 xuất và n ngõ

nhập chọn.

RÚT GỌN HÀM BOOLEAN

= +

F A B , (

)

A AB

A

F

B

=

= +

+

+

(

F A AB A B B + =

AB ) = +

+

+

AB AB AB AB A B

A

F

B

RÚT GỌN HÀM BOOLEAN

 Hai hàm Boolean bằng nhau khi với

cùng ngõ vào chúng cho ngõ ra giống  nhau.

 Khi thực hiện mạch, ta nên đưa hàm

Boolean về dạng tối ưu nhất

 Điều đó giúp thực hiện hàm Boolean với  số cổng ít nhất, giảm chi phí thực hiện  và tăng tốc độ của mạch.

DẠNG CHÍNH TẮC SOP

Condition that a is 0, b is 0, c is 1.

a b c F

• • a b c • • a b c • • a b c

0 0 0 0 0 1 0 1 0 0 1 1

0 1 1 1

Function F is true if any of these and-terms are true!

1 0 0 0

• • a b c • • a b c

1 0 1 1

1 1 0 1 OR

1 1 1 0

Sum-of-Products form (SOP)

= + + + + F • • a b c ( ) • • a b c ( ) • • a b c ( ) • • a b c ( ) • • a b c ( )

CÁC DẠNG CHÍNH TẮC

ủ d ng

ế ở ạ

M t ộ minterm là m t tích c a các bi n ngõ vào, các bi n ế ng ho c là bù. bình th ặ

ườ

Note: Binary ordering

a b c F

0 0 0 0 0 1 0 1 0 0 1 1

0 1 1 1

1 0 0 0

1 0 1 1

D ng chính t c 1 (SOP) g m các minterm ạ OR l

i v i nhau

ạ ớ

• • a b c • • a b c • • a b c • • a b c • • a b c • • a b c • • a b c • • a b c

1 1 0 1

+

+

+

1 1 1 0

a b c

)

(

)

(

)

(

• • a b c

• • a b c

• • a b c

)

a b c ( m + m + m + m + m

3

5

6

2

= m0 = m1 = m2 = m3 = m4 = m5 = m6 = m7 + ( )

= F = F F =

1 m 1 2 3 5 6 ( , , , , )

(cid:229)

Two variables:

a 0 0 1 1 b minterm a’b’ = m0 0 a’b = m1 1 a b’ = m2 0 a b = m3 1

Three variables: minterm a’b’c’ = m0 a’b’c = m1 a’b c’ = m2 a’b c = m3 a b’c’ = m4 a b’c = m5 a b c’ = m6 a b c = m7

a b c 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Four variables:

a b c d minterm 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 a’b’c’d’ = m0 a’b’c’d = m1 a’b’c d’ = m2 a’b’c d = m3 a’b c’d’ = m4 a’b c’d = m5 a’b c d’ = m6 a’b c d = m7 a b’c’d’ = m8 a b’c’d = m9 a b’c d’ = m10 a b’c d = m11 a b c’d’ = m12 a b c’d = m13 a b c d’ = m14 a b c d = m15

RÚT GỌN HÀM Ở DẠNG  SOP

F

d ng SOP :

ở ạ

=

• • +

+

• • +

• • +

F

a b c

)

(

• • a b c

(

)

a b c

)

(

a b c

)

(

• • a b c

(

)

S d ng các đ nh lý c a đ i s Boolean đ rút g n

ạ ố

ử ụ

Nhóm các ph n t

gi ng nhau l

i v i nhau

ầ ử ố

ạ ớ

=

+••

+••

+

+••

+

F

cba

)

(

cba

)

(

•• cba

(

)

cba

)

(

•• cba

(

)

•• cba

(

)

=

+

+

+

F

cbaa )(

+• )

(

(

c

bac )(

+• )

(

cbaa )(

)

=

•+•

F

ba

cb (

)

(

)

+• cb ( )

Ta có x’+x = 1

DẠNG CHÍNH TẮC POS

A

B

C

0 0 0 0 0 1 0 1 0

A 0 0 0 0 1 1 1 1

B 0 0 1 1 0 0 1 1

C 0 1 0 1 0 1 0 1

F 0 0 0 1 1 1 1 1

0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

A + B + C = M0 A + B + C = M1 A + B + C = M2 A + B + C = M3 A + B + C = M4 A + B + C = M5 A + B + C = M6 A + B + C = M7

F

ở ạ

d ng chu n 2 (POS): ẩ

+

+

(

+ + A B C

)

(

(

A B C

)

1

2

0

= = = (cid:213)

• + + ) A B C F • • F M M M M(0, 1, 2) F

BẢN ĐỒ KARNAUGH (BÌA K)

 Ngoài 3 phương pháp biểu diễn hàm  Boolean đã nói, ta còn dùng bìa K để  biểu diễn hàm Boolean.

 Bìa K là 1 bảng các ô, mỗi ô ứng với  một tổ hợp các ngõ vào của hàm  Boolean, và chứa giá trị của hàm  Boolean tại giá trị ngõ vào đó

 Thực chất, bìa K là một bảng chân trị

BẢN ĐỒ KARNAUGH

F(A,B)

A

0

1

B

1

0

0

2-variable K-map

00

10

1

0

1

Space for A’B’ Space for AB’

01

11

A 0 0 1 1

B 0 1 0 1

F 0 1 1 0

Space for A’B Space for AB

A

B n đ Karnaugh có th m r ng đ n 4 bi n ể ở ộ ế ế ả ồ

AB

A 1

0

00

01

11

10

f(A,B,C)

CD

A BC

00

00

f(A,B,C,D)

000 100 m4

0000 0100 m4

m0

m0

1100 1000 m12 m8

01

01

001 101 m5

0001 0101 m5

m1

m1

1101 1001 m13 m9

D

C

11

11

011 111 m7

0011 0111 m7

m3

m3

1111 1011 m15 m11

B

C

10

10

010 110 m6

0010 0110 m6

m2

m2

1110 1010 m14 m10

B

3-variable K-map

4-variable K-map

F(A,B,C,D) = A’B’CD + AB’CD’ + A’BCD + ABCD’ + ABC’D

A

F (A,B,C) = A’B’C’ + A’BC + AB’C’ + ABC’

AB

00

01

11

10

CD

f(A,B,C)

00

0

A 1

A BC

01

00

0 0 0 0

D

11

01

1 1 0 0 1 0

C

C

10

11

1 1 0 0 0 0

B

B

10

0 0 1 1 1 0

4-variable K-map

3-variable K-map

0 1

 Trên bìa K, chỉ cần ghi hoặc giá trị 1,

hoặc giá trị 0

AB

AB

00

01

11

10

00

01

11

10

CD

CD

00

00

01

01

0 0 0 0

11

11

0 0 0 1

10

10

0 0 1 1

0 0 1 1

1

0

 Dùng bìa K để rút gọn hàm Boolean: B A

We can combine A’B and AB

0

0

1

1

0

1

B

0

1

A

F = A’B + AB = B

0

1

1

We can combine A’B’ and A’B

1

0

0

G = A’B’ + A’B = A’

Các ô trong vòng khuyên nh trên là các ô k c n

ế ậ

ư

0

Các ô k c n: ế ậ

C 1

00

01

A BC

Đ i di n ệ ố

11

B

10

Các ô kế cận là các ô chỉ  khác nhau ở một biến

Đối diện

A

F

0

C 1

C AB

1

1

00

1

01

0

B

11

0

0

A

10

0

1

F

0

C 1

C AB

1

1

00

In the K-map, adjacency wraps from left to right and from top to bottom

1

01

0

F(C,B,A) = A’BC’ + AB’C + A’B’

B

11

0

0

A

10

0

1

Same function, alternative “circling” Note: Larger circles are better

F(C,B,A) = A’C’ + B’C

Để rút gọn hàm Boolean bằng bìa K:

 Biểu diễn hàm lên bìa K  Nhóm các ô kế cận mang cùng giá trị 1 (hoặc 0)

thành các nhóm bằng các vòng khuyên  Số phần tử trong mỗi vòng khuyên là 2n  Một phần tử có thể nằm trong nhiều vòng khuyên  Số vòng khuyên là ít nhất, số phần tử là nhiều nhất.  Viết biểu thức rút gọn.