当前位置:   article > 正文

XILINX时序报告重要参数的含义_如何看xilinx的时序告警

如何看xilinx的时序告警

本文讲解XILINX FPGA生成时许报告后各参数的含义,综合完后打开Report Timing Summary ,跟ISE不一样的是Vivado综合后的时序报告是可信的,但注意要将约束添加好,如果在综合时没有添加约束,可以在综合后添加,添加后可以直接查看时序报告,不用重新综合,
打开时序报告界面如下:在这里插入图片描述
此处注意Check Timing里的叹号都要关注一下,重点关注有没有未约束的时钟和有没有LOOP。下面是Intra-Clock Path和Inter-Clock Path,在跨时钟域都约束好了的前提下重点关注Intra-Clock Path,此处以建立时间为例讲解各参数的含义。
选择一条路径,用原理图的方式打开如下所示:
在这里插入图片描述
这是一个典型的时序模型,由发起寄存器、组合逻辑、捕获寄存器3部分组成,时序路径包括源时钟路径、数据路径、目的时钟路径。时序报告包括4部分Summary、Source Clock Path、Data Path、Destination Clock Path。首先是Summary:在这里插入图片描述
Slack:表示建立时间裕量,大于0表示建立时间满足,小于0表示建立时间不满足,Slack = Require Time - Arrive Time。
Data Path Delay:表示数据路径的延时,包括逻辑延时和布线延时,如果过大会导致建立时间不满足,此处给出了逻辑延时和布线延时所占的比重,可以帮助我们定位问题。
Logic Levels:表示组合逻辑的级数,级数过大会导致延时过大,从而导致建立时间违例。
Clock Path Skew:表示时钟抖动,一般不小于-0.5ns,如果小于-0.5就要定位问题并解决。
Clock Uncertainty:表示时钟不确定性,一般不大于0.1ns,大于0.1ns就占比过大,需要定位并解决。
下面是Source Clock Path和Data Path:在这里插入图片描述
此处可以看出是以时钟发起沿为起点,数值以此累加最后得到Arrive Time。
下面是Destination Clock Path:
可以看到时钟沿到来时间为40ns,代表主频跑的是25M
在这里插入图片描述
可以看到最后加上-0.304ns后得到 Require Time,0.304就是建立时间,Require Time将建立时间减掉了,时钟在44.433ns的时候已经到了,如果此时数据还没到,建立时间肯定就不能满足了。
例如下面的代码

reg [31:0] sum_temp[SUM_NUM -1:0];
generate
genvar ii;
	for(ii=0;ii<8;ii=ii+1)
	begin
		always@(posedge clk)begin
			if(!rst_n)begin
				sum_temp[ii] <= 0;
			end
			else if(state_c == SUM1)begin
				sum_temp[ii] <= window[ii*8]+window[ii*8+1]+window[ii*8+2]+window[ii*8+3]+window[ii*8+4]+window[ii*8+5]+window[ii*8+6]+window[ii*8+7];
			end
		end	
    end
endgenerate
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

一个时钟周期内做了8个24bit的数据累加,此段代码跑50M的时候是没有时序违例的,当把时钟提高到200M,
在这里插入图片描述
可以看到slck为负数了
用原理图的方式看一下
在这里插入图片描述
可以看到中间的组合逻辑级数非常多,延时非常大,看看时序报告里的summary
在这里插入图片描述
逻辑级数12级,数据路径延时达到了5.129ns,而我们的时钟周期是5ns,所以建立时间肯定是不满足的,
解决此问题的方法就是将求和改为流水线的方式。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/700551
推荐阅读
相关标签
  

闽ICP备14008679号