Máy trạng thái hữu hạn được phân thành 2 loại: Moore FSM : là máy trạng thái có giá trị của đầu ra chỉ phụ thuộc vào trạng thái hiện tại mà không phụ thuộc vào giá trị đầu vào. Mealy FSM: là máy trạng thái có giá trị của đầu ra không chỉ phụ thuộc vào trạng thái hiện tại mà còn phụ thuộc vào giá trị đầu vào. Bộ đếm là FSM Moore
Thiết kế mô ĐẾM THEO PHƯƠNG PHÁP MÁY TRẠNG THÁI Khái niệm máy trạng thái ■Mạch dãy hoạt động thông qua dãy trạng thái hữu hạn xem máy trạng thái hữu hạn (FSM) ■Bộ đếm mạch dãy đặc biệt đếm máy trạng thái Phân loại máy trạng thái ■Máy trạng thái hữu hạn phân thành loại: – Moore FSM : máy trạng thái có giá trị đầu phụ thuộc vào trạng thái mà không phụ thuộc vào giá trị đầu vào – Mealy FSM: máy trạng thái có giá trị đầu khơng phụ thuộc vào trạng thái mà phụ thuộc vào giá trị đầu vào ■Bộ đếm FSM Moore Mơ hình máy trạng thái Moore Mơ hình máy trạng thái Mealy Đồ hình trạng thái đếm Các bước thiết kế đếm theo pp FSM ■ Bước 1: xác định yêu cầu: Kđ? Cách thức đếm (tiến hay lùi)? Mã đếm? ■ Bước 2: Lập đồ hình trạng thái đếm ■ Bước 3: lập mã VHDL: – Khai báo trạng thái – Viết process cho trạng thái dựa vào đồ hình trạng thái – Viết process cho đầu dựa vào mã đếm Ví dụ thiết kế đếm tiến, nhị phân Kđ =4 ■Phân tích yêu cầu: ■Code entity: ■Kđ = ; Mã nhị phân có trạng ■ thái có bít đầu Entity dem4 is ■ port ( ckl : in std_logic; ■ reset: in std_logic; ■ ■ Qout: out std_logic_vector(1 downto 0) ); Ví dụ thiết kế đếm tiến, nhị phân Kđ =4 ■ Code khai báo trạng thái: ■Lập đồ hình trạng thái: ■Kđ = có trạng thái S0,S1,S2,S3: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ Type state is (S0,S1,S2,S3); Signal s: state; Code process mơ tả đồ hình trạng thái: Next_state: process( clk, reset) begin if reset = ‘1’ then s s s s s Qout Qout Qout Qout if kd ='1' then Q : out STD_LOGIC_VECTOR (3 downto 0)); ■ s Q Q s Q s Q s Q