系列文章目录
第三章 时钟占空比检查
前言
之所以要进行时钟占空比检查,因为中后端对时钟建模的时候会要求时钟的最小脉冲宽度,当我们RTL产生时钟的时候,大部分情况会按照要求进行建模,但是也有可能出现时间产生的时钟与spec中定义的不一致,导致与中端generate的时钟不一致,影响最终的timing,另外对于复杂的时钟方案中,比如在时钟切换时,可能会在时钟切换时刻引入占空比不符合要求的情况,类似glitch这种,因此在验证时钟完备性时一定要进行占空比的检查。
提示:以下是本篇文章正文内容,下面案例可供参考
一、什么是时钟的占空比?
所谓时钟占空比,即我们常说的一个时钟周期内,高电平与低电平的比例,可以是1:1或者1:N,这个在spec中会标识出来,方便中端进行时钟建模,中端会根据此建模的时钟分析整个timing路径是否满足要求。所以,一旦中端建模的时钟与实际电路产生的时钟不吻合,很可能导致我们后仿出现timing违例,因此我们需要在EDA前仿真阶段将系统中所有与spec定义的不满足占空比的时钟找出来,保证实际代码与spec的一致性。
二、使用步骤
1.自动化check代码代码如下:
`define CLK_DUTY_CHK(chk_clk,high_ratio,low_ratio,jitter_margin,sign,report_err)
begin
real t_last,t_delta,t_delta1,t_delat2,t_delat_abs;
int cnt;
t_la