




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA实验五 用状态图输入法实现序列检测器一、实验目的:了解序列检测器的基本原理,Mealy型和Moore型状态机的基本原理,掌握状态图输入法实现序列检测器的方法,并进行分析和仿真验证。二、实验内容:本实验内容是:用状态图输入法设计一个序列检测器,若检测器收到一组码流1110010则输出为1,否则输出为0。三、实验方法:实验方法:采用基于FPGA进行数字逻辑电路设计的方法。采用的软件工具是QuartusII软件仿真平台,采用的硬件平台是Altera EPF10K20TI144_4的FPGA试验箱。实验步骤:1、绘制状态图。打开QuartusII软件平台,建立工程文件夹,工程文件夹名称为exp_
2、detect3。然后点击File中的New建立一个状态图文件(用State Machine File命令),然后设置并生成状态图。2、按照实验箱上FPGA的芯片名更改编程芯片的设置。操作是点击Assign/Device,选取芯片的类型。3、编译与调试。确定状态图文件为当前工程文件,点击Complier进行文件编译。编译结果有错误或警告,则将要调试修改直至文件编译成功。4、波形仿真及验证。在编译成功后,点击Waveform开始设计波形。点击“insert the node”,按照程序所述引脚,任意设置各输入节点的输入波形点击保存按钮保存。5、FPGA芯片编程及验证,应记录实验结果进行分析。四、实
3、验过程:用状态图输入法实现序列检测器:1、建立工程文件,工程文件夹的名称为exp_detect3,工程名和顶层实体名称为exp_detect3。工程建立过程中平台设置设置如下图所示:2、工程建好后,即进行状态图的输入。具体过程如下:选择菜单File->New->State Machine File命令,打开State Machine Editor窗口,如下图所示:然后选择Tools->State Machine Wizard 命令,弹出如下所示状态机创建向导对话框。在该对话框中选择Create a new state machine design 单选按钮,点击OK按钮进入下
4、一个页面,如下所示:然后在下一个对话框中选择复位Reset信号为异步Asynchronous,高电平有效,输出端无寄存器。单击Next按钮进入下一个页面。在状态转换对话框中设置状态转换。States栏中输入状态名称s0s6。Input ports栏中输入时钟信号clock、复位信号reset以及串行数据输入信号din。State transitions 栏中依据书中状态图指定的状态转换,设置完成后点击Next按钮,进入下一页面:s0->s1 dins0->s0 dins1->s2 dins1->s0 dins2->s3 dins2->s0 dins3->
5、;s4 dins3->s3 dins4->s5 dins4->s1 dins5->s0 dins5->s6 dins6->s0 dins6->s2 din在output ports栏Output Port Name 列中输入z,Output State 状态设为Current clock cycle 。Action condition 栏设为s6状态且Additional Conditions为“din”成立时信号,z输出为1 。设置完成后单击next按钮进入下一个页面:在下图对话框中显示状态机的设置情况。单击Finish按钮,关闭状态机向导,生成所需
6、的状态机。布局适当调整,得到所需的状态图,状态图如下图所示:生成并调整后的状态图:3、保存该设计文件为exp_detect3.smf,并添加到工程文件夹。4、选择菜单Tools->Gennrate HDL File 命令,打开Gennrate HDL File对话框,如下图所示,从中选择VHDL单选项,单击OK按钮,分析成功后则自动生成exp_detect3.vhd。生成的VHDL代码如下:LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY exp_detect3 IS PORT ( clock : IN STD_LOGIC; reset :
7、IN STD_LOGIC := '0' din : IN STD_LOGIC := '0' z : OUT STD_LOGIC );END exp_detect3;ARCHITECTURE BEHAVIOR OF exp_detect3 IS TYPE type_fstate IS (s0,s1,s2,s3,s4,s5,s6); SIGNAL fstate : type_fstate; SIGNAL reg_fstate : type_fstate;BEGIN PROCESS (clock,reset,reg_fstate) BEGIN IF (reset=
8、39;1') THEN fstate <= s0; ELSIF (clock='1' AND clock'event) THEN fstate <= reg_fstate; END IF; END PROCESS; PROCESS (fstate,din) BEGIN z <= '0' CASE fstate IS WHEN s0 => IF (din = '1') THEN reg_fstate <= s1; ELSIF (NOT(din = '1') THEN reg_fstate
9、 <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s0; END IF; WHEN s1 => IF (din = '1') THEN reg_fstate <= s2; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate
10、<= s1; END IF; WHEN s2 => IF (din = '1') THEN reg_fstate <= s3; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s2; END IF; WHEN s3 => IF (din = '1') THEN reg_fstate <= s3; ELSIF
11、(NOT(din = '1') THEN reg_fstate <= s4; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s3; END IF; WHEN s4 => IF (din = '1') THEN reg_fstate <= s1; ELSIF (NOT(din = '1') THEN reg_fstate <= s5; - Inserting 'else' block to p
12、revent latch inference ELSE reg_fstate <= s4; END IF; WHEN s5 => IF (din = '1') THEN reg_fstate <= s6; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s5; END IF; WHEN s6 => IF (din = '1
13、') THEN reg_fstate <= s2; ELSIF (NOT(din = '1') THEN reg_fstate <= s0; - Inserting 'else' block to prevent latch inference ELSE reg_fstate <= s6; END IF; IF (NOT(din = '1') THEN z <= '1' - Inserting 'else' block to prevent latch inference ELSE
14、z <= '0' END IF; WHEN OTHERS => z <= 'X' report "Reach undefined state" END CASE; END PROCESS;END BEHAVIOR;5、把exp_detect3.vhd作为设计源文件用于后序实验验证。代码生成后进行编译(可在此时设置引脚等等)6、现在可用RTL viewer 查看电路,如下图所示,状态图可选择Tools->Netlist viewers->State Machine Viewer命令查看:7、下面进行功能仿真:波形仿真过程。点击file->new,选择Vector Waveform File,新建一个波形仿真文件,然后在空白处点击右键,选择“Insert Node or Bus”,出现一个对话框,进行添加节点,然后输入时钟激励信号,并进行参数设置,两个重要的参数:End time结束时间和Grid size网格大小。点击Edit->Value->Clock,出现一个对话框设置时钟激励周期,相位以及其他参数,点击OK,显示波形图如下:接着保存波形文件,然后进行仿真。在仿真之前要先生成功能仿真表,首先要先设置仿真模式。然后点击菜单项Process
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 材料力学与智能材料性能控制重点基础知识点
- 材料疲劳断裂机理实验验证重点基础知识点
- 经济学理论与现实的冲突试题及答案
- 银行发生火灾的应急预案(3篇)
- 船上发生火灾应急预案(3篇)
- 火灾触电踩踏事故专项应急预案(3篇)
- 铁路超大火灾应急预案(3篇)
- 高考数学间接法探究及试题及答案
- 风险管理与企业战略目标顺应性的研究试题及答案
- 经济政策的心理学影响与效果评估试题及答案
- 高血压和心血管疾病的预防与管理
- 小学数学-水中浸物问题-完整版题型训练30题-带答案
- 中国大学生积极心理品质量表
- 2023充电桩停车场租赁合同 充电桩租地合同正规范本(通用版)
- JCT908-2013 人造石的标准
- 浅谈屡查屡犯问题的成因及对策
- 八年级下册Unit-4复习课
- 神经病学人卫版习题集+期末试卷
- 车辆违章处理委托书委托书
- 氮化炉安全操作规程
- 初中物理电功率高低温档专题解析课件
评论
0/150
提交评论