基于FPGA的数字频率计设计
第一部分:频率测量:
- 测量频率主要有两种方法:普通测量法以及等精度测量法
●FPGA普通测量法:在1s闸门时间内,记录被测信号的脉冲个数Fx,则被测频率为Fx=Nx,精度主要取决于被测信号频率,被测信号频率越搞,误差越小
●FPGA等精度测量法:本方案除给定闸门时间外,还由被测信号产生一路计数允许信号。计数允许信号在闸门时间内第一个被测信号的上升沿开启,在闸门时间结束后被测信号的第一个上升沿结束,最后在计数允许信号的有效时间内,分别对标准频率个数,被测信号个数,被测信号高电平时间内标准信号频率个数计数之后,再经过相关运算后即可得所求频率,占空比,时间间隔。
由于等精度测量的误差相对较小,本实验采用等精度测量法。
二:实现方法及代码
1.实验代码:
//使用等精度测量法测量频率及周期
module freq(
input clk_fx , //输入待测信号
input clk_fs , //基准信号
input rst , //复位信号
input start , //开始信号
output reg [WIDTH-1:0]cnt_T , //待测信号高电平计数
output reg [WIDTH-1:0]cnt_fx , //待测信号计数
output reg [WIDTH-1:0]cnt_fs //基准信号计数
);parameter WIDTH =32;
parameter CLK_1s='d199_999_999; reg [WIDTH-1:0] t1s_gate;
reg [WIDTH-1:0] clk_1s;
reg real_gate;
reg [WIDTH-1:0]cnt_T_tmp;
reg [WIDTH-1:0]cnt_fx_tmp;
reg [WIDTH-1:0]cnt_fs_tmp;//产生1s闸门信号
always @(posedge clk_fs or negedge rst) beginif(!rst) clk_1s <= 1'b0;else if (clk_1s>=CLK_1s) clk_1s <= 1'b0;else if (t1s_gate) clk_1s <= clk_1s + 1'b1;else clk_1s <= 1'b0;
end
always @(posedge clk_fs or negedge rst ) begin if(!rst) t1s_gate <= 1'b0;else if (start) t1s_gate <= 1'b1;else if (clk_1s>=CLK_1s) t1s_gate <= 1'b0;else t1s_gate <= t1s_gate;
end
//产生实际闸门信号
always @ (posedge clk_fx) beginif(t1s_gate) real_gate <= 1'b1;else real_gate <= 1'b0;
end
//基准信号在闸门信号范围内计数
always @ (posedge clk_fs ) beginif(real_gate)cnt_fs_tmp <= cnt_fs_tmp+1'b1;else cnt_fs_tmp <=1'b0;
end
//待测信号在闸门信号范围内计数
always @ (posedge clk_fx ) beginif(real_gate)cnt_fx_tmp <= cnt_fx_tmp+1'b1;else cnt_fx_tmp <=1'b0;
end
//待测信号高电平计数
always @(posedge clk_fs) begin if(real_gate)if(clk_fx)cnt_T_tmp <= cnt_T_tmp + 1'b1;else cnt_T_tmp <=cnt_T_tmp;else cnt_T_tmp <=1'b0;
end always @ (negedge real_gate) begincnt_fs <= cnt_fs_tmp;cnt_fx <= cnt_fx_tmp;cnt_T <= cnt_T_tmp;
end endmodule
2.BDF
3.RTL视图:
4.SignalTap仿真验证:(基准时钟频率50MHz)
待测时钟频率为25KHz,占空比为50%时:
NT=286611663,Ns=573498943,Nx=286751
经计算 待测时钟频率为=25.00013KHz
占空比为=0.4997597
待测时钟频率为50KHz,占空比为50%时
经计算 待测时钟频率为=50.0004679KHz
总结:经上述实验测得的频率的误差基本符合题目要求。
基于FPGA的数字频率计设计相关推荐
- 基于FPGA的FFT设计
基于FPGA的FFT设计 1.verilog源代码还有实验报告 2.FFT的主要算法 FFT算法并不是一种新的理论算法,它只是用来计算DFT的快速算法,所以它是以DFT为基础的.本课题采用的是基-2 ...
- 基于 FPGA Vivado 信号发生器设计(附源工程)
今天给大侠带来基于 FPGA Vivado 信号发生器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说, ...
- 频谱仪设计基于FPGA的频谱仪设计,可以测试分析多种频率的频谱,分辨率100HZ
频谱仪设计基于FPGA的频谱仪设计,可以测试分析多种频率的频谱,分辨率100HZ,配套资料多达100M,东西复杂 ID:982500594354361311卡哇伊2号小宝贝
- java 万年历绪论,基于FPGA的万年历设计
基于FPGA的万年历设计(论文15000字) 摘要:万年历在人们的生活中一直扮演着重要的角色,可随着时代的发展,传统的纸质万年历已经越来越无法满足人们对于时间精确度以及便捷性的要求.随着电子科学的不断 ...
- 单片机c语言数字频率计课程设计,基于单片机的数字频率计设计开题报告.doc
基于单片机的数字频率计设计开题报告.doc 皖西学院本科毕业设计(论文)开题报告学院信息工程学院专业通信工程学生姓名裴晓晴学号2010013513指导教师傅思勇职称助教毕业设计(论文)题目基于单片机的 ...
- 基于 FPGA Vivado 示波器设计(附源工程)
今天给大侠带来基于 FPGA Vivado 示波器设计,开发板实现使用的是Digilent basys 3,如有想要入手 basys 3 开发板的,可以联系牛总:18511371833.话不多说,上货 ...
- 单片机测周法c语言程序,基于单片机的数字频率计设计(附原理图及源程序).doc...
四川理工学院毕业设计 四川理工学院毕业设计 PAGE \* MERGEFORMAT4 PAGE \* MERGEFORMAT5 四川理工学院毕业设计 基于单片机的数字频率计设计 (创新的自动选当功能) ...
- FPGA项目(12)——基于FPGA的万年历设计
首先称述一下所实现的功能:可以显示年.月.日.时.分.秒,有闹钟设置功能,闹钟时间到时,蜂鸣器响,报警.用6位数码管进行显示,分三个显示页面,第一个页面显示年月日,第二个界面显示时分秒,第三个页面显示 ...
- 基于fpga的数码管动态扫描电路设计_【至简设计案例系列】基于FPGA的密码锁设计(altera版)...
秦红凯 明德扬FPGA科教 一.项目背景概述 随着生活质量的不断提高,加强家庭防盗安全变得非常重要,但传统机械锁的构造过于简单,很容易被打开,从而降低了安全性.数字密码锁因为它的保密性很高,安全系数也 ...
- 【示波器】基于FPGA的数字示波器设计实现
1.软件版本 quartusii 2.本算法理论知识 框图结构: 1.缓存里包含有触发控制和触发存储器: 2.由设计指标需要1GsPs的采样率,最后的数据流要降到到250MbPs: 3.从指标来看从波 ...
最新文章
- x86架构手机_都是芯片,为什么电脑CPU不能用在手机里?
- java spring 单例_spring怎么实现单例模式?
- 在数据库SQl中拼串
- Linux下导入,导出mysql数据库的命令
- boost pool内存池库使用简要介绍
- [渝粤教育] 南通职业大学 混合动力汽车构造与检修 参考 资料
- 可定制的PHP缩略图生成程式(需要GD库支持)
- 三菱fx3u通讯手册_使用USR-N510实现局域网内连接FX3U
- phpstorm的安装和破解
- AppCode开发,一个智能开发环境
- Max Script 入门教程
- 微信小程序上线审核流程
- 《Harry Potter: Puzzles Spells》开放预注册
- 张一鸣:积极乐观的心理期待,对成功有害!
- 信息学奥赛一本通:1134:合法C标识符查
- 燕麦云何洋开讲丨真假海盗?黑客杠上好莱坞,还要把电影变成现实
- 网页从输入url到呈现页面流程
- FTP协议主动(Port)模式和被动(Passive)两种模式详解
- 【SDL游戏编程入门第一卷】配置SDL环境
- 穷游第13国之韩国囧途之旅