电子技术杨守良:基于FPGA的数字频率计的设计和实现
基于FPGA的数字频率计的设计和实现
杨守良
(渝西学院物理学与电子信息工程系 重庆 402168)
摘 要:现场可编程门阵列的出现给现代电子设计带来了极大的方便和灵活性,使复杂的数字电子系统设计变为芯片级设计,同时还可以很方便地对设计进行在线修改。本文以设计一个四位显示的十进制数字频率计为例,介绍了在一片FPGA芯片上实现多位数字频率计的设计方法和实现步骤,并且给出了仿真结果。在设计中,所有频段均采用直接测频法对信号频率进行测量,克服了逼近式换挡速度慢的缺点。所设计的电路通过硬件仿真,下载到目标器件上运行,能够满足实际测量频率的要求。
关键词:数字频率计设计;VHDL;现场可编程门阵列(FPGA);直接测频法
中图分类号:TP271+.82 文献标识码:B 文章编号:1004373X(2005)1111803
ConstructionandRealizationoftheDigitalCymometerBasedonFPGA
YANGShouliang
(DepartmentofPhysics&ElectronicInformationEngineering,WesternChongqingUniversity,Chongqing,402168,China)
Abstract:TheappearanceofFPGA(FieldProgrammableGateArray)leadstotheconvenienceandflexibilityofthemodernelectronicconstruction,whichchangesthecomplicateddigitalelectronicsystemconstructionintotheonchipconstruction.Ontheotherhand,itcanalsomakesomeonlinemodificationexpediently.Withacasewhichdescribesanquadbitshownonthedecimaldigitalfrequency,theauthorintroducestheconstructionmethodandtherealizationstepsonasingleFPGAchip.Theauthorshowsanemulationalresult.Duringtheconstructionprocess,thesignalfrequencyofalltheFrequencyChannelismeasuredbythewayofdirectmeasurement,whichovercomestheshortcomingoflowapproximateshiftspeed.Withthecertificationofthehardwareemulationsystem,thecircuitconstructedcanmeetthedemandofmeasuringfrequencyinthereality,whichhassometheoreticandpracticalsignification.
Keywords:designofthedigitalcymometer;VHDL;FPGA(FieldProgrammableGateArray);directfrequencymeasurement
可编程逻辑器件和EDA技术给今天的硬件系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。传统的“固定功能集成块+连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正在成为现代电子系统设计的主流。在设计方法上,已经从“电路设计—硬件搭试—焊接”的传统方式转到“功能设计—软件模拟—下载”的电子设计自动化模式,从而大大提高了系统设计的灵活性。本文以一个四位的十六进制频率计为例,介绍其设计和实现方法。
对系统进行各种改进还可以进一步提高系统的性能和测量频率的范围。该数字频率计具有高速、精确、可靠、抗干扰性强、而且可根据需要进一步提高其测量频率的范围而不需要更改硬件连接图,具有现场可编程等优点。
1.1 数字频率计设计的基本原理
本文以一个四位十进制、测量范围为1Hz~16kHz的数字频率计为例,采用SOPC/SOC实验开发系统,以1
Hz测频控制信号,说明设计的基本原理及实现方法。设计的数字频率计由测频控制信号发生器模块、锁存器和译码显示模块组成。根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1s的对输入信号脉冲计数允许的信号;1s计数结束后,计数值锁入锁存器的锁存信号和为下一测频计数周期做准备的计数器清0信号。这3个信号可以由一个测频控制信号发生器产生,即图1中的TESTCTL,他的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1s脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁
1 数字频率计设计实例
数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。采用VDHL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分以外,其余全部在一片FPGA芯片上实现,整个设计过程变得十分透明、快捷和方便,特别是对于各层次电路系统的工作时序的了解和把握显得尤为准确,而且具有灵活的现场可更改性。在不更改硬件电路的基础上,
收稿日期:200501
22
118《现代电子技术》2005年第11期总第202期存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作做准备。其工作时序波形如图1所示。
þ电子技术应用ü
ENDPROCESS;
PROCESS(CLKK,DIV2CLK) BEGIN
IFCLKK=′0′ANDDiv2CLK=′0′THEN RST_
1′;CNT<=′
ELSE RST_CNT<=′0′; ENDIF;
ENDPROCESS;
LOAD<=NOTDIV2CLK;CNT_EN<=DIV2CLK;ENDbehav;
然后将本程序在QuartusII下经过编译,其仿真波形如图1所示,由此可以看出,其设计能满足测频控制信号
图1 频率计测频控制器测控时序图
发生器的要求,最后生成测频控制信号元件,以便在顶层文件中调用。
1.2 设计方法
采用VHL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方
法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。根据本数字频率计实现原理,运用自顶向下的设计思想,设计的系统顶层电路图如图1所示。各功能模块采用VHDL语言描述。
1.2.2 四位锁存器的设计
在本设计中,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,其锁存器的VHDL语言编程实现如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_11.ALL;ENTITYREG4BIS
PORT(LOAD:INSTD_LOGIC;
DIN:INSTD_LOGIC_VECTOR(3DOWNTO0);
DOUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDREG4B;
ARCHITECTUREbehavOFREG4BISBEGIN
PROCESS(LOAD,DIN) BEGIN
IFLOAD′1′THENDOUT<=EVENTANDLOAD=′DIN;
ENDIF;
ENDPROCESS;ENDbehav;
1.2.1 测频控制信号发生器模块的设计
要想使频率计能自动测频,还需要一个测频控制电路,要求他能产生3个控制信号:CNT_EN、LOAD和RST_CNT,以便使频率计能顺利完成测频3步曲:计数、
锁存和清0。其VHDL语言编程实现如下:
LIBRARYIEEE;
USEIEEE.STD_LOGIC_11.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYTESTCTLIS
PORT(CLKK:INSTD_LOGIC; --1Hz CNT_EN,RST_CNT,LOAD:OUTSTD_LOGIC); ENDTESTCTL;
ARCHITECTUREbehavOFTESTCTLIS SIGNALDIV2CLK:STD_LOGIC;BEGIN
PROCESS(CLKK) BEGIN
IFCLKK′EVENTANDCLKK=′1′THEN DIV2CLK<=NOTDIV2CLK; ENDIF;
同样的将此程序在QuartusII下编译后,生成锁存器元件,以便在顶层文件中调用。
在本设计中,所需的其他模块采用普通的计数器模块和显示译码模块。
1.3 频率计主结构电路设计
根据频率计的测频原理,在QutartusII下以原理图调用方式完成图2所示的频率计主体结构的电路设计。
图2 四位十进制频率计顶层原理图
119电子技术杨守良:基于FPGA的数字频率计的设计和实现
图3 六位十进制频率计顶层原理图
图2中,REG4B为4位锁存器;DISP是7段译码器,他的7位输出可以直接与7段共阴数码管相接,由此可见,要改变其测频范围,可以增加REG4B和计数器元件即可,如增加一个REG4B和一个计数器元件,可以将原来的个位数变成十位数,原来的十位数变成百位数,以此类推,即可将其测频范围扩大10倍。因此,采用此办法设计的频率计具有现场可编程的特点;TESTCTL为测频控制信号发生器,用以产生CNT_EN和RST_CNT,其中CNT_EN是对待测频率脉冲计数允许信号,CNT_EN高电平时允许计数,低电平时禁止计数。由顶层原理图可知,可以很容易地将此频率计扩展为6位、8位,…,即具有很好的可扩充性,而在硬件电路上不做修改。图3是在图2的基础之上经过改进而成的具有六位显示的数字频率计。
OUTPUT2输出06H,此两数的十进制为10,即为10Hz;在后半段,OUTPUT1输出3FH,OUTPUT2输出3FH,OUTPUT3输出3FH,OUTPUT4输出06H此两数的十进制为1001,即为1001Hz。与电路的实际功能相符。
仿真符合要求后即可进行硬件设计验证,编译、综合和适配频率计顶层设计文件,并编程下载进入目标器件中,到此即可在FIN端输入一个待测频率信号,在输出数码管上即可看到测得的结果。如果在COUT端接上一个发光二极管,则此频率计还具有溢出指示功能。
2 结 语
采用此种方法设计的数字频率计占用的FPGA芯片资源较少,完全可以嵌入到FPGA芯片系统资源共用同一个FPGA芯片,是一个很好的数字频率计设计解决方案。由此可见,采用这种技术设计的数字电子系统,大大减少了电路板的尺寸,同时增加了系统可靠性、设计灵活性和可更改性。
参 考 文 献
[1][2]
潘松,黄继业.现代DSP技术[M].西安:西安电子科技大学出版社,2003.
潘松,黄继业.EDA技术实用教程[M].北京:科学技术出版社,2002.
1.4 波形仿真测试和频率计设计硬件验证
在完成了图3所示的顶层电路设计后,即可进行波形仿真,其波形仿真如图4所示。
图4 四位十进制频率计仿真波形
在此设计的FIN前半段频率为20Hz,中间段为10Hz,后半段为1000Hz,由仿真的波形可以看出,在前半段,其OUTPUT1输出06H,OUTPUT2输出5BH,此两数的十进制为21,即为21Hz;在中间段,OUTPUT1输出3FH,
[3]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:
电子工业出版社,2002.[4]
包明,赵明富,陈渝光.EDA技术与数字系统设计[M].北京:北京航空航天大学出版社,2002.
作者简介 杨守良 男,1970年出生,本科。主要从事现代电子设计研究工作。
120