因应混合信号设计需求与日俱增,以单一数据库且自动化程度高的全芯片混合信号设计、分析和验证解决方案随之而起,透过模拟和数字仿真引擎的结合,以及与芯片完工整修等其它工具的有效连结,来达到生产力与精确度的大幅提升。
直到最近,绝大部分的IC本质上还都是纯数字(Purely Digital)或纯模拟(Purely Analog)的设计,因此,早期以IC为主的电子系统一般都由许多相对简单的模拟和数字芯片,组装在电路板上相互连接。例如1970年代由摩托罗拉(Motorola)所发展出的第一台行动电话Dyna-Tac,即是由两个模拟芯片(其一是现货,另一是客制化组件)和十五个数字芯片(其中十三个是现货,另两个是客制化组件)所组成。
由于早期的IC都是模拟式或数字式,因此用来建立或验证这些组件的计算机辅助设计工具,也是针对数字领域或是模拟领域所量身订做。
随后,为符合无线网络通讯协议和标准的复杂要求,并因应使用者愈来愈多的功能需求:如MP3播放器、全球卫星定位系统(GPS)、数字相机等,类似行动电话等产品所使用的模拟及数字芯片数量不断增加。
此外,为了满足成本、大小、重量和电力消耗方面的需要,业者也必须整合更多的功能,以减少芯片数目。刚开始,模拟功能的群组会合并到特定的模拟芯片上,而数字功能的集合则合并到数字芯片上。近来则是将模拟和数字功能一起合并至单一的混合式信号(Mixed-signal)装置中。例如最新式的高阶行动电话,除少数微小且非常专属的装置外,通常只包含一颗容量较大、性能较高的混合信号IC,含有大量模拟和数字功能,再加上一颗特殊的射频(RF)芯片。
多年来,虽然传统的模拟、数字设计及验证工具在容量及效能上有一定程度的进展,但基本架构仍以1990年代中期的技术为基础,而且仍然限于模拟或数字领域。举例来说,模拟和数字工具及设计流程使用不同的数据库,因此阻隔了两个领域之间的信息交换,造成数字和模拟的设计团队大多各自为政,几乎不了解对方在做什么。
弄清数字/模拟/混讯/客制化设计定义
由于不同电子设计自动化(EDA)公司对于全客制化(Full-custom)和混合信号等用词的认知不尽相同,为避免误解,在此先说明本文定义。所谓数字IC系指以离散(亦即非连续)数值描述输入、处理、储存、输出等信息的组件;而模拟IC则是以连续变化的信号描述输入、处理、输出等信息的组件;混合信号IC则包含数字和模拟功能混合体的组件。
至于全客制化设计,则是指构成一个装置或装置中某一部分的晶体管(Transistor)、电阻(Resistor)等各组件的每一个几何组件,大小和形状都是个别以手工制作。因此,一般而言,模拟设计亦属于全客制化设计。相对的,绝大部分的数字设计主要是使用预先定义的逻辑功能链接库(Libraries of Logical Functions),其中,晶体管的大小和彼此间的连接已预先定义。
有些纯数字装置如内存芯片(Memory Chip)及高阶微处理器(High-end Microprocessor)可能属于全客制化的类别,但这些是特例,通常只有高度客制化、高度独特性、专门性的设计环境支持。
数字设计工具进展快速
1960年代前期,数字IC设计正值萌芽阶段,电子电路都是以手工制作,使用笔、纸及模板,以手工绘制电路(原理)图,图上有各种符号,代表各个逻辑闸(Logic Gate)及功能,以及彼此之间的连接。
每一个设计团队通常至少有一名成员精通于逻辑电路的最小化(Minimization)和最佳化(Optimization),以便在最后阶段将原本的闸极(Gate)改为功能相同,但速度更快且/或面积更小的硅芯片。
功能验证(Functional Verification)是为确保设计能够符合原先规画的功能。一般而言是由一群工程师围着一张桌子,逐一检视原理图(Schematic)的所有功能,判断是否有任何问题。同样地,时序验证(Timing Verification)也是以笔、纸进行,以确认输入到输出及内部路径延迟符合设计要求,而且诸如设定和保留等参数与任何内部缓存器均无违反时序。少数时候,这项作业可能会使用到机械或机电式计算器。
最后,以手绘制整套的逻辑闸结构,或更精确地说,构成逻辑闸之晶体管及电阻的结构,以及彼此间互连的蓝图。然后,使用这些由正方形及矩形等简单几何形状构成的蓝图来建立光罩,据以制造实际的硅芯片。
从以上描述与先前定义来看,此款数位IC会归类为「全客制化」,因为构成晶体管、电阻等各组件的每一个几何组件的大小和形状系个别以手工制作。
然而,以手工方式设计极为耗时且容易出错,亟须加以改善,许多公司及学术机构因而投入各种不同的研究方向,彼此竞争。以原理图设计为例,闸极级(Gate-level)的原理图设计(Schematic Capture)软件包开始出现,功能验证方面,1960年代晚期和1970年代初,开始出现事件驱动逻辑仿真器(Event-driven Logic Simulator)形式的特殊程序。
在闸极抽象层建立数字设计,可以比拟为使用汇编语言建立软件程序,就汇编程序的效率及所需的计算机内存而言,是很好的选择,但在设计及验证上要花费很长的时间,而且很不容易移植到另一台计算机。同样地,闸极抽象层在设计及验证上非常费时,而且不容易移植到新的代工厂或制程/技术节点(Technology Node)。
软件方面,程序开发者的解决办法是改用高阶的程序语言,例如C语言,再将这些高级语言编译成计算机所需要的机器指令,优点是可以使软件开发人员迅速精准地捕捉程序的意图并验证其功能,此外,以C语言撰写的程序很容易移植到其它计算机平台。
同样地,数字逻辑方面,设计人员开始采用进一步的抽象设计,称为缓存器转移级(Register Transfer Level, RTL)。1980年代晚期及1990年代初登场的逻辑合成,可将RTL解译成对应的闸极级通讯匣层电路表(Gate-level Netlist)。「前端」的合成技术及能够取得闸极级通讯匣层电路表,以及具体实施设计的「后端」自动布局绕线引擎,两者相辅相成。
就小型的设计而言,使用合成引擎(Synthesis Engine)不一定能够获得与手工设计一样好的闸极抽象层,但能够迅速简洁地捕捉设计意图,因此可大幅提升设计人员的生产力。此外,合成引擎能够自动在速度(效率)及面积之间作取舍,加上识别及处理关键路径的能力,因此合成引擎可回报更好的整体结果给设计人员。正如同将C语言的程序编译用于不同的计算机,RTL及逻辑合成使数字设计更容易移植到新的代工厂或制程/技术节点。
模拟设计工具进化牛步
相较比数位电路的同类型工具,模拟电路的计算机辅助设计及验证工具,更早出现,在模拟电子系统设计的初期,电子电路是靠手工建立。晶体管层级(Transistor-level)的原理图是使用笔、纸及模板以手工绘制,并初步的进行「笔纸」分析和验证。
例如晶体管、电阻器、电容器和电感器等离散式(个别封装)组件建构的设计,通常都会依设计建造实体的原型件,把它放到测试台上,量测实际的数值以决定其性能,然后调校组件的数值,必要时增加/移除组件,以达到预期效果。
显然,对于建造第一个模拟IC而言,这种方式并不理想,因为重作IC设计的成本极高,因此,在1960年代晚期和1970年代初,有些大学及公司开始着手模拟仿真器(Analog Simulator)设计,藉由这些程序,学生及工程师可仿真模拟电路运作,不须实际建造。早期的仿真器中,最著名的应是集成电路仿真程序(Simulation Program with Integrated Circuit Emphasis, SPICE),这套程序是由加州大学柏克莱分校所开发,在1970年代初开始广泛应用。
经过多年的演进,模拟模拟在复杂的下层模型、算法、仿真引擎的容量以及性能等方面有极大的进展。现在大部分使用的模拟工具,其构想都可追溯至1990年代早期及中期,这些工具的底层架构原本即非针对混合信号设计环境的复杂需求所设计。
更重要的是,现今模拟设计及验证工具本质上只限于设计及仿真晶体管层级的原理图。截至目前,包括将模拟功能高度抽象化进而产生晶体管层级的设计,模拟电路自动最佳化,和模拟电路自动布局与绕线(Placed and Route)等方面,进展不大。以致于现今模拟IC大部分仍是全客制化,以手工辛苦打造,不仅成本高、耗时且容易出错,这种晶体管层级的设计方式,也无法轻易转移至新的代工厂或制程/技术节点。
混合信号工具问题重重
截至目前,在真正的混合信号设计工具的进展上仍相当缓慢。如前所述,为符合成本、大小、重量及电力消耗等需求,模拟及数字功能已逐渐结合至单一的混合信号装置中,为实践这类设计,多家EDA公司正致力把既有的模拟和数字仿真引擎「结合」在一起。就连以往专精于数字设计的公司,也开始购买成熟的模拟解决方案,来解决此一问题,并藉以获得更多模拟客户,提高市场占有率。
不过,这种做法却容易使得一些不适合整合的个别工具被勉强拼凑在一起。例如,模拟及数字工具使用不同的数据库,非常不利于两个领域之间的信息交换。此外,如前所述,现今大部分的模拟工具都可追溯至1990年代早期及中期,其底层架构从一开始就非针对混合信号设计环境所发展。
相较于数字设计已可达到45奈米的技术节点,多数的模拟设计至今仍采用5~10年前的制程技术,如130奈米和250奈米技术节点;最新进的制程也仅到90奈米,主要因为模拟设计的移植必须从头开始创建电路。此外,即使使用今日最新技术的混合信号及全客制化设计环境,数字和模拟设计团队多半还是各自为政,几乎不了解对方作业内容。这两个领域的首度接触,往往是发生在芯片完工整修(Chip Finishing)制程中,亦即模拟和数字区块的布局及绕线时。
芯片完工整修制程通常是以手工执行,有数项工作是在芯片光罩设计完成的前一个步骤进行。由于缺乏自动化,芯片完工整修的活动和动作通常无法回馈给主设计,因而易导致设计的再利用性不佳。
提高设计工具整合度与自动化效能
为解决混合信号设计工具所面临的问题,EDA业者藉由结合SPICE和Fast SPICE两者的性能优点,推出新一代电路仿真器FineSim SPICE,可在兼顾SPICE仿真器准确性的前提下,加快仿真和分析速度。FineSim SPICE采用先进的原生平行技术(Native Parallel Technology, NPT)算法,能够透过多颗中央处理器(CPU)并行处理,实现线性加速及扩充容量。
现在,EDA业者也正推动真正统一、自动、全芯片的混合信号设计、分析和验证解决方案,希望藉由更高的整合性和自动化程度,大幅提升芯片完工修整、模拟/客制化数字设计等领域的产量(图1)。此套名为Titan的工具显著提升芯片完工整修制程的时程关键性(Schedule-critical)功能,在效率与可预测性方面获得重大进展,移除现行客制化布局和标准单元(Standard-cell)实作系统之间费时又复杂的循环,并透过一条实时联机,使标准单元数据库与每一次的客制化布局编辑保持同步,将标准单元系统封装在整个系统中(图2)。
图1 Titan透过整合及自动化提高产量
图2 传统设计环境中,客制化布局与标准单元布局及绕线之间的循环可能成为芯片完工整修的弱点。
在标准单元设计规则检查(DRC)/布局与原理图对照(LVS)无误且设计通过全部的签核分析检查后,流程的布局及绕线部分便告完成。此时,标准单元数据库必须以某种标准格式(例如GDSII)汇出,然后汇入一个包含所有制造层的全客制化系统中。
签核DRC之前,要先加入光罩设计必要的客制化布局结构,例如覆晶凸块(Flip-chip Bump)连接及顶层绕线(Top-layer Routing),并规画对准靶材(Alignment Target)和画线网线等,再于客制化环境中执行DRC签核。这些工作完成后,必须回到布局及绕线环境,针对所有会影响布局及绕线区域的变更,重新进行验证。因此,设计人员必须反复回到布局及绕线系统,也就须要再次执行繁琐的数据汇出和汇入作业。更严重的是,这个阶段如果要求执行工程变更命令(ECO),就必须再次反复执行循环,以分析验证任何变更。
为减少此一困扰,Titan透过与其它设计引擎如Talus的有效连接,以及DRC/LVS分析及验证引擎的紧密整合,来避免执行前述循环的需要。客制化布局环境中只要有所变更,Talus便会得知,立即可以重新执行签核检查,而且毋须传送数据库,标准单元数据仍然是在Talus的内存中,客制化数据则在Titan的客制化环境中。
正如整合到数字布局及绕线系统可大幅提高效率,Titan也使模拟及特殊信号绕线的自动化和标准化向前迈进一大步,透过直觉式的应用布局条件,以互动的方式定义或完全透过指令码进行自动化,其可在数秒内完成总线绕线(Bus Routing)、屏蔽(Shielding)、偏差分对绕线(Differential Pair Routing)、星形绕线(Star Routing)和其它特殊的绕线,毋须以手工方式耗费数日的时间。这点对于ECO而言尤其重要,因为重新绕线能够自动执行,不会延误时程。
除具备完整的芯片完工整修能力外,Titan也可和寄生提取标准工具QuickCap TLx紧密整合于FineSim电路仿真器,以便在真正的混合信号设计方面,达成全芯片电路仿真(Full-chip Circuit Simulation),为设计的模拟部分提供SPICE的精确度,数字部分则可达到Fast SPIE的精确度,让模拟及数字接口能够充分仿真验证后,再制造出实际的硅芯片。
另一方面,可完全编写指令码的Tcl/Tk接口以及一个整合式图形使用者接口(GUI),亦是现今混合信号设计工具不可或缺的功能,以便利用选单、快速键、浮动式控制板等,对设计进行全部的检视、编辑、绕线及验证,让设计的模拟和数字部分的原理图、布局、DRC错误、寄生值(Parasitic Values)等拥有完整除错功能。
显而易见的,基于统一、自动、全芯片的混合信号设计解决方案,将为日益复杂的模拟及混合信号IC设计带来新的生产力和价值。