所有现代数字逻辑都由组合逻辑和时序逻辑组成。组合逻辑由门组成,而顺序逻辑由触发器组成。不同的晶体管以特殊的方式连接形成一个栅极,而不同的栅极连接形成一个触发器。无论是组合逻辑还是时序逻辑,任何芯片的基本单元都是晶体管。
现代芯片由数十亿个晶体管组成。例如,2021 年 10 月发布的最新款 MacBook M1 max 处理器由约 570 亿个晶体管组成。从晶体管的数量可以推断出,M1 max 处理器至少包含数百万个门,如果不是数十亿的话,这些门被仔细放置在单元站点中。这些门以逻辑方式精心互连以获得功能芯片。
芯片开发发生在不同的阶段。我们有一个前端阶段,包括 RTL 设计、设计验证和 DFT 插入,而在后端阶段,我们有平面规划、时钟树综合和布局布线。在 RTL 设计过程中,先编写芯片代码,然后进行仿真。接下来,设计被综合,然后在 RTL 代码被冻结的同时通过各种后端流程。
在芯片开发过程中,很容易出现错误,在流片之前修复这些错误很重要,以确保芯片中的功能不会受到影响。在像M1 max这样的芯片中,由于晶体管数量大,出现bug的概率就更大了。在 RTL 冻结后发现的错误可以通过修改网表代码或通过 Cadence Conformal或 Synopsys Formality等工具手动执行工程变更单 (ECO) 来修复。
图 1这就是手动 ECO 流程的样子。
对于小型 ECO,手动更改网表代码是有效的,但在较大 ECO 的情况下,使用 EDA 工具是更好的选择,因为可以调整现有的逻辑等效检查 (LEC) 流程以自动执行整个 ECO 流程。在本文中,我们将介绍半导体行业广泛使用的 premask flatten Cadence Conformal ECO 流程。
前掩膜平整 ECO 流程所涉及的步骤
图 2解释了使用 Conformal 的 premask flatten ECO 流程。在开始 ECO 流程之前,应执行某些等效性检查。LEC 在修改后验证设计,而无需从测试台传递任何测试向量。这些检查比运行回归模拟更快,工程师经常使用这些检查在任何设计更改后执行健全性检查。
图 2使用 Conformal 执行 Premask flatten ECO 流程。
RTL1 – 没有ECO的原创设计
RTL2 – 使用 ECO 修改设计
PNR1 – 来自 RTL1 的后布线网表,没有 ECO
SYN2 – 带有 ECO 的 RTL2 综合网表
PNR2 – 带有 ECO 补丁的后布线网表
有关 LEC 及其流程的更多信息,请参见本系列的第一篇文章“使用 Conformal 进行逻辑等效检查 (LEC) 入门”。
完成所有初步检查后,将带有 ECO (SYN2) 的综合网表和原始布线后网表 (PNR1) 提供给 Conformal 工具。这些网表分别称为修订设计和黄金设计。Conformal 工具读取不同类型的优化,例如由综合工具执行的边界优化和分层时钟门控,并在输入黄金和修改后的网表之间执行 LEC。LEC 将报告非等效点数。应仔细审查这些非等效点,因为补丁生成取决于这些失败的关键点。
图 3显示了有关使用 Conformal 的 premask flatten ECO 程序的更多详细信息。
然后,该工具生成一个补丁,然后将该补丁应用到黄金设计 - PNR1 上,以获取具有 ECO (PNR2) 的新布线后网表。最后,使用提供的库信息使用 Cadence 的Genus综合工具完成补丁优化。为了验证 ECO 补丁并确保没有其他故障出现,LEC 在 SYN2 和 PNR2 之间运行,并且期望得到零非等效关键点的干净结果。
利用LEC流程做ECO
如前所述,可以修改现有的 LEC 流程以适应 ECO 流程。执行 ECO 时这样做的第一步是比较黄金设计和修改设计,以计算它们之间的增量。这个增量又名补丁后来被优化并应用于黄金网表。随后,再次使用 LEC 比较带补丁的黄金网表和带补丁的综合网表以验证 ECO。如果比较干净,那么 ECO 就成功了。
因此,简而言之,我们需要在 ECO 之前进行三个等效检查,并在 ECO 期间进行两次等效检查。在 ECO 期间的两次等效检查之间,通过以下命令生成、应用和优化补丁:
生成:此命令生成分层补丁。该工具还可以根据补丁和引脚可用性添加/删除 ECO 引脚。
analysis_eco -hierarchical -ecopin_dofile ecopins.do patch.v -replace
set_system_mode 设置
dofile ecopins.do
将补丁应用于黄金设计:使用以下命令将生成的补丁应用于黄金设计。
apply_patch -auto
优化:稍后使用 Genus 综合工具提供的库信息对补丁进行优化。优化补丁中实例、网络和寄存器的命名可以通过适当的参数进行控制。
optimize_patch -workdir
-library
-sdc
-实例命名“ECOinst_%d”
-网络命名“ECOnet_%d”
-顺序命名“ECOreg_%s”
-synexec “属”
-详细
在 RTL 冻结后,可以在设计中发现错误,并最终通过执行 ECO 来解决。手动更改网表代码可能是一个耗时且麻烦的过程。与手动执行 ECO 相比,使用 Conformal 或 Formality 等 EDA 工具可以自动化整个 ECO 流程,使其更快并且通常提供更好的结果。由于 Conformal ECO 流程利用了现有的 LEC 流程,因此在某些情况下可显着减少整体 ECO 工作量。
ymf
全部0条评论
快来发表一下你的评论吧 !