芯片设计流程
白皮书
目录
1. 概述
2. 先进的全定制设计方法(ACD )
3. 芯片集成所遇到的挑战
4. Virtuoso芯片集成设计流程
5. 结论
插图目录
图1 先进的全定制设计方法
图2 多领域集成范围
图3 Virtuoso芯片集成设计流程
芯片集成设计流程——先进的专用集成电路设计(ACD )方法
1. 概述
本文介绍采用Cadence Virtuoso全定制设计平台所用的芯片集成设计流程。Virtuoso 设计平台适宜应用于集成不同设计领域电路模块的全定制集成电路的设计;这些模块可能涵盖模拟电路,专用数字电路,RF 电路,以及存储器电路/阵列等不同电路门类。该平台可以对这些不同门类的IP 模块进行集成;也可以按照集成的需要与方法输入数字标准单元模块。
Virtuoso 设计平台依据的是一种包罗万象的设计方法。它全面周到地考虑到各个集成电路设计门类的特点,以及它们对进一步集成的要求;因此可以作为一项标准的“蓝图”供各种专用的适用于某个门类的设计平台比照参考。先进的全定制设计(ACD , Advanced custom design )方法的白皮书可以在。
芯片集成设计流程就是以ACD 方法学为依据;也是Virtuoso 设计平台中众多设计流程中的一个组成部分。
2. 先进的全定制设计方法(ACD )
ACD 设计方法如图1所示。可预测性是驱动ACD 设计方法发展提高的动力,它包括两方面:1)在设计过程的最开始阶段就考虑如何能够实现计划的目标,设计过程必须是最后完成设计的最快途径;2)在选择如何达到性能要求时,应该考虑实现一次设计就获得成功,因此需要采用能够保证硅芯片物理性能精确(即所谓的硅-精确性(silicon-accurate )的实现方法。-
图1 先进的全定制设计方法
为了达到设计的计划进度要求,所选择的快速设计过程需要能够支持完整的仿真与物理设计。在此设计过程中包括许多具体的设计任务,此外当今的芯片又是由许多不同门类的模块所组成。因此在设计时需要同时将尽可能多的模块同时并行进行设计,需要将尽可能多的设计任务同时并行推进,也需要在整个设计过程中尽可能地巧妙利用处于最高抽象层次的IP 。这种方法自然而然地形成了设计演变发展的概念,在此演变发展过程中所有的IP 也随着设计过程的推进逐步形成并完善。如果在仿真和物理设计中都采用自顶而下的设计方法将有助于推进快速的设计过程。将许多抽象层次的设计描述(即从最高抽象层次到最详细具体的晶体管层次)的设计描述结合在一起进行设计的方式属于混合层次的设计方式,它仅仅在一定的测试时期汇合在一点。这样设计人员可以在最高抽象层次充分利用设计模块的信息,并且在随后模块反复验证过程中应用最高抽象层次的描述。
而在另一方面,则需要具有硅-精确性以保证能够达到所要求的设计性能。硅精确性依赖于基本的设计数据,例如支持精确仿真的器件模型和支持连接、
物理验证与分析的工艺文
件。测试芯片中由已知的高灵敏度关键结构组成,用来验证工艺的可行性和工艺设计包(PDK )的精确性。设计小组经常为支持某种特定风格设计而给PDK 增加某些组件。可能也需要扩展器件模型以组合和增加某些工艺边角、统计模型或其它设计组需要的数据。 硅精确性也通过在设计过程中对详细的晶体管级设计的分析,不断积累数据而逐步提高;其中也包括通过从实际版图设计中提取参数。在这些较低抽象层次上进行的分析与参数提取,可以对较高抽象层次的数据进行校准。这些工作形成了ACD 设计方法的自下而上的过程。
这种自上而下和自下而上的过程相结合并行运行形成了一种“中点会合(meet-at-middle )”的设计方式。正是由于采用这种“中点会合”的设计方式才能够既提高设计效率加快设计进程,又提高了设计的硅-精确性;并最终使得设计能够按照可预测的计划进行,并有可能实现设计的一次成功。
ACD设计方法可以用于复杂集成流程或某特定领域中。对各个域应用“中点会合”的方法可以同时获得由上而下的快速设计和由下而上的硅精确性。
3. 芯片集成所遇到的挑战
Virtuoso 芯片集成设计流程使用多个领域的IP ,为混合信号宏单元模块以及大规模的混合信号系统芯片(SoC )的物理设计提供了完善的集成解决方案。设计流程包括从版图规划(Floorplanning )直到版图设计完成交付流片。它针对的使用者是全定制设计人员,他们的任务是将若干个模块集成在一起或设计某个具体的模块。这个模块或者被应用在一块规模更大的以数字电路为主的集成电路中,或者被应用于一块完整的混合信号SoC 中。此时全定制设计人员所执行的任务是进行集成,而对于所用的数字电路模块则是仅仅进行读入。
Virtuoso 芯片集成设计流程调用模拟电路、数字电路以及RF 电路等门类的IP 模块进行集成,它主要进行版图规划、布线、物理验证和芯片设计的最后完成。任何设计都可能包含许多集成的要求,都需要从若干个不同门类中选择IP 。图2给出了SoC 集成过程的全貌,此SoC 从许多领域取用IP 模块。
由于此解决方案是针对全定制设计人员的,它可以和Cadence 公司的Encounter 数字IC 设计平台结合起来使用。Encounter 主要针对的用户是数字IC 设计人员。这时可能会出现两种情况。在第一种情况,全定制设计人员的任务是创建一个宏单元,并将它用于设计规模更大的系统级芯片SoC 。这个宏单元也可能包含数字电路的内容(一般的规模大约为10万门)
,图2 多领域集成范围
甚至可能包含好几个全定制的模块。在这种情况下Virtuoso 芯片集成设计流程的主要任务是用来创建宏单元。由于宏单元并不是一个完整的芯片因此设计流程中并不需要芯片设计的最后整理。完成了的宏单元的设就交付给SoC 设计小组。SoC 设计小组读出此全定制设计的IP ,并且用Encounter 设计平台进行芯片的集成。输入给Encounter 设计平台进行版图规划的数据可能仅仅是一个抽象的描述,但是从Encounter 设计平台输出的却是数字部分的完整的版图。Encounter 设计平台接着进行布线与物理设计验证,最后交付给SoC 小组一份完整的宏单元设计。
第二种情况是需要将若干个模拟模块和几个数目较少的数字模块集成,形成一个完整的芯片。但是其中的数字模块的规模可能很大,可能需要运行数百万次实例调用(instance )才能实现。如果全定制设计人员需要对此芯片进行集成,可以采用在第一种情况下所采用的方法来对待这些数字模块,可以在整个芯片的层次上进行版图规划。在芯片设计完成布线和物理设计验证以后,按照设计流程进行芯片的最后整理。这时可以依据规模极其庞大的数据库进行一些修正,例如进行一些细小的改进,插入划片线,插入商标标记等等。在进行设计流片任务时,如金属填充,需要再一次进行物理验证。
选择什么样的解决方案和在什么样的情况下进行,取决于所进行的设计的设计类型,也取决于设计小组执行设计集成所具有和所积累的技术经验。如果数据量比较庞大,采用OpenAccess 数据库有利于全定制与数字式解决方案的交互进行。一般地说Virtuoso 芯片集成设计流程十分适合于进行模块层次的设计,这些模块中可能有几个互相关连的模拟模块,和一些数目比较少但是在时序关系方面互相依存的数字式模块。(如果出现这种情况最好应用Encounter 设计平台先将这些在时序关系上互相依存的模块结合在一起。)这时使设计集成人员在一种熟悉的环境进行全定制和模拟电路的布线十分有利。
另外一个值得考虑的方面是此流程如何处理衍生设计问题。在相当多的情况下,许多设计实际上都可以看作是以前设计的衍生产品,因此采用“中点相会”的设计方法是有其必要性的。有一些模块是新的;有许多模块的尺寸是固定的,可以看作硬IP 。因此要求设计方法必须既能够支持自上而下的设计方法,也能够支持自下而上的设计方法。
物理设计在设计流程中处于最后阶段,在最后阶段对时间进度的要求总是比较紧张的,经常承受着最后流片期限的巨大压力。在这种情况下,整个芯片的集成与验证过程必须具有非常高的预见性,特别是在流片前的几周内更是如此。此时,容不得出现任何布线或者验证问题。因此最好的解决方案是依靠逐步改善的演进方法,使用这种方法时,随着新模块构造的形成,设计也逐步建立起来了。逐步改善演进的设计方法对于物理设计的重要程度,丝毫也不亚于不断的回归对于仿真与验证的重要程度。这种方法是保证达到设计进度要求的关键。采用这种方法,在设计过程中的最后阶段进行的微小改进可有效地加入已知的过程中去,保证达到预期的设计进度要求。在最初的几个设计方案中应该使问题尽可能地暴露,因为这时有比较充分的时间可以解决问题。
有关寄生参数的信息是物理设计阶段的另外一个关键输出结果。虽然在物理设计阶段并不需要应用这些寄生参数,但是前段设计的仿真小组却十分倚赖于寄生参数信息。因此为顶层设计布线收集寄生参数信息,并且在设计过程的早期阶段传送给模块设计人员具有十分重要的意义。这样模块设计人员才有可能应用这些信息,并将它们反映在给出的模块的技术规范中。一些关键的网线也才能够被发现,并且在早期以及之后不断地受到检查。
除了提供寄生参数以外,也可以在设计过程中尽早进行物理设计分析,也可以将物理设计分析作为不断改善设计演进的一种功能。这种功能对于电源网络的设计具有特别的重要性,这样可以在每次设计循环中都进行分析与验证。
如上所述,一个成功的全定制芯片集成设计流程应该包括:
具有在不同门类的设计之间双向传送数据的能力;
在设计早期进行版图规划的能力,以利于自上而下与自下而上设计方法的开展; 模拟布线的能力以利于设计演进的不断改善;
在早期并能够经常提供寄生参数与进行设计分析的能力;
具有强大的数据库能够进行芯片设计的最后整理。
4. Virtuoso芯片集成设计流程
Virtuoso 芯片集成设计流程必须能够在设计的许多阶段接收设计。所预期接收的数字设计内容能够作为一个完整的黑匣子进入设计流程,因为Virtuoso 芯片集成设计流程并没有包括创建数字设计内容的功能。该集成设计流程如图3所示。
图3 Virtuoso芯片集成设计流程
在设计的版图规划阶段,Virtuoso 可以接收各种抽象层次的输入,既可能是完整的硬IP ,也可能是对于仅仅进行了部分设计工作的设计所需占用面积的估算。这时设计人员可以对这些设计成份进行权衡处理,根据布线的要求改变其设计,优化其布局,安排引出端的位置。有关“软模块”(即需要重新进行设计和因此需要进行修改的那些模块)的抽象描述或者被送回模块创建流程(是Virtuoso AMS 流程的一部分)或者被送到Encounter 设计平台(属于数字设计的内容)。
在版图规划完成以后,这些模块开始其设计流程并进行第一轮布线。这一步也向设计人员提供有关布线的早期信息,即提供此设计布线的难易程度和能否全面布线的信息,同时也可以相应地对版图规划进行一些微小的修改。同样在此阶段,也可以进行电源网络的初步分析,并且可以根据分析结果对电源线的布线进行一些调整。这时也编制完成脚本程序以便尽可能多的重复上述过程——重复的次数越多,设计成功的可能性也就越大。如果其他人员需要通过该流程进行设计时,设计人员也应该尽量捕获一切IP 设计或其它有关知识(例如,使用人工布线的关键网线和需要密切关注的面积区域)。
有了最初的布线结果以后,设计人员就能够开始生成顶层网线的寄生参数(或者为全部网线提取寄生参数,如果能够确定关键网线时也可以为这些关键网线提取寄生参数)
。在设
计过程的早期,这些参数可以作为模块的技术规范和负载特性提供,以便在仿真过程中使用(关于仿真过程在Virtuoso AMS参考流程白皮书中有所论及,该白皮书可在网址
。这一点对于确保以较少的模块级设计循环完成设计,且)
能够比较平稳地实现顶级仿真,以及在设计周期的后期不至于产生意想不到的结果都十分重要。
随着模块设计的逐步完善,在顶层重复进行设计循环,形成了不断完善逐步演进的设计方法。继续进行这样的过程,直到所有的模块都最终定局,然后依据这些模块进行最后的布线。物理验证则在每一次布线后都需要进行。当所有的模块最后定局以后,将它们全部输入并存储在数据库内,并在最顶层重新进行验证。在进行最后的验证时,数据库内已经具有全部所有模块级的描述。这时,应进行最后的RCX (RC 参数提取)操作(同时也需要将结果输送给AMS 流程以便用于验证),同时也需要进行最终的电源网络分析和电迁移分析。
芯片的最后整理工作是为了使数据库能够为流片完成做必要的补充修正。这些修正任务是依赖整个数据库运行的,并且经常由于规模巨大的数字部分内容存在使得数字部分成为一个规模巨大的实体。有时设计需要在此层次上进行一些微小的修改(例如改变某些金属连线)。另外在流片前,由于需要加入划片线,增加商标标记等任务而需要访问整个芯片的数据库。最后,还需要进行金属化填充,或者按照代工厂商的规定要求进行一些加工;然后才能够交付流片。
Virtuoso 芯片集成设计流程的运行需要依靠整个Virtuoso 设计平台的工具系统,这些工具系统包括:Preview 选项、Virtuoso Chip Assembly Router、Virtuoso Analog VoltageStorm 电源网络设计选项, Assura DRC/LVS/RCX 验证套件,以及Virtuoso Chip Editor等。此外,Virtuoso 芯片集成设计流程是基于OpenAccess 高性能建立的。OpenAccess 功能使得该设计流程能够处理大规模的混合信号设计。
5. 结论
Virtuoso 芯片集成设计流程是Virtuoso 设计平台的一个重要组成部分,它能够以全定制的方式跨越不同领域进行全面的集成。它和其它解决方案,如Encounter 设计平台,能进行多方面的密切配合使用,使得设计能够针对不同的设计任务选择使用不同需要的解决方案。Virtuoso 芯片集成设计流程可被用于从宏单元开发到整个混合信号芯片集成的设计任务。