EDA课程设计基于fpga的数字频率计_第1页
EDA课程设计基于fpga的数字频率计_第2页
EDA课程设计基于fpga的数字频率计_第3页
EDA课程设计基于fpga的数字频率计_第4页
EDA课程设计基于fpga的数字频率计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、 第17页 共 15 页 摘 要 等精度频率计在工业生产中具有很重要的作用,它在仪表测量领域扮演着重要的角色,它应用等精度测频原理,其测量精度优于普通频率计。基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,而等精度频率计不但具有较高的测量精度,而且在整个频率区域能保持恒定的测试精度。本次设计频率测量范围为2k999khz,作品已经与dds信号源搭配成功的完成了调试,其测量精度高,性能稳定。本次设计方案是基于fpga完成全系统设计,应用altera公司的cyclone ii芯片构成系统主体。本次设计的软件部分应用vhdl语言。应用 quartus ii 6

2、.0完成系统的设计,具有较高的灵活性与可靠性。关键词:等精度;频率计;fpga;vhdlabstract equal accuracy cymometer play a very important role in the frequency of industrial production and in the field of measurement instrumentation, the application of precision frequency measurement principle, the accuracy is better than ordinary cymom

3、eter. the cymometer based on the principles of traditional frequency measurement of the accuracy will face more practical limitations when the frequency of the signal decrease.the equal accuracy cymometer not only has high accuracy, but also maintain constant accuracy in the whole frequency region.t

4、he frequency of this design is in the range of 2 k-999khz, it has been works with dds signal generator successfully,completed with the commissioning, its high precision,stable performance.key words:equal accuracy; cymometer;fpga;vhdl目 录引言 11 设计功能及要求12 等精度测频原理13 fpga概述33.1 fpga概念 33.2 设计工具quartus ii

5、6.0 44 详细设计方案55 结论12谢 辞 13参考文献 14附 录 15引言频率测量是电子测量的重要领域。频率的测量已越来越受到重视,长度、电压等参数也可以转化为与频率测量有关的技术来确定。本设计通过等精度频率测量的方法完成,基于fpga完成了系统的设计,系统的可靠性优于常规元件组合而成的电路,系统工作频率高,稳定性也更好。通过对作品进行调试运行,证明了该设计方案的实际测量效果,该设计方案切实可行,能达到较高的频率测量精度。1 设计功能及要求1.1 设计等精度频率计,频率测量范围为2k999k。1.2 应用fpga完成系统的设计。1.3 通过6位动态数码管完成频率数据的显示。2 等精度测

6、频原理 等精度测频技术的实际闸门时间不是固定的值,而是被测信号的整周期倍,即与被测信号同步,因此消除了对被测信号计数时产生的1个字误差,测量精度大大提高,而且达到了在整个测量频段的等精度测量,其波形图如图1所示。图1 等精度测频波形图在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。可以看出,实际闸门时间与预置闸门时间1并不严格相等,但差值不超过被测

7、信号的一个周期 。等精度测频具体实现方法可简化为图2所示cnt1和cnt2是两个可控计数器,标准频率(fs)信号从cnt1的时钟输入端clk输入;经整形后的被测信号(fx)从cnt2的时钟输入端clk输入。如图3所示 图2 等精度测频原理框图图3 闸门控制信号产生图设在一次实际闸门时间中计数器对被测信号的计数值为nx,对标准信号的计数值为ns。标准信号的频率为fs,则被测信号的频率为由式(1)可知,若忽略标频fs的误差,则等精度测频可能产生的相对误差为=(|fxc-fx|/fxe)100% (2)其中fxe为被测信号频率的准确值。在测量中,由于fx计数的起停时间都是由该信号的上升测触发的,在闸

8、门时间内对fx的计数nx无误差(=nxtx);对fs的计数ns最多相差一个数的误差,即|ns|1,其测量频率为fxe=nx/(ns+ns)/fs (3)将式(1)和(3)代入式(2),并整理得:=|ns|/ns1/ns=1/(fs)=|ns|/ns1/ns=1/(fs)由上式可以看出,测量频率的相对误差与被测信号频率的大小无关,仅与闸门时间和标准信号频率有关,即实现了整个测试频段的等精度测量。闸门时间越长,标准频率越高,测频的相对误差就越小。标准频率可由稳定度好、精度高的高频率晶体振荡器产生,在保证测量精度不变的前提下,提高标准信号频率,可使闸门时间缩短,即提高测试速度。每个计数器中的cen输

9、入端为时钟使能端控制时钟输入。当预置门信号为高电平(预置时间开始)时,被测信号的上升沿通过d触发器的输出端,同时启动两个计数器计数;同样,当预置门信号为低电平(预置时间结束)时,被测信号的上升沿通过d触发器的输出端,同时关闭计数器的计数。系统由分频器、计数器1、计数器2、d触发器等组成。分频器出来的信号作为等精度测频原理的预置闸门信号。其中d触发器,计数器2和计数器1的作用与前2页图中所示相同。运算模块就是完成公式(1)的运算。复位主要对分频、计数器1和计数器2进行清零操作。3 fpga概述3.1 fpga概念fpga是英文fieldprogrammable gate array的缩写,即现场

10、可编程门阵列,它是在pal、gal、epld等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 fpga采用了逻辑单元阵列lca(logic cell array)这样一个新概念,内部包括可配置逻辑模块clb(configurable logic block)、输出输入模块iob(input output block)和内部连线(interconnect)三个部分。fpga的基本特点主要有: 1)采用fpga设计asic电路,用户不需要投片生产,就能得到合用的芯片。 -2)fp

11、ga可做其它全定制或半定制asic电路的中试样片。 3)fpga内部有丰富的触发器和io引脚。 4)fpga是asic电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) fpga采用高速chmos工艺,功耗低,可以与cmos、ttl电平兼容。 可以说,fpga芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 目前fpga的品种很多,有xilinx公司的virtex系列、ti公司的tpc系列、altera公司的stratix系列等。 fpga是由存放在片内ram中的程序来设置其工作状态的,因此,工作时需要对片内的ram进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电

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

13、处理器对其编程。3.2 设计工具quartus ii 6.0altera的可编程逻辑器件设计工具随着altera公司在推出各种可编程逻辑器件的同时也在不断升级。从早期的aplus、maxplus发展到 目前的 maxplus、quartus、quartus。maxplus 和 quartus 具有可视化的设计环境,具有工业标准 eda工具接口,可以运行在多种操作平台上。quartus 提供了一种与结构无关的设计环境,设计人员不需要精通器件的内部结构,只需要运用自己熟悉的输入工具(如原理图输入或高级行为描述语言)进行设计,利用quartus可以将这些设计转换为最终结构所需要的格式。有关结构的详细

14、知识已装入开发工具软件,设计人员无须手工优化自己的设计,因此设计速度非常快。使用quartus软件开发可编程逻辑器件,包括设计输入、项目编译、设计校验及器件编程等过程。maxplus和 quartus提供了全面的逻辑设计能力,设计人员可将文本、图形和波形等设计方法自由组合,建立起层次化的单器件或多器件设计。编译过程完成最小化逻辑综合、适配设计项目于单个器件或多个器件以及形成编程和配置数据等工作。设计校验包括功能仿真、时序仿真、影响速度的关键路径的延时预测以及多种系列器件混合使用的多器件仿真。quartus是altera的新一代设计开发软件,支持apex20k、apex、excalibur、me

15、rcury以及stratix等新器件系列。为了缩短设计周期和降低设计复杂度,quartus 含有工作组计算、集成逻辑分析功能、eda工具集成、多过程支持、增强重编译和ip集成等特性。quartus软件加强了网络功能,它具有最新的internet技术,设计人员可以直接通过internet获得 altera的技术支持。quartus的安装需要的pc机系统配置:奔腾或更好的pc机,256 mb以上的有效内存,不低于 128 mb的物理内存,1.5 gb以上的硬盘空间,windows 98、windows 2000或windows nt 3.51、windows nt 4.0操作系统,17英寸显示器。

16、与maxplus一样,quartus也分为商业版和基本版。通过edif网表文件、sram目标文件(.sof)参数化的模块库(lpm)、 verilog hdl、vhdl及designware组件来共享信息, quartus和maxplus软件可与 cadence、mentor graphics、orcad、synopsys、synplicity、exemplar logic及 viewlogic等许多公司提供的多种 eda工具接口。quartus能够调用其它工具进行综合仿真,其它eda工具也能够直接调用 quartus工具进行设计编辑。4 详细设计方案 本次设计采用原理图、vhdl、veril

17、og hdl与lpm宏单元库结合设计而成。顶层文件为为原理图设计。如图4所示。图4 顶层文件原理图被测信号技术模块采用vhdl语言描述完成:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity count isport( bclk:in std_logic; tclk:in std_logic; bzq1:out std_logic_vector(15 downto 0); tsq1:out std_logic_vector(15 downto 0); clr:in std_logic;

18、start:out std_logic); end count;architecture behave of count issignal bzq:std_logic_vector(15 downto 0);signal tsq:std_logic_vector(15 downto 0);signal ena:std_logic;signal q1:std_logic_vector(6 downto 0);signal cl: std_logic;begin tsq1=tsq;bzq1=bzq; start=ena; process (bclk) begin if bclkevent and

19、bclk=1 then if clr=1 then q1=0000000; cl=0; elsif q1=1111111 then q1=1111111; cl=0; else q1=q1+1;cl=1; end if; end if; end process;process (tclk)begin if tclkevent and tclk=1 then if clr=1 then tsq0);ena=0; elsif cl=1 then tsq=tsq+1;ena=1; else ena=0; end if; end if; end process;process (bclk)begin

20、if bclkevent and bclk=1 then if clr=1 then bzq0); elsif ena=1 then bzq=bzq+1; end if; end if; end process;end behave;由公式1可知在实际闸门时间内被测信号周期数nx需要与标准时钟相乘,此乘法环节由原理图5与verilog hdl语言结合完成图5 乘法器顶层图module multip(clk,tclk,out1,rst);input clk;input rst;input26:0 tclk;output26:0 out1;reg26:0 out1;reg26:0 q5;reg26

21、:0 q6;reg26:0 q7;reg26:0 q8;reg26:0 q9;reg26:0 q10;reg26:0 q11;always (posedge clk or negedge rst)beginif (rst=1b0) out1=27b0;elseq5 =tclk19;q6 =tclk18;q7 =tclk17;q8 =tclk16;q9 =tclk14;q10 =tclk9;q11 =tclk6;out1 =q5+q6+q7+q8+q9+q10+q11;end endmodule由公式一可知nx与fs相乘后需与ns相除,此处调用lpm宏单元库。如图6所示。图6 lpm除法器产生器

22、生成的除法器为27位除法器,内部设有流水线设计,除法运算延迟一个时钟周期,产生的除法器如下图7所示: 图7 除法器模块除法器产生的16位数据字即为被测信号的频率字,是bin二进制代码,如果要在数码管显示必须经过bin-bcd转换,此转换应用vhdl语言描述:library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity bin_bcd isport( datain:in std_logic_v

23、ector(23 downto 0); dataout:out std_logic_vector(23 downto 0) );end entity;architecture rt1 of bin_bcd issignal temp5,temp4,temp3,temp2,temp1,temp0:std_logic_vector(3 downto 0);signal nn:integer range 0 to 4194303;-16位的2进制beginprocess(datain,nn,temp5,temp4,temp3,temp2,temp1,temp0)beginnn=conv_intege

24、r (datain);temp5=conv_std_logic_vector(nn/100000,4);-百ktemp4=conv_std_logic_vector(nn/10000-(nn/100000)*10,4);-十ktemp3=conv_std_logic_vector(nn/1000-(nn/10000)*10,4);-千位temp2=conv_std_logic_vector(nn/100-(nn/1000)*10,4);-百位temp1=conv_std_logic_vector(nn/10-(nn/100)*10,4);-十位temp0=conv_std_logic_vect

25、or(nn-(nn/10)*10,4);-个位end process;dataout=temp5&temp4&temp3&temp2&temp1&temp0;end rt1;动态数码管扫描程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity segmain isport(clk:in std_logic; rst:in std_logic; datain:in std_logic_vector(23 downto 0); dataout:out std_logic_vector(3

26、downto 0); ledcom:out std_logic_vector(5 downto 0);end segmain;architecture behav of segmain issignal comclk:std_logic_vector(2 downto 0);signal bcd_led:std_logic_vector(3 downto 0);begin process(rst,clk) begin if rst=1 then comclk=5 then comclk=000;elsecomclk=comclk+1;end if;end if;end process;proc

27、ess(comclk)begin if comclk=000 then ledcom=000001; elsif comclk=001 then ledcom=000010;elsif comclk=010 then ledcom=000100;elsif comclk=011 then ledcom=001000;elsif comclk=100 then ledcom=010000;else ledcom=100000;end if;end process;process(comclk,datain)begin if comclk=000 then bcd_led=datain(3 dow

28、nto 0); elsif comclk=001 then bcd_led=datain(7 downto 4); elsif comclk=010 then bcd_led=datain(11 downto 8); elsif comclk=011 then bcd_led=datain(15 downto 12); elsif comclk=100 then bcd_led=datain(19 downto 16); else bcd_led=datain(23 downto 20);end if;end process;dataout dout dout dout dout dout dout

温馨提示

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

评论

0/150

提交评论