EDA实验报告四(状态机实现序列检测器的设计)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四:状态机实现序列检测器的设计
一、实验目的
1、了解和学习Quartus II 7.2软件设计平台。
2、了解EDA的设计过程。
3、通过实例,学习和掌握Quartus II 7.2平台下的文本输入法。
4、学习和掌握状态机的工作和设计原理。
5、掌握用VHDL 实现状态机的方法
6、利用状态机设计一个序列检测器
二、实验仪器
PC机,操作系统为Windows7/XP,本课程所用系统均为WindowsXP(下同),Quartus II 7.2设计平台。
三、实验步骤
1、创建工程,在File菜单中选择New Project Wizard,弹出对话框如下图所示
在这个窗口中第一行为工程保存路径,第二行为工程名,第三行为顶层文件实体名,和工程名一样。
2、新建设计文本文件,在file中选择new,出现如下对话框:
选择VHDL File 点击OK。
3、文本输入,在文本中输入如下程序代码: LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164. ALL;
ENTITY fsm IS
port(clk,x:IN STD_LOGIC;
z:OUT STD_LOGIC);
END fsm;
ARCHITECTURE bhv OF fsm IS
TYPE STATE IS(S0,S1,S2,S3);
SIGNAL present_state:state;
BEGIN
PROCESS(clk)
BEGIN
IF(clk'EVENT AND clk='1')THEN
CASE present_state IS
WHEN S0=>
IF x='1'THEN
present_state<=S1;
ELSE present_state<=S0;
END IF;
WHEN S1=>
IF x='0'THEN present_state<=S2;
ELSE present_state<=S0;
END IF;
WHEN S2=>
IF x='1'THEN present_state<=S3; ELSE present_state<=S0;
END IF;
WHEN S3=>
IF x='1'THEN present_state<=S0; END IF;
END CASE;
END IF;
END PROCESS;
z<='1'
WHEN present_state<=S3
ELSE '0';
END bhv;
然后保存到工程中,结果如下图所示:
4、编译,如果有多个文件要把这个文件设为当前顶层实体,这样软件编译时就只编译这个文件。点击projet->Set as Top-level EntityCtrl+Shift+J
接下来进行编译,点击processing->Start Compilation ,见下图
路图:
到如下状态转移图
小结
通过这次上机,我们了解了关于状态机实现序列检测机的设计与应用,对VDHL
语言有更深刻的了解学习和运用。