EDA实验报告四(状态机实现序列检测器的设计)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

语言有更深刻的了解学习和运用。

相关文档
最新文档