原创 TimeQuest就一定要搞定——图解Multicycle Path时序余量计算(未完待续)

2008-7-24 22:34 8503 7 6 分类: FPGA/CPLD

在上一篇关于TimeQuest的文章中,我引用了Quartus II自带的一个示例。这个示例很有代表性——两个相位关系固定的时钟域、标准同步设计、复杂组合逻辑路径、调用了DSP资源。这个例子用来学习TimeQuest的用法和时序分析的基本原理是再好不过了。


除了上面提到的几个特点,这个例子中还包含了极为特殊的一种时序情况:跨时钟域的多周期时序分析。该示例中关于多周期的约束条件如下:


set_multicycle_path -end -setup -from [get_clocks {clk}] -to [get_clocks {clkx2}] 2
set_multicycle_path -end -hold -from [get_clocks {clk}] -to [get_clocks {clkx2}] 1


上面的约束中,clk是100MHz的时钟;clkx2是由clk二倍频得到的,频率是200MHz,与clk有0.5ns的相位差。根据上面的约束,从clk到clkx2的建立时间路径是2个clkx2周期,从clk到clkx2的保持时间路径是1个clkx2周期。


在跨时钟域时序分析中,只有当两个时钟之间有确定的时序关系时时序约束才有意义,这是本文要着重分析的内容;当两个时钟之间没有确定的相位关系时,约束二者之间的时序关系是没有意义的,针对这种情况,只能采用标准的跨时钟域数据传递处理,还要记得设置二者之间的时序路径为false_path。


 


图一、查看Multicycle约束为0的Hold Time时序余量计算


图二、查看Multicycle约束为1的Hold Time时序余量计算


图三、查看Multicycle约束为2的Hold Time时序余量计算


 


pdf


AN 481: Applying Multicycle Exceptions in the TimeQuest Timing Analyzer

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条