文档详情

数字电路与逻辑设计(孙彩堂)时序电路-06C-时序电路VHDL设计典型实例.ppt

发布:2017-05-06约字共47页下载文档
文本预览下载声明
library ieee; use ieee.std_logic_1164.all; ENTITY shifter IS PORT( din : in std_logic; reset, clk : in std_logic; QA,QB,QC,QD : buffer std_logic); END shifter; ARCHITECTURE behave OF shifter IS BEGIN Process (reset,clk) Begin if(reset=1) then QA=0; QB=0; QC=0; QD=0; else if (clkEvent and clk = 1) then QA=din; QB=QA; QC=QB; QD=QC; end if; end if; end process; End behave; (4)“状态机”概念及设计 我们可以用输入信号X和电路状态Q来描述时序电路的逻辑功能,这时时序电路称为 状态机(State Machine)。 根据输出信号和输入信号以及电路状态的关系,状态机可以分为两种:穆尔(Moore)型和米利(Mealy)型。 Y=F[X,Q] Y=F[Q] 米利(Mealy)型: 穆尔(Moore)型: 典型状态机示例—序列信号检测器 目标序列信号:“110” 序列检测器 CLK Z din 序列信号检测器工作波形图 S0 S2 0/0 1/0 S1 1/0 0/1 0/0 1/0 Mealy型序列信号检测器—状态图 序列信号:110 S din/Z ‘1’ ‘11’ S0/0 S2/0 0 1 S1/0 1 0 1 Moore型序列信号检测器—状态图 序列信号:110 S/Z din ‘1’ ‘11’ S3/1 ‘110’ 0 0 1 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY sqs IS PORT( din,clk: in Std_logic; z: out Std_logic); END sqs; Mealy型-VHDL代码转换 ARCHITECTURE a OF sqs IS TYPE STATE_TYPE IS (s0, s1, s2); SIGNAL state: STATE_TYPE; BEGIN Mealy型-VHDL代码转换 PROCESS (clk) BEGIN If (clk’EVENT AND clk = ‘1’) then CASE state IS WHEN s0 = IF din=‘1’ THEN state = s1; else state=s0; END IF; WHEN s1 = IF din=‘1 THEN state = s2; else state=s0; END IF; WHEN s2 = IF din=0 THEN state=s0; else state=s2; END IF; WHEN others = state=s0; END CASE; End if; END PROCESS; z=1 when (state=s2 and din=’0’) else 0; --输出不仅与状态有关,而且和输入有关。 END a; Mealy型-VHDL代码转换 序列信号:110 序列检测器 CLK Z din Rst 状态机自启动:RST复位控制 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY sqs IS PORT( Rst,din,clk: in Std_logic; z: out Std_logic); END sqs; ARCHITECTURE a OF sqs IS TYPE STATE_TYPE IS (s0, s1, s2);
显示全部
相似文档