基于FPGA的数字频率计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
摘要 介绍了一种运用 FPGA 开发软件 QuartusⅡ 设计的数字频率计。使用 Verilog HDL 硬件描述语言编程,该数字频率计能够准确的测量 1 H z~ 3MH z 脉冲信号, 测量误差小。 关键词: 数字频率计 fpga Verilog HDL 引言 频率测量是电子测量领域里的一项重要内容,而高精度频率计的应用尤为广泛。目前,宽范围、高精度数字式频率计的设计方法大都采用单片机加高速、专用计数器芯片来实现。本文设计的高精度频率计除了对被测信号的整形部分、键输入和最后的数码显示部分必须用硬件实现以外,其余全部采用 Verilog HDL 编程设计,并下载在一片 FPGA(Field Programmable Gates Array———现场可编程门阵列)芯片上,整个系统非常精简,并能够达到同样的技术指标。根据不同的需要还可以重新编程下载,进行升级。FPGA 器件作为系统控制的核心,其灵活的现场可更改性,可再配置能力,对系统的各种改进非常方便,在不更改硬件电路的基础上还可以进一步提高系统的性能。具有高速、精确、可靠、抗干扰性强和现场可编程等优点。 设计原理 本文设计了一个数字频率计的模型, 其接口信号如图 ( 一) 所示。 待测信号50 待测信号 50 M 时钟 分 频 测 量 控 制电 路 计 数器 寄 存器 液 晶 LCD12864 显 示 驱动液晶模块 图(一) 数字频率计模型方框图 数字频率计设计框图如图 1 所示, 主要由分频器、测量频率控制电路、十进制计数器、寄存器、液晶驱动等六个模块组成。当系统正常工作时, 系统时钟经分频得到的 IHZ : 标准方波信号, 作为频率测量控制电路的输人信号,用 1S 的时间使能计数器计数,将结果保存到锁存器, 就可以保证输出显示稳定。将计数值转换为 ASCII 码, 采用 LCD12864 显示待测信号的频率。 设计内容 一)源程序 分频计数模块 本模块主要是把 50M 的信号分频为 1hz 和 1/1.2khz。。分频计数的模块的功能结构框图如图 1-1 所示。 jishu jishu clk clk_1s rst clk_1ms2 inst 图 1-1 计算里程和车费模块的功能结构框图根据模块实现的功能设计 Verilog HDL 源代码如下: module jishu( clk,rst, clk_1s,clk_1ms2 ); input clk,rst; output clk_1s,clk_1ms2; reg clk_1ms2; reg clk_1s; reg[25:0]count_1s; reg[14:0]count_1ms2; //parameter cen_1ms2=30000; //parameter cen_1s always@(posedge clk or negedge rst) begin if(!rst) count_1s=0; else begin if(count_1s= begin count_1s=0; clk_1s=~clk_1s; end else count_1s=count_1s+1b1; end end always@(posedge clk or negedge rst) begin if(!rst) count_1ms2=0; else begin if( count_1ms2==30000) begin count_1ms2=0; clk_1ms2= ~clk_1ms2; end else count_1ms2= count_1ms2+1b1; end end endmodule 该模块定义输入输出端口如下: clk: 全局时钟信号,这里为 50MHz 的时钟。 rst: 外部复位信号。 clk_1s: 由 50MHZ 的信号分频得到。 clk_1ms2:由 50MHZ 的信号分频得到。 在 Altera 公司的软件工具 Quartus Ⅱ(Windows XP 环境下)中编译和波形仿真后得到的波形如图 2-2 所示: 图 2-2 待测信号输入计数的仿真波形 待测信号输入计数模块 本模块主要是将待测信号输入,然后对待测信号进行计数。待测信号输入计数模块的功能结构框图如图 2-1 所示: f m_jishu clk_1s rst f m_in inst1 f m_count[26..0] 图 2-1 待测信号输入计数模块的功能结构框图根据模块实现的功能设计 Verilog HDL 源代码如下: module fm_jishu(clk_1s,rst,fm_in,fm_count); input fm_in,clk_1s,rst; output[26:0] fm_count; r

文档评论(0)

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

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

1亿VIP精品文档

相关文档