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
    +关注

    关注

    1646

    文章

    22072

    浏览量

    619840
  • 芯片
    +关注

    关注

    460

    文章

    52624

    浏览量

    442814
  • Vivado
    +关注

    关注

    19

    文章

    835

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

    FPGA时序约束之设置时钟组

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

    飞凌嵌入式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

    一文详解Vivado时序约束

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

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

    本文档涵盖了如何驱动 AMD Vivado Design Suite 来分析和改善您的设计。
    的头像 发表于 02-19 11:22 ?631次阅读
    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

    ADS1120接的PT100三线,校准应该如何做

    使用ADS1120,接的PT100三线,想问下这个的校准应该如何做。查询有资料说两线的可以在PT100短接,三线的是不是三条线都短接,经测试短接后得到的值为0,这个是不是正常。谢谢
    发表于 11-28 07:07

    ADS1281 FIR滤波器Input sample rate,Decimation factor, Decimation offset, Estimated delay是如何确定的?

    请问:ADS1281FIR滤波器 SESSION 1-4 每个阶段的Input sample rate,Decimation factor, Decimation offset, Estimated delay是如何确定的,在手册上没有发现相关的内容 感谢回答~
    发表于 11-25 06:32

    pcm1796数据delay time和pcm1748数据手册的group delay是同一个意思吗?

    pcm1796数据delay time和pcm1748数据手册的group delay是同一个意思吗? 2.是指的DAC开始输出模拟电流信号到电流信号达到目标值的某个精度范围所
    发表于 11-04 07:26

    常用时序约束使用说明-v1

    为了防止约束失败,我们在Tcl输入框验证,没有告警或者错误说明约束的写法是正确的set_max_delay 5.00 -from [get_cells key2_detect_ins
    的头像 发表于 11-01 11:06 ?607次阅读

    Vivado使用小技巧

    后的约束在之前版本已存在,那么Vivado会给出警告信息,显示这些约束会覆盖之前已有的约束;如果是新增
    的头像 发表于 10-24 15:08 ?1082次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    工程行业如何做到低碳甚至零碳

    低碳的生活方式越来越多地融入我们的日常习惯当中。但是在工程行业如何做到低碳甚至零碳呢?
    的头像 发表于 10-14 10:31 ?854次阅读

    如何做才能使TAS5631处于准备状态呢?

    我在用TAS5631音频功放,但芯片总是显示没准备好(即READY引脚总是为低电平),其他的故障引脚都是高电平,即显示无故障,我的PVDD电压已经在25V以上,我想知道如何做才能使芯片处于准备状态呢
    发表于 09-10 07:25

    sr锁存器约束条件怎样得出的

    SR锁存器是一种常见的数字逻辑电路,它具有保持信号状态的功能。在设计和分析SR锁存器时,我们需要了解其约束条件。 一、引言 在数字逻辑电路设计,锁存器是一种非常重要的组件。它能够存储一位二进制信息
    的头像 发表于 08-28 10:47 ?1764次阅读

    深度解析FPGA的时序约束

    建立时间和保持时间是FPGA时序约束两个最基本的概念,同样在芯片电路时序分析也存在。
    的头像 发表于 08-06 11:40 ?1465次阅读
    深度解析FPGA<b class='flag-5'>中</b>的时序<b class='flag-5'>约束</b>