《EDA课程设计数字频率计》由会员分享,可在线阅读,更多相关《EDA课程设计数字频率计(16页珍藏版)》请在金锄头文库上搜索。
1、目目 录录 前前 言言.1 1 1.1. 总体设计方案总体设计方案.2 2 1.11.1 总体设计方案总体设计方案.2 2 2.2. 单元模块设计单元模块设计.2 2 2.12.1 十进制计数器设计十进制计数器设计.2 2 2.1.12.1.1 十进制计数器原件十进制计数器原件 cnt10cnt10 设计设计.2 2 2.1.22.1.2 位十进制计数器的顶层设计位十进制计数器的顶层设计.4 4 2.22.2 闸门控制模块闸门控制模块 EDAEDA 设计设计.5 5 2.2.12.2.1 定时信号模块定时信号模块 TimerTimer.5 5 2.2.22.2.2 控制信号发生器模块控制信号发
2、生器模块 T_conT_con.7 7 2.32.3 译码显示模块译码显示模块.8 8 2.3.12.3.1 显示寄存器设计显示寄存器设计.8 8 2.3.22.3.2 译码扫描显示电路译码扫描显示电路.9 9 2.3.32.3.3 译码显示模块的顶层电路设计译码显示模块的顶层电路设计.1212 3.3. 软件测试软件测试.1313 3.13.1 测试的环境测试的环境.1313 3.23.2 调试和器件编程调试和器件编程.1414 4.4. 设计总结设计总结.1515 5.5. 参考文献参考文献.1616 . . . . . 前 言 在电子技术高度发展的今天,各种电子产品层出不穷,而频率作为设
3、计的最基本的 参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率 的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、 使用方便、测量迅速,以及便于实现测量过程的自动化等优点。 数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能 是测量正弦信号、方波信号、尖脉冲信号以及其它各种单位时间变化的物理量。当今国 外厂家生产的数字频率计在功能和性能方面都比较优良,而且还在不断发展中,但其结 构比较复杂,价位也比较高,在测量精准度要求比较低的测量场合,使用这些数字频率 计就不够经济合算。我所设计的这款数字频率计能够可靠实现频率显示
4、功能,原理及结 构也比较简单本次所做的课程设计就是一个数字频率计,能测量 1HZ9999HZ 的矩形波 信号,并正确地显示所测信号的频率值。 数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线 比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵 列 FPGA 的广泛应用,以 EDA 工具作为开发手段,运用 VHDL 等硬件描述语言语言,将使 整个系统大大简化,提高了系统的整体性能和可靠性。 采用 FPGA 现场可编程门阵列为控制核心,通过硬件描述语言 VHDL 编程,在 Quartus仿真平台上编译、仿真、调试 ,并下载到 FPGA 芯片上,通过
5、严格的测试后, 能够较准确地测量各种常用的波形信号的频率,而且还能对其他多种物理量进行测量。 . . . . . 1. 总体设计方案 1.1 总体设计方案 数字频率计基本原理是用计数器来计算 1S 输入信号周期的个数。如图 1 所示是 4 位 十进制数字频率计的系统方框原理图,当系统正常工作时,脉冲发生器提供的 1 Hz 的输 入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号 整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将 计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示 的计数结果转换成相应的能够在七段数码
6、显示管上可以显示的十进制结果。 图 1 总体设计方案 2. 单元模块设计 2.1 十进制计数器设计 2.1.1 十进制计数器原件 cnt10 设计 十进制计数器即可采用 Quartus的宏元件 74160,也可用 VHDL 语言设计,其源程 序如下。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITYt10_v IS PORT(CLK,RST,EN:IN STD_LOGIC; . . . . . CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT:O
7、UT STD_LOGIC ); ENDt10_v; ARCHITECTURE behav OFt10_v IS BEGIN PROCESS(CLK,RST,EN) VARIABLE CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST=1THEN CQI:=(OTHERS=0); -计数器异步复位 ELSIF CLKEVENT AND CLK=1 THEN -检测时钟上升沿 IF EN=1 THEN -检测是否允许计数(同步使能) IF CQI0); -大于 9,计数值清零 END IF; END IF; END IF; IF CQI=9 THEN CO
8、UT=1; -计数等于 9,输出进位信号 ELSE COUT=0; END IF; CQ=CQI; -将计数值向端口输出 END PROCESS; END behav; 在源程序中:COUT: 计数器进位输出 CQ3.0: 计数器的状态输出 CLK: 时钟输入端 RST: 复位控制输入端,当 RST=1 时,CQ3.0=0 EN: 使能控制输入端,当 EN=1 时,计数器计数;当 EN=0 时,计数器保持不工作状态。 . . . . . 图 2 十进制计数器仿真输出波形 在项目编译仿真成功后将设计的十进制计数器电路设置成可调用的元件 cnt10_v.bsf,用于以下四位十进制计数器的顶层设计。 图 3 十进制计数器元件符号 2.1.2 位十进制计数器的顶层设计 顶层电路原理图如图 4 所示。文件名 4cnt10.bdf。 该顶层设计可以用原理图输入的方法完成。在 QuartusII 中,新建一个原理图编辑 窗口,从当前的工程目录中调出 4 片十进制计数器元件 cnt_v,并按 4 所示的 4 位十进制 计数器的顶层原理图完成电路接线。 完成 4 位十进制计数器的顶层原理图编辑以后,即可进行仿真测试和波形分析,其 仿真输出波形如图 5 所示,当 CLR=0,EN=