Bài giảng Kỹ thuật số - Chương 4: Hệ tuần tự
Hệ tuần tự là hệ mà ngõ ra không chỉ phụ thuộc vào các ngõ vào mà còn phụ thuộc vào 1 số ngõ ra được hồi tiếp trở thành ngõ vào thông qua phần tử nhớ. Các phần tử nhớ thường sử dụng là Flip_Flop.
Hệ tuần tự được chia thành 2 loại: hệ tuần tự đồng bộ (Synchronous) và hệ tuần tự bất đồng bộ (Asynchronous). Hệ tuần tự đồng bộ là hệ tuần tự có sử dụng nguồn xung nhịp (xung clock).
unter): Còn gọi là bộ đếm gợn (ripple). Bộ đếm này được tạo từ các FF đếm 2, ghép xâu chuỗi lại với nhau, thường dùng là T-FF và JK-FF. J K Q Q CK 1 . T Q Q CK 1 a. Bộ đếm đầy đủ (m = 2n): * Bộ đếm lên (Count Up): là bộ đếm mà giá trị của bộ đếm sẽ tăng thêm 1 khi có xung clock vào. T Q Q CK 1 T Q Q CK 1 T Q Q CK 1 CK Q0 (LSB) Q1 Q2 (MSB) . . Giản đồ xung CK (MSB) Q2 Q1 (LSB) Q0 * Bộ đếm xuống (Count Down): là bộ đếm mà giá trị của bộ đếm sẽ giảm đi 1 khi có xung clock vào. J K Q Q CK 1 . J K Q Q CK 1 . J K Q Q CK 1 . . . CK Q0 (LSB) Q2 (MSB) Q1 Giản đồ xung CK (MSB) Q2 Q1 (LSB) Q0 b. Bộ đếm không đầy đủ (m < 2n): Thực hiện bộ đếm không đầy đủ dựa vào bộ đếm đầy đủ. Ta cần xác định trạng thái kế tiếp không mong muốn của vòng đếm. Dùng trạng thái này để tạo ra tín hiệu tác động tích cực vào các ngõ vào bất đồng bộ Preset hoặc Clear để đưa bộ đếm trở về trạng thái ban đầu (thường gọi là trạng thái reset). Cần chú ý đến loại FF sử dụng ngõ vào Preset và Clear tích cực cao hoặc thấp. Vd: Sử dụng T-FF có ngõ vào Preset và Clear tích cực mực thấp, thiết kế bộ đếm lên có m = 5, bắt đầu từ giá trị 0. Q2Q1 Q0 Z 00 01 0 11 10 0 x x 1 Z = Q2 + Q0 = Q2 Q0 Ta gọi Z là tín hiệu để reset bộ đếm. Khi bộ đếm chuyển qua trạng thái 101 (trạng thái khơng mong muốn), thì tín hiệu Z sẽ là 0 để reset bộ đếm. Q2 Q1 Q0 Z 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 1 1 1 0 x x T Q Q CK 1 T Q Q CK 1 T Q Q CK 1 CK Q0 (LSB) Q1 Q2 (MSB) . . . . . 1 1 1 Pr Pr Pr Cl Cl Cl Giản đồ xung CK (MSB) Q2 Q1 (LSB) Q0 RS = Z Vd: Thiết kế bộ đếm xuống có m = 5, với giá trị ban đầu là 2. Sử dụng FF có ngõ vào Preset và Clear tích cực mức cao. Q2Q1 Q0 Z 00 01 x 0 11 10 x 1 1 Z = Q2 Q1 Q2 Q1 Q0 Z 0 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 x x Như vậy trạng thái reset là Q2Q1Q0 = 101. Khi đó ta tác động tích cực vào ngõ vào Preset của Q1 và Clear của Q2, Q0 để có được trạng thái ban đầu 010. Tín hiệu Z còn gọi là tín hiệu RS. Q2 (MSB) Cl T Q Q CK 1 T Q Q CK 1 T Q Q CK 1 CK Q0 (LSB) Q1 . . . . 0 Pr Pr Pr Cl Cl 0 0 . 2. Bộ đếm song song (Synchronous Counter): Bộ đếm song song là bộ đếm mà các FF đều sử dụng chung nguồn xung clock. Do đó khi có xung clock vào thì tất cả các ngõ ra FF đều thay đổi giá trị. Khi thiết kế bộ đếm ta chỉ quan tâm đến trạng thái hiện tại và trạng thái kế tiếp của FF, mà không quan tâm đến dạng kích của xung clock (cạnh lên hoặc cạnh xuống). Ta có thể thiết kế bộ đếm song song có vòng đếm bất kỳ. * Các bước thiết kế: - Từ phát biểu bài toán xác định số FF cần dùng và dãy đếm. - Lập bảng chuyển trạng thái chỉ rõ mối quan hệ giữa trạng thái hiện tại và trạng thái kế tiếp (dựa vào dãy đếm). - Tìm các giá trị ngõ vào FF cần phải có từ giá trị hiện tại Q và kế tiếp Q+ của từng FF (dựa vào bảng kích thích của mỗi loại FF). - Tìm biểu thức rút gọn của mỗi ngõ vào FF phụ thuộc vào các biến trạng thái hiện tại. - Thực hiện sơ đồ logic. Bảng kích thích của FF: Q Q+ T 0 0 0 1 1 0 1 1 0 1 1 0 Q Q+ D 0 0 0 1 1 0 1 1 0 1 0 1 D-FF T-FF Q Q+ J K 0 0 0 1 1 0 1 1 1 1 0 x 1 x x 1 x 0 Q Q+ S R 0 0 0 1 1 0 1 1 1 1 0 x 1 0 0 1 x 0 SR-FF JK-FF a. Bộ đếm đầy đủ (m = 2n): Vd: Sử dụng T-FF kích theo cạnh lên, thiết kế bộ đếm có dãy đếm sau: Q2Q1Q0 = 010, 101, 110, 001, 000, 111, 100, 011, 010, Lập bảng chuyển trạng thái: Trạng thái hiện tại Trạng thái kế tiếp Các ngõ vào Q2 Q1 Q0 Q+2 Q+1 Q+0 T2 T1 T0 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 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 0 1 1 Q2Q1 Q0 T2 00 01 1 1 0 11 10 1 1 1 T2 = Q0 Q2Q1 Q0 T1 00 01 1 1 0 11 10 1 1 1 1 1 T1 = Q2 + Q0 Q2Q1 Q0 T0 00 01 1 1 1 0 1 11 10 1 1 1 1 1 T0 = 1 Q0 (LSB) T2 Q2 Q2 CK2 1 CK Q2 (MSB) Q1 . . T1 Q1 Q1 CK1 T0 Q0 Q0 CK0 . . Vd: Sử dụng JK-FF kích theo cạnh xuống, thiết kế bộ đếm lên theo mã Gray 3 bit. Ta có dãy đếm sau: Q2Q1Q0 = 000, 001, 011, 010, 110, 111, 101, 100, 000, Lập bảng chuyển trạng thái: Trạng thái hiện tại Trạng thái kế tiếp Các ngõ vào Q2 Q1 Q0 Q+2 Q+1 Q+0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0 1 0 x 0 x 1 x 0 x 1 x x 0 1 x x 0 0 x 0 x x 0 x 1 x 1 0 x 0 x x 0 0 x x 1 x 0 x 0 1 x x 0 x 1 x 0 Q2Q1 Q0 J2 00 01 1 0 11 10 x x x x 1 J2 = Q1 Q0 Q2Q1 Q0 K2 00 01 x x x 0 x 11 10 1 1 K2 = Q1 Q0 Q2Q1 Q0 J1 00 01 x x 0 1 11 10 x x 1 J1 = Q2 Q0 Q2Q1 Q0 K1 00 01 x 0 x 11 10 x x 1 1 K1 = Q2 Q0 Q2Q1 Q0 J0 00 01 x 1 0 x 11 10 x 1 x 1 Q2Q1 Q0 K0 00 01 x 1 x 0 11 10 x 1 x 1 K0 = Q2 Q1 + Q2 Q1 = Q2 Å Q1 J0 = Q2 Q1 + Q2 Q1 = Q2 Å Q1 J2 K2 Q2 Q2 CK2 . . CK Q2 (MSB) Q0 (LSB) Q1 J1 K1 Q1 Q1 CK1 J0 K0 Q0 Q0 CK2 . . . . . . . . b. Bộ đếm không đầy đủ (m < 2n): Khi thiết kế bộ đếm không đầy đủ, thì các trạng thái có trong vòng đếm sẽ thiết kế như bộ đếm đầy đủ; còn các trạng thái dư không có trong vòng đếm sẽ giải quyết theo 2 cách sau: * Cách 1: Các trạng thái dư không có vòng đếm có trạng thái kế tiếp là tùy định. Khi thiết kế cần khởi động trạng thái ban đầu cho bộ đếm; trạng thái ban đầu này phải là 1 trong những trạng thái có trong vòng đếm. Vd: Thiết kế bộ đếm dùng T-FF cạnh lên, có ngõ vào Pr và CL týich cực cao, có giản đồ trạng thái sau: 000 1000 011 101 001 m = 5 Q2Q1Q0 Ta có bảng chuyển trạng thái: Trạng thái hiện tại Trạng thái kế tiếp Các ngõ vào Q2 Q1 Q0 Q+2 Q+1 Q+0 D2 D1 D0 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 0 0 0 0 0 x x x 1 0 1 0 1 1 0 0 1 x x x x x x 1 0 0 0 0 0 x x x 1 0 1 0 1 1 0 0 1 x x x x x x Ta được: D2 = Q+2 = Q2 Q0 + Q1 D1 = Q+1 = Q2 Q0 D0 = Q+0 = Q2 + Q1 . Cl D2 Q2 Q2 CK2 CK Q2 (MSB) Q1 . . 0 Pr Pr Pr Cl Cl D1 Q1 Q1 CK1 D0 Q0 Q0 CK0 0 0 Q0 (LSB) . . . . . . RS Mạch reset trên có nhiệm vụ tạo giá trị ban đầu là Q2Q1Q0 = 001. * Cách 2: Cho các trạng thái dư không có vòng đếm có trạng thái kế tiếp là 1 trong những trạng thái có trong vòng đếm. 000 1000 011 101 001 m = 5 Q2Q1Q0 010 110 111 Vd: Cho 3 trạng thái dư không có trong vòng đếm có trạng thái kế tiếp như hình vẽ Trạng thái hiện tại Trạng thái kế tiếp Các ngõ vào Q2 Q1 Q0 Q+2 Q+1 Q+0 D2 D1 D0 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 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 * Phân tích bộ đếm song song: - Từ sơ đồ logic của bộ đếm xác định hàm kích thích (biểu thức của các ngõ vào) của từng FF phụ thuộc vào các ngõ ra Qi. - Lập bảng trạng thái: từ trạng thái hiện tại Qi và giá trị ngõ vào ta xác định được trạng thái kế tiếp của FF Q+i. - Từ bảng chuyển trạng thái xác định được giản đồ trạng thái hoặc khảo sát giản đồ xung của bộ đếm. Vd: Hãy xác định giản đồ trạng thái của bộ đếm sau: . J2 K2 Q2 Q2 CK2 . . CK Q2 (MSB) Q0 (LSB) Q1 J1 K1 Q1 Q1 CK1 J0 K0 Q0 Q0 CK2 . . . . 1 1 . Ta có biểu thức của các ngõ vào: J2 = Q1 Q0 K2 = 1 J1 = Q2 Q0 K1 = Q2 + Q0 J0 = Q2 K0 = 1 Lập bảng trạng thái Trạng thái hiện tại Các ngõ vào Trạng thái kế tiếp Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 Q+2 Q+1 Q+0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Ta có giản đồ trạng thái: 000 001 010 011 100 m = 5 Q2Q1Q0 010 110 111 Khảo sát giản đồ xung, với giá trị ban đầu là Q2Q1Q0 = 111 CK (MSB) Q2 Q1 (LSB) Q0 IV. Bộ Đếm Thanh Ghi Dịch (Shift Register Counter): Các bộ đếm thanh ghi dịch là bộ đếm dùng hồi tiếp. Có 2 loại thường dùng là bộ đếm vòng và bộ đếm vòng xoắn Q0 D2 Q2 Q2 CK2 CK Q2 Q1 . . D1 Q1 Q1 CK1 D0 Q0 Q0 CK0 . . . 1. Bộ đếm vòng (Ring Counter): ngõ ra của thanh ghi dịch hồi tiếp về ngõ vào FF. Giả sử giá trị ban đầu của bộ đếm là Q2Q1Q0 = 100. CK Q0 Q1 Q2 Clock Q2 Q1 Q0 1 2 3 4 : 1 0 0 0 1 0 0 0 1 1 0 0 100 001 010 m = 3 Q2Q1Q0 Bộ đếm này muốn hoạt động cần có mạch reset ban đầu. 2. Bộ đếm vòng xoắn (Twisted-ring Counter): còn gọi bộ đếm Johnson Giống như bộ đếm vòng nhưng lấy ngõ ra đảo hồi tiếp về ngõ vào FF. Q0 D2 Q2 Q2 CK2 CK Q2 Q1 . . D1 Q1 Q1 CK1 D0 Q0 Q0 CK0 . . Giả sử giá trị ban đầu của bộ đếm là Q2Q1Q0 = 000. CK Q0 Q1 Q1 Clock Q2 Q1 Q0 1 2 3 4 5 6 7 : 0 0 0 1 0 0 1 1 0 1 1 1 0 1 1 0 0 1 0 0 0 000 011 110 m = 6 Q2Q1Q0 100 111 001 Bộ đếm này muốn hoạt động cần có mạch reset ban đầu.
File đính kèm:
- Slide-KTS1-C4.doc