0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

赛灵思关于I/O约束法的简要概括(下)

Xilinx赛灵思官微 来源:djl 作者:赛灵思 2019-07-25 11:01 次阅读

Input接口类型和约束

FPGA做Output的接口时序同样也可以分为系统同步与源同步。在设置XDC约束时,总体思路与Input类似,只是换成要考虑下游器件的时序模型。另外,在源同步接口中,定义接口约束之前,需要用set_generated_clock先定义送出的随路时钟

系统同步接口

与Input的系统同步接口一样,FPGA做Output接口的系统同步设计,芯片间只传递数据信号,时钟信号的同步完全依靠板级设计来对齐。所以设置约束时候要考虑的仅仅是下游器件的Tsu/Th和数据在板级的延时。

赛灵思关于I/O约束法的简要概括(下)


上图是一个SDR上升沿采样系统同步接口的Output约束示例。其中,-max后的数值是板级延时的最大值与下游器件的Tsu相加而得出,-min后的数值则是板级延时的最小值减去下游器件的Th而来。

源同步接口

与源同步接口的Input约束设置类似,FPGA做源同步接口的Output也有两种方法可以设置约束。

方法一我们称作Setup/Hold Based Method,与上述系统同步接口的设置思路基本一致,仅需要了解下游器件用来锁存数据的触发器的Tsu与Th值与系统板级的延时便可以设置。方法二称作Skew Based Method,此时需要了解FPGA送出的数据相对于时钟沿的关系,根据Skew的大小和时钟频率来计算如何设置 Output约束。

具体约束时可以根据不同的已知条件,选用不同的约束方式。一般而言,FPGA作为输出接口时,数据相对时钟的Skew关系是已知条件(或者说,把同步数据相对于时钟沿的Skew限定在一定范围内是设计源同步接口的目标),所以方法二更常见。

Vivado IDE的Language Templates中关于源同步输出接口的XDC约束模板包含了以上两种方式的设置方法。

方法一Setup/Hold Based Method

Setup/Hold Method的计算公式如下,可以看出其跟系统同步输出接口的设置方法完全一样。如果换成DDR方式,则可参考上一篇I/O约束方法中关于Input源同步DDR接口的约束,用 两个可选项-clock_fall与 -add_delay来添加针对时钟下降沿的约束值。

赛灵思关于I/O约束法的简要概括(下)

赛灵思关于I/O约束法的简要概括(下)

如果板级延时的最小值(在源同步接口中,因为时钟与信号同步传递,所以板级延时常常可以视作为0)小于接收端寄存器的Th,这样计算出的结果就会在 -min 后出现负数值,很多时候会让人误以为设置错误。其实这里的负数并不表示负的延迟,而代表最小的延迟情况下,数据是在时钟采样沿之后才有效。同样的,-max后的正数,表示最大的延迟情况下,数据是在时钟采样沿之前就有效了。

这便是接口约束中最容易混淆的地方,请一定牢记set_output_delay中 -max/-min的定义,即时钟采样沿到达之前最大与最小的数据有效窗口。

如果我们在纸上画一下接收端的波形图,就会很容易理解:用于setup分析的 -max之后跟着正数,表示数据在时钟采样沿之前就到达,而用于hold分析的 -min之后跟着负数,表示数据在时钟采样沿之后还保持了一段时间。只有这样才能满足接收端用于锁存接口数据的触发器的Tsu和Th要求。

赛灵思关于I/O约束法的简要概括(下)


方法二 Skew Based Method

为了把同步数据相对于时钟沿的Skew限定在一定范围内,我们可以基于Skew的大小来设置源同步输出接口的约束。此时可以不考虑下游采样器件的Tsu与Th值。

赛灵思关于I/O约束法的简要概括(下)

赛灵思关于I/O约束法的简要概括(下)

I/O约束法下

我们可以通过波形图来再次验证 set_output_delay中 -max/-min的定义,即时钟采样沿到达之前最大与最小的数据有效窗口。

赛灵思关于I/O约束法的简要概括(下)

DDR接口的约束设置

DDR接口的约束稍许复杂,需要将上升沿和下降沿分别考虑和约束,以下以源同步接口为例,分别就Setup/Hold Based 方法和Skew Based方法举例。

方法一Setup/Hold Based Method

赛灵思关于I/O约束法的简要概括(下)


已知条件如下:

时钟信号 src_sync_ddr_clk的频率: 100 MHz

随路送出的时钟src_sync_ddr_clk_out的频率: 100 MHz

数据总线: src_sync_ddr_dout[3:0]

接收端的上升沿建立时间要求 ( tsu_r ) :7 ns

接收端的上升沿保持时间要求 (thd_r ) :3 ns

接收端的下降沿建立时间要求 (tsu_f) :6 ns

接收端的下降沿保持时间要求 (thd_f ) :4 ns

板级走线延时:0 ns

可以这样计算输出接口约束:已知条件包含接收端上升沿和下降沿的建立与保持时间要求,所以可以分别独立计算。上升沿采样数据的 -max 是板级延时的最大值加上接收端的上升沿建立时间要求(tsu_r),对应的-min 就应该是板级延时的最小值减去接收端的上升沿保持时间要求(thd_r);下降沿采样数据的 -max 是板级延时的最大值加上接收端的下降沿建立时间要求(tsu_f),对应的-min 就应该是板级延时的最小值减去接收端的下降沿保持时间要求(thd_f)。

所以最终写入XDC的Output约束应该如下所示:

赛灵思关于I/O约束法的简要概括(下)

方法二 Skew Based Method

赛灵思关于I/O约束法的简要概括(下)


已知条件如下:

时钟信号 src_sync_ddr_clk的频率: 100 MHz

随路送出的时钟src_sync_ddr_clk_out的频率: 100 MHz

数据总线: src_sync_ddr_dout[3:0]

上升沿之前的数据skew ( bre_skew ) :4 ns

上升沿之后的数据skew ( are_skew ) :6 ns

下降沿之前的数据skew ( bfe_skew ) :7 ns

下降沿之后的数据skew ( afe_skew ) :2 ns

可以这样计算输出接口约束:时钟的周期是10ns,因为是DDR方式,所以数据实际的采样周期是时钟周期的一半;上升沿采样的数据的 -max 应该是采样周期减去这个数据的发送沿(下降沿)之后的数据skew即afe_skew,而对应的-min 就应该是上升沿之前的数据skew值bre_skew ;同理,下降沿采样数据的 -max 应该是采样周期减去这个数据的发送沿(上升沿)之后的数据skew值are_skew,而对应的-min 就应该是下降沿之前的数据skew值bfe_skew 。

所以最终写入XDC的Output约束应该如下所示:

赛灵思关于I/O约束法的简要概括(下)


对以上两种方法稍作总结,就会发现在设置DDR源同步输出接口时,送出的数据是中心对齐的情况下,用Setup/Hold Based 方法来写约束比较容易,而如果是边沿对齐的情况,则推荐使用Skew Based方法来写约束。

在Vivado中设置接口约束

FPGA的接口约束种类多变,远非一篇短文可以完全覆盖。在具体设计中,建议用户参照Vivado IDE的Language Templates 。其中关于接口约束的例子有很多,而且也是按照本文所述的各种分类方法分别列出。

具体使用时,可以在列表中找到对应的接口类型,按照模板所示调整成自己设计中的数据,然后可以方便地计算出实际的约束值,并应用到FPGA工程中去。

赛灵思关于I/O约束法的简要概括(下)


自2014.1版开始,Vivado还提供一个Constraints Wizard可供用户使用。只需打开综合后的设计,然后启动Wizard,工具便可以根据读到的网表和设计中已有的XDC时序约束(也可以任何约束都不加而开始用Wizard)一步步指引用户如何添加Timing约束,包括时钟、I/O 以及时序例外约束等等。

Constraints Wizard的调出方法和界面如下图所示。

赛灵思关于I/O约束法的简要概括(下)

UCF与XDC的区别

《XDC约束技巧》开篇描述XDC基础语法时候曾经提到过设置接口约束时UCF与XDC的区别,简单来讲,UCF是原生的FPGA约束,所以分析问题的视角是FPGA本身,而XDC则是从系统设计的全局角度来分析和设置接口约束。

以最基础的SDR系统同步接口来举例。输入侧的设置,UCF用的是OFFSET = IN,而XDC则是set_input_delay 。

赛灵思关于I/O约束法的简要概括(下)

输出侧的设置,UCF用的是OFFSET =OUT,而XDC则是set_output_delay 。

赛灵思关于I/O约束法的简要概括(下)

如果需要从旧设计的UCF约束转到XDC约束,可以参考上述例子。以一个采样周期来看,UCF中与XDC中设置的接口约束值加起来正好等于一个周期的值。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    172

    文章

    5851

    浏览量

    171916
  • 网络
    +关注

    关注

    14

    文章

    7519

    浏览量

    88636
  • 约束
    +关注

    关注

    0

    文章

    82

    浏览量

    12718
收藏 人收藏

    评论

    相关推荐

    物理约束实践:I/O约束

    I/O约束I/O Constraints)包括I/O
    的头像 发表于 11-18 16:42 1060次阅读
    物理<b class='flag-5'>约束</b>实践:<b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>约束</b>

    790.被并入AMD对中国FPGA厂商有什么意义?

    fpga
    小凡
    发布于 :2022年10月05日 02:52:44

    FPGA设计时序约束指南【工程师力作】

    的一条或多条路径。在 FPGA 设计中主要有四种类型的时序约束:PERIOD、OFFSET IN、OFFSET OUT 以及 FROM: TO(多周期)约束
    发表于 03-01 15:08

    Xilinx方案

    能做方案的,请联系
    发表于 01-21 19:31

    高价回收系列IC

    高价回收系列IC长期回收系列IC,高价求购
    发表于 04-06 18:07

    如何使用FPGA加速包处理?

    FAST包处理器的核心功能是什么如何使用FPGA加速包处理?
    发表于 04-30 06:32

    回收Xilinx芯片 收购芯片

    回收Xilinx带板芯片, 回收工厂XILINX系列IC:XC3S1500FGG676EGQ、XC5VLX50-1FFG676、XC5VLX110-1FFG676C
    发表于 12-17 10:02

    FPGA设计时序约束指南

    FPGA设计时序约束指南,下来看看
    发表于 05-11 11:30 48次下载

    FPGA设计约束技巧之XDC约束I/O篇(

    XDC中的I/O约束虽然形式简单,但整体思路和约束方法却与UCF大相径庭。加之FPGA的应用特性决定了其在接口上有多种构建和实现方式,所以从UCF到XDC的转换过程中,最具挑战的可以说
    发表于 11-17 19:01 7308次阅读
    FPGA设计<b class='flag-5'>约束</b>技巧之XDC<b class='flag-5'>约束</b>之<b class='flag-5'>I</b>/<b class='flag-5'>O</b>篇(<b class='flag-5'>下</b>)

    收购深鉴科技_收购目的及发展

    本文首先介绍了,其次介绍了收购深鉴科技的过程以及目的,最后介绍了
    的头像 发表于 07-18 11:19 4871次阅读

    关于I/O约束简要概括(上)

    可以这样计算输入接口约束:DDR方式数据实际的采样周期是时钟周期的一半;上升沿采样的数据(Rise Data)的 -max 应该是采样周期减去这个数据的发送沿(下降沿)之前的数据有效窗口值dv_bfe,而对应的-min 就应该是上升沿之后的数据有效窗口值dv_are。
    的头像 发表于 07-25 10:59 3448次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>灵</b><b class='flag-5'>思</b><b class='flag-5'>关于</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>约束</b><b class='flag-5'>法</b>的<b class='flag-5'>简要</b><b class='flag-5'>概括</b>(上)

    的目标和发展

    公司亚太区销售与市场副总裁杨飞表示,的SDx系列仍会持续发展。毫无疑问,这会帮助
    的头像 发表于 07-24 17:58 3303次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>灵</b><b class='flag-5'>思</b>的目标和发展

    PL 和 PS IBIS 模型解码器

    为 FPGA 和 MPSoC 器件中所有受支持的 I/O 标准提供了 I/
    的头像 发表于 10-15 18:29 2454次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>灵</b><b class='flag-5'>思</b> PL 和 PS IBIS 模型解码器

    XDC约束技巧之I/O篇(上)

    《XDC 约束技巧之时钟篇》中曾对 I/O 约束做过简要概括,相比较而言,XDC 中的
    的头像 发表于 04-06 09:53 1279次阅读

    XDC约束技巧之I/O篇(

    继《XDC 约束技巧之 I/O 篇(上)》详细描述了如何设置 Input 接口 约束后,我们接着来聊聊怎样设置 Output 接口约束,并分
    的头像 发表于 04-10 11:00 1084次阅读