当前位置:   article > 正文

基于VHDL的计数器电路的设计DTCNT9999_vhdl语言编辑的整体9999进制计数

vhdl语言编辑的整体9999进制计数

 一.实验目的

1.学习Quartus Ⅱ/ISE Design Suite软件的基本使用方法。
2.学习GW48系列或其他EDA实验开发系统的基本使用方法。
3.学习VHDL程序的基本结构和基本语句的使用。

 二. 实验内容

设计并调试好一个计数范围为0~9999的4位十进制计数器电路CNT9999,并用GW48系列或其他EDA实验开发系统进行硬件验证,具体包括系统结构设计、VHDL程序设计、程序仿真与分析、逻辑综合分析、硬件逻辑验证等主要内容。

 三.实验条件

开发软件:Quartus II

实验设备:GX-BICE-EDA/SOPC实验开发系统

芯片:北京革新GX-BICE-EDA/SOPC(EP3C55-FBGA484)

 四.实验设计

总体思路:先设计四位十进制计数器电路完成底层模块CNT10,后通过3-8译码器设计动态显示控制信号产生模块CTRLS,设计数据动态显示控制模块DISPLAY,由六个模块按照图所示的原理图构成顶层电路DTCNT9999,其中底层和顶层电路均采用VHDL文本输入。

1、利用四个CNT10完成基本模块计数电路

2、:利用动态显示控制信号产生模块CTRLS、数据动态显示控制模块DISPLAY和四个CNT10模块构成一个动态扫描电路进行显示。

 五.实验基本步骤

  1. 分析:利用quartus软件编写底层源程序:将底层文件CNT10、CTRLS、DISPLAY的VHDL源程序进行编译

底层的六个模块用VHDL文本输入;DTCNT9999中的CLK1是计数时钟信号,CLK2是动态扫描控制时钟信号,要求在24HZ以上;CLR是清零信号;ENA为计数时钟信号;COM为数码管公共端控制信号;SEG为数码管的显示驱动端,分别接a—g。

2、文件及工程的建立,用VHDL文件编辑好各个模块的源程序,工程编译观察工程是否实现

图5.2  编译源程序结果展示

3、工程仿真,建立仿真文件,观察仿真结果

对CNT10进行波形仿真:

图5.3.1  CNT10仿真波形图

  CLK是时钟信号,CLR为清零信号,ENA为使能信号,CO做为进位(由于只显示0-9,所以体现的作用为清零) ,CQ为输出数据端。了解CNT10的功能(十进制计数器),当CO端为1时,重新开始计数,由此可写出其他进制的程序。从系统仿真结果可以看出,本系统底层和顶层的程序设计完全符合设计要求。

对DTCNT9999进行波形仿真:

   图5.3.2  DTCNT9999仿真波形图

  当编程下载成功之后,首先将CLR为清零信号,仿真时设置为低电平,将ENA使能信号设置为高电平, DTCNT9999中的CLK1是计数时钟信号,CLK2是动态扫描控制时钟信号,要求在24HZ以上;假若改变CLK1的时钟频率,计数结果的变化快慢,会跟着发生变化。假若先选定动态扫描时钟信号CLK2的频率比较低,我们看到每次在一个数码管上显示一位数据,每隔一个CLK2的周期,显示的数据位数和数码管在不停的变化,随着CLK2的频率的增大,动态扫描变化的频率加快,当CLK2的频率达到一定数值后,最终计数结果的各位数据将同时在4个数码管上稳定的显示。

4、芯片管脚的锁定

对DTCNT9999顶层文件进行引脚锁定,根据DTCNT9999的电路结构图确定引脚的锁定如下图所示:

图5.4  芯片管脚的锁定

5、逻辑综合结果,查看程序RTL仿真图

图5.4  DTCNT9999 RTL视图

  1. 编程下载及验证,硬件验证功能是否实现

六.实验分析:

  1. CNT10源代码分析:

    CO为进位信号,连接CNT10计数模块;CNT10为十进制计数器,计数为0-9,当CNT为1001二进制为9时,进行边界处理,清零重新计数,进位并且下一个CNT10模块开始计数;可以把CNT模块比作计数的过程,从0开始到9则变成了10,进了一位,然后从10-19依次类推。类推0-99然后到4个CNT10模块 0-9999

2、DISPLAY源代码分析:

数码管是共阴极,所以当低电平时数码管被点亮,通过三八译码器作用于8个数码管,例如“000”对应的是“11111110”代表第一个数码管被点亮。那么如何同时显示8个数据呢,事实上做不到,但如果时间很短,频率很高,人眼无法识别,会出现八个数码管灯同时亮的现象,通过将频率降低可以使得人眼看见数码管依次点亮的过程。

 

 通过前面编码使得数码管进行点亮显示,再通过对单个数码管使得每个数码管显示出不同的数字。SEL充当数据选择器的作用,例:当SEL为“000”时选择4个数据;SEG是数码管显示驱动端,分别接a-g,高电平有效,如数字1四位二进制为“0001”,要在数码管显示出1则数码管的bc管要点亮,对应的是0x06为“00000110”其他依次可以推理所得

 七.实验总结(与DTCNT99999999对比):

 DTCNT99999999需要8个十进制计数器CNT10组成,与DTCNT9999不同的是它输出32个数据,需要8个数码管显示,比DTCNT9999多几行代码就可以了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/679618
推荐阅读
  

闽ICP备14008679号