Mạch tuần tự.

Một phần của tài liệu giáo trình kiến trúc mạng máy tính (Trang 141 - 151)

Chương V: Mạch tuần tự

5.4.Mạch tuần tự.

Sơ ựồ khối mạch tuần tự ựược minh họa có ựồng hồ ựược minh họa như trong hình 5.9. Từ sơ ựồ ta thấy mạch tuần tự là một kết nối các mạch lật với một mạch tổ hợp khác, mà mạch tổ hợp này lại ựược tạo ra từ các cổng cơ bản. Bản thân các cổng tạo thành mạch tổ hợp, nhưng khi gộp vào các mạch lập toàn bộ mạch ựược sắp vào loại mạch tuần tự. Nó gồm một mạch tổ hợp và một số mạch lật có ựồng hồ. Như trong lược ựồ, khối mạch tổ hợp nhận

các tắn hiệu nhị phân từ các ngõ nhập ngoài và từ các ngõ ra của mạch lật. Ngõ ra mạch tổ hợp ựi ra ngoài (gọi là xuất ngoài) và ựi vào mạch lật.

Các cổng trong mạch tổ hợp xác ựịnh trị nhị phân lưu vào mạch lật sau mỗi chuyển tiếp ựồng hồ. đến phiên các ngõ ra của mạch lật ựược ựưa vào mạch tổ hợp và xác ựịnh hành vi của mạch. Hơn nữa, trạng thái kế của mạch lật cũng là hàm của trạng thái hiện tại và các ngõ nhập ngoài. Như vậy mạch tuần tự ựược xác ựịnh bởi các ngõ nhập ngoài, các ngõ xuất ngoài và trạng thái nhị phân của mạch lật. Combinational circuit Flip-flops Clock Input Output Combinational circuit Flip-flops Clock Input Output

Hình 5.9. Sơ ựồ khối mạch tuần tự

Qui trình thiết kế mạch tuần tự ựược thể hiện qua các bước sau: Bước 1: Chuyển ựặc tả mạch sang lược ựồ trạng thái

Bước 2: lược ựồ trạng thái => bảng trạng thái

Bước 3: Từ bảng trạng thái viết hàm cho các ngõ nhập của Flip-flops

Bước 4: vẽ sơ ựồ mạch

để hiểu rõ mạch tuần tự và cách thiết kế nó, ta sẽ bắt ựầu bằng việc xem xét một vắ dụ ựơn giản sau

Vắ dụ: Thiết kế mạch tuần tự dùng mạch lật SR. Khi ngõ nhập x=0, trạng thái mạch lật lề không thay ựổi, ngõ xuất y=0. Khi x=1, dãy trạng thái là 11,10,01,00 và lặp lại còn ngõ xuất y sẽ có giá trị là 1 khi số bit trạng thái mạch lật lề bằng 1 là lẻ, các trường hợp còn lại thì bằng 0.

Giải: Bước 1:

Từ yêu cầu của vắ dụ ta xây dựng lược ựồ trạng thái của mạch. Theo ựề bài ta có 4 trạng thái là 11100100, như vậy sẽ có 4 vòng tròn ựể biểu diễn 4 trạng thái này. Lược ựồ trạng thái của mạch như hình 5.10.

Hình 5.10.Lược ựồ trạng thái mạch

Trong lược ựồ này mỗi trạng thái biểu thị bằng một vòng tròn nhỏ với trạng thái ựược chỉ bên trong vòng tròn và các ựường dẫn trực tiếp nối các trạng thái chỉ cho biết hướng chuyển tiếp giữa các trạng thái. Trên mỗi ựường có mũi tên ựịnh hướng và trên ựó ghi giá trị của biến ựầu vào mạch x và biến ựầu ra y. Giá trị của hai biến này ựược cách nhau bởi dấu Ộ/Ợ. Vắ dụ như nếu ta ựang ở trạng thái 11, và nếu tắn hiệu ựầu vào là 0 (x=0) thì trạng thái sẽ không thay ựổi (ựường có mũi tên xuất phát từ nó và quay về chắnh nó) và ựầu ra y=0. Như vậy trên ựường mũi tên ta ghi 0/0 tức là x/y hay x=0 và y=0. Nếu tắn hiệu vào x=1 thì trạng thái sẽ chuyển sang một trạng thái mới là 10 (mũi tên chỉ ựến trạng thái 10) và vì số bit của các flip-flop có giá trị bằng 1 là 2, tức là chẵn cho nên ựầu ra y=0

11 01 01 00 10 1/1 1/0 1/1 1/0 0/0 0/0 0/0 0/0

=> trên ựường chuyển trạng thái ta ghi 1/0. Ở ựây ta lưu ý là trạng thái mạch lật lề chỉ thay ựổi ở chuyển tiếp của xung ựồng hồ, nhưng trong khi lập luận ựể cho ựơn giản và ựỡ nhầm lẫn ta không ựề cập ựến nó.

Bước 2:

Từ lược ựồ trạng thái này ta sẽ xây dựng một bảng trạng thái. Theo yêu cầu dùng flip-flop SR, ma ta ựã biết mỗi flip-flop cho phép ta nhớ 1 bit. Vậy ở ựây ta có 4 trạng thái, do ựó cần có hai flip-flop ựể mã hóa chúng. Ta gọi 2 flip-flop ựó là A và B, và các ựầu vào của chúng tương ứng sẽ là SA,RA,SB,RB. Từ sơ ựồ khối mạch tuần tự hình 5.9, chúng ta cũng biết ựược ựầu ra của các flip- flop cũng chắnh là ựầu vào của mạch. Như vậy bảng trạng thái sẽ có 3 ựầu vào là A,B và x => có 23=8 tổ hợp. Ngoài ra trong bảng trạng thái ta còn có một ựầu ra y. Các trạng thái của mạch ựược biểu hiện trong bảng 5.3. Dựa vào bảng trạn thái của mạch lật lề ở bảng 5.2 ta sẽ tìm ra các giá trị trong bảng 5.3. Ba cột ựầu tiên là giá trị nhập vào, do ựó ta chỉ cần ựiền các giá trị sao cho thể hiện tất cả các tổ hợp có thể có. để tránh nhầm lẫn ta ựiền theo thứ tự từ 000001010Ầ

Xác ựịnh giá trị trong cột Ộtrạng thái kếỢ

Tiếp theo ựến cộ trạng thái kế, từ lược ựồ trạng thái ta có nếu ựang ở trạng thái 00 (AB=00) thì khi x =0 trạng thái sẽ không thay ựổi, do ựó ở hàng ựầu tiên A=0, B=0; ở hàng tiếp theo khi x=1 thì trạng thái sẽ thay ựổi từ 0011 => A=1, B=1. Tương tự, ta sẽ có ựược giá trị cho tất cả các hàng ở cột trạng thái kế.

Xác ựịnh các ngõ nhập vào các flip-flop

Cũng dựa vào bảng trạng thái của flip-flop SR ta sẽ xác ựịnh ựược các giá trị của các cột còn lại. Chẳng hạn như ựối với flip-flop A, khi A chuyển từ 0 sang 0 thì SA=0, RA=x; khi A chuyển từ 0 sang 1 thì SA=1, RA=0;Ầ.

Trạng thái hiện tại Nhập Trạng thái kế Ngõ nhập vào các flip-flop đầu ra A B x A B SA RA SB RB y 0 0 0 0 0 0 x 0 x 0 0 0 1 1 1 1 0 1 0 0 0 1 0 0 1 0 x x 0 0 0 1 1 0 0 0 x 0 1 1 1 0 0 1 0 x 0 0 x 0 1 0 1 0 1 0 1 1 0 1 1 1 0 1 1 x 0 x 0 0 1 1 1 1 0 x 0 0 1 0 Bảng 5.3. Bảng trạng thái mạch tuần tự Bước 3:

Từ bảng trạng thái 5.3 ta tìm hàm cho các ngõ nhập vào các flip-flop. Chú ý là các hàm tìm ựược phải là ngắn gọn nhất, ựể làm ựược việc ựó ta phải dùng bản ựồ Karnaugh ựể rút gọn chúng. Trước hết từ bảng 5.3 => bản ựồ Karnaugh cho ựầu vào SA như sau :

Từ bản ựồ này ta suy ra => SA = ABx

Tương tự như vậy cho các cổng còn lại, ta có bản ựồ Karnaugh cho RA :

Bx

A 00 01 11 10

0 1

đối với flip-flop B ta có :

Bản ựồ cho ựầu ra y : (adsbygoogle = window.adsbygoogle || []).push({});

Từ bản ựồ này ta suy ra => y= ABx+ ABx

Phương trình nhập mạch lật

Như vậy trong bước 3 này ta ựã tìm ra ựược hàm hay phương trình nhập cho các mạch flip-flop như sau:

Bx A 00 01 11 10 A 00 01 11 10 0 1 1 1 Bx A 00 01 11 10 0 x 1 1 x 1 => RB = Bx Bx A 00 01 11 10 0 1 x 1 1 x => SB = Bx Bx A 00 01 11 10 0 x x x 1 1 => RA= ABx

Ờ SA = ABx

Ờ RA= ABx

Ờ SB = Bx Ờ RB = Bx

Từ vắ dụ này chúng ta thấy rằng phương trình nhập mạch lật là biểu thức Boolean của mạch tổ hợp.

Bước 4:

Bước này là ựơn giản nhất vì khi ựã có hàm Boolean rồi thì việc lựa chọn cổng và vẽ sơ ựồ mạch là hoàn toàn không khó khăn gì. Sơ ựồ mạch của mạch tuần tự cần thiết kế như hình 5.11.

S C C Q Q R S C Q Q R x A B A B Hình 5.11. Sơ ựồ mạch của vắ dụ Clock y

Chú ý là khi vẽ mạch thì các ựầu vào lấy từ các ựầu ra nghịch ựảo của flip-flop phải ựược lấy từ ựầu ra Q của flip-flop tương ứng. Vắ dụ RA= ABx thì ựầu B phải ựược lấy từ ựầu ra Q

của flip-flop B chứ không ựược dùng ựầu ra Q của flip-flop B rồi cho qua một cổng inverter.

Qua vắ dụ trên cho ta các ựặc trưng của một mạch tuần tự như sau:

- Lược ựồ trạng thái ựược biểu diễn bằng các vòng tròn, mỗi vòng tròn biểu diễn một trạng thái và chuyển tiếp giữa các trạng thái ựược ghi nhận bằng các ựường nối các vòng. Luợc ựồ trạng thái cung cấp cho ta các thông tin như bảng trạng thái nhưng một cách trực quan, rõ ràng và dễ hiểu hơn.

- Số nhị phân trong mỗi vòng xác ựịnh trạng thái của các flip-flop. Trên các ựường nối ta ghi giá trị của biến nhập x và biến xuất y cách nhau bằng dấu số (/) bằng các con số nhị phân. Trị nhập trong trạng thái hiện tại ựược ghi trước và số sau dấu sổ là trị xuất trong trang thái hiện hành. Vi dụ ựường nối từ trạng thái 00 ựến 11 ghi 1/0 có nghĩa khi mạch tuần tự ở trạng thái hiện hành 00 và nhập là 1, xuất là 0. Sau một chuyển tiếp ựồng hồ, mạch ựến trạng thái kế 11.

- Lược ựồ trạng thái cho một cái nhìn hình tượng các chuyển tiếp trạng thái và thắch hợp cho mọi người khi diễn giải hoạt ựộng của mạch.

- Mạch tuần tự ựược xác ựịnh qua bảng trạng thái liên kết các ngõ ra và trạng thái kế như là một hàm của các ngỏ nhập và trạng thái hiện hành sang trạng thái kế ựược kắch hoạt bởi một tắn hiệu ựồng hồ. Bảng trạng thái gồm bốn phần, trạng thái hiện hành, nhập, trạng thái kế và xuất. Phần trạng thái hiện hành cho thấy trạng thái của mạch lật A và B tại thời ựiểm t. Phần nhập là trị của x cho mỗi

trạng thái hiện hành. Phần trạng thái kế cho thấy trạng thái của mạch lật tại một chu kỳ sau ựó là thời ựiểm t+1. Phần xuất cho trị của y với mỗi trạng thái hiện hành và ựiều kiện nhập.

- Lược ựồ trạng thái và bảng trạng thái ựề mô tả hoạt ựộng của mạch tuần tự. Có lược ựồ trạng thái thì ta có thể suy ra bảng trạng thái và ngược lại.

Bài tập chương V

1. Hãy chứng minh rằng JK flip-flop có thể chuyển sang D flip-flop với một cổng ựảo ựặt giữa các ngõ nhập J và K

2. Thiết kế mạch tuần tự dùng mạch lật JK. Khi ngõ nhập x=0, trạng thái mạch lật không thay ựổi. Khi x=1, dãy trạng thái là 11,01,10,00 và lặp lại.

3. Một mạch tuần tự gồm 2 D flip-flop A và B , 2 ngõ nhập x,y một ngõ xuất z. Phương trình các ngõ nhập vào các flip-flop và ngõ xuất mạch như sau:

DA = x y + xA DB = x B + xA Z = B

a. Vẽ lược ựộ luận lý của mạch b. Lập bảng trạng thái.

4. Thiết kế mạch ựếm nhị phân 2-bit là một mạch tuần tự có ựồng hồ ựi qua một dãy trạng thái nhị phân 00, 01, 10, 11 và lặp lại khi ngõ nhập ngoài x có trị 1. Trạng thái mạch không ựổi khi x = 0.

5. Thiết kế mạch ựếm giảm 2 bit. đây là mạch tuần tự có 2 flip-flop và 1 ngõ nhập x. Khi x=0, trạng thái mạch lật không ựổi. Khi x=1, dãy trạng thái là 11, 10, 01, 00 và lặp lại.

6. Thiết kế mạch tuần tự có 2 mạch lật JK, A và B và 2 ngõ vào E và x. Nếu E=0 mạch giữ nguyên trạng thái bất chấp x. Khi E=1 và x =1 mạch chuyển trạng thái từ 00 sang 01 sang 10 sang 11 về 00 và lặp lại. (ở ựây E-Enable giống như cổng ựiều khiển cho phép mạch hoạt ựộng hay không)

7. Thiết kế mạch tuần tự dùng mạch lật T. Khi ngõ nhập x=0, trạng thái mạch lật không thay ựổi. Khi x=1, dãy trạng thái là 00,10,01,11 và lặp lại. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu giáo trình kiến trúc mạng máy tính (Trang 141 - 151)