Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2264300
  • 博文数量: 187
  • 博客积分: 1457
  • 博客等级: 上尉
  • 技术积分: 2423
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-13 09:41
个人简介

如需要绘制PCB,设计电路可以和我联系。sunhenu@163.com.

文章分类

全部博文(187)

文章存档

2017年(2)

2016年(2)

2015年(7)

2014年(13)

2013年(80)

2012年(83)

分类: 嵌入式

2017-01-09 09:22:28


不同时钟域之间的多周期路径约束


第一种:时钟源为高速、目的时钟为低速的

1:多重路径为2,保持为1.

上图给定的条件:

1.      高速时钟到低速时钟

2.      两个时钟有2nsoffset

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>锁存),最小的数据延时为8ns14ns-6ns(Note:即数据经过Tco+Tdata延时需要大于8ns,电路才能正常工作 )

     Hold Check2:(实心箭头,检查源端此刻Launch edge<0ns>发出的数据,不会被目的端上一次Latch edge<2ns>锁存),最小数据延时为2ns2ns-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>锁存,最小的数据延时为-4ns2ns-6ns)。

     Hold Check2:实心箭头,检查源端此刻Launch edge<0ns>发出的数据,不会被目的端前一个Latch edge<-10ns>锁存,最小的数据延时为-10ns-10ns-0ns)。

所以为了满足该电路正常工作,数据延时必须大于-4n(为负表示肯定能满足,延时不肯能为负数),小于14ns(只需满足data delay 小于14ns即可)。

可以看出在Multicycle Hold=2时,约束条件更加宽松了。

第二种 :时钟源为低速、目的时钟为高速 


两个时钟之间也有2nsoffset

这里设置Multicycle =4,那么其建立时间向后延伸4个周期,Setup time=(24ns-2ns)=22ns

Multicycle Hold=1,同样这里检查两个保持时间关系

     Hold Check1:空心箭头,检查源端下个Launch edge<14ns>发出的数据,不会被目的端当前的Latch edge<24ns>锁存。最小的数据延时为10ns24ns-14ns)。

     Hold Check2:实心箭头,检查源端此刻Launch edge<2ns>发出的数据,不会被目的端前一个Latch edge<18ns>锁存。最小的数据延时为16ns18ns-2ns)。

这样数据延时必须大于16ns,小于22ns


原文链接:

阅读(4372) | 评论(0) | 转发(0) |
0

上一篇:FPGA读正交信号

下一篇:运放的相位补偿

给主人留下些什么吧!~~