牟晨淏 黄铁文 贺哲明 袁申 冯洪威 王颖
摘要:为了实现可逆计数器的功能,以FPGA为基础,包含主控模块,数码管显示模块,来实现这个设计,通过设计顶层电路,程序编程,模块搭建,仿真运行,性能良好,故实现此功能以供展示。
关键词:FPGA;Verilog;计数器;数码管
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)07-0242-02
开放科学(资源服务)标识码(OSID):
既可加1计数又可减1计数的计数器叫作可逆计数器,也叫作双向计数器。可逆计数器是可以进行正向和反向计数的这种计数器就是把加法计数器和减法计数器的作用合在一起,在逻辑线路上,对计数器的进位和借位脉冲进行适当的控制。即用一个与或门把进位和借位脉冲加以控制,便构成可逆计数器。
1 原理
FPGA是一种运用了逻辑单元阵列LCA的概念,其中包含了逻辑模块输入与输出并且还有IOB与内部连线这几个部分,其中门阵列是可以直接进行编程的器件,他与传统的门阵列进行比较时,会具有相对更小的查找表来实现组合逻辑,在每一个D触发器的输入端都会与一个查找表相互连接,其他的I/O口或者是逻辑电路都由触发器来驱动,这样就形成了一种既可以实现时序逻辑又可以实现组合逻辑功能的一个最基础的逻辑模块,这些模块之间通过金属线进行互相连接或者直接连接到I/O口。在FPGA中逻辑是由静态单元运行编程数据后来实现的。各模块或模块与I/O口间的相互连接方式是由存储器单元中的值来决定了逻辑功能,最后呈现出所需要的功能。分别含有的两个模块一个是数码管模块,一个是主要程序模块。
2 总设计图
设计要求及原理:计数器是一种在实践课程中运用较多的一个时序逻辑器件,它的基本功能是统计时间脈冲在一定时间内的个数,从而实现对脉冲实现技术的功能,它的工作原理可以大概论为:在上升或者下降沿到来时,二进制数据在低一位进行自加或自减。
当在没有其他约束条件的时候,计数器可以和所对应的数值进行相互对应的循环计数。我们可以通过需要来改变计数器的位数,并且通过给他施加外部条件来进行人为的设定计数模数,在一个计数过程之后,经历N个时钟脉冲信号之后,二进制数据又到了最初始的状态。
3 程序代码
4 仿真图
仿真图结果如图所示,时钟脉冲始终保持一致,通过不同的输入,来显示不同结果,所得数字不同,详细见仿真图。
5 流程图
CLR为异步清零端,S为同步置数端,EN用于控制计数器的工作,CLK为时钟脉冲输入端,UPDN为计数器方向控制端。同步可逆计数器的状态表。
6 总结
通过Verilog硬件描述语言,设计了4位二进制加/减计数器,计数器有加计数、减计数、清零和置数的功能,且所有的这些设计功能都通过了仿真分析,符合设计要求。通过本次实验,学会了Quartus设计数字电路的一般方法和仿真方法,并且在实验中加深了对理论知识的理解。总的来说,这次设计的数字钟还是比较成功的,有点小小的成就感,终于觉得平时所学的知识有了实用的价值,达到了理论与实践相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识。
参考文献:
[1] 邹道胜,朱如琪.CPLD/FPGA与ASIC设计实践教程[M].北京:科学出版社,2010.
【通联编辑:唐一东】