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

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

3天内不再提示

Vivado中如何做set_input_delay约束

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-19 19:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言
在STA中,要分析上游器件和FPGA之间的时序关系就得指定input delay。

流程
什么是input delay:约定上游芯片输出及时钟之间的关系。约束的目的就是看适配后的时序关系是什么样的。

以下以源同步接口举例,上游芯片发送data和随路时钟到下游FPGA芯片端口进行接收,使用解串原语对数据进行解串。

Vivado中如何做set_input_delay约束

这里使用的DCLK为:4.464ns。时钟与数据关系是DDR中心对齐。

Vivado中如何做set_input_delay约束

40M下的建立保持时间如下:Tsu=0.72ns,Tho = 0.82ns。

Vivado中如何做set_input_delay约束

上vivado中语言模板中找模板。把Tsu、Tho抄进去对应dv_bre、dv_are、dv_bfe、dv_afe。dv_bre指的是时钟沿前稳定的时间,这个时间可以用示波器测出来,或者看datasheet上的建立保持时间(这之间的数据肯定是稳定的)。

Vivado中如何做set_input_delay约束

得到:min=Tho=0.82ns,max=T/2-Tsu=4.464/2-0.72=1.512ns;这里假定时钟和数据到FPGA的路径长度是一致的(由PCB布线保证)。

set_input_delay -clock [get_clocks adc_dco_clk] -clock_fall -min -add_delay 0.820 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -clock_fall -max -add_delay 1.512 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -min -add_delay 0.820 [get_ports i_data_ch0_p]
set_input_delay -clock [get_clocks adc_dco_clk] -max -add_delay 1.512 [get_ports i_data_ch0_p]

编译分析STA结果:

本次时钟路径:IBUFDS→BUFIO→ISERDESE 差分时钟经过IBUFDS变为单端,经过IOB中的BUFIO送入ISERDESE。

Vivado中如何做set_input_delay约束

本次数据路径:IBUFDS→ISERDESE 差分数据经过IBUFDS变成单端送入ISERDESE。

Vivado中如何做set_input_delay约束

则要求数据在2.904ns时候到来,但数据抵达时刻是1.559ns,出现了保持违例:1.559-2.904 = -1.345ns。

也就是说数据来早了,提前撤销导致了保持违例。另一个角度说是时钟来晚了。

所以要解决这个问题,可以让数据晚点来,或者让时钟早点来。

对于片内逻辑间的保持不满足可以插LUT1,但接口IOB部分就没法插了,于是上网上找方法。

参考前面参考链接可知:可使用IODELAY原语对数据进行相应的延时,达到保持时间的满足。

这里1.345ns/78ps=18拍,即IODELAY至少需要延迟18拍;

时序约束文件中参考下述图片写,但我还没有验证过,待验证,理论可行,估计就可以STA通过了。

Vivado中如何做set_input_delay约束

这个延时可以通过时序训练或者手动调节,找寻合适点。具体可参考:xapp524-serial-lvds-adc-interface.pdf

如果是动态调节TAP值,那么STA就没卵用了,STA的前提是假定TAP值为定值。

审核编辑:汤梓红

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

    关注

    1655

    文章

    22283

    浏览量

    630263
  • 芯片
    +关注

    关注

    462

    文章

    53534

    浏览量

    459089
  • Vivado
    +关注

    关注

    19

    文章

    846

    浏览量

    70471
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    请问如何在e203安装linux操作系统?

    本人用的板子是Xilinx的XC7A100TFGG484-2L,编译软件是vivado2017.4。目前比特流已经成功生成,我已经把其固化进了板子。现在的我想在我固化后的板子里面装一个linux操作系统,应该如何做
    发表于 11-07 07:32

    win10环境下使用vivado生成.bit与.mcs文件

    到工程。 5.添加约束文件。将fpga目录下的constrs文件夹复制到工程,然后添加约束文件。 6.将fpga目录下的ip.tcl和cfgmem.tcl文件复制到工
    发表于 10-27 08:25

    时序约束问题的解决办法

    在使用vivado对 Verilog 代码进行综合后,点击“SYNTHESIS”下的“Report Timing Summary”,可以查看综合后的时序报告,查看 Setup Time 和 Hold
    发表于 10-24 09:55

    蜂鸟e203移植fpga上如何修改约束文件

    第一步:我们先导入官方网站蜂鸟e203的代码提供的e203添加进去,并加入ddr200T的 src.文件的system.v文件并加入约束文件(constrs文件夹之中
    发表于 10-24 07:18

    时序约束管脚绑定不成功问题

    {[新手提问]: 关于引脚绑定问题}在绑定vivado引脚时,选项没有原理图可绑定的引脚,需要绑定的引脚在l/O Bank88,但是我需要绑定的引脚只能绑定l/O bank65上的引脚,引脚选择
    发表于 08-21 17:18

    请问IR900路由器如何做端口映射?

    IR900 路由器如何做端口映射?
    发表于 08-06 08:29

    Vivado无法选中开发板的常见原因及解决方法

    对应的器件信息和约束文件(XDC),大大简化工程初始化流程。然而,在某些情况下,我们可能会发现 Vivado 的界面无法选中目标开发板,导致只能手动选择器件。那么,遇到这种情况该如何处理呢?
    的头像 发表于 07-15 10:19 1389次阅读
    <b class='flag-5'>Vivado</b>无法选中开发板的常见原因及解决方法

    PCB Layout 约束管理,助力优化设计

    本文重点PCBlayout约束管理在设计的重要性Layout约束有助避免一些设计问题设计可以使用的不同约束在PCB设计规则和
    的头像 发表于 05-16 13:02 822次阅读
    PCB Layout <b class='flag-5'>约束</b>管理,助力优化设计

    FPGA时序约束之设置时钟组

    Vivado时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束设置了时钟组或false路径。使用set_clock_gro
    的头像 发表于 04-23 09:50 967次阅读
    FPGA时序<b class='flag-5'>约束</b>之设置时钟组

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-input子系统之基于input子系统的光线传感器驱动

    BH1726_VIO_MAX_UV(1950000) #define ALS_SET_MIN_DELAY_TIME(100) 寄存器参数相关定义,从Register MAP表可以看到ADC_EN由寄存器0x80的第
    发表于 04-16 11:05

    飞凌嵌入式ElfBoard ELF 1板卡-input子系统之基于input子系统的光线传感器驱动

    ALS_SET_MIN_DELAY_TIME(100) 寄存器参数相关定义,从Register MAP表可以看到ADC_EN由寄存器0x80的第1位来控制,下表可以得知0表示ADC测量停止,1表示ADC测量开始。所以定义ADC_EN_ON
    发表于 04-16 10:39

    飞凌嵌入式ElfBoard ELF 1板卡-input子系统之基于input子系统的按键驱动

    = gpio_to_irq(gpio);// 设置支持按键事件set_bit(EV_KEY, input_dev->evbit);// 设置支持按键类型为KEY_ENTERset_bit
    发表于 04-15 10:58

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束。时序约束文件可以直接创建或添加已存
    的头像 发表于 03-24 09:44 4385次阅读
    一文详解<b class='flag-5'>Vivado</b>时序<b class='flag-5'>约束</b>

    AMD Vivado Design Suite IDE的设计分析简介

    本文档涵盖了如何驱动 AMD Vivado Design Suite 来分析和改善您的设计。
    的头像 发表于 02-19 11:22 911次阅读
    AMD <b class='flag-5'>Vivado</b> Design Suite IDE<b class='flag-5'>中</b>的设计分析简介

    ADC08D500要一起工作Interleaving的话,需要在ADC CLK Input端各接一个Delay Line IC对吗?

    目前我们有一个问题想请教,如果我们有两颗ADC08D500要一起工作Interleaving的话,需要在ADC CLK Input端各接一个Delay Line IC对吗?
    发表于 12-12 08:39