尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Design Compiler:Concurrent Clock and Data Optimization(CCD)的使用

发布时间:2026/9/24 15:21:34

资讯中心
01
ARTICLE

Design Compiler:Concurrent Clock and Data Optimization(CCD)的使用

Design Compiler:Concurrent Clock and Data Optimization(CCD)的使用
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482目录并行时钟与数据优化的原理向IC Compiler II传递CCD信息旧版行为新版行为默认并行时钟与数据优化的原理物理实现工具如IC Compiler II中存在一种被称为并行时钟与数据优化(Concurrent Clock and Data Optimization, CCD)的技术在Innovus中被称为Clock Concurrent Optimization, CCopt这种技术通过利用时钟路径上的有用偏移(Useful Skew)改善时序QoR(WNS/TNS)如图1所示。拓扑模式的Design Compiler NXT在2019版本将该技术拓展到综合阶段在更早的阶段尝试靠近设计的性能、功耗和面积(PPA)目标。图1 有用偏移通过使用CCD优化一些时序违例可以通过时钟偏移轻松修复从而减少数据路径优化的工作量使数据路径功耗降低适用于时序或功耗敏感设计如图2所示。图2 数据路径和时钟路径的优化对比可以设置2019版本引入的compile_enable_ccd变量为true默认值为false允许在增量综合需要使用compile_ultra -spg -incr命令过程中启用CCD优化此时将会有以下信息提示。Information: CCD enabled, user provided latencies will be adjusted with useful skew. (OPT-1723)由于时钟树综合前都是理想时钟所有的时钟延迟都通过set_clock_lantency命令指定在找到可供使用的有用偏移后综合工具将自动更新SDC约束图3展示了一个使用report_timing命令进行报告的例子。图3 发射时钟和捕获时钟的延迟差异其中同一个时钟到达不同触发器的时钟延迟不同是通过在引脚上设置时钟延迟实现的如下两条SDC命令所示。# 假设用户没有设置全局时钟延迟 set_clock_latency -0.1 -clock [get_clocks clk] [get_pins FF1/CLK] set_clock_latency 0.1 -clock [get_clocks clk] [get_pins FF2/CLK]与IC Compiler II一样在Design Compiler NXT也可以通过一些变量控制CCD优化的行为如表1所示。表1 CCD优化控制变量变量功能ccd_skip_path_groups默认值为空禁止特定时序组的CCD优化ccd_optimize_boundary_timing默认值为true禁止边界触发器的CCD优化ccd_ignore_scan_reset_for_boundary_identification默认值为false边界触发器识别时排除复位和扫描端口ccd_ignore_ports_for_boundary_identification默认值为空边界触发器识别时排除特定端口ccd_max_postpone默认值为0限制时钟延迟被增大的幅度ccd_max_prepone默认值为0限制时钟延迟被减小的幅度ccd_respect_cts_fixed_balance_pins默认值为false阻止调整那些cts_fixed_balance_pin属性为true的时钟引脚的时钟延迟ccd_hold_control_effort默认值为high维持保持时间不退化的努力级别向IC Compiler II传递CCD信息Design Compiler NXT在2019版本引入了一个新的变量ccd_write_script_sdc_add_offset_to_latency用于控制由于CCD优化而更新的SDC约束在输出时的行为下面将分别讨论。旧版行为当ccd_write_script_sdc_add_offset_to_latency变量设置为true时默认值为false引脚上设置的时钟延迟将包含原时钟延迟当使用write_icc2_files命令时set_clock_latency命令将被写入icc2_files/design.MCMM/scenario_scenario.tcl文件如下所示而derive_clock_balance_points命令将被写入icc2_files/design.cbp.tcl文件该命令可以将时钟延迟约束转换为时钟平衡点约束从而引导IC Compiler II进行优化。# icc2_files/design.MCMM/scenario_scenario.tcl set_clock_latency 1.0 [get_clocks clk] # 假设用户设置了全局时钟延迟 set_clock_latency 0.9 -clock [get_clocks clk] [get_pins FF1/CLK] set_clock_latency 1.1 -clock [get_clocks clk] [get_pins FF2/CLK]使用write_sdc或write_script命令与使用write_icc2_files命令的输出类似但此时用户需要显式在IC Compiler II中使用derive_clock_balance_points命令。新版行为默认旧版行为中引脚上设置的时钟延迟将包含原时钟延迟但这样会导致难以理解时钟延迟是由用户设置的还是由CCD优化产生的从2021版本开始当ccd_write_script_sdc_add_offset_to_latency变量设置为false时CCD优化生成的时钟偏移将通过set_clock_latency -offset命令表示-offset是一个非标准的SDC命令选项仅限工具内部使用绝不能由用户指定使用write_icc2_files命令时icc2_files/design.MCMM/scenario_scenario.tcl文件的内容如下所示icc2_files/design.cbp.tcl文件依然包含derive_clock_balance_points命令。# icc2_files/design.MCMM/scenario_scenario.tcl set_clock_latency 1.0 [get_clocks clk] # 假设用户设置了全局时钟延迟 set_clock_latency -offset -0.1 -clock [get_clocks clk] [get_pins FF1/CLK] set_clock_latency -offset 0.1 -clock [get_clocks clk] [get_pins FF2/CLK]但是需要注意的是write_sdc命令此时无法写出CCD优化生成的时钟偏移非标准只有write_script命令支持用户需要显式在IC Compiler II中使用derive_clock_balance_points命令。当使用report_clock -skew命令报告时钟偏移时也会在括号中特别注明CCD优化生成的时钟偏移如下所示。dcnxt_shell report_clock -skew **************************************** Report : clock_skew Design : TOP Version: U-2022.12-SP1 Date : Mon Dec 8 01:03:45 2025 **************************************** Rise Fall Min Rise Min fall Uncertainty Object Delay Delay Delay Delay Plus Minus --------------------------------------------------------------------------- clk 1.00 1.00 1.00 1.00 - - FF1/CLK -0.10 -0.10 -0.10 -0.10 - - (offset) FF2/CLK 0.10 0.10 0.10 0.10 - - (offset)
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。