并发时钟与数据优化(CCD)技术亮点与瑞萨成功经验分享

SNUG Southeast Asia 2018 (Singapore) 2018 40 页

并发时钟与数据优化(CCD)技术亮点与瑞萨成功经验分享

会议: SNUG Southeast Asia 2018 (Singapore) 日期: 2018年9月21日 作者: Anusha Reddy Sindhwala (Synopsys); Le Ngoc Vu Phuoc (Renesas Design Vietnam) 页数: 40 源文件: SNUG_TPC_CCD_Gobok_2018_Synopsys_Inc_paper.pdf


Page 1

![Slide 1: Title]()

(c) 2018 Synopsys, Inc. 1

演讲者: Anusha Reddy Sindhwala, IC Compiler II 产品应用工程师 Le Ngoc Vu Phuoc, Renesas Design Vietnam 日期: 2018年9月21日

技术亮点与客户(瑞萨)成功经验分享 并发时钟与数据优化(CCD)


Page 2

(c) 2018 Synopsys, Inc. 2

目录 - 第一部分:CCD技术亮点(Synopsys) - 第二部分:瑞萨成功经验分享(Renesas)


Page 3

(c) 2018 Synopsys, Inc. 3

第一部分:CCD技术亮点 IC CompilerI O-2018.06


Page 4

(c) 2018 Synopsys, Inc. 4

内容 - IC CompilerI 并发时钟与数据优化(CCD 并发时钟数据优化) - place_opt CCD - 功耗恢复 CCD - clock_opt build_clock 中的全局分析型CCD及其与时钟树综合 CTS的集成 - postroute 中的定向CCD优化 - 使用PrimeTime延迟计算的Postroute CCD


Page 5

(c) 2018 Synopsys, Inc. 5

IC Compiler II 并发时钟与数据优化(CCD)

- CCD优化贯穿从 place_optroute_opt 的整个流程 - CCD优化可以在改善时序 QoR的同时降低设计功耗 - place_opt CCD和功耗恢复CCD等功能专门针对功耗节省

概述

流程阶段CCD存在
initial_place
initial_drc
initial_opto
final_place
final_optoCCD
build_clockCCD
route_clock
final_optoCCD
route_optCCD

Application options to enable CCD at different stages:

set_app_options -name place_opt.flow.enable_ccd –value true
set_app_options –name clock_opt.flow.enable_ccd –value true
Set_app_options –name route_opt.flow.enable_ccd –value true

Page 6

(c) 2018 Synopsys, Inc. 6

IC Compiler II 并发时钟与数据优化

- 时钟树以包含有用偏斜 Useful Skew的方式构建 - 时钟接收端可以被提前或延迟以获得更好的时序 QoR - 有用偏斜计算尝试在不产生过多保持时间违例 Hold Violation的情况下解决建立时间违例 Setup Violation

概述 - clock_opt build_clock CCD

BP: 平衡点 (Balance Point)


Page 7

(c) 2018 Synopsys, Inc. 7

IC Compiler II 并发时钟与数据优化

- CCD优化前 vs CCD优化后 - clock_opt final_optoroute_opt 中的CCD优化类似 - 时钟和数据优化协同工作以改善时序 - 对时钟树进行增量修改(如触发器尺寸调整、时钟单元尺寸调整、缓冲、缓冲移除等),以改善时序 QoR和功耗

概述 - clock_opt final_opto 和 route_opt CCD


Page 8

(c) 2018 Synopsys, Inc. 8

place_opt CCD

- 在 place_opt 中使用CCD的主要收益是泄漏功耗 Leakage Power和总功耗节省 - 可以通过时钟偏斜轻松修复的时序违例可以减少数据路径优化,从而节省数据路径功耗 - 在某些设计中可能看到时序 QoR的改善 - place_opt CCD默认在理想时钟上工作 - 使用 optimize_icgs / trial_clock_tree 功能,place_opt CCD可以使用传播时钟工作

为更好的功耗和性能

数据路径优化 vs 时钟路径优化:优化4个数据单元 vs 优化1个时钟单元


Page 9

(c) 2018 Synopsys, Inc. 9

功耗恢复 CCD

- CCD技术可用于从时钟树恢复功耗/面积 - CCD引擎是时序感知的,因此可以在不影响时序 QoR的情况下恢复功耗/面积 - 优化包括时钟中继器移除、时钟单元尺寸调整和触发器尺寸调整 - 功耗恢复CCD可以在CCD和非CCD流程中启用 - 支持两种不同的操作模式: - 功耗恢复模式和面积恢复模式

概述

功耗恢复CCD前 vs 功耗恢复CCD后

启用功耗恢复CCD的应用选项:

# clock_opt.flow.enable_clock_power_recovery

auto(默认值):在CCD流程中设为"power",在非CCD流程中设为"none"

route_opt.flow.enable_clock_power_recovery

auto(默认值):对动态功耗设计执行功耗恢复CCD

可接受值:auto(默认)、none、power、area


Page 10

(c) 2018 Synopsys, Inc. 10

clock_opt build_clock中的全局分析型CCD及其与CTS的集成

- 在N-2017.09中,对 clock_opt build_clock 中的CCD做了重大增强 - 有用偏斜计算引擎的改进: - 使用全局有用偏斜计算引擎以获得更好的TNS - 引擎也增强了以执行更好的保持时间优化 - 更好的智能性提供了时钟面积友好的有用偏斜方案 - 有用偏斜引擎与时钟树综合 CTS的集成: - 在CTS期间重新运行有用偏斜计算引擎以细化平衡点 - 无法实现的大的提前值(正平衡点)被CTO截断以避免时钟单元面积增加 - CTO使用时序信息来决定对时序非关键寄存器的时钟路径进行缓冲和单元尺寸调整,在不降低时序的情况下改善时钟单元面积


Page 11

(c) 2018 Synopsys, Inc. 11

clock_opt build_clock中的全局分析型CCD及其与CTS的集成

- 收益: - 在 clock_opt 命令的 build_clock 阶段结束时改善了TNS - 在 clock_opt 命令的 final_opto 阶段结束时改善了TNS或改善了功耗和面积 - 时钟单元面积和时钟功耗将保持不变或通过此功能得到改善

无此功能时的QoR:

WNS(setup)=-0.290 TNS(setup)=-2244.067 WEIGHTED_TNS(setup)=-2458.657 SetupCost(setup)=-5.526
WNS(hold)=-0.267 TNS(hold)=-911.587 WEIGHTED_TNS(hold)=-1767.333
...
Final optimized QoR
WNS(setup)=-0.166 TNS(setup)=-1258.876 WEIGHTED_TNS(setup)=-1294.844 SetupCost(setup)=-4.061
WNS(hold)=-0.267 TNS(hold)=-981.054 WEIGHTED_TNS(hold)=-1892.622

有此功能时的QoR:

WNS(setup)=-0.290 TNS(setup)=-2244.067 WEIGHTED_TNS(setup)=-2458.657 SetupCost(setup)=-5.526
WNS(hold)=-0.267 TNS(hold)=-911.587 WEIGHTED_TNS(hold)=-1767.333
...
Final optimized QoR
WNS(setup)=-0.172 TNS(setup)=-467.418 WEIGHTED_TNS(setup)=-480.996 SetupCost(setup)=-4.644
WNS(hold)=-0.267 TNS(hold)=-883.490 WEIGHTED_TNS(hold)=-1689.844


Page 12

(c) 2018 Synopsys, Inc. 12

Postroute中的定向CCD优化

- 在流程的最后阶段,您可能希望CCD仅专注于关键路径组或终点 - 类似于 route_opt 命令中基于定向终点的数据路径优化 - 从O-2018.06开始,route_opt 中的定向CCD优化提供了实现此需求的方法 - 提供控制以通过将CCD优化限制为仅尺寸调整或同面积尺寸调整来最小化对布局和布线的扰动

概述:

# 在当前带CCD的route_opt流程后启用定向CCD
set_app_option –list {route_opt.flow.enable_targeted_ccd_wns_optimization true}  # [默认: false]

定向CCD工作需要设置以下两个应用选项之一

set_app_options -list {ccd.targeted_ccd_path_groups "clk"}

set_app_options -list {ccd.targeted_ccd_end_points_file "ep.txt"}

可选设置

set_app_options -list {ccd.targeted_ccd_select_optimization_moves "size_only"}

set_app_options -list {ccd.targeted_ccd_wns_optimization_effort medium}

route_opt

Page 13

(c) 2018 Synopsys, Inc. 13

使用PrimeTime延迟计算的Postroute CCD/CTO

- 此前,在 route_opt 中启用PT延迟计算会自动禁用CCD/CTO优化 - 从N-2017.09-SP2开始,route_opt 中的CCD/CTO增强为支持PT延迟计算 - 所有postroute CCD/CTO组件均可使用基于PT的延迟进行优化: - 包括用于时序的CCD、功耗恢复CCD、时序驱动的布线后时钟DRC修复和布线后CTO

概述:

# 在PT延迟计算模式下带CCD的route_opt

注意:无需TBC即可启用此功能

set_app_options –list {route_opt.flow.enable_ccd true} set_app_options –list {time.use_pt_delay true} route_opt

Page 14

(c) 2018 Synopsys, Inc. 14

第二部分:瑞萨成功经验分享


Page 15

SNUG 2018 15 2018年9月21日 SNUG 东南亚 - 新加坡

并发时钟与数据(CCD) CCD部署总结

Le Ngoc Vu Phuoc Renesas Design Vietnam Co., Ltd.


Page 16

SNUG 2018 16

议程 - 关于瑞萨与瑞萨设计越南(RVC) - 并发时钟与数据(CCD) - CCD应用流程 - 结果与亮点改善 - CCD流程技巧与窍门 - 总结与结论


Page 17

SNUG 2018 17

关于瑞萨与瑞萨设计越南(RVC)


Page 18

SNUG 2018 18

关于瑞萨

汽车电子 | 工业/HE | OA/ICT - 驾驶、转向、制动 - 汽车模拟与功率器件 - 集成座舱 - 汽车导航 + ADAS 高级驾驶辅助系统 - 生态系统协作 - MCU + 功率器件套件解决方案(新兴国家两轮车) - MCU + 功率套件解决方案(电机控制) - 智能电表套件解决方案(测量/通信) - 通用MCU(嵌入式系统) - 网络存储器 - 工业用功率半导体 - 办公/通信/安全套件解决方案 - 网络和监控摄像头平台 - 工业以太网 - 行业标准平台 - OA/摄像头MCU - 电动出行新解决方案

平台价值 / 套件价值 / 器件价值

总部:日本东京 全球运营:美国、欧洲、亚洲:23,日本:4 员工人数:20,513 (2017年12月31日) ("Renaissance Semiconductor for Advanced Solutions")


Page 19

SNUG 2018 19

关于瑞萨设计越南(RVC)

- 成立:2004年10月5日 - 办公室:越南胡志明市 - 员工人数:824 (2018年6月30日) - 硬件 + 软件,整体解决方案!

硬件设计: - RTL设计 - 验证 - 综合、DFT 可测试性设计 - 布局布线 PnR、芯片集成

软件设计: - 设备驱动 - 中间件 - 应用软件 - 开发工具(IDE)

应用领域:汽车电子、工业/HE、OA/ICT


Page 20

SNUG 2018 20

并发时钟与数据(CCD)


Page 21

SNUG 2018 21

并发时钟与数据(CCD)

- 为什么应该在设计中部署CCD? - 更小的芯片 - 更高的频率 - 严格的漏电目标

CCD = 优化数据路径 + 调整时钟路径


Page 22

SNUG 2018 22

并发时钟与数据(CCD)

- 为什么应该在设计中部署CCD? - 更好地理解CCD技术 - 利用CCD的最佳实践、技巧和窍门用于量产设计 - 通过一些测试案例确认QoR 结果质量改善

Synopsys协作以改善PnR流程(应用CCD)


Page 23

SNUG 2018 23

并发时钟与数据(CCD)

- 测试案例: - Block A - 多层次化设计 - Block B - 多层次化设计 - Block C - 多层次化设计 - Block D - 复杂时钟结构 - Block E - 高频设计


Page 24

SNUG 2018 24

并发时钟与数据(CCD)

- 测试案例:

目标模块描述目标
Block A多层次化Level 3改善漏电,确认多层次化设计的时序
Block B多层次化Level 2
Block C多层次化Level 1
Block D复杂时钟结构确认更复杂时钟树设计的质量
Block E高频设计改善非常关键频率设计的时序/漏电

Page 25

SNUG 2018 25

CCD应用流程


Page 26

SNUG 2018 26

CCD应用流程 - 概述流程

# Phase 1: place_opt CCD
set_app_options -list {place_opt.flow.enable_ccd true}

Optimize Placement

Phase 2: clock_opt CCD

set_app_option -list {clock_opt.flow.enable_ccd true} clock_opt -from build_clock -to route_clock clock_opt -from final_opto

Phase 3: global_route_opt

set_app_option -list {clock_opt.flow.enable_global_route_opt true} clock_opt -from global_route_opt

Phase 4: route_opt CCD

Route signal

set_app_option -list {route_opt.flow.enable_ccd true} route_opt

Phase 5: final route_opt (without CCD)

set_app_option -list {route_opt.flow.enable_ccd false} route_opt

Page 27

SNUG 2018 27

CCD应用流程 - place_opt CCD流程

# 启用place_opt CCD应用选项
set_app_options -list {place_opt.flow.enable_ccd true}

Optimize Placement

set_app_option -list {clock_opt.flow.enable_ccd true} clock_opt -from build_clock -to route_clock clock_opt -from final_opto

set_app_option -list {clock_opt.flow.enable_global_route_opt true} clock_opt -from global_route_opt

set_app_option -list {route_opt.flow.enable_ccd true}

- 启用 place_opt CCD应用选项 - CCD有用偏斜计算影响 place_opt 中的 final_opto 阶段 - 日志文件


Page 28

SNUG 2018 28

CCD应用流程 - clock_opt CCD流程

set_app_options -list {place_opt.flow.enable_ccd true}

Optimize Placement

set_app_option -list {clock_opt.flow.enable_ccd true} clock_opt -from build_clock -to route_clock clock_opt -from final_opto

set_app_option -list {clock_opt.flow.enable_global_route_opt true} clock_opt -from global_route_opt

- 保持 place_opt 的所有MCMM 多角多模设置 - 应用/更新传播设置和后CTS设置(时钟不确定性、移除理想条件、tran/cap/fanout设置、NDR、定义时钟平衡组等) - 报告以检查 place_opt CCD的时钟平衡偏移是否已应用 - 导出时钟平衡 - Clock_opt


Page 29

SNUG 2018 29

CCD应用流程 - route_opt CCD流程

set_app_options -list {place_opt.flow.enable_ccd true}

set_app_option -list {clock_opt.flow.enable_global_route_opt true} clock_opt -from global_route_opt

Route signal as normal way

Run initial route_opt with CCD; follow by subsequent route_opt without CCD

set_app_option -list {route_opt.flow.enable_ccd true} route_opt

set_app_option -list {route_opt.flow.enable_ccd false} route_opt

- 按常规方式布线信号 - 先运行带CCD的初始 route_opt;然后用不带CCD的后续 route_opt 跟进


Page 30

SNUG 2018 30

结果与亮点改善


Page 31

SNUG 2018 31

结果与亮点改善

(数据见图表)


Page 32

SNUG 2018 32

结果与亮点改善

(数据见图表)


Page 33

SNUG 2018 33

结果与亮点改善

- CCD有用偏斜调整带来的保持时间影响是可控的 - TNS非常小


Page 34

SNUG 2018 34

CCD流程技巧与窍门


Page 35

SNUG 2018 35

CCD流程技巧与窍门

通用阶段 - 技巧分享:

- 不要对首次设计应用CCD - 在首次设计中: - SDC 时序约束尚不干净 - 流程设置/时钟树综合 CTS设置也尚不干净 - 时序可能不干净,使CCD大量调整时钟(不好) - 解决方案: - 应至少完成一个质量好的设计(基线) - 采用CCD,检查并与上述基线比较 - 如果CCD获得更好的结果,可以将其选为主设计


Page 36

SNUG 2018 36

CCD流程技巧与窍门

place_opt阶段 - 技巧分享:

- 确保所有时序违例是真实的且需要改善 - 某些违例因各种原因不需要优化 - 需要放松它们以防止CCD进行不必要的时钟调整 - 解决方案: 使用 set_path_margin 命令

- 限制place_opt中的最大有用偏斜计算 - 默认设置在有些情况下可能导致大的偏斜和保持时间违例 - 解决方案: 控制应用选项 place_opt.flow.enable_ccd_useful_skew_max_preponeplace_opt.flow.enable_ccd_useful_skew_max_postpone - 示例:

    set_app_options -name place_opt.flow.enable_ccd_useful_skew_max_prepone -value xxps
    set_app_options -name place_opt.flow.enable_ccd_useful_skew_max_postpone -value xxps
    


Page 37

SNUG 2018 37

CCD流程技巧与窍门

clock_opt阶段 - 技巧分享:

- 忽略优化边界时序以防止大的偏斜接口 - 如果边界时序不关键或占比较小,可以跳过CCD优化 - 解决方案: 控制应用选项 ccd.optimize_boundary_timing - 示例:

    set_app_option -list {ccd.optimize_boundary_timing false}
    

- 忽略优化指定组路径的时序 - 我们不希望CCD为某些指定的组路径调整时钟 - 解决方案: 控制应用选项 ccd.skip_path_groups - 示例:

    set_app_options -name ccd.skip_path_groups -value {Path_GroupA Path_GroupB}
    

- 报告以检查布局阶段的平衡偏移是否可用 - 确保布局阶段的所有平衡偏移在 clock_opt 中被计算 - 解决方案: 使用命令 report_clock_balance_points

- 同时应用数据和时钟的don't use设置 - CCD可以同时优化时钟和数据路径 - 如果don't use设置不正确: - 工具可能因缺乏目标优化单元而停止 - 时钟路径中出现错误的单元类型

- 限制clock_opt和route_opt期间的最大有用偏斜调整 - 默认设置在有些情况下可能导致大的偏斜和保持时间违例 - 解决方案: 控制应用选项 ccd.max_postponeccd.max_prepone - 示例:

    set_app_options -name ccd.max_postpone -value x
    set_app_options -name ccd.max_prepone -value x
    


Page 38

SNUG 2018 38

总结与结论


Page 39

SNUG 2018 39

总结与结论

- 通过完整的CCD流程,在漏电功耗和建立时间TNS方面观察到显著的QoR 结果质量改善 - 运行时间和保持时间的折衷是可控的,且被漏电和TNS改善的收益所超过 - RVC已决定在下一个项目中对时序和功耗关键模块部署CCD流程


Page 40

SNUG 2018 40

感谢


图片索引

本文共 277 张图片(PPT型论文),存放于 SNUG_TPC_CCD_Gobok_2018_Synopsys_Inc_paper_images/ 目录。

详细信息见原始PDF提取图片目录。