You are on page 1of 51

Chương 4

Hệ tổ hợp
Huỳnh Việt Thắng
Email: thanghv@dut.udn.vn
Url: https://sites.google.com/site/hvthangete/

Đà Nẵng, 2013-2020
Đà Nẵng, 2013
Nội dung
▪ Giới thiệu chung về hệ tổ hợp
▪ Mạch mã hóa (Encoder)
▪ Mạch giải mã (Decoder)
▪ Mạch ghép kênh (MUX)
▪ Mạch phân kênh (DEMUX)
▪ Mạch số học
– Mạch cộng (Adder)
– Các mạch số học khác
▪ Mạch so sánh (Comparator)
▪ Mạch tạo và kiểm tra chẵn/lẻ (Parity Generator/Checker)
2
Khái niệm chung
▪ Hệ tổ hợp (Combinational Circuits) là hệ có các ngõ
ra chỉ là các hàm logic theo ngõ vào:
– ngõ vào thay đổi trạng thái lập tức làm cho ngõ ra thay đổi
trạng thái ngay (giả sử bỏ qua thời gian trễ của các phần tử
logic) mà không chịu ảnh hưởng của trạng thái ngõ ra
trước đó.
▪ Các cổng logic AND, OR, NOR, NAND, XOR,
XNOR là các phần tử logic cơ bản, và còn được gọi là
hệ tổ hợp đơn giản.
▪ Các cổng NOR và NAND là các hệ tổ hợp đầy đủ.

3
Đặc điểm hệ tổ hợp
▪ Xét một hệ tổ hợp có n ngõ vào và m ngõ ra

▪ Đặc điểm cơ bản của hệ tổ hợp là tín hiệu ra tại mỗi


thời điểm chỉ phụ thuộc vào giá trị các tín hiệu vào ở
thời điểm đó mà không phụ thuộc vào giá trị các tín
hiệu ngõ ra ở các thời điểm trước đó.
4
Trình tự thiết kế Hệ tổ hợp
1. Từ yêu cầu thực tế của hệ tổ hợp ta lập bảng giá trị
(Truth Table) mô tả hoạt động của mạch (hệ tổ hợp).
2. Dùng các phương pháp tối thiểu (đại số Boole hoặc/và Bìa
Karnaugh) để tối thiểu hoá các hàm logic
3. Thành lập sơ đồ logic (dựa vào pt logic đã tối giản)
4. Thực hiện sơ đồ logic bằng HDL (Verilog/VHDL)
5. Mô phỏng mạch (nếu cần)
6. Thi công mạch thực tế và kiểm tra mạch thực tế

5
Các mạch tổ hợp thông dụng
▪ Mạch mã hóa/Mạch giải mã
▪ Mạch giải mã LED 7 đoạn
▪ Mạch ghép kênh (MUX), Mạch phân kênh (DEMUX)
▪ Mạch số học (Adder & Subtractor)
▪ Mạch so sánh, Mạch kiểm tra Parity
▪ v..v..

6
Mạch mã hóa (Encoder)
▪ Mạch mã hoá (ENCODER) là mạch có nhiệm vụ biến
đổi những ký hiệu quen thuộc với con người sang
những ký hiệu quen thuộc với máy tính và hệ thống số
được gọi là các từ mã.
▪ Phân loại
– Mạch mã hóa nhị phân
– Mạch mã hóa thập phân
– Mạch mã hóa (nhị phân) ưu tiên

7
Mạch mã hóa nhị phân
▪ Dùng từ mã nhị phân n-bit mã hóa cho 2n tín hiệu vào
▪ Xét trường hợp mã hóa nhị phân từ 8 sang 3 (8 → 3)
– 8 tín hiệu vào (x0, ..., x7)
– 3 tín hiệu ra (C, B, A)
▪ Biến đổi tín hiệu vào thành
từ mã nhị phân tương ứng
ở ngõ ra
▪ Khi một tín hiệu vào ở mức logic tích cực thì ở ngõ
ra xuất hiện từ mã nhị phân tương ứng với ngõ vào đó
▪ Giả thiết tại mỗi thời điểm chỉ có 1 tín hiệu vào ở
mức logic tích cực. 8
Mạch mã hóa nhị phân (tt)
▪ Hoạt động cụ thể
– Ngõ vào x0 ở mức tích cực → ngõ ra CBA = 000
– Ngõ vào x1 ở mức tích cực → ngõ ra CBA = 001
– ..v..v..
– Ngõ vào x7 ở mức tích cực → ngõ ra CBA = 111
▪ Có 2 loại mức logic tích cực (đối với ngõ vào):
– Tích cực mức Logic 0
– Tích cực mức Logic 1
▪ Chọn mức tích cực ở ngõ vào là mức 0 hay 1 là tùy
thuộc vào từng trường hợp thiết kế cụ thể

9
Mạch mã hóa nhị phân (tt)
▪ Giả sử chọn mức tích cực ngõ vào là mức logic 1
▪ Lưu ý: tại một thời điểm chỉ có 1 ngõ vào ở mức
logic tích cực (trong ví dụ này là mức 1)
▪ Bảng giá trị:

10
Mạch mã hóa nhị phân (tt)
▪ Phương trình logic theo dạng CT1 và sơ đồ logic

11
Các trường hợp mở rộng
▪ Nếu chọn mức tích cực ngõ vào là mức logic 0?
→ xem bài giảng
▪ Câu hỏi: để mã hóa N ngõ vào thì cần sử dụng tối
thiểu bao nhiêu bit (tín hiệu ra)?
→ log2N
▪ Mạch mã hóa thập phân: xem bài giảng

12
Mạch mã hóa (nhị phân) ưu tiên
(Priority Encoder)
▪ Khi từ 2 tín hiệu đầu vào cùng tác động tích cực?
▪ Thiết lập thứ tự ưu tiên cho các ngõ vào
▪ Khi nhiều tín hiệu đầu vào cùng tác động tích cực, tín
hiệu đầu vào có mức độ ưu tiên cao hơn sẽ được ưu
tiên xử lý trước  tín hiệu ra sẽ là từ mã nhị phân của
đầu vào tích cực có mức ưu tiên cao nhất
▪ Cần quy ước mức độ ưu tiên khi thiết kế
▪ Nắm rõ mức độ ưu tiên của các đầu vào khi sử dụng
vi mạch có sẵn
13
Mạch mã hóa ưu tiên 4 → 2
▪ Giả thiết
– Mức tích cực đầu vào: 1
– x3 ưu tiên cao nhất,
– x0 ưu tiên thấp nhất,
▪ Bảng giá trị và phương trình logic theo CT1

14
Mạch mã hóa ưu tiên 4 → 2 (tt)
▪ Sơ đồ mạch

▪ Vi mạch mã hóa ưu tiên: 74LS147, 74LS148


▪ Mạch mã hóa ưu tiên được ứng dụng để mã hóa yêu
cầu ngắt (interrupt) trong các hệ thống vi xử lý
15
Các trường hợp mở rộng
▪ Thiết kế mạch mã hóa ưu tiên từ 8 sang 3 (8 →3)
– Mức tích cực ngõ vào là logic 0 / logic 1?
– Mức độ ưu tiên thay đổi
• x0 ưu tiên cao nhất
• x7 ưu tiên thấp nhất
– Thực hiện mạch hoàn toàn bằng cổng NAND (hoặc cổng
NOR) có 2 ngõ vào?
▪ Viết module Verilog HDL để thực hiện các mạch mã
hóa đã biết?

16
Bài tập tại lớp
▪ Thiết kế mạch mã hóa nhị phân có ưu tiên từ 4 sang 2
có mức tích cực ngõ vào là mức logic cao, ngõ vào x0
có mức ưu tiên cao nhất, thực hiện mạch thiết kế chỉ
sử dụng các cổng NAND/NOR?

▪ Yêu cầu:
1. Trình bày sơ đồ khối của mạch?
2. Bảng giá trị (Truth Table)
3. Phương trình logic
4. Sơ đồ mạch thực hiện
5. Sơ đồ mạch thực hiện bằng cổng NAND (hoặc NOR)
17
Gợi ý giải Bài tập
▪ Thiết kế mạch mã hóa nhị phân có ưu tiên từ 4 sang 2
có mức tích cực ngõ vào là mức logic cao, ngõ vào x0
có mức ưu tiên cao nhất, thực hiện mạch thiết kế chỉ
sử dụng các cổng NAND/NOR?
Ưu tiên tăng dần
x0 x1 x2 x3 B A
1 X X X 0 0
0 1 X X 0 1
0 0 1 X 1 0
0 0 0 1 1 1

18
Các mạch giải mã (Decoder)
▪ Mạch giải mã nhị phân (Binary Decoder)

▪ Mạch giải mã đèn LED 7 đoạn


– LED loại Anode chung (cực dương chung)
– LED loại Kathode chung (cực âm chung)

19
Mạch giải mã nhị phân
▪ Xét mạch giải mã nhị phân 2 sang 4 (2 → 4)
▪ Hoạt động: khi xuất hiện từ mã nhị phân n-bit ở đầu
vào → duy nhất 1 đầu ra (trong số 2n đầu ra) tương
ứng với từ mã nhị phân đó sẽ ở mức logic tích cực,
các đầu ra còn lại ở mức logic không tích cực.
→ lựa chọn 1 trong số 2n đầu ra
▪ Mức logic tích cực đầu ra: theo quy ước
– Logic 0
– Logic 1
▪ Có n tín hiệu vào (từ mã n bít) sẽ có thể giải mã được
2n tín hiệu ra  cho phép chọn duy nhất 1 trong số 2n
tín hiệu ra (ở mức logic tích cực) 20
Mạch giải mã nhị phân (tt)
▪ Trường hợp 1: mức tích cực ngõ ra là logic 1
▪ Sơ khối và bảng giá trị:

▪ Phương trình logic:

21
Mạch giải mã nhị phân (tt)
▪ Trường hợp 2: mức tích cực ngõ ra là logic 0
▪ Sơ khối và bảng giá trị:

▪ Phương trình logic (CT2):

22
Mạch giải mã nhị phân (tt)
▪ Sơ đồ mạch thực hiện
đối với mạch giải mã
với ngõ ra tích cực thấp

23
Vi mạch giải mã nhị phân
▪ Vi mạch giải mã nhị phân từ 2 sang 4: 74LS139
▪ Vi mạch giải mã nhị phân từ 3 sang 8: 74LS138
– 3 tín hiệu vào, 8 tín hiệu ra,
– Cho phép chọn 1 trong số 8 đầu ra
– Mức tích cực đầu ra là mức logic 0
▪ Vi mạch giải mã nhị phân từ 4 sang 16: 74154
– 4 tín hiệu vào, 16 tín hiệu ra,
– Cho phép chọn 1 trong số 16 đầu ra
– Mức tích cực đầu ra là mức logic 0
▪ Ứng dụng: dùng để giải mã địa chỉ bộ nhớ trong thiết
kế bộ nhớ cho các hệ thống vi xử lý (Chương 5).
24
Giải mã LED 7 đoạn
▪ LED 7 đoạn

25
Giải mã LED 7 đoạn (tt)
▪ LED 7 đoạn loại Anode chung (cực + chung)
▪ LED 7 đoạn loại Kathode chung (cực – chung)

▪ Ứng với mỗi loại LED có 1 mạch (vi mạch) giải mã /


điều khiển riêng
26
Giải mã LED Anode chung (+ chung)
▪ Các cực dương (Anode) của các đoạn LED nối chung
và đưa lên mức logic 1 (5V) nên
– để điều khiển LED sáng: chân điều khiển = 0
– để điều khiển LED tắt: chân điều khiển = 1

▪ Ví dụ: hiển thị số “0”: a=b=c=d=e=f=0; g=1.


27
Giải mã LED Anode chung (tt)
▪ Bảng chân trị của mạch giải mã LED anode chung

28
Giải mã LED Anode chung (tt)
▪ Phương trình logic các tín hiệu điều khiển a, b, c, d, e,
f, g theo các ngõ vào (D,C,B,A)

29
Giải mã LED Anode chung (tt)

30
Giải mã LED Anode chung (tt)

▪ Giải mã LED 7 đoạn loại Kathode chung (cực – chung) ? Xem


bài giảng (bài tập về nhà cho SV)
▪ Viết các module Verilog thực hiện mạch giải mã đèn LED 7
đoạn loại Anode chung và Kathode chung?
31
Các IC giải mã LED bảy đoạn
▪ 7447: Vi mạch giải mã LED 7 đoạn loại Anode chung
(Common Anode Display)
▪ 4511: Vi mạch giải mã LED 7 đoạn loại Cathode
chung (Common Cathode Display)

▪ BTVN:
– Tìm datasheet của các vi mạch giải mã LED 7 đoạn thông
dụng 7447 và 4511?
– Tìm sơ đồ mạch ứng dụng của các vi mạch giải mã LED 7
đoạn dùng 7447 và 4511

32
33
▪ Mạch ghép kênh (MUX)
▪ Mạch phân kênh (DEMUX)
▪ Mạch cộng/trừ (Adder/Subtractor)

34
Mạch ghép kênh (MUX)
▪ Mạch ghép kênh (mạch chọn kênh) là mạch có chức
năng chọn lựa 1 trong số N kênh ngõ vào để đưa đến
ngõ ra duy nhất (gọi là đường truyền chung)
▪ Tiếng Anh: MUltipleXer – viết tắt: MUX

▪ Chuyển dữ liệu song song đầu vào thành dữ liệu nối


tiếp ở đầu ra
35
Mạch ghép kênh (tt)
▪ Xét mạch ghép kênh có 4 ngõ vào, 1 ngõ ra như hình
vẽ (MUX 4→1):
– x1, x2, x3, x4: các ngõ vào dữ liệu
– y : ngõ ra (đường truyền chung)
– c1, c2: các ngõ vào điều khiển
▪ Tùy thuộc vào 2 tín hiệu vào điều khiển c1, c2 mà các
ngõ vào xi sẽ (lần lượt) được nối với ngõ ra chung y.

36
Mạch ghép kênh (tt)
▪ Bảng giá trị, phương trình logic, sơ đồ mạch

37
Bài tập: MUX21
▪ Thiết kế mạch ghép kênh từ 2 sang 1 (MUX21) cho
phép lựa chọn 1 trong 2 kênh ngõ vào (w0 và w1) để
nối với đầu ra chung duy nhất?

S: ngõ vào điều khiển chọn kênh


w0 và w1: các kênh vào
f: đầu ra

Yêu cầu:
+ Bảng giá trị
+ Phương trình logic
+ Sơ đồ mạch
+ Viết chương trình Verilog mô tả mạch
38
MUX21

Viết chương trình Verilog mô tả mạch này?


39
Mạch phân kênh (DEMUX)
▪ Mạch phân kênh (mạch tách kênh) – Demultiplexer
(DEMUX) có nhiệm vụ tách dữ liệu từ 1 đầu vào
chung thành ra N tín hiệu ra khác nhau.
▪ Mạch DEMUX 1→4

40
Mạch phân kênh (tt)
▪ Bảng giá trị, phương trình logic, sơ đồ mạch

Khi x=1: mạch DEMUX thực hiện chức


năng của mạch giải mã nhị phân 41
MUX và DEMUX
▪ Trường hợp tổng quát:
– Bộ MUX: 2n ngõ vào, 1 ngõ ra chung, cần n tín hiệu điều
khiển chọn kênh
– Bộ DEMUX: 1 đường truyền chung ở ngõ vào, 2n ngõ ra,
cần n tín hiệu điều khiển chọn kênh
▪ Các mạch MUX và DEMUX có số lượng tín hiệu
điều khiển bằng số lượng kênh dữ liệu: xem bài giảng

42
More on MUX: MUX41 (4-to-1)

43
More on MUX (cont.)
▪ Sử dụng các bộ
MUX21 để thực hiện
bộ MUX41

▪ Yêu cầu: Hoàn thành


u1 Truth Table của
mux1 mạch? Phân tích hoạt
động của mạch? Viết
u2 chương trình Verilog
mux3
mô tả mạch?

mux2 44
Mở rộng
▪ Ghép các bộ MUX từ 2-sang-1 để thực hiện bộ MUX
từ 8-sang-1?
▪ Ghép các bộ MUX từ 2-sang-1 để thực hiện bộ MUX
từ 16-sang-1?
▪ Ghép các bộ MUX từ 4-sang-1 để thực hiện bộ MUX
từ 16-sang-1?
▪ Tương tự: các ví dụ cho mạch DEMUX, ghép các bộ
DEMUX nhỏ để tạo thành bộ DEMUX với số kênh
ngõ ra lớn? (ghép nhiều DEMUX 1-to-2 tạo thành bộ
DEMUX 1-to-4)
▪ Viết các chương trình Verilog thực hiện các thiết kế
trên, mô phỏng bằng ModelSIM 45
More on MUX (cont.)
▪ Yêu cầu: hoàn thành
True Table của mạch?

▪ Viết chương trình bằng


Verilog HDL thực hiện
các mạch MUX đã học?

46
Thực hiện hàm tổ hợp bằng phương pháp tra
bảng - Lookup Table (LUT) sử dụng bộ MUX

MUX 8-to-1
a
b

c
Vi mạch ghép kênh trong thực tế
▪ Các vi mạch ghép kênh thuộc họ TTL gồm:
– 74150 ghép kênh 16 → 1,
– 74151 và 74152 ghép kênh 8 → 1,
– 74153 ghép kênh 4 → 1,
– 74157 và 74158 ghép kênh 2 → 1.

48
Mạch số học
▪ Thực hiện các phép toán: +, -, *, / số nhị phân
▪ Cơ sở xây dựng ALU (Arithmetic Logic Unit)
▪ Mạch cộng
▪ Mạch trừ
▪ Mạch nhân xây dựng trên cơ sở mạch cộng
▪ Mạch chia xây dựng trên cơ sở mạch trừ

49
Mạch số học
▪ Thực hiện các phép toán: +, -, *, / số nhị phân
▪ Cơ sở xây dựng ALU (Arithmetic Logic Unit)
▪ Mạch cộng
– Mạch cộng bán phần (HA – Half Adder)
– Mạch cộng toàn phần (FA – Full Adder)
▪ Mạch trừ
– Mạch trừ bán phần (HS – Half Subtractor)
– Mạch trừ toàn phần (FS – Full Subtractor)
▪ Mạch nhân xây dựng trên cơ sở mạch cộng
▪ Mạch chia xây dựng trên cơ sở mạch trừ
50
Tổng kết chương 4
▪ Khái niệm và đặc điểm của hệ tổ hợp (Combinational
Circuits)
▪ Thiết kế hệ tổ hợp
– Lập bảng giá trị mô tả hoạt động của hệ
– Tối thiểu hoá các hàm logic
– Thành lập sơ đồ hệ tổ hợp
▪ Các mạch tổ hợp thông dụng
– MUX & DEMUX
– Encoder & Decoder
– 7 segment Decoder
– Adder
– Comparator 51

You might also like