芯片设计轻松入门
一位维基教科书用户认为此页面应该拆分为具有更窄子主题的较小页面。 您可以通过将此大页面拆分为较小的页面来提供帮助。请务必遵循命名策略。将书籍分成较小的部分可以提供更多重点,并允许每个部分都能做好一件事,从而使每个人都受益。 |
在这本书**芯片设计**中,我们介绍了如何通过集成数十亿个晶体管来构建集成电路(“芯片”)以实现某个应用。应用可以满足特定的需求,例如微处理器、路由器、手机等。针对特定应用设计的集成电路称为ASIC(专用集成电路)。
如今的ASIC芯片非常复杂,包含大量针对特定制造工艺的晶体管,用于在亚纳米级制造集成电路,涉及许多挑战,例如了解各种协议、架构、模型、格式、标准,了解CMOS逻辑、数字设计概念,驾驭EDA工具以满足各种设计需求,例如面积、时序、功耗、热量、噪声、布线能力、光刻感知,了解各种变异性,例如沟道长度、Vt、线宽变化、透镜像差、IR压降效应、芯片间和芯片内变化、效应以及各种噪声效应,例如封装噪声、EMI噪声、电源网络噪声、串扰噪声,以及能够测试和验证,并能够在设计阶段预先建模和表征所有这些效应,以提高盈利曲线,缩短上市时间,最大程度地降低风险并最大程度地提高可预测性和模块化的方法来取得成功。现在让我们深入探讨“芯片设计的艺术”。
有很多技术术语,但不用担心。您很快就会了解这些术语的含义,并理解芯片设计背后的概念。
- 芯片的目标市场是什么?
- 芯片涉及哪些协议?
- 我们的处理器/总线架构是什么?
- 功耗/IR压降/时序/面积/良率目标是什么,以及如何在芯片中进行预算?
- 芯片将采用哪种工艺制造?
- 各种第三方IP/内存需求是什么?
- 我们的设计流程、EDA工具和方法是什么?
- 芯片的估计成本是多少?
- 最重要的是,任何商业模式的底线都是金钱。我们的盈利模式是什么?我们估计的投资回报率(ROI)是多少?
为什么要与建筑架构进行类比?为了更好地理解芯片设计概念,因为我们非常熟悉建筑架构,那么就可以很容易地将芯片设计架构映射出来。
VLSI(超大规模集成)流程类似于建筑施工中涉及的流程。现在让我们深入了解施工流程,以更好地理解VLSI芯片设计流程的开发。
每当我们开始建造一座建筑物时,我们都会有一个架构,建筑物应该是什么样子,外部外观等。类似地,我们将在芯片设计中设计一个架构,基于产品的需求,产品针对什么以及服务于谁的需求——即所谓的规范——的不同模块。
现在让我们进入建筑和芯片的实施部分。
我们首先会设计建筑物的平面图,类似地,我们也会设计芯片的平面图。根据连通性/可达性/风水,我们放置房间,类似地,我们有约束条件来放置模块。就像我们用砖块、窗户和其他模块建造建筑物一样,对于芯片设计,我们有组件库,这些组件库就像预先设计的砖块,用于特定的功能。
现在让我们尝试了解我们建筑物中的电源结构或电气连接。最初,我们为我们的建筑物制定了一个电气计划,其中我们有一个要求,即所有电器都需要通电。类似地,我们有芯片的功耗需求。所需的电源通过电源焊盘供给,通过环形拓扑结构在芯片的所有角落均匀分布,并且电源必须到达所有标准单元(芯片设计的砖块),这在芯片设计中称为电源网络拓扑结构。现在的要求是如何设计我们的电源网络以减少IR压降,以便我们的标准单元获得适当的电源需求。
如果我不讨论芯片设计流程中的时钟和时钟树,我将无法做到公正。我们有同步和异步(更难测试和验证)的设计方式。大多数芯片遵循同步设计,对此可以进行静态时序分析。为了使触发器相关,来自晶振的时钟信号必须同时到达——或在某些偏斜目标范围内——芯片内的不同组件。为了实现这一点,在创建电源网络后执行一个称为时钟树的步骤。
现在让我们尝试可视化芯片设计中布局布线背后的概念,其中芯片的不同组件被物理放置,并且它们的引脚正确互连。为了更好地理解这个概念,让我们假设一个说不同语言的人们生活在一起的社会,让我们想象一下说相同语言的人们会倾向于住在同一个社区,形成独立的社区,并使人们之间的沟通更加容易。类似地,在芯片设计中,在布局流程中,具有紧密关系的标准单元放置得更近,形成独立的区域。这个过程称为区域划分。现在,在这些区域内,真正共享数据的标准单元必须彼此靠近放置,以便它们的时序匹配并得到优化。此步骤称为布局,而定义标准单元之间的连接称为布线,挑战在于具有优化的或减少的线长。
现在让我们尝试了解芯片设计中信号完整性 (SI) 背后的概念,通常称为SI效应。随着我们的工艺日益缩小,并且我们的硅房地产成本高昂,我们试图在有限的区域内容纳越来越多的标准单元,因此单元放置得非常靠近,一个单元的切换会对其他单元的行为产生影响,这可能使路径变得更快或更慢。此问题称为信号完整性。因此,类似地,在我们建造房屋以维护房屋内的完整性(邻居免受干扰的区域)时,在有限的模块化区域内,我们尝试在建筑物之间创建围栏,类似地,我们可以考虑一个称为屏蔽的概念,即高频信号网络与电源网络一起运行。我们在建筑物之间进行间距,类似地,我们可以在靠近的网络之间进行间距。
为了验证硅片的可制造性问题,芯片设计中的概念是可测性设计 (DFT)。DFT 技术之一是扫描链。为了理解扫描链的概念,我们可以想象我们有一个前门入口和一个后门出口,一个人从前门进入并从建筑物的后门出口出来,我们确信建筑物内的房间中没有障碍物,以致使这个人被困住,类似于此类比,触发器连接在一起形成扫描链,测试输入值从芯片的扫描链输入传递,并在芯片的扫描链输出可视化预期数据,然后假设芯片没有可制造性问题,例如卡住故障(卡住为1或卡住为0)。
步骤1:准备需求规格说明
步骤2:创建微架构文档。
步骤3:RTL(寄存器传输级)设计和IP(知识产权)开发
步骤4:对所有IP进行功能验证/检查RTL是否没有Lint错误/分析RTL是否适合综合。
步骤4a:执行基于周期的验证(功能)以验证RTL的协议行为
步骤4b:执行属性检查,以验证RTL实现和规范理解是否匹配。
步骤4c:执行时钟域交叉检查,以验证控制/数据是否具有正确的同步,以确保可靠的跨域数据传输。
有些人使用“逻辑努力”来估计CMOS电路关键路径中的延迟,从而估计电路的最大可能速度。[1]
步骤5:准备设计约束文件(时钟定义(频率/不确定性/抖动)、I/O延迟定义、输出焊盘负载定义、设计错误/多周期路径)以执行综合,通常称为SDC文件(Synopsys约束文件,特定于Synopsys综合工具(Design Compiler))
步骤 6:进行 IP 合成,工具的输入包括(目标合成库文件,其中包含标准单元库的功能/时序信息以及基于连线扇出长度的线负载模型)、RTL 文件和设计约束文件。这样,合成工具就可以执行 RTL 文件的合成,并进行映射和优化以满足设计约束要求。在执行合成后,作为合成流程的一部分,需要基于 DFT(Design for Test)要求构建扫描链连接,合成工具(Test-compiler)会构建扫描链。
步骤 7:检查合成后的设计是否满足要求(功能/时序/面积/功耗/DFT)。
步骤 7a:执行网表级功耗分析,以了解设计是否满足功耗目标。
步骤 7b:使用综合后的网表执行门级仿真,以检查设计是否满足功能要求。
步骤 7c:执行 RTL 与综合后网表之间的形式验证,以确认合成工具未改变功能。
步骤 7d:使用 SDF(Standard Delay Format)文件和综合后的网表文件执行 STA(Static Timing Analysis),以检查设计是否满足时序要求。
步骤 7e:在 DFT(Design for Test)工具中执行扫描链追踪,以检查扫描链是否根据 DFT 要求构建。
步骤 8:一旦完成合成,则将综合后的网表文件(VHDL/Verilog 格式)和 SDC(约束文件)作为输入文件传递给布局布线工具,以执行后端操作。
步骤 9:下一步是进行楼层规划。楼层规划是指根据连接性放置 IP,放置存储器,创建焊盘环(也称为焊盘框),[2][3][4][5]放置焊盘(信号/电源/转换单元(用于切换电压域/角焊盘(方便封装布线)),满足 SSN 要求(Simultaneous Switching Noise),即当高速总线切换时,不会产生任何噪声相关的活动,创建优化的楼层规划,使设计满足芯片的利用率目标。
步骤 9a:将楼层规划信息提供给封装团队,以进行焊盘环的封装可行性分析。
步骤 9b:对于布局工具,切割行,创建工具无法放置单元格的障碍物,然后根据时序/面积要求执行单元格的物理布局。构建电源网络以满足芯片的电源目标。
步骤 10:下一步是执行布线,首先是全局布线和详细布线,满足根据制造要求的 DRC(Design Rule Check)要求。
步骤 11:完成布线后,将布线后的 Verilog 网表、标准单元 LEF/DEF 文件传递给提取工具(提取芯片的寄生参数(RLC)值,并以 SPEF 格式(Standard Parasitics Exchange Format)生成 SPEF 文件)。
步骤 12:检查布局布线步骤后,设计是否满足要求(功能/时序/面积/功耗/DFT/DRC/LVS/ERC/ESD/SI/IR-Drop)。
步骤 12a:执行布线后网表级功耗分析,以了解设计是否满足功耗目标。
步骤 12b:使用布线后的网表执行门级仿真,以检查设计是否满足功能要求。
步骤 12c:执行 RTL 与布线后网表之间的形式验证,以确认布局布线工具未改变功能。
步骤 12d:使用 SPEF 文件和布线后网表文件执行 STA(Static Timing Analysis),以检查设计是否满足时序要求。
步骤 12e:在 DFT 工具中执行扫描链追踪,以检查扫描链是否根据 DFT 要求构建,使用 DFT 工具执行故障覆盖率并生成 ATPG 测试向量。
步骤 12f:将 ATPG 测试向量转换为测试仪可理解的格式(WGL)。
步骤 12g:执行称为物理验证的 DRC(Design Rule Check)验证,以确认设计满足制造要求。
步骤 12h:执行 LVS(Layout vs Schematic)检查,这是验证的一部分,它获取布线后的网表并转换为 Spice(称为 SPICE-R),并转换综合后的网表(称为 SPICE-S),然后比较这两个网表是否匹配。
步骤 12i:执行 ERC(Electrical Rule Checking)检查,以了解设计是否满足 ERC 要求。
步骤 12j:执行 ESD 检查,以便放置合适的背靠背二极管并在芯片中存在模拟和数字部分的情况下提供适当的保护。我们为数字和模拟部分分别设置电源和接地,以减少衬底噪声。
步骤 12k:执行独立的 STA(Static Timing Analysis),以验证芯片的信号完整性。为此,将布线后的网表和 SPEF 文件(包括耦合电容值)馈送到 STA 工具。此检查很重要,因为信号完整性效应会导致串扰延迟和串扰噪声效应,并阻碍设计的性能/时序方面。
步骤 12l:执行 IR 降分析,确保电源网络足够强大,能够承受设计中的静态和动态功耗下降,并且 IR 降在目标限制范围内。
步骤 13:一旦验证了布线后的设计是否满足设计约束,下一步就是进行芯片完成操作(如金属开槽、放置去耦电容)。
步骤 14:现在芯片设计已准备好发送到制造工厂,释放制造工厂可以理解的文件,例如 GDS 文件。
步骤 15:释放 GDS 文件后,执行 LAPO 检查,确保释放到制造工厂的数据库是正确的。
步骤 16:执行芯片到封装的线键合,将芯片连接到封装。
深入芯片架构
[edit | edit source]本文假设您是一位架构师,在架构和设计芯片以使其首次成功之前,您会想到哪些问题。芯片设计是一项集成挑战。
- 此芯片的目标市场是什么?
- 此芯片的竞争对手有哪些?市场需求和投资回报率如何?
- 芯片的目标代工厂是哪个?
- 代工厂的成功率和良率是多少?
- 目标工艺技术是什么?
- 库模型与硅片之间的相关性是什么?
- 芯片将要处理的各种协议有哪些?
- 硬件和软件划分。
- 哪种处理器/微控制器适合此应用?
- 目标总线架构是什么?
- 此总线架构的性能目标是什么?
- 芯片有哪些接口?
- 设计将采用单 Vt 还是多 Vt 设计?
- 使用嵌入式宏还是存储器宏是正确的选择?
- 哪些 IP 将被重用?
- 哪些 IP 将成为硬宏?
- IP 的验证状态和极端情况覆盖率如何?
- 芯片的目标/估计芯片尺寸是多少?
- 功耗目标是什么?
- 芯片中是否需要电源管理单元来降低动态功耗?
- 降低泄漏功耗采用了哪些机制?
- 模块使能/时钟门控是否属于方法的一部分?
- 复位将是同步的还是异步的?
- 数据传输的各种同步机制有哪些?
- 芯片需要多少个时钟域?
- 需要多少个 PLL?一个 PLL 是否足以满足所有时钟需求?
- 焊盘背后的思路是什么?是 LVTTL/SSTL 焊盘吗?
- 封装将采用线键合还是倒装芯片?
- 优化电源网络设计的方法是什么?
- 在模拟集成的情况下,有哪些降噪机制?
- 是否需要速度监控器或工艺检查块?
- 使用哪种类型的保险丝?激光保险丝还是可熔保险丝?
- 设计中是否需要 Fib 单元?
- 处理 ESD 采用了哪些机制?
- 芯片的可靠性目标是什么?如何实现?
- 提高良率采用了哪些机制?
- 芯片是否在高速测试下进行测试?
- 为 IP 分配了多少内存映射?
- 芯片中备用单元格的指标是什么,用于 ECO?
- 是否需要可修复的存储器?
- 目标测试仪是什么?芯片在扫描链方面的要求是什么?
- 测试向量压缩机制是否为一项要求?
- PLL(锁相环)在抖动方面的性能如何?
- 芯片内部的中断处理机制是什么?
- 芯片的 ROM 代码是什么?
- 芯片的利用率目标是什么?
- 芯片是否可布线?是否需要具有不同布线轨迹的特殊库?
- 工具和版本的方法是什么?
- 跨多个地理环境的数据处理计划了哪些版本控制机制?
- 芯片的签核标准是什么?
- 芯片的频率目标是什么?
- 芯片是否有进一步修改的空间?
- 如果芯片具有 DDR/SDR 接口,是否需要 DLL?
- 工具在复杂性/运行时间/周转时间/计算能力要求方面的限制是什么?
- 针对芯片 IR 降/电源地噪声/电感效应/ EMI 噪声/封装噪声/串扰噪声/同时切换噪声/沟道长度变化/片上变化/芯片间变化/芯片内工艺变化的各种变化,采取了哪些机制/步骤?
总线架构涉及的思考过程
[edit | edit source]为了获得尽可能高的性能,在 SoC 中,需要考虑哪些参数才能获得最佳的系统总线架构?
- 系统速度不仅取决于处理器/微控制器,还取决于系统运行的总线速度。
- 跨多个驱动器的争用预防机制。
- 总线分路器:基于速度目标的分层总线结构(例如,来自 ARM 的 AMBA 总线有两个总线层次结构级别:高级高性能总线[AHB] 和高级外设总线[APB])。分路总线架构具有节能的事务处理和跨传统总线的并发数据事务。
- 减少延迟和交叉开关利用率机制。
- 总线之间跨数据传输的最佳桥接机制。
- 通过管道机制提高性能,并采取措施防止停顿。
- 共享总线的仲裁协议方案(固定优先级方案、循环轮询方案、* 时分复用方案)。
- 减少总线等待时间的机制。
- 跨总线的同步机制。
- 基于功耗分析的调度。
- 基于流量的动态电压和频率缩放技术,以满足功耗目标。
如今的ASIC设计,一方面追求集成度最大化、芯片面积最小化、功耗优化、速度提升、热性能改善,同时还要解决信号完整性、可靠性、良率提升等问题,包括降低PLL抖动以确保功能可靠性,以及可测试性、单芯片系统中模拟和数字电路的集成、满足光刻工艺的DRC规则、功能实现、高速存储器接口、IO结构、IO缓冲区分析与选择、芯片验证、应对最后一刻的规格变更/功能与时序bug的工程变更单(ECO)、优化封装的可行性、涉及多地域多地点的开发阶段、复杂的数据库管理、各种模型/抽象/标准/格式/协议、先进工艺、库特性建模与硅片验证、更高程度的EDA工具使用、设计复用标准,以及构建能够应对EMI噪声/封装噪声/电源地噪声/串扰噪声/衬底噪声/时钟抖动/工艺偏差/IR压降/片上差异等因素的鲁棒性设计。另一方面,如何在设计阶段解决所有这些问题,是当今芯片设计行业的挑战。
这种跨领域/抽象/工具/设计师/工艺/协议/标准/设计复用/最优权衡/设计诀窍/跨文化设计团队的紧密结合,需要一种模块化的统一方法,以确保首版芯片成功。现在让我们来讨论实现过程中面临的挑战以及在设计阶段如何克服这些挑战。
复杂的数据库管理/多地点设计与开发 由于现在的设计是在多地点环境下进行的,每个地点都拥有一些特定领域的专业知识,为了充分利用这些专业知识,需要进行多地点设计与开发阶段。为了维护数据库,需要一个合适的版本控制管理系统(例如,ClearCase)来正确地对齐数据库,并用标签标记它以识别数据库。最后,在设计完成后,需要经过适当的评审和清单流程来确保交付质量。
设计最佳的Padring 设计最佳Padring的步骤
确保在Padring的所有角上都有角Pad。这主要是为了确保电源连续性和较低的电阻。确保Padring满足ESD要求,识别电源域,分割电源域,确保所有电源域共地。确保设计具有足够的核心电源Pad。根据电流要求和时序选择Pad的驱动强度。确保有独立的模拟地和电源Pad。如果没有I/O需求,则使用无连接Pad填充Pad框。也可以使用额外的VDD/GND Pad。确保没有输入/输出Pad使用未连接的输入,因为如果输入悬空,它们会消耗功率。确保使用振荡器Pad作为时钟输入。如果设计需要源同步电路,确保时钟和数据Pad具有相同的驱动强度。断路Pad用于断开电源环并隔离电源结构。确保连接到引脚的金属线能够承载足够的电流,检查是否需要多层金属来承载引脚提供的最大电流。确保在角Pad附近放置一些Pad填充单元,以简化衬底布线要求。对于源同步Pad(如时钟和数据输出),确保这些Pad位于中心,因为封装中心的引线比封装角的引线短,可以减少EMI的影响。
设计优化面积 由于硅片面积非常昂贵,并且节省面积与公司的收入直接相关,因此设计中需要特别注重面积优化。减少面积的步骤如下:
如果路径不是时序关键路径,则优化单元以使用低驱动强度单元,这样可以节省面积。紧贴VDD行。使用多个布局规划版本分析利用率数据,从而获得优化的面积目标。
设计优化的布局规划 研究设计的数 据流图并相应地放置模块,以减少面积和线长的加权和。尽量减少使用非正方形模块,避免使用缺口。基于可访问性和连接性放置模块,从而减少线长。紧贴存储器放置,如果引脚是单侧的,则可以减少面积。如果存储器更频繁地与外部世界通信,则将其放置在边界上更有意义。研究需要布线的引脚数量以及允许的最小金属宽度,估计可布线性问题。研究体系结构和应用,以便启用模块应分散放置,以减少电源地噪声。
设计以实现功耗目标 如今的IC设计中,功耗在设计成功中发挥着重要作用,因此实现功耗目标是主要关注点。一些最佳设计实践包括:使用多VDD设计。需要高性能的区域使用高VDD,需要低性能的区域使用低VDD,通过创建电压岛并确保在跨电压域中放置适当的电平转换器。使用多Vt(阈值电压)。需要高性能的区域使用低Vt,但会产生大量的漏电流;需要低性能的区域使用高Vt单元,漏电流较小。通过结合这种设计流程,可以减少漏电流功耗。由于时钟在设计中消耗了大量的功率,因此在设计中放置最佳的时钟门控单元并通过模块使能控制它们可以节省大量的功耗。由于时钟树始终处于切换状态,因此确保大部分时钟缓冲器位于时钟门控单元之后,这减少了切换次数,从而降低了功耗。根据应用结合动态电压和频率缩放(DVFS)的概念,当应用不需要满足性能目标时,从而降低系统的电压和频率。确保设计中的IR压降分析和地弹分析符合设计规范要求。放置电源开关,以便可以减少漏电流功耗。
设计以实现频率目标 由于ASIC设计如今以其可以达到的时钟频率来评级,因此设计带来了很多性能优势。一些实现频率目标的设计策略如下:
对于需要满足时序要求的区域,使用逻辑重构。如果满足保持时间要求,则使用有用的时钟偏差。使用寄存器重定时/时间借用概念来满足设计时序要求。对于时序紧张的路径,使用更快的触发器。对于需要满足时序的路径,使用低Vt单元。通过在所有功能和测试模式下,在所有工艺角(包括降额系数)下执行静态时序分析(STA),确保设计满足频率目标。确保存在公共时钟树路径,并且分支仅发生在最后阶段,以便可以在降额期间的悲观估计消除过程中将公共时钟路径从延迟计算中移除作为开销。对于涉及往返延迟的内存控制器设计,采用可编程DLL(延迟锁定环路)设计。
设计以满足信号完整性目标 随着越来越多的器件被集成,导致区域更加拥挤,耦合电容主导线电容,从而产生SI违规。现在让我们看看我们可以采取哪些措施来减少/解决它。
由于时钟树贯穿整个芯片,因此优化设计以满足SI要求至关重要,使用双间距和三倍间距布线时钟。如果发生SI违规,则增加信号网络的间距可以减少串扰影响。对于高频信号网络,使用电源网络屏蔽它们以防止SI。启用SI感知布线,以便工具可以处理SI。确保启用SI的STA运行并保证设计满足SI要求。在彼此正交的不同层上布线信号。通过插入缓冲器来最小化并行运行长度的线。
设计以获得更高的良率(DFY/DFM) 通过减少制造缺陷的可能性可以获得更高的良率。通过减少参数良率,在工艺偏差发挥主要作用的情况下保证电路性能是一个巨大的挑战。
创建更强大的严格运行文件,包含悲观的间距/短路规则。检查设计中容易出现光刻问题的区域,例如锐利切割,并尝试重新布线。对于过孔可靠性问题,使用冗余过孔以减少过孔断裂的可能性。为了设计以提高良率,设计系统可以具有最佳冗余,例如可修复存储器。优化放置去耦电容可以减少电源浪涌。将非关键网络和时钟网络的宽度加倍可以提高良率参数。确保保持多晶硅方向。
设计以优化模拟和数字电路的集成 由于如今的IC也集成了模拟组件,因此需要一些设计实践来优化集成。确保在布局规划阶段模拟模块和数字模块不要彼此靠近,以减少噪声。确保数字和模拟地之间存在独立的地线以减少噪声。在模拟宏周围放置合适的保护环。结合内置DAC-ADC转换器,允许我们使用数字测试仪以模拟环回方式测试模拟部分。对于数字部分执行诸如时钟抖动之类的技术。
设计以应对工程变更单 随着IC设计变得越来越复杂,并且有很多首次应用,更容易出现最后一刻的更改,因此设计流程中应该有条款来适应功能和时序bug。执行此步骤称为工程变更单(ECO)。
确保设计具有分布在布局中的备用功能门。确保备用门的选型包括多种类型的门和通用门,以便可以实现任何功能。
设计光刻工艺友好的设计 为可制造性设计需要验证设计是否满足光刻规则。
检查布局以确认设计规则(间距、线宽、短路)。检查拥塞较少的区域并增加网络的间距。
-"**任何可能出错的事情,都会出错**" - 墨菲
我的下一步是什么?
现在让我们假设任何事情都可能出错。
哪些方面可能出错?
列出流程中可能出错的区域,并为每个阶段制定验证方法。列出所有可能发生的潜在不确定性,以及如何对其建模、如何约束以及如何提前进行验证。探索并重新审视设计流程中的每个区域,以涵盖潜在的风险。
功能验证 (RT L级,门级) 形式验证 静态时序分析 物理验证 功耗仿真 热仿真 噪声仿真 测试仿真 仿真 硬件原型 硬件软件联合仿真 晶体管级仿真 现在让我们深入到每个领域并确保它
功能验证
TLM(事务级建模) Lint RTL仿真(环境包括:激励生成器、监视器、响应检查器、事务处理器) 门级仿真 混合信号仿真 回归 我在功能部分涵盖了多少 - 我的覆盖率指标是什么?以及使用了哪些方法?
验证测试是否涵盖了精确定位的测试或使用随机种子来覆盖所有极端情况的测试。 代码覆盖率 行覆盖率 功能覆盖率
形式验证
等价性检查器 RTL与门级 预布局与后布局 网表 基于断言的属性检查器(允许更大状态空间覆盖的数学技术)
时序验证
芯片与谁通信(了解接口时序) 芯片内部的时序预算是什么,以及如何在每个IP内部对其进行约束,最后分析和签署时序目标 如何处理不同工艺参数(片上变化)的时序目标 最佳降额系数是多少才能解决变化问题。 最小化时钟抖动的步骤。
物理验证
我的设计是否对制造工艺友好?
DRC(设计规则检查) LVS 天线检查 ERC ESD检查
噪声仿真
我的设计有多大的噪声,因此需要执行解决以下领域的噪声仿真
同时开关噪声 (SSN) 封装噪声 EMI噪声 电源-地噪声 串扰噪声 模拟噪声 基板噪声 功耗仿真
当数字逻辑门切换时,它会通过连接到它的电源和地引脚拉动一股电流。这些引脚(及其键合线)的电感将该电流突变转换为片上电源电压的内部下降和接地电压的上升(相对于PCB接地平面)。这些电压波动可能不足以干扰数字逻辑,但它们会严重干扰模拟电路的性能。有几种“技巧”可以减少这些浪涌的电磁干扰 (EMI)。[6]
- 一组独立的“I/O”电源引脚,仅连接到I/O焊盘上的输出驱动器,与为内部数字逻辑供电的“核心”电源引脚分开。这有助于防止处理器核心中的开关噪声通过输出引脚泄漏,像天线一样从PCB走线上辐射出来,并干扰无线电和电视(以及导致FCC测试失败)。
- 一组独立的“模拟”电源引脚,为片上模拟组件(ADC、DAC等)和模拟输出焊盘供电,与“数字”电源引脚分开。这有助于防止处理器核心中的开关噪声干扰模拟组件。
- I/O总线引脚(地址和数据),仅在I/O总线周期内切换,与存储器总线引脚独立。所有外部存储器和I/O设备的单个公共总线迫使每次存储器访问切换连接到每个I/O设备的PCB上的所有地址和数据线,辐射出更多的噪声。
- 扩频时钟
- 内部时钟倍频器或更通用的时钟PLL - 这允许内部处理器核心以高速率运行,而无需将该高频率直接连接到任何PCB走线上。
- 在芯片上放置一些内部存储器;仅以高速率时钟内部存储器(缓存RAM或闪存);使用较慢的速度读取和写入外部存储器设备。
- 以较慢的上升和下降时间驱动输出引脚以减少辐射的EMI(即使引脚仍然具有相同数量的转换/秒);容忍输入引脚上较慢的上升和下降时间。
- 更喜欢差分通信总线 - FireWire、USB、XDR DRAM、低压差分信号等 - 而不是固有的噪声更大的单端总线 - RS-232、IEEE 1284、ISA总线等。
我的设计是否满足功耗目标
IR压降分析 动态功耗仿真
功耗相关方法
去耦电容的最佳位置 多电压域 多Vt设计 DVFS(动态电压和频率缩放) 时钟门控技术 电源管理单元(在不需要时关闭) 跨电压域的电平转换器
热仿真
研究热目标和减少热问题的机制。
最大且最明显的热问题是由过热引起的永久性故障。避免这种情况的一种方法是...
还有一些更微妙的问题,例如导致模拟芯片非线性的热梯度。计算机仿真通常会忽略这种微妙的影响,当实际芯片的性能比仿真差得多时,就会产生“仿真永远不会失败”的问题。掩模设计人员仔细地布置放大器,以对称和公共中心布局放置关键组件,以抑制热梯度。[7]
测试仿真
芯片出来后我的设计是否可测试,识别问题区域的方法
边界扫描 内存BIST仿真 测试仪器特定向量生成和仿真 测试仪器向量压缩技术以减少测试时间 高速测试机制 扫描移位和扫描捕获方法 IDDQ测试 晶圆级老化测试以了解良品率(KGD) 拉线测试 直流参数测试 交流参数测试 路径延迟测试 延迟测试 转换故障测试
解决DSM和良率问题
冗余过孔 间隔非关键区域以利于光刻 线加宽 金属填充 金属开槽
仿真
仿真设计的的功能行为。可综合断言被映射到仿真器以执行系统速度。
硬件原型
在可编程FPGA中原型化系统需求
尽管采用了所有验证方法和策略,如果事情出了问题,如何在设计中解决 - 降低成本和时间的策略
备用门 存储器中的冗余行/列 冗余过孔 内置自修复存储器 集中离子束方法
- ↑ “位置换指令:架构、实现和密码学特性”:第4章:硬件实现 由Zhijie Jerry Shi 2004撰写
- ↑ ARM有限公司。 “IO焊盘环设计”。2007年。
- ↑ EDA论坛。 “模拟IC设计与布局:为什么我们需要焊盘环?”。2010年。
- ↑ Erik Brunvand。 “焊盘和焊盘环”。引用:“芯片由核心和焊盘环组成。核心是核心部分。焊盘环(或焊盘框架)将核心连接到外部世界”。
- ↑ Dan Clein。 “CMOS IC布局:概念、方法和工具”。1999年。第5.3节“焊盘单元”,从第114页开始。
- ↑ “杀死EMI恶魔” 由Norman Rogers 2002撰写
- ↑ 国家半导体:AN-1485“重负载对运算放大器电路精度和线性的影响(或者,“到底什么是所有这些输出阻抗的东西?” 由Bob Pease 2008撰写
- 实用电子/PCB布局 描述了一些影响芯片设计人员和PCB设计人员的问题,例如EMI
- 维基教科书:超大规模集成电路
- 维基教科书:电子VLSI设计系统
- 维基教科书:DNA集成电路
- 维基教科书:纳米医学#BIOSENSOR_CHIPS
- 维基教科书:MEMS设计