四川师范大学成都学院电子工程系课程设计报告目录前言....................................................................11.总体设计方案.........................................................21.1总体设计方案......................................................22.单元模块设计.........................................................22.1十进制计数器设计.................................................22.1.1十进制计数器原件cnt10设计.................................22.1.2位十进制计数器的顶层设计..................................42.2闸门控制模块EDA设计.............................................52.2.1定时信号模块Timer........................................52.2.2控制信号发生器模块T_con...................................72.3译码显示模块......................................................82.3.1显示寄存器设计...........................................82.3.2译码扫描显示电路.........................................92.3.3译码显示模块的顶层电路设计.................................123.软件测试............................................................133.1测试的环境.......................................................133.2调试和器件编程...................................................144.设计总结............................................................155.参考文献............................................................16四川师范大学成都学院电子工程系课程设计报告1前言在电子技术高度发展的今天,各种电子产品层出不穷,而频率作为设计的最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此,频率的测量就显得更为重要。测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程的自动化等优点。数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器,它的基本功能是测量正弦信号、方波信号、尖脉冲信号以及其它各种单位时间内变化的物理量。当今国内外厂家生产的数字频率计在功能和性能方面都比较优良,而且还在不断发展中,但其结构比较复杂,价位也比较高,在测量精准度要求比较低的测量场合,使用这些数字频率计就不够经济合算。我所设计的这款数字频率计能够可靠实现频率显示功能,原理及结构也比较简单本次所做的课程设计就是一个数字频率计,能测量1HZ~9999HZ的矩形波信号,并正确地显示所测信号的频率值。数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着现场可编程门阵列FPGA的广泛应用,以EDA工具作为开发手段,运用VHDL等硬件描述语言语言,将使整个系统大大简化,提高了系统的整体性能和可靠性。采用FPGA现场可编程门阵列为控制核心,通过硬件描述语言VHDL编程,在Quartus‖仿真平台上编译、仿真、调试,并下载到FPGA芯片上,通过严格的测试后,能够较准确地测量各种常用的波形信号的频率,而且还能对其他多种物理量进行测量。四川师范大学成都学院电子工程系课程设计报告21.总体设计方案1.1总体设计方案数字频率计基本原理是用计数器来计算1S内输入信号周期的个数。如图1所示是4位十进制数字频率计的系统方框原理图,当系统正常工作时,脉冲发生器提供的1Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。图1总体设计方案2.单元模块设计2.1十进制计数器设计2.1.1十进制计数器原件cnt10设计十进制计数器即可采用Quartus‖的宏元件74160,也可用VHDL语言设计,其源程序如下。LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcnt10_vISPORT(CLK,RST,EN:INSTD_LOGIC;四川师范大学成都学院电子工程系课程设计报告3CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDcnt10_v;ARCHITECTUREbehavOFcnt10_vISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST='1'THENCQI:=(OTHERS='0');--计数器异步复位ELSIFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿IFEN='1'THEN--检测是否允许计数(同步使能)IFCQI9THENCQI:=CQI+1;--允许计数,检测是否小于9ELSECQI:=(OTHERS='0');--大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT='1';--计数等于9,输出进位信号ELSECOUT='0';ENDIF;CQ=CQI;--将计数值向端口输出ENDPROCESS;ENDbehav;在源程序中:COUT:计数器进位输出CQ[3..0]:计数器的状态输出CLK:时钟输入端RST:复位控制输入端,当RST=1时,CQ[3..0]=0EN:使能控制输入端,当EN=1时,计数器计数;当EN=0时,计数器保持不工作状态。图2十进制计数器仿真输出波形四川师范大学成都学院电子工程系课程设计报告4在项目编译仿真成功后将设计的十进制计数器电路设置成可调用的元件cnt10_v.bsf,用于以下四位十进制计数器的顶层设计。cnt10_vinstCLKCLKRSTRSTENENCQ[3..0]CQ[3..0]COUTCOUT图3十进制计数器元件符号2.1.2位十进制计数器的顶层设计顶层电路原理图如图4所示。文件名4cnt10.bdf。该顶层设计可以用原理图输入的方法完成。在QuartusII中,新建一个原理图编辑窗口,从当前的工程目录中调出4片十进制计数器元件cnt_v,并按4所示的4位十进制计数器的顶层原理图完成电路接线。完成4位十进制计数器的顶层原理图编辑以后,即可进行仿真测试和波形分析,其仿真输出波形如图5所示,当CLR=0,EN=1时其计数值在0~9999之间的变化,COUT为计数进位输入信号,在实际应用中可作为超量程报警信号,因此仿真结果真确无误。此后,可将以上设计的4位十进制计数器设置成可调用的元件4cnt10.bsf以备高层设计中使用,其元件符号如图6所示。图4十进制计数器的顶层原理图四川师范大学成都学院电子工程系课程设计报告5图5四位十进制计数器的仿真图4cnt10instclkclkrstrstenenout1[3..0]out1[3..0]out2[3..0]out2[3..0]out3[3..0]out3[3..0]out4[3..0]out4[3..0]coutcout图6元件封装符号图2.2闸门控制模块EDA设计根据以上所述,频率计电路工作时先要产生一个计数允许信号(即闸门信号),闸门信号的宽度为单位时间如1s,在闸门信号有效时间内,对被测信号计数,即为信号的频率,该频率计电路的精度取决于闸门信号T,该模块课分为2个子模块,一个是定是信号模块,一个是控制信号发生器模块。2.2.1定时信号模块Timer根据设计要求,对于4位十进制计数器来说,当闸门信号的最大采样时间为1s时,其计数值在0~9999之间,则最大频率为9999Hz,此即位频率计电路工作的1档;当闸门信号的最大采样时间为0.1s(100ms)时,其计数值在0~9999之间,把它转化为频率则为最小频率为10Hz,最大频率为9999Hz,此即为频率计电路工作的2档;当闸门信号的最大采样时间为0.01s(10ms)时,其计数值在0~9999之间,把它转换为频率则为最小频率为100Hz,最大频率为999900Hz或999.9KHz,此即为频率计电路工作的3档;当闸门信号的最大采样时间为0.001s(1ms)时,其技术值在0~9999之间,把它转换为频率则为最小频四川师范大学成都学院电子工程系课程设计报告6率为1000Hz,最大频率为9999000Hz或9.99MHz,此即为频率计电路工作的4档。本设计中假设输入的系统基准时钟为1KHz,为产生4种不同的闸门信号T,可由一组3级模10计数器对1KHz信号进行分频,为控制信号发生器提供4种不同的频率信号,通过数据选择器41MUX利用量程选择开关控制闸门信号T的基准时钟,原理如图7所示。图7中,cnt10_v为已设计好的十进制计数器元件,可直接把该模块作为底层元件使用,41MUX为4选1数据选择器,其4个输入为1KHz信号进行分频后的4中不同的频率信号L4(1s)、L3(100ms)、L2(10ms)、L1(1ms)。A、B为量程选择开关,其4种不同编码状态00、01、10、11通过4选1数据选择器分别选择输出4种不同的频率信号到Bclk,Blck将作为控制信号发生器模块的控制时钟脉冲。A、B的4种不同编码状态通过2-4译码器74139M产生4个量程状态显示信号p0(1档)、p1(2档)、p3(3档)、p4(4档)。图8为其编译仿真后的输出时序波形图,生成的元件符号图如图9所示。VCC1msINPUTVCCBINPUTVCCAINPUTBclkOUTPUTp0OUTPUTp1OUTPUTp2OUTPUTp3OUTPUTCLKRSTENCQ[3..0]COUTcnt10_vinstCLKRSTENCQ[3..0]COUTcnt10_vinst1CLKRSTENCQ[3..0]COUTcnt10_vinst2S0D2S1D3D0INHD1QMUX41inst3BAGY3NY2NY0NY1N74139Minst4GNDVCC1s100ms10ms1msAB100ms10ms1sp0p1p2p31msCLRBclkCLRENAENA图7定时信号模块原理图图8仿真输出波形四川师范大学成都学院电子工程系课程设计报告7Timerinstl1l1BBAABclkBclkp0p0p1p1p2p2p3p3图9定时信号模块2.2.2控制信号发生器模块T_con控制信号发生器原理图如图10,文件名T_con.bdf。该模块主要根据输入的控制时钟脉冲,产生计数允许信号EN,该信号的高电平是持续时间即计数允许时间输入的控制时钟脉