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

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

3天内不再提示

Versal Advanced IO Wizard-部分配置存在时序收敛问题

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-07 14:14 次阅读

典型设计应该不会出现时序违例。多 bank 设计更容易受此问题影响。

对于多 bank 接口配置,如果单个 bank 同时具有 RX 和 TX,并且其中序列化因子不同,或者如果在“Advanced”选项卡上使用了 enable_all_ports,则可能发生此问题。

在 2021.1 版的 Advanced IO Wizard 中为 PLL 提供了经过更新的去歪斜电路,此更新可解决大部分时序违例。

如果仍发生违例,请考虑手动调整时钟的 PHASE 属性,直至解决违例为止。

XPLL 的 CLKIN_DESKEW 连接到 XPLL 的 CLKOUT3(XPLL 将设置为使 CLKOUT3 频率 = CLKIN 频率)。

在以下示例中,到 PHY_RDEN 的路径上存在保持时间违例,最差情况下保持时间为 0.076 ns。

您可使用以下 Tcl 命令来计算 CLKOUT3 的相移,以解决此保持时间问题,然后对该路径进行定时:

set XPLL [get_cells >]
set THSviolation 0.076
set existingPhaseShift [get_property CLKOUT3_PHASE $XPLL]
set clkout3_divide [get_property CLKOUT3_DIVIDE $XPLL]
set c_stepsize [expr 45.0/$clkout3_divide]
set phaseAdjust [expr {$THSviolation / [get_property PERIOD [get_clocks -of [get_pins -of $XPLL -filter REF_PIN_NAME=~CLKOUT3]]] * 360}]
set updatedPhaseShift [expr {$existingPhaseShift + $phaseAdjust}]
set c_phase_rounded [format %.3f [expr $c_stepsize * round($updatedPhaseShift/$c_stepsize)]]
set c_phase_rounded_margin [format %.3f [expr $c_phase_rounded + $c_stepsize]]
set_property CLKOUT3_PHASE $c_phase_rounded_margin $XPLL

report_timing -from [get_pins {design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/phy_rden_int_bli_reg[*]/C}] -to [get_pins design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/BANK_WRAPPER_INST0/NIBBLE[1].UNISIM.I_XPHY/PHY_RDEN[*]]

同样,您也可使用以下 Tcl 命令来计算 CLKOUT3 的新相移,以解决此建立时间违例,然后对该路径进行定时:

set XPLL [get_cells >]
set WNSviolation 0.076
set existingPhaseShift [get_property CLKOUT3_PHASE $XPLL]
set clkout3_divide [get_property CLKOUT3_DIVIDE $XPLL]
set c_stepsize [expr 45.0/$clkout3_divide]
set phaseAdjust [expr {$WNSviolation / [get_property PERIOD [get_clocks -of [get_pins -of $XPLL -filter REF_PIN_NAME=~CLKOUT3]]] * 360}]
set updatedPhaseShift [expr {$existingPhaseShift - $phaseAdjust}]
set c_phase_rounded [format %.3f [expr $c_stepsize * round($updatedPhaseShift/$c_stepsize)]]
set c_phase_rounded_margin [format %.3f [expr $c_phase_rounded - $c_stepsize]]
set_property CLKOUT3_PHASE $c_phase_rounded_margin $XPLL

report_timing -from [get_pins {design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/phy_rden_int_bli_reg[*]/C}] -to [get_pins design_1_i/advanced_io_wizard_0/inst/design_1_advanced_io_wizard_0_0_phy_i/inst/BANK_WRAPPER_INST0/NIBBLE[1].UNISIM.I_XPHY/PHY_RDEN[*]]

如果 Advanced IO Wizard 有多个实例(如有其它 IP 使用此 Wizard,例如 SGMII,那也计算在内),那么在某些情况下,此 Tcl 脚本可以解决 PHY_RDEN 上的保持时间问题,但会在 PHY_WREN 路径上引发建立时间问题。

2022.2 版及更低版本的 Advanced IO Wizard 默认在 PHY_WREN 路径上不使用 BLI 寄存器。如果使用该脚本解决保持时间问题导致 PHY_WREN 出现建立时间问题,请为 PHY_WREN 设置 BLI = TRUE,这样即可帮助解决此问题。

在 XDC 文件中应用下列约束,然后重新运行实现。

set_property BLI TRUE [get_cells -hierarchical phy_wren_bli_temp_*]


审核编辑:汤梓红

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

    关注

    33

    文章

    7972

    浏览量

    149244
  • pll
    pll
    +关注

    关注

    6

    文章

    750

    浏览量

    134699
  • 时序
    +关注

    关注

    5

    文章

    359

    浏览量

    37040
  • Versal
    +关注

    关注

    1

    文章

    151

    浏览量

    7556
收藏 人收藏

    评论

    相关推荐

    进行RTL代码设计需要考虑时序收敛的问题

    更快,而一个坏的代码风格则给后续时序收敛造成很大负担。你可能要花费很长时间去优化时序,保证时序收敛。拆解你的代码,添加寄存器,修改走线,最后
    的头像 发表于 11-20 15:51 3580次阅读
    进行RTL代码设计需要考虑<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>的问题

    UltraFast设计方法时序收敛快捷参考指南

    《UltraFast 设计方法时序收敛快捷参考指南》提供了以下分步骤流程, 用于根据《UltraFast设计方法指南》( UG949 )中的建议快速完成时序收敛: 1初始设计检查:在实
    的头像 发表于 11-05 15:10 4782次阅读
    UltraFast设计方法<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>快捷参考指南

    FPGA的IO时序约束分析

      在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序
    发表于 09-27 09:56 1537次阅读

    记录一次时序收敛的过程

    在之前的文章里面介绍了Canny算法的原理和基于Python的参考模型,之后呢在FPGA上完成了Canny算法的实现,可是遇到了时序收敛的问题,记录一下。
    的头像 发表于 11-18 16:38 624次阅读
    记录一次<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>的过程

    FPGA时序收敛学习报告

    经过两天的恶补,特别是学习了《第五章_FPGA时 序收敛》及其相关的视频后,我基本上明白了时序分析的概念和用法。之后的几天,我会根据一些官方的文件对时序分析进行更系统、深入的学习。先总结一下之前
    发表于 09-23 10:26

    请问如何收敛高速ADC时序

    如何收敛高速ADC时序?有哪种办法可以最大化ADC的建立和保持时间?
    发表于 04-14 06:06

    有哪些方法可以解决时序收敛的问题?

    什么是时序收敛?如何去解决物理设计中时序收敛的问题?
    发表于 04-26 06:38

    请问如何在开始码代码的时候就考虑时序收敛的问题?

    如何在开始码代码的时候就考虑时序收敛的问题?
    发表于 06-18 06:29

    fpga时序收敛

    fpga时序收敛
    发表于 03-01 13:13 23次下载

    基于MCMM技术IC时序收敛的快速实现

    如今的集成电路(Integrated Circuit,IC)设计往往要求芯片包含多个工作模式,并且在不同工艺角(corner)下能正常工作。工艺角和工作模式的增加,无疑使时序收敛面临极大挑战。本文
    发表于 10-20 15:21 3次下载
    基于MCMM技术IC<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>的快速实现

    FPGA时序收敛让你的产品达到最佳性能!

    FPGA时序收敛让你的产品达到最佳性能!
    发表于 04-10 11:38 18次下载
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>让你的产品达到最佳性能!

    关于 FPGA 中的高级 IO 时序

    高级 IO 时序
    的头像 发表于 06-22 05:05 3096次阅读
    关于 FPGA 中的高级 <b class='flag-5'>IO</b> <b class='flag-5'>时序</b>

    FPGA中IO口的时序分析详细说明

    在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束利序例外约束才能实现PCB板级的时序收敛。因此,FPGA
    发表于 01-13 17:13 11次下载
    FPGA中<b class='flag-5'>IO</b>口的<b class='flag-5'>时序</b>分析详细说明

    从已布线设计中提取模块用于评估时序收敛就绪状态

    本文旨在提供一种方法,以帮助设计师判断给定模块是否能够在空裸片上达成时序收敛。 如果目标模块无法在空裸片上达成非关联 (OOC) 时序收敛,则恐难以与设计其余
    发表于 08-02 11:37 401次阅读
    从已布线设计中提取模块用于评估<b class='flag-5'>时序</b><b class='flag-5'>收敛</b>就绪状态

    唠一唠解决FPGA约束中时序收敛的问题

    FPGA时序收敛,会出现很多随机性问题,上板测试大概率各种跑飞,而且不好调试定位原因,所以在上板测试前,先优化时序,再上板。
    发表于 06-26 15:41 1770次阅读
    唠一唠解决FPGA约束中<b class='flag-5'>时序</b>不<b class='flag-5'>收敛</b>的问题