在本篇博文中,我们来聊聊“rqs_clock-12”时钟设置建议以及它如何帮助达成时序收敛。
要求:
掌握如何生成和应用 report_qor_suggestions。
基本掌握 clock_low_fanout 约束。
rqs_clock-12:
rqs_clock-12 建议属于专为 ultrascale 和 ultrascale+ 器件生成的自动增量式友好建议。
它使用“clock_low_fanout”属性,并将该属性分配给时钟信号线或者一组寄存器,由全局时钟缓冲器根据其负载数目来驱动。
将该属性应用于时钟信号线时,全局时钟缓冲器的负载将被约束并放置到单个时钟区域内。
将该属性应用于一组寄存器时,在 opt_design 期间创建的现有全局时钟缓冲器的基础上,还会并行复制一个全新的全局时钟缓冲器。新全局时钟缓冲器的负载仅适用于该属性应用到的各组寄存器,并约束到单个时钟区域。
现在我们来看看 rqs_clock-12 建议如何应用 clock_low_fanout 来降低时钟偏差,进而帮助设计达成时序收敛。
假设已布线的设计中存在如下两个场景,其中存在错误的时钟偏差,导致从寄存器到全局缓冲器的控制管脚 (ce/clr) 的路径上存在时序违例。
场景 1:
在这条时序收敛失败的路径中,时钟缓冲器 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 后的板级原理图:
在 opt_design 的 bufg 最优化阶段,在为 clock_low_fanout 属性创建的全局时钟缓冲器上应该会显示一条消息。
例如:
语法:
场景 2:
在这条时序收敛失败的路径中,时钟缓冲器 bufgce1 (clkout1_bufg_inst)、寄存器及其驱动程序 bufgce2 同样全都布局在同一个时钟区域内。bufgce1 驱动寄存器的扇出较低 (16),但负载分布于多个时钟区域(以红色标记)。由此导致该工具所选的 clock_root 不同于驱动它的全局时钟缓冲器,进而导致时钟信号线延迟过高且时钟偏差过高。
场景 2 的解决办法:
当 bufgce1 扇出较低 (<2000) 但时钟负载遍布多个时钟区域时,对 bufgce1 直接驱动的时钟信号线应用 clock_low_fanout 即可将其所有负载的布局都约束到单个时钟区域内。这将减少时钟信号线延迟。
现在,时钟源和负载都位于相同时钟区域内,因此 clock_low_fanout 会强制将 clock root 包含在相同时钟区域内,从而帮助降低时钟偏差。
对时钟信号线应用 clock_low_fanout 后的板级原理图:
语法:
总结:
在本篇博文中,我们学习了 2 个设计示例,其中演示了如何生成 rqs_clock-12 建议以将 clock_low_fanout 属性应用于由全局时钟缓冲器直接驱动的寄存器或时钟信号线。
物联网中的传感器和执行器有哪些类型
宝塔Nginx挂马在线检测
采用Ioff的逻辑门和开关—让您进行掉电操作
故障特征提取的方法研究
异步电路中的时钟同步处理方法
RQS_CLOCK-12时钟设置建议
VR/AR与5G是最佳搭档?
受益于iPhone5,七家公司三季报大幅增长
vivoX23幻彩版评测 值不值得买
发布!全球卓越超低相噪微波信号源!
泰克示波器余晖的功能
RK3588和S922X哪个好?RK3588和S922X的区别
什么是EMC测试_如何进行EMC测试
致敬三星?双侧曲面屏幕iPhone真的要来了!
匠心独运,以人为本,三星智能门锁人性化改进
2020年将是我国央行数字货币全面发展的一年
可编程高速直流电子负载仪概述
2.4GHz与5GHz Wi-Fi:哪个更快?
一文解析GPIO外部中断输入检测
对于绝缘子串,它的电压分布规律是什么