关于slack的文档
- 格式:doc
- 大小:325.50 KB
- 文档页数:1
slack = 要求的-实际的其值若为正则满足时序要求,否则,不满足
查report,如果是寄存器间的逻辑出现slack,表明时钟周期太短了,要么增加设计的时钟周期(一般不行,因为你的设计应该对这个时钟周期是又要求的),要么改代码吧。
如果允许,可以考虑多家一级寄存器。
关键看report你的关键路径是啥,负的slack出现在哪里。
看看这个slack 是在什么path 如果是reg2reg之间的话,看看是不是clk设置的问题,如果是同一个clk ,直接去改rtl 如果是fanout太大的问题
比如reset tree clk tree 加上donttouch 属性
如果是两个clk 看看是不是应该设置false path 这个要确认是不是做过同步处理
如果是in2reg reg2out 看看是不是input delay 或者output delay 设置的不合理
从最底层说吧,slack就是时钟信号从时钟管脚到每一个FF或者其他的同步器件(FPGA内部认为BUFG到内部任何的地点都是一样的)所需要的时间,而从普通IBUF到所要求到的FF(或者其他东西)也是有一段延时的,这个延时一般都大于或者远远大于时钟的slack,也就是这个原因,使得普通管脚输入的信号在输入的时候需要一个相对于时钟的建立时间(Tsetup)。
slack = data required time - data arrival time
data required time = clk period - setup time of REG1
data arrival time = cumulative dalay along timing path.
其实所有的时序概念都是基于两个寄存器之间的时序关系来考虑的。
你可以看看PT的教程
slack = data required time - data arrival time
data required time = clk period - setup time of REG1
data arrival time = cumulative dalay along timing path.
其实所有的时序概念都是基于两个寄存器之间的时序关系来考虑的。
你可以看看PT的教程。