四位数字频率计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字逻辑电路大型实验报告
姓名
指导教师
专业班级
学院信息工程学院
提交日期
一、实验目的
学习用FPGA实现数字系统的方法
二、实验内容
1.FPGA, Quartus II 和VHDL使用练习
2.四位数字频率计的设计
三、四位数字频率计的设计
1.工作原理
当系统正常工作时,8Hz信号测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。
在数码显示管上可以看到计数结果。
工作原理图如下:
2.设计方案
1) 整形电路:整形电路是将待测信号整形变成计数器所要求的脉冲信号
2)控制信号产生器(分频电路):用8Hz时钟信号产生1Hz时钟信号、锁存器信号和cs信号
3)计时器:采用级联的方式表示4位数
4)锁存器:计数结束后的结果在锁存信号控制下锁存
5)译码器:将锁存的计数结果转换为七段显示码
3.顶层原理图(总图)
注:①CLK1:8Hz时钟信号输入; CLKIN:待测信号输入;
②显像时自左而右分别是个位、十位、百位、千位;
③顶层原理图中:
(1)consignal模块:为频率计的控制器,产生满足时序要求的三个控制信号;
(2)cnt10模块:有四个,组成四位十进制(0000-1001)计数器,使计数器可以从0计数到9999;
(3)lock模块:有四个,锁存计数结果;
(4)decoder模块:有四个,将8421BCD码的锁存结果转换为七段显示码。
4.底层4个模块(控制信号产生模块,十进制计数器模块,锁存器模块,译码模块)的仿真结果。
cnt10模块(十进制计数器模块):
输入:CLK:待测量的频率信号(时钟信号模拟);
CLR:清零信号,当clr=1时计数器清零,输出始终为0000,只有当clr=0时,计数器才正常计数
CS:闸门信号,当cs=1时接收clk计数,当cs=0时,不接收clk,输出为0;
输出:
co:进位信号,图中,在1001(9)的上方产生一个进位信号0,其余为1。
qq:计数器的四位二进制编码输出,以十进制输出。
lock模块(锁存器模块):输入clk模拟锁存信号,dd模拟十进制计数器结果;
输出qq的对应显示表明计数结果成功锁存Consignal模块(控制信号产生模块):
上为8Hz时是仿真结果:输入为clk 8Hz时钟信号(模拟);输出分别为clr清零信号、cs片选信号(闸门信号)和lock锁存信号
下为随意一频率的仿真结果
decoder模块(译码模块):
输入din(未展开):锁存的计数结果,四位二进制数(0000和1111);
输出led7s(未展开):7段显示译码,共阳极输出。
输入din(未展开):锁存的计数结果,十进制(0000--1001);
输出led7s(未展开):7段显示译码,共阳极输出。
5.项目处理
(1)器件选定
每个VHD文件经过置顶编译仿真后,通过“File-Create/Update-Create Symbol Files for Current File”生成模块符号,在顶层原理图中调用
(2)管脚锁定
“Assignment-Pins”,在Location中输入DEII对应管脚名。
(3)编程下载
“Tools-Programmer”,将“Handware Setup”中“Handware Setting”中双击“USB-Blaster”,并将编程模式确定为“JTAG”,在“Program/Configure”复选框中打勾。
点击Start开始下载。
6. 频率测量结果
仿真结果:
数码管结果:将短路片依次接在4Hz、32Hz、128Hz、512Hz、2048Hz等处,数码显像管显示的数字依次为0004、0032、0128、0512、2048
四、实验小结
实验中遇到什么问题?如何解决?实验收获和建议。
收获和建议:
通过此次为期3天的是大型数电实验,我学会了如何使用quartus2软件,学会了用作图法和程序法进行简单的实验。
了解了DE2开发板的功能和使用方法,将课本中的学到的知识与实际应用结合了起来,使得知识学习的更加深入。
但实验的时间只有3天,对VHDL语言还不是很掌握,建议以后的实验能让我们有更加多的时间去学习和进行这样的实验
问题与解决方法:
1、实验进行中,对新建的consignal进行仿真,出来的确是前一个程序cnt10的结果
---问题所在:未置于顶层即VHDL模块编译时,应将待编译文件置顶(“Project -- Set as Top-Level Entity”)再进行编译,否则易产生或者忽视错误。
2、VWF仿真文件的“自动获取输入输出端口(Node Finder)”时框图中没有对应的输入输出端
-----问题所在:Pins所选类型未选择all(而不是assigned)。
注:选择输入输出是不一定要‘>>’全部选择,可以选择性的选择输入输出总线,这样仿真结果可以更加清晰明了。
3、VWF仿真文件的仿真时间和网格宽度设置好后,可用放大镜功能调节仿真结果的缩放,使结果清晰
4、VWF仿真时提示找不到相应文件
——问题所在:未在Set Simulate选项中确定“Assignment—Device”中得的VWF文件
5、设计载入FPGA器件后,板上未用的LED灯亮,同时蜂鸣器响。
为解除这样的情况,应在“Assignment--Device”
中选择“Device&Pin Option”按钮,在“Unused Pins”选项卡中的对话框中选择“As input tri-stated”
选项。
然后重新编译文件,重新下载即可
6、实验编译报错时,转到程序界面,双击报错行,即能在程序界面中显示出错行
7、仿真bdf文件时提示找不到文件
---问题所在:bdf保存时命名应与新建/打开的project的命名相同。