您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 实验7基于FSM的序列检测器设计
1实验基本信息实验课程EDA技术设课形式非独立课程学分4实验项目实验基于FSM的序列检测器设计项目类型设计型项目学时3实验室名称EDA实验室专业名称应用电子年级2010实验分组1/2同组同学学号实验日期7.1实验目的1.学习各类有限状态机FSM的VHDL设计方法。2.理解序列检测器原理并掌握其电路设计方法。7.2实验条件(仪器与材料)1.EDA开发软件QUARTUSII一套2.微机一台7.3实验内容说明实验原理:序列检测器可用于检测一组或多组由二进制码组成的脉冲序列信号,当序列检测器连续收到一组串行二进制码后,如果这组码与检测器中预先设置的码相同,则输出1,否则输出0。由于这种检测的关键在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例6-27描述的电路完成对序列数11100101的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。7.4实验要求1.用VHDL语言描述序列检测器,并对设计进行时序仿真验证。7.5实验报告要求1.写出序列检测器的VHDL源文件,描绘I/O时序图以及状态图,并分析电路设计的正确性。参考VHDL源码如下:architecturebehaviorofSDis2typestate_typeis(s0,s1,s2,s3,s4,s5,s6,s7,s8);signalstate:state_type:=s0;beginprocess(clk,clr,state,din)beginifclr='1'thensm=1011;state=s0;elsifclk'eventandclk='1'thencasestateiswhens0=sm=1011;ifdin='1'thenstate=s1;elsestate=s0;endif;whens1=sm=1011;ifdin='1'thenstate=s2;elsestate=s0;endif;whens2=sm=1011;ifdin='1'thenstate=s3;elsestate=s0;endif;whens3=sm=1011;ifdin='0'thenstate=s4;elsestate=s3;endif;whens4=sm=1011;ifdin='0'thenstate=s5;3elsestate=s1;endif;whens5=sm=1011;ifdin='1'thenstate=s6;elsestate=s0;endif;whens6=sm=1011;ifdin='0'thenstate=s7;elsestate=s2;endif;whens7=sm=1011;ifdin='1'thenstate=s8;elsestate=s0;endif;whens8=sm=1010;ifdin='1'thenstate=s1;elsestate=s0;endif;endcase;endif;endprocess;end;4、仿真结果:45、仿真结果分析:检测到序列11100101时,输出sm=A,否则输出B。仿真结果:在检测到最后一位时,A的出现较时钟上升沿延迟7ns。6、总结:本实验采用Mealy型单进程状态机实现序列(11100101)的检测QuartusII综合后的状态图如下所示:
本文标题:实验7基于FSM的序列检测器设计
链接地址:https://www.777doc.com/doc-2535149 .html