K述列 接上页 WHEN ST3=> IF DATAIN =00 THEN C ST < ST4 ELSE C ST<=ST2;END工F; "o010"; WHEN ST4 IE DATAIN =11 THEN C ST < STO ELSE C ST<=ST3;END工F; Q<="1001"; WHEN OTHERS =>C ST < STO END CASe END工F; END PROCESS end behav
KX 康芯科技 接上页 WHEN ST3 => IF DATAIN ="00" THEN C_ST <= ST4 ; ELSE C_ST <= ST2 ;END IF; Q <= "0010" ; WHEN ST4 => IF DATAIN ="11" THEN C_ST <= ST0 ; ELSE C_ST <= ST3 ;END IF; Q <= "1001" ; WHEN OTHERS => C_ST <= ST0; END CASE; END IF; END PROCESS; END behav;
K述列 72 Moore型有限状态机的设计 722单进程 Moore型有限状态机 statemachine DATA以1 CL r Dp@四p可二 只 c-st[0: 4] ] q6B32 图7-7例7-4状态机综合后的RTL电路模块
KX 康芯科技 7.2.2 单进程Moore型有限状态机 7.2 Moore型有限状态机的设计 图7-7 例7-4状态机综合后的RTL电路模块
K述列 72 Moore型有限状态机的设计 722单进程 Moore型有限状态机 Name 10520830s40550us60s70s80s T-RST D-CLK 0 1T几 D DATAIN HO:: 2 ::02X 3 H C 5C2C292921C2C 9 Oy C_ST ST3::::: STO T1837⑤卫s14T4S下卫⑤sz5T oQ1 」「 0「 图78例7-4单进程状态机工作时序
KX 康芯科技 7.2.2 单进程Moore型有限状态机 7.2 Moore型有限状态机的设计 图7-8 例7-4单进程状态机工作时序
K述列 72 Moore型有限状态机的设计 722单进程 Moore型有限状态机 0几几几几几 DATAINH30 2 3 0 HC: 9 C:x:2:X:c:X: 2:X: 9 912:XC 3C DC ST H2:0:X::: 23234343232 ①Q2 ①Q1 0 图7-9对应于例74的2进程状态机工作时序图
KX 康芯科技 7.2.2 单进程Moore型有限状态机 7.2 Moore型有限状态机的设计 图7-9 对应于例7-4的2进程状态机工作时序图
73Meay型有限状态机的设计K" 【例75】 LIBRARY IEEE: USE IEEE STD LOGIC 1164.ALL: ENTITY MEALYI IS PORT(CLK, DATAIN, RESET IN STD LOGIC; Q: OUT STD LOGIC VECTOR(4 DOWNTO O)); END MEALY1 architecture behay OF MEALy1 Is TYPE states IS(stO, stl, st2, st3, st4); SIGNAL STX: states BEGIN COMREG: PROCESS( CLK.RESET) BEGIN-决定转换状态的进程 IF RESET='1' THEN STX <=STO; ELSIF CLK'EVENT AND CLK='1 THEN CASE STX IS
KX 康芯科技 7.3 Mealy型有限状态机的设计 【例7-5】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY1 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); END MEALY1; ARCHITECTURE behav OF MEALY1 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; BEGIN COMREG : PROCESS(CLK,RESET) BEGIN --决定转换状态的进程 IF RESET ='1' THEN STX <= ST0; ELSIF CLK'EVENT AND CLK = '1' THEN CASE STX IS