Mạch phải ở trong điều kiện ổn định khi mỗi xung xảy ra Chế độ 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
Trang 1Chương 3
HỆ TUẦN TỰ KHÔNG ĐỒNG BỘ
Giới thiệu
Trang 2Mô hình hệ tuần tự Chế độ 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
Chế độ 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
Chế độ 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 3Mục tiêu
• Thiết kế hệ tuần tự không đồng bộ thì khó hơn hệ đồng
bộ do các vấn đề định thì
• Với hệ tuần tự đồng bộ thì xung nhịp đã giải quyết vấn
đề định thì
• 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.
3.1 PHÂN TÍCH
HỆ TUẦN TỰ KHÔNG ĐỒNG BỘ
3.1 PHÂN TÍCH HỆ TUẦN TỰ KHÔNG
ĐỒNG BỘ
3.1.1 Phân tích hệ không đồng bộ với các
flipflop SR
3.1.2 Phân tích hệ cổng không đồng bộ
3.1.3 Các điều kiện chạy đua và lặp vòng
3.1.1 Phân tích hệ không đồng
bộ với các flipflop SR
Trang 4Thí 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ộ
Phân tích bằng bảng chuyển trạng thái với
chuỗi trị vào cụ thể (1)
• Cột thứ nhất của bảng 3.1 liệt kê các giá trị hiện tại của các biến vào và các giá trị ra flipflop ở những thời điểm
kế tiếp trong phân tích hệ bắt đầu với giá trị ban đầu (X1X2=00) và trạng thái bắt đầu (Q1Q2=00 )
• 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)
Phân tích bằng bảng chuyển trạng thái với
chuỗi trị vào cụ thể (2)
• 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)
Bảng 3.1 Phân tích của hình 3.5
R 1 =X 1 ’X 2 ’
S 1 =X 1 X 2
R 2 =X 1 ’X 2
S 2 =X 1 X 2 ’
Z 1 =Q 1 Q 2 + X 1 ’(Q 1 + Q 2 )
Z 2 =Q 1 Q 2 ’ + X 2 ’ (Q 1 + Q 2 ’)
Chuỗi giá trị vào và ra (từ bảng 3.1) là:
X 1 X 2 =00, 10, 11, 01, 11, 10, 00
Q 1 Q 2 =01, 00, 10, 11, 01, 11, 10 trì hoãn không đồng bộ
Trang 5Phân tích bằng bảng chuyển trạng thái
• Trước hết ta xây dựng bảng chuyển trạng thái (transition
table) mà nó cho ta thấy 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 Ta có thể tạo bảng
này như cách làm cho hệ đồng bộ bằng cách ánh xạ các
phương trình trạng thái kế cho hệ 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
state) Mỗi hàng tương ứng với phép gán cụ thể các giá trị vào
các biến bộ nhớ, hoặc tương ứng với trạng thái nội hiện tại
Mỗi ô trong bảng tương ứng với 1 trạng thái toàn phần, và giá
trị trong ô đó là trạng thái nội kế cho trạng thái đó
Hình 3.6 Bảng chuyển trạng thái
của hình 3.5
Hì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
Hình 3.8 Bảng dòng và bảng giá trị ra
cho hình 3.5
Chuỗi giá trị vào và ra là:
X 1 X 2 =00, 10, 11, 01, 11, 10, 00
Q 1 Q 2 =01, 00, 10, 11, 01, 11, 10
Trang 6Hình 3.9 Giản đồ định thì của hình 3.5
3.1.2 Phân tích hệ cổng
không đồng bộ
Hình 3.10 Hệ không đồng bộ
được xây dựng từ cổng
• Để 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 7Cách chọn biến trạng thái Mô hình tổng quát của hệ tuần tự
không đồng bộ
3.1.3 Các điều kiện chạy đua và lặp vòng
Hình 3.14 Mạch và bảng chuyển trạng thái với
chạy đua không tới hạn và lặp vòng
Chạy đua không tới hạn (noncritical race)
Trang 8Chạy đua tới hạn (critical race)
3.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
3.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
– Rút gọn bảng để có số hàng tối thiểu, thực
hiện gán trạng thái (có thể tăng thêm hàng)
Tuy nhiên chi tiết của mỗi bước hơi khác đối với
các hệ không đồng bộ.
3.2.1 Thành lập các bảng dòng cơ bản
Trang 9Bả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
• Ta có thể rút gọn bảng dòng cơ bản thành 1 bảng có ít
hàng hơn
• Tuy nhiên, để bảo đảm có được bảng có số hàng tối thiểu
thì phần lớn người ta bắt đầu bằng bảng dòng cơ bản hơn
là cố gắng xây dựng trực tiếp một bảng được rút gọn từ
đầu
Qui ướ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ế độ
cơ bản)
• Khi thành lập bảng dòng cơ bản, mọi thay đổi ở giá trị vào phải làm cho 1 thay đổi trạng thái vì cho phép
chỉ 1 trạng thái ổn định trên 1 hàng của bảng dòng cơ bản mà thôi.
Thí 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
Thí 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 10Giả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ì?
Thí 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.
Thí dụ 3.2
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 11Thí dụ 3.3
3.2.2 Rút gọn các bảng dòng cơ bản
Phương pháp rút gọn bảng dòng cơ bản
Có 2 phương pháp để rút gọn bảng dòng cơ bản:
1 Phương pháp thứ nhất cần 2 bước–trước hết tìm ra bảng
dòng cơ bản có số hàng tối thiểu và rồi bảng này được
rút gọn hơn bằng cách trộn (hay gom) các hàng lại
2 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
Rú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 12Bảng 3.7 Bảng dòng cơ bản sẽ được rút gọn
X1X2 Các trạng thái có khả
năng tương đương
00 (2, 6, 8 )
01 (5, 12)
11 (3, 10)
10 (4, 11)
Sau khi xét tiếp các trạng thái cùng 1 dòng ta tìm được các trạng thái tương đương còn lại là:
(2, 8) (5, 12) (3, 10) (4, 11)
Bảng 3.8 Bảng dòng cơ bản được rút
gọn từ bảng 3.7
Rút gọn bảng dòng cơ bản
bằng sơ đồ bộ trộn (merger diagram)
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)
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)
Bảng 3.9
Bảng dòng cơ bản Mealy cho bảng 3.4
Trang 13Sơ đồ trộn và bảng dòng rút gọn từ
từ bảng 3.8
Ta có thể rút gọn bảng dòng cơ bản thành bảng Mealy có số hàng tối thiểu dùng thủ tục sau:
1 Tìm được bảng dòng cơ bản rút gọn bằng cách khử đi các trạng thái toàn phần ổn định thừa
2 Xây dựng bảng dòng Mealy từ bảng dòng
cơ bản rút gọn tìm được ở bước 1.
3 Vẽ sơ đồ bộ trộn và dùng nó để trộn những hàng tương đương và có được bảng dòng rút gọn có số hàng tối thiểu.
Trang 143.3 GÁN TRẠNG THÁI VÀ CÀI
ĐẶT CÁC BẢNG DÒNG
• 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
Thí dụ
• Ta sẽ hoàn tất thiết kế cho thí dụ 3.1 Bảng 3.10 cho
bảng dòng rút gọn của bảng 3.9 với các trạng thái kế
được đặt tên theo các trạng thái nội a, b, và c Các giá
trị ra cho các trạng thái toàn phần không ổn định sẽ
được điền vào sau khi đã thực hiện gán trạng thái
Gán trạng thái
Trang 15Hoàn tất bảng giá trị ra
Bảng 3.12
Hình 3.24(a) Cài đặt bằng cổng cho bảng 3.12
Phươ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+)’
Suy ra phương trình SR bằng phương pháp tắt cho thí dụ 3.1
Trang 16Hình 3.24(b) Cài đặt bằng SR FF cho bảng 3.12
3.3.2 Gán trạng thái cho các bảng 3 hàng và 4 hàng
Hình 3.27 Bảng 4 hàng tổng quát và
giản đồ chuyển trạng thái. Hì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 17Hình 3.30 Bảng dòng với các “don’t care”
3.3.3 Các phép gán trạng thái
có hàng chung (Shared-Row assignments)
Hình 3.31
Các chuyển trạng thái được liệt kê trong bảng ở hình 3.31(b) hàm ý là
các trạng thái trong mỗi tập kế cận sau phải được đặt trong 1 chuỗi các
ô kế cận:
Cột 00: (a, c, e) (b, d) Cột 01: (a, b) (c, d, f) Cột 11: (b, c, f) (a, d, e) Cột 10: (a, c, d) (e, f)
Trang 18Hì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)
3.3.4 Hoàn tất bảng ra
Hoàn tất bảng ra
Trang 19Hoàn tất bảng ra (tt) Tó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.
4 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)
7 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