CHƯƠNG 3 : CỔNG LOGIC & MẠCH SỐ
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
Bộ đế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 0 0 0 1 1 0 0 1 0 2 0 0 1 1 3 0 1 0 0 4 0 1 0 1 5 0 1 1 0 6 0 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 1 0 0 12 1 1 0 1 13
1 1 1 0 14 1 1 1 1 15
0 0 0 0 16 (recycles)
Hình 3-31 là sơ đồ bộ đếm nhị phân không đồng bộ 4 bit.Các FF dùng loại JK. Với 4 bit bộ đếm sẽ đếm được 24 =16 trạng thái. Một chu trình đếm sẽ kết thúc tại xung thứ 15, xung thứ 16 bộ đếm sẽ bắt đầu lại chu trình đếm mới. Bộ đếm trên hình 3-31 gọi là bộ đếm khơng đồng bộ (asynchronous counter) vì mỗi FF đóng vai trị như là đồng hồ cho các FF tiếp theo. Sự không đồng bộ là ở chỗ: Các FF khơng thay đổi trạng thái vào thời điểm có xung đồng hồ. Chỉ FF A thay đổi trạng thái khi có đồng hồ, cịn FF B thay đổi trạng thái khi FF A thay đổi.
Bộ đếm trên đây còn gọi là bộ đếm MOD N=2n. Ở đây n là số FF tham gia trong bộ đếm.
Bộ đếm với số trạng thái < 2n
Nếu nối bộ đếm với n FF thì có thể đếm được N = 2n trạng thái. Để mạch chỉ đến với số trạng thái < 2n thì ần phải kiểm sốt trạng thái theo cách sau đây: Sử dụng đường dây CLR để RESET bộ đếm tương ứng với trạng thái mong muốn. Ví dụ để mạch đếm 10 (từ 0 đến 9) thì cần phải có mạch theo dõi trạng thái lối ra sao cho khi xuất hiện trạng thái 10 = 10102 thì cần RESET bộ đếm. Có thể sử dụng mạch như hình 3-32.
Hình 3-32: Kiểm sốt trạng thái cho bộ đếm 10
Mạch đếm xuống (down counter)
Trong một số trường hợp cần phải đếm xuống từ một giá trị cho trước. Để thực hiện việc này cần phải sử dụng mạch đếm xuống như hình 3-33.
Hình 3-33: Mạch đếm xuống 3 bit
Mạch đếm này có sơ đồ nối như mạch đếm lên 3 bit không đồng bộ, chỉ khác là lối ra đảo của các FF A và FF B được đưa đến lối vào đồng hồ của các FF B và FF C.
Giả sử trạng thái ban đầu của bộ đếm là 000.
Xung đồng hồ thứ nhất làm cho bộ đếm có giá trị lối ra là 111.
Xung đồng hồ tiếp theo, kết quả của bộ đếm là 110. Cứ tiếp tục như vậy cho đến xung đồng hồ thứ 7, trạng thái lối ra của bộ đếm là 000. Xung đồng hồ thứ 8, trạng thái bộ đếm là 111 và một chu trình đếm mới được bắt đầu.
CHƯƠNG 4: BỘ LOGIC SỐ HỌC (ALU)
Bộ logic và số học của máy tính là một bộ phận thuộc vi xử lý. Hoạt động của ALU do bộ điều khiển chỉ dẫn, còn số liệu cho các phép tính của ALU được cung cấp từ bộ nhớ. ALU thực hiện một loạt các phép tính trên số liệu mà cơ bản là thực hiện các phép cộng, trừ, nhân, chia. Trong chương này chúng ta sẽ xem xét những nguyên lý cơ bản cần thiết để hiểu hoạt động của bộ ALU trong máy tính về phương diện phần cứng khi nó thực hiện các phép toán cộng, trừ nhị phân, cũng như các phép toán trên số BCD và số Hex.
4.1 CẤU TRÚC CỦA ALU
ALU của vi xử lý bao gồm các thanh ghi, các mạch logic. Trong trường hợp đơn giản ALU bao gồm:
• 2 thanh ghi ( A và B) để chứa các toán hạng của phép toán .
• Một mạch logic được điều khiển bởi bộ điều khiển nhằm thực hiện phép toán mong muốn.
• 1 thanh ghi (C) để chứa kết quả.
Các thanh ghi A, B, C có thể là một trong các thanh ghi của vi xử lý như thanh ghi tích lũy (accumulator), các thanh ghi dùng chung (general registers).
4.2 BỘ CỘNG NHỊ PHÂN
Để tiến hành cộng 2 số nhị phân cần phải dùng bộ cộng (adder). Có 5 trường hợp khả dĩ đối với phép cộng nhị phân, đó là:
0+0=0 0+1=1 1+0=1
1+1=10 = 0 nhớ 1 sang bit có trọng số lớn hơn . 1+1+1=11=1 nhớ 1 sang bit có trọng số lớn hơn.
Trường hợp cuối cùng xảy ra khi cộng 2 bit 1 và có nhớ 1 từ bit có trọng số bé hơn. Sau đây là vài ví dụ:
011(3) 1001(9) 11.011(3.375) +110(6) +1111(5) +10.110(2.750)
Khơng cần thiết phải xem xét phép cộng của nhiều số nhị phân vì máy tính chỉ thực hiện phép cộng của 2 số nhị phân cùng một lúc. Khi có nhiều hơn 2 số được cộng thì máy tính sẽ cộng 2 số với nhau rồi lấy kết quả đó cộng với số tiếp theo.
Phép cộng là phép tính số học quan trọng nhất trong máy tính. Như chúng ta sẽ thấy sau này phép trừ, phép nhân và phép chia cuối cùng đều quy về phép cộng.