IC设计总结文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1 微电子技术概述
1.1.1 集成电路的发展
回顾全球集成电路发展的路程,基本上可以总结为六个阶段:
第一阶段:1962年制造出包含12个晶体管的小规模集成电路(SSI,Small-Scale Integration)。

第二阶段:1966年发展到集成度为100~1000个晶体管的中规模集成电路(MSI,Medium-Scale Integration)。

第三阶段:1967~1973年,研制出1000~100000个晶体管的大规模集成电路(LSI,Large-Scale Integration)。

第四阶段:1977年研制出在30平方毫米的硅晶片上集成15万个晶体管的超大规模集成电路(VLSI,Very Large-Scale Integration)。

这是电子技术的第4次重大突破,从此真正迈入了微电子时代。

第五阶段:1993年随着集成了1000万个晶体管的16MB FLASH和256MB DRAM的研制成功,进入了特大规模集成电路(ULSI,Ultra Large-Scale Integration)时代。

第六阶段:1994年由于集成1亿个元件的1GB DRAM的研制成功,进入巨大规模集成电路(GSI,Giga Scale Integration)时代。

1.1.2 集成电路产业分工
微电子技术的迅速发展得益于集成电路产业内部的细致分工。

目前,集成电路产业链主要包括设计、制造、封装和测试,如图所示。

在这历史过程中,世界IC产业为适应技术的发展和市场的需求,其产业结构经历了3次重大变革。

1、以生产为导向的初级阶段
20世纪60年代的集成电路产业就是半导体产业,IC设计只是附属产品。

70年代出现独立的IC厂家设计IC产品。

2、Foundry与Fabless设计公司的崛起
20世纪80年代,工艺设备生产能力已经相当强大,但是费用十分昂贵,IC厂家自己的设计不足以供其饱和运行,因此开始承接对外加工,继而由部分到全部对外加工,形成了Foundry加工和Fabless设计的分工。

Foundry:芯片代工厂的简称,不搞设计,没有自己的IC产品,为Fabless提供完全意义上的代工,这使得Fabless可以放心地把产品交给Foundry而无需担心知识产权外流。

Fabless:半导体集成电路行业中无生产线设计公司的简称。

Fabless开拓市场后进行产品设计,将设计的成果外包给Foundry厂家进行芯片生产,生产出来的芯片经过封装测试后由设计公司自己销售。

3、“四业分离”的IC产业
20世纪90年代,IC产业结构开始向高度专业化转变,开始形成设计、制造、封装、测试独立成型的局面。

这次分工的另一个特征是:系统设计和IP(知识产权)设计开始分工,它对集成电路产业的影响不亚于20世纪80年代Foundry与Fabless的分工。

1.2 SoC概述
随着设计与制造技术的发展,集成电路设计从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,即SoC(System-on-a-Chip)设计技术,SoC design=system architecture + IC。

在经过了多年的争论后,专家们就SoC的定义达成了一致意见。

这个定义虽然不是非常严格,但明确地表明了SoC的特征:
①实现复杂系统功能的VLSI;采用超深亚微米工艺技术;
②使用一个以上嵌入式CPU/数字信号处理器(DSP);
③外部可以对芯片进行编程;
注:晶圆:指硅半导体集成电路所用的硅晶片,由于其形状为圆形,故称为晶圆,晶圆是生产集成电路所用的载体。

晶圆越大,同一圆片上可生产的IC就越多,可降低成本;但对材料技术和生产技术的要求更高,一般认为硅晶圆的直径越大,代表这座晶圆厂有更好的技术,在生产晶圆的过程当中,良品率是很重要的条件。

工艺等级:通常把0.8~0.35um称为亚微米,0.25um及其以下称为深亚微米,0.18um 或以下称为超深亚微米,0.05um及其以下称为纳米级。

SoC中包含了微处理器/微控制器、存储器以及其他专用功能逻辑(DSP等),但并不是包含了微处理器、存储器以及其他专用功能逻辑的芯片就是SoC。

SoC技术被广泛认同的根本原因,并不在于SoC可以集成多少个晶体管,而在于SoC可以用较短时间被设计出来。

这是SoC的主要价值所在——缩短产品的上市周期,因此,SoC更合理的定义为:SoC是在一个芯片上由于广泛使用预定制模块IP(Intellectual Property)而得以快速开发的集成电路。

从设计上来说,SoC就是一个通过设计复用达到高生产率的硬件软件协同设计的过程。

从方
法学的角度来看,SoC是一套极大规模集成电路的设计方法学,包括IP核可复用设计/测试方法及接口规范、系统芯片总线式集成设计方法学、系统芯片验证和测试方法学。

SoC 是一种设计理念,就是将各个可以集成在一起的模块集成到一个芯片上,他借鉴了软件的复用概念,也有了继承的概念。

也可以说是包含了设计和测试等更多技术的一项新的设计技术。

SoC的一般构成:
从大处来分,SoC含有:
1.逻辑核包括CPU、时钟电路、定时器、中断控制器、串并行接口、其它外围设备、I/O 端口以及用于各种IP核之间的粘合逻辑等等;
2.存储器核包括各种易失、非易失以及Cache等存储器;
3.模拟核包括ADC、DAC、PLL以及一些高速电路中所用的模拟电路。

现在的SoC芯片上可综合实现CPU、DSP、数字电路、模拟电路、存储器、片上可编程逻辑等多种电路;综合实现图像处理、语音处理、通信协议、通信机能、数据处理等功能。

SoC按用途可分为两种类型:一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的自然发展;另一种是通用SoC芯片,将绝大多数部件,如CPU、DSP、RAM、I/O等集成在芯片上,同时提供用户设计所需要的逻辑资源和软件编程所需的软件资源。

IP核是具有复杂系统功能的能够独立出售的VLSI块,经过验证并能在设计中复用的功能模块。

2 SoC设计流程
2.1 软硬件协同设计
SoC通常被称作系统级芯片或者片上系统,作为一个完整的系统,其包含硬件和软件两部分内容。

这里所说的硬件指SoC芯片部分,软件是指运行在SoC芯片上的系统及应用程序。

既然它是由软件和硬件组合而成,则在进行系统设计时,就必须同时从软件和硬件的角度去考虑。

软硬件协同设计的SoC设计流程
一个完整的SoC设计包括系统结构设计(也称为架构设计),软件结构设计和ASIC设计(硬件设计)。

SoC设计与传统的ASIC设计最大的不同在于以下两方面:
1)SoC设计更需要了解整个系统的应用,定义出合理的芯片架构,使得软硬件配合达到系统最佳工作状态。

因而,软硬件协同设计被越来越多地采用。

2)SoC设计是以IP复用或更大的平台复用为基础的。

因而,基于IP复用的设计是硬件实现的特点。

1.系统需求说明
系统设计首先从确定所需的功能开始,包含系统基本输入和输出及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间等。

在这一阶段,通常会将用户的需求转换为用于设计的技术文档,并初步确定系统的设计流程。

2.高级算法建模与仿真
设计者将使用如C和C++等高级语言创建整个系统的高级算法模型和仿真模型。

目前,一些EDA工具可以帮助我们完成这一步骤。

有了高级算法模型,便可以得到软硬件协同仿真所需的可执行的说明文档。

此类文档会随着设计进程的深入而不断地完善和细化。

3.软硬件划分过程
设计者通过软硬件划分来决定哪些功能应该由硬件完成,哪些功能应该由软件来实现。

这是一个需要反复评估-修改直至满足系统需求的过程。

软硬件划分的合理性对系统的实现至关重要。

有些功能既可以用软件实现也可以用硬件实现,这取决于所要达到的性能指标与实现的复杂程度及成本口
4.软硬件同步设计
由于软硬件的分工已明确,芯片的架构及同软件的接口也已定义,接下来便可以进行软硬件的同步设计了。

其中硬件设计包括RTL设计和集成、综合、布局布线及最后的流片。

软件设计则包括算法优化、应用开发,以及操作系统、接口驱动和应用软件的开发。

2.2 下面主要介绍硬件(芯片)设计:基于标准单元的SoC 芯片设计流程
1.硬件设计定义说明
硬件设计定义说明描述芯片总体结构、规格参数、模块划分、使用的总线,以及各个模块的详细定义等。

2.模块设计及IP复用
根据所划分出的功能模块,确定需要重新设计的部分及可复用的IP核,对于需要重新设计的模块进行设计;对于可复用的IP核,通常由于总线接口标准不一致需要做一定的修改。

IP核可自主研发或者购买其他公司的IP。

目前,设计的输入是采用硬件描述语言(HDL),如Verilog或VHDL,所以,数字模块的设计通常称为RTL代码编写。

3.顶层模块集成
顶层模块集成是将各个不同的功能模块,包括新设计的与复用的整合在一起,形成一个完整的设计。

通常采用硬件描述语言对电路进行描述,其中需要考虑系统时钟/复位、I/O环等问题。

4.前仿真
前仿真也叫RTL级仿真,功能仿真。

通过HDL仿真器验证电路逻辑功能是否有效,及HDL描述是否符合设计所定义的功能期望。

在前仿真时,通常与具体的电路物理实现无关,没有时序信息。

5.逻辑综合
逻辑综合是指使用EDA工具把由硬件描述语言设计的电路自动转换成特定工艺下的网表,即从RTL级的HDL描述通过编译与优化产生符合约束条件的门级网表。

网表是一种描述逻辑单元和他们之间互连的数据文件。

约束条件包括时序、面积和功耗的约束。

其中,时序是最复杂和最关键的约束,决定了整个芯片的性能。

在综合过程中,EDA工具会根据约束条件对电路进行优化,优化(这里指的是初次逻辑综合优化)的主要目的是在满足时序要求的前提下尽量减小芯片面积。

与工艺无关的优化缺乏非常准确的时序信息,因而注意力往往集中在优化面积上。

等到映射之后时序信息比较准确时再进行修正更有效。

6.版图布局规划
版图布局规划完成的任务是确定设计中各个模块在版图上的位置,主要包括:
▲I/O规划,确定I/O的位置,定义电源和接地口的位置;
▲模块放置,定义各种物理的组、区域或模块,对这些大的宏单元进行放置;
▲供电设计,设计整个版图的供电网络,基于电压降(IR Drop)和电迁移进行拓扑优化。

版图布局规划的挑战是在保证布线能够走通且性能允许的前提下,如何最大限度地减少芯片面积,是物理设计过程中需要设计者付出最大努力的地方之一。

7.功耗分析
▲在设计中的许多步骤都需要对芯片功耗进行分析,从而决定是否需要对设计进行改进。

▲在版图布局规划后,需要对电源网络进行功耗分析(PNA,Power Network Analysis),确定电源引脚的位置和电源线宽度。

▲在完成布局布线后,需要对整个版图的布局进行动态功耗分析和静态功耗分析。

▲除了对版图进行功耗分析以外,还应通过仿真工具快速计算动态功耗,找出主要的功耗模块或单元。

8.单元布局和优化
单元布局和优化主要定义每个标准单元的摆放位置并根据摆放的位置进行优化。

现在,EDA工具广泛支持物理综合,即将布局和优化与逻辑综合统一起来,引入真实(实际)的连线延时信息,减少了时序收敛所需要的迭代次数。

注:综合(synthesis):就是把思想转换为实现欲想功能的可制造的设计,综合是约束驱动和基于路径的:在进行综合时,对时序的约束和优化都是针对路径的,优化时序就是优化路径上的时序,因为选定工艺后,单元的建立保持时间是固定的,因此只有改变路径来满足约束,综合工具总是计算路径的延时,并根据逻辑单元对时序的要求来判断综合结果中的路径是否满足设计要求。

在逻辑设计中,时序路径延时通常由组合逻辑延时和布线延时组成,其中布线延时可以通过工具优化,而组合逻辑延时属于器件延时,因此如何在设计阶段进行优化以减少组合逻辑延时(减少组合逻辑的器件级数)是我们需要考虑的。

在0.13 微米以前的工艺时,互连线上延迟非常的不明显,标准单元的延迟占绝对主导因素,因此在逻辑综合后,网表就被直接拿来进行布局布线,时序往往也没有问题。

然而自0.13微米的工艺以来,连线延时越来越起主导作用了。

物理综合是将逻辑综合和布局布线结合起来设计方法学。

简单地说,物理综合工具除了具有原来逻辑综合,简单的自动放置标准单元的能力外,还会把标准单元在放置过程中实际位置的不同而导致的连线电容、电阻值的种种变化考虑进去,从而得到具有实际物理意义的准确的RC 延迟及时序信息。

如果当前的布置无法满足时序要求时,物理综合工具就会自动地尝试改变标准单元的放置或优化电路结构,直到时序满足输入约束(或能达到的最优情况)为止。

传统的逻辑综合方法是依赖于连线负载模型(Wire-load Model)的,所用的连线延时信息是根据wire-load model估算出来的。

在物理综合时,就考虑布局布线的问题了(逻辑综合没有包含布局布线的信息),计算延时的方法不是通过连线负载模型得出的,而是通过布局信息得到。

它(指物理综合)在综合(转换成可制造的设计)的同时也根据版图规划(Floorplan)的信息来完成电路布局过程(所以这是一个逻辑综合+布局结合的过程),同时进行电路综合(换成可制造的设计)和布局的过程能提供准确的互连线延时信息。

物理综合要求的约束条件通常有芯片尺寸、引脚位置、线上负载信息、版图规划信息等。

一般使用以下两种操作模式。

1)RTL到门级模式:在RTL到门级模式下,物理综合的输入信息是RTL级的设计电路、版图规划信息及含有版图信息的物理综合的库文件。

经过综合后,输出带有布局(placement)数据的门级网表及布局信息。

(这是上述意义上的物理综合过程)
2)门级到布局后门级模式:在这一模式下,与RTL到门级模式的唯一区别是物理综合的输入信息是门级网表,而不是RTL级的设计电路。

门级网表是由传统方法通过逻辑综合方法运用连线负载模型wire-load model得出的,通过物理综合能够优化网表并得到门级电路的布局信息。

当设计电路很庞大的时候,RTL到网表需要花费的时间会很长,而由于缺少实际的布局布线的信息,所得的网表对实际布局而言并不是优化的。

建议在这一级的综合时不要花太多的时间优化,而把优化工作由物理综合完成。

换句话说,可以先通过简单的逻辑综合将RTL
级的设计转换为网表,然后通过物理综合对网表进行布局与优化,最终得到满足时序的电路结构。

随着物理综合工具的不断成熟,物理综合在0.18mm以下工艺的大型SOC设计中被广泛采用。

9.静态时序分析
STA是一种静态验证方法
通过对提取电路中所有路径上的延迟等信息的分析,计算出信号在时序路径上的延迟,找出违背时序约束的错误,如检查建立时间(Setup Time)和保持时间(Hold Time)是否满足要求。

静态时序分析的方法不依赖于激励,而且可以穷尽所有的路径,运行速度快,占用内存少。

它完全克服了动态时序验证的缺陷,是SoC设计中重要的一个环节。

在后端设计的很多步骤完成后都要进行静态时序分析,如在逻辑综合完成之后、在布局优化之后、在布线完成后等。

动态验证的缺陷有:
①现在SoC的发展趋势是将上百万个甚至更多门级电路集成在一个芯片上,通过动态仿真的方法验证这样的电路设计,则需要花费很长的时间。

②动态仿真取决于验证时采用的测试向量的覆盖率及仿真平台(Testbench)的性质,因此往往只能测试到部分逻辑而其他的逻辑被忽略。

10.形式验证
形式验证也是一种静态验证方法,与静态时序分析一起构成设计的静态验证。

在整个设计流程中会多次引入形式验证用于比较RTL代码之间、门级网表与RTL代码之间,以及门级网表之间在修改之前与修改之后功能的一致性。

11.可测性电路插入
可测性设计是SoC设计中的重要一步。

通常,对于逻辑电路采用扫描链的可测试结构,对于芯片的输入/输出端口采用边界扫描的可测试结构。

基本思想是通过插入扫描链,增加电路内部节点的可控性和可观测性,以达到提高测试效率的目的。

一般在逻辑综合或物理综合后进行扫描电路的插入和优化。

注:在集成电路设计领域,通常所说的验证和测试是指两种不同的事,其主要区别在于:验证是在设计过程中确认所设计的电路功能的正确性,测试是指采用测试设备检查芯片是否存在制造或封装过程中产生的缺陷。

验证可以通过软件仿真、硬件模拟和形式验证等方法进行,它是在流片之前要做的。

12.时钟树综合
SoC设计方法强调同步电路的设计,即所有的寄存器或一组寄存器是由同一个时钟的同一个边沿驱动的。

构造芯片内部全局或局部平衡的时钟链的过程称为时钟树综合。

分布在芯片内部寄存器与时钟的驱动电路构成了一种树状结构,这种结构称为时钟树。

时钟树综合是
在布线设计之前进行的。

13.布线设计
这一阶段完成所有节点的连接。

布线工具通常将布线分为两个阶段:全局布线与详细布线。

在布局之后,电路设计通过全局布线决定布局的质量及提供大致的延时信息。

为了减少综合到布局的迭代次数及提高布局的质量,通常在全局布线之后要提取一次时序信息,尽管此时的时序信息没有详细布线之后得到的准确,得到的时序信息将被反标(Back-Annotation)到设计网表上(用于替代wire load model估算的连线延时),用于做静态时序分析,只有当时序得到满足时才进行到下一阶段。

详细布线是布局工具做的最后一步,在详细布线完成之后,可以得到精确的时序信息。

14.寄生参数提取
通过提取版图上内部互连所产生的寄生电阻和电容值,得到SPEF文件,SPEF通过PT 转换成SDF被反标回设计,用于做静态时序分析和后仿真。

15.后仿真
后仿真也叫门级仿真、时序仿真、带反标的仿真,需要利用在布局布线后获得的精确延迟参数和网表进行仿真,验证网表的功能和时序是否正确。

后仿真一般使用标准延时(SDF,Standard Delay Format)文件来输入延时信息。

16.ECO修改
1)ECO修改是工程修改命令的意思。

2)这一步实际上是正常设计流程的一个例外。

当在设计的最后阶段发现个别路径有时序问题或逻辑错误时,有必要通过ECO对设计的局部进行小范围的修改和重新布线,并不影响芯片其余部分的布局布线。

在大规模的IC设计中,ECO修改是一种有效、省时的方法,通常会被采用。

17.物理验证
物理验证是对版图的设计规则检查(DRC,Design Rule Check)及逻辑图网表和版图网表比较(LVS,Layout Vs. Schematic)。

DRC用以保证制造良率。

LVS用以确认电路版图网表结构是否与其原始电路原理图(网表)一致。

3 SOC设计与EDA工具
3.1 电子系统级设计与工具
SoC的设计趋势正从RTL向电子系统级(ESL,Electronic System Level)转移。

ESL可以帮助设计者从更高层次进行电路设计,能协助工程师进行系统级设计、结构定义、算法开发、软硬件划分和协同设计、建立虚拟原型机,以及验证不同架构方案的可行性等。

目前的ESL工具通常采用工业标准语言进行建模,如C/C++、System C、SystemVerilog 等,常用的软硬件协同设计验证工具有Mentor公司的Seamless和Carbon Design Systems公司的SoC Designer。

Mentor的Catapult可实现C++到RTL级的综合(高层次的综合)。

3.2 验证的分类及相关工具
SOC设计中验证包含以下几个方面:
▲验证原始描述的正确性;
▲验证设计的逻辑功能是否符合设计规范的要求;
▲验证设计结果的时序是否符合原始设计规范的性能指标;
▲验证结果是否包含违反物理设计规则的错误。

3.2.1 验证方法的分类
1.动态验证
动态验证也叫仿真,是指从电路的描述提取模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部的激励信号作用下的实时响应来判断该电路系统是否实现了预期的功能。

仿真目前最常用的是基于事件驱动的方法,也在发展周期驱动的方法。

2.静态验证
静态验证是指采用分析电路的某些特性是否满足设计要求的方法,来验证电路的正确与否。

形式验证时近几年来兴起的一种验证方法,它需要有一个正确的模型作为参考,把待验证的电路与正确的模型进行比较,并给出不同版本的电路是否在功能上等效的结论,他利用理论证明的方法来验证设计结果的正确性。

比较动态验证和静态验证,各有优势和不足。

动态仿真主要是模拟电路的功能行为,必须给出适当的激励信号,然而很难选择激励来达到覆盖电路所有功能的目的,同时动态仿真很耗费时间。

静态验证只限于数字逻辑单路,其准确性低于动态验证,偶尔还会提供错误信息。

3.2.2 动态验证及相关工具
动态验证的工具很多,主要由电路级仿真工具,如SPICE、TimeMill、NanoSim,以及逻辑仿真工具,如VCS、Verilog-XL、NC Verilog、Modelsiim等。

▲电路级仿真工具模拟晶体管级的电路行为特性,主要用于模拟电路的设计。

▲逻辑仿真工具可以仿真行为级、RTL级和门级网表的数字电路,有Synopsys的VCS 和Mentor的Modelsim。

3.2.3 静态验证及相关工具
静态验证包括形式验证(从功能上对设计进行验证)和静态时序分析(从时序上对设计验证)。

▲形式验证工具有Synopsys公司的Formality及Cadance公司的Encounter Conformal Equivalent Checker等。

▲静态时序分析工具有Synopsys公司的Primetime。

注:下面列出IC前端设计流程中使用到的EDA工具
数字前端设计:以生成可以布局布线的网表为终点。

数字后端设计:以生成可以送交foundry进行流片的GDS2文件为终点。

图中没有物理综合,这是一个传统的流程:逻辑综合+布局布线,目前的一个趋势是逻辑综合和布局布线的集成,即物理综合,所以物理综合慢慢的取代了从逻辑综合到布线这一系列步骤,即物理综合工具可以完成从逻辑综合到布线之间多个工具完成的功能。

▲以往的方法是对网表文件(综合后文件)做门级仿真。

此种方式的仿真时间较长,且覆盖率相对较低。

▲形式验证+静态时序分析。

此种方法仿真时间短,覆盖率高,为业界普遍采用的方式。

******************************************************************************* ******************************************************************************* ******************************************************************************* SYNOPSYS –Design Compiler:传统的逻辑综合工具
初次综合时,使用wire load model来估算延时。

SYNOPSYS – Prime Time
在初次进行静态时序分析时,仍然采用wire load model来估算电路时序。

******************************************************************************* ▲布局布线前(即初次综合和STA分析时),由于无布线信息,所以连线(wire)延时只能够通过连接关系(与fanout相关)估计得到。

▲当特征尺寸降低时,此种估计方法越来越不准确,所以可以使用physical synthesis技术。

▲在布局布线后,布局布线工具可以提取出实际布线后的线网负载电容,此时PT可以计算实际延时(back-annote)。

可以将延时信息写入SDF文件用,然后反向标注到DC综合工具进行时序的优化。

******************************************************************************* PT使用方法与DC类似
1.指定使用的库
2.读入网表文件
3.指定时序约束及工作环境
4.进行静态时序分析,给出报告。

相关文档
最新文档