欢迎来到天天文库
浏览记录
ID:12455335
大小:172.00 KB
页数:4页
时间:2018-07-17
《实验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。由于这种检测的关键
2、在于正确码的收到必须是连续的,这就要求检测器必须记住前一次的正确码及正确序列,直到在连续的检测中所收到的每一位码都与预置数的对应码相同。在检测过程中,任何一位不相等都将回到初始状态重新开始检测。例6-27描述的电路完成对序列数"11100101"的。当这一串序列数高位在前(左移)串行进入检测器后,若此数与预置的密码数相同,则输出“A”,否则仍然输出“B”。7.4实验要求1.用VHDL语言描述序列检测器,并对设计进行时序仿真验证。7.5实验报告要求1.写出序列检测器的VHDL源文件,描绘I/O时序图以及状态图,并分析电路设计的正确性。参考VHDL源码如下:architecturebeha
3、viorofSDis4typestate_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;
4、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;4elsestate<=s1;endif;whens5=>sm<="1011";ifdin='1'thenstate<=s6;elsestate<=s0;endif;whens6=>sm<="1011";ifdin='0
5、'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型单进程状态机实现序列(11100
6、101)的检测QuartusII综合后的状态图如下所示:4
此文档下载收益归作者所有