Phân tích bằng bảng chuyển trạng thái với • Mỗi tổ hợp các giá trị của các ngõ vào mạch và các ngõ ra bộ nhớ các ngõ ra flipflop trong trường hợp này sẽ được gọi là trạng thái toàn phần
Trang 1Chương 3
HỆ TUẦN TỰ KHÔNG ĐỒNG BỘ
Trang 2Phân loại các mạch logic
Trang 3Mô hình hệ tổ hợp
Trang 4Mô hình hệ tuần tự
Trang 5Chế độ làm việc
• Để cho hệ tuần tự không đồng bộ hoạt động đúng, người
ta phải giới hạn nó làm việc ở chế độ cơ bản (fundamental mode) hoặc chế độ xung (pulse mode)
• Chế độ cơ bản: mỗi một trong các tín hiệu vào từ ngoài
chỉ có thể thay đổi tại 1 thời điểm từ 0 sang 1 hoặc từ 1 sang 0, và mạch phải ở trong điều kiện ổn định (tất cả các tín hiệu trong mạch phải ổn định; nghĩa là chúng phải đạt được giá trị xác lập) khi xảy ra một sự thay đổi ở tín hiệu vào.
• Chế độ xung: Thí dụ: xung dương thì mỗi xung dương,
sự thay đổi từ 0 sang 1 và trở về 0 được tạo ra bằng 1 tín hiệu vào từ bên ngoài, biểu thị 1 sự kiện định thì Mạch phải ở trong điều kiện ổn định khi mỗi xung xảy ra
Trang 6Chế độ cơ bản của hệ tuần tự không đồng bộ
• Chú ý: Mạch phải ổn định trước mỗi sự kiện định thì và mỗi lần chỉ có một tín hiệu vào từ ngoài có thể thay đổi từ 0 sang 1 hoặc từ 1 sang 0
Trang 7Chế độ xung của hệ tuần tự không đồng bộ
Chú ý: Mạch phải ổn định trước mỗi sự kiện định thì và mỗi lần chỉ có một tín hiệu vào từ ngoài có thể tạo 1 xung dương
Trang 8• Với hệ tuần tự không đồng bộ thì sẽ phải cần các kỹ
thuật thiết kế đặc biệt để khử các vấn đề định thì có từ các trì hoãn không bằng nhau qua các đường dẫn khác nhau trong hệ
• Để đơn giản hóa phân tích và thiết kế, ta sẽ giả sử rằng
các hệ tuần tự không đồng bộ của ta làm việc ở chế độ
cơ bản.
Trang 93.1 PHÂN TÍCH
HỆ TUẦN TỰ KHÔNG ĐỒNG BỘ
Trang 103.1 PHÂN TÍCH HỆ TUẦN TỰ KHÔNG
Trang 113.1.1 Phân tích hệ không đồng
bộ với các flipflop SR
Trang 12Thí dụ: ta sẽ phân tích hệ ở hình sau bằng cách theo dõi các tín
hiệu dùng chuỗi vào
X1X2=00, 10, 11, 01, 11, 10, 00.
Giả sử các ngõ ra Q ban đầu của flipflop là 0 (Q1Q2=00)
Hình 3.5 Hệ trì hoãn không đồng bộ
Trang 13Phân tích bằng bảng chuyển trạng thái với
• Mỗi tổ hợp các giá trị của các ngõ vào mạch và các ngõ
ra bộ nhớ (các ngõ ra flipflop trong trường hợp này) sẽ
được gọi là trạng thái toàn phần (total state) của hệ
• Để tránh nhầm với trạng thái toàn phần, ta sẽ gọi trạng
thái của các flipflop là trạng thái nội (internal state)
Trang 14• Với mỗi trạng thái toàn phần trong phân tích hình 3.5, các giá trị ra và các giá trị vào flipflop được tính toán dùng các phương trình:
• Đối với trạng thái toàn phần cho trước, trạng thái nội
kế giống như trạng thái nội hiện tại, sẽ không xảy ra
thay đổi trạng thái và ta nói rằng hệ ở trạng thái toàn
phần ổn định (stable total state)
Trang 16Phân tích bằng bảng chuyển trạng thái
• Xây dựng bảng chuyển trạng thái (transition table): các trạng
thái kế của flipflop là hàm của trạng thái hiện tại và các giá trị vào
Với hình 3.5, các phương trình trạng thái kế là:
• Mỗi cột trong bảng này tương ứng với tổ hợp cụ thể các giá trị
của các biến vào, hoặc tương ứng với trạng thái vào (input
Trang 17Hình 3.6 Bảng chuyển trạng thái
của hình 3.5
Trang 18Hình 3.7 Các bảng dòng (flow table)
của hình 3.5
(a) Đánh nhãn theo trạng thái nội (b) Đánh nhãn theo trạng thái toàn phần
Trang 20Hình 3.9 Giản đồ định thì của hình 3.5
Trang 213.1.2 Phân tích hệ cổng
không đồng bộ
Trang 22Hình 3.10 Hệ không đồng bộ được xây dựng từ cổng
Trang 23• Để dễ phân tích, người ta tập trung tất cả các trì hoãn liên hệ với mỗi đường hồi tiếp vào một hộp được đánh nhãn “delay” Rồi ta liên hệ một biến trạng thái với mỗi ngõ ra “delay” Nếu ở một thời điểm cho trước, ngõ vào “delay” là 0 (hoặc 1), ngõ ra sẽ là 0 (hoặc 1) sau một thời gian trì hoãn Từ đó ngõ vào “delay” biểu diễn
trạng thái kế của ngõ ra “delay” và trì hoãn với ngõ ra Q1 có ngõ vào là Q1+.
• Sau khi đã đặt các biến trạng thái, ta lập được bảng dòng Hệ được
mô tả bằng các phương trình sau:
• Các phương trình này được điền trong các hình 3.10(b) và (d), và bảng dòng của hình 3.10(c) được tạo nên bằng cách thay thế mỗi
tổ hợp các biến trạng thái bằng ký hiệu trạng thái Các ngõ vào
khoanh tròn biểu diễn các trạng thái toàn phần ổn định Với một chuỗi vào bất kỳ cho trước, các chuỗi trạng thái và ngõ ra có thể được xác định từ hình 3.10(b) hoặc (c) và (d)
Trang 24Cách chọn biến trạng thái
Trang 25Mô hình tổng quát của hệ tuần tự
không đồng bộ
Trang 263.1.3 Các điều kiện chạy đua và lặp vòng
chạy đua không tới hạn và lặp vòng
Trang 27Chạy đua không tới hạn
(noncritical race)
Trang 28Chạy đua tới hạn (critical race)
Trang 293.2 THÀNH LẬP VÀ RÚT GỌN CÁC BẢNG
DÒNG CƠ BẢN
3.2.1 Thành lập các bảng dòng cơ bản
3.2.2 Rút gọn các bảng dòng cơ bản
Trang 303.2 THÀNH LẬP VÀ RÚT GỌN
CÁC BẢNG DÒNG CƠ BẢN
Cách thiết kế cho hệ không đồng bộ thì tương tự
với cách thiết kế cho các hệ đồng bộ:
– Xây dựng một bảng trạng thái (hay bảng dòng)
từ phát biểu vấn đề/bài toán
Trang 313.2.1 Thành lập các bảng dòng cơ bản
Trang 32Bảng dòng cơ bản
(primitive flow table)
• Thông thường điểm bắt đầu để tổng hợp hệ không đồng
bộ là lập bảng dòng cơ bản (primitive flow table) hay
còn gọi là bảng dòng sơ khai
• Bảng dòng cơ bản được định nghĩa như bảng dòng mà có chính xác một trạng thái toàn phần ổn định trên mỗi hàng
Trang 33Qui ước lập bảng dòng cơ bản
• Để tránh các vấn đề định thì mà có thể phát sinh khi 2
biến vào thay đổi đồng thời, ta sẽ giả sử rằng mỗi lần
chỉ có 1 biến vào thay đổi và các thay đổi giá trị vào
cách nhau để hệ sẽ luôn luôn đạt đến trạng thái toàn phần ổn định giữa những thay đổi (hoạt động chế độ
Trang 34Thí dụ 3.1
Một hệ không đồng bộ có 2 ngõ vào và 1 ngõ ra Chuỗi vào X1X2=00, 01, 11 làm cho ngõ ra trở thành 1 Rồi sự thay đổi giá trị vào kế tiếp làm cho ngõ ra quay về 0
Không có chuỗi vào nào khác sẽ tạo ra 1 ở ngõ ra
Trang 35Thí dụ 3.1 Bảng dòng cơ bản hoàn tất
Ghi chú:
*: các trạng thái này không thể dẫn đến giá trị ra 1 nếu ban đầu không reset
Trang 36Giản đồ trạng thái của bảng dòng cơ
bản ở TD 3.1
Sự khác biệt với giản đồ trạng thái của hệ tuần tự đồng bộ là gì?
Trang 37Thí dụ 3.2
Thí dụ này minh họa thiết kế T flipflop với xung nhịp kích cạnh ở hình 3.18(a) Mặc dù flipflop này được sử dụng như 1 bộ phận trong các hệ
đồng bộ, thiết kế bên trong của flipflop là vấn đề không đồng bộ Flipflop có 2 ngõ vào T và P
Flipflop sẽ đổi trạng thái nếu T=1 khi xung nhịp
P thay đổi từ 1 sang 0 Dưới tất cả các điều kiện vào khác, Q giữ không đổi Ta sẽ giả sử rằng T
và P không thay đổi đồng thời.
Trang 38Thí dụ 3.2 Bảng dòng cơ bản của T FF
Trang 39Thí dụ 3.3
Một tín hiệu xung nhịp C được chọn cho qua bằng một tín hiệu S khác Mạng cho qua sao cho phải có những xung đầy đủ xuất hiện ở ngõ ra Z ngay cả khi S có thể thay đổi ở giữa xung nhịp
Hình sau chỉ giản đồ định thì của mạng sẽ được thiết kế Ngay cả khi có xung nhịp, đây là vấn đề không đồng bộ bởi vì ngõ vào S
được cho phép thay đổi bất cứ lúc nào so với xung nhịp Ta sẽ giả
sử rằng S sẽ luôn luôn ON (dẫn=‘1’) hay OFF (tắt=‘0’) ở tối thiểu 2 xung nhịp đầy đủ.
Trang 40Thí dụ 3.3
Trang 413.2.2 Rút gọn các bảng dòng cơ bản
Trang 422 Phương pháp thứ hai thực hiện sự rút gọn toàn phần
trong 1 bước bằng cách áp dụng phương pháp rút gọn tổng quát cho các bảng trạng thái không hoàn toàn (đọc thêm Introduction to Switching Theory nội dung Logic Design, 3rd Edition của Hill và Peterson, chương 13 và 14)
Phương pháp thứ nhất thường thực hiện ít tốn công hơn và
sẽ được bàn ở đây
Trang 43Rút gọn sơ bộ bảng dòng cơ bản bằng cách khử các trạng thái toàn phần ổn định thừa
• Ta có thể tìm được bảng dòng cơ bản có số hàng tối thiểu
bằng cách khử đi các trạng thái toàn phần ổn định thừa Để làm điều này, ta phải tìm ra được các trạng thái toàn phần ổn định tương đương
• Hai trạng thái toàn phần ổn định được gọi là tương đương nếu
chúng có cùng số ngõ vào và các trạng thái nội liên hệ là
tương đương Như vậy 2 trạng thái toàn phần ổn định được gọi là tương đương nếu
1 các ngõ vào của chúng giống nhau,
2 có các ngõ ra giống nhau, và
3 các trạng thái kế của chúng tương đương với mỗi giá trị vào có thể có.
Trang 45Bảng 3.8 Bảng dòng cơ bản được rút
gọn từ bảng 3.7
Trang 46Rút gọn bảng dòng cơ bản bằng sơ đồ bộ trộn (merger diagram)
• Mỗi một bảng dòng cơ bản có số hàng tối
thiểu được xét ở trên có thể được rút gọn
thêm nữa bằng cách trộn các hàng (hay gọi là gom các hàng)
• Các bước tiến hành:
1 Đổi bảng Moore thành bảng Mealy
2 Vẽ sơ đồ bộ trộn (merger diagram) (hay
còn được gọi là bảng sơ đồ gom hàng)
Trang 47Bảng 3.9
Bảng dòng cơ bản Mealy cho bảng 3.4
Trang 48Sơ đồ trộn và bảng dòng rút gọn từ
bảng 3.9
Trang 49Bảng dòng rút gọn
từ bảng 3.8
Trang 50Bảng dòng rút gọn từ hình 3.18
Trang 523.3 GÁN TRẠNG THÁI VÀ CÀI
ĐẶT CÁC BẢNG DÒNG
Trang 53• Trong việc chọn gán trạng thái cho các hệ đồng bộ, đối tượng chính là đơn giản hóa mạch logic
• Tuy nhiên, đối với các hệ không đồng bộ thì các đối
tượng chính trong chọn gán trạng thái là ngăn ngừa các chạy đua tới hạn, và sự đơn giản hóa mạch logic trở
thành đối tượng thứ hai
• Sau khi đã thực hiện gán trạng thái để không có các
chạy đua tới hạn, thì ta có thể cài đặt hệ không đồng bộ dùng các cổng và các S-R flipflop hoặc chỉ sử dụng các cổng
Trang 54Gán trạng thái cho ví dụ 3.1: ta có bảng 3.11
Trang 55Hoàn tất bảng giá trị ra
Bảng 3.12
Trang 56Hình 3.24(a) Cài đặt bằng cổng cho bảng 3.12
Trang 57Phương pháp tắt để suy ra các phương trình ngõ vào của SR FF
Từ bảng sau, ta thấy là khi Qi=0, Si=Qi+;
tương tự khi Qi=1, Ri=(Qi+)’
Trang 58Suy ra phương trình SR bằng phương pháp tắt cho thí dụ 3.1
Trang 59Hình 3.24(b) Cài đặt bằng SR FF cho bảng 3.12
Trang 603.3.2 Gán trạng thái cho các
bảng 3 hàng và 4 hàng
Trang 61Hình 3.27 Bảng 4 hàng tổng quát và
giản đồ chuyển trạng thái.
Trang 62Hình 3.28 (a) Gán trạng thái vạn năng cho bảng 4 hàng
(b) Bảng 4 hàng được mở rộng
Trang 63Hình 3.30 Bảng dòng với các “don’t care”
Trang 643.3.3 Các phép gán trạng thái
có hàng chung (Shared-Row assignments)
Trang 68Hình 3.33 Bảng mở rộng của bảng ở
hình 3.31(a) dùng phép gán ở hình 3.32(b)
Trang 693.3.4 Hoàn tất bảng ra
Trang 70Hoàn tất bảng ra
Trang 71Hoàn tất bảng ra (tt)
Trang 72Tóm tắt thủ tục thiết kế hệ tuần tự
không đồng bộ
1 Cho trước vấn đề, xác định quan hệ cần có giữa các biến vào và ra Suy ra bảng dòng cơ bản mà có một trạng thái toàn phần ổn định trên mỗi hàng, và xác định giá trị ra có liên quan với mỗi trạng thái toàn phần ổn định.
2 Rút gọn bảng dòng cơ bản để có được số hàng tối thiểu Việc này thường có thể được thực hiện trong 2 bước Trước hết xác định các trạng thái toàn phần tương đương và tìm ra bảng dòng cơ bản có số hàng tối thiểu Rồi hợp nhất (gom, trộn) các hàng trong bảng này
để tìm ra bảng rút gọn cuối cùng Sơ đồ trộn có thể hữu ích trong việc chọn các hàng sẽ được hợp nhất.
3 Tìm ra phép gán trạng thái mà khử đi tất cả các chạy đua tới hạn giữa các biến trạng thái Trong quá trình này có thể cần mở rộng bảng dòng bằng cách thêm các hàng.
Trang 734 Lập bảng chuyển trạng thái bằng cách thay thế các giá trị được gán các biến trạng thái cho mỗi trạng thái trong
bảng dòng mở rộng Nếu sử dụng bảng giá trị ra Mealy, điền vào các chỗ không xác định thì cần tránh các quá độ nhất thời trong bảng giá trị ra Vẽ các bảng trạng thái kế
và các bảng giá trị ra từ bảng chuyển trạng thái
5 Nếu không sử dụng các SR flipflop, tìm một cài đặt
không có hazard cho mỗi hàm trạng thái kế dùng các
cổng logic khã dụng
6 Nếu không sử dụng SR flipflop, vẽ các bảng giá trị vào flipflop và tìm một cài đặt không có các “hazard 0” cho mỗi S và R (nếu sử dụng các SR flipflop cổng NAND, các ngõ vào flipflop là các bù của S và R và phải không
có các hazard 1)
Trang 747 Tìm cài đặt không có hazard của các hàm ra.
8 Nếu có các hazard tất yếu (essential hazard) trong
bảng dòng, thì thêm các trì hoãn (delay) trong các
đường hồi tiếp hoặc sửa đổi cấu trúc cổng để khử đi các hazard tất yếu
9 Kiểm tra lại thiết kế của bạn bằng cách kiểm tra thực nghiệm hoặc mô phỏng trên máy tính