ETM vs. Abstract Model: Key Differences and Practical Applications in Hierarchical Design

张开发
2026/4/13 16:32:23 15 分钟阅读

分享文章

ETM vs. Abstract Model: Key Differences and Practical Applications in Hierarchical Design
1. ETM与Abstract Model基础概念解析在芯片设计领域随着设计规模越来越大分层设计流程hierarchy flow已经成为主流方法。这种自底向上bottom-up的设计方式先从模块级block level开始再到系统级sys level最后完成顶层top level设计。在这个过程中block model的质量直接影响整体设计效率。ETMExtracted Timing Model和Abstract Model是两种最常用的block model。简单来说ETM就像是一张只标注了出入口的地图告诉你从A点到B点需要多少时间但不会告诉你内部的具体路线。而Abstract Model则更像详细的导航地图不仅告诉你出入口位置还会标注内部的关键路径和交通规则。具体来看两者的区别ETM仅包含input port、output port和clock port之间的约束关系就像一个黑盒子外部设计者只能看到输入输出的时间关系无法了解内部具体实现。Abstract Model则详细记录了与输入输出相关的interface logic信息包括完整的时钟网络从clock源到每个终点的路径、input port到第一级寄存器的时序路径、寄存器到output port的时序路径以及不同场景scenario下的这些信息。生成这两种模型的命令也不同# 生成ETM extract_model -output block.etm # 生成Abstract Model create_abstract -output block.abs2. 核心差异与技术实现细节2.1 信息粒度的本质区别ETM和Abstract Model最根本的区别在于信息粒度。想象一下装修房子ETM就像只告诉你每个房间的门在哪里而Abstract Model则会把每个房间的电路走线、水管布局都画出来。在实际设计中Abstract Model会记录以下ETM不具备的关键信息完整的时钟树结构从clock源A点到每个终点Y点的完整路径包括所有buffer和gate的详细信息。接口时序路径input port到第一级寄存器的组合逻辑延迟和clock skew以及最后一级寄存器到output port的路径详情。多场景支持针对不同电压、温度等工作条件scenario分别记录上述信息。2.2 生成流程的技术差异生成这两种模型的过程也有显著不同。ETM的生成相对简单主要是提取模块边界的时序信息。而Abstract Model的生成则需要更多步骤# Abstract Model生成典型流程 read_verilog block.v read_sdc block.sdc create_abstract -scenarios [list func_mode1 func_mode2] \ -power_domains [list PD1 PD2] \ -output block.abs这个过程中工具会分析模块内部与接口相关的所有关键路径并提取出需要保留的详细信息。相比之下ETM生成时不会进行这种深度分析。3. 实际应用场景对比3.1 何时选择ETMETM适用于以下场景模块内部实现已经非常稳定不太可能再做大的修改顶层设计主要关注模块间的接口时序不需要了解模块内部细节设计规模很大生成Abstract Model会消耗过多时间和资源早期设计阶段模块内部还在频繁修改时可以先使用ETM进行初步验证3.2 何时选择Abstract ModelAbstract Model则在以下情况下更有优势时钟树综合CTS做全芯片时钟树设计时需要知道每个模块内部的时钟结构这是ETM无法提供的。时序预算Timing Budgeting需要精确分配top和block之间的时序余量时Abstract Model提供的详细路径信息至关重要。电源完整性验证VCLP能早期发现电源域相关问题如缺少isolation cell或level shifter。接口时序收敛处理top与block之间的复杂时序关系时使用flat SDC比hierarchy SDC更方便。4. Abstract Model的三大优势详解4.1 提升接口时序收敛效率在实际项目中我多次遇到top和block之间时序难以收敛的问题。使用Abstract Model后这些问题明显减少。因为它记录了capture register的详细时序信息包括data path和clock path的延迟。举个例子假设有一条top到block的时序路径Top: FF1 - Block: input port - internal logic - output port - Top: FF2使用Abstract Model时可以准确知道从block的input port到内部第一级寄存器的延迟以及clock到达时间从而精确计算整个路径的时序。4.2 优化时钟树设计在做全芯片CTS时Abstract Model提供的clock tree信息非常宝贵。它允许我们在顶层优化时调整clock port的位置使其更合理根据模块内部clock结构优化顶层clock buffer的插入更准确地平衡不同模块之间的clock skew4.3 早期电源完整性验证Abstract Model中记录了连接到port的leaf cell的供电信息这使得我们能够更早发现缺少isolation cell或level shifter的问题从电源域角度确保buffer插入正确在顶层验证时发现block内部的电源问题5. 时序预算与约束分割的最佳实践5.1 基于Abstract Model的时序预算流程时序预算是分层设计中的关键步骤。使用Abstract Model的典型流程如下准备chip level的SDC和UPF文件将其分割为top level和block level的约束top level时序分析使用top SDC和block的Abstract Modelblock level时序分析使用block SDC# 时序预算示例 read_sdc top.sdc read_abstract block.abs budget_timing -top top.sdc -blocks [list block.abs] \ -output block_budget.sdc5.2 约束分割的工程经验在多个项目中实践后我总结了以下约束分割的经验top level SDC应包含三部分top level UPF、top level时序约束、top-to-block边界时序block level SDC则专注于模块内部约束使用Abstract Model可以避免约束重复或遗漏的问题边界时序要明确指定是使用Abstract Model中的哪部分信息6. 工程实践中的选择建议在实际项目中我通常会根据设计阶段选择不同的模型初期模块还在频繁修改时使用ETM快速迭代中期当模块基本稳定后改用Abstract Model进行更精确的验证后期如果资源允许对所有关键模块都使用Abstract Model对于特别复杂的模块即使资源消耗大也建议使用Abstract Model。曾经有个项目为了节省时间使用了ETM结果在顶层集成时发现了大量接口时序问题反而耽误了更多时间。在工具使用方面Abstract Model生成时间通常是ETM的3-5倍但带来的验证质量提升是值得的。建议在服务器负载较低的时段批量生成Abstract Model比如晚上或周末。

更多文章