基于EDA-VHDL语言的等精度测频_第1页
基于EDA-VHDL语言的等精度测频_第2页
基于EDA-VHDL语言的等精度测频_第3页
基于EDA-VHDL语言的等精度测频_第4页
基于EDA-VHDL语言的等精度测频_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、基于EDA-VHDL 语言的等精度测频摘要: EDA 是一门应用技术,频率是电子技术领域内的一个基本参数,同时也是一个非常重要的参数。电子技术领域离不开频率,一旦离开频率电子技术的发展是不可想象的,就像现在的人离不开电一样。为了得到性能更好的电子系统,科研人员在不断地研究着频率,CPU 就是用频率的高低来评价其性能好坏,速度的高低,可见频率在电子系统中是多么重要. 稳定的时钟在高性能电子系统中有着举足轻重的作用,直接决定系统性能的优劣。随着电子技术的发展,测频系统使用时钟的提高,测频技术有了相当大的发展,但不管是何种测频方法,士1个计数误差始终是限制测频精度进一步提高的一个重要因素。本 设计采

2、用等精度频率设计原理和8051软核做微处理器。通过分析士1个计数误差的来源得出了一种新的测频方法:检测被测信号,时基信号的相位,当相位同步时开始计数,相位再次同步时停止计数,通过相位同步来消除计数误差,然后再通过运算得到实际频率的大小。充分利用FPGA 和8051软核简化外围电路及降低系统设计的复杂度。采用VHDL 语言,成功的编写出了设计程序,并在Qutus II 软件环境中,对编写的VHDL 程序进行了仿真,得到了很好的效果。最,给出了较详细的设计方法和完整的程序设计以及调试结果。关键词:EDA 、FPGA 、全同步、数字频率计、VHDL 语言、8051随着数字电路应用越来越广泛,传统的通

3、用数字集成电路芯片已经很难满足系统功能的要求,而且随着系统复杂程度的不断增加,所需通用集成电路的数量呈爆炸性增长,使得电路板的体积迅速膨胀,系统可靠性难以保证。此外,现代电子产品的生命周期都很短,一个电路可能要在很短的时间内作改进以满足新的功能要求,对于通用集成电路来说则意味着重新设计和重新布线。而可编程逻辑器件克服了上述缺点,它把通用集成电路通过编程集成到一块尺寸很小的硅片上,成倍缩小了电路的体积,同时由于走线短,减少了干扰,提高了系统的可靠性,又由于VHDL 语言和verilog 语言易于掌握与使用,设计相当灵活,极大地缩短了产品的开发周期。本设计在FPCA 技术越来越成熟,应用越来越广泛

4、的情况下,使用成熟的FPGA 技术来实现目前还不是很成熟的全同步数字频率计。此设计具有重要的研究价值。由于社会发展和科技发展的需要,信息传输和处理的要求的提高,对频率的测量精度也提出了更高的要求,需要更高准确度的时频基准和更精密的测量技术。而频率测量所能达到的精度,主要取决于作为标准频率源的精度以及所使用的测量设备和测量方法。目前,国内外使用的测频的方法有很多,有直接测频法、内插法、游标法、时间一电压变化法、事周期同步法、颇率倍增法、颇筹倍增注以及相桥比较法等等。直接测频的方法较简单,但精度不高。内插法和游标法都是采用模拟的方法,虽然精度提高了,但是电路设计却很复杂时间一电压变化法是利用电容的

5、充放电时间进行测量,由于经过A/D转换,速度较慢,且抗干扰能力较弱。多周期同步法精度较高的一种。为了进一步的提高精度,通常采用模拟内插法或游标法与多周期同步法结合使用,虽然精度有了进一步的提高,但始终未解决士1个字的计数误差,而且这些方法设备复杂,不利于推广。频率误差倍增法可以减小计数器的士1个字的误差,提高测量精度。但用这种方法来提高测量精度是有限的,因为如要得到2x10-13一招的测量精度,就要把被测频率 倍频到 =1/2 Hz=5000MHz,这无论是对倍频技术,还是对目前的计数器都是很难实现的。频差倍增一多周期法是一种频差倍增法和差拍法相结合的测量方法。这种方法是将被测信号和参考信号经

6、经频差倍增使被测信号的相位起伏扩大,在通过混频器获得差拍信号,用电子计数器在低频下进行多周期测量,能在较少的倍增次数和同样的取样时间情况下,得到比测频法更高的系统分辨率和测量精度。但是仍然存在着时标不稳而引入的误差和一定的触发误差。以上只是对现存的几种主要的测频方法的概述,很显然从以上的分析中知道: 不同的测频方法在不同的应用条件下是具有一定的优势的,而在本论文中,我主要在多周期同步法的基础上,采用了全同步的测频方法。主要是消除了士1个字的对时标信号的计数误差,而且在FPGA/CPLD芯片上实现,具有很大的优势. 总之,频 率(时间 测量技术发展非常快. 在频标方面,一方面是追求新的更高稳定度

7、和准确度的新型频标,据报道,实验室中做出频率准确度优于1丁3的频标。一方面是提供便于工业、科研应用的商品化频标,如小艳钟、铆频标、新型高稳定度晶体振荡器等这些工作多在计量研究与工业部门进行。大量的工作在改进、创造新的测频原理、方法和仪器,以便以更高的精度、速度,自动进行测量和数据处理,并向多功能、小型化、高性价比方向发展。在提高测频精度方面,值得特别提出的有全同步取样技术和可校准通用电子计数器技术,它们使测频精度提高到一个新的水平。本文正是介绍了基于FPGA 和8051软核单片机,利用EDA 技术开发的等精度频率计。一 、FPGA 简介 FPGA (Field Programmable Gat

8、e Array),即现场可编程门阵列,它是在PAL 、GAL 、CPLD 等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC )领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。目前以硬件描述语言(Verilog 或 VHDL )所完成的电路设计,可以经过简 单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND 、OR 、XOR 、NOT )或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA 里面,这些可编辑的元件里也包

9、含记忆元件例如触发器(Flip flop )或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA 内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA 的逻辑块和连接可以按照设计者而改变,所以FPGA 可以完成所需要的逻辑功能。 FPGA 一般来说比ASIC (专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA 。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA 上完成的

10、,然后将设计转移到一个类似于ASIC 的芯片上。另外一种方法是用CPLD (复杂可编程逻辑器件备)。早在1980年代中期,FPGA 已经在PLD 设备中扎根。CPLD 和FPGA 包括了一些相对大数量的可以编辑逻辑单元。CPLD 逻辑门的密度在几千到几万个逻辑单元之间,而FPGA 通常是在几万到几百万。 CPLD 和FPGA 的主要区别是他们的系统结构。CPLD 是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA 却是有很多的连接单元,这样虽然让

11、它可以更加灵活的编辑,但是结构却复杂的多。CPLD 和FPGA 另外一个区别是大多数的FPGA 含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA 支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA 可以让设备的一部分重新编辑而其他部分继续正常运行。二、 FPGA的工作原理FPGA 采用了逻辑单元阵列LCA (Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB (Configurable Logic Block )、输出输入模块IOB (Input Output Block

12、 )和内部连线(Interconnect )三个部分。FPGA 的基本特点主要有:1)采用FPGA 设计ASIC 电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA 可做其它全定制或半定制ASIC 电路的中试样片。3)FPGA 内部有丰富的触发器和I O 引脚。4)FPGA 是ASIC 电路中设计周期最短、开发费用最低、风险最小的器件之一。5 FPGA采用高速CHMOS 工艺,功耗低,可以与CMOS 、TTL 电平兼容。可以说,FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。FPGA 是由存放在片内RAM 中的程序来设置其工作状态的,因此,工作时需要对片内的RAM 进行

13、编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA 芯片将EPROM 中数据读入片内编程RAM 中,配置完成后,FPGA 进入工作状态。掉电后,FPGA 恢复成白片,内部逻辑关系消失,因此,FPGA 能够反复使用。FPGA 的编程无须专用的FPGA 编程器,只须用通用的EPROM 、PROM 编程器即可。当需要修改FPGA 功能时,只需换一片EPROM 即可。这样,同一片FPGA ,不同的编程数据,可以产生不同的电路功能。因此,FPGA 的使用非常灵活。FPGA 有多种配置模式:并行主模式为一片FPGA 加一片EPROM 的方式;主从模式可以支持一片PROM 编程多片FP

14、GA ;串行模式可以采用串行PROM 编程FPGA 外设模式可以将FPGA 作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA 与PCB 并行设计的复杂性等问题,一直是采用FPGA 的系统设计工程师需要考虑的关键问题。如今,随着FPGA 向更高密度、更大容量、更低功耗和集成更多IP 的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA 前所未有的性能和能力水平而带来的新的设计挑战。 例如,领先FPGA 厂商Xilinx 最近推出的Virtex-5系列采用65nm 工艺,可提供高达33万个逻辑单元、1,200个I/O

15、和大量硬IP 块。超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP 、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。 幸运地是,FPGA 厂商、EDA 工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity 与Xilinx 宣布成立超大容量时序收敛联合工作小组,旨在最大程度帮助地系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma 推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。最近FPGA 的配置方式已经多

16、元化!本系统选用EP2C5TP144C8芯片。三、等精度测频电路及原理说明1. 多周期同步测频的原理方框图 图2-1 多周期同步测频的原理方框图2. 多周期同步测频的工作波形图 Df x (CP TN xf O N O 图2-2 多周期同步测频的工作波形图3. 等精度测频的基本工作原理1、工作原理图2-1给出了多周期同步测频率的原理方框图,图2-2是对应的工作波形图。其工作过程是:单片机预置一定宽度(如1s )的闸门脉冲信号,加至D 触发器以形成同步闸门信号T ;被测信号频率f x 分两路加入,一路加至D 触发器作为CP 时钟,和预置闸门一起作用,在Q 端形成同步闸门见图2-2中T 的波形,并

17、分别加到主门1和主门2上,将主门1、2同时打开;这时,被测频率f x 通过主门1进入计数器1,对进入的f x 周期数进行计数,得计数值N x ;同时,晶振标准频率f o 通过主门2进入计数器,得计数值N o ,其波形如图2-2所示,由图可得:N x T x =N o T o因此: f x =N x f o N o2、误差分析由以上工作过程和波形图可以看出,N x 对被测信号T x 的计数是与闸门同步的,故不存在量化(±1)误差。这样,用该计数器测频,不管频率高低,其精度是相同的。这时,误差仅发生在计数器2对f o 的计数值N o 上,因为主门2与f o 之间并无同步关系,故仍存在量化

18、误差。不过,通常f o >>f x ,故±1误差相对小得多。多周期同步计数器测频的±1误±1=,N 为T 时间内晶振震荡的次数。 N N3、系统整体框图 差为: 图2-3 等精度测频的系统总体框图4、框图解释:1、波形变换器用来将待测正弦波变换成同频率的方波,以便于后面的数字电路的处理,通常使用比较器或是施密特触发器来完成。2、等精度测频器即是我们设计的核心单元,主要用来数出待测信号以及CLK_50M在一秒的定时内震荡的次数;里面包括两个32位的寄存器,这两个寄存器共用一组地址、读写、片选、数据总线,CPU 可以通过这组总线来访问两个寄存器,从而便于C

19、PU 读取并计算出待测信号的频率。3、CPU 用来读取“等精度测频”模块中的两个计数值,再利用这两个计数值推算出待测信号的频率,并获取按键指令以及控制显示设备用来显示结果。4、按键用来接收用户的输入,每按一个键就会产生一个中断,使CPU 转而执行相应的中断服务程序,从而完成相应的工作。5、显示设备可由led 或是12864等简单、便宜的显示设备组成,通过CPU 的控制把测得的数据(两个计数其中的值或是被测信号的频率)显示出来。5、采用Verilog 或者VHDL 实现等精度测频的模块等精度测频模块是本实验的核心模块,也是我们实验的主要内容,要求同学们用VHDL 或是Verilog 语言中的至少

20、一种写出其功能,并用仿真工具进行时序仿真,验证模块的正确性。有条件的可以采用任一款式的单片机访问该等精度的测频模块,直接使用函数发生器产生的方波作为待测信号,从而验证该模块的正确性。等精度测频模块是由三个更小的子模块组成的,分别是:异步秒脉冲模块、同步秒脉冲模块、计数器模块。等精度测频的整体模块的符号图如下所示:图2-4 等精度测频模块三个模块作用简介:1、异步秒脉冲模块:用来产生接近一秒的正电平,系统正是通过计算这一秒内待测信号的振动次数以及CLK_50M的振动次数,再通过这两个次数算出待测信号的频率的。之所以说是“异步秒脉冲”,这里的“异步”是相对于待测信号的步调的,也就是说,不与待测信号

21、的上升沿或是下降沿同步,那么就是“异步的”。2、同步秒脉冲模块:根据异步秒脉冲模块产生的与待测信号同步的接近一秒的正电平, 这里说的“同步”是相对于待测信号的,也就是说新生成的同步秒脉冲的起始时刻为待测信 号的某一个上升沿(或下降沿) ,结束时刻也是待测信号的某一个上升沿(或下降沿) 。 3、计数器模块:用来数出同步秒脉冲的时间内 CLK_50M 震动的次数,比如说 N1,同 时也可以数出同步秒脉冲时间内待测信号的振动次数,比如说 N2,那么待测信号的频率将 会是: 2/N1×50000000。 N 该模块的内部有两个计数器, 分别是 CNTR1_CLK50M 和 CNTR2_Sig

22、X, 其中前者对 50M 的 CLK 进行计数,后者对待测信号 X 进行计数,具体程序见后面附录 Counters.V 中的内容。一秒结束后计数的最终结果存放在 reg_CLK50M_N 和 reg_SigX_N 中。 该模块有 4 个以 CPU 打头的信号线:CPU_CS,CPU_RD,CPU_Addr 和 CPU_RD_Data,它们 正好和任何一款 CPU 的片选、读、地址和读数据总线连接起来,用来读取 reg_CLK50M_N 和 reg_SigX_N 这两个寄存器中的数据。当 CPU 读出这两个寄存器中的数据之后就可以统计简 单的计算得到待测信号的频率,并显示之。具体程序见后面附录

23、Counters.V 中的内容。 四、等精度测频实验过程 等精度测频实验过程 1、在电脑上安装 Quartus II 或 Maxplus II,最好是安装 Quartus II。 2、读懂本文所附的参考程序,在 Quartus II 中为每一个模块建立仿真激励文件,分别给 三个子模块仿真,再对顶层模块进行仿真。 * 3 、将 Verilog 代码改写为 VHDL 的代码。 * 4 、有条件的同学可以使用开发板做成模块,再用单片机访问。 实验程序: 五、 实验程序: module frequency(CLK_50M,Sig_X_In,CPU_CS,CPU_RD,CPU_Addr,CPU_RD_D

24、ata; input CLK_50M,Sig_X_In; input CPU_CS,CPU_RD,CPU_Addr; output31:0 CPU_RD_Data; reg Asyn_Sec_Pulse,Syn_Sec_Pulse; reg 31:0 cnt,reg_CPU_RD_Data,reg_CLK50M_N,reg_SigX_N,CNTR1_CLK50M, CNTR2_SigX; initial begin CNTR1_CLK50M=0; CNTR2_SigX=0; reg_CLK50M_N=0; reg_SigX_N=0; reg_CPU_RD_Data=0; end always(posedge CLK_50M/ always 中赋值。 if(cnt<20/这里的 160 是为了仿真的方便,表示 CLK_50M 每经历 160 个上升 cnt<=cnt+1;/沿就会使 reg_Asyn_Sec_Pulse 改变电平,如要真正产生 1 秒的延时, else /必须将 160 改为 50000000,即 5M。 begin cnt

温馨提示

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

评论

0/150

提交评论