+ Trạng thái 0 là trạng thái chờ số 1 đầu tiên
+Trạng thái 1 là trạng thái đã có 1 và chờ số 1 thứ 2
+Trạng thái 2 là trạng thái đã có 2 số 1 và chờ số 1 thứ 3
Mô tả FSM trong VHDL Chương trình thực hiện như sau : Chương trình thực hiện như sau :
library IEEE; use IEEE.STD_LOGIC_1164.all; --- ENTITY Bo_doan_xau IS PORT ( d, clk, rst: IN BIT; q: OUT BIT); END Bo_doan_xau; --- ARCHITECTURE state_machine OF Bo_doan_xau IS TYPE state IS (zero, one, two, three); SIGNAL pr_state, nx_state: state; BEGIN
--- Phan mach day: --- PROCESS (rst, clk)
BEGIN
IF (rst='1') THEN pr_state <= zero;
ELSIF (clk'EVENT AND clk='1') THEN pr_state <= nx_state; END IF;
END PROCESS;
--- Phan mach to hop: --- PROCESS (d, pr_state)
BEGIN
CASE pr_state IS WHEN zero => q <= '0';
IF (d='1') THEN nx_state <= one; ELSE nx_state <= zero;
END IF; WHEN one => q <= '0';
IF (d='1') THEN nx_state <= two; ELSE nx_state <= zero;
END IF; WHEN two => q <= '0';
IF (d='1') THEN nx_state <= three; ELSE nx_state <= zero;
END IF; WHEN three => q <= '1';
IF (d='0') THEN nx_state <= zero; ELSE nx_state <= three;
END IF; END CASE; END PROCESS; END state_machine;
Mô tả FSM trong VHDL Kết quả mô phỏng như sau : Kết quả mô phỏng như sau :
Còn một phần là Trải nghiệm mô tả FSM trong phần mềm Xilinx ISE, nhưng do thời gian gấp quá bọn em chưa làm được, bọn em sẽ hoàn thành sớm ạ thành sớm ạ