当前位置:首页 > 嵌入式 > 嵌入式硬件

尽管在ic设计过程中针对不同部分可以选择不同的eda工具,但物理验证贯穿从版图设计到流片整个过程,如果使用不同的物理验证工具会引起前后不连续,从而导致产生错误,使出带推迟,而且在制造时也会出问题。本文讨论使用不同物理验证工具带来的问题,并介绍如何加以解决。   随着系统级芯片(soc)设计的普及,物理验证成为半导体公司、代工厂、晶圆厂以及库、ip和设计服务供应商之间进行数据传递的关键环节,成功的soc元件集成取决于成功的物理验证。很多公司传统上支持两种物理验证工具流程,即交互式(单元/模块)和批处理(大型模块/全芯片)验证工具,每个设计流程根据设计元件的类型和设计人员使用工具的方式而选择不同的工具。   soc设计要求在交互式和批处理两个阶段都进行设计规则检测(drc)和版图与原理图对照(lvs)物理验证。在设计流程开始或在建立标准单元库/模块时候用交互式工具对小单元和模块进行验证,此时设计人员需要与版图设计工具不断地交换信息,然后开始验证,在版图设计环境中对结果进行调试,不用再做其它设置。在这个阶段,版图设计、验证和调试结合得非常紧密,无论什么原因脱离版图设计环境都会使流程出现偏差。   和上述情况相反,当设计规模超出交互式验证工具的范围,或者精度是头等重要的时候,通常应用批处理工具。与交互式工具相比,批处理用户需要更全面的命令和复杂处理模块,为了实现最佳性能,批处理工具充分利用先进的验证模块,如分层检查和多处理运行(很多单数据“线程”运行在多个处理器上)以缩短整个验证的时间。 由于待处理数据量很大,验证运行时间需要几小时才能完成,正因为此,使用批处理工具的设计人员通常开始运行后就去执行其它任务直到运行结束,然后再回过头调试。批处理工具也可用作指定的签出(sign-off)工具,确认芯片可以出带并交付给晶圆厂或代工厂进行制造。   这种采用两种验证工具的验证环境需要用到不同的规则文件,这些规则文件之间的不连续在单元和模块进行全芯片集成时会引起严重的分歧,不连续还会导致制造问题。   两种流程的差异   在不同流程内有两种工具完成类似的微调任务,表面上看起来很好,但实际上这种环境很容易出问题。微调表明在每次改进验证流程时,必须不断校准每个工具才能得出相同的结果,这需要宝贵的时间和资源,并可能使流程更新推迟。   另外,应用两种模型要求分别维护交互式和批处理物理验证工具及其各自的规则文件,这种分离会在工具、规则文件和验证结果之间产生差异。例如在批处理验证期间发现一个交互式验证漏过的单元设计错误,将会使整个物理验证流程受到质疑。   如果出现“有的错误发现,有的错误漏掉”情况时,设计人员必须查明为什么会漏掉错误,以及在进行验证之前要采取哪些行动。仅仅改正错误会对其他人员的设计部分造成不利影响,跟踪这些差异需要多个设计人员和cad工程师共同参与,他们必须在一起确定下面的问题:   1. 在报告有错误时,交互式和批处理工具究竟哪个是正确的?   2. 谁应该“负责”或解决这个错误?   3. 工具之间为什么有差异?   4. 在今后设计中怎样消除这些差异?   差异表明存在下列两种情况之一,即交互式规则文件与代工厂标准批处理规则文件不同步,或者交互式工具不能为现代深亚微米工艺所需的复杂检查进行编码。   认识到差异并“承认”错误之后,设计人员必须对版图进行修复,cad工程师则需要更新验证流程。但如果错误是在库单元或ip模块里,设计人员可能无法随意地更正或更改,这些模块的修订控制使得更新难于进行,而且外购的ip不能保证改变后仍然工作正常。解决这些问题不仅要耗用宝贵的cad资源,还会造成设计和出带延迟,所以了解产生差异的原因是防止将来再次出现的关键(图1)。

  每个验证工具都有自己的处理引擎和规则文件语法,处理引擎的工作方式差不多,但在性能上有很大差异。更多是为满足速度要求的交互式验证工具,可能不包括进行复杂检查的批处理验证能力,在很多情况下,某些规则不能针对交互式工具进行编码,这样在用批处理工具时就会有元件集成问题,这就是批处理模式下交互式工具验证过的单元和模块中还会发现错误的主要原因。   为交互式和批处理流程编写的规则文件经过编码后,再按代工厂或晶圆厂规定的规则文件规范去检查错误,这些设计规则规范可以保证可制造性和最大产量。在半导体公司,规则文件是执行规范,根据给定设计类型的性质,可以增加规则以进一步加大产量增强性能。创建和保持这些规则文件比较困难且

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭