基于FPGA和VHDL的高精度数字频率计研究与设计

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:Chanco
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:设计实现了一种高精度数字频率计。频率计核心部分的设计采用了基于 FPGA 大规模可编程逻辑器件的EDA设计技术。根据直接测频原理建立数字频率计的系统结构框图,自頂向下把数字频率计按照实现功能的不同划分成多个子功能模块并用VHDL程序实现了每个子模块的功能,最后将各个模块级联起来构成数字频率计顶层电路。设计的频率计信号频率测量范围为1Hz?10MHz。在QUARTUS II平台软件平台上完成数字频率计的软件设计和仿真,结果表明所设计的数字频率计达到了设计精度要求,并且各项性能指标符合设计要求。
  关键词:EDA技术;数字频率计;FPGA;VHDL;Quartus II
  中图分类号:TM935.133
  电子设计自动化 (Electronics Design Automation,EDA)技术的发展和可编程器件的广泛应用改变了传统的电子系统的设计方法[1-2]。可编程逻辑器件通过软件编程实现其硬件的结构和工作方式的重构,使得硬件的设计可以如同软件设计那样方便快捷。数字频率计是数字电路中的一个典型应用,传统的数字频率计的硬件设计部分用到的器件较多,产生的延时较大且连线复杂,其测量范围和测量精度都受到很大的限制。基于现场可编程门阵(Field-Programmable Gate Array,FPGA)的数字频率计不但集成度远远超过了以往的频率计,而且在保持硬件电路不变的情况下,根据不同场合对精度和频率范围要求。通过修改源程序,即可更改系统的精度和频率范围,从而实现数字系统硬件的软件化[3-5]。本文研究了基于EDA的八位十进制数字频率计电路的设计方法,在Quartus II平台上,利用超高速集成电路硬件描述语言(Very High Speed Integrated Circuit Hardware Description Language,VHDL)编程完成了基于FPGA逻辑器件的软件设计。
  1 频率计的设计原理与框图
  1.1 频率计的设计原理
  数字频率计是一种能把频率和时间等两种以上的物理量进行数字化测量的仪器,其基本设计原理是选取一个基准频率,要求该频率稳定度较高,将该频率对比测量其他信号的频率,计算每秒内待测信号的脉冲个数并换算成频率并以数字形式显示出来。常用数字频率测量方法有直接测频法和间接测频法,直接测频法适合于数字电路实现,其基本原理是选取闸门信号,将被测信号转换为同频的周期性脉冲信号,然后将被测脉冲信号填入选取的闸门时间内,通过计数电路对被测脉冲信号在闸门时间T内出现的脉冲个数进行计数,得到被测脉冲频率[6-7]。频率测量法原理图如图1所示。信号的个数N,通过式(1)获得被测信号的频率fx。
  (1)
  图1 频率测量法原理图
  本次设计的数字频率计采用直接测频法,设计中选取了1s作为闸门时间。脉冲信号发生器输入一个标准时钟信号,经过测频控制信号发生器的处理后产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。因此,需要计算T=1秒钟时基内待测信号整形后信号脉冲的个数N,该计算结果即为当前频率值,即fx=N。
  1.2 频率计的设计原理框图
  本频率计是8位十进制数字频率计,整个系统分为四个模块,分别是控制模块,计数器模块,锁存器模块和译码显示模块,系统组成方框图如图2所示。
  图2 八位数字频率计的原理框图
  1.2.1 测频控制模块
  频率计控制模块的作用是产生测频所需要的各种控制信号,其输入时钟为1HZ,每两个时钟周期进行一次频率测量。控制模块产生三个控制信号,分别为计数控制信号(teten),清零信号(clr_cnt)以及锁存信号(load)。clr_cnt用于在每次测量开始时,对计数器进行复位,以清除频率计上次测量的结果。Teten是长度为1秒的高电平脉冲周期信号,用以对频率计的每一个计数器的使能端进行同步控制,当计数控制信号为高电平时频率计开始计数,低电平时则停止计数,并保持所计的数,在1秒时间里对被测信号的脉冲数进行的计数即为信号的频率。
  图3 控制信号的时序关系
  控制模块的几个控制信号的时序关系如图3所示。从图中可看出,计数使能信号tsten在1s的高电平后,利用其反相值的上跳沿产生一个锁存信号load,随后产生清0信号上跳沿clr_cnt。
  1.2.2 十进制计数器模块
  计数器模块含计数选通控制信号、计数器清零信号等端口,以便于控制模块对其进行控制。它由8 个十进制计数器组成,设计时先制作一个十进制计数器,将多个同样结构的计数器在FPGA 内部进行整合连接即组合成一个完整的计数电路模块。当计数器的复位信号清零后,且计数选通控制信号为高电平时,清零信号为低电平时计数器开始计数,计数到九时产生进位信号。当复位信号高电平到来后,计数器清零。计数器读取输入脉冲的高电平脉冲个数来计数[8]。由于计数选通控制信号的脉冲宽度为1s,其计数结果即为待测信号的频率。此测量模块的测量位数为8位,若想改变频率计的测量位数,则可适当的改变计数器的个数,并且相应模块更改相应的参数,如此就可以增加或者减少频率计的测量范围。
  1.2.3 输出信号锁存模块
  锁存器模块用于实现记忆显示,也是必不可少的,通过锁存器来保存计数结果,主要是防止由于周期性的清零信号产生的干扰而使其显示不稳定。
  1.2.4 译码显示模块
  译码器用于数码管显示,其功能是将锁存器保存并输出的十进制数进行译码转换,将其转换成相应的能够在七段数码管上显示的十进制输出信号。为了提高数码管的利用效率,采用动态扫描的方法来控制共阴极数码管的显示,每个数码管显示十进制数0-9。每个时钟周期内只显示一位十进制数据,延时一段时间后接着发送第二个要显示的数据。虽然每次只有一个数码管显示,但当扫描频率设置为足够高时,由于人的视觉暂留现象,观察者会感觉所有的显示器在同时显示相应的数据。该模块的输入端口接锁存器输出的32位二进制数据,32位二进制数据从低到高每4位表示一个数码管的显示数据。本文中的频率计的核心电路以选用FPGA器件EP2C8Q208C8芯片。设计的频率计值的宽范是1Hz-10MHz,接入被测信号的电压幅值是0.5V-5V。   2 频率计的VHDL设计实现
  VHDL语言一种多层次的硬件描述语言,其应用覆盖面广,描述能力强,能支持硬件的重复设计和测试。运用VHDL语言设计数字系统时,其设计方式是自顶向下分层设计[9],首先从系统级功能设计开始,对系统高层模块进行行为描述和功能仿真。系统的功能验证完成后,将抽象的高层设计自顶向下逐级细化。
  2.1 频率计各功能模块及VHDL描述
  2.1.1 控制模块
  在整个系统测量工作过程中,频率计控制模块控制其开始,并控制其它模块的工作情况。频率计控制模块freq由一个输入端和三个输出端构成,输入端为时钟信号控制CLK,输出端分别为计数使能信号en_cnt、锁存输出信号load和复位输出信号clr_cnt。该模块的主要VHDL语言源程序如下:
  process(clk)
  if clk'event and clk='1'then
  div2clk<=not div2clk;
  end if;
  end process;
  clr_cnt<='1' when clk = '0' and div2clk = '0' else'0';
  load<=not div2clk;
  en_cnt<=div2clk;
  2.1.2 十进制计数器模块
  计数器由八个四位十进制计数器级联而成。首先实现一个十进制计数器,计数器计数为9时产生进位信号,并将该十进制计数结果置为0。然后通过元件例化语句,将低位的进位信号作为高位的计数信号,使用八个十进制计数器级级相连实现八位十进制计数。该模块的主要VHDL语言源程序如下:
  if clr='1'then–clr为复位信号
  qout_t<=x"0";
  elsif clk'event and clk='1'then--clk计数时钟
  if ena='1'then–ena为使能信号
  if qout_t<9 then
  qout_t<=qout_t+'1';
  else
  qout_t<=x"0";
  end if;
  end if;
  end if;
  end process;
  car_out<='1' when qout_t=x"9"else'0';
  qout<=qout_t;
  通过元件例化语句,使八个十进制计数器级级相连:
  u1 :cnt10 port
  map(clk=>fs_in,clr=>clr_cnt,ena=>en_cnt,
  qout=>d_temp(3 downto 0),car_out=>c(0));
  u2 :cnt10 port
  map(clk=>c(0),clr=>clr_cnt,ena=>en_cnt,
  qout=>d_temp(7 downto 4),car_out=>c(1));
  ……
  2.1.3 锁存器模块
  其锁存信号Load由控制模块的输出端提供,当锁存信号上升沿到来时,将测量值锁存到寄存器中,然后输出到显示模块。锁存器是起数据保持的作用,它将数据保存到下次触发或复位。锁存器电路模部分VHDL程序如下:
  begin
  process(load, d_temp)is
  begin
  if load'event and load='1' then
  dout<=d_temp;--dout为32位被测时钟频率的二进制数据值
  end if;--d_temp為32位被测时钟频率的二进制缓存器值
  2.1.4 译码显示模块
  译码显示模块的输入端口接锁存器输出端口的32位二进制数据,该32位二进制数据从低到高每四位表示一个数码管的显示数据,即将该四位译成八个数目管对应的显示信息。该模块部分VHDL代码如下:
  case din is
  when"0000"=>dout<="00111111";--表示数据"0"
  when"0001"=>dout<="00000110";--表示数据"1"
  when"0010"=>dout<="01011011";--表示数据"2"
  when"0011"=>dout<="01001111";--表示数据"3"
  when"0100"=>dout<="01100110";--表示数据"4"
  when"0101"=>dout<="01101101";--表示数据"5"
  when"0110"=>dout<="01111101";--表示数据"6"
  when"0111"=>dout<="00000111";--表示数据"7"
  when"1000"=>dout<="01111111";--表示数据"8"
  when"1001"=>dout<="01101111";--表示数据"9"
  when"1010"=>dout<="01110111";--表示数据"a"
  when"1011"=>dout<="01111100";--表示数据"b"
  when"1100"=>dout<="00111001";--表示数据"c"
  when"1101"=>dout<="01011110";--"d"   when"1110"=>dout<="01111001";--"e"
  when"1111"=>dout<="01110001";--"f"
  when others=>dout<="00000000";
  end case;
  2.2 顶层逻辑电路图的设计
  根据上面分析的频率计的设计原理程序,用Quartus II软件分别对上述电路模块进行VHDL文本描述,把各程序经过编译以后,生成模块,将各功能模块的端口连接在一起,通过建立顶层文件,调用这些模块,完成电路的连接。
  数字频率计的FPGA顶层电路设计如图4所示。
  图4 FPGA顶层电路设计
  3 频率计的功能仿真
  利用Quartus II数字开发系统软件,对设计的频率计各模块所编写的频率计VHDL源程序进行逻辑编译综合及波形仿真,输入信号为待测频率fs_in和基准信号1HZ的clk,输出信号为dout,当输入待测信号的频率分别为 10HZ,100HZ,4953HZ和100000HZ時,数字频率计的最终仿真波形如图5所示。
  图5 数字频率计的仿真波形
  从图中可看出结果符合最初的设计要求,仿真验证了该频率计设计的正确性及可行性。
  4 结束语
  本文给出了基于EDA设计技术和FPGE的八位十进制数字频率计。设计利用VHDL描述语言,采用自顶向下的设计方法,这种设计方法的设计结构清晰,层次清楚。完成各个模块的设计后,编写顶层文件将各模块连接起来,并在Quart usⅡ软件上进行设计仿真,实验证明当被测信号频率在1Hz-10MHz范围内时,电路均可稳定运行,频率测量精度达到设计指标。
  参考文献:
  [1]潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2013.
  [2]李晓辉.数字电路与逻辑设计[M].北京:国防工业出版社,2012.
  [3]凌振宝,叶剑峰,孙正光.多功能数字频率计的设计与研究[J].吉林大学学报(信息科学版),2011(04):376-381.
  [4]徐瑞亚,邹传琴.CPLD在数字频率计设计中的应用[J].信息化研究,2011(03):30-32.
  [5]郝统关,程明.基于FPGA的等精度频率计设计[J].电测与仪表,2009(02):56-58.
  [6]向楠,黄道业.基于FPGA直接数字频率合成技术的研究[J].齐齐哈尔大学学报,2014(01):45-49.
  [7]刘竹琴,白泽生.一种基于单片机的数字频率计的实现[J].现代电子技术,2010(01):90-92.
  [8]杨旭,刘盾.EDA技术基础与实验教程[M].北京:清华大学出版社,2010.
  [9]杨明涛,杨海明,侯文.基于C8051F041的高精度频率计设计[J].电子元器件应用,2010(02):23-24.
  作者简介:晏细兰(1985-),女,江西南昌人,助教,硕士,研究方向:嵌入式技术与应用,物联网应用;谢景明,男,副教授,研究方向:移动互联网开发、游戏引擎;熊茂华,男,教授,研究方向:嵌入式技术、智能控制、工业自动化。
  作者单位:广州番禺职业技术学院 信息工程学院,广州 511483
  基金项目:广州市第二批市教育系统创新学术团队项目“移动互联网游戏公共开发平台的研究”(项目编号:13C18)。
其他文献
摘 要:面对层次高低不一的学生,如何从层出不穷的教学方法和教学手段中选出一条合适的道路,改良课堂教学策略,成了提高课堂有效性教学提升的关键因素。本人根据多年在中等职业学校担任《C语言程序设计》的教学体会,结合当下所教班级中学生的实际情况,就C语言课程的有效教学展开论述。  关键词:中职;C语言;设计;教学;有效性  中图分类号:TP312.1-4  1 存在的问题和困惑  《C语言程序设计》课程共
期刊
摘 要:本文介绍了新疆大学教师科研工作量管理系统的分析与设计过程。本系统紧扣新疆大学科研工作量计算办法,通过集中管理教师科研工作量的基本信息并进行核算和奖励分配,从而极大推动了该校的科研管理工作的信息化和科学化。  关键词:WEB;B/S;教师科研工作量  中图分类号:TP311.52  教学、科研、服务是高校的三大职能,各高校在重视人才培养的同时,也越来越重视科学研究,以达到更好地服务社会的目的
期刊
摘 要:单片机是一门理论性和实践性都很强的学科,在当前出现“教师讲授难、学生理解难”的现象中,文中提出“做中学,做中教”的教学理念,强调通过“做”来掌握单片机这门技术和提高学生的实践能力,提出建立网上单片机学习答疑系统来加强学生与教师的沟通、交流,促进学生对单片机的学习。  关键词:做中教;做中学;单片机教学  中图分类号:TP368.1-4  随着电子技术和计算机技术的发展,单片机应用范围越来越
期刊
摘 要:岩溶塌陷具有突发性、隐蔽性、不确定性,其监测、预警问题一直未能得到很好的解决。本文在分析岩溶塌陷的机理及其形态因素的基础上构建监测指标体系,采用服务器端脚本技术(ASP.NET)以及Jquery框架,开发了基于B/S架构的岩溶区高速公路管控预警系统,实现了监测技术、监测数据的集成管理及分析应用,从而加强了高速公路岩溶塌陷的风险管控,并保障了高速公路道路运营安全。  关键词:岩溶塌陷;监测;
期刊
摘 要:在Web应用程序中,Cookie应用十分广泛,且给用户带来了极大的便利,然而,由于Cookie中所包含信息的敏感性,极易被不法人员利用而造成巨大损失,因此,如何对Cookie进行有效的测试就成为用户上网安全的重要保障。本文对Cookie的概念、作用和调用过程进行了分析,并Cookie机制存在的问题进行了讨论,在此基础上提出了Cookie测试的概念,并对Cookie测试的测试点进行了分析,进
期刊
摘 要:随着素质教育的普及,教育界也掀起了大規模的改革进程,其中高职院校也在努力寻求改革发展,教学文化建设使其改革的内在需求和其改革发展的保障。但是,我国很多高职院校的改革并没有重视教学文化的构建,对此还没有形成完善的理论,需要进一步发展,多方面提教学文化建设。本文主要以3DMAX教学为例来探讨高校课程改革的文化构建措施。  关键词:课程改革;高职院校;教学文化;3DMAX  中图分类号:TP27
期刊
摘 要:ACCESS实验课是ACCESS教学的重要组成部分,本文从分析教师和学生入手,解答了为什么要进行ACCESS实验课程教学改革,然后针对提出的问题,设计出了“虚拟导师环境”下的ACCESS实验课教学设计模式,提出了解决问题的实施方案。  关键词:ACCESS实验课;虚拟导师;教学设计模式  中国分类号:G642.4  改革开放以来,高等教育在中国取得了辉煌成就。可是,高等教育发展的速度不能完
期刊
摘 要:本文针对规则切割的汉字碎纸片的拼接复原,通过读取碎纸片的灰度值,进行二值化处理,建立规则切割的汉字碎纸片的拼接复原模型,对二值图像矩阵与对应的列矩阵、边缘矩阵的处理,结合人工干预,获得正确的图片顺序,结果表明,拼接复原相似度很高。  关键词:拼接复原;二值化处理;Matlab;边缘矩阵  中图分类号:TP391.41  将破碎的文件拼接复原一般需要提取每一个破碎文件的关键信息,然后根据信息
期刊
摘 要:针对高效率教学由于校园规模不断扩张、专业信息冗杂而难以实现的现状,本文在分析数字化校园理论的基础上,以苏州科技学院图书馆为实验场所,提出利用手机校园漫游导览系统优化数字化校园建设,最终在校园资讯导航方面以智能手机为媒介实现了虚拟校园导览系统的实际价值。  关键词:手机;虚拟漫游;校园;交互技术  中图分类号:TP393.18  虚拟校园借助计算机将实体校园通过三维仿真、虚拟现实技术等方式,
期刊
摘 要:针对平安城市视频监控画面中存在的黑屏、冻结、偏色等问题,设计并实现了基于监控视频的质量诊断系统。该系统获取前端摄像机的视频图像,调用对应的检测算法对视频图像进行准确分析、判断,并给出告警提示。用户通过Web页面对系统结果,运行情况进行监控。结果表明,该系统实现了对常规视频故障的快速检测,能够满足大规模数字视频监控系统运行的需求。  关键词:平安城市;视频监控;视频质量诊断;轮询  中图分类
期刊