设计报告课程名称在系统编程技术任课教师康石生设计题目基于VHDL数字频率计的设计班级07电子2班姓名学号0705076009日期2010/5/29摘要数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差。随着可编程ASIC的广泛应用,以EDA工具作为开发手段,基于VHDL语言,将使整个系统大大简化,提高整体的性能和可靠性本文介绍一种基于VHDL的采用自顶而下(uptobottom)设计方法实现的数字频率计。该设计方法与传统的设计方法相比,具有外围电路简单,程序修改灵活和调试容易等特点。特别是在设计的初期阶段可以通过软件仿真来预知设计方案的可行性,便于及时的调整设方案,避免了传统方法中到项目开发的后期发现方案不妥,从而造成人力、物力的浪费。同时,在本设计中用到的CPLD器件运行稳定可靠,可反复擦写,便于系统的维护与更新。关键字数字频率计;VHDL;FPGA;波形仿真一、引言相比传统的电路系统的设计方法,EDA技术采用硬件描述语言描述电路系统,包括电路的结构、行为方式、逻辑功能及接口。VHDL具有多层次描述系统硬件功能的能力,支持自顶向下和基于库的设计特点。设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的ASIC的设计。本文运用现代电子设计工具,采用VHDL语言在CPLD器件上实现一种8位数字频率计测频系统,能够用十进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且还能对其他多种物理量进行测量。具有体积小、可靠性高、功耗低的特点。二数字频率计的设计原理2.1频率计的组成部分数字频率计的原理框图如图1所示。它主要由5个模块组成:脉冲发生器电路、测频控制信号发生器电路、计数模块电路、锁存器和译码驱动电路。当系统正常工作时,脉冲发生器提供标准1Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号。测量信号时,将被测信号通过信号整形电路,产生同频率的矩形波,送入计数模块。计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。图一数字频率计原理框图2.2频率计工作原理数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。所谓频率,就是周期性信号在单位时间(1s)里变化的次数。若在一定时间间隔T内测得的这个周期性信号的重复变化次数N,则其频率可表示为f=N/T。频率测量的基本原理是计算每秒钟内待测信号的脉冲个数。测频的基本原理要求testcti的计数使能信号tsten能产生一个1s脉宽的周期信号,并对频率计的每一个计数器cnt的使能端进行同步控制。当tsten为高电平时允许计数,为低电平时停止计数,并保持其所计脉冲个数。在停止计数期间,首先需要一个锁存信号load的上跳沿将计数器在前1s的计数值锁存进reg32b中,并由外部的7段译码器译出,并稳定显示。锁存信号之后,必须有一个清零信号对计数器进行清零,为下1s的技操作做准备。测频控制信号发生器的工作时序图如图2所示。其中控制信号频率始终为1Hz,那么信号tsten的脉宽正好为1s,可以用作技术闸门信号。然后根据测频的时序要求,可得出信号load和清零信号clr_cnt的逻辑描述。计数完成后,利用计数使能信号反向值的上跳沿产生一个锁存信号load。0.5s后,clr_cnt产生一个清零信号上跳沿。计数器cnt的特殊之处是,有一时钟使能输入端ena,用于锁存计数值。当高电平时计数允许,低电平时计数禁止。锁存器的设计要求:若已有24位BCD码存于此模块的输入口,在信号load的上跳沿后即被锁存到寄存器reg32b内部,并reg32b的输出端输出,然后有实验箱上7段译码器译成能在数码管上显示输出的相应数值。图二测频控制信号发生器的时序图三频率计总体框图数字频率计的顶层电路图及时序分析采用VHDL语言设计一个复杂电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法。在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述,而功能块实际的逻辑功能和具体的实现形式则由下一层模块来描述。根据数字频率计的系统原理框图,设计系统的顶层电路图如图三所示。图三数字频率计的顶层电路图总图中包含有5个模块:计数模块cnt,测频控制信号模块testcti,锁存器模块reg32b,显示模块deled,控制显示模块teltime。本次设计将8个十进制计数器CNT级联起来实现8位十进制计数功能。四数字频率计的部分模块分析及实现4.1基准脉冲信号产生模块基准脉冲信号直接采用试验箱上的CLOCK2选择1HZ频率即可,不必另外设计脉冲信号模块。4.2控制电路模块测频时,将基准脉冲信号送入控制电路输入端CLKK,测周时,将整形后的被测脉冲信号送输入端,输出端包括一个计数使能输出端CNT_EN,一个清零信号输出端RST和一个数据锁存输出端LOAD.使能信号CNT_EN对频率计中8个十进制计数器的使能端进行同步控制,当CNT_EN为高电平时允许计数,低电平时停止计数.停止计数后,锁存信号LOAD输出上升沿将计数值锁存到锁存器中。清零信号RST控制计数器模块的复位.4.3计数器模块该模块主要由8个4位十进制计数器级联而成.具有复位和使能控制功能.计数模块的部分VHDL语言程序如下:BEGINIFRST=’1’THENCQI:=(OTHERS=’0’);--计数器复位ELSIFCLK’EVENTANDCLK=’1’THENIFEN=’1’THENIFCQI9THENCQI:=CQI+1;--当计数值小于9时,计数值加1ELSECQI:=(OTHERS=’0’);--否则计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT=’1’;--计数值等于9时,进位信号置1ELSECOUT=’0’;ENDIF;CQ=CQI;NDPROCESS;ENDbehav;图五十进制计数器4.4锁存器模块锁存器模块主要由8个锁存器组成,主要作用是锁存计数器的计数值.设置锁存器可以使数据显示稳定可靠,不会由于周期性的清零信号而使数码管不断闪烁.锁存信号由控制电路产生,在1个周期的计数时间结束时,锁存器立即锁存计数值.4.5数码显示模块主要由8个显示模块组成.主要功能是在使能信号控制下,将锁存器保存的4位二进制计数值转换成相应的数码管显示代码,显示模块输出端与8个7段共阴极数码管相连,可以在数码管上显示所测频率的十进制输出值.五软件设计过程图六设计流程图六VHDL程序设计数字频率计的VHDL程序部分源代码如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityF_countisport(start:instd_logic;clk:instd_logic;--系统工作时钟信号clk1:instd_logic;--被测信号yy1:outstd_logic_vector(7downto0);--七段码w1:outstd_logic_vector(3downto0));--数码管的位选信号endF_count;architecturebehavofF_countissignalb1,b2,b3,b4,b5,b6,b7:std_logic_vector(3downto0);--十进制计数器signalbcd:std_logic_vector(3downto0);signalsco:integerrange0to49999999;--秒分频系数signalssco:integerrange0to49999999;--动态扫描分频系数signalen,bclk:std_logic;--使能信号,有效被测信号signalsss:std_logic_vector(3downto0);--小数点signalbcd0,bcd1,bcd2,bcd3:std_logic_vector(3downto0);--四位数码管所需的BCD码beginsecond:process(clk)--此进程产生一个时间Tw为1秒的闸门信号beginifstart='1'thensco=0;elsifclk'eventandclk='1'thenifsco49999999thensco=sco+1;elsesco=49999999;八系统的功能仿真图七为频率计仿真结果,其中clk为1Hz标准时钟信号,flyin为待测信号,可以为任意值。现设定的待测频率为50Hz,仿真结果也为50Hz,仿真结果正确,说明该频率计设计方案正确。图七数字频率计的仿真波形图从仿真波形上看测量的结果是准确的。还可以进一步修改测试向量文件,进行波形仿真。最后还可以通过编程电缆,将所设计的内容下载到CPLD器件中,进行实物仿真。九结束语本文给出了利用VHDL设计数字频率计的方法.比较与用芯片搭电路进行硬件实现来说是一种新的尝试,通过仿真调试到下载试验,结果都能清楚明了地显示出来,相当的快捷和方便,不同模块之间相互独立,底层模块的修改不会影响其他模块的工作,采用这种设计方法设计结构清晰,层次清楚,便于对设计进行修改。随着EDA技术的发展,CPLD/FAGA芯片的广泛应用,VHDL极大地显示了硬件描述语言的魅力.数字电路系统的设计变得像软件设计一样灵活,复杂的电路可以通过VHDL编程器的电路合成方式,轻易而且快速的达到要求的规格.参考文献:[1]马建国,孟宪元.电子设计自动化技术基础[M].北京:清华大学出版社,2004.[2]王小平,曹立明1遗传算法[M]1西安:西安交通大学出版社,2001,1[3]吴建新.基于量程自动转换的频率计设计[J].电子元器件应用,2007,9[4]赵曙光.可编程逻辑器件原理、开发与应用.西安:西安电子科技大学出版社,2000