VHDL十六进制计数器Word格式文档下载.docx

上传人:b****8 文档编号:21955614 上传时间:2023-02-01 格式:DOCX 页数:10 大小:1.24MB
下载 相关 举报
VHDL十六进制计数器Word格式文档下载.docx_第1页
第1页 / 共10页
VHDL十六进制计数器Word格式文档下载.docx_第2页
第2页 / 共10页
VHDL十六进制计数器Word格式文档下载.docx_第3页
第3页 / 共10页
VHDL十六进制计数器Word格式文档下载.docx_第4页
第4页 / 共10页
VHDL十六进制计数器Word格式文档下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

VHDL十六进制计数器Word格式文档下载.docx

《VHDL十六进制计数器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VHDL十六进制计数器Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。

VHDL十六进制计数器Word格式文档下载.docx

2013年1月2日

一、实验目的

1.进一步了解VHDL设计方法

2.熟悉数码管和LED的显示

二、实验所用仪器及元器件

1、计算机

2、QuartusII7.2(32-Bit)软件

3、EP2C5实验箱

三、实验内容

(1)、设计一个十六进制计数器,用一个数码管、8个彩灯循环显示计数状态。

(2)、有清零信号控制,按下后从零开始。

四、设计思路与过程

根据实验要求,需要实现在拨码开关或者按键的控制下实现十六进制计数器。

首先,确定输入输出变量:

输入:

拨码开关a:

清零;

时钟clk:

提供有效时钟沿;

输出SEL-LED:

8维向量b:

连接8个发光二极管。

输出SEL-DATA:

8维向量c:

连接数码管。

其次,确定电路工作状态

因为要实现计数十六进制计数器,所以首先要实现在时钟控制下实现计数;

还要考虑到清零信号;

再次,实现对计术状态的表示;

也就是让计数状态用数码管和LED显示出来。

五、VHDL程序

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

USEIEEE.STD_LOGIC_ARITH.ALL;

ENTITYcount16IS

PORT(

CLK5:

INSTD_LOGIC;

RST:

SEG_SEL:

OUTSTD_LOGIC_VECTOR(2DOWNTO0);

SEG_DA:

OUTSTD_LOGIC_VECTOR(7DOWNTO0);

LED:

OUTSTD_LOGIC_VECTOR(7DOWNTO0)

);

ENDcount16;

ARCHITECTUREBEHAVEOFcount16IS

SIGNALSHIFT_CNT,TEMP:

STD_LOGIC_VECTOR(3DOWNTO0);

SIGNALCNT_VALUE:

BEGIN

PROCESS(CLK5)

BEGIN

IFRST='

1'

THENTEMP<

="

0000"

;

ELSIFCLK5'

EVENTANDCLK5='

THEN

IFTEMP="

1111"

TEMP<

ELSE

TEMP<

=TEMP+1;

ENDIF;

ENDIF;

ENDPROCESS;

SHIFT_CNT<

=TEMP;

SEG_SEL<

000"

PROCESS(SHIFT_CNT)

BEGIN

CASESHIFT_CNTIS

WHEN"

=>

SEG_DA<

=x"

3F"

LED<

00000001"

0001"

06"

00000010"

0010"

5B"

00000100"

0011"

4F"

00001000"

0100"

66"

00010000"

0101"

6D"

00100000"

0110"

7D"

01000000"

0111"

07"

10000000"

1000"

7F"

1001"

6F"

1010"

77"

1011"

7C"

1100"

39"

1101"

5E"

1110"

79"

71"

ENDCASE;

ENDPROCESS;

ENDBEHAVE;

六、实验QuarterII原理图:

七、实验过程

1、用QuartusII7.2打开已经写好的程序,编译,建立仿真文件,进行仿真。

2、打开计算机和EP2C5实验箱,用串口线连接好,打开电源。

3、为输入输出分配好引脚:

CLK5对应PIN145

RST对应PIN43

SEG_SEL[2to0]对应PIN141142143

SEG_DATA[7to0]对应PIN1441211108653

LED[7to0]对应PIN34333130151413

4、添加硬件,点击start;

观察实验现象;

仿真波形

仿真分析:

TEMP在时钟上升沿处计数,SEG_DATA[7to0],LED[7to0]显示对应

TEMP的值:

图中TEMP=0;

SEG_DATA[7to0]=00111111;

LED[7to0]=00000001;

引脚分配图

实验现象:

八、故障及问题分析

本次实验整体比较顺利,但仍旧出现了一个个问题:

开始时引脚分配有问题,没有找到与EP2C5有关的引脚,后来找到了。

其他未出现什么问题,顺利地完成了实验。

九、总结和结论

本学期EDA实验共完成了8次实验,分别完成了以下四项任务:

Ø

对实验板的熟悉;

对QuartusII7.2(32-Bit)的初步认识,并熟悉掌握其图形编译功能;

对QuartusII7.2(32-Bit)的进一步了解,初步结识VHDL语言,并用其实现了简单的计数器和译码器的功能,为最后一次实验打下基础;

进一步熟悉VHDL语言,并用其实现实际电路设计;

纵观四次实验,让我感触颇深的就是,预习对实验的重要性。

QuarterII对我们来说是一个全新的东西,一切操作都得从头来学,好在它的界面友善,操作简单易懂,只是在编写VHDL程序的时候,需要事先学习其语言习惯。

如果预习充分,就能很顺利地完成实验任务,还留有时间思考其它问题,完成额外的题目。

实验要想仿真并下载成功,需要注意的细节很多,如,引脚设置、输入变量的周期设置等。

在第三次实验时,我犯了个小错误——锁定引脚后没有让程序再运行compilation一遍,导致的结果就是,仿真完全正确,但下载到实验板上怎么就不能正确工作,白白耽误了很长时间。

所以按部就班的操作是很必要的。

实验中还有一些细节,在预习时并未注意,只有去实验室实际操作时才发现。

如第三次实验实现7段数码译码器并用数码显示管显示时,预习时,并不知道,通过用一个八维向量c来控制8个数码显示管亮的管子的数量;

再如第四次实验,预习的时候并不知道,板子上提供的时钟是50MHz,必须通过分频才能看清实验现象,就临场模仿书上例子做了分频器。

本学期的EDA实验,完成了理论与实验的结合,将一些很抽象的理论概念具体地体现出来,如,门的延迟对输出波形的影响,冒险现象的产生原因等等。

与此同时,我们学会了仿真工具QuarterII,初步掌握了VHDL语言,为理论学习提供了便利。

这些都使EDA的学习更具趣味性,同时更可以增强我们的动手动脑能力,从而达到学以致用的目的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1