RTL Architect如何提升效率以实现最优PPA

SNUG China 2022 2022 24 页

RTL Architect如何提升效率以实现最优PPA

会议: SNUG China 2022 作者: Xiangqing Wang (Moore Threads), Gogo Min (Synopsys) 时间: 2022年9月 页数: 24 源文件: SNUG_CN_Wang_September_2022_paper.pdf


Page 1

Xiangqing Wang, Moore Threads Gogo Min, Synopsys 2022年9月

RTL Architect如何提升效率以实现最优PPA

Page 2

议程

- RTL Architect介绍 - 快速且可预测的RTL PPA调优 - 并行探索 - RTL Architect重构 - 总结

Page 3

RTL Architect

更好的RTL带来更好的PPA 功耗性能面积

RTL Architect发展势头(2020年3月发布至今): - 覆盖领域:汽车、CPU、GPU、5G、可编程、存储器、网络、移动、AI - 用户类型:RTL设计师、综合与P&R工程师

关键特性: - 改善RTL质量 → PPAC估算 - 快速迭代 → 3倍加速 - 最佳综合预测 → 快速收敛

Simply Better RTL

Page 4

识别和改进RTL PPA

关键Fusion平台技术: - 预测引擎:快速门级预测,从模块扩展到SoC - 功耗分析:PrimePower驱动的平均、峰值和毛刺功耗,结合时序和活动 - 统一GUI:分析、调试和精确定位RTL问题的单一界面 - 并行探索:扫描和比较多个设计参数 - 设计规划:自动且全面的布图规划功能 - 约束管理:跟踪和维护时序和功耗约束 - 重构:快速优化RTL层次以获得更好的PPA

RTL + UPF + SDC + Activity → RTL Architect + PrimePower RTL + PT STA

Page 5

快速扩展的使用模式

设计团队以多种方式使用RTL Architect

1. RTL PPA改进 —— 交叉探针、快速运行 2. 架构探索 —— 设计扫描、RTL到RTL比较 3. RTL重构 —— 层次操作 4. 布图规划 —— 早期布图规划原型设计 5. IP验证 —— 设计特定IP配置 6. P&R原型设计 —— 使用脏数据快速运行、回归KPI

Page 6

One Synopsys —— Verdi + RTL Architect

RTLA指标现在可以在Verdi中调试: - 切换场景 → 右键实例查看源代码 - 切换时序/功耗/拥塞详情 - 切换到模块视图

操作:搜索、冻结首列、配置列、切换单位、切换小数点位数、过滤、配置颜色方案 在Verdi和RTLA之间拖放实例

HDL → Verdi (KDB) ↔ RTLA (PPA DB) VCS支持

Page 7

议程

- RTL Architect介绍 - 快速且可预测的RTL PPA调优 - 并行探索 - RTL Architect重构 - 总结

Page 8

RTL Architect如何帮助我们?

设计挑战: - 在繁忙的进度中推动更高性能的压力 - 不断增加的设计规模极大地影响了综合运行时间 - 前端和后端之间的反馈循环较长 - RTL PPA调优在多种GUI中进行,难以交叉探针

关键技术: - 可预测的快速综合用于RTL PPA调优 - 自动且全面的布局规划 Floorplan功能 - 扫描和比较多个设计参数 - 快速优化RTL层次以获得更好的PPA - 跨多视图的高级交叉探针

Page 9

快速且可预测的RTL PPA调优

RTL Architect利用与Fusion Compiler相同的设置: - 设置库 → 读取和详细阐述RTL → 应用时序约束、加载功耗意图(可选)→ 加载布图规划信息(可选)

共用设置 → Conditioning → Estimation(RTL Architect)→ Initial Map → Logic Opto → Initial Place → Initial DRC → Initial Opto → Final Place → Final Opto(Fusion Compiler)

Page 10

统一GUI简化分析和RTL交叉探针

快速且可预测的RTL PPA调优

(统一GUI界面截图)

Page 11

快速且可预测的RTL PPA调优

- RTLA和FC在initial_opto阶段之间具有良好的相关性,RTLA运行时间加速3.5倍 - WNS在3%相关性内,TNS在5.3%相关性内 - 配方探索——被FC采纳 - 取消分组几个关键模块获得积极趋势 - 调整路径组和权重获得积极趋势

指标RTLA vs FC (initial_opto)
R2R WNS (ps)3%
TNS (ns)5.3%
运行时间3.4倍加速
R2R WNSTNSNVP
RTLA ungroup-13.2%-22.6%-11.3%
RTLA path group-36.8%-50.4%-67.3%

Page 12

快速且可预测的RTL PPA调优

通过RTL编码结构和综合配方进行拥塞优化: - 原始拥塞图:全局布线溢出单元数 2668 - 优化后拥塞图:全局布线溢出单元数 2356

Page 13

议程

- RTL Architect介绍 - 快速且可预测的RTL PPA调优 - 并行探索 - RTL Architect重构 - 总结

Page 14

并行探索

广阔的探索空间,大量变量集合: - 层堆叠 - 库 - 约束 - 时钟门控 - 功耗 - 频率 - 阈值电压类别 - 多种RTL - 电压 - 利用率 - 布局规划 Floorplan

Page 15

并行探索流程

Setup Libraries → Read and Elaborate RTL → Apply Timing constraints, Load Power Intent (Optional) → Exploration Configuration → Explore_design → PPA analysis (Experiment 1/2/3)

Configure: Define sweep params: frequency sweep; floorplan sweep; macro_placement sweep; ... set_explore_design_options_cmd -user_script explore.tcl -var_list {}

Page 16

(并行探索实验设置与结果可视化)

Page 17

并行探索——频率扫描示例

早期快速探索不同目标频率和低Vt比例:

Block1:

运行频率低Vt比例WNSTNSNVP面积
Run1基准0%基准基准基准基准
Run2基准10%-40%-87.8%-77.2%-1.8%
Run3+10%0%+16%+301.7%+470.4%+1.4%
Run4+10%10%-4%-40.3%-46.8%+0.08%

Block2:

运行频率低Vt比例WNSTNSNVP面积
Run1基准0%基准基准基准基准
Run2基准10%-22.8%-94.8%-88.7%-2.1%
Run3+10%0%+17.1%+172.9%+132.0%+0.8%
Run4+10%10%-14.3%-77.7%-67.7%-0.8%

*频率提升作为下一步候选。*

Page 18

议程

- RTL Architect介绍 - 快速且可预测的RTL PPA调优 - 并行探索 - RTL Architect重构 - 总结

Page 19

RTL Architect重构

设计层次通常需要因各种原因(如拥塞、时序或布图规划)进行重构。

RTL重构 RTL Restructuring允许用户以多种方式进行设计中的层次变更: - 创建新层次(Grouping)和溶解现有层次(Ungrouping) - 重构多次实例化模块 - 重新父级化——将实例从层次中的当前位置移动到新位置,同时保持连接关系 - Feedthrough插入 - 写出重构后的RTL

流程:

Setup Libraries → Read and Elaborate RTL → Apply Timing constraints, Load Power Intent (Optional) → Load Floorplan info (Optional) → RTL Restructuring → RTL' simulation → Generate new RTL' → Block implementation

Page 20

RTL Architect重构——典型应用用法

- group_cell, ungroup_cells, reparent_cell...

原始结构:

TOP_SS
  U1, U2, U3, U6
  U_a_top → U4
  U_b_top → U5
  U_c_top

RTL重构后:

TOP_SS
  U_i_top → U1, U2, U3
  U_c_top → U6, U4, U5

Page 21

提示

- 设计端口宽度/数量必须匹配 - 如果没有重构需求,将设计保持为黑盒 - 从文件列表中排除 - 无需详细阐述,节省运行时间 - 使用report_design_mismatch获取黑盒列表 - Formality全设计等效性检查 Equivalence Checking - compare_rule 替代 user_match 定义 - 启用变量进行常量和未读点验证

Page 22

议程

- RTL Architect介绍 - 快速且可预测的RTL PPA调优 - 并行探索 - RTL Architect重构 - 总结

Page 23

总结

- RTL PPA预测和优化加速3.5倍 - RTLA和FC之间良好的时序相关性 - 统一GUI简化工作流程——分析、识别和交叉探针 - 内置和用户定义的参数扫描(通过并行探索)识别实现的最佳配方 - 层次分组/取消分组(通过RTL重构)实现快速的What-if分析

Page 24

谢谢!


图片索引

本文共111张图片,存放于 SNUG_CN_Wang_September_2022_paper_images/ 目录。

第3页:RTL Architect市场覆盖 第4页:Fusion平台技术全景 第5页:使用模式扩展 第6页:Verdi + RTL Architect集成 第8页:设计挑战 第9页:RTL Architect与Fusion Compiler共用设置 第10页:统一GUI 第11页:相关性数据与配方探索 第12页:拥塞优化前后对比 第14页:探索空间变量 第15页:并行探索流程 第16页:实验设置可视化 第17页:频率扫描数据 第19页:RTL重构流程 第20页:层次重构前后对比 第23页:总结关键数据