数字频率计设计_第1页
数字频率计设计_第2页
数字频率计设计_第3页
数字频率计设计_第4页
数字频率计设计_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 基于fpga的自适应数字频率计设计 design of adaptive digital frequency meter based on fpga基于fpga的自适应数字频率计的设计基于fpga的自适应数字频率计的设计 摘 要本文运用eda技术和pfga 技术设计基于fpga的自适应数字频率计系统。eda技术是现代电子设计技术的核心潮流,fpga的发展对eda 技术起到了巨大的推动作用。运用hdl 语言,借助 eda 开发工具,在fpga上实现一个复杂系统的硬件电路功能具有设计灵活、高效、成本低、开发周期短的特点。文中首先概述eda技术,硬件描述语言vhdl, fpga 技术及eda 开发

2、工具quartus ii,然后在几种常用的数字频率计的测量方法中选定直接测频法作为设计算法原理,并根据直接测频法原理建立数字频率计的系统结构框图。接下来自顶向下把数字频率计分成若干个功能模块,对每一个模块用 vhdl 语言描述并用 quartus ii 仿真,确定其功能正确实现后,再将各个模块级联起来构成数字频率计顶层电路,并对整个系统的进行仿真。最后在实验箱上对整个系统进行硬件测试。测试结果表明该数字频率计的功能得到实现,并且各项功能指标符合设计要求。关键词:数字频率计 直接测频法 vhdl fpgaabstractin this paper,a digital frequency mete

3、r based on fpga is designed by using eda technology.eda technology is the core of modern electronic technology,the development of fpga has played a tremendous role in promoting the development of eda technology.by using hdl and eda development tools, a complex hardware system on fpga can be designed

4、 with characteristics of design flexibility, high efficiency,low cost and short development cycle.in this paper,an overview of eda technology, hardware description language vhdl,fpga technology and eda development tools quartus ii is firstly given,then in several commonly used digital frequency mete

5、r measuring method,direct frequency measurement method is selected as the design algorithm.a system block diagram of the digital frequency meter is established based on the principle of direct measurement.the digital frequency meter is divided into several functional modules according to top-down me

6、thod.each module is described by vhdl and simulated by quartus ii.after determining its function correctly implemented,each module is connected together to form a digital frequency meter top-level circuit,then the whole system is simulated. finally,the entire system is tested on the experimental dev

7、elopment board.the test results show that the functions of digital frequency meter are realized,and the function parameters meet the design requirements.key words: digital frequency meter direct frequency measurement method vhdl fpga目录第1章 绪论11.1 课题研究的目的及意义11.2 研究内容及方法2第2章 eda与fpga概述32.1 eda技术概述32.2

8、fpga概述42.3 基于eda软件的fpga开发流程4第3章 vhdl与quartus概述63.1 vhdl语言63.2 quartus ii软件平台6第4章 系统设计及组成原理84.1 基于fpga的数字频率计的设计算法原理84.2 基于fpga的数字频率计的系统组成原理9第5章 系统的实现及仿真115.1 信号放大整形电路115.2 数码管显示135.2 fpga功能模块135.3.1 测频控制信号发生器control175.3.2 数控偶数倍分频器dvf185.3.3 bcd码加法计数器cnt28195.3.4 数据锁存器lock28205.3.5 自适应器zishiying215.3

9、.6 数码管扫描译码模块led_scan245.3.7 分频比重置器value275.4 数字频率计系统仿真28第6章 系统硬件测试306.1 引脚锁定306.2 编程下载316.3 测试结果32第7章 结束语33参考文献34附录a 外文资料翻译36a.1 外文资料36a.2 中文翻译41附录b 其余程序45b.1 数控偶数倍分频器dvf45b.2 bcd码计数器cnt2846b.3 28位锁存器lock2847b.4分频比置数器value48石家庄铁道大学毕业设计第1章 绪论1.1 课题研究的目的及意义现代电子设计技术的核心已趋向基于计算机的电子设计自动化技术,即eda(electronic

10、 design automation)技术。eda技术就是以计算机为工具,设计者在eda软件平台上,对以硬件描述语言hdl(hardware description language)为系统逻辑描述手段完成设计文件,由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局布线、逻辑优化和仿真测试,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。eda技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,这是电子设计技术的一大进步。目前,以硬件描述语言hdl完成电路设计,借助eda工具经过简单的综合与布局,快速的烧录至 fpga(fieldprogrammable

11、gate array,现场可编程门阵列)或者cpld(complex programmable logic device,复杂可编程逻辑器件)上进行测试,是现代 ic 设计验证的技术主流。硬件描述语言hdl是eda技术的重要组成部分,常见的hdl主要有vhdl、verilog hdl、abel、ahdl、system verilog和systemc。本设计采用的是vhdl语言。vhdl的英文全名是vhsic(very high speed integrated circuit) hardware description language。vhdl具有与具体硬件电路无关和与设计平台无关的特性,并

12、且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。频率是信号的一个基本参量,信号的频率直接影响着电子系统的性能。测量信号频率的工具,即频率计,是电子系统测量常用工具。频率计是一种用十进制数字显示被测信号频率的数字测量仪器1 杨龙麟. 电子测量技术(第3版)m.北京:人民邮电出版社,2009.。它的基本功能是测量正弦信号、方波信号、尖脉冲信号及其他各种单位时间内变化的物理量。在传统的电子测量仪器中,示波器在进行频率测量时测量精度较低,误差较大。频谱仪可以准确的测量频率并显示被测信号的频谱,但测量速度较慢,无法实时快速的跟踪捕捉到被测信

13、号频率的变化。由于频率计能够快速准确的捕捉到被测信号频率的变化,因此,频率计拥有非常广泛的应用范围。但是实际的硬件设计用到的器件较多,连线比较复杂,而且会产生较大的延时,造成的测量误差、可靠性差。随着fpga等可编程逻辑器件的发展,eda 技术配合开发软件运用hdl语言设计的方式改变了传统电子设计实现时的器件多、可靠性性等缺点,且它的开发周期短,开发成本低,在硬件电路不变时,通过修改源程序,便可增加新功能,实现数字系统硬件的软件化,是现代电子设计技术的核心和潮流。1.2 研究内容及方法本设计主要研究了基于fpga的自适应数字频率计系统的设计方案与实现过程。系统可以测量正弦波、方波、三角波等波形

14、的频率,测量频率范围为010mhz,分为0999hz,1999.999khz,19.999999mhz三档,并可自适应换挡。为了实现上述设计功能及要求,数字频率计系统应分为外围电路:信号放大整形电路和数码管动态显示模块;核心模块:fpga模块。本设计除了对被测信号的整形部分和对测量值的数码管显示部分外,在 quartus软件平台上应用 vhdl文本输入设计方法实现fpga模块的设计。其中涉及到在软件平台quartus ii环境下采用层次化的设计方法,首先通过vhdl语言来编写程序,从而实现fpga部分的各个功能模块,并对各个模块进行仿真。然后以例化语句完成顶层设计,最后对整个系统进行仿真。软件

15、部分功能验证正确后,下载到以ep1c6q240c8芯片为核心的gw48eda_pk2/pk3实验箱上进行测试。信号整形放大电路通过multisim软件进行设计及仿真。第2章 eda与fpga概述2.1 eda技术概述eda技术就是以计算机为工具,设计者在eda软件平台上,对以硬件描述语言hdl(hardware description language)为系统逻辑描述手段完成设计文件,由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局布线、逻辑优化和仿真测试,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。eda技术在硬件实现方面融合了大规模集成电路制造技术、ic 版图设计、专

16、用集成电路asic(application specific integrated circuit)测试和封装、fpga/cpld编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计cad(computer - aided design)、计算机辅助制造cam(computer-aided manufacturing)、计算机辅助测试cat(computer aided translation)、计算机辅助工程cae(computer aided engineering)以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字

17、系统建模和优化技术及其高频的长线技术理论等2 潘松,赵敏笑. eda技术及其应用m.北京:科学出版社,2007.2。回顾近 30 年电子设计技术的发展历程,可将 eda 技术分为三个阶段:七十年代为 cad 阶段,人们用计算机辅助进行 ic 版图编辑、pcb 布局布线,取代了手工操作,产生了计算机辅助设计的概念;八十年代为 cae 阶段,与 cad 相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计;九十年代为 esda 阶段,人们开始追求贯彻整个设计过程的自动化,这就是 esda 即电子系统设计自动化。传统的电子设计的基本思

18、路是选择标准集成电路“自底向上”的构造出一个新的系统。这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。esda 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,首先从系统设计入手,在顶层进行功能方框图的划分和结构设计;在方框图一级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行验证;然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,有利于早期发现结构设计上的错误,避免设计工作的浪费,同时也减少了逻辑功能仿真的工作量,

19、提高了设计的一次成功率3 张彩珍. eda技术及实践m. 成都:西南交通大学出版社,2011.。2.2 fpga概述fpga和cpld可编程逻辑器件代表了现今最先进和最热门的 eda 技术的发展方向。现代电子产品的复杂度日益加深,这就带来了体积大、功耗大、可靠性差的问题。解决这一问题的有效方法就是采用 asic(application specific integrated circuits-专用集成电路)芯片进行设计。asic 按照设计方法的不同可分为:全定制asic,半定制 asic,可编程 asic(即可编程逻辑器件pld)。全定制 asic 和半定制 asic都是约束性的设计方法,其主

20、要过程是先由设计师进行设计和定义,再由厂家完成 ic 制作。pld 则与上述两种设计方法不同:设计人员完成版图设计后,在实验室内就可以烧制出自己的芯片,无须 ic 厂家的参与,大大缩短了开发周期4 simpson, philip. fpga designm. germany: springer science+business media, llc, 2010.4。近年来,随着集成电路的深亚微米制造技术和设计技术的迅速发展,集成电路进入了片上系统(soc-system on a chip)时代。它在单一芯片上集成了数字电路、模拟电路、信号采集和转换电路、存储器、mpu、mcu、dsp、mpeg

21、 等,实现了过去需要多片集成电路才能完成的功能。随着 soc 技术的发展,也出现了面向 soc 的 pld。如 xilinx 公司推出的 virtex 系列、altera 公司推出的 apex20k 系列集成度都达到了百万门乃至千万门以上,有的soc pld还专门集成了 cpu。随着 pld 技术和器件性能的不断提高,pld器件尤其是fpga 器件,已成为现代高层次电子设计方法的首选实现载体。本系统在以cyclone公司出产的型号为 ep1c6q240c8的fpga芯片为核心的gw48eda_pk2/pk3实验箱上进行硬件测试。2.3 基于eda软件的fpga开发流程完整地了解利用eda技术进

22、行设计开发的流程对于正确地选择和实验eda软件、优化设计项目、提高设计效率十分有益,一个完整的,典型的eda设计流程既是自顶向下设计方法的具体实施途径,也是eda工具软件本身的组成结构。fpga 的eda开发流程如图2-1所示,其具体步骤如下5 潘松,黄继业.eda技术与vhdlm.北京:清华大学出版社,2000.5:(1)设计输入。设计输入包括图形输入和硬件描述语言文本输入。图形输入通常包括状态图输入、波形图输入和原理图输入等方法。硬件描述语言文本输入与传统的计算机软件语言编辑输入基本一致,就是将使用了某种硬件描述语言的电路设计文本,如vhdl,进行编辑输入。(2)综合。综合就其字面含义应该

23、为把抽象的实体结合成单一或统一的实体。因此,综合就是把某些东西结合到一起,把设计抽象层次中的一种表述转化成另外一种表述的过程。对于电子设计领域的综合概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配而成的过程。图2-1 fpga 的eda开发流程fpga/cpld器件和电路系统vhdl文本/原理图综合时序与功能门级仿真fpga/cpld 编程下载fpga/cpld适配图 (3)布线布局。布线布局也称为适配。适配器也称结构综合器,它的功能是将由综合器产生的网表文件配置于指定的目标器件中,使之产生最终的下载文件。适配器选定的目标器件必须属于原综合器指定的目标器

24、件系列。适配完成后可以对适配产生的仿真文件进行精确的时序仿真,同时产生可用于编程的文件。(4)仿真。在编程下载前必须利用eda工具对适配生成的结果进行模拟测试,就是所谓的仿真。仿真就是让计算机根据一定的算法和一定的仿真库对eda设计进行模拟,以验证设计,排除错误。(5)下载和硬件测试。把适配后产生的下载或配置文件,通过编程器或编程电缆向fpga或cpld进行下载,以便进行硬件调试验证。第3章 vhdl与quartus概述3.1 vhdl语言硬件描述语言hdl是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合

25、大规模系统尤其可编程逻辑器件的设计。随着 eda 技术的发展,使用硬件语言设计 cpld或fpga 成为一种趋势。目前最主要的硬件描述语言是 vhdl 和 verilog hdl。vhdl 发展的较早,语法严格,而 verilog hdl 是在 c 语言的基础上发展起来的一种硬件描述语言,语法较自由。vhdl 和verilog hdl 两者相比,vhdl 的书写规则比 verilog 烦琐一些,但 verilog 自由的语法也容易让少数初学者出错6 frank vahid. digital design, with rtl design, vhdl, and verilog m.us:wile

26、y,2011.6。本文主要采用 vhdl 编写程序。vhdl具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化,结构化设计方面,表现了强大的生命力和应用潜力。因此,vhdl在支持各种模块的设计方法,如自顶向下与自底向上或混合方法方面,以及在面对当今许多电子产品生命周期的缩短,需要多次重新设计以融入最新技术,改变工艺等方面都表现出了良好的适应性。用vhdl进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的于工艺有关的因素花费过多的时间和精力。3.2 quartus ii软件平台目前使用比较广泛的

27、 pfga 开发工具有 altera 公司的 max+plusii 和quartus , xilinx 公 司 的 foundation 和 ise , lattice 公 司 的 isp synario 和isplever,以及其他由第三方公司开发的平台。本系统采用的仿真平台为quartus,因此下面主要介绍一下 altera 公司的 quartus ii 平台。quartus应用开发工具提供完整的多平台设计环境,它可以轻易满足特定设计的需要,是可编程片上系统( sopc) 设计的综合性环境。它可在个人计算机或unix / linux 工作站上使用,提供广泛的器件支持库、高速的编译效率、较好

28、的图形界面和便捷的仿真平台,大大简便了整个设计过程,做到真正的快速 cpld/fpga应用开发。quartus设计软件提供了完全集成且与电路结构无关的开发包环境,可进行层次化的工程设计,不同的功能模块上选择不同的源文件输入方式可设计出不同的底层功能模块,然后再把这些模块用元件例化语句组装起来,便可生成具有一定功能的器件,设计自由,操作方便7 王辉,殷颖,陈婷. max+plus 和quartus 应用与开发技巧m.北京:机械工业出版社,2007.7。quartus ii 设计方法有 hdl 文本输入方式,原理图输入方式,状态图输入方式以及混合输入方式。本设计采用的是hdl文本输入方式,基于qu

29、artus ii的hdl文本输入设计流程如下:(1)创建工程准备工作。任何一项设计都是一项工程,都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。(2)创建工程。在此要利用new project wizard工具选项创建此设计工程,并设定此工程的一些相关信息,如工程名、目标器件、综合器、仿真器等。(3)编译前设置。在对工程编译处理前,必须做好必要的设置。(4)全程编译。quartus ii编译器是由一系列处理模块构成的,这些模块复杂对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,即时序分析。(5)时序仿真。工程通过编译后,必须对其功能和时序性质进行仿真测试,以了解设计

30、结果是否满足原设计要求。(6)观察rtl电路图。quartus ii可实现硬件描述语言或网表文件对应的rtl电路图的生成。(7)引脚锁定和下载。为了能对设计进行硬件测试,应将其输入输出信号锁定在芯片确定的引脚上,将编译产生的sof格式配置文件下载进fpga中。当硬件测试完成后,还必须对配置芯片进行编程,完成fpga的最终开发。第4章 系统设计及组成原理4.1 基于fpga的数字频率计的设计算法原理频率测量方法主要有以下三种:(1)直接测频法这个方法又称 m 法。其基本原理为在一个单位时间t内计数被测信号的上升沿或下降沿的个数n。根据公式4-1即可求得被测信号频率: (4-1)如果单位时间t的长

31、度为1s,则被测信号的频率就是n,单位为hz。这个方法的优点是过程简单,计算量少,计数值就是被测信号的频率。误差主要来源于单位时间t是否精确,计数个数存在的误差。这一误差对低频信号影响较大,对高频信号的影响可忽略。(2)等精度测频法这个方法又称 m/t 法。其基本原理为是在直接测频法的基础上改进而来的,闸门信号的产生分为两个步骤:首先由标准时钟产生一个预设闸门信号,然后用被测信号同步预设闸门信号产生实际闸门信号。标准时钟和被测信号在实际闸门内进行计数得到和,标准时钟的频率为。根据公式4-2可求得被测信号的频率: (4-2)这个方法在测低频信号时,精度比直接测频法有所改进;但是对高频信号特别是频

32、率比标准时钟高的信号效果不会有很大改善。(3)周期测频法这个方法又称 m 法。其基本原理为被测信号作为闸门信号,而将频率较高的标准频率信号作为填充脉冲进行计数。设标准频率信号的频率为,在一个闸门时间内计数值为n ,则根据公式4-3可得到被测信号的频率: (4-3)这种方法的优点是测量时间快,最短只需要被测信号的一个周期;缺点是需要进行倒数运算,即除法运算。误差主要是时间间隔t依赖标准时钟的精度;计数时间间隔也存在1的误差;除法运算也存在一定的误差。这些误差对低频信号影响小,对高频信号影响大,特别是当被测信号的频率大于标准信号时这种方法几乎不能使用8 刘福奇,刘波.verilog hdl应用程序

33、设计实例精解m. 北京:电子工业出版社,2009.8。本设计采用的是直接测频法,取闸门时间为1s。由公式4-1可知,当t取1s时,也就是计数器的计数值即被测频率。t除了通常取1s外,根据被测信号的范围也可以取0.1s、0.01s或几秒,这样求得的n值必须乘以10、100或除以若干倍后,才能得到所求的。闸门时间越长,得到的频率值就越准确,但每次测量的间隔时间就越长。闸门时间越短,测量的频率值刷新就越快,但测得的频率精度会受影响。4.2 基于fpga的数字频率计的系统组成原理基准信号待测信号fpga信号放大整形电路数码管显示基于fpga的数字频率计系统的原理框图如图4-1所示,系统主要包括:信号放

34、大整形电路,fpga部分和数码管显示部分。正弦波、方波、三角波等被测信号通过信号整形电路得到同频率的矩形波以便于对频率的测量,运行于fpga的各功能模块完成频率的测量,并根据频率所处的档位将测量结果输出给数码管显示部分动态显示。其中信号整形电路和数码管显示部分等外围电路比较简单,fpga部分是整个系统的核心9 陈尚志,胡荣强,胡合松. 基于fpga自适应数字频率计的设计j.中国测试技术,2:141144.9。图4-1 基于fpga的数字频率计的原理框图为了实现频率测量功能及设计要求,fpga部分应包括分频器,测频控制信号发生器,计数器,锁存器,自适应模块,分频比重置器,数码管扫描译码模块。这些

35、功能都采用vhdl语言编程并下载到fpga实现。fpga部分的系统工作原理如图4-2所示。基准信号经过分频器得到测频控制信号发生器需要的频率为1hz的时钟信号和数码管动态显示需要的扫描时钟信号,测频控制信号发生器在1hz的时钟信号的控制下输出计数器控制信号和锁存器控制信号。分频比重置器在分频器的溢出信号下提供预置数保持分频器的分频比。计数器在计数器控制信号的控制下对经过信号整形电路得到的与待测信号同频率的矩形波的上升沿进行计数,计数完成后,锁存器在锁存控制信号的控制下将计数结果锁存。这一计数值即为待测信号的频率。自适应模块根据计数值决定档位,并为数码管扫描译码模块提供档位信号及相应档位计数值的

36、bcd码。数码管扫描译码模块输出8位数码管的位选信号和相应的每个数码管的八段段码,实现测量结果的动态显示。由于频率档位分为0999hz,1999.999khz,19.999999mhz三档。,为了区分档位,可以通过数码管的显示区分档位。在0999hz时,第一位数码管显示 分频器待测信号基准信号分频器测频控制信号发生器计数器锁存器自适应模块数码管扫描译码模块分频比重置器a,单位为hz; 在1999.999khz时,第一位数码管显示b,单位为khz; 在19.999999mhz时,第一位数码管显示c,单位为mhz。图4-2 fpga组成原理框图第5章 系统的实现及仿真5.1 信号放大整形电路(1)

37、信号放大整形电路设计本设计可以测量正弦波、方波、三角波等波形,为了便于测量需要对被测周期信号进行放大整形,使之成为矩形脉冲。如图5-1所示的信号放大整形电路主要由晶体管2n3391和与非门74ls00组成。其中晶体管2n3391组成的分压式工作点稳定放大电路将输入的被测信号进行放大,调节滑动变阻器可以改变放大倍数。与非门 74ls00 构成的施密特触发器对放大器的输出信号进行整形,使之成为矩形脉冲。与非门u2和u3组成基本rs触发器,u1实质是一个非门,二极管d1起电平偏移作用,它导通时的压降约为0.7v10 门宏.施密特触发器及其应用j.无线电杂志,12:5456.10。图5-1 信号放大整

38、形电路由于静态工作点与放大电路技术性能的稳定密切相关,所以采用分压式静态工作点稳定电路,这是一种结构比较简单,并能有效地保持静态工作点稳定的电路。为了保证静态工作点的基本稳定,要求流过分压电阻的电流,为此要求电阻、小一些,但是若、太小,则电阻上消耗的功率将增大,而且放大电路的输入电阻将降低。在实际工作在通常取,而且使11 杨素行.模拟电子技术基础简明教程m.北京:高等教育出版社,2009. 11。门电路有一个阈值电压,当输入电压从低电平上升到阈值电压或从高电平下降到阈值电压时电路的状态将发生变化。施密特触发器与普通的门电路不同,它有两个阈值电压,分别称为正向阈值电压和负向阈值电压。在输入信号从

39、低电平上升到高电平的过程中使电路状态发生变化的输入电压称为正向阈值电压,在输入信号从高电平下降到低电平的过程中使电路状态发生变化的输入电压称为负向阈值电压。施密特触发器在电路状态转换过程中,通过电路内部的正反馈作用使输出电压波形的边沿变得很陡。利用这些特性可以把边沿变化缓慢的周期性信号变换为边沿很陡的同等频率的矩形脉冲信号。但是如果输入电压小于施密特触发器的正向阈值电压,则无法正常进行电路状态转换对信号进行整形。在施密特触发器前面加上由晶体管构成的放大电路可以确保信号整形的正常工作。 (2)信号放大整形电路仿真在multisim7中对上述电路进行仿真,仿真结果如图5-2和5-3所示。图中正弦波

40、和三角波通过放大整形电路后都被整为同频率的矩形波,可见上述放大整形电路符合设计要求。图5-2 正弦波整形为同频率矩形波图5-3 三角波整形为同频率的矩形波5.2 数码管显示根据数字频率计组成原理可知,数码管显示模块应选用8个共阴极八段 led 数码管进行动态显示,fpga中的数码管扫描译码模块为数码管显示提供位选信号及八段段码。所谓的八段就是指数码管里有a,b,c,d,e,f,g,h八个led发光二极管。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个led的阴极连在一起接地,给任何一个led的另一端高电平便能将其点亮,这样通过控制不同的led的亮灭便能显示出不同的字形。如果按照传统的

41、数码管驱动方式,即静态扫描方式,则需要多个译码器进行驱动,这样既浪费资源,有时电路工作也不可靠。所以现在最常见的数码管驱动电路都采用动态扫描显示的方式 12 邱锋波,贺占庄. 基于fpga的并行数码管显示控制设计j. 科学技术与工程,23:71707172.12。 k1k2k3k4k5k6k7k8a b c d e f g h图5-4 动态数码管扫描显示原理图动态数码管扫描显示的硬件电路原理如图5-4所示。其中每个数码管的8 个段都分别连在一起,8个数码管分别由8个选通信号k1、k2、k3、k4、k5、k6、k7、k8 来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3 为高电平,其

42、余选通信号为低电平,这时仅k3 对应的数码管显示来自段信号端的数据,而其它7 个数码管呈现关闭状态。根据这种电路状况,如果希望在8 个数码管显示希望的数据,就必须使得8 个选通信号k1、k2、k3、k4、k5、k6、k7、k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。5.2 fpga功能模块fpga部分的各功能模块都在quartus平台上运用vhdl语言编程设计并进行仿真。quartus生成的数字频率计fre_indicator的rtl图如图5-5所示,包括数控偶数倍分频器dvf,测频控制信号发生器contro

43、l,bcd码加法计数器cnt28,数据锁存器lock28,自适应器zishiying,分频比重置器value,数码管扫描译码模块led_scan。图5-5 数字频率计的rtl图其顶层文件vhdl描述如下所示:library ieee;use ieee.std_logic_1164.all;entity fre_indicator isport(clks,clkt: in std_logic;-clk_s基准信号输入,clk_t待测信号输入 d1:out std_logic_vector(7 downto 0);- d1位码输出 d2: out std_logic_vector(7 downto

44、 0);- d2段码输出end fre_indicator;architecture behav of fre_indicator is-数控偶数倍分频器dvfcomponent dvfport(clk:in std_logic;n:std_logic_vector(23 downto 0);fout,full:out std_logic);end component;-测频控制信号发生器controlcomponent controlport ( clk: in std_logic; cnt_rst: out std_logic; cnt_en: out std_logic;latch_cl

45、k: out std_logic);end component;- bcd码加法计数器cnt28component cnt28 port(clk,rst,en: in std_logic; cq: out std_logic_vector(27 downto 0);end component;-数据锁存器cnt28component lock28port(clk: in std_logic; din: in std_logic_vector(27 downto 0);dout: out std_logic_vector(27 downto 0);end component;-自适应器zishi

46、yingcomponent zishiying port(din:in std_logic_vector(27 downto 0); c: out std_logic_vector(7 downto 0);h: out std_logic_vector(7 downto 0); cout: out std_logic_vector(31 downto 0);end component;-分频比重置器valuecomponent value port(yuzhi1,yuzhi2:in std_logic; jizhun:out std_logic_vector(23 downto 0); sao

47、miao:out std_logic_vector(23 downto 0);end component;-数码管扫描译码模块led_scancomponent led_scanport(clk:in std_logic;hin:in std_logic_vector(7 downto 0);dian:in std_logic_vector(7 downto 0); cin:in std_logic_vector(31 downto 0); wout:out std_logic_vector(7 downto 0); dout:out std_logic_vector(7 downto 0);

48、end component;signal cq1,cq2: std_logic_vector(27 downto 0);signal cq3,cq4: std_logic_vector(7 downto 0);signal cq5: std_logic_vector(31 downto 0);signal cq6,cq7: std_logic_vector(23 downto 0);signal s_clk,la_clk,led_clk: std_logic;signal c_rst,c_en : std_logic;signal v1,v2: std_logic;beginu2: contr

49、ol port map(clk=s_clk,cnt_rst=c_rst,cnt_en=c_en,latch_clk=la_clk);u3: cnt28 port map(clk=clkt,rst=c_rst,en=c_en,cq=cq1);u4: lock28 port map(clk=la_clk,din=cq1,dout=cq2);u5: zishiying port map(din=cq2,c=cq3,h=cq4,cout=cq5);u6: led_scan port map(clk=led_clk,hin=cq3,dian=cq4,cin=cq5,wout=d1,dout=d2);u7

50、 : dvf port map(clk=clks,n=cq6,fout=s_clk,full=v1);u8 : dvf port map(clk=clks,n=cq7,fout=led_clk,full=v2);u10: value port map(yuzhi1=v1,yuzhi2=v2,jizhun=cq6,saomiao=cq7);end behav;5.3.1 测频控制信号发生器control(1)control的设计根据本设计采用的直接测频法的原理,测定信号的频率必须有一个脉宽为1s的输入信号脉冲计数允许的信号;1s结束后,计数值被锁入锁存器,计数器被清零,为下一个测频计数周期做好准

51、备。测频控制信号可以由一个独立的发生器来产生,即图5-6中的测频控制信号发生器control。其中clk为闸门信号输入口,cnt_rst为计数清零信号输出口,cnt_en为计数使能信号输出口,latch_clk为锁存信号输出口。图5-6 测频控制信号发生器control经过分频器得到的闸门信号作为控制器的输入时钟,在输入时钟的控制下控制器分别输出计数清零信号cnt_rst,计数使能信号cnt_en,锁存信号latch_clk。计数使能信号cnt_en为一个1s脉宽的周期信号,对频率计中的28位二进制计数器cnt28的使能端en进行同步控制。在cnt_en为高电平的1s允许计数时间结束后,首先需

52、要一个锁存信号latch_clk的上跳沿将计数器的计数值锁存进锁存器lock28中,其次在锁存信号latch_clk为高电平的后半个脉宽时间内计数清零信号cnt_rst的上跳沿将对计数器cnt28清零,为下一次的计数操作做准备。可见为了得到1s的计数允许时间,分频器提供给控制器control的时钟频率应为1hz。测频控制信号发生器control的vhdl描述如下所示:library ieee;use ieee.std_logic_1164.all;entity control isport (clk: in std_logic;-闸门信号作为时钟信号输入cnt_rst: out std_log

53、ic;-计数清零信号cnt_en: out std_logic;-计数使能信号latch_clk: out std_logic);-锁存时钟信号end control;architecture behav of control issignal clkk,div2clk :std_logic;begin process(clk) begin if clkevent and clk=1 and clklast_value=0 then div2clk=not div2clk; end if; end process; process(clk,div2clk)beginif clk=0 and d

54、iv2clk=0 then clkk=1;else clkk=0;end if; end process;cnt_rst=clkk;-计数清零信号输出cnt_en=div2clk;-计数使能信号输出latch_clk=not div2clk;-锁存时钟信号输出end behav;(2)control的仿真测频控制信号发生器control的仿真图如图5-7所示,为了便于仿真clk选取周期为100ns的方波。由图可见cnt_en高电平脉宽为一个闸门时间clk周期,在cnt_en为低电平的脉宽内,latch_clk为高电平,而在后半个脉宽cnt_rst为高电平,符合测频控制信号发生器control的

55、设计要求。图5-7 测频控制信号发生器control的仿真图5.3.2 数控偶数倍分频器dvf(1)dvf的设计数控分频器dvf的功能是当给定不同预定值n时,分频器将对输入的时钟有不同的分频比2n。数控分频器就是用计数值可并行预置的加法计数器设计完成的,其外部接口如图5-8所示。其中clk为时钟信号,n23.0为预置数输入端,fout为输出时钟,full为计数溢出。图5-8 数控偶数倍分频器dvf系统的基准信号作为dvf的时钟信号clk,dvf内部有一个24位二进制加法计数器cnt24对clk的上升沿进行计数,当cnt24计数计满时,将溢出信号输出给分频比重置器value,value输出数据n重置计数器cnt24的计数初值,以保持分频器的分频比,同时使溢出标志信号输出over为高电平,over高电平使dvf内部的d 触发器cnt2取反,与cnt2 同步的fout信号输出,其频率为输入时钟信号clk的1/2n,即2n倍分频13 郭海青. 基于vhdl的数控分频器设计及应用j. 现代电子技术,13:99101。本系统需要两个分频器,一个为控制器control提供1hz的时钟信号,一个为数码管动态显示提供扫描时钟信号,此扫描时钟信号以高于100hz为宜。(2)dvf的仿真为了便于仿真,取clk为周期为10ns的方波,预置数为n=5进行功能仿真。由图5-9可见

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论