所有现代数字逻辑都是由组合逻辑和时序逻辑组成的。组合逻辑由门组成,而时序逻辑则由触发器组成。不同的晶体管以特殊的方式连接在一起形成一个门电路,而不同的门连接在一起形成一个触发器。无论是组合逻辑还是时序逻辑,任何芯片的基本单元都是晶体管。
现代芯片由数十亿个晶体管组成。例如,2021年10月发布的最新款 MacBook M1 max 处理器就是由约570亿个晶体管组成的。从晶体管的数量可以推断出,M1 max处理器包含没有数十亿至少也有数百万个门,这些门被精心放置在单元格中。这些门以逻辑方式精心互连在一起就组成了功能强大的芯片。
整个芯片开发过程分为多个不同的阶段。首先是前端阶段,包括RTL设计、设计验证和DFT插入,然后是后端阶段,包括底层规划、时钟树综合和布局布线。在RTL设计过程中,先编写芯片代码,然后进行仿真,接着对设计进行综合,然后在RTL代码被固定的同时完成各种后端流程。
在芯片开发过程中很容易产生缺陷,因此为了确保芯片中的功能不受到影响,在流片之前修复这些缺陷很重要。在像M1 max这样的芯片中,由于晶体管数量巨大,出现缺陷的概率就更大了。通过手工修改网表代码或使用Cadence公司的Conformal或新思公司的Formality等工具执行工程变更单 (ECO)可以修复RTL固定后发现的缺陷。
图1:手工执行ECO流程的实例。
对于小规模ECO来说,手工更改网表代码是有效的,但在较大规模ECO的情况下,使用EDA工具是更好的选择,因为可以通过调整现有的逻辑等效检查(LEC)流程来自动执行整个ECO过程。本文将介绍半导体行业中广泛使用的掩膜前平面型Cadence Conformal ECO流程。
掩膜前平面型ECO流程所涉及的步骤
图2解释了使用Conformal完成的掩膜前平面型ECO流程。在开始ECO流程之前,应执行某些等效性检查。LEC可以直接检查修改后的设计,无需从测试平台传递任何测试向量。 这些检查比运行回归仿真更快,工程师经常在设计更改后使用这些方法来完成健全性检查。
图2:使用Conformal完成的掩膜前平面型ECO流程。
RTL1 – Original design without ECO
RTL2 – Modified design with ECO
PNR1 – Post-routed netlist from RTL1 without ECO
SYN2 – Synthesis netlist from RTL2 with ECO
PNR2 – Post-routed netlist with ECO patch
RTL1 – 不带ECO的原始设计
RTL2 – 带ECO的修改后设计
PNR1 – 不带ECO且源自RTL1的布线后网表
SYN2 – 带ECO且源自RTL2的综合网表
PNR2 – 带ECO补丁的布线后网表
有关LEC及其流程的更多信息,请参见本系列文章的第一篇“使用Conformal进行逻辑等效检查(LEC)入门”。
完成所有的初步检查后,将带有ECO的综合网表(SYN2)和原始的布线后网表(PNR1)一并提供给Conformal工具。这些网表分别称为改版设计和黄金设计。Conformal工具读取不同类型的优化,例如由综合工具执行的边界优化和分层时钟门控,并在输入黄金网表和改版网表之间执行LEC。LEC会报告非等效点。应仔细审查这些非等效点,因为补丁的生成取决于这些失败的关键点。
图3:有关使用Conformal完成掩膜前平面型ECO过程的更多详细信息。
该工具会生成一个补丁,我们可以将该补丁应用到黄金设计——PNR1上,以获取新的带ECO的布线后网表(PNR2)。最后使用Cadence的Genus合成工具并使用其提供的库信息完成补丁优化。为了验证ECO补丁并确保没有其他故障出现,需在SYN2和PNR2之间运行LEC,进而有望得到非等效关键点为零的成功结果。
使用LEC流程完成ECO
如前所述,可以修改现有的LEC流程来适应ECO流程。在执行ECO的同时修改现有LEC流程的第一步是比较黄金设计和改版设计,计算它们之间的增量变化。这个增量又名补丁,随后即被优化并应用于黄金网表。接着再次使用LEC比较带补丁的黄金网表和带补丁的综合网表以验证ECO。如果比较结果没有问题,那么ECO就成功了。
简而言之,我们需要在ECO之前做三次等效检查,并在ECO期间进行两次等效检查。 在ECO过程中的两次等效检查之间,可以通过以下命令生成、应用和优化补丁:
生成命令:此命令生成分层补丁。该工具还可以根据补丁和引脚可用性添加/删除ECO引脚。
analyze_eco -hierarchical -ecopin_dofile ecopins.do patch.v -replace
set_system_mode setup
dofile ecopins.do
将补丁应用于黄金设计:使用以下命令将生成的补丁应用于黄金设计。
apply_patch -auto
优化命令:随后用提供的库信息和Genus综合工具优化补丁。优化后补丁中的实例、网络和寄存器的命名可以通过适当的参数进行控制。
optimize_patch -workdir <working_directory>
-library <lib_file_list>
-sdc <sdc_filename>
-instancenaming “ECOinst_%d”
-netnaming “ECOnet_%d”
-sequentialnaming “ECOreg_%s”
-synexec “genus”
-verbose
在RTL固定后,可以通过ECO发现设计中的缺陷并最终得到解决。手工修改网表代码可能是一个耗时且麻烦的过程。与手工执行ECO相比,使用Conformal或Formality等EDA工具可以实现整个ECO流程的自动化,并且速度更快,往往还能提供更好的结果。由于Conformal的ECO流程利用了现有的LEC流程,因此在某些情况下可显著减少整个ECO的工作量。
(参考原文: A primer on engineering change order (ECO) using Conformal )
本文为《电子工程专辑》2022年2月刊杂志文章,版权所有,禁止转载。点击申请免费杂志订阅
- 学习了,多谢。希望有更多的芯片设计制造方面的文章。