收藏 分销(赏)

采用-EDA实验五-用状态图输入法实现序列检测器.doc

上传人:w****g 文档编号:2669203 上传时间:2024-06-04 格式:DOC 页数:10 大小:346.04KB
下载 相关 举报
采用-EDA实验五-用状态图输入法实现序列检测器.doc_第1页
第1页 / 共10页
采用-EDA实验五-用状态图输入法实现序列检测器.doc_第2页
第2页 / 共10页
采用-EDA实验五-用状态图输入法实现序列检测器.doc_第3页
第3页 / 共10页
采用-EDA实验五-用状态图输入法实现序列检测器.doc_第4页
第4页 / 共10页
采用-EDA实验五-用状态图输入法实现序列检测器.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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-NewState 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-s4 dins3-s3 dins4-s5 dins4-s1 dins5-s0 di

5、ns5-s6 dins6s0 dins6-s2 din在output ports栏Output Port Name 列中输入z,Output State 状态设为Current clock cycle .Action condition 栏设为s6状态且Additional Conditions为“din”成立时信号,z输出为1 。设置完成后单击next按钮进入下一个页面:在下图对话框中显示状态机的设置情况.单击Finish按钮,关闭状态机向导,生成所需的状态机。布局适当调整,得到所需的状态图,状态图如下图所示:生成并调整后的状态图:3、保存该设计文件为exp_detect3.smf,并添加到

6、工程文件夹。4、选择菜单ToolsGennrate 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 : IN STD_LOGIC := 0; din : IN STD_LOGIC := 0; z : OUT STD_LOGIC );END exp_dete

7、ct3;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=1) THEN fstate = s0; ELSIF (clock=1 AND clockevent) THEN fstate = reg_fstate; END IF; END PROCES

8、S; 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 = s0; - Inserting else block to prevent latch inference ELSE reg_fstate IF ((din = 1) THEN reg_fstate = s2; ELSIF (NOT((din = 1) THEN reg_fstate = s0; - Inserting

9、else block to prevent latch inference ELSE reg_fstate = 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 (NOT(din =

10、1)) THEN reg_fstate IF ((din = 1)) THEN reg_fstate = s1; ELSIF (NOT((din = 1))) THEN reg_fstate = s5; Inserting else block to prevent 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 preve

11、nt latch inference ELSE reg_fstate = s5; END IF; WHEN s6 = 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 = s6; END IF; IF (NOT(din = 1))) THEN z = 1; Inserting else block to prevent latch inference ELS

12、E z z = X; report ”Reach undefined state”; END CASE; END PROCESS;END BEHAVIOR;5、把exp_detect3.vhd作为设计源文件用于后序实验验证。代码生成后进行编译(可在此时设置引脚等等)6、现在可用RTL viewer 查看电路,如下图所示,状态图可选择ToolsNetlist viewersState Machine Viewer命令查看:7、下面进行功能仿真:波形仿真过程。点击file-new,选择Vector Waveform File,新建一个波形仿真文件,然后在空白处点击右键,选择“Insert Node

13、 or Bus”,出现一个对话框,进行添加节点,然后输入时钟激励信号,并进行参数设置,两个重要的参数:End time结束时间和Grid size网格大小。点击Edit-Value-Clock,出现一个对话框设置时钟激励周期,相位以及其他参数,点击OK,显示波形图如下:接着保存波形文件,然后进行仿真。在仿真之前要先生成功能仿真表,首先要先设置仿真模式。然后点击菜单项ProcessingGenerate Function Simulation Netlist,产生功能仿真所需要的网表,接着就能进行仿真操作了。波形仿真。打开processing 仿真工具,出现仿真设置对话框,然后开始进行功能仿真。仿真波形图如下:这是功能仿真即波形仿真的波形图。波形仿真图分析:由上述波形仿真图可以看出,当reset无效时,电路检测到din为1110010时,z输出为1,检测到了1110010序列,符合实验的设计要求。然后就能进行下载验证了8、下载验证:

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服