Bài giảng Kỹ thuật số - Chương 3: Hệ tổ hợp
Mạch logic được chia làm 2 loại:
- Hệ tổ hợp (Combinational Circuit)
- Hệ tuần tự (Sequential Circuit).
Hệ tổ hợp là mạch mà các ngõ ra chỉ phụ thuộc vào giá
trị của các ngõ vào. Mọi sự thay đổi của ngõ vào sẽ làm ngõ ra
thay đổi theo
F.A C1 C2 C3 S0 S1 S2 S3 C4 Kết quả: - C4 = 1 kết quả là số dương - C4 = 0 kết quả là số âm 13 c. Bộ cộng/trừ nhị phân: M0 N0M1 N1M2 N2M3 N3 C0 x y zC S F.A x y zC S F.A x y zC S F.A x y zC S F.A C1 C2 C3 S0 S1 S2 S3 C4 Phép toán C0 yi 0 NiCỘNG TRỪ 1 Ni T = 0: Cộng T = 1: Trừ Ngõ vào điều khiển C0 = T yi = T⊕ Ni T 14 III. Hệ chuyển mã (Code Conversion): - Hệ chuyển mã là hệ tổ hợp có nhiệm vụ làm cho 2 hệ thống tương thích với nhau, mặc dù mỗi hệ thống dùng mã nhị phân khác nhau. - Hệ chuyển mã có ngõ vào cung cấp các tổ hợp mã nhị phân A và các ngõ ra tạo ra các tổ hợp mã nhị phân B. Như vậy, ngõ vào và ngõ ra phải có số lượng từ mã bằng nhau. Mã nhị phân B Hệ chuyển mã Mã nhị phân A 15 Vd: Thiết kế hệ chuyển mã từ mã BCD thành mã BCD quá 3. A B C D 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 W X Y Z X X X X X X X X X X X X X X X X X X X X X X X X 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 W = A + B (C + D) X = B ⊕ (C + D) Y = C ⊕ D Z = D A B C D W X Z Y 16 IV. Bộ giải mã (DECODER): 1. Giới thiệu: - Bộ giải mã là hệ chuyển mã có nhiệm vụ chuyển từ mã nhị phân cơ bản n bit ở ngõ vào thành mã nhị phân 1 trong m ở ngõ ra. Mã 1 trong m X0 X1 Xn-1 Mã nhị phân Y0 Y1 Ym-1 m = 2n - Có 2 dạng: ngõ ra tích cực cao (mức 1) và ngõ ra tích cực thấp (mức 0). - Với giá trị i của tổ hợp nhị phân ở ngõ vào, thì ngõ ra Yi sẽ tích cực và các ngõ ra còn lại sẽ không tích cực. 17 a. Bộ giải mã ngõ ra tích cực cao: X0 (LSB) X1 Y0 Y1 Y2 Y3 X1 X0 Y3 Y2 Y1 Y0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 Y0 = X1 X0 = m0 Y1 = X1 X0 = m1 Y2 = X1 X0 = m2 Y3 = X1 X0 = m3 X0 X1 Y0 Y1 Y2 Y3 Ngõ ra: Yi = mi (i = 0, 1, .., 2n-1) 18 b. Bộ giải mã ngõ ra tích cực thấp: X1 X0 Y3 Y2 Y1 Y0 0 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 X0 X1 Ngõ ra: Yi = Mi (i = 0, 1, .., 2n-1) X0 (LSB) X1 Y0 Y1 Y2 Y3 Y0 = X1 +X0 = M0 = m0 Y1 = X1 +X0 = M1 = m1 Y2 = X1 +X0 = M2 = m2 Y3 = X1 +X0 = M3 = m3 Y0 Y1 Y2 Y3 19 c. Bộ giải mã có ngõ vào cho phép: - Ngoài các ngõ vào dữ liệu, bộ giải mã có thể có 1 hay nhiều ngõ vào cho phép. - Khi các ngõ vào cho phép ở trạng thái tích cực thì mạch giải mã mới được hoạt động. Ngược lại, mạch giải mã sẽ không hoạt động; khi đó các ngõ ra đều ở trạng thái không tích cực. Y0 Y1 Y2 Y3 X0 (LSB) X1 EN EN X1 X0 Y3 Y2 Y1 Y0 0 X X 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 X0 X1 Y0 Y1 Y2 Y3 EN 20 2. IC giải mã: a. IC 74139: gồm 2 bộ giải mã 2 sang 4 ngõ ra tích cực thấp 1Y0 1Y1 1Y2 1Y3 1A (LSB) 1B 1G 2Y0 2Y1 2Y2 2Y3 2A (LSB) 2B 2G 1 2 3 15 14 13 4 5 6 7 12 11 10 9 G B A Y3 Y2 Y1 Y0 1 X X 0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 21 b. IC 74138: bộ giải mã 3 sang 8 ngõ ra tích cực thấp Y0 Y1 Y2 Y3 A (LSB) B C Y4 Y5 Y6 Y7 G1 G2A G2B 1 2 3 4 6 5 9 12 11 10 7 15 14 13 G1 G2A G2B C B A Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 0 X X X X X X 1 X X X X X X 1 X X X 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 22 3. Sử dụng bộ giải mã thực hiện hàm Boole: Ngõ ra của bộ giải mã là minterm (ngõ ra tích cực cao) hoặc maxterm (ngõ ra tích cực thấp) của n biến ngõ vào. Do đó, ta có thể sử dụng bộ giải mã thực hiện hàm Boole theo dạng chính tắc. z y x 0 1 0 F1 (x, y, z) = ∑ (2, 5, 7) = m2 + m5 + m7 = M2 + M5 + M7 = M2M5M7 F2 (x, y, z) = ∏ (0, 1, 4) = M0M1M4 F1 F2 Y0 Y1 Y2 Y3 A (LSB) B C Y4 Y5 Y6 Y7 G1 G2A G2B 74138 23 V. Bộ mã hóa (ENCODER): 1. Giới thiệu: - Encoder là hệ chuyển mã thực hiện hoạt động ngược lại với decoder. Nghĩa là encoder có m ngõ vào theo mã nhị phân 1 trong m và n ngõ ra theo mã nhị phân cơ bản (với m ≤ 2n). - Với ngõ vào Ii được tích cực thì ngõ ra chính là tổ hợp giá trị nhị phân i tương ứng. I0 I1 I2 I3 (LSB)Z0 Z1 I3 I2 I1 I0 Z1 Z0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 Z1 = I3 + I2 Z0 = I3 + I1 Z1 Z0 I3 I2 I1 24 * Bộ mã hóa có ưu tiên (Priority Encoder): Bộ mã hóa có ưu tiên là mạch mã hóa sao cho nếu có nhiều hơn 1 ngõ vào cùng tích cực thì ngõ ra sẽ là giá trị nhị phân của ngõ vào có ưu tiên cao nhất. I0 I1 I2 I3 (LSB)Z0 Z1 V I3 I2 I1 I0 Z1 Z0 V X X 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 0 1 X 0 1 X X 1 X X X Z1 = I3 + I2 Z0 = I3 + I2 I1 V = I3 + I2 + I1 + I0 I3 I2 I1 I0 Z1 Z0 V Thứ tự ưu tiên: I3 > I2 > I1 > I0 25 2. IC mã hóa ưu tiên 8 →3 (74148): EI I7 I6 I5 I4 I3 I2 I1 I0 A2 A1 A0 GS EO 1 X X X X X X X X 0 0 X X X X X X X 0 1 0 X X X X X X 0 1 1 0 X X X X X 0 1 1 1 0 X X X X 0 1 1 1 1 0 X X X 0 1 1 1 1 1 0 X X 0 1 1 1 1 1 1 0 X 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 EI I7 I6 I5 I4 I3 I2 I1 I0 1 5 3 12 14 9 A2 A1 (LSB)A0 GS EO 7 6 15 4 2 13 11 10 Thứ tự ưu tiên: I7 > I6 > I5 > I4 > I3 > I2 > I1 > I0 26 VI. Bộ dồn kênh (Multiplexer - MUX): 1. Giới thiệu: - MUX 2n→1 là hệ tổ hợp có nhiều ngõ vào nhưng chỉ có 1 ngõ ra. Ngõ vào gồm 2 nhóm: m ngõ vào dữ liệu (data input) và n ngõ vào lựa chọn (select input). - Với 1 giá trị i của tổ hợp nhị phân các ngõ vào lựa chọn, ngõ vào dữ liệu Di sẽ được chọn đưa đến ngõ ra. (m = 2n) D0 D1 : Dm-1 S0(LSB) S1 : Sn-1 Y Ngõ vào dữ liệu (Data Input) Ngõ vào lựa chọn (Select Input) 27 * Bộ MUX 4 → 1: D0 D1 D2 D3 S0(LSB) S1 Y S1 S0 Y 0 0 0 1 1 0 1 1 D0 D1 D2 D3 = m0 D0 + m1 D1 + m2 D2 + m3 D3 = ∑ mi Di (i = 0, 1, 2, 3) Y = S1 S0 D0 + S1 S0 D1 + S1 S0 D2 + S1 S0 D3 S1 S0 D0 D1 D2 D3 Y Tổng quát: Y = ∑ mi Di (với i = 0, 1, .., 2 n-1) 28 2. IC dồn kênh: a. 74LS153: gồm 2 bộ MUX 4 →1 1G 1C0 1C1 1C2 1C3 A(LSB) B 1Y 2G 2C0 2C1 2C2 2C3 2Y 14 15 10 11 12 13 2 1 6 5 4 3 7 9 G B A Y 1 X X 0 0 0 0 0 1 0 1 0 0 1 1 0 C0 C1 C2 C3 29 b. 74151: bộ MUX 8 →1 EN A(LSB) B C YD0 D1 D2 D3 D4 D5 D6 D7 Y 15 14 13 12 9 4 3 2 1 5 6 11 10 7 EN C B A Y 1 X X X 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 0 D0 D1 D2 D3 D4 D5 D6 D7 30 3. Sử dụng bộ MUX thực hiện hàm Boole: a. Bộ MUX 2n thực hiện hàm Boole n biến: EN A(LSB) B C YD0 D1 D2 D3 D4 D5 D6 D7 Y F(x, y, z) = ∑ (0, 1, 4, 7) = m0 + m1 + m4 + m7 = m0 1 + m1 1 + m2 0 + m3 0 + m4 1 + m5 0 + m6 0 + m7 1 Y = ∑ mi Di = m0D0 + m1D1 + m2D2 + m3D3 + m4D4 + m5D5 + m6D6 + m7D7 D0 = D1 = D4 = D7 = 1 D2 = D3 = D5 = D6 = 0 z y x 0 1 0 F 31 b. Bộ MUX 2n thực hiện hàm Boole n+1 biến: F(x, y, z) = ∑ (0, 1, 4, 7) = x y z + x y z + x y z + x y z = x y .1 + x y .0 + x y .z + x y .z Y = m0D0 + m1D1 + m2D2 + m3D3 D0 = 1; D1 = 0; D2 = z; D3 = z 1G 1C0 1C1 1C2 1C3 A(LSB) B 1Y 2G 2C0 2C1 2C2 2C3 2Y y x 0 1 0 z F = m0 .1 + m1 .0 + m2 .z + m3 .z x y z F 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 D0 = 1 D1 = 0 D3 = z D2 = z 32 VII. Bộ phân kênh (DEMUX): 1. Giới thiệu: - Bộ DEMUX 1→2n có chức năng thực hiện hoạt động ngược lại với bộ MUX. Mạch có 1 ngõ vào dữ liệu, n ngõ vào lựa chọn và 2n ngõ ra. - Với 1 giá trị i của tổ hợp nhị phân các ngõ vào lựa chọn, ngõ vào dữ liệu D sẽ được đưa đến ngõ ra Yi. Y0 Y1 : Ym-1 S0(LSB) S1 : Sn-1 DNgõ vào dữ liệu(Data Input) Ngõ vào lựa chọn (Select Input) Ngõ ra 33 * Bộ DEMUX 1 → 4: Y0 Y1 Y2 Y3 D S0 (LSB) S1 S1 S0 Y3 Y2 Y1 Y0 0 0 0 1 1 0 1 1 0 0 0 D 0 0 D 0 0 D 0 0 D 0 0 0 Y0 = S1 S0 D = m0 D Y1 = S1 S0 D = m1 D Y2 = S1 S0 D = m2 D Y3 = S1 S0 D = m3 D Y0 Y1 Y2 Y3 S1 S0 D 34 B A 1G 1C 1Y0 1Y1 1Y2 1Y3 2. IC phân kênh 74LS155: gồm 2 bộ phân kênh 1 → 4 1Y0 1Y1 1Y2 1Y3A (LSB) B 2Y0 2Y1 2Y2 2Y3 2G 2C 1 2 15 13 3 7 6 5 4 12 10 11 9 14 1G 1C X X X X 0 0 0 1 1 0 1 1 1 X X 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 B A 2G 2C 2Y0 2Y1 2Y2 2Y3 X X X X 0 0 0 1 1 0 1 1 1 X X 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 35 VIII. Bộ so sánh độ lớn (Comparator): 1. Giới thiệu: - Bộ so sánh là hệ tổ hợp có nhiệm vụ so sánh 2 số nhị phân không dấu A và B (mỗi số n bit). - Bộ so sánh có 3 ngõ ra (A>B), (A=B) và (A<B); chỉ có 1 ngõ ra tích cực theo kết quả so sánh. * Bộ so sánh 3 bit: A: A2 A1 A0 B: B2 B1 B0 Sử dụng biến trung gian: xi = Ai ⊕ Bi (i = 0, 1, 2) (A = B) = x2 x1 xo (A > B) = A2 B2 + x2 A1 B1 +x2x1 A0 B0 (A < B) = A2 B2 + x2 A1 B1 +x2x1 A0 B0 (A>B) (A=B) (A<B) A B = (A=B) + (A>B) 36 x0 x1 x2 (A=B) B0 A0 B1 A1 B2 A2 (A>B) (A<B) 37 2. IC so sánh 74LS85: 3 4 9 ALTBIN AEQBIN AGTBIN B0 B1 B2 B3 10 12 13 15 11 14 1 7 5 A0 A1 A2 A3 ALTBOUT AEQBOUT AGTBOUT 6 2 AGTBOUT = (A>B) + (A=B)AGTBIN AEQBOUT = (A=B) AEQBIN ALTBOUT = (A<B) + (A=B)ALTBIN
File đính kèm:
- bai_giang_ky_thuat_so_chuong_3_he_to_hop.pdf