等精度频率计的设计与验证
文章摘要:借助于QuartusII PLL_IP核产生一个任意频率被测时钟信号,设计一个等精度丈量模块,通过其处置惩罚后,再数码管上显示出六位的丈量频率数值,验证丈量的准确度。关键词:Verilog HDL;等精度频率丈量;数码管;PLL_IP核
最终框图:
https://img2024.cnblogs.com/blog/3025061/202406/3025061-20240615223445471-1675112747.png
频率计,即频率计数器,专用于丈量被测信号频率,根本工作原理就是当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率freq可以通过公式freq=N/T盘算得出。
在EDA设计中,常见的频率丈量方法包罗频率丈量法(适合高频被测信号)、周期丈量法(适合低频被测信号)和等精度丈量法。频率丈量法是通过统计单位时间内上升沿(或降落沿等)来盘算频率,而周期丈量法是通过丈量上升沿(或降落沿等)的时间间隔来盘算频率。等精度丈量法与前两种差别,其在于门控时间的设定。
【基础原理】
在等精度丈量法中,门控时间的长度并非固定,而会根据被测时钟信号的周期举行调解,保证其为被测时钟信号周期的整数倍。在这样的参考门限范围内,同时记录尺度时钟和被测时钟信号的周期数,随后通过盘算两者的比例关系,得到被测信号的时钟频率。
https://img2024.cnblogs.com/blog/3025061/202406/3025061-20240615223457221-1022806614.png
预先设定一个软件门限,在此门限划定丈量参考范围,通过对丈量信号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是参考门限范围,也就是被测信号的现实丈量范围,是被测时钟周期的整数倍。
https://img2024.cnblogs.com/blog/3025061/202406/3025061-20240615223703614-1009031068.png
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程序:(注意差别的信号触发类型)
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
页:
[1]