实验六 序列信号检测器的VHDL设计
一、实验目的
(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设计的更多相关文章
- 实验五 含有控制信号的计数器VHDL设计
一.实验目的 学习计数器的设计.仿真和硬件测试,进一步熟悉VHDL设计技术. 二.实验仪器与器材 计算机1台,GW48-PK2S实验箱1台,QuartusⅡ6.0 1套. 三.实验 1. 基本命题 在 ...
- 实验六 CC2530平台上P2P通信的TinyOS编程
实验六 CC2530平台上P2P通信的TinyOS编程 实验目的: 加深和巩固学生对于TinyOS编程方法的理解和掌握 让学生初步的掌握射频通信TinyOS编程方法 学生通过本实验应理解TinyOS中 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验六:数码管模块
实验六:数码管模块 有关数码管的驱动,想必读者已经学烂了 ... 不过,作为学习的新仪式,再烂的东西也要温故知新,不然学习就会不健全.黑金开发板上的数码管资源,由始至终都没有改变过,笔者因此由身怀念. ...
- VMware vSphere服务器虚拟化实验六 vCenter Server 添加储存
VMware vSphere服务器虚拟化实验六 vCente ...
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...
- 实验 六:分析linux内核创建一个新进程的过程
实验六:分析Linux内核创建一个新进程的过程 作者:王朝宪 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029 ...
- Linux内核分析实验六
Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_s ...
- MySQL数据库实验六:存储过程建立与调用
实验六 存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...
- 实验六 DIV+CSS的综合应用
实验六 DIV+CSS的综合应用 [实验目的] 1.掌握DIV布局的方法: 2.利用CSS对DIV进行美化: 3.利用CSS对文本图像等网页元素进行美化 [实验环境] 连接互联网的PC ,Win7操作 ...
随机推荐
- hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法
hive中一般取top n时,row_number(),rank,dense_ran()这三个函数就派上用场了, 先简单说下这三函数都是排名的,不过呢还有点细微的区别. 通过代码运行结果一看就明白了. ...
- 数据库dump导入
数据库dump导入 一.导入命令介绍: Oracle dump数据导入导出有两种方式:imp/exp.impdp/expdp.两者区别: 1.exp/imp客户端程序,受网络,磁盘的影响:impdp/ ...
- JStorm注意事项
storm.yaml的配置可以参照defaults.yaml,例如: nimbus.childopts: " -Xms256m -Xmx256m -XX:+UseConcMarkSweepG ...
- 8.1H5学习笔记
内嵌框架 说明: 属性 属性值 说明 width px,% 指定框架的宽度 height px,% 指定框架的高度 scrolling yes,no,auto 是否显示滚动条 frameborder ...
- JS回车事件,兼容目前所有浏览器
<script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...
- js中~~的用法
~~(Math.random()*(1<<24))).toString(16) ~~的作用相当于parseInt
- openssl命令用法
openssl命令 配置文件:/etc/pki/tls/openssl.cnf 命令格式: openssl command [ command_opts ] [ command_args ] 众多子命 ...
- aps.net 图形验证码(转)
参考文章: http://www.cnblogs.com/FayJack/articles/3063146.html 创建CreateCode.ashx文件: <%@ WebHandler La ...
- [转载]Altium规则详解及设置
在Altium中进行PCB的设计时,经常会使用规则(Rule)来进行限定以确定线宽孔径等参数,此文将简要的介绍规则中的一些标量代表了什么. Electrical——电气规则.安全间距,线网连接等 Ro ...
- CSS线性渐变
/*CSS线性渐变*/ FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientType=0,startColorStr=#ffffff, ...