1.4 EDA技术与ASIC设计
EDA技术的一个重要应用是ASIC(Application Specific Integrated Circuits,专用集成电路)。ASIC是面向专门用途的电路,以此区别于标准逻辑(Standard Logic)、通用存储器、通用微处理器等电路。目前在集成电路界,ASIC 被认为是用户专用集成电路(Customer Specific IC),即它是专门为一个用户设计和制造的。换言之,它是根据某个用户的特定要求,以低研制成本、短交货周期供货的全定制、半定制集成电路。
1.4.1 ASIC的特点与分类
ASIC 的概念早在20世纪60年代就有人提出,但由于当时设计自动化程度低,加上工艺基础、市场和应用条件均不具备,因而没有得到适时发展。进入20世纪80年代后,随着半导体集成电路的工艺技术、支持技术、设计技术、测试评价技术的发展,集成度的大大提高,电子整机、电子系统高速更新换代的竞争态势不断加强,为开发周期短、成本低、功能强、可靠性高以及专利性与保密性好的专用集成电路创造了必要而充分的发展条件,并很快形成了用ASIC取代中、小规模集成电路来组成电子系统或整机的技术热潮。
ASIC 的出现和发展说明集成电路进入了一个新阶段。通用的、标准的集成电路已不能完全适应电子系统的急剧变化和更新换代。各个电子系统生产厂家都希望生产出具有自己特色和个性的产品,而只有ASIC产品才能实现这种要求。这也是自20世纪80年代中期以来, ASIC得到广泛传播和重视的根本原因。目前ASIC在总的IC市场中的占有率已超过三分之一,在整个逻辑电路市场中的占有率已超过一半。
与通用集成电路相比,ASIC在构成电子系统时具有以下几方面的优越性。
① 缩小体积、减轻重量、降低功耗。
② 可靠性提高。用ASIC芯片进行系统集成后,外部连线减少,可靠性明显提高。
③ 易于获得高性能。ASIC针对专门的用途而特别设计,它是系统设计、电路设计和工艺设计的紧密结合,这种一体化的设计有利于得到前所未有的高性能系统。
④ 可增强保密性。电子产品中的ASIC芯片对用户来说相当于一个“黑盒子”。
⑤ 在大批量应用时,可显著降低系统成本。
ASIC按功能的不同可分为数字ASIC、模拟ASIC、数模混合ASIC和微波ASIC;按使用材料的不同可分为硅ASIC和砷化镓ASIC。一般地说,数字、模拟ASIC主要采用硅材料,微波ASIC 主要采用砷化镓材料。砷化镓具有高速、抗辐射能力强、寄生电容小和工作温度范围宽等优点,目前已在移动通信、卫星通信等方面得到广泛应用。但总的说来,由于对砷化镓的研究比硅晚了十多年,目前仍是硅ASIC占主导地位。对于硅材料ASIC,按制造工艺的不同还可以进一步将其分为MOS型、双极型和BiCMOS型,其中MOS 型ASIC占了整个ASIC市场的70%以上,双极型ASIC约占16%,BiCMOS型ASIC约占11%。
1.4.2 ASIC的设计方法
目前ASIC已经渗透到各个应用领域,它的品种是如此之广,从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路,可谓五花八门。由于品种不同,在性能和价格上会有很大差别,因而实现各种设计的方法和手段也有所不同。
ASIC 的设计按照版图结构及制造方法分,有全定制(Full-custom)和半定制(Semi-custom)两种实现方法,如图1.7所示。全定制法是一种手工设计版图的设计方法,设计者需要使用全定制版图设计工具来完成。半定制法是一种约束性设计方法,约束的目的是简化设计,缩短设计周期,降低设计成本,提高设计的正确率。对于数字ASIC设计而言,其半定制法按逻辑实现方式的不同,可再分为门阵列法、标准单元法和可编程逻辑器件法。
图1.7 ASIC设计实现方法
对于某些性能要求很高、批量较大的芯片,一般采用全定制法设计。例如,半导体厂家推出的新的微处理器芯片,为了提高芯片的速度,设计时须采用最佳的随机逻辑网络,且每个单元都必须精心设计,另外还要精心地布局布线,将芯片设计得紧凑,以节省每一小块面积,降低成本。但是,很多产品的产量不大或者不允许设计时间过长,这时只能对芯片面积或性能作出牺牲,并尽可能采用已有的、规则结构的版图。为了争取时间和市场,也可采用半定制法,先用最短的时间设计出芯片,在占领市场的过程中再予以改进,进行二次开发。因此,半定制法与全定制法两种设计方式的优缺点是互补的,设计人员可根据不同的要求选择各自合适的设计方法。下面简要介绍几种常用的设计方法和它们的特点。
1.全定制法
全定制法是一种基于晶体管级的设计方法,它主要针对要求得到最高速度、最低功耗和最省面积的芯片设计。为满足这种要求,设计者必须使用版图编辑工具从晶体管的版图尺寸、位置及互连线开始亲自设计,以期得到ASIC芯片的最优性能。
运用全定制法设计芯片,当芯片的功能、性能、面积和成本确定后,设计人员要对芯片结构、逻辑、电路等进行精心的设计,对不同的方案进行反复比较,对单元电路的结构、晶体管的参数要反复地模拟优化。在版图设计时,设计人员要手工设计版图并精心地布局布线,以获得最佳的性能和最小的面积。版图设计完成后,要进行完整的检查、验证,包括设计规则检查、电学规则检查、连接性检查、版图参数提取、电路图提取、版图与电路图一致性检查等,最后,通过后模拟,才能将版图转换成标准格式的版图文件交给厂家制造芯片。
由此可见,采用全定制法可以设计出高速度、低功耗、省面积的芯片,但人工参与的工作量大,设计周期长,设计成本高,而且容易出错,一般只适用于批量很大的通用芯片(如存储器、乘法器等)设计或有特殊性能要求(如高速低功耗芯片)的电路设计。
2.门阵列法
门阵列是最早开发并得到广泛应用的ASIC设计技术,它是在一个芯片上把门排列成阵列形式,严格地讲是把含有若干个元器件的单元排列成阵列形式。门阵列设计法又称“母片”法。母片是IC工厂按照一定规格事先生产的半成品芯片,在母片上制作大量规则排列的单元,这些单元依照要求相互连接在一起即可实现不同的电路要求。母片完成了绝大部分芯片工艺,只留下一层或两层金属铝连线的掩膜需要根据用户电路的不同而定制。典型的门阵列母片结构如图1.8所示。
图1.8 典型的门阵列的母片结构
门阵列法的设计一般是在 IC 厂家提供的电路单元库的基础上进行的逻辑设计,而且门阵列设计软件一般都具有较高的自动化水平,能根据电路的逻辑结构自动调用库单元的版图,自动布局布线。因此,设计者只需掌握很少的集成电路知识,设计过程也很简便,设计制造周期短、设计成本低。但门的利用率不高,芯片面积较大,而且母片上制造好的晶体管都是固定尺寸的,不利于设计高性能的芯片,所以这种方法适用于设计周期短、批量小、成本低、对芯片性能要求不高的芯片设计。一般是采用此法迅速设计出产品,在占领市场后再用其他方法“再设计”。
3.标准单元法
标准单元设计法又称库单元法,它是以精心设计好的标准单元库为基础的,设计时可根据需要选择库中的标准单元构成电路,然后调用这些标准单元的版图,并利用自动布局布线软件完成电路到版图一一对应的最终设计。
标准单元库一般应包括以下几方面的内容。
① 逻辑单元符号库:包含各种标准单元的名称、符号、输入/输出及控制端,供设计者输入逻辑图时调用。
② 功能单元库:在单元版图确定后,从中提取分布参数再进行模拟得到标准单元的功能与时序关系,并将此功能描述成逻辑与时序模拟所需要的功能库形式,供逻辑与时序模拟时调用。
③ 拓扑单元库:该库是单元版图主要特征的抽象表达,去掉版图细节,保留版图的高度、宽度、I/O 和控制端口的位置。这样用拓扑单元进行布局布线,既保留了单元的主要特征,又大大减少了设计的数据处理量,提高了设计效率。
④ 版图单元库:该库以标准的版图数据格式存放各单元精心设计的版图。
相比于全定制设计法,标准单元法的设计难度和设计周期都小得多,而且也能设计出性能较高、面积较小的芯片。与门阵列法相比,标准单元法设计的电路性能、芯片利用率及设计的灵活性均比门阵列好,既可用于设计数字ASIC,又可用于设计模拟ASIC。标准单元法存在的问题是,当工艺更新以后,标准单元库要随之更新,这是一项十分繁重的工作。此外,标准单元库的投资较大,而且芯片的制作需要全套掩膜版和全部工艺过程,因此生产周期和成本均比门阵列高。
4.可编程逻辑器件法
可编程逻辑器件是ASIC的一个重要分支。与前面介绍的几类ASIC不同,它是一种已完成了全部工艺制造、可直接从市场上购得的产品,用户只要对它编程就可实现所需要的电路功能,所以称它为可编程ASIC。前面三种方法设计的ASIC芯片都必须到IC厂家去加工制造才能完成,设计制造周期长,而且一旦有了错误,就要重新修改设计和制造,成本和时间要大大增加。采用可编程逻辑器件,设计人员在实验室即可设计和制造出芯片,而且可反复编程,进行电路更新,如果发现错误,则可以随时更改,完全不必关心器件实现的具体工艺,这就大大地方便了设计者。
可编程逻辑器件发展到现在,规模越来越大,功能越来越强,价格越来越便宜,相配套的 EDA 软件工具越来越完善,因而深受设计人员的喜爱。目前,在电子系统的开发阶段的硬件验证过程中,一般都采用可编程逻辑器件,以期尽快开发产品,迅速占领市场,等到大批量生产时,再根据实际情况转换成前面三种方法中的一种进行“再设计”。表1.1所示为不同设计方法的综合比较。
表1.1 不同设计方法的综合比较
注:√最高(最大),○高(大),-中等,△低(小),×最低(最小)
1.4.3 SoC设计
微电子技术的迅速发展,集成电路设计和工艺技术水平有了很大的提高,单片集成度已经超过上亿个晶体管,从而使得将原先由许多IC芯片组成的电子系统集成在一个硅片上成为可能,构成所谓的片上系统(SoC,System on a Chip)或系统芯片。SoC将系统的主要功能综合到一块芯片中,本质上是在做一种复杂的IC设计。与普通的集成电路相比,SoC不再是一种功能单一的单元电路,而是将信号采集、信号处理、输入和输出等完整的系统功能集成在一起,成为一个专用功能的电子系统芯片。
SoC按用途的不同可以分为两种类型:一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的发展;另一种是通用SoC芯片,将绝大部分部件(如MCU、DSP、RAM、I/O 等)集成在单个芯片上,同时提供用户设计所需要的逻辑资源和编程所需的软件资源。SoC的出现是电子系统设计领域的一场革命,它对电子信息产业的影响将不亚于集成电路诞生所产生的影响。当今电子系统的设计已经不再是利用各种通用IC进行PCB板级的设计和调试,而是转向以ASIC或大规模FPGA为物理载体的系统芯片设计。
1.IP核
系统芯片的设计思想有别于普通的IC设计,它是以IP核为基础,以硬件描述语言HDL为主要设计手段,借助于以计算机为平台的EDA工具而进行的。
IP原来的含义是知识产权、著作权等。实际上,IP的概念早已在IC设计中使用,应该说前面介绍的标准单元库中的功能单元就是IP的一种形式,因此,在IC设计领域可将其理解为实现某种功能的设计。美国著名的Dataquest咨询公司则将半导体产业的IP定义为用于ASIC或FPGA/CPLD中的预先设计好的电路功能模块。
随着信息技术的飞速发展,用传统的手段来设计高复杂度的系统级芯片,设计周期将变得冗长,设计效率降低。解决这一设计危机的有效方法是复用以前的设计模块,即充分利用已有的或第三方的功能模块作为宏单元,进行系统集成,形成一个完整的系统,这就是集成电路设计复用的概念。这些已有的或由第三方提供的具有知识产权的模块(或内核)称为IP核,它在现代EDA技术和开发中具有十分重要的地位。
可复用的IP核一般分为硬核、固核和软核三种类型。硬核是以版图形式描述的设计模块,它基于一定的设计工艺,不能由设计者进行修改,可有效地保护设计者的知识产权。换句话说,用户得到的硬核仅是产品的功能,而不是产品的设计。由于硬核的布局不能被系统设计者修改,所以也使系统设计的布局布线变得更加困难,特别是在一个系统中集成多个硬件IP核时,系统的布局布线几乎不可能。
固核由RT L描述,由可综合的网表组成。与硬核相比,固核可以在系统级重新布局布线,使用者按规定可增减部分功能。由于RTL描述和网表对于系统设计者是透明的,这使得固核的知识产权得不到有效的保护。固核的关键路径是固定的,其实现技术不能更改,不同厂家的固核不能互换使用。因此,硬核和固核的一个共同缺陷就灵活性比较差。
软核是完全用硬件描述语言(VHDL/Verilog HDL)描述出来的IP,它与实现技术无关,可以按使用者的需要进行修改。软核可以在系统设计中重新布局布线,在不同的系统设计中具有较大的灵活性,可优化性能或面积达到期望的水平。由于每次应用都要重新布局布线,软核的时序不能确定,从而增加了系统设计后测试的难度。
一个IP模块,首先要有功能描述文件,用于说明该IP模块的功能时序要求等,其次还要有设计实现和设计验证两个方面的文件。硬核的实现比较简单,类似于 PCB 设计中的 IC芯片的使用;软核的使用情况较为复杂,实现后的性能与具体的实现方式有关。为保证软核的性能,软核的提供者一般还提供综合描述文件,用于指导软核的综合。固核的使用介于上述两者之间。
用户在设计一个系统时,可以自行设计各个功能模块,也可以用 IP 模块来构建。IP 核作为一种商品,已经在Internet上广泛销售,而且还有专门的组织——虚拟插座接口协会VSIA (Virtual Socket Interface Association)来制定关于IP产品的标准与规范。对设计者而言,想要在短时间内开发出新产品,一个比较好的方法就是使用IP核完成设计。
目前,尽管对IP还没有统一的定义,但IP的实际内涵已经有了明确的界定:首先它必须是为了易于重用而按照嵌入式应用专门设计的;其次是必须实现IP模块的优化设计。优化的目标通常可用“四最”来表达,即芯片的面积最小、运算速度最快、功率消耗最低、工艺容差最大。所谓工艺容差大是指所做的设计可以经受更大的工艺波动,因为IP必须能经受得起成千上万次的使用。
2.SoC单片系统
集成规模和系统功能达到什么程度才能算做SoC并没有严格的定义。简单地说,SoC是指将一个完整的系统集成在一个芯片上,就是用一个芯片实现一个功能完整的系统。但广义而言,SoC应该指在单个芯片上集成系统级多元化的大规模功能模块,从而构成一个能够处理各种信息的集成系统,该集成系统通常由一个主控单元和一些功能模块构成。主控单元通常是一个处理器,这个处理器既可以是一个普通的微处理器(CPU)的核,也可以是一个数字信号处理器(DSP)的核,还可以是一个专用的运算控制逻辑单元。一个由微处理器核(CPU核)、数字信号处理器核(DSP核)、存储器核(RAM/ROM核)、模数转换核(A/D、D/A核)及USB接口核等构成的系统芯片如图1.9所示。
图1.9 系统芯片(SoC)示意图
3.基于IP模块的SoC设计
随着集成电路的规模越来越复杂,而产品的上市时间却要求越来越短,嵌入式设计方法应运而生。这种方法除了继续采用“自顶向下”的设计和综合技术外,其最主要特点是大量知识产权IP模块的复用,这就是基于IP模块的SoC设计方法,如图1.10所示。在系统设计中引入IP模块,就可以使设计者只设计实现系统其他功能的部分以及与IP模块的互连部分,从而简化了设计,缩短了设计时间。
图1.10 基于IP模块的SoC设计方法
片内使用IP核构建是SoC的一个重要特征。当需要推出新产品时,SoC开发人员可以将原来的IP模块移走,置入新的IP核,或者只需要更改一小部分电路,即可符合产品所需要的功能,这就是对IP的重要利用。同时,可以做最有效率的使用,借以缩短产品的开发周期,降低开发的复杂度(通过把更多的特性和性能添加到更小的IP中,提升了满足大部分开发技术挑战的可能性)。
可重复利用的IP大致包含了元器件库、宏及特殊的专用IP,如通信接口IP、多媒体压缩解压IP、输入/输出接口IP等。此外,各家开发厂商所拥有的微处理器IP包括ARM公司的RISC架构的ARM核,MIPS公司的MIPS RISC核等。许多芯片设计厂商可以向这些IP拥有厂商购买所需要的 IP,再加上一些外围的 IP,就可以制成一个高度集成的 SoC 嵌入式系统了。
SoC以嵌入式系统为核心,集软硬件于一体,并追求产品系统最大包容的集成,是微电子领域IP设计的必然趋势和最终目标,也是现代电子系统设计开发的最佳选择。SoC是一种系统集成芯片,其系统功能可以由全硬件完成,也可以由硬件和软件协同完成(如含有嵌入式处理器的SoC),目前大部分SoC主要指的是后者。
因此,无论是专用SoC还是通用SoC,它们在结构上都有相似的特点,即都是以嵌入式系统结构为基础,集软硬件于一体的系统级芯片,其中通常集成了一个或若干个处理器,包括 RISC 处理器、DSP 及为某些专门应用设计的专用指令集处理器(Application Specific Instruction Set Processor),这些处理器是SoC的一个重要组成部分,与SoC的其他部件融合在一起,完成某种特定的系统功能。
目前,基于IP模块的SoC设计急需解决三方面的关键技术问题,即软硬件协同设计技术、IP 核设计及复用技术、超深亚微米集成电路设计技术,而 IP 核复用技术则是保证系统级芯片开发效率和质量的重要手段。
4.SoC的实现
微电子制造工艺的进步为SoC的实现提供了硬件基础,微电子技术的近期发展成果又为SoC的实现提供了多种途径,而EDA软件技术的提高则为SoC的实现创造了必要的开发平台。SoC可以采用全定制的方式来实现,即把设计的网表文件提交给半导体厂家流片就可以得到,但采用这种方式的风险性高,费用大,周期长。还有一种就是以可编程片上系统SoPC (System on a Programmable Chip)的方式来实现。
对于经过验证而又需要批量生产的SoC芯片,可以做成专用集成电路ASIC大量生产。而对于一些仅为小批量应用或处于开发阶段的SoC,若马上投入流片生产,需要投入较多的资金,承担较大的试制风险。近几年发展起来的SoPC技术则提供了另一种有效的解决方案,即用大规模可编程器件FPGA来实现SoC的功能。
目前,大规模可编程器件FPGA的单片集成度,已经由原来的数万门发展到数十万门甚至数百万门,芯片的I/O口也由原来的数十个发展到上千个,有的制造商还推出了含有硬核嵌入式系统的IP。因此,完全可以将一个复杂的数字系统集成到一片FPGA(即SoPC)中,从而使得所设计的电路系统在其规模、可靠性、体积、功耗、性能指标、上市周期、开发成本、产品维护及硬件升级等多方面实现最优化,为SoC的实现提供了一种简单易行而成本低廉的手段。