vivado 时序分析(寄存器与寄存器)

vivado 时序分析(寄存器与寄存器)_第1张图片

总体延时分为两部分 :1时钟的延时 tclk2- tclk1,也被称为时钟偏斜。

2 在两个寄存器之间 Tdata 既包括路径上的延时也可能包括做组合逻辑运算的延时。

所以我们要做时序分析就是要比对 上述两种延时的差值。

首先我们看数据到达时间 data arrival time如图红线所示

vivado 时序分析(寄存器与寄存器)_第2张图片

vivado 时序分析(寄存器与寄存器)_第3张图片

 data arrival time = tclk1 +tco +tdata

接着看时钟的延时

vivado 时序分析(寄存器与寄存器)_第4张图片

Tsu 上升沿(采样沿)到来之前 数据建立保持时间,

clock arrival time (时钟到达时间)

data arrival time=  t cycle(一个时钟周期) +tclk 2- tsu

将两种到达时间的时序放在同一张图中

vivado 时序分析(寄存器与寄存器)_第5张图片

把两种到达时间的差值 称为 建立时间余量 setup slack

 setup slack = tcycle + tclk2 -tsu -(tclk1 +tco +tdata)

理论知识简单如上所述  接着用vivado 打开一个采用了两级寄存器的例子

首先根据上述 setup slack公式 tcycle ,对于时序分析软件来说 他就是一个未知量,所以我们建立一个约束文件 将clk 绑到相应的晶振管脚上,vivado 时序分析(寄存器与寄存器)_第6张图片

添加约束文件后生成bit文件 ,完成后打开布局布线完成好的映射文件,(open inplemented design)在里面可以添加时钟约束文件,编辑时序约束。

 vivado 时序分析(寄存器与寄存器)_第7张图片

vivado 时序分析(寄存器与寄存器)_第8张图片

vivado 时序分析(寄存器与寄存器)_第9张图片之后回到源文件 cotrol+s保存 来保存自己对时钟的约束 可以看到下面会生成

create_clock -period 8.000 -name rx_clk -waveform {0.000 4.000} [get_ports rx_clk]

就是自己对时钟的约束。
 

vivado 时序分析(寄存器与寄存器)_第10张图片


之后 在run inplementeation 后可以看到 timing reporting 在setup中可以看到最糟糕的建立时间余量 是 6.044ns 

  • report_timing_summary 主要用于实现后的timing sigh-off
  • report_timing 主要用于交互式的约束验证以及更细致具体的时序报告与分析

    report_timing_summary

之后右键下面的 timing summary 关闭窗口 在新生成的窗口类 report timing 

Timing Summary报告把路径按照时钟域分类,每个组别下缺省会报告Setup、Hold以及Pulse Width检查最差的各10条路径,还可以看到每条路径的具体延时报告,并支持与Device View、Schematic View等窗口之间的交互。

每条路径具体的报告会分为Summary、Source Clock Path、Data Path和Destination Clock Path几部分,详细报告每部分的逻辑延时与连线延时。用户首先要关注的就是Summary中的几部分内容,发现问题后再根据具体情况来检查详细的延时数据。其中,Slack显示路径是否有时序违例,Source和Destination显示源驱动时钟和目的驱动时钟及其时钟频率, Requirement显示这条路径的时序要求是多少,Data Path显示数据路径上的延时,Logic Level显示这条路径的逻辑级数,而Clock Path Skew和 Clock Uncertainty则显示时钟路径上的不确定性。

vivado 时序分析(寄存器与寄存器)_第11张图片

当想要查看某一路径时 右键该路径 选择高亮 可以回到主菜单看到 布局布线之后的 device 中看到该路线 如下图所示vivado 时序分析(寄存器与寄存器)_第12张图片

然后也可以双击其中一路径 然后查看具体的delay类型和时间 

我们可以按照setup slack = tcycle + tclk2 -tsu -(tclk1 +tco +tdata)这个公式 来验证 set up slack的计算结果 是否一致  期间 有 clock pessimism 时钟悲观度 和 clock uncertainly 时钟不确定度  时钟悲观度 即为 共同路径 最大延时 -最小延时 而时钟不确定度由芯片决定。仔细观察时序报告便可以发现在报告路径的Slack之前有一行显示clock pessimism已经被考虑在内,在进行Setup Check时会加上一定的clock pessimism,而Hold Check时则会减去一定的clock pessimism。

vivado 时序分析(寄存器与寄存器)_第13张图片

CPPR(CRPR)。全称Clock Path Pessimism Removal(Clock Reconvergence Pessimism Removal),中文名“共同路径悲观去除”。它的作用是去除clock path上的相同路径上的悲观计算量。

你可能感兴趣的:(vivado时序,fpga开发)