奋斗的小孩之altera系列频率计.PDF

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
奋斗的小孩之altera系列频率计

FPGA 培训专家 奋斗的小孩之altera 系列 第二十篇 频率计 对于每一个的小实验,我们都可以把它看作是一个小项目,逐步 的去分析,设计,调试,最后完成功能。下面我们就开始我们的“小 项目”。 项目名称:频率计 具体要求:检测方波的频率和占空比。 通过分析上述的“项目名称”和“具体要求”,我们可以设计出如 下的架构: wave:方波输入 freq:测试出的方波频率 duty_cycle:测试出的方波占空比 至芯科技论坛 FPGA 培训专家 wave 是经过处理后的数字信号,不是外界的模拟信号。 系统设计: 1. 工程的名称:freq_meter。 2. 测试出高电平的时间和低电平的时间,然后经过计算得出 频率和占空比。 3. 状态转移图如下: h_s:代表high_state; l_s:代表low_state low_cnt:低电平计数器 high_cnt:高电平计数器 low_time:低电平的周期数 (周期数*周期就是时间) high_time:高电平的周期数 上述计数器的位宽都是26 位,因为笔者想要想要可以测试到1Hz, 故而需要计数到50_000_000。 至芯科技论坛 FPGA 培训专家 设计代码如下: /* 模块名称:freq_meter 模块功能:检测方波的频率和占空比。 编写时间:2016-08-15 作者:至芯科技奋斗的小孩 邮箱:zxopenhxs@126.com */ module freq_meter (clk, rst_n, wave, freq, duty_cycle); input clk; input rst_n; input wave; output [25:0] freq; output [6:0] duty_cycle; reg [25:0] low_cnt; reg [25:0] high_cnt; reg [25:0] low_time; reg [25:0] high_time; 至芯科技论坛 FPGA 培训专家 reg state; localparam high_state = 1b0; localparam low_state = 1b1; always @ (posedge clk or negedge rst_n) begin if (!rst_n) begin low_cnt = 26d0; high_cnt = 26d0; low_time = 26d0; high_time = 26d0; state = high_state; end else begin case (state) high_state : begin if (wave == 1b1) 至芯科技论坛 FPGA 培训专家 begin high_cnt = high_cnt + 1b1; stat

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档