CHƯƠNG 3 : CỔNG LOGIC & MẠCH SỐ
3.9 CỔNG NOR, NAND VÀ XOR
Ngồi các cổng OR, AND và NOT cịn có 3 loại cổng khác cũng được sử dụng phổ biến trong máy tính đó là NOR, NAND và XOR.
Cổng NOR
Ký hiệu cổng NOR giống như cổng OR chỉ có khác là nó có một vịng trịn nhỏ ở lối ra (hình 3-9) để chỉ ra rằng: Cổng NOR gồm một cổng OR và một cổng NOT.
Hình 3-9: Cổng NOR Bảng sự thật cho cổng NOR như sau:
A B A+B A+B 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0
Loái ra NOR chỉ ở trạng thái 1 khi tất cả các lối vào đều ở trạng thái 0.
Cổng NAND
Hình 3-10: Cổng NAND
NAND hồn tồn giống cổng AND chỉ khác là có một vịng trịn ở lối ra để chỉ ra rằng phải thực hiện phép đảo. Nói cách khác NAND giống như một cổng AND và theo sau là một cổng INVERTER. Bảng sự thật của NAND như sau:
A B AB AB 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0
Lối ra của cổng AND sẽ lên cao khi tất cả các lối vào đều cao, trong khi đó lối ra của cổng NAND sẽ lên cao khi có một lối vào ở mức thấp.
Cổng XOR
Coång XOR (Exclusive - OR) được thực hiện từ các 2 coång AND, 2 coång NOT và 1 cổng OR theo sơ đồ nối sau đây:
Hình 3-11: Sơ đồ nối bên trong cổng XOR
Hình 3-12: Ký hiệu cổng XOR
Bảng sự thật của XOR như sau. A B A+B A⊕B 0 0 0 0 0 1 1 1 1 0 1 1 1 1 1 0
Tính chất của XOR là nếu 2 biến vào giống nhau (cùng bằng 0 hoặc cùng bằng 1) thì lối ra bằng 0, nếu 2 biến vào khác nhau thì lối ra sẽ bằng 1. Người ta sử dụng kết quả này để so sánh 2 bit với nhau. Mạch XOR cũng được dùng để phát hiện lỗi theo phương pháp kiểm tra chẳn lẻ trong các quá trình truyền số liệu.
3.10 CÁC ĐỊNH LYÙ BOOL
a) Các định lý Bool cho biến đơn
Trong các định lý sau, x là biến Bool nó có thể nhận giá trị 0 hoặc 1. Có 8 định lý Bool một biến như bảng sau.
x.0=0 x.1=x
x.x=x x.x=0
x+0=x x+1=1
x+x=x x+x=1
b) Các định lý Bool nhiều biến
Trong các định lý sau đây x, y, z là các biến. x+y = y+x Hoán vị phép coäng x.y = y.x Hoán vị phép nhân x+ (y+z) = (x+y)+z Trao đổi phép cộng x(yz) = (xy)z = xyz Trao đổi phép nhân
x(y+z) = xy + xz Khai trieån phép cộng (w+x)(y+z) = wy+wz+xy+xz Khai triển phép nhân
x+xy = x Nhoùm phép cộng x+xy = x+y
Định lý cuối cùng có thể kiểm tra bằng cách thử số.
Các định lý Bool có thể dùng để đơn giản các biểu thức. Sau đây là vài ví dụ minh họa.
Ví dụ 1: Đơn giản biểu thức F = ABD + ABD Nhóm số hạng AB thì F = AB( D+D ) =AB Ví dụ 2: Đơn giản biểu thức F = ( A+B )(A+B ) F = AA + AB + BA +BB
= AB+BA+B = B( A+A +1 ) = B
3.11 ĐỊNH LÝ DE MORGAN
Nhà toán học De Morgan có hai định lý có ý nghóa rất quan trọng trong đại số Bool. Chúng được phát biểu dưới dạng 2 biểu thức sau:
( x+y ) = x . y (x.y) = x + y
Có thể phát biểu định lý như sau: Phủ định của một tổng bằng tích các phủ định. Phủ định của một tích bằng tổng các phủ định.
Mặc dù định lý được phát biểu cho x và y là các biến đơn song nó cũng được áp dụng cho các trường hợp x và y là tổ hợp bất kỳ của các biến Bool.
Người ta sử dụng các định lý DeMorgan để đơn giản các biểu thức . Ví dụ: Đơn giản biểu thức sau:
F = (A+C).(B+D) Biến đổi tích hai số hạng thành tổng ta có:
F = (A+C) + ( B+ D) = ( A.C) + ( B.D )
= A . C + B . D
3.12 THIẾT KẾ MẠCH LOGIC TỔ HP
Trong nhiều trường hợp cần phải xây dựng mạch logic theo một yêu cầu nào đó. Cơng việc cần phải tiến hành là:
a. Xác định nội dung của bài tốn b. Xây dựng bảng sự thật mơ tả bài tốn
c. Tìm biểu thức logic cho bảng sự thật theo các bước sau.
• viết số hạng AND chứa các biến vào đối với các trường hợp F=1
• các biến trong số hạng AND có thể ở dạng đảo hoặc khơng đảo tùy vào giá trị bằng 0 hoặc bằng 1
• tất cả các số hạng AND được OR với nhau để có được biểu thức của F.
• đơn giản biểu thức của F
d. Xây dựng mạch logic thực hiện biểu thức F
Ví dụ: Xây dựng một mạch logic có 3 biến vào sao cho khi có 2 trong số 3 lối vào ở mức 1 thì lối ra ở mức 1.
Từ nội dung bài tốn ta có bảng sự thật sau. A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 F = ABC+ABC +ABC+ABC
Có thể đơn giản biểu thức này theo một vài cách . Cách nhanh nhất là viết ABC 3 lần như sau:
F = ABC + ABC + ABC + ABC + ABC + ABC = BC( A+A) + AC(B+B ) + AB(C+C)
= BC+AC+AB
Mạch này được thực hiện trên hình 3-13. Có thể viết F dưới dạng sau: F = C( B+A)+AB
Mạch cho biểu thức này được thực hiện như hình 3-14. Trong thiết kế mạch người ta chọn kiểu 3-14 vì nó ít dây nối hơn 3-13 và có tốc độ thực hiện nhanh hơn.
Hình 3-13
Hình 3-14
3.13 ĐƠN GIẢN HÀM BOOL BẰNG PHƯƠNG PHÁP ĐẠI SỐ
Một biểu thức Bool có thể được đơn giản để trở thành một biểu thức chứa ít nhất các số hạng và các biến do đó có thể thực hiện mạch logic với số cổng ít nhất.
Để minh họa, mạch hình 3-15 có thể đơn giản thành mạch 3-16. Rõ ràng rằng việc thực hiện mạch theo 3-16 đơn giản hơn 3-15 nhiều.
Hình 3-15
Hình 3-16
Có 3 phương pháp đơn giản mạch logic.
• Đơn giản bằng phương pháp đại số
• Đơn giản bằng phương pháp bảng Karnaugh
• Đơn giản bằng phương pháp Mc Cluskey
Trong khn khổ của giáo trình này chúng ta sẽ chỉ xem xét phương pháp đại số. Để đơn giản mạch bằng phương pháp đại số ta dùng các định lý của đại số Bool, định lý De Morgan và theo 2 bước sau đây:
• Viết biểu thức dưới dạng tổng của các số hạng AND của các biến.
• Nhóm và ước lược các số hạng nếu có thể để thu được biểu thức cuối cùng đơn giản nhất.
Ví dụ 1: Đơn giản biểu thức F = ABC + A B (A C) Khai triển biểu thức thành tổng các số hạng AND như sau:
= ABC + ABA + ABC = ABC + AB + A B C = AC(B + B) + AB = AC + AB = A( C+ B)
Ví dụ 2: Đơn giản biểu thức F = ABC + ABC + A B C Coù 2 cách để đơn giản biểu thức này
Caùch 1: F = AB ( C+ C ) + ABC
= AB + ABC = A( B + B C) = A(B + C)
Cách 2: Có thể viết lại biểu thức dưới dạng sau: F = ABC + ABC + ABC + ABC
= AB ( C+C) + AC ( B+B) = A( B+C)
3.14 CÁC MẠCH SỐ
Phần cứng máy tính được xây dựng từ các mạch logic tổ hợp mà chúng được cấu tạo từ các cổng logic. Trong máy tính, các cổng logic được dùng để tạo ra các mạch chức năng mà nòng cốt là các thiết bị sau:
♦ Flip- flop (FF)
♦ Mạch đếm (Counter)
♦ Thanh ghi (Register).
Phần sau đây sẽ trình bày một cách sơ lược các thiết bị này.
3.15 FLIP - FLOP
Thiết bị cơ bản để lưu giữ thơng tin trên máy tính là Flip-flop (FF). Có nhiều loại FF và mạch thực hiện chúng. FF có các đặc điểm sau.
• FF là thiết bị mà lối ra của nó (X hoặc X ) có 2 trạng thái bền là trạng thái 0 (0 state) và trạng thái 1 (1 state). Nhờ tính chất này mà FF có thể nhớ hay lưu giữ 1 bit thông tin.
• FF có thể có nhiều lối vào và 2 lối ra mà trạng thái logic của chúng phủ định lẫn nhau. Hình 3-17 là sơ đồ khối của một FF có tên gọi là FF RS.
X
X Hình 3-17: FF RS
FF RS có 2 lối vào là R và S, 2 lối ra là X vaø X.
Để mơ tả và phân tích hoạt động của FF, chúng ta sử dụng các quy ước sau đây.
♦ Mỗi FF có một tên. Tên thường dùng là một chữ cái như X, Y, A hay B. Flip Flop trên hình 3-17 gọi là FF X.
♦ FF X có 2 lối ra là X và X mà chúng có trạng thái logic ln ln phủ định nhau.
R
S
♦ Trạng thái của FF là trạng thái của X. Như vậy nếu lối ra X =1, chúng ta nói rằng FF X là ở trạng thái 1. Tương tự nếu X =0, chúng ta nói FF X ở trạng thái 0.
Có 2 lối vào trên FF RS. Những lối vào này để điều khiển trạng thái của FF, chúng ta gọi chúng là các lối vào điều khiển .
Các lối vào điều khiển ảnh hưởng đến trạng thái ra của FF như bảng sự thật sau. S R X 1 0 1 0 0 giữ 0 1 0 1 1 caám
Lối vào S là lối vào đặt (Set), còn lối vào R là lối vào xoùa (Reset). RS FF dùng 2 cổng NOR mắc theo sơ đồ hình 3-18.
Hình 3-18: FF RS
3.16 ĐỒNG HỒ VÀ FF CÓ ĐỒNG HỒ
a) Khaùi niệm đồng hồ
Caùc hệ thống số có thể hoạt động ở chế độ đồng bộ (Synchronously) hoặc chế độ không đồng bộ (Asynchronously). Trong hệ thống không đồng bộ, lối ra của mạch logic có thể thay đổi trạng thái tại một thời điểm bất kỳ khi có sự thay đổi của lối vào điều khiển. Trong hệ thống đồng bộ, lối ra của mạch logic chỉ thay đổi trạng thái khi và chỉ khi có một tín hiệu chung gọi là đồng hồ (Clock). Tín hiệu đồng hồ là một chuỗi xung hình vng như hình vẽ 3-19.
Hình 3-19: Tín hiệu đồng hồ
Lối ra của các hệ thống đồng bộ chỉ thay đổi trạng thái khi có sự chuyển (transition) của tín hiệu đồng hồ. Sự chuyển trạng thái chỉ ra trên hình vẽ 3-20.
Hình 3-20: Xung đồng hồ với các sườn chuyển PGT và NGT
Khi đồng hồ thay đổi từ 0 lên 1 gọi là sự chuyển mức dương (positive going transition - PGT). Khi đồng hồ chuyển từ 1 về 0 gọi là sự chuyển mức âm (negative going transition - NGT).
b) FF có đồng hồ (Clocked Flip - Flops)
Trong FF có đồng hồ, ngồi các đầu vào điều khiển cịn có lối vào đồng hồ, gọi là CLK, CK hoặc CP.
Đồng hồ có thể làm cho lối ra chuyển trạng thái tại PGT hoặc NGT. Nếu đồng hồ tác động ở PGT ta vẽ tín hiệu đồng hồ đi thẳng với 1 mũi tên. Nếu đồng hồ tác động ở NGT ta vẽ dấu trịn trước mũi tên như hình vẽ 3-21.
Hình 3-21: FF có đồng hồ tác động ở sườn âm
• FF SC có đồng hồ
Hình vẽ 3-22 là sơ đồ FF SC có đồng hồ loại PGT
Hình 3-22: Sơ đồ khơí FF SC
Bảng sự thật cho FF SC có đồng hồ tác dụng ở sườn dương như sau.
S C CLK X
0 0 No change 1 0 1
0 1 0
1 1 Ambiguous
Bảng sự thật cho FF SC có đồng hồ tác dụng ở sườn âm như sau.
S C CLK X
0 0 No change
1 0 1 0 1 0
• FF JK có đồng hồ
Hình 3-23 chỉ ra sơ đồ một FF JK hoạt động ở sườn dương của đồng hồ. Các lối vào điều khiển J K có vai trị giống như các lối vào S C của FF SC. Chỉ có một điều khác biệt là khi J=K=1 thì FF JK liên tục thay đổi trạng thái khi có xung đồng hồ.
Hình 3-23: FF JK Bảng sự thật cho FF JK nhö sau: J K CLK X 0 0 No change 1 0 1 0 1 0 1 1 Toggles Cũng có FF JK kích bằng sườn âm của xung đồng hồ.
• FF D (delay FF)
Hình 3-24 chỉ ra ký hiệu và bảng sự thật của FF D kích bằng sườn dương của xung đồng hồ.
D CLK Q
1 1 0 0
Hình 3-24: FF D
Không giống như FF JK, FF D chỉ có một lối vào điều khiển đồng bộ là D (data). Hoạt động của FF D rất đơn giản: Q sẽ nhận giá trị của D trước khi có đồng hồ.
FF D có thể làm từ FF SC hoặc FF JK bằng cách sử dụng một cổng đảo như hình vẽ 3-25.
Hình 3-25: FF D từ SC FF
c) Các lối vào không đồng bộ
Trong caùc FF chúng ta đãõ xem xét trước đây, các lối vào S, C, J, K, D gọi là các lối vào điều khiển (control inputs). Những lối vào này còn gọi là lối vào đồng bộ (synchronous inputs) bởi vì ảnh hưởng của chúng lên lối ra đồng bộ với lối vào đồng hồ. Hầu hết các FF có một hay nhiều lối vào khơng đồng bộ (asynchronous inputs) mà hoạt động của chúng không phụ thuộc vào đồng hồ và các tín hiệu vào đồng bộ. Những tín hiệu này dùng để đặt FF lên 1 hoặc xóa FF về 0 tại một thời điểm bất kỳ không phụ thuộc vào trạng thái của các lối vào khác.
Hình 3-26 là sơ đồ FF JK có 2 lối vào bất đồng bộ là DC SET vaø DC CLEAR Hai lối vào này đều tác động thấp. Người ta dùng các ký hiệu sau để chỉ các lối vào không đồng bộ .
DC SET, SET Direct (SD), PRESET (PRE): đặt 1 cho FF
DC CLEAR, CLEAR Direct (CD) hay CLEAR (CLR): xố về 0 cho FF
Hình 3-26: FF JK với các lối vào điều khiển không đồng bộ
3.17 ỨNG DỤNG CỦA FF
a)Lưu trữ và truyền số liệu:
FF thường được dùng để lưu trữ và truyền số liệu. Các số liệu có thể ở dạng nhị phân, BCD. Các số liệu có thể được lưu trữ trên một nhóm các FF gọi là thanh ghi (register). Số lượng bit trên 1 thanh ghi bằng số FF.
Hoạt động thường xuyên đối với số liệu được lưu giữ trên thanh ghi là chuyển số liệu. Việc chuyển số liệu bao gồm chuyển số liệu giữa các FF hoặc giữa các thanh ghi với nhau. Hình 3-27 là mạch truyền số liệu giữa các FF loại SC, JK và D. Trong từng trường hợp, giá trị nhị phân được lưu giữ trong thanh ghi A được truyền cho thanh ghi B tại PGT của xung chuyển ( transfer pulse).
Hình 3-27: Truyền số liệu nối tiếp giữa các thanh ghi
Hình 3-28 là sơ đồ truyền số liệu song song giữa hai thanh ghi X và Y. Mỗi thanh ghi coù 3 bit. Mạch này gọi là mạch chuyển số liệu song song (parallel transfer) do X1X2X3 được chuyển đồng thời đến Y1Y2Y3. Nếu việc chuyển nối tiếp được thực hiện thì nội dung của thanh ghi X được chuyển từng bit một cho thanh ghi Y.
Hình 3-28: Truyền số liệu song song giữa 2 thanh ghi 3 bit
Truyền số liệu nối tiếp . Thanh ghi dịch
Hình 3-29 là một thanh ghi dịch (shift register) 4 bit. Số liệu được truyền theo kiểu nối tiếp trong thanh ghi khi có xung chuyển.
Thanh ghi dịch này được tổ chức từ 4 FF JK. Data được đưa vào FF đầu tiên. Giả sử ban đầu trạng thái của thanh ghi là 0000. Xung đồng hồ đầu tiên dữ liệu được truyền tới FF thứ nhất. Sau 3 xung đồng hồ, dữ liệu được chuyển đến FF cuối cùng .
Hình 3-30 là sơ đồ truyền số liệu nối tiếp giữa thanh ghi X vaø thanh ghi Y. Sau mỗi xung đồng hồ dữ liệu được dịch sang phải 1 bit như bảng sau:
X2 X1 X0 Y2 Y1 Y0
1 0 1 0 0 0 Trước khi có xung đồng hồ 0 1 0 1 0 0 Sau xung thứ nhaát
0 0 1 0 1 0 Sau xung thứ hai 0 0 0 1 0 1 Sau xung thứ ba
Hình 3-30: Truyền số liệu nối tiếp giữa 2 thanh ghi 3 bit
b) Mạch đếm (counter)
Mạch đếm là thiết bị nhận xung đếm ở lối vào. Lối ra của mạch đếm có thể là số nhị phân hay BCD.
Trạng thái lối ra phản ánh số xung đếm xuất hiện ở lối vào của bộ đếm. Có nhiều kiểu bộ đếm khác nhau, sau đây ta sẽ xét một vài loại bộ đếm thơng dụng.
Bộ đếm nhị phân
Boä đếm nhị phân (Binary Counter) là bộ đếm mà mã số lối ra là số nhị phân. Bộ đếm nhị phân cấu tạo từ các FF. Một bộ đếm nhị phân có lối ra n bit thì cần n FF.
Hình 3-31: Bộ đếm nhị phân 4 bit D C B A Number of clock 0 0 0 0 0