一、实验目的

(1)进一步熟悉Quartus II软件和GW48-PK2S实验系统的使用方法;

(2)用状态机实现序列检测器的设计,了解一般状态机的设计与应用

二、实验内容

1. 基本命题

利用Quartus II实现一个8位的序列检测器设计;给出仿真波形。最后进行引脚锁定并进行测试,硬件验证设计电路对给定序列的检测功能。

2. 扩展命题

在上述设计基础上,通过修改设计,实现以最简便的预置方法,获得n位序列检测器的功能。

三、实验仪器与器材

计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套。

四、实验

1. 基本命题

① 总体设计

设计两个进程。

进程Com1:实现序列的检测

进程Com2:实现检测结果的输出

② 程序设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITY SCHK IS

PORT(DIN, CLK, CLR  :INSTD_LOGIC;--串行输入数据位/工作时钟/复位信号

AB ));--检测结果输出

END SCHK;

ARCHITECTURE behav OF SCHK IS

;

);   --8位待检测预置数

BEGIN

D <="11100101"  ;--8位待检测预置数:密码:E5H

Com1:PROCESS( CLK, CLR )

BEGIN

' ;

' THEN--时钟到来时,判断并处理当前输入的位

CASE Q IS

;ENDIF;

;ENDIF;

;ENDIF;

;ENDIF;

;ENDIF;

;ENDIF;

;ENDIF;

;ENDIF;

;

ENDCASE;

ENDIF;

ENDPROCESS;

Com2:PROCESS( Q )                                 --检测结果判断输出

BEGIN

  THEN  AB <="0001";     --序列数检测正确,输出 "1"

ELSE      AB <="0011";           --序列数检测错误,输出 "3"

ENDIF;

ENDPROCESS;

END behav ;

③ 仿真分析

图6-1 仿真波形图

仿真预测:当输入的结果是预置序列的时候,输出0001;反之,输出0011。

④ 硬件测试

表1-1  SCHK在GWAC6板上目标芯片EP1C6Q240C8的引脚锁定信息

端口名称

端口符号

GWAC6板输入输出元件

GWAC6板接口

目标器件引脚

备注

输入引脚D

DIN

按键1

PIO1

233

模式No.5

清零端

CLR

按键2

PIO2

234

主频率

CLK

按键3

PIO3

235

4位数字量输出引脚

AB

数码管7

PIO40~47

161-164

图6-2引脚的配置

2. 扩展命题

① 总体设计

本命题通过改写case判断语句,将要检测的序列和序列的位数关联,通过IF语句对状态进行判断。

② 程序设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITY SCHK IS

PORT(DIN, CLK, CLR ,BIT_COUNT :INSTD_LOGIC;--串行输入数据位/工作时钟/复位信号/要检测的位数标识码

AB ));--检测结果输出

END SCHK;

ARCHITECTURE behav OF SCHK IS

;

);   --8位待检测预置数

位)

BEGIN

D

Com1:PROCESS( CLK, CLR )

BEGIN

' ;--判断要检测多少位

;ENDIF;

' ;

' THEN--时钟到来时,判断并处理当前输入的位

;ENDIF;--开始新的一轮的检测

;ENDIF;--进行状态的检测

ENDIF;

ENDPROCESS;

Com2:PROCESS( Q )                                 --检测结果判断输出

BEGIN

)  THEN  AB <="0001";     --序列数检测正确,输出 "1"

ELSE      AB <="0011";           --序列数检测错误,输出 "3"

ENDIF;

ENDPROCESS;

END behav ;

③ 仿真分析

当BIT_COUNT为低电平的时候,实现4位序列检测器的功能;当BIT_COUNT为高电平的时候,实现5位序列检测器的功能。设待检测的序列为“11100000”。

图6-3 5位序列检测器波形图

④ 硬件测试

表1-2  SCHK在GWAC6板上目标芯片EP1C6Q240C8的引脚锁定信息

端口名称

端口符号

GWAC6板输入输出元件

GWAC6板接口

目标器件引脚

备注

输入引脚D

DIN

按键1

PIO1

233

模式No.5

清零端

CLR

按键2

PIO2

234

主频率

CLK

按键3

PIO3

235

检测位数标识

BIT_COUNT

按键4

PIO4

236

4位数字量输出引脚

AB

数码管7

PIO40~47

161-164

图6-4 引脚的配置

五、实验思考题

如果带检测预置数必须以右移方式进入序列检测器,那么该程序该做如何修改?

① 总体设计

同序列检测中数据右移输入的思路,但是我们这次不进行检测,收到什么就将其存入程序中的预置数变量中。我们需要额外设置一个输入变量,变量ISE用来标示是否进行预置数序列的输入,当ISE=1,输入口DIN用来输入预置数序列的;当ISE=0,输入口DIN用来输入要检测的序列。其中预置数序列的长度与BIT_COUNT相关。

② 程序设计

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITY SCHK IS

PORT(DIN, CLK, CLR ,BIT_COUNT,ISE :INSTD_LOGIC;--串行输入数据位/工作时钟/复位信号/要检测的位数标识码/预置数序列的输入使能

AB ));--检测结果输出

END SCHK;

ARCHITECTURE behav OF SCHK IS

;

);   --8位待检测预置数

位)

BEGIN

Com1:PROCESS( CLK, CLR )

BEGIN

' ;--判断要检测多少位

;ENDIF;

' ;

' THEN--时钟到来时,判断并处理当前输入的位

;ENDIF;--开始新的一轮的检测

--ISE=1的时候,开始预置数序列的输入

' ;

else

;ENDIF;--进行状态的检测

endif;

ENDIF;

ENDPROCESS;

Com2:PROCESS( Q )                                 --检测结果判断输出

BEGIN

THEN  AB <="0001";     --当序列数检测正确并且预置数使能为低电平的时候,输出 "1"

ELSE      AB <="0011";           --序列数检测错误,输出 "3"

ENDIF;

ENDPROCESS;

END behav ;

③ 仿真分析

图6-5  带有预置数功能的4位序列检测器波形图

④ 硬件测试

表1-3  SCHK在GWAC6板上目标芯片EP1C6Q240C8的引脚锁定信息

端口名称

端口符号

GWAC6板输入输出元件

GWAC6板接口

目标器件引脚

备注

输入引脚D

DIN

按键1

PIO1

233

模式No.5

清零端

CLR

按键2

PIO2

234

主频率

CLK

按键3

PIO3

235

检测位数标识

BIT_COUNT

按键4

PIO4

236

预置数使能

ISE

按键5

PIO5

237

4位数字量输出引脚

AB

数码管7

PIO40~47

161-164

图6-6  引脚的配置

实验六 序列信号检测器的VHDL设计的更多相关文章

  1. 实验五 含有控制信号的计数器VHDL设计

    一.实验目的 学习计数器的设计.仿真和硬件测试,进一步熟悉VHDL设计技术. 二.实验仪器与器材 计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套. 三.实验 1. 基本命题 在 ...

  2. 实验六 CC2530平台上P2P通信的TinyOS编程

    实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...

  3. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验六:数码管模块

    实验六:数码管模块 有关数码管的驱动,想必读者已经学烂了 ... 不过,作为学习的新仪式,再烂的东西也要温故知新,不然学习就会不健全.黑金开发板上的数码管资源,由始至终都没有改变过,笔者因此由身怀念. ...

  4. VMware vSphere服务器虚拟化实验六 vCenter Server 添加储存

                                                                          VMware vSphere服务器虚拟化实验六 vCente ...

  5. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

  6. 实验 六:分析linux内核创建一个新进程的过程

    实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...

  7. Linux内核分析实验六

    Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_s ...

  8. MySQL数据库实验六:存储过程建立与调用

    实验六  存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...

  9. 实验六 DIV+CSS的综合应用

    实验六 DIV+CSS的综合应用 [实验目的] 1.掌握DIV布局的方法: 2.利用CSS对DIV进行美化: 3.利用CSS对文本图像等网页元素进行美化 [实验环境] 连接互联网的PC ,Win7操作 ...

随机推荐

  1. JavaScript高级程序设计笔记之面向对象

    说起面向对象,大部分程序员首先会想到 类 .通过类可以创建许多具有共同属性以及方法的实例或者说对象.但是JavaScript并没有类的概念,而且在JavaScript中几乎一切皆对象,问题来了,Jav ...

  2. VC++ 将资源位图画到窗口上去的方法

    第一种方法最简单:直接看代码 CImage img; img.LoadFromResource(AfxGetInstanceHandle(), IDB_BITMAP1); img.Draw(*pDc, ...

  3. 如何在其他电脑上运行VS2005编译的DEBUG版应用程序

    做项目的过程中,遇到这样的问题:在自己的电脑上用VS2005编译好的DEBUG版程序在其它的没有安装VS2005的电脑上没有办法运行,郁闷至极啊. 直 接拷贝文件后,错误信息如下:"This ...

  4. Activity生命周期(一) 暨 帮助文档的使用

    --------siwuxie95 首先创建一个ActivityLifeCircle 选择API:21   Android 5.0  (截止目前:2016/12/21,承上启下,兼容更好) 选择空活动 ...

  5. 《CSS3秘籍》(第三版)-读书笔记(2)

    第6章 文本格式化 1.  使用字体 字体font-family: 通用的字体样式: serif字体最适用于冗长的文字信息.这种字体使字母主笔画的结尾处会有一些细小的“足”. sans-serif字体 ...

  6. myBatis自动生成mapping,dao和model

    myBatis没有自动封装实体类.所以都需要自己编写,但是表数据过多时.编写难度就会增加,错误率也会增加! 所以myBatis提供mybatis-generator-core-1.3.2-bundle ...

  7. 解决 label 多行间距

    使用. 一个是间距,一个是行高,但是鉴于多行,都写的话,就相当于双倍行高了.我就用行高代替间距. self.textLabel.attributedText = [self getAttributed ...

  8. iOS从不同页面跳转回到指定控制器

    HomeViewController *homeVC = [[HomeViewController alloc] init]; UIViewController *target = nil; for ...

  9. 子元素的div不继承父元素的透明度

    问题一: 如何让logo部变成这样: 步骤一:先收一个大的div,上面logo+nav再一个div,下面是三个div横排着: 步骤二:最主要的是如何让上面的部分变暗,而logo的颜色不变暗? 答案:在 ...

  10. iOS开发:深入理解GCD 第二篇(dispatch_group、dispatch_barrier、基于线程安全的多读单写)

    Dispatch Group在追加到Dispatch Queue中的多个任务处理完毕之后想执行结束处理,这种需求会经常出现.如果只是使用一个Serial Dispatch Queue(串行队列)时,只 ...