您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 基于CPLD的4位数字频率计的设计与实现
TechnologyApplication辽宁高职学报第16卷第6期Vol.16,No.6技术应用JOURNALOFLIAONINGHIGHERVOCATIONAL基于CPLD的4位数字频率计的设计与实现周鹏,孟晋,孙荣庆(抚顺职业技术学院,辽宁抚顺113122)摘要:随着电子设计自动化技术的不断提高,利用CPLD器件来实现各种数字系统,已经成为一种需要。为了提高数字频率计的精度与可靠性,提出采用Altera公司的EPM240T可编程逻辑器件对4位数字频率计进行设计。该数字频率计包括基准时钟模块、计数控制模块及显示输出模块三大部分。在设计过程中实现了硬件的系统与软件的功能,利用modelsim软件对频率计的功能进行仿真,结果准确;同时也对实际的外部信号进行了硬件系统测试,通过LED数码管读取到了准确的频率数据。关键词:数字频率计;CPLD;电子设计自动化中图分类号:TP311.53文献标识码:A文章编号:1009—7600(2014)06—0081—03ZHOUPeng,MENGJin,SUNRong-qing(FushunVocationalTechnologyInstitute,Fushun113122,China)Withthedevelopmentofelectronicdesignautomation,usingCPLDdevicestoachieveavarietyofdigitalsystemshasbecomeakindofneed.Inordertoimprovetheaccuracyandreliabilityofdigitalfrequencymeter,itputsforwardtheideaofusingAltera'sCPLDforthedesignof4bitdigitalfrequencymeter.Thedigitalfrequencymetercomprisesareferenceclockmodule,countingandcontrollingmodule,displayandoutputmodule.Inthedesignprocess,thehardwaresystemandthesoftwarefunctionhasbeenrealized.Itusesmodelsimsoftwaretosimulatethefunctionoffrequencymeter,andtheresultisaccurate;alsoexternalsignalhasbeentestedonthehardwaresystem,theaccuratedataoffrequencyfromtheLEDarealsoread.digitalfrequencymeter;CPLD;EDA数字频率计是以数字电路为基础,能够对周期性变化信号的频率进行测量的数字系统,其在电子应用、测量仪计时间,提高了整个系统的可靠性。因此,本文提出了[4]采用Altera公司型号为EPM240T100C5的CPLD器件对数字频率计进行设计。表、资源勘测等领域都有着极为广泛的应用。以往的数[1]字频率计一般采用独立元件和小规模的集成电路[2],通过一、数字频率计的总体设计简易的电路板搭建而成,在测量范围、测量精度及灵活性上都有着很多的不足。随着电子设计自动化技术的发展和1设计原理与要求数字频率计的原理是通过基准时钟,即在1秒的单位超大规模集成电路的出现[3],尤其是CPLD器件的出现,时间内对被测信号的脉冲数进行计数,所得到的脉冲个数使得原有分散的数字系统都可以集成到一个独立的芯片内部,大大简化了系统的设计,节约了开发成本,减少了设就是被测信号的频率[5]。本文设计了一个4位数字频率计,可测量的信号频率范围是1~9999,最终测试结果通过4收稿日期:2014-01-20作者简介:周鹏(1983—),男,辽宁抚顺人,讲师,硕士;孟晋(1983—),女,辽宁抚顺人,讲师,硕士;孙荣庆(1981—),男,辽宁大石桥人,讲师。2014年第6期81TechnologyApplication第16卷第6期技术应用辽宁高职学报Vol.16,No.6位8段LED数码管将信号的频率显示出来。测定。本文采用VerilogHDL硬件描述语言和QuartusII工具软件来完成对频率计的设计输入、编译、综合和硬件下载的工作。在编程过程中分别对秒脉冲产生电路、控制计数器模块、显示数据寄存器、位码寄存器、段码寄存器进行了VerilogHDL描述。下面给出各模块的部分程序。2数字频率计的总体结构数字频率计主要由基准时钟模块、计数控制模块及显示输出模块构成。其结构简图如图1所示。被测信号控制计数器模块显示数据寄存器段码寄存器1秒脉冲产生电路clk为CPLD核心板上的100有源时钟,second为秒基准时钟显示模块产生的秒基时钟,counter为内部时钟分频计数寄存器,本秒脉冲产生电路位码寄存器模块部分程序如下:外问时钟晶振100Mhzalways@(posedgeclk)图1数字频率计结构简图begin其中秒脉冲产生电路主要完成对系统时钟100MHz的分频工作,得到标准的1s的秒基准时钟脉冲。同时位码寄存器和显示数据寄存器从秒脉冲产生电路中截取部分时钟信号用于数据更新及数码管驱动输出的控制。在控制计数器模块中,设置了一个频率计数寄存器和一个频率更新寄存器,用于存放被测信号的频率值和更新值,频率值存放到数据显示寄存器中,通过段码寄存器将数据进行译码输出。显示模块的主要功能是把测量的数据结果通过4位数码管上显示出来。if(counter99999999)counter=counter+1'b1;elsebeginsecond=~second;counter=0;endend2控制计数器模块二、硬件设计clk_x为待测信号的频率时钟输入,fre_flash[15:0]为数字频率计的硬件部分主要采用CPLD的核心板进行设计,其中核心芯片是EPM240T100C5。该芯片的逻辑单频率的计数寄存器,主要完成对输入信号频率数据的存储,本模块部分程序如下:元有240个,等效宏单元有192个,最大I/O引脚80个[6],always@(posedgeclk_x)且具有功耗低,开发成本低,非易失等特点。核心板上主要有电源电路、JTAG下载电路、时钟电路。显示部分采用外扩的4位8段LED数码管电路来实现,时钟电路如图2所示,LED数码管电路的设计原理图如3所示。beginif(second)beginfre_flash[3:0]=fre_flash[3:0]+1;if(fre_flash[3:0]==4'h9)beginfre_flash[3:0]=4'b0;fre_flash[7:4]=fre_flash[7:4]+1;if(fre_flash[7:4]==4'h9)begin图2时钟电路fre_flash[7:4]=4'b0;fre_flash[11:8]=fre_flash[11:8]+1;if(fre_flash[11:8]==4'h9)beginfre_flash[11:8]=4'b0;fre_flash[15:12]=fre_flash[15:12]+1;if(fre_flash[15:12]==4'h9)fre_flash[15:12]=4'b0;end图3LED数码管电路三、软件设计end数字频率计的软件设计主要是通过软件方式在CPLDend器件内部形成实际的功能电路,已完成对被测信号频率的end2014年第6期82TechnologyApplication第16卷第6期技术应用周鹏,孟晋,孙荣庆:基于CPLD的4位数字频率计的设计与实现Vol.16,No.63显示数据寄存器上述数字频率计的程序在通过QuartusII软件编译、通过内部寄存器disp来选择输出0~9的十六进制数,本模块部分程序如下:case(disp)综合后,下载到实际的系统板上,在接入各种不同频率信号的情况下,其测试结果如表1所示。4'h0:leddat_reg=8'h3f;4'h1:leddat_reg=8'h06;4'h2:leddat_reg=8'h5b;4'h3:leddat_reg=8'h4f;4'h4:leddat_reg=8'h66;4'h5:leddat_reg=8'h6d;4'h6:leddat_reg=8'h8d;4'h7:leddat_reg=8'h07;4'h8:leddat_reg=8'h7f;4'h9:leddat_reg=8'h6f;endcase图4100被测信号的仿真输出结果表1四种不同频率输入的测试结果4位码寄存器通过选取内部寄存器counter的部分计数结果来刷新4位数码管的输出位数,本模块部分程序如下:case(counter[18:17])5505505005002'b00:sel_reg=4'b0001;10005000100050002'b01:sel_reg=4'b0010;2'b10:sel_reg=4'b0100;五、结论2'b11:sel_reg=4'b1000;本文采用CPLD器件完成了对4位数字频率计的设计,在单片芯片上实现了整个数字系统,并将最终测量结果通过LED数码管来显示。整个频率计的体积小、开发成本低、工作稳定、测量数据准确,而且使用硬件描述语言进行设计,实现了硬件系统的软件化。它不需要复杂的板上连线,可根据不同需求随时更改电路设计,加快了系统的实现速度。endcase5段码寄存器通过选取内部寄存器counter的部分计数结果来刷新每一位数码管的结果输出,即0~9的十进制数,本模块部分程序如下:case(counter[18:17])———————————————————————2'b00:disp_dat=fre[3:0];2'b01:disp_dat=fre[7:4];参考文献:2'b10:disp_dat=fre[11:8];[1]曾永西.基于QuartusII的两种数字频率计的设计与比较[J].福建电脑,2008(6):168-169.2'b11:disp_dat=fre[15:12];endcase[2]张洋.基于CPLD的简易数字频率计的设计[J].现代电子技术,2011(19):183-186.四、仿真与测试结果利用modelsim软件并编写测试程序对各个模块电路的VerilogHDL程序进行仿真,选取被测信号clk_x的频率为100Hz,观察输出信号为leddat的输出结果。具体仿真波形如图4所示。[3]张博,曹学岩,房亮.基于VHDL的简易数字频率计的设计[J].传感器世界,2013(5):29-33.[4]张丽萍,朱尧富.基于CPLD的简易数字频率计的设计[J].大众科技,2007(95):65-66.根据波形仿真图可以看到,当数码管位选信号为0001的时候,leddat的结果为十六进制3f,即数码管的个位输出十进制数0。同理,数码管的十位、百位、千位输出数据分别为3f、06、3f,即十进制数0、1、0。因此,从仿真结果可以看出频率计的设计十分精确,输出的结果正好是100,与clk_x的设计输入完全相同。[5]聂辉.CPLD数字频率计系统的研究与设计[J].重庆科技学院学报:自然科学版,2005(1):76-79.[6]陈曙光.基于EPM240T的CPLD开发板设计与实现[J].天津职业大学学报,2010(3):80-82.[责任编辑,抚顺职院:陈辉]2014年第6期83
本文标题:基于CPLD的4位数字频率计的设计与实现
链接地址:https://www.777doc.com/doc-2568965 .html