LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SCHK IS PORT( DIN,CLK,CLR : IN STD_LOGIC ; AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END SCHK;ARCHITECTURE behav OF SCHK IS SIGNAL Q : INTEGER RANGE 0 TO 8 ; SIGNAL D : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN D <= "11100101" ; PROCESS( CLK,CLR ) BEGIN IF CLR = '1' THEN Q <= 0 ; ELSIF CLK'EVENT AND CLK='1' THEN CASE Q IS WHEN 0=> IF DIN = D(7) THEN Q <= 1 ; ELSE Q <= 0 ; END IF ; WHEN 1=> IF DIN = D(6) THEN Q <= 2 ; ELSE Q <= 0 ; END IF ; WHEN 2=> IF DIN = D(5) THEN Q <= 3 ; ELSE Q <= 0 ; END IF ; WHEN 3=> IF DIN = D(4) THEN Q <= 4 ; ELSE Q <= 0 ; END IF ; WHEN 4=> IF DIN = D(3) THEN Q <= 5 ; ELSE Q <= 0 ; END IF ; WHEN 5=> IF DIN = D(2) THEN Q <= 6 ; ELSE Q <= 0 ; END IF ; WHEN 6=> IF DIN = D(1) THEN Q <= 7 ; ELSE Q <= 0 ; END IF ; WHEN 7=> IF DIN = D(0) THEN Q <= 8 ; ELSE Q <= 0 ; END IF ; WHEN OTHERS => Q <= 0 ; END CASE ; END IF ; END PROCESS ; PROCESS( Q ) BEGIN IF Q = 8 THEN AB <= "1010" ; ELSE AB <= "1011" ; END IF ; END PROCESS ;END behav ;
时间: 2023-08-26 20:04:04 浏览: 158
vhdl.rar_fun_graf.gdf_vhdl编写的
这是一个 VHDL 代码的实体和行为描述,描述了一个状态机的功能,输入包括 DIN, CLK, CLR 三个信号,输出为 AB 信号。其中 DIN 为输入数据, CLK 为时钟信号,CLR 为清零信号。代码中定义了一个整型变量 Q ,取值范围为 0~8。在时钟上升沿的时候,根据当前状态 Q 和输入的 DIN 信号,判断下一步的状态 Q 。当 Q 的值为 8 时,输出 AB 信号为 "1010",否则输出 AB 信号为 "1011"。
阅读全文