使用块抽象和时序提取模型进行复杂百万门级SOC的分层实现
使用块抽象和时序提取模型进行复杂百万门级SOC的分层实现
会议: SNUG India Bangalore 2019 作者: Abhishek Chouksey, Avneet Shrivastava (Intel Technology India) 页数: 45
引言
- 当前SOC设计使用分层实现以获得容量优势和更快的周转时间(TAT) - 传统上,基于ETM 提取时序模型的模型用于分层实现。更复杂和更好的抽象模型技术提供了接口逻辑的详细信息 - 实现195mm2 SOC,75个独特的多级分区,在综合和布局布线期间使用抽象模型和ETM模型的混合方法论 - 由于基于抽象的方法论有许多优势,本演示主要关注我们在基于抽象实现方面的经验 - 我们还将比较抽象vs ETM,以及如何为不同块做选择
议程
- 引言 - ETM和抽象的基础 - 设计阶段 - 设计统计和挑战 - 使用抽象时的典型注意事项 - 抽象的优势 - ETM的使用场景和局限性 - 抽象 vs ETM - 结论
ETM和抽象的基础
ETM
是什么? - 输入/输出时序弧 - 每个信号端口的相关时钟 - 最小-最小时钟树延迟 - 提取的时序模型
生成命令: extract_model –format {db lib}(签核工具)
布局视角: 包含blockage、块形状及其边界端口位置、硬宏、电压域、布局边界、接口时序路径。Frame视图在布线期间使用。
抽象模型
是什么? - 输入/输出时序弧 - 每个信号端口的相关时钟 - 最小-最小时钟树延迟 - 每个场景的接口逻辑 - 网络电容、电阻和注释延迟 - 时序和时钟延迟直至边界触发器 - 完整的时钟逻辑被保留
生成命令: create_frame / create_block_abstraction / create_abstract(实现工具)
布局视角: 与ETM相同的物理信息加接口时序路径。Frame视图在布线期间使用。
Abstract提供: - 通过设置注释延迟应用实际预算(类似ETM) - 早期反馈(硬时序路径、未优化的接口DRC和时序) - 布局和引脚放置修改
设计阶段
阶段1:探索阶段
- 面积探索、分区决策、性能探索 - 80% RTL、早期约束/UPF 统一功耗格式/模式阶段2:试运行阶段
- 100% RTL、约束细化 - 时序和时钟树综合 CTS实验 - 面积优化、布局收敛阶段3:最终运行
- 全芯片和所有分区的并发实现 - Setup/Hold和时序DRC收敛 - LVS/DRC收敛 - 形式验证、VCLP和PDN签核设计统计和挑战
统计: - 195mm2 SoC芯片 - 75个独特块,多层次层次 — 并发实现 - 高度直线的布局,多个电源域 - 65个抽象模型和10个ETM - 5级设计层次
挑战: - 逻辑、物理和功耗信息的正确建模 - 子块的质量问题 - 接口时序路径优化
使用抽象时的典型注意事项
| 问题 | 原因 | 解决方案 |
| 工作电压不一致 | 电压值差异 / PVT场景不一致 | 维护相同的电压值和场景 |
| 电源端口不匹配 | 子分区UPF中缺少父分区UPF中连接的电源端口 | 创建端口并连接到正确的电源网络 |
| PnR接口逻辑优化导致等价性失败 | 工具优化了子分区浮动输入端口的接口网络 | 在布局优化期间对此类接口网络应用don't touch |
| 抽象视图中的空模块报告为未放置实例 | 尽管模块的完整逻辑在抽象视图中被移除,模块本身未被移除 | 在子分区中删除模块后重新生成抽象 |
| 综合期间的电源传播 | 每次打开父数据库时抽象需要电源传播 | 使用"propagate_constraints –power_supply_data" |
父分区中报告时序路径
问题:在父DB中报告时序路径时,完全在子分区内部的多个时序路径也被报告。
解决方案:
# 综合阶段
set_app_var timing_ignore_paths_within_block_abstraction true
布局布线阶段
set_timing_paths_disabled_blocks -all_sub_blocks
抽象的优势
接口时序收敛
- 叠加内部延迟:类似ETM,抽象也允许通过设置注释延迟应用实际预算 - 早期反馈:硬时序路径、未优化的接口DRC和时序 - 布局和放置修改:电压域和布局边界、引脚放置以最小化绕行时钟相关优势
- 不需要分层时序约束 — 应使用平坦时序约束以获得更好的接口时序优化 - 精确优化 — 抽象的时序/时钟路径优化比ETM更实际 - 时钟偏移自动处理 — CTS默认自动追踪实际时钟树 - VCLP收敛:与边界端口连接的叶级逻辑的相关电源网络信息 — 提前捕获缺失的隔离单元和电平转换器违例ETM的使用场景
适合使用ETM的情况: - 子块RTL交付延迟 - 子块本身经历多层并发开发 - 子块或孙子块的复杂性/规模 - 需要进行手动干预,考虑项目进度
局限性: - 脚本化ETM的风险: - 需要多次时钟推/拉迭代才能收敛 - 需要在边界插入锚点缓冲器 - 端口的电源网络需要根据RTL变化仔细监控和更新 - 预算需要严格遵守(可能次优) - 对齐硬时序/环回路径需要额外努力 - 接口违例保持开放直到最后,除非有签核质量的ETM
抽象 vs ETM 对比总结
| 参数 | 抽象(Abstract) | ETM |
| 上层使用 | 如果模型与父网表不一致会出现设置问题 / 可使用平坦顶层约束 | 设置简单 / 端口不匹配可快速处理 / 顶层约束不能引用块内节点 |
| 分析 | 可清楚确定接口时序路径失败原因(引脚位置、电压域、无缓冲路径等) | 失败的接口时序分析必须用平坦STA完成 |
| 精度 | 可在并发实现的各个阶段逐步更新 / CTS默认自动追踪实际时钟树 | 并发实现中使用阶段性ETM很麻烦 / 最差延迟用于时钟平衡(不准确) |
| 生成难度 | 易从实现工具直接生成 / 需与父级保持一致 | 脚本化ETM易生成但质量差 / 真实ETM需签核STA工具增加TAT |
| VCLP/低功耗 | 提前捕获MV问题,跨电压缓冲正确 | 功耗感知ETM需谨慎处理端口的电源网络 |
模型决策:基于此,抽象是默认选择。在某些情况下需要使用ETM来实现。
结论
使用抽象的优势: - 从父级获得可见性/清晰度 - 分析变得容易 - 更好的精度 - 更快的收敛 - 减少时序ECO周期
未来增强:迭代报告链接问题、质量检查器使能
图片索引
本文共160张图片,存放于 SNUG_TPC_SDC_Chouksey_Hierarchical_SOC_Implementation_paper_images/ 目录。本文为PPT格式,图片数量众多,包括:ETM/抽象模型架构图、设计层次结构、Abstract vs ETM对比表、接口时序路径示意图、时钟结构图、VCLP收敛展示、完整布局快照等。