fpga可逆加减计数器设计

一、设计要求
1、任务
可预置16位可逆加减计数器。要求计数器有16位计数输出同时有进位和借位输出,预置输入采用同步方式。
用FPGA开发板上的按键作为加减计数控制输入,数码管(或led)作为计数值输出。
2、目的
掌握自顶向下的全正向设计方法,掌握使用verilogHDL硬件描述语言进行硬件电路设计的方法,熟练使用Quartus II和Modelsim工具。
二、实验原理
(1)数码管扫描
开发板上安装了 6 个共阳数码管,可以显示 6 个数字(包含小数点) 。电路用 PNP 管来反向驱 动并且控制列扫描信号(SEL0_T~SEL5_T)来选择哪个数码管。而且所有的 6 个数码管的“段选信 号”(LEDA … LEDH)都共用驱动引脚(LED_A~LEDH)。数码管的所有驱动信号都是“低电平有效”。
具体的原理图设计如下图(图2.1)所示:

图(2.1)数码管硬件原理图
单个数码管可以采用静态显示方式,如图所示,数码管被分成 a、b、c、d、e、f、g 和小数点,每段可以单独控制亮灭,通过点亮不同的段显示不同的数字和字符。
对于共阳极的数码管,显示数字和字符的编码如下(图2.2):

图(2.2)点亮数码管对应的字符
对于多位数码管,利用视觉暂留原理,快速交替显示,让眼睛看上去是多个数码管同时显示的。
(2)按键消抖
按键做为基本的人机输入接口,在很多电子设计中都能见到,由于机械特性,在按键 按下或 松开的时候,按键输入值是有抖动的,无论按下去是多平稳,都难以消除抖动,按键消抖方式有 很多,本实验主要是通过 FPGA 计时来消抖。实验中设计了一个计数器,当按键输入有变化时, 计时器清零,否则就累加,直到加到一个预定值(例如 10ms),就认为按键稳定,输出按键值, 这样就得到以后没有抖动的按键值。由于在很多地方需要用到按键下降沿或上升沿的检测,按键 消抖模块直接集成了上升沿和下降沿检测的功能。
(3)加减计数器
8位加法器就是实现两个 8位二进制相加,其结果的范围应该在00000000到111111110之间,八位二进制数换算成三位十进制数最大为255,也就是说要输入两个000到255之间的数。其中包括复位,清零,置数。
三、实验设备,
Windows 10 64 位
Quartus (Quartus Prime 17.1) Lite Edition
黑金 FPGA 开发板
四、实验过程,
1.设计思路顶层文件设计需要额外三个模块计数器功能,按键消抖,数码管显示。 基础计数器功能(包括复位,置数,清零)、添加按键消抖、添加数码管显示,数码管显示包括动态扫描,编码。
2.计数器程序

(图4.1)计数器程序设计
3.按键消抖

(图4.2)按键消抖程序设计

4.数码管显示

图(4.3)数码管显示

5.文件编译FLOWSUMMARY视图

图4.4 Flowsummary视图

五、仿真与结果分析
1,程序rtl视图

(图5.1)整体RTL视图

(图5.2 局部rtl视图)
2.仿真分析

(图5.1)仿真结果
可预置加减计数器输入输出均为16位,计数范围为0~~ffffH,可实现加法和减法计数功能,并可以从预置数开始计数。
可预置加减计数器根据加法或减法信号来控制进行加法计数还是减法计数,并且从预置信号决定是否从预置数开始计数,若进行加法计算时,当计数器到ffffH时,进位信号输出为1,计数器从0开始计数;若进行减法计算时,当计数器到0时,借位信号输出为1,计数器从ffffH开始计数。
六、实验总结
FPGA课程是一门实践性较强的课程内容。只依靠基础知识是不足的,它更必须的是运用大家所教到的基础知识去实践活动。根据实验我们可以察觉自己存在的不足,能够自身多查看相关资料或向同学们请教,以熟练对fpga设计的流程。进而,以建立优良的技术专业。
在本次的课程设计报告中我更熟练使用modesim和 quartus软件进行电路的验证和仿真。在电路的设计初始时刻,我没有按照设计电路时从上到下的设计方法,而是盲目的进行对电路的模块进行设计。结果在最后的设计综合的时候,设计的各个模块不能进行顺利的综合和仿真。在时序的设计中我对频率的理解不是很透彻,因此在进行计时的时候出现了很多的问题。。在对按键的使用中我也出现了很困惑的问题。调整时间的时候,我使用了按键的触发,结果在时间调整计时的时候老是出现时间的快速跳动和不确定性。然后利用按键的高低电平来触发调整计时的触发频率,这样很好的解决了按键的抖动问题。

七、参考文献
[1] 刘火良,杨森,张硕,FPGA Verilog开发实战指南.机械工业出版社,2021
[2]康华先,电子技术基础(数字部分)第四版[M].北京:高等教育出版社,2000,
[3]廖日坤,CPLD/FPGA嵌入式应用开发技术白金手册,中国电力大学,2006
[4]吕思忠,数子电路实验与课程设计,河北工业大学,2001。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值