发明名称 对多个时钟源的时钟频率进行监测的方法
摘要 本发明公开了一种对多个时钟源的时钟频率进行监测的方法,用enable记录时钟的检测使能,当enable[i]的值为1时,对clk[i]进行检测;当enable[i]的值从0跳变到1时,记录第一仿真时间;当enable[i]的值从1跳变到0时,记录第二仿真时间;在enable[i]的值为1期间,以clk[i]的上升沿跳变或下降沿跳变触发计数,计数值为clk_cnt[i];在每次enable[i]的值从1跳变到0时,计算出enable[i]的值为1期间的时钟平均周期T_aver[i];然后将clk_cnt[i]清0,将时钟平均周期T_aver[i]与clk[i]的理论周期值T[i]进行比较,若偏差超过冗余度,即产生第一报错信号。本发明能够实时监测多个时钟源的多种分频的时钟频率。
申请公布号 CN103777072A 申请公布日期 2014.05.07
申请号 CN201210410208.1 申请日期 2012.10.24
申请人 上海华虹集成电路有限责任公司 发明人 王静
分类号 G01R23/02(2006.01)I 主分类号 G01R23/02(2006.01)I
代理机构 上海浦一知识产权代理有限公司 31211 代理人 戴广志
主权项 一种对多个时钟源的时钟频率进行监测的方法,其特征在于:步骤1,将寄存器记为enable,其中enable[i]表示第i个寄存器;将时钟信号记为clk,其中clk[i]为第i个时钟信号;用enable记录时钟的检测使能;当enable[i]的值为1时,对clk[i]进行检测;当enable[i]的值从0跳变到1时,用硬件描述语言的系统函数$realtime记录第一仿真时间t_en1;当enable[i]的值从1跳变到0时,用硬件描述语言的系统函数$realtime记录第二仿真时间t_en2;在enable[i]的值为1期间,以clk[i]的上升沿跳变或下降沿跳变触发计数器进行计数,计数值为clk_cnt[i];在每次enable[i]的值从1跳变到0时,计算出enable[i]的值为1期间的时钟平均周期T_aver[i],即T_aver[i]=(t_en2‑t_en1)/clk_cnt[i];然后将clk_cnt[i]清0,将时钟平均周期T_aver[i]与clk[i]的理论周期值T[i]进行比较,若偏差超过冗余度,即产生第一报错信号;步骤2,在enable[i]的值为1期间,在clk[i]的每次上升沿记录下对应的时间,记为t1,在clk[i]的每次下降沿记录下对应的时间,记为t2;在每次clk[i]的上升沿跳变或下降沿跳变时,计算出相邻两次上升沿或下降沿的时间之差,即为该被测时钟周期T_inst[i],并与clk[i]的理论周期值T[i]进行比较,若偏差超过冗余度,即产生第二报错信号;在每次clk[i]的下降沿跳变时,记录下此次下降沿跳变与上升沿跳变的时间差,即为时钟的高电平时间T_pulse;将每个时钟周期的高电平时间除以时钟周期,即T_pulse/T_inst,计算出时钟的占空比;将时钟的占空比与其理论值进行比较,若偏差超过冗余度,即产生第三报错信号;步骤3,设时钟变频后不稳定期的理论时间为T_uns;选取一个采样时间,记为t_sample;从变频使能即enable=0开始,在每个t_sample时间内,以被测时钟的上升沿或下降沿为触发条件进行计数,当连续两次相邻采样时间内的计数值的误差在设定的范围内,即可认为时钟频率已经稳定,将enable置为1;从变频使能到时钟频率稳定的这段时间即为等待时间T_delay;若T_delay超过T_uns的冗余度或者时钟一直不能稳定,即产生第四报错信号;i为大于等于零的整数。
地址 201203 上海市浦东新区碧波路572弄39号