版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要频率测量在电工程中应用广泛,目前市场上产品非常多,该设计重点考虑产品的成本和可靠性问题,通过采用功能芯片简化电路,完成主电路设计,以及显示功能,简化电路后可以较好的改进系统的可靠性。该频率计具有电路结构简单、成本低、测量方便、精度较高等特点,适合测量低频信号。系统简单可靠、操作简易,能基本满足一般情况下测量的需求。既保证了测频精度,又使系统具有较好的实时性。随着电子信息产业的发展,信号作为其最基础的元素,其频率的测量在科技研究和实际应用中的作用日益重要,而且需要测频的范围也越来越宽,测频的精度也越来越高。传统的频率计通常采用组合电路和时序电路等大量的硬件电路构成,产品不但体积较大,运行速度
2、慢,而且测量范围低,精度低。随着对频率测量的要求的提高,传统的测频的方法在实际应用中已不能满足要求。因此,我们需要寻找一种新的测频的方法。基于FPGA的高精度频率计设计,采用Verilog HDL作为编程语言,使用Quartus2软件对系统的进行仿真与编程,所有频段均采用直接测频法对信号频率进行测量,克服了逼近式换挡速度慢的缺点。关键词:高精度频率计,FPGA,电子设计自动化ABSTRACTFrequency meter is a kind of electronic instrument applied widely. A kind of high-accuracy digital freq
3、uency meter is designed based on FPGA in this paper.At present extends the scope,the high accuracy digital frequency meter's design method to use the monolithic integrated circuit to add, the special-purpose counter chip mostly to realize high speed.The design of system hardware and system softw
4、are is accomplished in the paper. System consists of FGPA and MCU. The circuit based on FPGA includes following some parts: data acquisition module, interface between FPGA and MCU, module scanning number tube. Every circuit module is realized by verilog.The platform of development is Quartus II and
5、all modules procedure is demonstrated by compiling and simulation. Detailed research of design flow, model establishment and system simulation is done. The correctness of the system is demonstrated. The software based on MCU is programmed by C51.In this design takes the systems control by the FPGA c
6、omponent the core, its nimble scene alterability, may dispose ability again, is convenient to system's each kind of improvement, in does not change in hardware circuit's foundation also to be possible to further enhance system's performance.The system has the advantage of high-a ccuracy
7、and convenience. Its practicability of frequency meter is well.KEY WORDS: Frequency meter, MCU, FPGA, electronic design automation摘要. I ABSTRACT . I I 第1章绪论. (11.1 选题依据及意义 (11.2 本课题研究内容 (1第2章 FPGA与VHDL (12.1 FPGA简介 (12.2 EP1K 30相关说明 (31.3 VHDL 概述 (3第3章频率计的设计原理 (33.1设计要求 (33.2测量方案 (43.3频率计的设计原理及框图 (5
8、第4章系统硬件电路的设计 (64.1设计要求 (64.2系统框图 (64.3各模块在电路中的作用 (74.3.1分频器 (74.3.2信号放大、波形整形电路 (84.3.3控制门 (84.3.4计数器 (84.3.5锁存器 (94.3.6显示译码器与数码管 (104.4频率计主体电路原理图 (10第5章软件设计 (125.1 VERILOG HDL语言简介 (125.2 FPGA内部功能模块设计 (135.3模块的功能 (135.3.1 模块FEN (135.3.2 模块SEL (145.3.3 核心模块 CORNA (155.3.4 模块 LOCK (185.3.5 模块 CH (195.3
9、.6 模块DISP (195.4 软件的测试 (205.4.1 测试的环境 (205.4.2 调试和器件编程 (215.4.3 频率测试 (22第6章结论与展望 (23致谢 (24参考文献 (24附录. 错误!未定义书签。第1章绪论1.1 选题依据及意义频率计是一种基础测量仪器,到目前为止已有30多年的发展史。它是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号、方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到
10、频率计。频率计的基本原理是使用一个频率稳定度较高的频率源作为基准时钟,对比测量其他信号的频率。通常计算每秒内待测信号的脉冲个数,我们称此时闸门时间为1秒。闸门时间也可以大于或小于1秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,测得的频率精度就受影响。如果配以适当的传感器,可以对多种物理量进行测试,比如机械振动的频率,转速,声音的频率以及产品的计件等等。1.2 本课题研究内容频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。随着人们文化生活水平的提高,加上现在中国国力的上升,人民在不断的追求高质量生活的同时
11、大都在密切的关注着我们的民族产业的发展前景。而频率计的发在虽是一个极小部分但也可以反映出我国民族产业发展的现状。我国在很多的方面都已不是过去那个很贫穷落后的国家,但是关系着我们国计民生的民族产业的发展却是不尽人意,不能不成为今天令人注目的焦点。本论文主要讲述了使用FPGA实现的数字频率计,它采用VHDL语言编程,用MaxplusII集成开发环境进行波形仿真,编译,并下载到FPGA中。正是因为数字频率计的应用是如此的广泛,才使得它的作用是如此的重要,所以更应该去关注和研究。第2章 FPGA与VHDL2.1 FPGA简介FPGA是英文Field Programmable Gate Array的缩写
12、,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。20世纪80年代中期出现的高密度可编程逻辑器件,它一般由布线资源分隔的可编程逻辑单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,排列阵列的逻辑单元由布线通道中的可编程内连线连接起来实现一定的逻辑功能的。一个FPGA包含大量的具有高速系统速度的逻辑门、寄存器和I/O接口组成。FPGA作为专用集成电路(ASIC领域里的一种半定制电路而出现,不仅解决了定制电路的不足,而且还克服了原有可编程器件门电路数量有限的缺点。FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一,其特点主要有:(1采用FPG
13、A设计ASIC,不需要投片生产,设计周期短、开发费用低、风险小;(2FPGA可做其他全定制或半定制ASIC电路的中试样片;(3FPGA内部有丰富的触发器和I/O引脚;(4FPGA采用高速CHMOS工艺,功耗低,可以与CMOS, TTL电平兼容。随着可编程逻辑技术的不断进发展和进步,FPGA已被广泛应用于航天、通信、医疗、汽车、工业控制等领域。由于其现场逻辑功能可重构而且具有高集成度、高密度和高性能等特点,因此得到了迅猛发展。FPGA芯片所包含的资源越来越丰富,可应用于更多领域,实现更多的功能,这使得FPGA在电子电路设计中越来越重要。目前FPGA已经渗透到人们日常生活的各个方面,在手机、电视、
14、数码相机、洗衣机、电冰箱、空调,甚至电饭锅、手表里,都有它们的身影。在工业自动化控制、通信、仪器仪表、汽车、船舶、航空航天、军事设备、消费类电子产品等领域更是它们的天下。FPGA/CPLD芯片都是特殊的ASIC芯片,除了具有ASIC的特点外还有一下几个优点:随着超大规模集成电路VLSI工艺的不断提高,一个芯片内容纳的晶体管就可以达百万以上;FPGA/CPLD芯片出厂前100%都做过测试,不需要设计人员承担风险和费用;用户可以反复地编程、擦除、使用或者在外围电路不动的的情况下,用不同软件就可实现不同的功能,用FPGA/CPLD试制样片,能以最快的速度占领市场。FPGA/CPLD软件包中有各种输入
15、工具、仿真工具、版图设计及编程器等全线产品,使电路设计人员在较短的时间内就可以完成电路的输入、编译、优化、仿真,直至最后芯片的制作。2.2 EP1K 30相关说明EP1K 30隶属于Altera公司生产的ACEX1K系列产品,此系列集成度从几万门到几十万门,具有以下一些特点:(1高密度。10000到100000典型门。(2功能强大的I/O引脚。每一个引脚都是独立的三态门结构,可控制其可编程速率。(3嵌入式阵列块(EAB。每个EAB提供2K比特位,可用作存储器使用也可用来实现一般的逻辑功能。(4逻辑单元采用查找表(LUT结构。通过快速通道(Fast Track互连,不仅可以提高速度,而且可预测延
16、时。1.3 VHDL 概述VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统分成外部(或称可是部分,及端口和内部(或称不可视部分,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点通过以上的介绍,可以看出课题中所用的编程语言、采用的可编程逻辑器件对课题有了基本的了解,
17、下面将对设计的具体方案进行探讨。第3章频率计的设计原理3.1设计要求利用最低廉的成本,完成一电机频率计设计,要求输入信号为0-5V或者4-20mA可调,显示采用LED数码管显示,完成0-50.0Hz范围内频率的测量和显示。显示精度到个位,完成整机设计,并达到上电工作。该设计重点内容在与控制成本,降低整机损耗。3.2测量方案(1测频原理选择目前常用测量频率原理有三种:直接测量频率方法、直接与间接测量相结合的方法和多周期同步测量法。直接测量法是通过测量标准闸门时间内待测信号的脉冲数而计算出待测信号频率的,它误差大,但电路简单;直接与间接测量相结合的方法及多周期同步测量法测量精度高,但电路复杂。直接
18、测量法电路简单,不需要很复杂的调试过程,其测量的关键是在秒控制信号,如果有高精度的秒控制信号,其测量误差可做到很小,因此采用直接测量法比较合理和可行。(2测频方案选择频率计的设计大致可分为三种方案:方案一:采用小规模数字集成电路制作被测信号经过放大整形变换为脉冲信号后加到主控门的输入端,时基信号经控制电路产生闸门信号送至主控门,只有在闸门信号采样期间输入信号才通过主控门,若时基信号周期为T,进入计数器的输入脉冲数为N,则被信号的测频率其频率F=N/T。方案二:采用单片机为控制中心进行测频控制单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入测频电路,由单片机对测频电路的输入信号进行处
19、理,得出相应的数据送至显示器显示。采用这种方案优点是成熟的单片机技术、运算功能较强、软件编程灵活、自由度大、设计成本也较低、缺点是显而易见的,在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,整个系统显得十分复杂,并且单品机的频率不能做的很高,使得测量精度大大降低。方案三:采用FPGA作为控制中心的数字频率计FPGA的结构灵活,其逻辑单元、可编程内部连线和I/O单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求,其速度快、功耗低,通用性强,特别适用于复杂系统的设计。利用 VHDL(超高速集成电路硬件描述语言 工业标准硬件描述语言, 采用自顶向下( Top to Dow
20、n和基于库( Library- based的设计, 设计者不但可以不必了解硬件结构设计, 而且将使系统大大简化, 提高整体的性能和可靠性。通过三种方案的比较发现,方案三为数字频率计设计的最佳选择方案。(3三角波、正弦波的测量由于输入的信号可以是正弦波,三角波。而后面的闸门或计数电路要求被测信号为矩形波,所以需要设计一个整形电路则在测量的时候,首先通过整形电路将正弦波或者三角波转化成矩形波。在整形之前由于不清楚被测信号的强弱的情况。所以在通过整形之前通过放大衰减处理。当输入信号电压幅度较大时,通过输入衰减电路将电压幅度降低。当输入信号电压幅度较小时,前级输入衰减为零时若不能驱动后面的整形电路,则
21、调节输入放大的增益,使被测信号得以放大。3.3频率计的设计原理及框图在本次设计中,采用FPGA作为数字频率计的控制中心,通过测量标准闸门时间内待测信号的脉冲数而计算出待测信号频率的。根据频率定义,测量1 s内被测信号经过的周期数即为该信号的频率。因此,本设计应主要解决三个问题:产生一个标准的时钟信号作为闸门信号;在闸门信号有效时间范围内对输入的信号进行计数;对所得的数据进行处理,并将其显示。针对上述问题,可以通过以下方法解决:依靠脉冲发生器产生的标准时钟信号,产生1s的闸门信号,当测频控制信号发生器电路产生的1s 的闸门信号为有效电平状态时,开始计算被测信号的周期数,当闸门信号回到无效电平状态
22、时其值即为所求频率,将得到的结果保存到锁存器并转换成相应的能够在七段数码显示管上可以显示的十进制结果。这样,在数码显示管上便能看到计数结果。电路系统采用VHDL语言进行描述,采用自顶向下进行设计, 把系统功能进行逐层的层次分割。在顶层描述内部各功能块的连接关系和对外的接口关系,在下一层描述功能块的逻辑功能以及具体实现形式。根据图3-1所示的频率计的系统原理框图,开始自顶向下的进行设计, 编程时分别对控制、计数、锁存、译码等电路模块进行VHDL文本描述 ,使每个电路模块以及器件都以文本的形式出现 ,然后通过编译后把它们生成库文件 ,并得出相对应的符号 ,最后用语言把各自已生成的库文件的器件的各个
23、端口进行连接,从而形成系统主电路的软件结构。在以上工作的基础上 ,再进行波形分析、仿真调试便完成整个软件设计。图3-1 频率计的系统原理框图当系统正常工作时, 脉冲发生器提供1 Hz 的输入信号,测频控制信号发生器对输入的信号进行转换, 产生计数信号,通过信号整形电路把被测信号转换成同频率的矩形波, 送入计数模块,然后由计数模块对输入的矩形波进行计数, 并将所得及计数结果送入锁存器中,从而保证系统可以稳定地显示输出数据,最后显示译码驱动电路再将由二进制所表示的计数结果转换成相对应的可在七段数码显示管上显示的十进制结果。第4章 系统硬件电路的设计4.1设计要求设计并制作出一种数字频率计,其技术指
24、标如下:(1频率测量范围: 0 50.0Hz ;(2输入电压幅度: 0-5V 或者4-20mA 可调;(3输入信号波形:任意周期信号;(4显示位数:4 位;(5电源: 220V 、50Hz 。4.2系统框图从数字频率计的基本原理出发,根据设计要求,得到如图 4-1所示的电路框图。框图中的电源采用 50Hz 的交流市电。市电被降压、整流、稳压后为整个系统提供直流电源。系统对电源的要求不高,可以采用串联式稳压电源电路来实 待测信号 计数器 译码驱动电路 锁存器 数码管显示测频控制信号发生器 图 41数字频率计框图 图 42全波整流与波形整形电路的输出波形现。本频率计要求精度不超过1%,即偏差不能超
25、过0.5Hz,可才用市电频率作为标准频率,以获得稳定的基准时间。用它作普通频率计的基准信号完全能满足系统的要求。全波整流电路首先对50Hz交流市电进行全波整流,得到如图3-2所示100Hz的全波整流波形。波形整形电路对 100Hz 信号进行整形,使之成为如图2所示 100Hz 的矩形波。波形整形可以采用过零触发电路将全波整流波形变为矩形波,也可采用施密特触发器进行整形。4.3各模块在电路中的作用4.3.1分频器分频器的作用是为了获得 1S 的标准时间。电路首先对图3-1所示的100Hz 信号进行100分频得到如图3-2 a所示周期为 1S 的脉冲信号。然后再进行二分频得到如图3-2 b所示占空
26、比为50%脉冲宽度为1S的方波信号,由此获得测量频率的基准时间。利用此信号去打开与关闭控制门,可以获得在 1S 时间内通过控制门的被测脉冲的数目。4.3.2信号放大、波形整形电路为了使设计出来的频率计能测量出不同电平值与不同波形周期信号的频率,就必须输入的被测信号进行适当的放大与整形处理,使输入的被测信号成为可被计数器正确识别的脉冲信号。被测信号的放大与波形的整形电路作用便在于此。如图4-3所示,信号放大我们采用一般的运算放大电路,波形整形可以采用施密特触发器。 图 43分频器的输出波形4.3.3控制门控制门用于控制输入脉冲是否送计数器计数。它的一个输入端接标准秒信号,一个输入端接被测脉冲。控
27、制门可以用与门或或门来实现。当采用与门时,秒信号为正时进行计数,当采用或门时,秒信号为负时进行计数。4.3.4计数器在此系统设计中,计数器这一模块用来对外部的被测信号进行计数,被测信号每一个上升沿都使10进制数计数器自加1。另外10进制计数器具有使能端,清零端及进位端,当能端和清零端同时为高电平时计数器才能正常计数,否则计数器的值被清零;当计数器的数值满1000时,会产生一个进位的脉冲,此脉冲会从进位端C0段输出。 图 44 10进制计数器代码生成图生成方式:Verilog HDL设计中定义七个端口:三个输入端,四个输出端。输入端ENABL为计数器使能端,当此引脚为高电平时计数器方能正常计数;
28、输入端CLR为计数器清零端,当CLR为低电平时计数器的数值被全部清零;输入端CLK 为外部被测信号的输入端;输出端Q13.0为的计数器的个位数值;输出端Q23.0为计数器的十位数值;输出端Q13.0为计数器的百位数值;输出端CO为计数器的进位端。图4.4为代码的生成图。4.3.5锁存器锁存器这一模块用来对来自十进制计数器的输出的数值进行锁定及输出缓冲,当enble的引脚信号为下降沿时使芯片正常传输数据,其他状态下信号将被锁定,数据不能被传送。在确定的时间( 1S 内计数器的计数结果(被测信号频率必须经锁定后才能获得稳定的显示值。锁存器的作用是通过触发脉冲控制,将测得的数据寄存起来,送显示译码器
29、。锁存器可以采用一般的 8 位并行输入寄存器,为使数据稳定,最好采用边沿触发方式的器件。生成方式:Verilog HDL设计中定义二个端口:一个输入端CLK(50M信号的输入端,一个输出端OUT_1HZ(1HZ控制信号输出。图3.1为50M分频器的代码生成图。 图 45 锁存器代码生成图4.3.6显示译码器与数码管显示译码器的作用是把用 BCD 码表示的 10 进制数转换成能驱动数码管正常显示的段信号,以获得数字显示。选用显示译码器时其输出方式必须与数码管匹配。其中sm_seg10, sm_seg11, sm_seg12, sm_seg13, sm_seg14, sm_seg15, sm_se
30、g16, sm_seg17分别对应共阳数码管的引脚a,b,c,d,e,f,g,dp;sm_seg27.0和sm_sem37.0也是同样的与共阳数码管的引脚相对应。生成方式:Verilog HDL设计中定义六个端口:三个输入端,三个输出端。当此sm_in13.0,sm_in23.0, sm_in33.0均为四位的数据输入端; sm_seg27.0, sm_seg27.0 ,sm_seg37.0均为八位的数据输出端,图4-6为代码的生成图。 图 46数码管代码的生成图4.4频率计主体电路原理图顶层电路原理图如图4-7所示。文件名Frec_top.bdf。VCCFs INPUT VCC K2INPU
31、T VCCF_inINPUT VCC K1INPUT X15.0OUTPUTp0OUTPUT p1OUTPUTp2OUTPUT p3OUTPUTAlarmOUTPUTNOT inst121ms B ABclk p0p1p2p3TimerinstLoad DIN15.0DOUT15.0reg_16inst3Fx CLR E NAD3.0D7.4D11.8D15.12COUT4cnt10inst4BclkE N CLR XE NT_con inst5Fs K2K1F_inp0p1p2p3D15.0D3.0D7.4D11.8D15.12X15.0(a 原理图Fs K2K1F_inAlarm X15.
32、0p0p1p2p3Frec_top inst(b 元件符号图图 47频率计主体电路电路顶层原理图在成功完成底层单元电路模块设计仿真后,可根据图4-2(a所示的频率计电路顶层原理图的设计文件。该电路图中Timer (定时信号模块、T_con (控制信号发生器模块、4cnt10(4位十进制计数器模块、reg_16(寄存显示器模块为前面设计的底层单元电路模块。Fs 为系统基准输入信号;F_ in 为待测频率信号;K1、K2为量程选择开关,K1K2=00时选1档,K1K2=01时选2档,K1K2=10时选3档,K1K2=11时选4档;p0p1p2p3为量程状态显示驱动信号和数码小数点位置指示信号,本设
33、计测试中用4个发光二极管表示量程状态显示;Alarm 是进位扩展信号,用于超量程提示功能,在超出目前量程档次时发出报警信号,驱动蜂鸣报警器。在QuartusII利用原理图输入对频率计电路顶层原理图Frec_top.dbf 编译仿真正确无误后,即可生成如图3-1(b所示的元件符号图。第5章软件设计5.1 VERILOG HDL语言简介HDL(Hardware Description Language是相对于我们所了解的一般计算机语言如C, Pascal而言的一种硬件描述语言。HDL主要应用于硬件电子系统设计的计算机语言,它主要用来描述电子系统的逻辑功能、电路结构和连接方式。设计人员可以利用HDL
34、程序对电路系统进行描述,规定其电路结构特征及其行为方式,然后再利用综合器和适配器把此程序转变成可控制的FPGA或CPLD内部结构并完成相应逻辑功能的门级或者更底层的结构网文件和下载文件。对FPGA/CPLD 的开发来讲,verilog语言是最普遍和最流行的硬件描述语言之一。下面就对verilog语言进行一下简单的介绍。verilog HDL是一种硬件描述语言,主要用于数字电子系统设计。它允许设计人员用它来进行各种级别的逻辑电路设计,还可以用它对数字逻辑系统的进行仿真验证、时序分析、逻辑综合。它是目前应用最广泛的一种硬件描述语言。据有关文献报道,目前在美国使用verilog HDL进行设计的工程
35、师大约有60000人,全美国有200多所大学教授用verilog 硬件描述语言的设计方法。在我国台湾地区几乎所有著名大学的电子和计算机工程系都讲授verilog有关的课程。从语法结构上看,verilog HDL语言与大家熟知的C语言有许多相似之处,并延续和借鉴了C语言里面的很多操作符和语法结构。下面列出的是verilog HDL 硬件描述语言在语法结构上的一些主要特点:语法结构上的主要特点:形式化地表示电路的行为和结构;借用C语言的结构和语句;可在多个层次上对所设计的系统加以描述,语言对设计规模不加任何限制;具有混合建模能力:一个设计中的各子模块可用不同级别的抽象模型来描述;基本逻辑门、开关级
36、结构模型均内置于语言中,可直接调用; 易创建用户定义原语(UDP ,User Designed Primitive 。5.2 FPGA 内部功能模块设计本软件的主要功能是用verilog 对FPGA 进行编程,利用其实现所需硬件的结构,也就是通常我们所说的“硬件软做”。源程序的编写采用自顶向下的编制方法,主要包括顶层文件和各底层文件模块的设计。VHDL 是一种硬件描述语言,因此在编写源程序的时候,必须注意,用verilog 语言所编写出的程序的流程图与通常编写的软件的流程图不同,使用该语言编写的程序流程图里面的各个进程和各个进程间都是并行的。本程序设计采用如图4-1所示的流程结构。设计从顶层文
37、件开始,将整个系统划分为控制模块、信号选择模块、基准时间产生模块、计数模块以及显示模块,然后再对各个模块进行进一步划分。图4-1 FPGA 设计流程图5.3模块的功能5.3.1 模块FEN如图 5-1 ,通过对 4MHz 时钟进行分频以获得 0.5 Hz 时钟,为核心模块 CORNA 提供1s的闸门时间。l ibrary ieee; use ieee.std_logic_1164.all; entity fen is顶层文件system底层文件 dff1 底层文件 serial2pal底层文件 pal2serial底层文件 bin2bcd底层文件counter底层文件 sel底层文件 disp
38、port(clk:in std_logic;q:out std_logic;end fen;architecture fen_arc of fen isbeginprocess(clkvariable cnt: integer range 0 to 3999999;variable x:std_logic;variable x:std_logic; begin if clk'event and clk='1'then 图 58if cnt<3999999 thencnt:=cnt+1;elsecnt:=0;x:=not x;end if;end if;q<=
39、x;end process;end fen_arc;5.3.2 模块SEL如图5-2,该模块产生数码管的片选信号。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sel isport(clk:in std_logic;sel:out std_logic_vector(2 downto 0;end sel;architecture sel_arc of sel isbeginprocess(clkvariable cnt:std_logic_vector(2 downto 0;begi
40、nif clk'event and clk='1'thencnt:=cnt+1;end if;sel<=cnt;end process;end sel_arc;5.3.3 核心模块 CORNA如图5-3,该模块是整个程序的核心,它能在1s的闸门时间里完成对被测信号频率计数的功能,并通过选择输出数据实现自动换档的功能。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity corna isport(clr,sig,door:in std_logic;alm:out
41、 std_logic;q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0;end corna;architecture corn_arc of corna isbeginprocess(door,sigvariable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0;variable x:std_logic;beginif sig'event and sig='1'thenif door='1'thenif c0<"1001"then
42、c0:=c0+1;elsec0:="0000"if c1<"1001"then c1:=c1+1;elsec1:="0000"if c2<"1001"then c2:=c2+1;elsec2:="0000"if c3<"1001"then c3:=c3+1;elsec3:="0000"if c4<"1001"then c4:=c4+1;elsec4:="0000"if c5<"
43、1001"then c5:=c5+1;elsec5:="0000"if c6<"1001"then c6:=c6+1;elsec6:="0000" alm<='1'end if;end if;end if;end if;end if;end if;end if;elseif clr='0'thenalm<='0'end if;c6:="0000"c5:="0000"c4:="0000"c3:=&quo
44、t;0000"c2:="0000"c1:="0000"c0:="0000"end if;if c6/="0000"thenq3<=c6;q2<=c5;q1<=c4;q0<=c3;dang<="0100" elsif c5/="0000"then q3<=c5;q2<=c4;q1<=c3;q0<=c2;dang<="0011" elsif c4/="0000"then
45、q3<=c4;q2<=c3;q1<=c2;q0<=c1;dang<="0010"elsif c3/="0000"thenq3<=c3;q2<=c2;q1<=c1;q0<=c0;dang<="0001"end if;end if;end process;end corn_arc;5.3.4 模块 LOCK见图5-4,该模块实现锁存器的功能,在信号L的下降沿到来时将信号A4、A3、A2、A1锁存。library ieee;use ieee.std_logic_1164.all;e
46、ntity lock isport(l:in std_logic;a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0;q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0;end lock; architecture lock_arc of lock isbeginprocess(lvariable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0;beginif l'event and l='0'thent4:=a4;t3:=a3;t2:=a2;t1:=
47、a1;t0:=a0;end if;q4<=t4;q3<=t3;q2<=t2;q1<=t1;q0<=t0;end process;end lock_arc;5.3.5 模块 CH如图5-5,该模块对应于数码管片选信号,将相应通道的数据输出,其中档位也通过显示。library ieee;use ieee.std_logic_1164.all;entity ch isport(sel:in std_logic_vector(2 downto 0;a3,a2,a1,a0,dang:in std_logic_vector(3 downto 0;q:out std_logic
48、_vector(3 downto 0;end ch;architecture ch_arc of ch isbeginprocess(selbegincase sel iswhen"000"=>q<=a0;when"001"=>q<=a1;when"010"=>q<=a2;when"011"=>q<=a3;when"111"=>q<=dang;when others=>q<="1111"end case;
49、end process;end ch_arc;5.3.6 模块DISP见图1.6,该模块为4线七段译码器。library ieee;use ieee.std_logic_1164.all;entity disp isport(d:in std_logic_vector(3 downto 0;q:out std_logic_vector(6 downto 0;end disp;architecture disp_arc of disp isbeginprocess(dbegincase d iswhen "0000"=>q<="0111111"
50、when "0001"=>q<="0000110"when "0010"=>q<="1011011"when "0011"=>q<="1001111"when "0100"=>q<="1100110"when "0101"=>q<="1101101"when "0110"=>q<="1111101
51、"when "0111"=>q<="0100111"when "1000"=>q<="1111111"when "1001"=>q<="1101111"when others=>q<="0000000"end case;end process;end disp_arc;5.4 软件的测试5.4.1 测试的环境此频率计的VHDL设计在Altera公司的Quartus II开发平台下进行了编译和仿真,它
52、是在clk0输入10 MHz方波,clkx输入周期为156ms(频率为6.41KHz 方波,分频系数C0取15000时的仿真波形。QuartusII具有完全集成化的易学、易用的可视化环境,还有具有工业标准EDA工具接口,并且可以运行在多种操作平台上,使QuartusII提供了丰富的逻辑功能库、模块库以及参数化的兆功能供设计者使用。它还具有开放核的特点,允许设计人员添加自己的宏功能模块。充分利用这些逻辑功能模块,可大大减少设计工作量。QuartusII由设计输入、项目编译、项目检验和器件编程等四部分组成。设计输入主要有文本编辑器、图形编辑器、符号编辑器、波形编辑器以及第三方EDA 工具生成的设计
53、网表文件输入等,输入方式不同,生成的设计文件也不同。编译设计项目主要是根据要求设计参数和编译策略,如选定其间、锁定引脚等等,然后对项目进行网表提取、逻辑综合、器件适配,产生报告文件,供分析仿真及编程用。项目检验方法包过功能仿真、模拟仿真和定时分析,编程验证是将仿真后的目标文件编入所选定的Altera可编程逻辑器件中,然后加入实际激励信号进行测试,检查是否达到要求。5.4.2 调试和器件编程将各个模块的源文件程序代码输入文本文件,编译运行项目成功后,把各个模块放在一起形成顶层设计文件,对项目进行逻辑综合,然后将项目的设计结果加载到Altera器件中;成功编译以后,进入到模拟仿真时段,设置好完成时
54、间和网络间距,在列出输入输出信号等等,进行波形编辑在模拟器运行成功;启动定时 分析工具,对传播延迟、时序电路性能、建立和保持时间等进行分析顺利后,就可以开始器件编程了。通过利用ByteBlaster电缆与微机并行口相连,接通EL实验箱电源,打开QuartusII编程器窗口,将器件编程文件调出,确保与电路板顺序相同。设置完成后选择Program按键,对器件链进行编程。管脚定义如图5-所示。青岛理工大学毕业设计(论文) 5.4.3 频率测试 系统的测试主要是测试硬件是否能正常工作,软件和硬件是否匹配,是否合 乎设计的要求。在频率测试过程中,系统的测量范围系统的精度是两个较重要的 指标。系统的测量结果如实物图 4-1 22 青岛理工大学毕业设计(论文) 第6章 结论与展望 在本次毕业设计中,我较全面的回顾了大学四年所学习硬件和软件知识,了 解了 FPGA 高精度频率计的工作原理及用途,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论