论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
等精度频率计的设计与验证
等精度频率计的设计与验证
嚴華
金牌会员
|
2024-6-15 21:53:58
|
显示全部楼层
|
阅读模式
楼主
主题
916
|
帖子
916
|
积分
2748
文章摘要:
借助于QuartusII PLL_IP核产生一个任意频率被测时钟信号,设计一个等精度丈量模块,通过其处置惩罚后,再数码管上显示出六位的丈量频率数值,验证丈量的准确度。
关键词:
Verilog HDL;等精度频率丈量;数码管;PLL_IP核
最终框图:
频率计,即频率计数器,专用于丈量被测信号频率,根本工作原理就是当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率freq可以通过公式freq=N/T盘算得出。
在EDA设计中,常见的频率丈量方法包罗频率丈量法(适合高频被测信号)、周期丈量法(适合低频被测信号)和等精度丈量法。频率丈量法是通过统计单位时间内上升沿(或降落沿等)来盘算频率,而周期丈量法是通过丈量上升沿(或降落沿等)的时间间隔来盘算频率。等精度丈量法与前两种差别,其在于门控时间的设定。
【基础原理】
在等精度丈量法中,门控时间的长度并非固定,而会根据被测时钟信号的周期举行调解,保证其为被测时钟信号周期的整数倍。在这样的参考门限范围内,同时记录尺度时钟和被测时钟信号的周期数,随后通过盘算两者的比例关系,得到被测信号的时钟频率。
预先设定一个软件门限,在此门限划定丈量参考范围,通过对丈量信号Measured_sig上升沿触发,可得到一个相对的参考门限REF_threshold,其是被测时钟周期的整数倍,消除了被测信号存在的±1个时钟周期误差。
丈量方法:
参考门限范围内,计数被测信号周期个数为N;给一个高频(固定频率Fs)尺度信号,并计数得到其在同样门限下周期个数为Y;借助 N * 1 / Fn = Y * 1/Fs 可知被测信号频率 Fn = Fs * N / Y。
f为被测信号频率的丈量值,f'为现实频率,参考门限T;
丈量误差β = | f'-f | / f' * 100%,若忽略尺度信号的误差,可得到f' = N / (Y ± ΔY)* Fs;
联立得到 β = ΔY/Y *100% ≤ 1/Y = 1/(Fs * T)
结论:
被测信号的频率靠近或高于尺度信号,丈量的误差会大,就是说,增大尺度信号频率,大概扩大软件门限,这样可提高丈量精度。
【时序逻辑设计】
体系时钟sys_clk为50Mhz信号,sys_rst为体系复位。被测信号Measured_sig设定任意频率,thres_cnt门限计数周期定位1.5s(可调),前0.25s为信号保持,在中间的1.00s内是软件门限丈量范围,后0.25s为盘算时间。actual_thres是参考门限范围,也就是被测信号的现实丈量范围,是被测时钟周期的整数倍。
meas_clk_cnt到act_cnt_reg是被测时钟信号相对于参考门限的周期个数丈量,最终得到计数N。由被测时钟信号上升沿触发,act_thres_reg对actual_thres做了一个延后保持(打拍),得到计数结束信号act_reg_flag,通过其高电平触发计数值转移值act_cnt_reg保持。std_clk_cnt到std_cnt_reg原理同样如此,是尺度高频信号相对于参考门限的周期个数丈量,最终得到计数Y,通过公式盘算得到被测信号频率。
对上述时序图中的信号,编写Verilog程序:(注意差别的信号触发类型)
[code]parameter THRES_CNT_MAX = 27'd75_000_000;parameter THRES_CNT_250MS = 27'd12_500_000;parameter CNT_STAND_FREP = 27'd100_000_000;assign Std_flag = (Std_reg)&&(!act_thres)?1'b1:1'b0;assign act_reg_flag = (act_thres_reg)&&(!act_thres)?1'b1:1'b0;always @(posedge sys_clk or negedge sys_rst)begin if(!sys_rst) thres_cnt
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
嚴華
金牌会员
这个人很懒什么都没写!
楼主热帖
【万能皆可链接】C++中的动态链接库编 ...
iOS全埋点解决方案-用户标识 ...
用uniapp实现微信小程序的电子签名效果 ...
MySQL实战45讲 20
【云服务器】推荐阿贝云服务器,目前永 ...
【Javaweb】Web工作原理、两种网页、两 ...
【Selenium+Pytest+allure报告生成自动 ...
Qt-FFmpeg开发-打开本地摄像头(6) ...
Spring Boot 配置文件
微服务介绍
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表