EDA实验二 数字秒表的设计

.实验目的

1.学习Quartus Ⅱ/ISE Design Suite软件的基本使用方法。

2.熟悉GW48系列或其他EDA实验开发系统的基本使用方法。

3.学习VHDL基本逻辑电路的综合设计应用。

二.实验内容

  设计并调试好一个计时范围为0.01 s~1 h的数字秒表,并用GW48系列或其他EDA实验开发系统进行硬件验证,具体包括系统结构设计、VHDL程序设计、程序仿真与分析、逻辑综合分析、硬件逻辑验证等内容。

三.实验条件

开发软件:Quartus II

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

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

四.实验设计

总体设计:编写底层文件十进制计数器的源程序CNT10.VHD和六进制计数器的源程序CNT6.VHD,编写分频器的源程序CLKGEN.VHD,动态扫描的源程序CTRLS.VHD,动态计数的源程序DISPLAY.VHD,,由模块构成顶层电路数字秒表的源程序TIMES.VHD,其中底层和顶层电路均采用VHDL文本输入。

1、用4CNT102CNT6来表示数字进位,利用分频器进行分频

2、利用分频器对输入进行分频,将3M频率的进行分频至所需要的频率100HZ,因为要求为0.01~1h的数字秒表,所以要先获得周期为1/100的计数脉冲。利用四个CNT10和两个CNT6进行计数,利用动态扫描和动态计数的方式在数码管上显示,可以动态的显示数字变化,达到我们日常的秒表的功能。

图2    原理图

五.实验步骤

  1. 分析:利用quartus软件编写底层源程序:编写底层文件十进制计数器的源程序CNT10.VHD和六进制计数器的源程序CNT6.VHD,编写分频器的源程序CLKGEN.VHD,动态扫描的源程序CTRLS.VHD,动态计数的源程序DISPLAY.VHD,数字秒表的源程序DTTIMES.VHD

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

图5.1  编译程序结果图

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

对CLKGEN仿真:

图5.2  CLKGEN波形仿真图

对TIMES进行波形仿真:

图5.3  TIMES波形仿真图

4、芯片管脚的锁定:

选择硬件相关的芯片EP3C55F484并对程序进行引脚锁定,对应给的常用的引脚锁定图进行锁定。选择好按键和时钟的引脚锁定,其数码管以常用的进行锁定。

图5.4  引脚锁定图

5. 逻辑综合结果,查看程序RTL仿真图,熟悉整体电路状态。

图5.5  程序RTL视图

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

六.实验分析

  1. CNT6源代码分析

和CNT10代码类似,略有修改,就是进位的数值。CNT10是10进制0-9便会产生一个进行信号,而CNT6是计数从0-5便会产生一个进位信号

图6.1  CNT6部分代码

2.  DISPLAY源代码分析

     DISPLAY的代码是动态显示模块,其中为了达到0.01s~1h的效果,本次需要使用六个数码管显示数字,其中两个数码管对应是3号和6号数码管显示点或者其他来达到数字秒表的效果,其中就涉及到数码管驱动代码的调整;本次实验需要使用六个数码管显示数字,为了显示数字秒表的效果,3号和6号数码管以1111来控制,表现形式为小数点,当1111时对应下面数码管数字显示驱动代码的10000000,在数码管中表示g那个数码管点亮则显示成为了点;其他六个数码管正常显示,其中两个是逢六进一;SEL仍充当数字选择器的作用;SEG是数码管显示驱动端,分别接a-g,共阴极,高电平有效

图6.2  DISPLAY部分代码

图6.3  数码管数字显示代码

3. 分频器CLKGEN波形仿真分析

为了使得在波形仿真中能看到波形变化,于是将分频常数设为30,可以由图看出CLK上升沿来到第30的时候,CLKGEN跳变一次,达到分频器的作用;硬件部分要实现是100Hz,对应3M的信号输入,所以需要30000分频,即30000个CLK上升沿NEWCLK就出现一个跳变,然而当我们用软件仿真的时候根本看不到30000个输入信号的上升沿,所以我们需要减小分频系数,但是注意在硬件时候我们需要30000分频。

图6.4  CLKGEN波形仿真图

4. 顶层文件TIMES波形仿真分析

由仿真的波形可以看出,3F代表六个数码管能点亮,COM表示数码管公共端;ENA为使能端,CLR为清零信号;其中CLK2的周期要大于等于8倍的CLK1,数码管要八个,需要八个都能点亮的状态,如果周期小于8倍会出现动态显示的效果,达不到我们所需要的数字秒表效果。

图6.5  TIMES波形仿真图

5.  RTL仿真分析

从RTL图看出整个电路的整体状态,可以看出信号从CLK1进入分频器输入100Hz的信号,以0.01s的最小单元进行计数,CNT6一个在第四位和第六位,0.01s—0.1s—1s—6s—60s—360s,可以实现0.01s—1h的数字秒表

图6.6  程序RTL视图

七.实验总结

  数字秒表设计要依据现实分析,先设计十进制计数器的源程序CNT10.VHD和六进制计数器的源程序CNT6.VHD,完成0.01s—0.1s—1s—6s—60s—360s秒表,后编写分频器的源程序CLKGEN.VHD,动态扫描的源程序CTRLS.VHD,动态计数的源程序DISPLAY.VHD,,由模块构成顶层电路数字秒表的源程序TIMES.VHD,完成数字秒表设计。

  • 6
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值