作为一个数字化设计的工程师,在模拟设计过程中,那些不稳定不可测的因素所可能造成的影响都会使我非常焦虑。而面对一些使我焦虑的东西时,我总会试图寻找一些办法去解决和避免它。但是,模拟的过程事实上是无法避免的。相反地,越来越多的模拟/混合信号(AMS)的功能特性的应用,正是今天的系统级芯片(
SoC )设计取得成功的重要因素
对于我们这些习惯于在数字信号背景下工作的人,可能很难在大脑中勾画出发生在模拟领域中的设计图景和实际执行情况。因此,我们需要设置一下场景,在这个场景下我们可以先考虑以宏观的视角,基于数字SoC做一个设计流程。然后,我们会将此与实际的模拟对象相对照。最后我们必须考虑一些难以置信的很酷的因素——模拟设计和实际执行——这些事情有时就像面对面朝我们奔来的一辆失控的特快列车。
我们要做的这件事情的一个显著特点是,在数字部分,一个现代化的SoC设计流程是全部程序自动化执行的。整个过程开始之前,就有人想出一个巧妙的主意,为如图1所示。

图1 一个基于数字的高级设计流程
这个数字流程涉及到两个主要的概念:网络之间互连的协议( IP
)和高级编码与合成技术的结合。比如说在设计这个流程之前,数字化设计团队将从他们的可利用的设计素材中选择一批IP模块,也许有CPU和/或数字信号处理器,也许有一小撮外设和加速器内核,可能还有一些接口功能,等等。在系统芯片的整体功能的设计版图之中,这个IP模块的设计也许就会占据了其中很大的一部分。
当涉及到这个产品区别于其他同类产品的特点——也就是竞争中的“秘密武器”时,数字设计工程师通常会对寄存器传输级( RTL
)的功能作一些必要而抽象的描述。(该IP模块也通常是被明确指出的、被加密或者抽象化的RTL) 。
下面提到的快速功能仿真中(是的,讲解过程中我淡化了它的复杂性),合成技术是用来把所有高级模块转化为门级等同的设计。.然后,我们得以成功获取难以置信的先进技术——这好比我们获得了顺利过关的的地图。令人喜出望外的还有自动完成的布线和优化。接下来,是在进一步完善仿真,时序分析,信号完整性分析等环节下体现其价值的寄生参数提取。
以上的演绎可得出,因为数控自动化贯穿整个数字部分流程,所以过程非常高级和简单化。
这种处理方式——IP的RTL代码与合成技术相结合——使构想和操作数字部分的设计变的相对容易。(我说的
“相对容易”,是与用人工来完成一切工作量的情况相比较。如果把完成大型SoC设计比喻为一连串的关隘,你能想象这一切都用人工而非程序自动去完成么?我们将发现,这些是做模拟电路设计的人必须做的。
)
此外,这个工作方式有利于你的设计工作升级换代,或者从一个技术节过渡到另一个。.如果您现有一个设计成品,要从65纳米转移到45纳米工艺,这样,您只需更换单元库,修改您的制约参数,按“执行”按钮,让整个过程像魔术操纵着一样,自动的执行合成,布局规划,排列……一系列动作。(我知道这个过程也许没有我在这里描述的这样简单..但它肯定简单到能够使任何正在做模拟工作的人对整个流程一目了然)
。
过去传统的模拟设计流程所以,你觉得在模拟的樊篱之中的人生会是什么样子?而为什么这些家伙总是掌握令人惊讶的狡猾手段?老实说,当你发现真相,这让你哭笑不得。让我们在一个高屋建瓴的角度参考一下模拟部分的设计流程,如图2所示。
事情是这样发展的:我们开始与某人有一个好点子(关于模拟部分的SoC设计
),每个人都蹦着高的说这个点子太棒了。所以接下来我们要做的就是实现它。
模拟IP ?不要让我发笑了(至少没有进程便携式模拟IP )
。我们所能做得最好的设想是,也许可以重新使用一些现成的晶体管级电路图作为一部分设计的出发点。其余的设计会采用新的晶体管级电路图。
仿真是由SPICE-like模拟器或一个起到相同作用的快速SPICE模拟器来呈现的。合成技术没有出现在所有的图片里。布线和放置的晶体管和其他元件是由人工完成。
.同样,布线的设计是由人工完成。
如果我们的同行可以穿越时间的迷雾,到20世纪80年代去,那时,如晶体管的型号和其他组成部分被指定的属性等参数,都体现在电路设计中的示意图里。这些特征被spice仿真器所使用,同时也被那些在多边形的线层上逐个生成各种器件(接着就是布线)的版图设计者所使用。(事实上,这样子说是有点简化的,因为直到今天,一些被传达给版图设计者的特性依旧是示意性的文本注解,或是经由文本文档或是经由铅笔和草稿纸来写就)。
20世纪90年代初,Cadence公司推出了PCells(参数单元)的概念,概念中描述了一个专有的Lisp语言类的脚本语言所要求的技能。在这个例子里,电路设计师先示意性地布放PCell符号,然后再将参数与这些实体相关联。
最终,每个PCell使用其相关参数为那些单元自动生成的初步布放的版面。我之所以说“初步”
,是因为一些版图设计师最终将PCell替换为其多边体系中与其相等或相似的(这一过程被称为“砸” )
,然后开始手动“调整”这些多边形。版图设计师还必须做很多其他的东西像邻接,充分融合,消除奇点,并使得行与行之间尽可能近,以便建立一个更紧凑的布局。接着他们去布线。
以下提供一个规模上的感官认识。如果我们有一个3万个晶体管构成的混合信号并串行与串并行转换器块,举个例子来说,如要完整的规划这个块可以很容易地让一个或两个版面设计师花上2至3个月的时间。(三分之二在布放器件,三分之一在连线)
。
我不知道你将如何,但这并不能阻止我乐不可支。
一个勇敢的新大陆如果能够做到让模拟的人用某种特殊的语言指定一个功能,将设计进行高度提取,自动综合成优化的晶体管级的网表,然后对网表自动进行布局布线,这样不是很好吗?这样确实很好,但是我们还没有达到这一步,那么我们现在事实上能做的是哪些呢?
经过若干时间后已经可用的一种技术就是手动生成一个晶体管级的网表,并在此基础上指定各种参数的值,同时也可以用它来定义计算输出的优劣和诸如功耗的标准,然后可以抛开那些经由一系列各种参数和它们各自的延伸所组成的长的串行仿真序列。这个方法的缺点就是它只对那些相关的小电路有效,虽然如此他还是需要大量的时间和计算资源。
Magma设计自动化运用它的名叫提坦的AMS设计平台,在模拟信号和混合信号的舞台上做了很多实际存在的有意义的事情。通过运用提坦加速技术,设计者可以将AMS功能部件编码成综合体,一旦捕获综合体,使用者可以指定一个工艺目标,然后提坦将根据这个工艺目标为那个功能部件生成一个经过优化的实现方式。
我的理解就是编写和测试这些综合体将要给整个设计流程增加20%到50%的时间,这是一个很痛苦的代价。尽管如此,一旦你完成了这些综合体的设计和测试,你可以在以后的工程中再利用这些功能部件。这项技术有很多优势,包括促进架构研究和促进功能部件从一个工艺节点到另一个工艺节点的移植。
另一个值得关注的公司就是Ciranova。两年前凭借一个叫做Pycells而出现。除了他们是在开源Python语言上取得的成绩外,他们的地位和参数单元Pcells是等价的。他们还有PyCell工作室,用来提供完整的无与伦比的环境用来产生可以和任何公开存取工具(包括Cadence工具)的PyCells。
现在你的第一反应可能是:“哈欠,PyCells令人兴奋的地方有哪些呢?”,实际上它们是一些令人快乐的兴奋的东西,因为作为Ciranova设计人员的实现方式,他们设法实现了将设计约束和实现工艺完全分离。为什么这很重要呢?在2008年Ciranova介绍了一个叫做Helix的工具,它可以自动完成模拟设计的平面布局图和布线。
作为这个方法的一部分,Helix自动执行所有的那些以前由版图设计师传统手动执行的任务,包括邻接、融合、interdigitation和row-stacking。。。。结果是一个correct-by-construction,
production-ready, DRC-clean
布局。(为什么这一切都是可能的?实际上除了完全多线程外,Helix运用令人不能相信的巧妙的遗传算法,但是因为我一定要保密,我不能说更多的关于这个算法的东西。)
一个几百个晶体管组成的设计可以由Helix在一分钟左右的时间布局完毕;一个大约30000左右晶体管的设计可能要花费几个小时的时间
(这和上面所说的成倍的版图设计师辛勤工作几个星期甚至几个月的时间形成了强烈的对比)
。更不用说其他的东西,这个技术引人注目地改变了关于移植一个实际存在的设计到一个新的方法或工艺节点的绘图,如图3所示。

图 3. Helix布局的晶体管大小的锁相环网表
同样的条件下,两种芯片工艺,运行时间30秒。
别急,还有更重要的事情,因为我听说,Ciranova研究员在他们非常机密的地下科研机构里,( “他们没有让我们很频繁的听说... ”
)他们正在煞费苦心地研究一个称之为“自动判别布线器”的东西,目前正在测试阶段。
“基本上,这次自动判别布线器可以自动完成布线的设计,包括在短短的几秒钟内完成几百个晶体管的设置,设计如果涉及30,000个晶体管,可能需要30分钟左右。
在可以采取这一自动判别布线器直接得出设计结果之前,在眼下现实中,设计最终可能投掷了大量(或全部)的人力去做逻辑分析和布线工作。
那么是什么协议?问题是,设计师需要对设计中可以实现的电气性能有一个感觉,他们其实非常迫切需要这一信息。因此,这就是智能布线判别装置令人兴奋的原因,您可以快速精确的获取寄生参数、提炼出高价值的电路,并对怎样执行这个电路的设计有一个直观的感觉。
我的意思已经很明显了,如果你能采取这个自动布线去从事设计,以前通常需要两个月的时间去人工完成的事情,可以在几个小时内直接布放就绪,然后30分钟进行首次自动判别布线。
如果你说你听了这个消息不兴奋,我是不会相信你的 。
展望未来正如美国著名发明家查尔斯•凯特林•富兰克林那句脍炙人口的话: “我关心的是未来,因为我要经营从此以后的人生。
”那么,模拟合成领域在未来会有怎样的发展呢?
嗯,有些人认为,真正的自上而下的模拟合成仅仅是一个美梦。多年来在这方面我们经历的失败是惊人的,科技公司们预言和宣布的一些项目,却一直没有实现。
指定一个晶体管级网表,然后确定一大堆不同的参数,以确定最佳的电路结构的技术就是所谓的“合成”吗?是的,这确实应该标题为“优化”而不是“合成”
。
稍微复杂的办法是,指定一个函数为传递函数,并利用电脑,在数百或数千的不同拓扑结构中逐一的按参数进行筛选。(当你仔细去考量它,这其实是增加了几个参数的电路优化,并不是“合成”。
)
我认为,微捷码(Magma)
(一种仿真软件以及软件公司)人们正在做一些非常有趣的工作,其中有一定的比重,是在解决难题,但(你相信我说的是实话),他们总是迫不得已才考虑做“模拟合成”
,这在模拟设计里面被当作一件倒霉的事。
与此同时,Ciranova(一种仿真软件以及软件公司)的人们一直采取的做法是,在巨大的计算机上执行“繁重的工作”
,所以由计算机的辛勤劳作替代了自动化的布置和( “判别” )布线。.虽然这个方法并不尽善尽美,但也算是一个相当了不起的成就。
但是,我们是否有能力创造一个高级的规范并合成电路拓扑……好吧,我还不确定。(如果你有新的见解请随时在这里回复我)
文章来源:Clive “Max” Maxfield,编译:与非网 耿介琳