摘要:在传统的设计流程中,后端设计人员必须等到前端RTL设计工作完成后才能开始工作,这样不仅会影响整体工作进度,还会影响产品质量。例如,芯片的多个逻辑模块可能已经设计完成了,但其它人的工作还要等上好几个月。在典型的平面化设计方法中,由于物理设计小组无法访问完整的网表,因此无法开展具有重要意义的实验工作。本文介绍的分层设计方法允许物理和逻辑设计协同展开。
现在的芯片设计中所出现的问题更多地与流程有关,与所用的工具关系不大。由于技术人员的缺乏,加上物理设计(如SoC)复杂性的提高,建立能成功组织并协调工具、数据与人员之间关系的内部流程变得越来越困难。另外,深亚微米半导体工艺的发展以及设计工具的愈加多样性使问题变得更加复杂。因此当今的工程师们需要的不仅仅是全套工具,更需要世界设计师们的经典流程和软件技术作指导。
Hopper的出现给业界带来了新的希望,利用它可以设计出高性能的3dfx交互式图形芯片。Hopper是一种的自动化物理设计软件,它所提供的自动化物理设计流程能够进行:1. 邻接模块的层次化设计;2. 协同设计;3. 所有设计任务的自动化,以及更加方便的实施“如果...将会怎么样?”试验。
与商用化工具如Avanti公司的Apollo、Hercules、StarRC-XT甚至那些能完成信号增强器插入及时钟分配的工具相比,Hopper都略胜一筹。Hopper实质上是一种自动化引擎,在工具知识(默认设置)和设计知识(适合特定芯片的工具参数和事件顺序)的帮助下,它能使ReShape迅速具备物理设计流程的实用技巧。
利用Hopper设计的3dfx图形芯片具有以下一些性能特点:
1. 采用TSMC的0.18微米制造工艺;2. 六层布线;3. 150万个可置放对象 ;4. 3千万个晶体管;5. 200个RAM、4个PLL、3个D/A转换器和2个AGP;6. 18个模块(12个内核、4个焊盘环(pad-ring)模块);7. 18个不同时钟,频率为533MHz(典型值为200-350MHz);
8. 的模块有25万个可置放对象;9. 增加的信号增强器有1万多个。
类似这样的设计其增长速度远远超过EDA工具的发展速度,因此层次化物理设计的必要性也越加突出。分层方法产生的网表会更小,它能缩短设计周期、提高工具可靠性,因为需要转存的内核更少,产品质量也会有质的飞跃。
更重要的是,采用分层设计方法后各设计小组可以在模块级协同从事同一块芯片的开发工作,从而使人员与工具的利用效率得以有效提高。
另外,层次化设计流程能使设计人员的信心在每迭代后更加坚定。根据定义,芯片的各个模块能有效地控制单元固有的离散性,从而限度地减少时序或拥塞的变化。但传统的平面化流程不可能保证这些单元定位在邻接的位置,因此每细微变化所需的验证迭代都会带来新的问题。
传统分层设计的缺点之一是缺乏多种优化措施,因为各个模块都是独立的,有些必要的改变对工程师来说缺少透明性。这种“水平作用(horizon effect)”会导致较差的产品质量。有许多任务会受到水平作用的影响,如:1. 引脚分配;2. 电路规则(如跃迁);3. 时序问题;4. 验证问题(如天线规则);5. 时钟分配;6. 功率分配。
而ReShape设计流程在进行层次化物理设计时不存在这些问题。因为在该设计流程中上一步骤的输出会作为下运行的输入,再通过对变化的观察,设计人员就能确认上次设计中模块间的适应性,从而可以根据历次设计数据调整布局。传统的设计流程试图通过运行就产生化的布局结果,而ReShape流程允许设计的多次运行验证,每运行都能使布局更加精良,从而产生的布局效果。在某种意义上,随着运行次数的增加,ReShape工具的智能特性会进一步增强,以致于能利用前次的布局避免水平作用的发生。
传统的层次化设计流程依赖于所有模块间留出的开放式通道,这些通道主要用于提供设计修改时所需的连线空间。但通道的使用是不受人欢迎的,原因有三:1. 由于它们的使用会引起成堆的连线,因此极易产生线间耦合问题,不能保证芯片的全速运行,甚至会使芯片出现故障。2. 网络的走线路径太长,因为它们只能绕过而不能穿过模块。3. 它们会浪费芯片的宝贵空间资源。
为了解决上述通道问题,ReShape设计流程采取利用相邻模块的做法。由于信号线可以直接穿过模块,并对模块内部的额外金属资源作了充分利用,从而使模块间的互联性能得到了极大地优化,这样模块间的空余空间也就不复存在了。ReShape流程的应用使物理设计更加紧凑,布线距离更短 ,从而使终产品具有更短的路径、更高的可靠性和更快的工作速度。
协同设计
如果没有后端设计的反馈信息,功能设计人员在设计时不可避免地会产生很多问题,一旦芯片进入物理设计阶段,这些问题的解决就变得相当困难,代价也非常巨大。但协同的功能和物理设计则可以避免这样的问题,因为只要某些网表的主要结构定下来物理设计人员就能开展工作了,这时距整个前端设计完成可能还有数个月(有时甚至会是一年)的时间。
物理设计的提前启动能使前端设计人员有充足时间重新调整RTL设计,以解决物理设计阶段产生的问题。前端设计人员做出的决定可能会影响到物理设计,因此理想的方法是向他们提供足够的物理设计信息作为他们决策的参考。设计中的早期反馈能使产品拥有更高的性能。事实上,随着深亚微米设计的出现,需要更多地考虑多个信号增强器插入时通过芯片的时延,因此带预布局的早期试验工作变得越来越重要。
协同设计的可行性在于模块级网表的主要结构会在设计的较早阶段确定。功能设计阶段的剩余时间通常用来实现控制逻辑、设计验证和微小缺陷修改,但这些变化通常不会对后端阶段的网表行为造成太大的影响。有了这样的概念,就可以让物理设计人员访问已经完成的部分逻辑,从而充分体会协同设计带来的好处。
采用ReShape设计流程后,协同的前端和后端设计能使RTL设计人员选择更方便的时候进行修改工作,并能更加有效地解决后端问题。这一优点非常重要,例如在设计型模块时,设计人员经常被拥塞或热点问题所困绕。检查发现该区域的部分分层网表中包含有大量的高扇出网络,它们是实际功能为2:1复接器的AOI门的选通信号,Synopsys工具之所以选择AOI门是因为它们在纸张上的印刷效果要稍微好些。
为了解决这个问题,需要做二方面的修改工作。首先把综合脚本改成“infer-mux”指令,这样可以将高扇出网络的数量减半。另外,需要在流程中对这一模块再做缓冲树优化。因此,通过对这些后端故障的早期发现,RTL设计人员可以轻松地开展修改工作。
在深亚微米设计中,线模(wire model)与实际产品之间的差异是非常大的,此时协同设计很难或几乎不可能用于时序收敛。一些比较保守的设计人员希望能利用设计余量来缩小这些差异,不幸的是,现在的工艺水平下这种方法常常是不可行的。
ReShape设计流程为每个模块创建了仅用于综合的线载模型。逻辑设计师通常都忽略综合时序(简单的A对B网表比较除外),反而对后布局时序非常感兴趣(这种基于布局的时序至少与上次的全布线/全抽取运行相关)。
这些线模仅用于创建具有相当硬性(stiffness)的网表,这些网表可以用来优化后端的时序收敛。线模一旦设置正确设计师就可以向流程中注入新的网表,并在数小时后用实际数据评估RTL或综合的变化。
经过运行后,设计师自然想知道芯片的时序是否收敛,是否存在布线拥塞问题。采用ReShape流程后,大多数模块的整个环回过程只用花几个小时。例如,具有10万个可置放对象的模块达到时序和布线的完全收敛共花了10个小时左右,同一过程如果用传统方法可能会花上数天时间。当RTL收敛于一份网表后就可以正式输出了。
由于采用了自动化和分层设计工艺,从草图到设计出完整的3dfx芯片可以在24小时内完成。从门级网表开始(网表本身就超过1兆位),加上预布局、经过资源树检验的流程配置,总共有4000多份独立的子任务,终所有的模块都经过布局布线达到了时序收敛。ReShape工具与Avanti运行工具共创建了1万多个文件。
如果因为网络或硬件问题使系统发生了故障,该设计流程能自动重启并从中断处自动恢复运行。
自动化处理
ReShape设计流程的一个优点是能自动处理分层物理设计通常所需的成千个手工作业步骤。该设计流程提供了在各个阶段增加特殊自动化操作的框架结构,可以解决模块建立时引起的许多问题。设计师明确了需要自动化处理的耗时任务后,就可以开发出与流程相配套的代码来完成这些任务。自动化处理不仅可以节省大量的设计时间,而且由于它的基础是原有芯片的成功经验及被证明的完善配置,因此设计人员可以有时间调整这些设置,确保获得的工具性能。
继承过去的设计技术
在这次实际设计中,布局过程分成几个独立的步骤完成。首先是准备命令文件。一开始,设计流程需要打开数据库并进行模块学习,对根据用户参数定义的控制加以利用,继而生成一个命令文件,该文件包含了设计人员所学到对这一模块进行布局的方法。任何使用该流程的人都能获得流程创建人员的有益经验和知识,该流程创建人员也许就是以前的模块创建者。
另外一个例子是日志文件浏览的自动化。日志文件记录的是供应商工具所产生的完整通信内容,能告诉用户每个任务的执行结果。如果设计人员没有详细浏览日志文件,可能会在成千上万行数据中错失能指明问题的重要一行信息。更可怕的是该信息可能数天或数周内都不会再明示出来。ReShape流程内嵌了记录检查软件,能自动打开和阅读记录文件,自动寻找错误信息,找到后会暂停搜索并加亮显示该条信息。
不管设计工具如何先进,在做新的项目或采用新的库或工艺时总会有新的物理设计问题产生。通常EDA供应商只能解决其中的一部分问题。但ReShape流程所创建的特殊用途代码可以满足特殊需求,这些代码配置好后可以集成进设计流程中,使流程具备了功能强大的可以增加这类工具的框架结构。
例如在3dfx芯片中,有若干AGP和SDRAM总线,它们的时钟斜率参数是非常严格的。3dfx公司以前芯片的时钟斜率是通过手工编辑处理的。然而如果焊盘环需要作些改变时(如内核尺寸的变化或焊盘的移动),手工布局就无法适用了,此时人工布局需要全部推倒重做才能适合新设计的需要。
为了解决上述问题,ReShape提供“点工具”来处理这些AGP总线布局,当预布局方案改变时这些工具代码是可以重编的,因此设计人员能够方便地改变芯片的物理设计,只需一个按键就能放大或缩小芯片尺寸,每次尺寸改变后所有以前设好的数据都会自动重新生成,并会创建符合AGP性能要求的平衡总线。因此设计人员在修改芯片尺寸时无需关心平衡总线的复杂布局,给试验带来了极大的灵活性。
事实上,在芯片设计过程中焊盘环的整个构建过程是手工参与成份多的工作之一。但是,现在可以利用可配置点工具方面的库来创建适合焊盘环各个组装环节的可重做流程(replayable flow)。
流程中的一项测试是如何快速地实现修改。分层设计流程的另外一个重要特点是能从新的网表中重建某个模块而不影响芯片的其余部分。而传统的平面化设计流程中,芯片任何部分的改变都会影响到整个芯片的设计,需要付出大量的重复劳动,因此会严重影响芯片的产能。
分层设计方法为终的物理设计指明了正确的方向,能使设计人员从容应付时刻的网表变化。例如,设计人员需要在距正式投产前仅有三个星期时修改一个3万门的设计,而且这个修改是比较复杂的,需要增加新的功能来满足的图形标准,这对芯片的市场开发很重要。同样重要的是,这次修改只影响全部22个模块中的三个模块,因此设计人员可以隔离这三个有影响的模块,并只对它们做重新综合,芯片的其它部分仍维持不变。而平面化化流程则需要重新构建整个芯片,这会极大地推迟产品上市时间。
很强的适应性
ReShape除了对目前所设计的芯片具有很短的设计周期优点外,对未来芯片的设计也有很大的帮助。因为ReShape设计流程能在设计过程中不断地收集学习相关知识,壮大自身的功能,因此将来在设计采用相同工艺的芯片或工艺不同但功能相似的芯片时可以借鉴。
ReShape设计流程的价值在产品投产后一个月就得到了证明,此时3dfx公司正在利用该流程进行另一个相同工艺的芯片生产。在3dfx转产过程中,正在设计的仅有70万个可置放对象的另三颗芯片,采用的都是0.15微米流程。
所有的预布局信息都有助于采用新工艺进行芯片的再设计,因为这些信息都是现成的,而且与以前的工作有关。另外,所有的尺寸都能以可处理工艺尺寸的大小定义,如线间距的单位,因此非常方便进行芯片的重新综合,并采用相同的布局方案执行新的流程(当然只是尺寸更小了些)。这里设计人员仅用了两天时间就把一个芯片从0.25微米工艺改成了0.18微米工艺。
新的芯片通常都会存在来自前一版本设计的模块,在ReShape流程中,这些模块的布局设计代码同样也是可以充分复用的。
数据管理
传统分层设计流程同时还面临数据管理方面的挑战。那些脚本、命令文件和数据库的数量会随着N次迭代和N块分层流程急剧增加。即使每个块的大小和复杂性非常便于管理,但大量设计项目也会给设计人员带来巨大的工作量。在传统的分层流程中,如果预布局有任何改变,如模块尺寸的变化或模块的移动,所有的模块级脚本和命令文件都需要重新生成。
ReShape流程则可以集中管理、组织和自动化所有这些模块级对象的产生。上千个工具参数必须设成具有智能性的默认值,而且设计人员必须能够在流程中的任何阶段修改这些参数。为了解决这个问题,ReShape流程可以根据所用的工艺、特定的芯片类型及芯片内的特定模块类型提供层次化的配置文件来控制这些设置工作。这样就消除了上百个脚本文件和到处散布的零散设置,只有少量的中心文件,而且这些文件在修改控制中能方便地保存下来。
设计人员可以把这些大量的独立可变设置看成是一种“技术对象”。当需要采用新的工艺时,设计人员可以调试这些参数,然后通过重新生成流程来输出这个“技术对象”并进行新工艺下的芯片重建。
该流程还允许用户在开发模块时共享数据。例如,通常都会有一个人负责芯片的预布局以及顶层电源与时钟的分配。接着这个人会将每个块的内容输出给该芯片各模块的主人。虽然各个模块的主人只对他们工作的模块负责,但他们也可以根据这个输入信息创建芯片的完整拷贝。由于他们都有相同的管脚连接图、电源接线图和其它全局对象,因此终他们能从任何模块的角度输出芯片设计。
实际的试验结果证实了上述说法。把从TSMC返回的3dfx交互式芯片置于电路板上后,芯片能以速度运行,这也是设计人员所采用的严格功能及时序验证方法、Hopper和ReShape物理设计流程所能得出的结果。
[Integrated System Design]
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。