《可编程逻辑器件概述 (20).ppt》由会员分享,可在线阅读,更多相关《可编程逻辑器件概述 (20).ppt(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA技术技术6.2 Moore型状态机设计6.2.1 Moore6.2.1 Moore型状态机的特点型状态机的特点6.2.2 6.2.2 自动售货机设计实例自动售货机设计实例6.2.1 Moore型状态机的特点 Moore Moore型状态机的输出仅为当前状态的函数。型状态机的输出仅为当前状态的函数。输入发生变化后必须等待时钟的到来,以使状态发生变化,才输入发生变化后必须等待时钟的到来,以使状态发生变化,才能导致输出的变换。能导致输出的变换。要求:要求:货物单价货物单价1.5元,有元,有1元和元和 0.5元元两种硬币,每次投入一枚硬币,机器两种硬币,每次投入一枚硬币,机器能找零。能找零。6.
2、2.2 自动售货机设计实例 状态转换图状态转换图2 仿真或硬件验证仿真或硬件验证4分析设计要求分析设计要求3 1 设计设计3 36.2.2 自动售货机设计实例投币口投币口找零口找零口出出货货口口1.分析设计要求v货物单价:1.5元v两种硬币:1元或0.5元v每次可投入一枚硬币v可以输出货物v也可能找零自动售货机的设计。要求:自动售货机的设计。要求:三种输入:三种输入:0元元0.5元元1元元五种状态:五种状态:已投入已投入0元元已投入已投入0.5元元已投入已投入1元元已投入已投入1.5元元已投入已投入2元元S0S1S2S3S4三种输出:三种输出:无输出无输出有货物,无找零有货物,无找零有货物,并
3、找零有货物,并找零000110IN1Y0010111.分析设计要求IN1状态状态/YS0/00S2/00S3/10S1/00S4/1100000100000001010110101010102.状态转换图01实体实体结构体结构体3.设计IN1IN1CLKCLKY YZDZDLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY ZD ISPORT(clk,RST:IN std_logic;IN1:IN std_logic_vector(1 DOWNTO 0);Y:OUT std_logic_vector(1 DOWNTO 0);END ZD;RSTRST
4、实体实体3.设计结结构构体体3.设计ARCHITECTURE be OF ZD IS BEGINreg:PROCESS(RST,clk)-时序进程 BEGIN End process;com:PROCESS(current_state,IN1)-组合进程 BEGIN End process;END be;IF RST=1 THEN current_state=S0;ELSIF rising_edge(clk)THEN current_stateWHEN S1=WHEN S2=WHEN S3=WHEN S4=END CASE;Y=00;IF IN1=“00”THEN next_state=S0;
5、ELSIF IN1=01 THEN next_state=S1;ELSIF IN1=10 THEN next_state=S2;END IF;TYPE fsm_st IS(S0,S1,S2,S3,S4);SIGNAL current_state,next_state:fsm_st;3.设计ARCHITECTURE be OF ZD IS TYPE fsm_st IS(S0,S1,S2,S3,S4);SIGNAL current_state,next_state:fsm_st;BEGINreg:PROCESS(RST,clk)BEGIN IF RST=1 THEN current_state=S
6、0;ELSIF rising_edge(clk)THEN current_stateY=00;IF IN1=00 THEN next_state=S0;ELSIF IN1=01 THEN next_state=S1;ELSIF IN1=10 THEN next_stateY=00;IF IN1=“00”THEN next_state=S1;ELSIF IN1=01 THEN next_state=S2;ELSIF IN1=10 THEN next_stateY=00;IF IN1=“00”THEN next_state=S2;ELSIF IN1=01 THEN next_state=S3;ELSIF IN1=10 THEN next_stateY=10;IF IN1=“00”THEN next_state=S0;ELSIF IN1=01 THEN next_state=S1;ELSIF IN1=10 THEN next_stateY=11;IF IN1=00THEN next_state=S0;ELSIF IN1=01 THEN next_state=S1;ELSIF IN1=10 THEN next_state=S2;END IF;END CASE;END PROCESS;END be;3.设计4.仿真或硬件验证仿真仿真硬件验证硬件验证谢谢!