VHDL复习题
END CASE; END PROCESS;
PROCESS(CLOCK,Z) IS
BEGIN --消除毛刺的锁存器 IF(CLOCK'EVENT AND CLOCK=‘1’)THEN ZO<=Z; END IF;
END PROCESS;
END ARCHITECTURE ART; 9.序列信号检测器
下面是一个“”序列信号检测器的VHDL描述。 【例3.9.22】 LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL; ENTITY DETECT IS
PORT( DATAIN:IN STD_LOGIC; CLK:IN STD_LOGIC; Q:OUT STD_LOGIC); END ENTITY DETECT;
ARCHITECTURE ART OF DETECT IS
TYPE STATETYPE IS(S0,S1,S2,S3,S4,S5,S6,S7,S8); BEGIN
PROCESS(CLK) IS
VARIABLE PRESENT_STATE:STATETYPE; BEGIN
Q<=‘0’;
CASE PRESENT_STATE IS WHEN S0=>
IF DATAIN=‘0’ THEN PRESENT_STATE:=S1; ELSE PRESENT_STATE:=S0; END IF;
WHEN S1=>
IF DATAIN=‘1’ THEN PRESENT_STATE:=S2; ELSE PRESENT_STATE:=S1; END IF;
WHEN S2=>
IF DATAIN=‘1’THEN PRESENT_STATE:=S3; ELSE PRESENT_STATE:=S1; END IF;
WHEN S3=>
IF DATAIN=‘1’THEN PRESENT_STATE:=S4; ELSE PRESENT_STATE:=S1; END IF;
WHEN S4=>
IF DATAIN=‘1’THEN PRESENT_STATE:=S5; ELSE PRESENT_STATE:=S1; END IF;
WHEN S5=>
IF DATAIN=‘1’THEN PRESENT_STATE:=S6;
VHDL复习题
ELSE PRESENT_STATE:=S1; END IF;
WHEN S6=>
IF DATAIN=‘1’THEN PRESENT_STATE:=S7; ELSE PRESENT_STATE:=S1; END IF;
WHEN S7=>
IF DATAIN=‘0’THEN PRESENT_STATE:=S8; Q<='1';ELSE PRESENT_STATE:=S0;END IF;
WHEN S8=>
IF DATAIN=‘0’THEN PRESENT_STATE:=S1; ELSE PRESENT_STATE:=S2; END CASE;
WAIT UNTI CLK='1'; END PROCESS;
END ARCHITECTURE ART;
END IF;