Trung tâm đào tạo thiết kế vi mạch Semicon


  • ĐĂNG KÝ TÀI KHOẢN ĐỂ TRUY CẬP NHIỀU TÀI LIỆU HƠN!
  • Đăng ký
    *
    *
    *
    *
    *
    Fields marked with an asterisk (*) are required.
wafer.jpg

Finite State Machine - Thiết kế máy trạng thái

Email In PDF.

1. Giới thiệu.

Về cơ bản một FSM bao gồm các mạch tổ hợp, tuần tự và đầu ra tổ hợp. Mạch tổ hợp được sử dụng để quyết định các trạng thái tiếp theo của FSM, mạch tuần tự được sử dụng để lưu trữ các trạng thái hiện tại của FSM. Mạch tổ hợp đầu ra: xác định tín hiệu ra của máy trạng thái phụ thuộc vào trạng thái hiện tại và tín hiệu đầu vào.

2. Cấu trúc.

Các loại máy trạng thái

Máy trạng thái có nhiều loại phụ thuộc vào việc code của các bạn. Nhưng dù code theo thì máy trạng thái cũng có 2 loại cấu trúc chính là:

- Mealy State Machine: Đầu ra của máy trạng thái phụ thuộc vào trạng thái hiện tại và tín hiệu đầu vào.

- Moore State Machine : Đầu ra của máy trạng thái chỉ phụ thuộc vào trạng thái hiện tại, không phụ thuộc vào tín hiệu đầu vào.

Tùy vào nhu cầu mà chúng ta nên sử dụng loại Mealy hay Moore.Dù cho chúng ta dung loại thì chúng cũng có 3 thành phần cơ bản: Mạch tổ hợp xác định trạng thái kế tiếp (next state), Mạch tổ hợp xác định giá trị ngõ ra và mạch tuần tự lưu giữ trạng thái hiện tại (current state).

 

Encoding Style

Có nhiều loại code cho máy trạng thái như mình giới thiệu ở trên. Và sau đây là một số loại code cơ bản phụ thuộc vào cách chúng ta biểu diễn trạng thái :

- Mã hóa nhị phân: mỗi trạng thái được biểu diện trong mã nhị phân (tức là 000, 001, 010 ....).

- Mã hóa nhị phân: mỗi trạng thái được thể hiện trong mã nhị phân (tức là 000, 001, 010 ....).

- One Hot: chỉ có một bit là ở mức cao và phần còn lại là mức ở thấp (tức là 0001, 0010, 0100, 1000).

- One Cold: chỉ có một bit là ở mức thấp, còn lại là ở mức cao (1110,1101,1011,0111).

 

Ở đây mình sẽ ví dụ bộ đếm lên, xuống và dừng khi nhấn nút trong máy trạng thái.

 

Về cơ bản, chúng ta sẽ có các tín hiệu sau: tín hiệu vào( mình chọn nút nhấn), xung clk, tín hiệu reset và tín hiệu ra.

Trong đó:

- Clock: là xung nhịp đồng bộ của FSM.

- Reset: là tín hiệu reset FSM sau khi mới bật nguồn để FSM vào trạng thái khởi động. Reset đồng bộ tích cực mức cao.

- Tín hiệu vào: một trong 3 nút nhấn điều khiển lên, xuống, dừng.

- Tín hiệu ra: ngõ ra của bộ phát hiện (ngõ ra FSM). Trạng thái mặc định sẽ là đếm lên, sau đó tùy vào tín hiệu vào mà chúng ta cho đếm lên xuống hoặc dừng.

Mạch chính cho máy trạng thái:

 

Trong đó ta có 3 trạng thái chính là đếm lên, lùi và dừng cùng với biểu diễn lần lượt nhị phân là 001, 010,100. Trạng thái 000 mình sẽ mặc định là đếm lên. Chú ý: mình sử dụng loại Moore nha.

Phân tích:

Ở trạng thái hiện tại là tiến ( màu đỏ bên trong hình elip, có 3 mũi tên đi ra tương đương với 3 tín hiệu điều khiển đến trạng thái tiếp theo) biểu diễn nhị phân là 001:

-           Nếu tín hiệu điều khiển là lùi ( màu đỏ, tương đương với chúng ta nhấn nút 1) thì trạng thái tiếp theo sẽ là trạng thái lui ( biểu diễn nhị phân là 010) cũng là tín hiệu ra output.

-           Ngược lại tín hiệu điều khiển là dừng ( tương đương với nhấn nút 2) thì trạng thái tiếp theo sẽ là dừng ( biểu diễn nhị phân là 100) cũng là tín hiệu ra output.

-           Còn tín hiệu điều khiển tiến thì trạng thái tiếp theo là tiến.

Tương tự với trạng thái hiện tại là dừng, lùi: chúng ta cũng có 3 tín hiệu điều khiển và ba trạng thái tiếp theo tùy thuộc vào ba tín hiệu điều khiển đó.

 

Nguồn: vimach.net 

Bạn Có Đam Mê Với Vi Mạch hay Nhúng      -     Bạn Muốn Trau Dồi Thêm Kĩ Năng

Mong Muốn Có Thêm Cơ Hội Trong Công Việc

    Và Trở Thành Một Người Có Giá Trị Hơn

Bạn Chưa Biết Phương Thức Nào Nhanh Chóng Để Đạt Được Chúng

Hãy Để Chúng Tôi Hỗ Trợ Cho Bạn. SEMICON  

 

Hotline: 0972.800.931 - 0938.838.404 (Mr Long)

 

Lần cập nhật cuối ( Thứ tư, 15 Tháng 5 2019 20:38 )  

Related Articles

Chat Zalo