过大的clock skew也可能导致时序违例,尤其是其数值超过0.5ns时。如下三个命令生成的报告中均可显示clock skew的具体数值。
report_design_analysis
report_timing_summary
report_timing
降低clock skew可采用如下流程操作。
图片来源: page 8, ug1292
1
异步跨时钟域路径是否被安全合理地约束
时钟关系有两种:同步时钟和异步时钟。如果发送时钟和接收时钟是同源的,例如来自于同一个mmcm,则认为二者是同步时钟,否则就按异步时钟处理。对于异步跨时钟域路径,可采用如下三者之一进行约束:
set_clock_groups
set_false_path
set_max_delay -datapath_only
2
发送时钟和接收时钟的时钟树结构是否平衡
时钟树结构其实就是时钟的拓扑结构。从发送时钟和接收时钟的角度看,平衡的时钟树结构是指二者“走过相同或等效的路径”。如下图所示,发送时钟和接收时钟来自级联的bufg的不同位置上,这就是典型的不平衡时钟树。在设计中要避免这种情形。通过tcl命令report_methodology可检查出设计中级联的bufg。
同时,还要利用好bufg_gt和bufgce_div,两者均可实现简单地分频。如下图所示,利用bufg_gt实现二分频,从而节省了mmcm。
此外,还要保持时钟路径“干净”,即不能在时钟路径上存在组合逻辑。在时序报告中,点击如下图标记的按钮,按下f4,在显示时序路径的同时也会显示该路径的时钟拓扑结构。
3
检查clock skew是否小于0.5ns
clock_delay_group可有效改善同步跨时钟域路径的clock skew,因此,xilinx建议对于关键的同步跨时钟域路径,可通过设置该属性降低clock skew,即使发送时钟和接收时钟具有相同的clock_root值。clock_delay_group的具体使用方法如下图所示,其中clk1_net和clk2_net是clock buffer的输出端连接的net。但是,避免过多使用该属性,否则会适得其反。
4
时钟是否同时驱动i/o和slice中的逻辑资源
如果时钟同时驱动i/o和slice中的逻辑资源,且负载小于2000时,可通过clock_low_fanout属性对相应的时钟net进行设置,最终可使工具将该时钟驱动的所有负载放置在同一个时钟域内。通过命令report_clock_utilization生成的报告可查看每个时钟的负载,如下图所示。
clock_low_fanout的具体使用方法如下图所示。
5
检查数据路径是否穿越slr或i/o column如果时钟负载较小且穿越slr或i/o column时,可通过pblock实施位置约束,将负载限定在一定区域内,例如在一个slr内,以避免穿越一些特殊列,例如i/o column。相反地,如果数据路径并未穿越slr或i/o column,可尝试对相应的mmcm或pll做位置约束,使其位于这些负载的中央。
人工智能时代下炬芯S500的小成绩_人工智能处于“猿猴”的起步状态
PCB设计经验技巧有什么帮助
关于正负压力气密性检测设备的应用
!销售/收购/维修HP8648C信号发生器HP8648C 小
Dwarf Hall:PowerVR GPU上基于物理的渲染
三个命令生成的报告中均可显示Clock Skew的具体数值
以太坊是如何工作的
单片机和数字电路抑制干扰源的常用措施解析
5G将AI带入了发展的快车道
泄露电缆的安装要求_泄露电缆安装注意事项
对比光纤应力传感的性能和应变片的性能
PLC程序设计的五个步骤
怎么选择医疗设备液晶显示屏
磁翻板液位计远传变送器的原理和特点
光纤入户怎么接路由器
这是一份属于年轻人的购机指南
PK不过互联网支付 三大运营商的移动支付还能玩么?
springboot自动装配原理简述
战斗机器人或将走进现实世界
可检测员工动作的颈带式传感器