You are on page 1of 17

FSM loại Mealy

Z = f(Inputs, Current_State)

1
Máy trạng thái hữu hạn loại Mealy
▪ Ví dụ 1: Thiết kế bộ đếm đồng bộ, có 4 trạng thái, sử
dụng JKFF có xung Clock tác động tích cực theo sườn
dương (sườn lên). Bộ đếm sẽ đếm lên mỗi khi tín hiệu
CE=1 (Count Enable). Nếu bộ đếm đang đếm lên và
giá trị đếm = 3 thì tín hiệu ra Y=1.
CE=0/Y=0
CE=0/Y=0 CE=1/Y=0
Count=0 Count=1

CE=1/Y=1 CE=1/Y=0

Count=3 Count=2
CE=0/Y=0 CE=0/Y=0
CE=1/Y=0
2
Bảng trạng thái bộ đếm
Input Current State Next State FF data inputs Output
CE Q2 Q1 Q2 Q1 J2 K2 J1 K1 Y
0 0 0 0 0 0 X 0 X 0
0 0 1 0 1 0 X X 0 0
0 1 0 1 0 X 0 0 X 0
0 1 1 1 1 X 0 X 0 0
1 0 0 0 1 0 X 1 X 0
1 0 1 1 0 1 X X 1 0
1 1 0 1 1 X 0 1 X 0
1 1 1 0 0 X 1 X 1 1
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0 3
Máy trạng thái hữu hạn loại Mealy (tt)
▪ Kết quả:
– J2 = K2 = CE.Q1
– J1 = K1 = CE
– Y = CE.Q1.Q2

4
5
Máy trạng thái hữu hạn loại Mealy (tt)
▪ Đặc điểm Mealy FSM:
– Tín hiệu ra được xác định cho mỗi trạng thái và các
tín hiệu vào tại trạng thái đó
– Tín hiệu ra phụ thuộc vào trạng thái hiện tại và các
giá trị đầu vào tại trạng thái đó
– Do đó giá trị tín hiệu ra ghi tại mũi tên chuyển
trạng thái (vì tín hiệu ra vừa phụ thuộc trạng thái
hiện tại vừa phụ thuộc vào tín hiệu vào)

6
Máy trạng thái hữu hạn loại Mealy (tt)
▪ Các bước thiết kế FSM loại Mealy tương tự như các
bước thiết kế FSM loại Moore (6 bước)
▪ FSM loại Mealy: Do tín hiệu ra phụ thuộc vào các giá
trị đầu vào tại mỗi trạng thái → nên phương trình logic
xác định tín hiệu ra (Output Logic) ở Bước 5 như sau:

Z = g (Current State, Input W)

7
Bài tập
▪ Thiết kế bộ đếm song song (đếm đồng bộ), thực hiện
đếm thuận nghịch theo mã 8421 các số trong tập hợp
{0, 2, 4, 6, 0, 2,…} (đếm các số chẵn) với DIR là tín
hiệu điều khiển chiều đếm: DIR=1 mạch đếm lên,
DIR=0 mạch đếm xuống, sử dụng JKFF có xung
clock tích cực theo sườn lên. Tín hiệu ra Z=1 khi nội
dung bộ đếm = 6 và mạch đang đếm lên.
▪ Bài tương tự: đếm số lẻ {7, 5, 3, 1, 7, 5, 3,…} với
trạng thái ban đầu là 7 (tương ứng “111” → sử dụng
tín hiệu Preset để xác lập trạng thái ban đầu)

8
Bài tập
▪ Thiết kế bộ đếm song song (đếm đồng bộ) đếm thuận nghịch
với X là tín hiệu điều khiển chiều đếm: X=1 mạch đếm lên và
X=0 mạch đếm xuống; đếm 10 (Kđ=10), đếm theo mã 8421 sử
dụng SRFF với xung clock tích cực theo sườn lên.
▪ Gọi Z là tín hiệu ra của mạch báo tràn bộ đếm: Z=1 khi:
– 1) mạch đang đếm lên và số đếm hiện tại là 9; hoặc
– 2) mạch đang đếm xuống và số đếm hiện tại là 0.
▪ Ghép nối tiếp nhiều bộ đếm đã thiết kế ở trên để thực hiện đếm
số thập phân nhiều chữ số: 00 → 99, ví dụ: 00, 01, 02, 03, 04,
05, 06, 07, 08, 09, 10, 11, 12, 13, …, 98, 99, 00, 01, 02, 03, …

▪ Vi mạch đếm đồng bộ thuận nghịch, cho phép đặt trước số đếm
ban đầu: 74192, 74193
9
Nhắc lại
Các bước thiết kế FSM
1. Biểu diễn giản đồ trạng thái  quan trọng nhất!
2. Tối thiểu hóa số trạng thái
3. Mã hóa trạng thái
4. Lựa chọn FF
5. Thực hiện mạch tổ hợp
6. Phân tích tín hiệu theo thời gian

Mã hóa trạng thái và lựa chọn FF như thế nào?


10
Các phương pháp mã hóa trạng thái
▪ n trạng thái cần ít nhất log2n flip-flops.
▪ Có tất cả n! khả năng mã hoá (n lựa chọn cho trạng
thái đầu tiên, n-1 cho trạng thái thứ 2 ...)
No. s0 s1 s2 s3 No. s0 s1 s2 s3
1 00 01 10 11 13 10 00 01 11
2 00 01 11 10 14 10 00 11 01
3 00 10 01 11 15 10 01 00 11
4 00 10 11 01 16 10 01 11 00
5 00 11 01 10 17 10 11 00 01
6 00 11 10 01 18 10 11 01 00
7 01 00 10 11 19 11 00 01 10
8 01 00 11 10 20 11 00 10 01
9 01 10 00 11 21 11 01 00 10
10 01 10 11 00 22 11 01 10 00
11 01 11 00 10 23 11 10 00 01
12 01 11 10 00 24 11 10 01 00

11
Các phương pháp mã hóa trạng thái (tt)
▪ Có cần thiết phải lựa chọn cách mã hoá?
– Có, bởi mỗi sự lựa chọn sẽ cho ta độ phức tạp của mạch
tổ hợp cũng như trễ của toàn bộ mạch
▪ Các kiểu mã hoá thường dùng:
– Straightforward (mã nhị phân 8421)
– Minimum-bit-change (thường dùng mã Gray)
– One-hot / One-cold

12
Mã hóa StraightForward
▪ Kiểu mã hoá này sử dụng giá trị nhị phân của thứ tự
trạng thái để làm mã cho trạng thái đó
– s0→000,
– s5→101,
– ...

13
Mã hóa Minimum-Bit-Change
▪ Mã sẽ được gán cho trạng thái sao cho tổng số bít thay đổi khi
chuyển trạng thái của tất cả các trạng thái là nhỏ nhất
▪ Phương pháp mã hoá này hay đựơc sử dụng khi muốn tối thiểu
hoá kích thước chip cũng như công suất tiêu thụ

1 1
00 01 00 01
Gray code
counter
2 2 1 1

1 1
11 10 10 11

Straightforward Minimum-bit-change

14
Mã hóa One-hot
▪ Mỗi trạng thái ứng với một flip-flop, Q của 1 FF =1,
Q của các FF khác =0
▪ Dùng khi số lượng trạng thái nhỏ
▪ Rất dễ thực hiện, mạch tổ hợp đơn giản
▪ Cấu trúc của FPGA rất phù hợp với kiểu mã hoá này

15
Vấn đề lựa chọn FF sử dụng
▪ JKFF
– Đây là loại flip-flop đắt nhất
– Khó thiết kế nhất
– Có nhiều trạng thái don’t cares (X) nên mạch tổ hợp nhanh
và rẻ nhất
▪ SRFF
– flip-flop rẻ
– Khó thiết kế

16
Vấn đề lựa chọn FF sử dụng (tt)
▪ DFF
– flip-flop rẻ
– Dễ thiết kế nhất
– Không có don’t cares dẫn tới mạch tổ hợp phức tạp và
chậm nhất
▪ TFF
– flip-flop rẻ
– Dễ thiết kế
– Không có don’t cares dẫn tới mạch tổ hợp phức tạp và
chậm nhất
– Thường đựơc dùng để thiết kế bộ đếm nối tiếp (đếm không
đồng bộ) và bộ chia tần
17

You might also like