VHDL——频率计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
频率计实验报告
系别:电气工程系
班级:应用电子081
学生姓名:潘秀梅
学号:860706027
序号:27
指导教师:张江伟
完成时间:2010年5月25日
数字频率计的设计
前言
数字频率计是一种应用很广泛的仪器。
数字频率计是数字电路中的一个典型应用,实际硬件设计采用的器件较多,连线复杂,而且会产生较大延时,造成测量误差且可靠性差。
随着复杂可编程逻辑器件的广泛应用,以EDA工具为开发手段,运用VHDL语言,从而大大简化系统设计,提高整体的性能和可靠性。
本次实验采用VHDL语言,运用自顶向下(Top To Down)的方法,使用Isp Expert集成开发环境进行编译、综合、波形仿真,并下载到CPLD器件中,设计并实现了四位数字频率计。
关键词
EDA;VHDL;数字频率计;波形仿真;CPLD
前言 (1)
关键字 (2)
一、设计目的 (3)
二、设计要求 (4)
三、实验环境 (5)
四、设计原理 (6)
五、各功能实现原理 (7)
六、各模块介绍 (8)
七、总连接图 (9)
八、设计体会 (10)
数字频率计
一、设计目的
1、了解数字频率计测量频率与测量周期的基本原理;
2、熟练掌握数字频率计的设计与调试方法;
3、掌握多个数码管显示的原理与方法;
4、掌握使用VHDL语言的设计思想;
5、对整个系统的设计有一个的了解。
二、设计要求
1、对所有设计的小系统能够正确分析;
2、基于VHDL语言描述系统的功能;
3、在quartus 2环境中编译通过;
4、仿真通过并得到正确的波形;
5、给出相应的设计报告。
三、实验环境
1、软件环境:Quartus II 6.0
2、硬件环境:实验箱
四、设计原理
数字频率计的原理框图如图3所示。
他主要由5个模块组成,分别是:脉冲发生器电路、测频控制信号发生器电路、计数模块电路、锁存器、译码驱动电路。
当系统正常工作时,脉冲发生器提供的5 Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。
在数码显示管上可以看到计数结果。
五、各功能实现原理
显示部分功能实现
1、四进制程序及波形
图:四进制波形到3,清零
测频控制信号计数
显示
四进制程序如下:
上升沿有效
2、2/4译码器程序及波形
程序:
波形:
3、七段译码器程序及波形
SEVYM为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示相对应的阿拉伯数字,便于读取测量的结果。
程序:
显示0
显示9
波形:
4、四位4选1数据选择器 程序
输入信号
选择输入信号
输出信号
波形:
锁存功能实现
REG32B 为锁存器。
在信号Load 的上升沿时,立即对模块的输入口的数据锁存EG32B 的内部,并由REG32B 的输出端输出,然后,七段译码器可以译码输出。
在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。
锁存程序:
波形:
保持为4,即锁存住了
保持不变
锁定计数功能实现:
CNT4_10为四个十进制级联计数器,用以实现4b 十进制计数功能。
有一时钟使能输入端EN ,用于锁定计数值。
当高电平时允许计数,低电平时禁止计数。
CNT4_10程序:
波形:
使能输入端,用以锁定计数值。
到9999,清零
到9向高位,进位,低位清零。
测频控制功能实现:
TESTCTL为测频控制信号发生器。
TESTCTL的计数使能信号TSTEN能产生一个1 s 宽的周期信号,并对频率计的计数器CNT4_10的EN使能端进行同步控制:当TSTEN高电平时允许计数、低电平时停止计数。
程序:
波形:
5HZ
分频功能实现:
产生这个时序图,首先有一个T'触发器构成二分频器,在每次时钟CLK的上升沿到来使其值翻转。
T'触发器的输出高电平正好是1 s,因此可以作为测频控制信号发生器TESTCTL 的TSTEN端,用来控制计数。
而Load信号正好是TSTEN端信号的翻转。
在计数结束后半个CLK周期,CLK与TSTEN都为低电平,这时CLR _CNT产生一个上升沿作为清零信号。
程序:
中间变量信
号
上升沿触
发
取反(翻
转)
计数
六、各模块介绍
1、cnt4模块 即无进位的四进制计数器,如图所示:
decode24模块 即2/4译码器,如图所示:
2、MUX441模块 即四位4选一数据选择器,如图所示:
3、led7s 模块 即七段译码器,如图所示:
由此提供选择信号,可选择显示的数码管及对应的数,循环扫描显示。
对于给定的选择信号(由Cnt4模块的输出提供)输出对应的数,送到七段译码器。
对于输入的四位BCD 码进行译码,输出七位q0—q6分别外接数码管a —g 段显示。
4、显示部分连线图及模块
5、Scq
模块 6、cnt4_10模块
7、kong 模块 8、fpq 模块
将40MHZ
信号转换成5HZ
CLK:脉冲信号输入端 CLR :清零输入端 EN :使能输入端
EN:计数器时钟使能 CLR :计数器清零 DIS :输出锁存信号
七、总连接图
八、设计体会
本次采用EDA 设计方法,把数字频率计系统组建分解成若干个功能模块进行
设计描述。
下载适配后,便可以在数码管上显示出待测频率的数值。
实验证明,其软件设计思想清晰,硬件电路简单,具有一定的实用性。
通过对仿真结果的分析,系统设计达到了最初的设计要求,针对数字频率计的工作原理,对其各个部分进行编程。
通过这次设计,掌握了各类计数器工作原理与编程,掌握了多个数码管显示的原理与方法,掌握使用VHDL 语言的的设计思想,对数字频率计系统的设计有了深入的了解。
此外还进一步加深了对EDA 的了解,让我对它有了更加浓厚的兴趣。
特别是当每一个子模块编写调试成功时,心里特别的开心。
但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。
在波形仿真时,也遇到了一点困难,想要的结果不能在波形上得到正确的显示,经过对各程序的检查终于找到了问题的所在。
总的来说,这次用VHDL 语言编写设计的数字频率计还是比较成功的。
终于觉得平时所学的知识有了实用的价值,达到了理论与操作相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对前途不再迷茫,对未
动态扫描模块
锁存模块
计数模块
测频控制模块
分频模块
来有了更多的信心。