炫铁RISC-V CPU IP参考流程:使用Fusion Compiler最大化每瓦性能

SNUG China 2022 2022 26 页

炫铁RISC-V CPU IP参考流程:使用Fusion Compiler最大化每瓦性能

会议: SNUG China 2022 作者: Yanqing Zhao (Synopsys), 2022年9月 页数: 26 源文件: SNUG_CN_Performance_Synopsys_Yanqing_Zhao_Sept_2022_XuanTie_RISCV_CPU_paper.pdf


Page 1

Synopsys: Yanqing Zhao 2022年9月

炫铁RISC-V CPU IP参考流程 使用Fusion Compiler最大化RISC-V CPU的每瓦性能

Page 2

议程

- RISC-V概述 - 设计规格与结果 - RISC-V CPU的FC实现流程 - FC总功耗优化方案 - 总结

Page 3

炫铁RISC-V CPU IP概述

- RISC-V是一个自由开放的ISA,通过开放标准协作开启处理器创新的新时代 - 自由、简单、可定制、小尺寸、低功耗...CPU核心 - 广泛应用于AI、深度学习、机器学习、数据中心、汽车和物联网应用

CPU模块类似于其他CPU设计: - I-cache, D-cache, ALU - IFU: 指令获取单元 - IDU: 指令解码单元 - MMU: 内存管理单元 - LSU: 加载存储单元 - VFPU: 矢量浮点运算单元 - TLB: 转译后援缓冲器

Page 4

RISC-V CPU参考实现(RI)流程

经过验证的方法论以实现最佳的每瓦性能 Simply Better PPA 功耗性能面积

FC RI流程——通往最佳PPA的快速路径

与合作伙伴联合开发: - 在RTL开发阶段早期开始协作 - 提供原生的开箱即用PPA - 更快实现PPA目标 - 包含推荐的流程和脚本(约束、实现、PPA推动配方、ECO等) - 易于定制(布图规划、工艺库、PPA目标)

Page 5

议程

(重复第2页议程)

Page 6

以功耗为中心的设计规格——N12 RISC-V CPU IP

类别配置
工艺节点TSMC N12
单元高度6T + 12T
金属堆叠1P9M
布线层信号布线: M2~M7, PG布线: M8~M9
APR PVTSetup: ssgnp-0p72v-m40c / Hold: ffgnp-0p88v-125c / Power: tt-0p8v-85c
单元库TSMC 6T + 12T turbo cells
Vth变体LVT, ULVT
多栅长变体C24, C20, C16
多电压风格UPF 统一功耗格式
频率目标高性能目标
功耗目标总功耗优化
时序降额POCV LVF,电压和温度增量降额
Mbit多比特2/4/6
PrimeTime签核POCV with PBA mode

Page 7

RISC-V IP PPA优化协作成果

实现了100%的FMAX目标,超出功耗目标(漏电功耗超出10%,动态功耗超出2%)

协作目标与FC RI流程结果:

类别目标结果
以功耗为中心总功耗优化,启用先进功耗优化功能-
性能高频@ssgnp-0p72v100% FMAX @ssgnp-0p72v
功耗(TT-0p8v-85c)漏电和动态并发优化漏电低于目标10%,动态低于目标2%
运行时间越快越好R2G全流程1.2天

RISC-V CPU核心PPA趋势:FMAX、漏电、动态功耗均有改善 - 部署RI流程于炫铁RISC-V IP,仅2轮FC运行即实现95% FMAX目标 - 8周内动态功耗降低11% - RI流程启用先进功耗优化特性,启用设计内PrimePower实现优异功耗关联

Page 8-9

RISC-V参考实现流程亮点

Fusion Compiler关键技术配置:

compile_fusion阶段: - QoR mega Switch(total_power) with extreme_power mode - 自动密度控制增强 - 数据通路 Data Path架构优化 - CCD everywhere, CCD with 100ps prepone/postpone limit - ICG max fanout 128, min bitwidth 4 - RDE with high effort - Enhanced Low Power Placement(ELPP) with medium effort - 先进关联设置(CCS RSV & AWP) from final_place - EAF (compile.flow.areaResynthesis true) - Design Fusion逻辑重构 - Pre-route targeted CCD path group - Multibit banking/debanking with dont_bank list

clock_opt/route_opt/eco_opt阶段:CCD everywhere, GRE, CLO, Advanced fusion extraction, PBA-based Route_opt等

FC版本: S-2021.06-SP5

Page 10

炫铁RISC-V CPU IP最大化每瓦性能的关键技术

性能: - 定制RISC-V CPU设计的路径组 - 细化宏通道阻挡类型,使L1缓存数据RAM靠近扇出逻辑 - 关键VFPU模块(逻辑深度深):数据通路架构优化、Pre-route targeted CCD path group、Useful skew和专用路径组

功耗: - QoR策略 = total_power with extreme power mode - 设计内PrimePower无缝功耗关联 - 多比特banking:排除时序关键寄存器(IFU/LSU data ram, VFPU *srt_remainder_reg*) - 仅启用MB2/4以获得更好的FMAX和功耗平衡 - 放松pre-route约束 - ULVT百分比限制控制 - PBA-based route_opt流程

面积: - 嵌入式面积流(逻辑综合期间) - 将ICG和寄存器缩小到最小尺寸

Page 11-12

以功耗为中心的RTL-to-GDSII实现与签核的全流程协同

阶段关键技术
逻辑与物理综合优化Self Gating, CCD Clock Gating, 功耗驱动的结构化和映射, 多比特, 总功耗感知优化和恢复
布局与优化增强低功耗布局, Advanced CCD Based Timing and Power Optimization, Logic restructuring for Power
时钟与优化功耗驱动CTS, clock_opt GRE, Next-gen CTS & Solver CTO
布线与优化StarRC and PrimeTime Delay Calc based Analysis/Opt, CCD Everywhere, Enhanced PBA-Based Opt from 1st route_opt
ECO优化功耗驱动eco_opt

蓝色标注的为该项目的特色显著收益特性

Page 13

功耗流程概述

- 使用RM 2.0作为参考设置功耗流程 - S-2021.06-SP3起, set_qor_strategy提供不同流程模式:'balanced'(默认)和'extreme_power'模式 - 读取每个动态场景的SAIF:确保输入SAIF中关键点注释率>90% - 功耗分析与FC、VCS和PrimePower的多工具交互 - FC与PrimePower之间紧密关联的要求:相同设计约束、准确的RTL-to-gate名称映射、相同的开关活动文件、相同的功耗分析模式

current_scenario $power_scenario
report_activity –driver
report_power
report_power_qor
report_clock_power_qor
elaborate + analyze
set_technology –node $node
set_qor_strategy –stage synthesis –metric total_power –mode extreme_power
set_stage –step synthesis 
compile_fusion
saif_map –start
current_scenario $power_scenario
read_saif $RTL_SAIF
reset_switching_activity –non_essential

Page 14

启用新的功耗优化特性

S-2021.06-SP3版本显著增强: - 瓶颈感知全局尺寸调整技术优化TNS,最小功耗代价 - 新网表预处理技术处理组合和时序单元的子优化问题 - 从compile_fusion到route_opt的功耗优化流程显著改进 - 增强的总功耗感知逻辑重构 - 减少引脚电容开关功耗的新技术

set_qor_strategy –stage  –metric  –mode extreme_power

Page 15

使用多比特技术的功耗vs性能调优

全流程多比特Banking/De-Banking:

步骤位置应用选项
RTL Bankinginitial_mapcompile.flow.enable_rtl_multibit_banking
RTL Debankinginitial_opto (before DTDP)compile.flow.enable_rtl_multibit_debanking
Physical Bankinginitial_opto (after DTDP)compile.flow.enable_physical_multibit_banking

关键收益:易于使用、更低动态功耗、移除未使用位节省面积、提升选定位改善时序

防止时序关键寄存器banking的脚本:

set_multibit_options -slack_threshold 0.0
set no_mb_cells [list ...]
foreach no_mb_cell $no_mb_cells {
  echo "INFO: Removing multibit specification for $no_mb_cell cells"
  set_multibit_options -exclude [get_cells -hier -filter "is_sequential && full_name=~${no_mb_cell}*"]
}

Page 16

启用设计内PrimePower实现优异功耗关联

设计在从compile到place_opt、clock_opt和route_opt的整个流程中经历网表修改。为了更好地驱动功耗优化决策,编译前通过RTL SAIF提供的活动信息需要根据网表变化进行更新。

从S-2021.06-SP3起,FC支持In-design PrimePower,在任何FC前端和后端更新活动信息以驱动更好的功耗优化。活动信息通过在FC内部调用PrimePower、使用FSDB波形进行基于时间的分析以生成门级SAIF来更新,无需用户干预或在不同工具间切换。

功耗估计精度:Average Mode Essential-only RTL SAIF → Average Mode RTL SAIF → Time-based RTL FSDB → Full Delay Gate Level Simulation

Page 17

设计内PrimePower用户界面

current_scenario func:typical:tt0p85v85c
set_indesign_primepower_options -fsdb $FSDB_FILE_LIST \
  -strip_path $STRIP_PATH -output_dir ./pp_indesign \
  -pwr_shell $pwr_shell_path -num_processes 4 \
  -max_Cores 16 -delay_shifted_event_analysis \
  -submit_command $submit_command
update_indesign_activity -power -keep all
report_power
report_activity -driver

Page 18

设计内PrimePower流程

活动刷新点:post compile_fusion logic_opto, post compile_fusion initial_opto, post compile_fusion final_opto/place_opt, post clock_opt/route_auto

与PrimePower time-based分析结果的关联——在post route_opt数据库上运行

运行FC route_opt 动态FC route_opt 漏电FC route_opt 总功耗
baseline FC100%100%100%
PP signoff115.3%98.6%112.3%
DIFF(%)15.3%1.4%12.3%

使用in-design PP后:

运行FC route_opt 动态PP signoff 动态DIFF
w/ in-design PP100%94.0%6.0%
PP signoff漏电98.6%1.4%-
PP signoff总功耗94.8%5.2%-

Page 19

定向面积优化——嵌入式面积流(EAF)

EAF在initial_map中的逻辑优化: initial_map → 首次时序驱动优化和数据通路重选择/取消分组 → 专门取消分组 → 快速面积驱动逻辑重构 → 轻量时序优化 → logic_opto的其余部分

效果: - 动态功耗降低1.2% - 漏电功耗降低1.3% - 单元面积减少0.8% - 单元数量减少0.8% - 时序QoR相同

Page 20

多矢量CCD

- 使用精确的物理感知全局求解器方法实现全设计最优权衡 - 在post-CTS CCD期间使用多矢量优化,提供更好的OOTB QoR——更好的功耗和时序QoR - 用户指标驱动UI,无需手动用户调优

set_app_options –list {clock_opt.flow.enable_multi_vector_ccd true}

Page 21-22

基于路径分析(PBA)的优化

route_opt支持StarRC和PT-delay-calculation引擎的时序优化: - 避免实现过程中的额外余量 - 使用签核约束和时序进行优化 - PBA分析减少与GBA相比的时序悲观性 - 更多功耗优化潜力

PBA-based route_opt流量基线对比: - 漏电功耗降低3% - 动态功耗降低0.7% - TNS略有恶化(可通过eco_opt恢复)

Page 23

最后阶段的PPA收敛——ECO Fusion

set_dont_use [get_lib_cell {*/*HVT* */*SVT*}] false
fix_eco_power -pattern_priority {HVT24 HVT20 HVT16 SVT24 SVT20 SVT16 LVT24 LVT20 LVT16 ULT24 ULT20 ULT16} \
  -pba_mode ex -cell_type {combinational sequential} -verbose
fix_eco_timing -type setup -pba_mode ex -physical_mode open_site \
  -methods {size_cell} -cell_type {combinational sequential} -verbose
fix_eco_timing -type hold -pba_mode ex -physical_mode open_site \
  -methods {size_cell insert_buffer} -buffer_list {……} -verbose

结果:eco_opt后漏电功耗降低1.7%,时序无恶化

Page 24-25

总结:使用Fusion Compiler实现最佳每瓦性能

关键成果: - 100% FMAX目标 - 漏电功耗低于目标10% - 动态功耗低于目标2% - 运行时间仅1.2天

关键技术总结:定制路径组、CCD everywhere、数据通路架构优化、ECO Fusion、总功耗(extreme_power)模式、ULVT百分比控制、PBA-based route_opt、设计内PrimePower、嵌入式面积流、多比特banking、无缝签核关联

Page 26

谢谢!


图片索引

本文共82张图片,存放于 SNUG_CN_Performance_Synopsys_Yanqing_Zhao_Sept_2022_XuanTie_RISCV_CPU_paper_images/ 目录。

第3页:RISC-V概述、CPU模块架构 第4页:参考实现流程 第6-7页:设计规格、PPA趋势与目标达成 第9页:流程亮点概览 第10页:关键技术矩阵 第12页:全流程功耗协同 第13页:功耗流程详图 第14页:SQS策略设置 第15页:多比特技术 第16-18页:设计内PrimePower 第19页:EAF流程 第20页:多矢量CCD 第21-22页:PBA优化 第23页:ECO Fusion 第25页:总结