




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于VHDL的数字频率计设计摘 要:数字频率计是一种根本的测量仪器。它被广泛应用于航天、电子、测控等领域。它的根本测量原理是让被测信号与标准信号一起通过一个闸门,然后用计数器计数信号脉冲的个数,把标准时间内的计数结果,用锁存器锁存起来,最后用显示译码器译码,结果用LED数码显示管显示出来。本设计用VHDL语言进行编程,实现了闸门控制信号、多路选择电路、计数电路、位选电路、段选电路等。该设计的特点是无论底层还是顶层文件均用VHDL语言编写,防止了用电路图设计时所引起的毛刺现象,整个频率计设计在一块CPLD芯片上,与用其他方法做成的频率计相比,体积更小,性能更可靠。该设计方案通过了Max+plus
2、软件仿真。关键字:VHDL, CPLD , EDA, 数字频率计 The Design of Digital Cymometer Based on VHDLAbstract:The digital cymometer is a kind of basic measuring instrument. It is widely used in such fields as the spaceflight, electron, observing and controlling, etc. Basic measurement of it principle, is it examine signal
3、 adopt the gate together with standard signal to let at first, the number of the signal pulse that then count through the counter, latch with the latch the result of counting within standard time, use decipher display finally, number show is it is it come out to show to in charge of with LED result
4、that latch. The design used VHDL language programming, and the gate control signals, multiple choice circuit, counting circuit, the circuit-election, the election of the circuit. The design is characterized by either the bottom or top-level documents were prepared with VHDL language, avoid using cir
5、cuit design phenomenon caused by Burr, the frequency of chip design in a CPLD, and make use of other methods compared to the frequency of , In a smaller, more reliable performance. The design plan by the Max + plus software simulation.Key words: VHDL,CPLD,EDA, digital cymometer 目录摘 要IAbstractII第1章 前
6、言- 1 -第2章 方案的提出与选择- 3 -2.1. 方案一 :基于可编程逻辑器件的频率计设计- 3 -2.2. 方案二 :基于标准逻辑器件的频率计设计- 3 -2.3 本设计方案确实定与选择- 3 -第3章 所用器件、编程语言及开发软件简介- 4 -3.1 CPLD器件简介- 4 -3.2 VHDL语言简介- 5 -3.3 MAXPLUS简介- 5 -第4章 数字频率计的实现原理- 7 -4.1 数字频率计的指标要求- 7 -4.2 数字频率计的实现原理- 7 -4.3 本设计的数字频率计的实现分析- 9 -第5章 数字频率计的设计实现- 11 -5.1 功能模块划分- 11 -各模块VH
7、DL的设计- 12 -5.3 顶层文件的设计- 15 -程序说明- 15 -系统仿真- 16 -结 束 语- 17 -致 谢- 18 -参考文献- 19 -附录- 20 -第1章 前言随着微电子技术的迅猛开展,电子测量设备在性能、测试功能、工艺结构等各方面都取得了很大的进展,其研制和生产正向着自动化、系统化、数字化、高性能、多功能、快速、小型等方面开展。频率作为电子测量领域内一个最根本的参数,许多参数的测量可通过转换为频率测量。因此,频率的测量就显得尤其重要,而高精度频率计的应用尤为广泛。常用的直接测频方法主要有直接测频法和间接测频法两种111、直接测频法,即在一定闸门时间内测量被测信号的脉冲
8、个数。2、间接测频法,如周期测频法。直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。频率计的根本原理是用一个频率稳定度高的频率源作为基准时钟9,比照测量其他信号的频率。通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长那么每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器。它的根本功能是测量正弦信号.方波信号,尖脉冲信号及其他各种单位时间内变化的物理量.。它被广泛应用与航天、电子、
9、测控等领域。由于传统的频率计在实际的硬件设计用到的器件较多,连线比拟复杂,而且会产生比拟大的延时,造成测量误差、可靠性差。而随着可编程逻辑器件的开展、电子设计自动化EDA技术对可编程逻辑器件应用提供有力的保证的情况下,用基于EDA技术与可编程逻辑器件设计的方法,采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的根本功能或行为级上对设计进行行为描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认,然后利用EDA工具的逻辑综合功能,把功能描述转换为某一具体目标芯片中如CPLD芯片,使该芯片能够实现设计要求的功能,使电路系统体积大大减少,可靠性得到提高。CPL
10、D是一种新兴的高密度大规模可编程逻辑器件8,它具有门阵列的高密度和PLD器件的灵活性和易用性,目前已成为一类主要的可编程器件。采用CPLD可编程器件,可利用计算机软件的方式对目标进行设计,而以硬件的形式实现。既定的系统功能,在设计过程中,可根据需要随时改变元器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实现多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量及难度,同时,减少了使用这种基于可编程芯片的数量,缩小了系统的体积,提高了系统的可靠性。EDA电子设计自动化技术就是以计算机为工具,在E
11、DA软件平台上,对以硬件语言VHDL为系统逻辑描述手段完成的设计文件,自动的完成逻辑编译、逻辑化简、逻辑综合及优化、逻辑仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作文本选用的开发工具为Altera公司的MAX+PLUSII。 VHDL语言Very High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言诞生于1982年7,是由美国国防部开发的一种快速设计电路的工具,目前已成为IEEEThe Institute of Electrical and Electronics Engineers的
12、一种工业标准硬件描述语言,相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下Top to Down和基于库Library-based的设计的特点,因此设计者可以不必了解硬件结构设计,从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件上去,从而实现可编程的专用集成电路ASIC的设计。方案的根本思想是分为五个模块来实现其功能,即整个数字频率计系统分为分频模块、防抖电路模块、计数模块、锁存器模块和显示
13、模块等几个单元,并且分别用VHDL对其进行编程,实现了闸门控制信号、计数电路、锁存电路、位选电路、段选电路、显示电路等。再利用VHDL硬件描述语言设计,并在EDA电子设计自动化工具的帮助下,用大规模可编程器件CPLD实现数字频率计的设计原理及相关程序设计的可局部进行程序的编写。然后进行软件的仿真。第2章 方案的提出与选择2.1. 方案一 : 基于可编程逻辑器件的频率计设计2CPLD/FPGA是一种具有高集成度、良好的工作可靠性和稳定性的可编程数字逻辑芯片,因此受到了世界范围内电子工程设计人员的广泛关注和普遍欢送。CPLD/FPGA由于采用连续连接结构,易于预测延时,从而使电路仿真更加准确,可用
14、于各种数字逻辑系统的设计。CPLD/FPGA有易于灵活运用、高速、高可靠性以及可编程性强等特点。可有效地突破传统的电子系统中由来已久的设计瓶颈,使这些系统的性能大幅度提高。此外 ,利用CPLD/FPGA进行数字系统设计可大大缩短设计周期,大幅度减少设计费用,降低设计风险。设计语言VHDL的标准化以及设计过程几乎与所用器件的硬件结构无关,所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的间里完成十分复杂的系统设计。同时可方便快捷地对程序进行修改,从而使系统升级容易,使产品快速上市,并易于满足用户的要求。2.2. 方案二 :基于标准逻辑器件的频率计设计基于标准逻辑器件传统数字系
15、统的设计主要是基于标准逻辑器件,如TTL系列、CMOS系列、采用自底向上的方法构成系统。这种“试凑法设计无固定套路可寻,主要凭借设计者的经验,所设计的数字系统虽然不乏有构思巧妙者,但往往需要用很多的标准器件。其缺点是:系统布线复杂,体积、功耗大,可靠性差,交流和修改不方便,设计周期长。所以传统的数字频率计可以通过普通的硬件电路组合来实现,其开发过程、调试过程十分繁锁,而且由于电子器件之间的互相干扰,影响频率计的精度,也由于其体积较大,已不适应电子设计的开展要求。2.3 本设计方案确实定与选择由于利用CPLD/FPGA进行数字系统设计可大大缩短设计周期,大幅度减少设计费用,降低设计风险。并且设计
16、语言VHDL的标准化以及设计过程几乎与所用器件的硬件结构无关,设计成功的各类逻辑功能块软件有很好的兼容性和可移植性,可以在很短的间里完成十分复杂的系统设计。由于可编程逻辑器件这些特性明显要比标准的逻辑器件简单很多,而且可靠性方面也比标准逻辑器件设计的要高。通过两个方案的比拟,本次设计方案采用方案一。第3章 所用器件、编程语言及开发软件简介3.1 CPLD器件简介3CPLD结构具有固定输入和输出数目的任何组合逻辑函数可以在可编程只读存储器PROM中,以输出为输入的查找表方式来实现,许多实现组合逻辑的结构变型已从这一简单的概念引申出来。然后利用VLSI的密度产生更通用的,能实现PCB板上几个简单P
17、AL互连功能的器件,是PAL/ PROM这类范例的扩展,称为PAL构造的PLD,也就是说复杂可编程逻辑器件CPLD(Complex Programmable Logic Devices). CPLD的架构方块图,如下列图所示图3-1 CPLD的架构方块图每一个逻辑方块(Logic Block)内的内部示意图,那么如下列图所示图3-2逻辑方块内部示意图典型CPLD器件简述 Xilinx的XC9500系列是采用创新FastFLASH工艺制造的CPLD,具有特殊的系统内编程ISP的能力,系统内编程/擦除的次数可以高达上万次,比其他CPLD的编程/擦除的次数高一至二个数量级,高的耐久程度使其可用于经常
18、要求现场更改和再配置的应用场合。它的扩展IEEE_1149.1边界JTAG指令集允许器件编程模式变更扩展和实现系统内的诊断。XC9500系列还提供整个产品寿命期间的支持措施和引脚锁定能力12。在大多数CPLD器件中,每个I/O引脚的宏单元通过一个I/O块直接驱动,当设计要求引脚锁定时,EDA软件的适配器强迫逻辑影射到专门的宏单元来保持引脚不变。XC9500XL 和 XC9500XV器件为低电压、低功耗的CPLD器件,使用XC9500XV器件可以比使用XC9500器件节省75%的功耗,而且本钱也大大降低。低电压不仅具有最正确的系统性能,同时确保灵活性与不通率,可以很方便的设计出工作频率
19、近200MHz的快速同步DRAM 控制器以及与微处理器配合更紧密的接口。3.2 VHDL语言简介VHDLVery High Speed Integrated Circuit Hardware Description Language,超高速集成电路硬件描述语言诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEEThe Institute of Electrical and Electronics Engineers的一种工业标准硬件描述语言。相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下Top to Down和基于库
20、LibraryBased的设计的特点,因此设计者可以不必了解硬件结构。从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路的设计。 3.3 MAXPLUS简介美国Altera公司的MAXPLUS开发工具是一种CAE软件工具,全称是全集成化可编程逻辑设计环境Multiple Array Matrix and Programmable Logic User Systems.该工具配备有编辑、编译、仿真
21、、中和、芯片编程等功能。具有两种输入手段:文本输入使用一种描述语言,如VHDL语言和原理图输入。在使用中,可以把电路描述程序和设计的电路图变成根本的逻辑单元写入到可编程的芯片中如FPGA,CPLD芯片等,最终成为ASIC芯片。也可以不用搭建硬件电路,把MAXPLUS作为逻辑仿真工具,即可对设计进行调试、验证。MAXPLUS开发工具目前在国内使用很普遍,拥有完备的在线帮助,初学者可以很快学习掌握该工具的使用,完成高性能的设计。它的主要功能如下:(1) MAXPLUS的设计输入、处理与效验功能集合在一起提供了全集成化的一套可编辑开发工具,加快动态调试,缩短开发周期;(2) MAXPLUS支持各种硬
22、件描述语言的设计输入,包括VHDL、VerilogHDL和Altera的AHDL;(3) MAXPLUS的编译核心支持Altera的FLEX10K、FLEX8K、FLEX6000/A系列,MAX5000系列MAX9000、MAX7000、FLASHlogic、MAX5000、Classic以及EPF10K10、EPF10K10A、EPF10K20、EPF10K30、EPM9320、EPM9320A、EPF8452A、EPF8282A等系列可编程逻辑器件;(4) MAXPLUS可与其他工业标准设计输入、效验工具链接。与CAE工具的接口符合EDIF200和209、参数化模块库LPM、Verilog
23、HDL、VHDL及其标准工具。设计者可使用Altera或标准CAE设计输入工具去建立逻辑设计,使用MAXPLUS编译器对Altera器件设计进行编译,并使用Altera或其他CAE效验工具进行器件或板级仿真。MAXPLUS支持与Synopsys、Viewlogic、Mentor、Graphics、Cadence、Exemplar、DataI/O、Intergraph、Minc、OrCAD等公司提供的工具接口;(5) MAXPLUS通常用的设计方法有:通过MAXPLUS图像编辑器,创立电路图像设计.gdf;通过MAXPLUS的文本编辑器,使用语言,创立文本设计文件.vhd.还可以通过MAXPLU
24、S波形编辑器,创立电路波形设计文件.wdf等。(6) MAXPLUS具有器件编程Programming和配置Configuration功能,让使用者自己设计所用器件,具有在线帮助的功能,更加方便了使用者。第4章 数字频率计的实现原理4.1 数字频率计的指标要求 1) 测试功能: 即该频率计能测试的工程,如测频、测时间间隔等,本设计要求到达能测频。 2) 频率范围:指被测信号的频率宽度。3) 输入特性: 数字频率计设置23个信号通道,在不同的测试功能下,被测信号进入不同的通道。输入特性指的是通道特性,包括:(1) 输入灵敏度:使仪器正常工作的输入电压最小值。(2) 最大输入电压:仪器允许的最大输
25、入电压的峰值。(3) 输入阻抗:输入电阻和电容的并联值。100MHz以下的数字频率计,典型值为1M/25pF,高频时应采用50的匹配阻抗,4) 测量的准确度:用测量误差表示,本设计要求测量误差要小。5) 石英晶体的频率计稳定度 :一般优于,因此本设计要求用石英晶体作为基准时钟源。6) 闸门时间和时标:由标准频率分频或倍频产生,供测量时选择。7) 显示方式:显示的位数、显示时间等。8) 输出:输出哪种标准信号,输出信号的电平。编码方式。4.2 数字频率计的实现原理数字频率计的根本测试功能有:测试频率、测试周期、测试时间间隔、测试计数、测试频率比、测试自较等。要完成诸多的测试功能,这就要求数字频率
26、计具有积木式的电路结构,如图41所示。1图4-1数字频率计的组成原理在不同的测试功能下,即使是同一电路,电路的作用却不同,如同积木那样进行组合。例如,闸门电路的两个输入端,一个端子是时基输入,另一个端子是时标输入,利用时基开信号闸门,开门期间对时标计数。但在不同的功能下,时基、时标的意义不同。测频时,用被测信号形成时标,标准信号形成时基。如图42所示。 图4-2测频率的根本形式数字频率计最根本的功能是在开闸门的期间累计脉冲个数。如果闸门信号是用高稳定度的频率源产生,将使测量精度大为提高,目前已到达,是众多物理量测量中精度最高的。所以希望许多物理量都能转化为电信号,再用数字频率计测量。例如,电压
27、量用A/D变换器转换为闸门时间,用数字频率计累计闸门期间的时钟脉冲个数,就构成了数字电压表;力或重力用传感器转换为电信号机,用数字频率计脊神经,就构成电子称。电子计数已是一种成熟的测量方法,特别是可采用高度集成的器件,组装,调试方便,价格低廉,是数字化测量的根底。鉴于数字频率计积结构,闸门的两个输入端分别加时标和时基,由功能开关切换。但在不同的测试功能下,时基和时标所代表的意义不同,所组成的测试方案也各不相同。为实现以上方案,常需要一些单元电路。数字频率计的原理框图如图43所示,图4-3数字频率计的原理框图数字频率计是直接用十进制数字来显示被测信号频率的一种测量装置。它不仅可以测量正弦波,方波
28、,三角波和尖脉冲信号的频率,而且还可以测量他们的周期。数字频率计在测量其他物理量如转速、振荡频率等方面获得广泛应用所谓频率,就是周期性信号在单位时间1s里变化的次数。假设在一定时间间隔T内测得的这个周期性信号的重复变化次数N,那么其频率可表示为f =N/T;因此,为测量周期信号的频率,就必须解决计数和时间标准问题。即,频率测量至少应包括计数电路和时基电路两局部,智能测量方案还必须有控制电路环节。图4-3所示为数字频率计的原理框图。它主要由5个模块组成:脉冲发生器电路、测频控制信号发生器电路、计数器模块电路、锁存器和译码驱动电路。当系统正常工作时,脉冲发生器提供标准的输入信号,经过测频控制信号发
29、生器进行信号的变换,产生计数信号。测量信号时,将被测信号通过信号整形电路,产生同频率的矩形波。送入计数模块。计数模块将对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在七段数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。4.3 本设计的数字频率计的实现分析图,如图4-4所示6图4-4数字频率计的总体框图2设计实现步骤采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功
30、能和具体实现形式那么由下一层模块来描述。根据频率计的系统原理框图,运用自顶向下的设计思想,设计的系统顶层电路图见附录1.7。各功能模块采用VHDL语言来描述3频率计设计流程图根据设计要求确定初步方案,确定其设计的流程图如图4-5。图4-5数字频率计设计的流程图流程:接通电源,通过分频模块产生一个200Hz的片选信号、25Hz防抖动电路周期信号,以及5Hz闸门信号5。在闸门时间内对被测信号进行计数,当频率小于10KHZ, 0.1S闸门计数时间结束,闸门下降沿到来时,锁存此时计数模块的各项输出在数码管上显示0000。当频率在10KHZ到100KHZ之间,0.1S闸门计数时间结束,闸门下降沿到来时,
31、锁存此时计数模块的各项输出在数码管上显示相应数值小数点后显示两位。假设频率在100KHZ到1000KHZ之间,0.1S闸门计数时间结束,闸门下降沿到来时,锁存此时计数模块的各项输出在数码管上显示相应数值,小数点后显示一位。当频率大于1000KHZ小于9999KHZ,0.1S闸门计数时间结束,闸门下降沿到来时,锁存此时计数模块的各项输出在数码管上显示相应数值。假设频率大于9999KHZ,那么此时数码管上显示HHHH。第5章 数字频率计的设计实现5.1 功能模块划分根据上一章的实现原理,本设计的数字频率计系统分为分频模块、防抖电路模块、计数模块、锁存器模块和显示模块共五个模块。( 1 ) 分频模块
32、分频模块对系统输入的时钟进行分频操作,获得一个200Hz的片选信号、25Hz防抖动电路周期信号,以及5Hz闸门信号。( 2 ) 防抖动模块防抖动模块在系统进行数据的处理的时候,能在一定干扰范围内使数据的获取更加的稳定。( 3 ) 计数模块计数模块在闸门时间内对被测信号进行计数,并根据被测输入信号的频率范围自动切换量程,控制小数点显示位置。( 4 ) 锁存器模块数字锁存在固定时间基准的周期内,即当0.1S闸门计数时间结束,闸门下降沿到来时,锁存此时计数模块的各项输出。( 5 ) 显示模块显示模块那么在七段数码管片选信号控制下,将锁存器保存的BCD码数据动态扫描、译码,以十进制形式显示。各模块VH
33、DL的设计1分频模块设计 ,模块示意图如图5-1所示1设计实体Entity:计数模块取名dividefre4;2端口定义Port:各输入输出引脚定义如下:cp_20m:时钟信号输入端cp1:片选信号输出端cp2:防抖动电路周期信号输出端 cp3:闸门信号输出端图5-1分频模块电路图4仿真效果为下列图5-2所示图5-2分频模块防真图形2防抖动模块设计,模块示意图如图5-3所示图5-3防抖动模块1 设计实体Entity:计防抖电路模块取名debounce2端口定义port:各输入输出引脚定义如下key,cp为输入,imp为输出3 计数模块设计,模块示意图示如图5-4所示图5-4计数模块示意图1设计
34、实体Entity取名为fretest2端口定义port:输入端口为:enable、cp3 、reset:、input 输出端口为 :verflower、low、 play0,play1,play2,play3、decimal4仿真图形如下图图5-5计数模块仿真图4锁存器模块设计, 模块示意图如图5-6所示(1)设计实体Entity:计数模块取名frelatch;(2)端口定义Port:各输入输出引脚定义如下;Reset:复位信号输入端Cp3:闸门信号输入端Overflow,low,play0,play1,play2,play3,decimal:各项输入Overlatch,lowlatch,p0
35、latch,p1latch,p2latch,p3latch,delatch:各项输出端图5-6锁存器模块的示意图3程序见附4仿真图形如图下列图图5-7锁存模块仿真图5显示模块设计,模块示意图如图5-8所示图5-8显示模块示意图1设计实体Entity:设计模块取名为display2端口设计port:cp1,low,overflow,po,p1,p2,p3为输入端口 Show,sel 为输出端口 3 程序见 4仿真图形如下列图图5-9显示模块仿真图5.3 顶层文件的设计 在以上五个器件正确设计的根底上,在按设计原理图的要求将这五种器件连接一起,形成顶层文件。常用的方法是将顶层文件编写电路
36、图的形式,进行综合仿真。这种方法虽然较简单,但缺点是有可能使电路系统在工作中出现毛刺,从而降低系统的可靠性。因此,在我们设计中最突出的地方是不用电路图的形式来设计顶层文件,而是用文本形式来编写,即用VHDL语言来描述芯片的连接,防止了系统在工作中出现毛刺现象,使系统的稳定度和可靠性均得到提高。程序见附录程序说明1此程序由一个上层模块将5个下层模块连接在一起而组成,5个下层模块分别是分频模块、防抖动模块、计数模块、锁存器模块和显示模块。2 此程序将时钟分到5Hz,形成一个固定的0.2s的闸门时间,被测信号通过0.1s的闸门进入计数器进行计数,而在0.1s的低电平不计数,将计数器清零,以便下一次计
37、数。3为满足题意: 被测信号为几十千赫兹时,显示#。#kHz; 被测信号为几百千赫兹时,显示#.#kHz; 被测信号为几千千赫兹时,显示#kHz;4 采用时分复用的方法控制4个数码管的显示。系统仿真数字频率计系统芯片图1设计实体Entity、:计数模块取名total; 2端口定义Port:各输入输出引脚定义如下:cp_20m:时钟信号输入端input:信号输入端 reset: 复位信号show: 数码管显示输出图5-10系统芯片图数字频率计系统仿真图如下列图所示图5-11数字频率计仿真波形图结 束 语数字频率计是一种用十进制数字显示被测信号频率的数字测量仪器.它的根本功能是测量正弦信号.方波信
38、号,尖脉冲信号及其他各种单位时间内变化的物理量. 它被广泛应用与航天、电子、测控等领域。但是传统的频率计在实际的硬件设计用到的器件较多,连线比拟复杂,而且会产生比拟大的延时,造成测量误差、可靠性差。随着可编程逻辑器件从20世纪70年代开展至今,其结构、工艺、集成度、功能、速度、性能等方面都在不断的改良和提高,电子设计自动化EDA技术的开展又为可编程逻辑器件的广泛应用提供了有力的工具。基于EDA技术与可编程逻辑器件的设计,采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的根本功能或行为级上对设计进行行为描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认,
39、然后利用EDA工具的逻辑综合功能,把功能描述转换为某一具体目标芯片中如CPLD芯片,使该芯片能够实现设计要求的功能,使电路系统体积大大减少,可靠性得到提高。本文所介绍的数字频率计是一个简易频率计,只能测量10K9.9MHz之间的频率,并且对于低频和高频具有不同测量精度。这样的频率计是不能用于实际频率测量的。虽然所调试的结果与预期效果相差不大,但对系统的分析就还不够透彻。今后,在这些方面还有待进一步改良,同时更希望自己能有空多看这方面的书籍,让自己更多的提高。 但是在这里只是为了介绍自顶向下的设计方法。我们从数字频率计的层次图可以看出,不同模块有不同的层次级别,模块越复杂,层次越多。在不同模块之
40、间是相互单独的,但底层模块的修改不会影响其他模块的工作,采用这种设计方法的设计结构清晰、层次清楚,便于对设计进行修改。致 谢本论文是在肖良军老师直接指导下完成的,在论文的选题及其写作思路上王老师屡次给予我指导。当完成了这篇论文的初稿之后,肖老师带病在百忙中挤出时间,仔细地阅读了论文初稿,给出了许多珍贵的修改意见。在本次毕业论文的编写过程中,能得到肖老师的指导使我感到非常的荣幸,肖老师严谨的治学作风、高尚的学术品质、热情的待人态度给我留下了深刻的影响,在完成论文之际,在此向、肖老师表示衷心的致谢。另外、在论文编写期间,同学给予我大力帮助在此向他们表示深切的谢意。最后,要感谢本文所参考的文献的作者
41、和相关网站,还要感谢在我写论文过程中提供无私帮助的人们。参考文献VHDL与数字系统设计M.北京:电子工业出版社,20042顾斌 赵明忠,姜志鹏,马才根.数字电路EDA设计.西安M.西安电子科技大学出版社20043王道宪 CPLD/FPGA可编程器件应用与开发M.北京:国防工业出版社,20034谢煌 黄为.基于VHDL语言设计频率计J.北京:现代电子技术,2003,145武卫华 陈德宏.基于EDA技术的数字频率计芯片化的实现J.电测与仪表,2004,46卢毅等 VHDL与数字电路设计M.北京:科学院,20017潘松 VHDL实用教程M.成都:电子科技大学出版社,20008徐志军 大规模可编程逻辑
42、器件及其应用M.成都:电子科技大学出版社,20009候伯华 数字系统设计根底M.西安电子科技大学出版社,200010张亦华等 数字电路EDA入门-VHDL程序实例集M.北京北京邮电大学出版社,200311杨刚 李雷.数字电子技术根底教程M.北京:科技出版社,200112徐志军等 CPLD/FPGA的开发与应用M.北京:电子工业出版社,2002附录4分频模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity dividefre4 isport(cp_20m:in std_logic; cp
43、1:out std_logic; -200Hz片选信号 cp2:out std_logic; -25Hz防抖动电路周期信号 cp3:out std_logic); -5Hz闸门信号end dividefre4;architecture behavior of dividefre4 issignal tout:integer range 0 to 50000;signal tout1:integer range 0 to 7;signal tout2:integer range 0 to 39;signal cp_1:std_logic;signal cp_2:std_logic;signal
44、cp_3:std_logic;signal cp:std_logic;begin process(cp_20m) begin if(cp_20m'event and cp_20m='1')then if tout=49999 then tout<=0; else tout<=tout+1; end if; if tout=24999 then cp<='0' else cp<='1' end if; end if; end process;process(cp) begin if(cp'event and
45、cp='1')then cp_1<=not cp_1; end if; end process;process(cp_1) begin if(cp_1'event and cp_1='1')then if tout1=7 then tout1<=0; else tout1<=tout1+1; end if; if tout1=3 then cp_2<='1' elsif tout1=7 then cp_2<='0' end if; if tout2=39 then tout2<=0; e
46、lse tout2<=tout2+1; end if; if tout2=39 then cp_3<='1' elsif tout2=19 then cp_3<='0' end if; end if; end process;cp1<=cp_1;cp2<=cp_2;cp3<=cp_3;end behavior;防抖动模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;e
47、ntity debounce is port(key,cp:in std_logic; imp:out std_logic);end debounce;architecture base of debounce issignal q1,q2:std_logic;begin process(cp)begin if(cp'event and cp='1')thenq2<=q1;q1<=key;end if;end process;imp<=q1 and not q2;end base;计数模块程序library ieee;use ieee.std_logi
48、c_1164.all;use ieee.std_logic_signed.all;entity fretest is port(enable:in std_logic; cp3:in std_logic; input:in std_logic; reset:in std_logic; overflow:out std_logic; low:out std_logic; play0,play1,play2,play3:out integer range 0 to 9; decimal:out std_logic_vector(2 downto 0); end fretest;architectu
49、re behavior of fretest issignal r0_1,r1_1,r2_1,r3_1,r4_1,r5_1:integer range 0 to 9;begin process(input,enable,reset) beginif (enable='0') then null; elsif(input'event and input='1')then if (reset='1') thenoverflow<='0'r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0
50、;r4_1<=0;r5_1<=0;elsif( cp3='0' )then overflow<='0'r0_1<=0;r1_1<=0;r2_1<=0;r3_1<=0;r4_1<=0;r5_1<=0; else r0_1<=r0_1+1;if(r0_1=9)then r1_1<=r1_1+1;r0_1<=0; if(r1_1=9) then r2_1<=r2_1+1;r1_1<=0; if(r2_1=9) then r3_1<=r3_1+1;r2_1<=0; if(r3
51、_1=9) then r4_1<=r4_1+1;r3_1<=0; if(r4_1=9) then r5_1<=r5_1+1;r4_1<=0; if(r5_1=9) thenr5_1<=0;overflow<='1' end if; end if; end if; end if; end if;end if;if(r5_1=0 and r4_1=0 and r3_1=0)then low<='1'else low<='0' end if;end if; end if;end process;proce
52、ss(r5_1,r4_1) begin if (r5_1=0 and r4_1=0 )then play0<=r0_1;play1<=r1_1;play2<=r2_1;play3<=r3_1; decimal<="100"elsif (r5_1=0 and r4_1>0)thenplay0<=r1_1;play1<=r2_1;play2<=r3_1;play3<=r4_1;decimal<="010"else play0<=r2_1;play1<=r3_1;play2<=
53、r4_1;play3<=r5_1;decimal<="000"end if;end process;end behavior;锁存模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity frelatch isport(reset:in std_logic; -复位信号 cp3:in std_logic;-闸门信号 overflow:in std_logic;-各项输入 low:in std_logic; play0,play1,play2,play3:in
54、 integer range 0 to 9; decimal:in std_logic_vector(2 downto 0); overlatch:out std_logic; -锁存后的各项输出 lowlatch:out std_logic; p0latch,p1latch,p2latch,p3latch:out integer range 0 to 9; delatch:out std_logic_vector(2 downto 0) ); end frelatch;architecture behavior of frelatch is begin process(cp3,reset)
55、begin if reset='1' then -reset为1时置零 overlatch<='0'lowlatch<='0'p0latch<=0;p1latch<=0;p2latch<=0;p3latch<=0;delatch<=decimal; elsif cp3'event and cp3='0' then-当闸门处于下降沿时,将此时计数器模块的各项输出值锁存。overlatch<=overflow; lowlatch<=low; p0latch<=play
56、0;p1latch<=play1;p2latch<=play2;p3latch<=play3; delatch<=decimal; end if; end process; end behavior;显示模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_signed.all;entity display isport(cp1:in std_logic; low:in std_logic; overflow:in std_logic; p0,p1,p2,p3:in integer range 0 to 9; show:out std_logic_vector(6 downto 0); sel:out std_logic_vector(3 downto 0);end display;architecture behavior of display issignal count:integer range 0 to 3;signal sel_1:std_logic_vector(3 downto 0);begin process(cp1)begin if(cp1'event and cp1='1')then if(count=3)then count<=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论