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

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

3天内不再提示

RQS设计收敛建议ID RQS_CLOCK-12

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-12 15:44 次阅读

在先前博文在 Vivado 中利用 report_qor_suggestions 提升 QoR和利用 RQA 和 RQS 实现设计收敛中,我们了解了“Report QOR Suggestions (RQS)”(QoR 建议报告)如何借助时钟设置、使用率、拥塞和时序建议来帮助达成设计收敛。

在本篇博文中,我们来聊聊“RQS_CLOCK-12”时钟设置建议以及它如何帮助达成时序收敛。

要求:

掌握如何生成和应用report_qor_suggestions

基本掌握 CLOCK_LOW_FANOUT 约束。

RQS_CLOCK-12:

RQS_CLOCK-12 建议属于专为 UltraScale 和 UltraScale+ 器件生成的自动增量式友好建议。

它使用“CLOCK_LOW_FANOUT”属性,并将该属性分配给时钟信号线或者一组寄存器,由全局时钟缓冲器根据其负载数目来驱动。

1. 将该属性应用于时钟信号线时,全局时钟缓冲器的负载将被约束并放置到单个时钟区域内。

2. 将该属性应用于一组寄存器时,在 opt_design 期间创建的现有全局时钟缓冲器的基础上,还会并行复制一个全新的全局时钟缓冲器。新全局时钟缓冲器的负载仅适用于该属性应用到的各组寄存器,并约束到单个时钟区域。

现在我们来看看 RQS_CLOCK-12 建议如何应用 CLOCK_LOW_FANOUT 来降低时钟偏差,进而帮助设计达成时序收敛。

假设已布线的设计中存在如下两个场景,其中存在错误的时钟偏差,导致从寄存器到全局缓冲器的控制管脚 (CE/CLR) 的路径上存在时序违例。

场景 1:

100571790-306373-shixushoulian1.jpg

在这条时序收敛失败的路径中,时钟缓冲器 BUFGCE1 (clockout3_buf)、寄存器及其驱动程序 BUFGCE2 (bufce_i) 全都布局在同一个时钟区域内。驱动寄存器的 BUFGCE1 存在高扇出 (6419),且负载导致其时钟信号线遍布整个器件,如图高亮所示。

该工具所选的 CLOCK_ROOT 位置远离驱动它的全局时钟缓冲器,导致时钟信号线延迟过高且时钟偏差过高。

场景 1 的解决办法:

对寄存器应用 CLOCK_LOW_FANOUT,这样即可复制 opt_design 期间创建的原始 BUFGCE1 以创建新的 BUFGCE (clkout3_buf_replica),且仅将其用于驱动此关键寄存器。这样将把信号线约束到单个时钟区域内,从而减少时钟信号线延迟。

并且,由于时钟源和负载都位于相同时钟区域内,CLOCK_LOW_FANOUT 会强制将 clock root(时钟根)包含在相同时钟区域内,从而帮助降低时钟偏差。

对关键寄存器应用 CLOCK_LOW_FANOUT 后的板级原理图:

100571790-306374-shixushoulian2.jpg

在 opt_design 的 BUFG 最优化阶段,在为 CLOCK_LOW_FANOUT 属性创建的全局时钟缓冲器上应该会显示一条消息。

例如:
INFO: [Opt 31-1077] Phase BUFG optimization inserted 1 global clock buffer(s) for CLOCK_LOW_FANOUT.
语法:
set_property CLOCK_LOW_FANOUT TRUE [get_cells ]

场景 2:

100571790-306375-shixushoulian3.jpg

在这条时序收敛失败的路径中,时钟缓冲器 BUFGCE1 (clkout1_BUFG_inst)、寄存器及其驱动程序 BUFGCE2 同样全都布局在同一个时钟区域内。BUFGCE1 驱动寄存器的扇出较低 (16),但负载分布于多个时钟区域(以红色标记)。由此导致该工具所选的 CLOCK_ROOT 不同于驱动它的全局时钟缓冲器,进而导致时钟信号线延迟过高且时钟偏差过高。

场景 2 的解决办法:

当 BUFGCE1 扇出较低 (

现在,时钟源和负载都位于相同时钟区域内,因此 CLOCK_LOW_FANOUT 会强制将 clock root 包含在相同时钟区域内,从而帮助降低时钟偏差。

对时钟信号线应用 CLOCK_LOW_FANOUT 后的板级原理图:

100571790-306376-shixushoulian4.jpg

语法:
set_property CLOCK_LOW_FANOUT TRUE [get_nets ]

总结

在本篇博文中,我们学习了 2 个设计示例,其中演示了如何生成 RQS_CLOCK-12 建议以将 CLOCK_LOW_FANOUT 属性应用于由全局时钟缓冲器直接驱动的寄存器或时钟信号线。

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

    关注

    30

    文章

    5186

    浏览量

    118369
  • 缓冲器
    +关注

    关注

    6

    文章

    1791

    浏览量

    45055
  • 时序
    +关注

    关注

    5

    文章

    359

    浏览量

    37040
收藏 人收藏

    评论

    相关推荐

    如何在实现流程中将RQA与RQS结合使用的设计示例

    通过之前的博文,我们已经学会了如何使用 Report QoR Assessment (RQA) 和 Report QoR Suggestions (RQS) 来改进总体设计分析以及设计的时序收敛
    的头像 发表于 09-29 11:11 3693次阅读
    如何在实现流程中将RQA与<b class='flag-5'>RQS</b>结合使用的设计示例

    Pspice收敛问题

    Orcad菜鸟求助众大神,如图的仿真,U1为从英飞凌官网下载的IGBT的模型,当R1为100ohm时能正常仿真,但当R1改为50ohm时仿真则不能收敛,而且无论如何改仿真参数(retol=0.05
    发表于 09-26 00:16

    EM模型仿真中的收敛误差

    收敛误差文档。我尝试应用文档中建议的技术,例如更改OSR,使用TAHB,自动(首选)收敛模式,高级(稳健)收敛模式,将迭代更改为强大和自定义1000,直接求解器,Krylov求解器,
    发表于 10-12 17:16

    单点无法收敛后继续HB扫描

    是否有办法强制谐波平衡模拟器在收敛失败后进入下一个扫描点?在任何收敛错误之后,模拟当前停止。我正在使用带参数扫描块的TAHB。这应该导致每个扫掠点被单独计算。当一点失败时,我看不出为什么模拟器无法
    发表于 05-21 12:48

    如何进行时序收敛,即如何确保生成的内核工作在2.5GHz

    ser-des核心工作在2.5 GHz。我使用了一个简单的包装器,它有clock,reset,tx&amp; amp; rx串行信号用于环回,Tx并行数据输入和Rx并行数据输出。我该如何设置约束?请建议如何进行时序收敛,即如何确
    发表于 06-03 11:24

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

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

    美国banner邦纳Q60VR3AF2000

    QS18VN6LAFQS18VP6LAFQ45UBB63DAQSM312CVBQDPQS18VP6LDQ8QS30EVDQ45BB6LPSM312WQDT30UINAQS18VN6AF100QS18VN6DQS18VP6DS18SN6LS18SP6DLQ60VR3AF2000Q45UBB63BCQ45ULIU64BCRQS186EQS18VP6RQS186
    发表于 05-24 15:54

    HarmonyOS实战——Clock组件基本使用

    的ohos:time_zone="GMT"是默认值24小时的格式 12小时的格式,Clock 组件默认是24小时制的,所以得把默认24小时制的关掉,用下面的12小时展示a 表示
    发表于 09-06 15:52

    MCU ID的相关资料推荐

    文章目录读取 MCU ID,然后通过串口发送原理图示例参考读取 MCU ID,然后通过串口发送原理图示例main.c 文件:#include #ifndef SYSTEM_CLOCK
    发表于 02-09 07:43

    STC12C5A60S2单片机ID读取

    STC12C5A60S2 单片机 ID 读取。
    发表于 05-10 15:12 10次下载

    Report QoR Suggestions助力解决Vivado设计问题

    Report QoR Suggestions (RQS) 可识别设计问题,并提供工具开关和可影响工具行为的设计单元属性的解决方案,即便在无法自动执行解决方案的情况下也可提供文本修改建议
    的头像 发表于 01-24 17:27 2749次阅读
    Report QoR Suggestions助力解决Vivado设计问题

    单片机 STC11L02E-35I - 读取 MCU ID,然后通过串口发送

    ;#ifndef SYSTEM_CLOCK#define SYSTEM_CLOCK (1000000 * 12) // 12MHz#endiftypedef enum { FAL
    发表于 12-05 19:36 9次下载
    单片机 STC11L02E-35I - 读取 MCU <b class='flag-5'>ID</b>,然后通过串口发送

    STC12C5A60S2串口1读ID例程源代码

    STC12C5A60S2-串口1读ID例程源代码
    发表于 05-17 15:15 1次下载

    在Vivado中利用Report QoR Suggestions提升QoR

    Report QoR Suggestions (RQS) 可识别设计问题,并提供工具开关和可影响工具行为的设计单元属性的解决方案,即便在无法自动执行解决方案的情况下也可提供文本修改建议
    的头像 发表于 07-19 10:38 895次阅读
    在Vivado中利用Report QoR Suggestions提升QoR

    RQS_CLOCK-12时钟设置建议

    在本篇博文中,我们来聊聊“RQS_CLOCK-12”时钟设置建议以及它如何帮助达成时序收敛
    的头像 发表于 07-26 09:53 513次阅读
    <b class='flag-5'>RQS_CLOCK-12</b>时钟设置<b class='flag-5'>建议</b>