打印

《原创》 offset理解

[复制链接]
2489|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
钻研的鱼|  楼主 | 2011-6-7 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
offsetxilinx时序约束里面是非常重要的一个参量。正确理解offset各种参数,对于高速设计的稳定性和可靠性非常关键。
参考文献:
What are OFFSET Constraints?
WP237 (v1.0) Xilinx


OFFSET IN BEFORE或者Pad to Setup: 约束外部时钟和外部输入数据时间关系,以满足内部触发器的setup时间,如图1
所示。



1

OFFSET OUT AFTER或者Clock-to-Out: 约束外部时钟pad和外部输出数据pad时间关系,以满足下游器件的setup/hold时间,如图2
所示。



2


FPGA内部可以被offset约束的路径如图3所示:

3

OFFSET IN约束路径:从输入pad到同步单元
OFFSET OUT约束路径:从同步单元到输出pad
如果不同的同步单元需要不同的offset约束,则可以用TIMEGRP属性。
TIMEGRP AB = RISING FFS;
TIMEGRP C = FALLING FFS
如图4所示:

4
OFFSET IN约束:定义Pad-To-Setup时序要求(注意padfpga的外部物理引脚,和pin有区分)。OFFSET IN是外部时钟到数据时序关系,它会自动计算时钟延迟、时钟沿、DLL/DCM引入的相位调整等。假设时钟周期是20ns,内部用DCMclk90度时钟,约束修改为:
最初约束:NET "PAD_IN" OFFSET = IN 10 BEFORE "PADCLKIN";
修改约束:NET "PAD_IN" OFFSET = IN 15 BEFORE "PADCLKIN";
OFFSET IN约束条件:
对于D触发器的setup时间:
TData + TSetup - TClock <= Toffset_IN_BEFORE

对于D触发器的hold时间:
TClock – Tdata + Thold <= Toffset_IN_BEFORE_VALID
5

所示:


5
一个实例:
TIMEGRP DATA_IN OFFSET IN = 1 VALID 3 BEFORE CLK TIMEGRP FF_RISING;







OFFSET OUT约束:主要定义clock-to-pad时间要求,即时钟PAD到数据PAD的延迟,如图6所示:保证内部所有延迟不超过OFFSET OUT约束。当使用DLL/DCM,软件会自动计算时钟相位及延迟。譬如时钟周期是20ns,当输出触发器使用90°相位的时钟,
初始约束:NET "PAD_OUT" OFFSET = OUT 15 AFTER "PADCLKIN";应修改为
NET "PAD_OUT" OFFSET = OUT 10 AFTER "PADCLKIN";


6
Toffset_OUT_AFTER考虑条件:
TQ + TClock2Out + TClock <= Toffset_OUT_AFTER
TQ:触发器的输出端Q经过一些逻辑组合,输出到PAD延迟
TClock2Out:触发器的输出在clock上升沿的延迟
TClockclock延迟
一个实例如图7所示:


7
Slack = (Requirement - (Clock Arrival + Clock Path + Data Path))
OFFSET OUT BEFORE:定义数据输出时间。clock PERIOD减去OFFSET,决定从同步单元到管脚PAD的数据传播延迟可用时间,
可以想象为在下一个时钟沿前数据离开器件的时间。
OFFSET OUT约束确保最大的延迟(CLK_SYS to COMP)加上数据通道COMP to Q_OUT最大延迟,不超过时钟周期减去被标记的offset
TQ + TClock2Out + TClock <= TPeriod – Toffset_OUT_BEFORE


很奇怪:为何没有OFFSET OUT valid
        另外:Toffset_OUT_AFTER 是不是就等于TPeriod Toffset_OUT_BEFORE

offset 图片.pdf

148.18 KB

评分
参与人数 1威望 +2 收起 理由
SuperX-man + 2

相关帖子

沙发
21IC之星| | 2011-6-7 21:26 | 只看该作者
沙发
鱼老兄的图片还是没弄好

使用特权

评论回复
板凳
edacsoft| | 2011-6-8 11:54 | 只看该作者
很奇怪:为何没有OFFSET OUT valid?
        另外:Toffset_OUT_AFTER 是不是就等于TPeriod – Toffset_OUT_BEFORE?

我以为:
1、为何没有OFFSET OUT valid?
data从fpga出来的,所以都是时钟周期同步的,只存在之间到达pin延时不同,不存在valid概念,
无法要求data valid多长时间。
2、Toffset_OUT_AFTER 是不是就等于TPeriod – Toffset_OUT_BEFORE?
是的,Toffset_in也是一样的。

使用特权

评论回复
地板
钻研的鱼|  楼主 | 2011-6-8 15:01 | 只看该作者
关于第一个问题:fpga出来的数据会送到下游器件,offset out一般指输出来的数据pad相对于时钟pad的最大延迟,譬如一组数据线,offset out 时间为3ns,data0可能延迟2ns,data1可能延迟1ns,都满足于fpga的时序约束,但对于下游器件,他也需要setup/hold时间,setup时间可能会由offset out时间计算出,但hold时间呢?假设某个datan的延迟时间为0ns,这也满足fpga时序约束,但对于下游器件的hold时间就不一定满足!
2、我的理解也是这样

使用特权

评论回复
5
edacsoft| | 2011-6-8 16:41 | 只看该作者
关于第一个问题,嗯,您说的对:setup时间可能会由offset out时间计算出,但hold时间呢?
这个问题也一直困惑着我,不光是offset out约束,其实您想想period约束也一样有这个问题。
期待高人的解答。

使用特权

评论回复
6
xiaojj2005| | 2011-6-10 22:39 | 只看该作者
没有图片哦:)

使用特权

评论回复
7
AutoESL| | 2011-6-12 13:21 | 只看该作者
没有图片

使用特权

评论回复
8
AutoESL| | 2011-6-12 13:22 | 只看该作者
应该是直接从网上拷贝过来的
lz提供一下连接地址吧

使用特权

评论回复
9
lipopo| | 2011-6-13 16:24 | 只看该作者
楼主发下链接

使用特权

评论回复
10
lipopo| | 2011-6-13 16:24 | 只看该作者
图片有的没有

使用特权

评论回复
11
vivisa| | 2011-6-19 21:45 | 只看该作者
:(无图。

使用特权

评论回复
12
明天我还来| | 2011-6-19 22:05 | 只看该作者
;P

使用特权

评论回复
13
kakio| | 2011-6-20 13:30 | 只看该作者
我要图图

使用特权

评论回复
14
kakio| | 2011-6-20 13:30 | 只看该作者
哎呀呀

使用特权

评论回复
15
爱在2012| | 2011-6-20 16:29 | 只看该作者
有啊,不是在底下了吗?

使用特权

评论回复
16
AutoESL| | 2011-6-30 13:34 | 只看该作者
好好学习,很实用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

967

帖子

4

粉丝