ED基础及应用技术 3_第1页
ED基础及应用技术 3_第2页
ED基础及应用技术 3_第3页
ED基础及应用技术 3_第4页
ED基础及应用技术 3_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA技术教

:《EDA技术及应用》,于玉亭主编主要参考书:《EDA技术与VHDL》,潘松主编第6章

有限状态机6.1有限状态机概述6.2Moore型状态机设计6.3Mealy型状态机设计6.1有限状态机概述6.1.1状态机的特点6.1.2状态机的分类6.1.3一般状态机的结构6.1.1状态机的特点1.状态机具有纯硬件电路的速度和软件控制的灵活性;2.由于状态机的结构相对简单,设计方案相对固定;3.状态机容易构成性能良好的同步时序逻辑模块;4.与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处;5.在高速运算和控制方面,状态机更有其巨大的优势。6.高可靠性。

6.1.2状态机的分类1.Moore型有限状态机输出仅与系统状态有关,与输入信号无关的状态机。2.Maely型有限状态机输出与系统状态和输入信号均有关的状态机。6.1.3一般状态机的结构一般状态机结构框图

时序逻辑进程组合逻辑进程6.2Moore型状态机设计6.2.1Moore型状态机的特点6.2.2自动售货机设计实例6.2.1Moore型状态机的特点Moore型状态机的输出仅为当前状态的函数。输入发生变化后必须等待时钟的到来,以使状态发生变化,才能导致输出的变换。要求:

货物单价1.5元,有1元和0.5元两种硬币,每次投入一枚硬币,机器能找零。6.2.2自动售货机设计实例

状态转换图2

仿真或硬件验证4分析设计要求31

设计336.2.2自动售货机设计实例投币口找零口出货口1.分析设计要求货物单价:1.5元两种硬币:1元或0.5元每次可投入一枚硬币可以输出货物也可能找零自动售货机的设计。要求:三种输入:0元0.5元1元五种状态:已投入0元已投入0.5元已投入1元已投入1.5元已投入2元S0S1S2S3S4三种输出:无输出有货物,无找零有货物,并找零000110IN1Y0010111.分析设计要求IN1状态/YS0/00S2/00S3/10S1/00S4/1100000100000001010110101010102.状态转换图01实体结构体3.设计IN1CLKYZDLIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYZDISPORT(clk,RST:IN

std_logic;

IN1:INstd_logic_vector(1DOWNTO0);

Y:OUT

std_logic_vector(1DOWNTO0));END

ZD;RST实体3.设计结构体3.设计ARCHITECTUREbeOFZDIS……BEGIN

reg:PROCESS(RST,clk)--时序进程 BEGIN

…… Endprocess; com:PROCESS(current_state,IN1)--组合进程 BEGIN

…… Endprocess;ENDbe;IFRST='1'THENcurrent_state<=S0;ELSIFrising_edge(clk)THENcurrent_state<=next_state;ENDIF;CASEcurrent_stateISWHENS0=>WHENS1=>WHENS2=>WHENS3=>WHENS4=>ENDCASE;Y<="00";IFIN1=“00”THENnext_state<=S0;

ELSIFIN1="01"THENnext_state<=S1;

ELSIFIN1="10"THENnext_state<=S2;ENDIF;TYPEfsm_stIS(S0,S1,S2,S3,S4);SIGNALcurrent_state,next_state:fsm_st;3.设计ARCHITECTUREbeOFZDISTYPEfsm_stIS(S0,S1,S2,S3,S4);SIGNALcurrent_state,next_state:fsm_st;BEGINreg:PROCESS(RST,clk)BEGINIFRST='1'THENcurrent_state<=S0;ELSIFrising_edge(clk)THENcurrent_state<=next_state;ENDIF;ENDPROCESS;com:PROCESS(current_state,IN1)BEGINCASEcurrent_stateISWHENS0=>Y<="00";IFIN1="00"THENnext_state<=S0;ELSIFIN1="01"THENnext_state<=S1;ELSIFIN1="10"THENnext_state<=S2;ENDIF;3.设计WHENS1=>Y<="00";IFIN1=“00”THENnext_state<=S1;ELSIFIN1="01"THENnext_state<=S2;ELSIFIN1="10"THENnext_state<=S3;ENDIF;WHENS2=>Y<="00";IFIN1=“00”THENnext_state<=S2;ELSIFIN1="01"THENnext_state<=S3;ELSIFIN1="10"THENnext_state<=S4;ENDIF;WHENS3=>Y<="10";IFIN1=“00”THENnext_state<=S0;ELSIFIN1="01"THENnext_state<=S1;ELSIFIN1="10"THENnext_state<=S2;ENDIF;WHENS4=>Y<="11";IFIN1="00"THENnext_state<=S0;ELSIFIN1="01"THENnext_state<=S1;ELSIFIN1="10"THENnext_state<=S2;ENDIF;ENDCASE;ENDPROCESS;ENDbe;

3.设计4.仿真或硬件验证仿真硬件验证6.3Mealy型状态机设计6.3.1Mealy型状态机的特点6.3.2序列检测器设计实例6.3.1Mealy型状态机的特点

Mealy型状态机的输出是输入和系统状态的函数。如果输入改变,输出可以在一个时钟周期的中间发生改变。这使Mealy状态机相比于Moore状态机,对输入变化的影响更早一个时钟周期,但也使输出随着假输入的变化而变化。输入线上的噪音也会传到输出。要求:

利用Mealy状态机设计一个检测输入是否为三个连1或三个连0的序列检测器。当X输入为三个连1或连0状态时,y为1;否则为0。6.3.2序列检测器设计实例

状态转换图2

仿真或硬件验证4分析设计要求31

设计336.3.2序列检测器设计实例两种输入:01五种状态:初始状态一个1两个连1一个0两个连0S0S1S2S3S4两种输出:输出1输出001XY10检测输入是否三个连续为1或0两种输入:0或1每次输入一位数输入三个连续为1或0,输出为1,否则输出为0序列检测器的设计。要求:1.分析设计要求X/Y状态S00/00/11/0S1S3S2S41/00/00/01/00/01/02.状态转换图1/1实体结构体3.编程及仿真XCLKYdetectorRST实体3.设计LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdetectorISPORT(CLK,RST:INSTD_LOGIC;

X:INSTD_LOGIC;

Y:OUTSTD_LOGIC);ENDdetector;结构体3.设计ARCHITECTUREbeOFdetectorIS……BEGIN

reg:PROCESS(RST,CLK)--时序进程 BEGIN

…… Endprocess; com:PROCESS(current_state,X)--组合进程 BEGIN

…… Endprocess;ENDbe;CASEcurrent_stateISWHENS0=>WHENS1=>WHENS2=>WHENS3=>WHENS4=>ENDCASE;IF(x=‘1’)THENnext_state<=s2;

Y<=‘1’;ELSEnext_state<=s3;Y<=‘0’;ENDIF;

TYPEstatesIS(s0,s1,s2,s3,s4);SIGNALcurrent_state,next_state:states;3.设计IFCLK’EVENTANDCLk=‘1’THENIF(RST=‘1’)THENcurrent_state<=S0;ELSEcurrent_state<=next_state;ENDIF;ENDIF;LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdetectorISPORT(CLK,RST:INSTD_LOGIC;

X:INSTD_LOGIC;

Y:OUTSTD_LOGIC);ENDdetector;ARCHITECTUREbeOFdetectorISTYPEstatesIS(s0,s1,s2,s3,s4);SIGNALcurrent_state,next_state:states;BEGINREG:PROCRSS(CLK,RST)BEGINIF(CLK’EVENTANDCLK=‘1’)THENIF(RST=‘1’)THENcurrent_state<=S0;ELSEcurrent_state<=next_state;ENDIF;ENDIF;ENDPROCESSREG;3.设计COM:PROCESS(X,current_state)BEGINCASEcurrent_stateISWHENs0=>IF(X=‘1’)THENnext_state<=s1;ELSEnext_state<=s3;ENDIF;Y<=‘0’;WHENs1=>IF(X=‘1’)THENnext_state<=s2;ELSEnext_state<=s3;ENDIF;Y<=‘0’;WHENs2=>IF(X=‘1’)THENnext_state<=s2;

Y<=‘1’;ELSEnext_state<=s3;Y<=‘0’;ENDIF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论