在下面横线上填上合适的语句,完成状态机的设计。 说明:设计一个双进程状态机,状态0时如果输入”10”则转为下一状态,否则输出”1001”;状态1时如果输入”11”则转为下一状态,否则输出”0101”;状态2时如果输入”01”则转为下一状态,否则输出”1100”;状态3时如果输入”00”则转为状态0,否则输出”0010”。复位时为状态0。 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity moore1is port (datain:in std_logic_vector(1 downto 0); clk, rst:in std_logic; q: out std_logic_vector(3 downto 0)); end; architectureone of moore1 is type st_typeis (st0, st1, st2, st3); -- 定义4个状态 signal cst,nst: st_type; -- 定义两个信号(现态和次态) signal q1:std_logic_vector(3downto 0); begin reg: process(_____) -- 主控时序进程 begin if rst='1'then cst<= _____; -- 异步复位为状态0 elsif clk'event and clk='1' then cst<= ________; -- 现态=次态 end if; end process; com: process(________) begin case ______is when st0 => if datain="10" then nst<=st1; else nst<=st0; q1<="1001";end if; when st1 => if datain="11" then nst<=st2; else nst<=st1; q1<="0101";end if; when st2 => if datain="01" then nst<=st3; else nst<=st2; q1<="1100";end if; when st3 => if datain="00" then nst<=st0; else nst<=st3; q1<="0010";end if; end case ; end process; q<=q1; end;