如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.
分类: 嵌入式
2017-01-09 09:22:28
第一种:时钟源为高速、目的时钟为低速的
1:多重路径为2,保持为1.
上图给定的条件:
1. 高速时钟到低速时钟
2. 两个时钟有2ns的offset
3. 源端时钟是目的端时钟频率两倍
如果不使用多周期约束,quartus II的时序分析工具将按照数据建立时间setup time=2ns(即offset时间)要求进行检查,如果设置了多周期路径为2,那么建立时间要求就放松了,就可以延伸到目的端的第二个时钟上升沿处(即14ns)(Note:建立时间即:数据必须要在14ns之前从源端到达目的端,即数据延时小于14ns)
上图将Multicycle Hold =1,这样quartus II时序分析时,将检查如下两个保持时间关系:
Hold Check1:(空心箭头,检查源端下个Launch edge<6ns>发出的数据,不会被目的端当前的Latch edge<14ns>锁存),最小的数据延时为8ns(14ns-6ns)(Note:即数据经过Tco+Tdata延时需要大于8ns,电路才能正常工作 )
Hold Check2:(实心箭头,检查源端此刻Launch edge<0ns>发出的数据,不会被目的端上一次Latch edge<2ns>锁存),最小数据延时为2ns(2ns-0ns)(Note:即数据经过Tco+Tdata延时需要大于2ns,电路才能正常工作 )
所以为了满足该电路正常工作,数据延时必须大于8ns,小于14ns
2:多重路径为2,保持为2.
看下面一副图的设定。
setup time 仍然是14ns。
将多周期保持(Multicycle Hold)设置为2,那么计算保持时间(Hold time),检查的参考时钟要向前移动一个目的端的时钟周期。quartus II 分析时序时,检查如下两个保持时间:
Hold Check1:空心箭头,检查源端下个Launch edge<6ns>发出的数据,不会被目的端当前的Latch edge<2ns>锁存,最小的数据延时为-4ns(2ns-6ns)。
Hold Check2:实心箭头,检查源端此刻Launch edge<0ns>发出的数据,不会被目的端前一个Latch edge<-10ns>锁存,最小的数据延时为-10ns(-10ns-0ns)。
所以为了满足该电路正常工作,数据延时必须大于-4n(为负表示肯定能满足,延时不肯能为负数),小于14ns(只需满足data delay 小于14ns即可)。
可以看出在Multicycle Hold=2时,约束条件更加宽松了。
第二种 :时钟源为低速、目的时钟为高速
两个时钟之间也有2ns的offset。
这里设置Multicycle =4,那么其建立时间向后延伸4个周期,Setup time=(24ns-2ns)=22ns
Multicycle Hold=1,同样这里检查两个保持时间关系
Hold Check1:空心箭头,检查源端下个Launch edge<14ns>发出的数据,不会被目的端当前的Latch edge<24ns>锁存。最小的数据延时为10ns(24ns-14ns)。
Hold Check2:实心箭头,检查源端此刻Launch edge<2ns>发出的数据,不会被目的端前一个Latch edge<18ns>锁存。最小的数据延时为16ns(18ns-2ns)。
这样数据延时必须大于16ns,小于22ns。
原文链接: