读riple "TimeQuest就一定要搞定——时序分析基本公式" 的个人理解
0赞
此处以建立时间为例,分析下面三组公式在时序约束中的意义,及其关系。
以下公式,本质上都是一样的,即通过建立(保持)时间裕量的范围,计算出FPGA中所应施加的合理时序约束。原理其实只有一个,即建立和保持时间不违规,即:Clock Setup Slack = Data Required Time – Data Arrival Time 大于0(保持时间同理)。
为何将建立时间检查分为三组?因为分析的对象的模型不同,有时分析路径都在FPGA内部,有时输出在FPGA内部、输入在外部,还有时输入在内部、输出在外部。因此,才出现了以下三种不同路径的分析。
为何引入input/output delay,也许是因为为了便于将外部各种路径(外围器件、PCB等)统一起来,给分析工具一个总的延时,使之便于分析调整。
需要特别指出的一点是:由于时序分析是针对时钟驱动的电路进行的,所以分析的对象一定是“寄存器-寄存器”对。在分析涉及到I/O的时序关系对时,看似缺少一个寄存器分析对象,构不成“寄存器-寄存器” 对,其实是穿过FPGA的I/O引脚,在FPGA外部虚拟了一个寄存器作为分析对象。
所以分析路径,均为前级寄存器始终端,到后级寄存器输出端。
原文地址在此 http://blog.chinaaet.com/detail/3618.html
1)寄存器-寄存器(Register-to-Register)路径检查:
Clock Setup Slack = Data Required Time – Data Arrival Time
Data Arrival Time = Launch Edge + Clock Network Delay Source Register +μtco + Register-to-Register Delay
Data Required Time = Clock Arrival Time – μtsu – Setup Uncertainty
Clock Arrival Time = Latch Edge + Clock Network Delay to Destination Register
2)输入引脚-寄存器(Pin-to-Register)路径检查:
Clock Setup Slack Time = Data Required Time – Data Arrival Time
Data Arrival Time = Launch Edge + Clock Network Delay to Source Register + Input Maximum Delay of Pin + Pin-to-Register Delay
Data Required Time = Clock Arrival Time – μtsu
Clock Arrival Time = Latch Edge + Clock Network Delay to Destination Register
3) 寄存器-输出引脚(Register-to-Pin)路径检查:
Clock Setup Slack Time = Data Required Time – Data Arrival Time
Data Arrival Time = Launch Edge + Clock Network Delay to Source Register + μtco + Register-to-Pin Delay
Data Required Time = Clock Arrival Time – Output Maximum Delay of Pin
Clock Arrival Time = Latch Edge + Clock Network Delay to Destination Register
从上面三组公式可以看出:Data Arrival Time的前两项是相同的;Data Required Time的第一项是相同的;Clock Arrival Time的公式是相同的。
所以,第一组公式可以归纳如下:
Clock Setup Slack Time = Data Required Time – Data Arrival Time
Data Arrival Time = 时钟到达前级寄存器的时刻 + 前级寄存器时钟到后级寄存器数据输入的延迟
Data Required Time = 时钟到达后级寄存器的时刻 – 后级寄存器的建立时间
其中,后两个公式的第二项在其他情况下适当修改即可。
这就和一些书中讲到时序分析时采用的公式一致了。
与大家共同讨论。以下橘色字为本人的理解:
此处以建立时间为例,分析下面三组公式在时序约束中的意义,及其关系。
以下公式,本质上都是一样的,即通过建立(保持)时间裕量的范围,计算出FPGA中所应施加的合理时序约束。原理其实只有一个,即建立和保持时间不违规,即:Clock Setup Slack = Data Required Time – Data Arrival Time 大于0(保持时间同理)。
为何将建立时间检查分为三组?因为分析的对象的模型不同,有时分析路径都在FPGA内部,有时输出在FPGA内部、输入在外部,还有时输入在内部、输出在外部。因此,才出现了以下三种不同路径的分析。
为何引入input/output delay,也许是因为为了便于将外部各种路径(外围器件、PCB等)统一起来,给分析工具一个总的延时,使之便于分析调整。
需要特别指出的一点是:由于时序分析是针对时钟驱动的电路进行的,所以分析的对象一定是“寄存器-寄存器”对。在分析涉及到I/O的时序关系对时,看似缺少一个寄存器分析对象,构不成“寄存器-寄存器” 对,其实是穿过FPGA的I/O引脚,在FPGA外部虚拟了一个寄存器作为分析对象。
所以分析路径,均为前级寄存器始终端,到后级寄存器输出端。
