电子设计自动化第五章状态机.ppt

第五章 有限状态机设计;第一节 一般状态机的设计; ;;;二、有限状态机的优越性;三、一般状态机的设计;;;;;;;;;;;状态机的建立过程;二、建立状态机的主控时序进程和主控组合进程;三、在主控组合进程中定义状态的转移;第二节 Moore型有限状态机的设计 ;;2、 AD0809采样控制器的设计;;系统级的设计是控制器设计的步骤: 第一步,是将控制器指标规范用自然语言描述,并将其语言描述转换为真值表、状态图或算法模型的过程。 对于VHDL语言来说,系统级的设计就是用一系列相互关联的进程组成硬件算法模型,即将描述系统功能的自然语言翻译为进程,每个进程完成不同的功能,并通过进程模型图来表示。 在ADC0809控制器的设计中,可以将其划分为三个进程,即状态生成进程、状态转换进程、状态机输出进程。三部分关系见图1所示。 ;;二、状态划分;;; 根据以上设计思想和VHDL语言的特点,控制器的状态生成进程以时钟信号为敏感量,当时钟发生有效跳变时,状态机的状态发生变化,即产生下一状态。而状态转换进程采用组合逻辑进程,使用CASE语句检查状态机的当前状态,然后使用IF-THEN-ELSE语句决定下一状态。这种描述风格产生结构化的VHDL代码,并且可读性好。;;;;;;;;ADC0809;注意转换输出 已改变为:7C;3、单进程Moore型有限状态机 ;;;;;;;第三节 Mealy型有限状态机的设计;;; 【例8-6】 MEALY2 LIBRARY IEEE; --MEALY FSM USE IEEE.STD_LOGIC_1164.ALL; ENTITY MEALY2 IS PORT ( CLK ,DATAIN,RESET : IN STD_LOGIC; Q : OUT STD_LOGIC_VECTOR(4 DOWNTO 0)); END MEALY2; ARCHITECTURE behav OF MEALY2 IS TYPE states IS (st0, st1, st2, st3,st4); SIGNAL STX : states ; SIGNAL Q1 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN COMREG : PROCESS(CLK,RESET) --决定转换状态的进程 BEGIN IF RESET =1 THEN STX = ST0; ELSIF CLKEVENT AND CLK = 1 THEN CASE STX IS WHEN st0 = IF DATAIN = 1 THEN STX = st1; END IF; WHEN st1 = IF DATAIN = 0 THEN STX = st2; END IF; WHEN st2 = IF DATAIN = 1 THEN STX = st3; END IF; WHEN st3= IF DATAIN = 0 THEN STX = st4; END IF; WHEN st4= IF DATAIN = 1 THEN STX = st0; END IF; WHEN OTHERS = STX = st0; END CASE ; ;IF CLKEVENT AND CLK = 1 THEN Q1=Q2; END IF; END PROCESS COM1 ; Q = Q1 ; END behav;; END IF; END PROCESS COMREG ; COM1: PROCESS(STX,DATAIN,CLK) --输出控制信号的进程 VARIABLE Q2 : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN CASE STX IS WHEN st0 = IF DATAIN = 1 THEN Q2 := 10000 ; ELSE Q2 := 01010 ; END IF

文档评论(0)

1亿VIP精品文档

相关文档