一、实验目的
(1)熟悉常见74宏模块的功能。
(2)掌握清零法或置数法设计计数器的方法。 (3)掌握多片计数器芯片级联设计计数器的方法。 (4)掌握使用QuartusII软件设计时序电路的方法。 (5)掌握使用QuartusII软件进行电路仿真的方法。 (6)掌握在QuartusII中实现计数器一般模型的方法。 (7)熟悉计数器的一般模型。
(8)掌握自顶向下的电路设计方法。
(9)掌握使用FPGA实现时序电路的方法。 二、实验仪器与器件
序号 1 2 3 4 5
仪器或器件名称 逻辑实验箱 PC机 QuartusII软件 FPGA/CPLD开发板 USB Blaster下载器
型号或规格 SBL型 / 9.1、17.1版本
数量 1 1 1 1 1
/
三、实验内容 (一)实验七部分
1.实现可预置的任意进制计数器
使用74161设计一个可预置的任意进制计数器,使用QuartusII 完成创建工程、编辑电路图、编译,编辑波形文件仿真,记录波形并说明仿真结果,最后在FPGA上进行硬件测试。 ①实验分析:
要实现任意进制,输入端为0000的情况下,当计数输出端Q3Q2Q1Q0计数到预置数时,置数端 有效。在CLK下一个上升沿到来时,输出状态转为输入端数状态0000,置数端无效,所以计数器继续正常计数,直至再次计数到预置数。。。这里以256模进制为例。 ②编辑电路图:
③编辑波形文件仿真:
可以发现,当计数值增大时,输出端符合实验前预计 2.实现加减可逆计数器
根据计数器设计的一般模型,设计一个12进制加减法可逆计数器。使用QuartusII 完成创建工程、编辑电路图、编译,编辑波形文件仿真,记录波形并说明仿真结果,最后在FPGA上进行硬件测试。 ①实验分析:
如果把计数器看作是输出状态随时钟信号不断变化的状态机,可以把它抽象成如图所示的一般结构模型。在这个模型里,包含一个根据现态求得次态的状态译码器,和一个由时钟信号同步控制的n位寄存器组。
计数器的一般模型
本次实验中先创建12位计数器和4位寄存器,再使用两个三态门控制整个电路的加减模式 ②编辑电路图: [MISSING IMAGE: , ] ③编辑波形文件仿真: [MISSING IMAGE: , ]
当模式选择键s从0改变到1时,计数器模式发生改变,从递增变为递减计数,符合实验预期
3.基于LPM_COUNTER的288机制加法计数器
基于LPM_COUNTER,设计288进制的加法计数器,要求有异步清零端和同步直数端。使用QuartusII创建工程、编译电路图、编译,编辑波形文件并仿真,记录波形并说明仿真结果,最后在FPGA上进行硬件验证。 ①实验分析:
该实验使用到LPM来完成对计数器的控制,需在宏模块调用导向中选择相应模块,根据288进制的需要设置输出位宽为9,选择加法计数,再设置计数器模值为288 ②编辑电路图: [MISSING IMAGE: , ] ③编辑波形文件仿真: [MISSING IMAGE: , ]
波形图中从0记到287结束一个循环后重新开始计数,符合实验要求 (二)实验八部分
4.机械按键控制计数器
用74LS160设计1个2位十进制加法计数器,设计手动按键控制计数器步进变化的电路,计数器的输出状态显示在七段数码管上。对设计进行时序仿真,根据仿真波形分析说明各模块电路特性,编程下载于FPGA中,在实验系统上进行硬件测试。 ①实验分析:
本次实验中使用按键控制计数器,将按键接入消抖模块后,按键可控制计数器clock也可控制使能端,这里推荐控制clock。消抖模块中clock频率不能太高,否则消抖效果不佳。本次实验需在FPGA中实现,最后需对照FPGA上的引脚,分配对应锁定引脚。 ②编辑电路图: [MISSING IMAGE: , ] ③编辑波形文件仿真: [MISSING IMAGE: , ]
可以发现,在按键按下时,keyout在一段时间后才输出为1,说明消抖成功 四、实验总结
实验七: 开始实验时,由于对quartusII软件的不熟悉,在生成波形文件时,文件名未与工程名一致,使得波形仿真时无法运行。后来在同学的帮助下,顺利达成实验要求,完成实验 实验八: 在按键控制实验中时,由于底层文件封装出现问题,在顶层文件编译时出现错误。最终在老师的帮助下,重新创建工程,封装文件,成功实现加法器,达到实验要求
五、问答题
1.实现按键消抖的方法有几种?
答: 1. 硬件消抖就是在按键上并联一个电容,利用电容的充放电特性来对抖动过程中产生的电压毛刺进行平滑处理,从而实现消抖。2. 软件消抖,检测到按键状态变化后,先等待一个 10ms 左右的延时时间,让抖动消失后再进行一次按键状态检测,如果与刚才检测到的状态相同,就可以确认按键已经稳定的动作。常用寄存器和计数器完成延时。 2.从20MHz分频到1Hz信号的方法有几种?
答:1.使用LPM_COUNTER分频(计数器)2.使用锁相环ALTPLL进行分频1