网站大量收购独家精品文档,联系QQ:2885784924

数字频率计设计与仿真.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!

数字频率计设计 一、 实验目的 1、 了解等精度测频的方法和原理。 2、 掌握如何在 FPGA 内部设计多种功能模块。 3、 掌握 VHDL 在测量模块设计方面的技巧。 二、 实验原理 所谓频率就是周期性信号在单位时间(1s)内变化的次数。若在一定时间间 隔 T(也称闸门时间)内测得这个周期性信号的重复变化次数为 N,则其频率可 表示为 f=N/T 由上面的表示式可以看到,若时间间隔 T 取 1s,则 f=N。由于闸门的起始和结束 的时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。进一步分析测量 准确度:设待测信号脉冲周期为 Tx,频率为 Fx,当测量时间为 T=1s时,测量准确 度为δ=Tx/T=1/Fx。由此可知这种直接测频法的测量准确度与被测信号的频率有 关,当待测信号频率较高时,测量准确度也较高,反之测量准确度较低。因此,这 种直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度 保持不变的要求。若要得到在整个测量频段内的测量精度保持不变的要求,应该考 虑待精度频率测量等其它方法。 等精度频率测频的实现方法,可以用图 23-1 所示的框图来实现。 三、 实验内容 本实验要完成的任务就是设计一个频率计,系统时钟选择核心板上的 20M 的 时钟,闸门时间为 1s(通过对系统时钟进行分频得到) ,在闸门为高电平期间, 对输入的频率进行计数,当闸门变低的时候,记录当前的频率值,并将频率计数 器清零,频率的显示每过 2 秒刷新一次。被测频率通过一个拨动开关来选择是使 用系统中的数字时钟源模块的时钟信号还是从外部通过系统的输入输出模块的 输入端输入一个数字信号进行频率测量。当拨动开关为高电平时,测量从外部输 入的数字信号,否则测量系统数字时钟信号模块的数字信号。其实现框图如下图 在本实验中,用到的模块有数字信号源模块、拨动开关模块、20M 系统时钟源 模块、数码管显示模块等。其中数码管、数字信号源、拨动开关与 FPGA的连接 电路和管脚连接在以前的实验中都做了详细说明,这里不在赘述。20M 系统时钟 源的模块位于EP2C35核心板的中上方通过一个贴片的20M有源晶体来产生50MHZ 的时钟信号,详细说明请参阅用户使用手册。其与 FPGA 的管脚连接如表 23-1 所 示。 4.实验要求 (1)系统的原理框图 2)总工程功能仿真(软仿) 当进行总工程功能仿真时需要把L1接入的频率分频模(即div_clk模块)块去掉后,方可进行。而软件仿真时发现一个现象,那就是FSIN(测试频率)要大于L1的频率,且数码管上显示的不是FSIN的直接频率数字,而是在clk时钟周期内出现FSIN的上升沿脉冲个数N,此时FSIN的频率实际值可由以下公式算得: fx=N/T 仿真现象如下图所示: 编写各个vhdl程序 (a)有时钟使能的十进制计数器的源程序CNT10.VHDL library ieee; use ieee.std_logic_1164.all; entity cnt10 is port(clk : in std_logic; clr : in std_logic; ena : in std_logic; cq : out integer range 0 to 15; carry_out : out std_logic ); end entity cnt10; architecture art of cnt10 is signal cq1 : integer range 10 downto 0; begin process(clk,clr,ena) is begin if clr=1 then cq1=0; elsif clkevent and clk=1 then if ena=1 then if cq19 then cq1=cq1+1; else cq1=0; end if; end if; end if; end process; cq=cq1; process(cq1) is begin if cq1=9 then carry_out=1; else carry_out=0; end if; end process; end architecture art; (b)32位锁存器的源程序 library ieee; use ieee.std_logic_1164.all; entity reg32b is port(load : in std_logic; din : in std_logic_vector(31 downto 0); dout : out

文档评论(0)

lingyun51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档