深入剖析IO约束续——Output Minmum Delay的计算
0赞特权同学在《深入剖析IO约束》一 文中提出了对Altera官方基础教程里给出的Output Minmum Delay计算的不同看法。同时也和riple兄进行了一番讨论, 结果发现确实是Altera在这里的计算方法有误。而凑巧的是,特权同学在进一步观看Altera官方的《SourceSynchTiming》培训中找到了Output Minmum Delay正确的计算方法。
上面的图示中告诉我们:Output Minmum Delay =
下面来说为什么我们上次得出的Output Minmum Delay = Th - PCB布线延时 - PCB时钟偏斜= tH -
带着这个疑问,我们先再次寻找Output Minmum Delay的定义,单单从字面上我们可以这么理解:数据信号在FPGA内部从时钟launch到达输出管脚这段延时时间的最小值,它需要满足的关系就是数据传输再快也不能侵占下一级寄存器 (外部器件)的保持时间Th。理清了这个关系,我们再看对于Clock Hold Slack Time计算中如何使用这个Output Minmum Delay。
Quartus? II TimeQuest Timing Analyzer,Quartus II 8.1;Volume 3;
Data Required Time其实是说数据需要比这个时间晚到达FPGA的输出引脚,所以用数据实际到达输出引脚时间Data Arrival Time减去这个Data Required Time得出的才是 保持时间余量。那么Data Required Time和Output Minmum Delay又有怎样的关系呢?Data Required Time里 包括了Latch Edge和Clock Network Delay,这个Latch Edge其实和Data Arrival Time里的Latch Edge其 实是时钟的同一个沿(可以参看TimeQuest就一定要搞定——时序分析基本公式),而Clock Network Delay即时钟网络延时是一定要加上的。这里的Output Minmum Delay居然是需要减去的参量?这么咋一看特权也很困惑,那么把今天刚给出来 的公式套上去看看吧(或者你用上次的带进去也行,反正总有一个是对的)。
Data Required Time = Latch Edge + Clock Network Delay - (
最后我们把等式右边分成三类变量,Latch Edge这个不说了,(