IC设计总结文档_第1页
IC设计总结文档_第2页
IC设计总结文档_第3页
IC设计总结文档_第4页
IC设计总结文档_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、IC设计总结文档1.1 微电子技术概述1.1.1 集成电路的发展回顾全球集成电路发展的路程,基本上可以总结为六个阶段:第一阶段:1962年制造出包含12个晶体管的小规模集成电路(SSI,Small-Scale Integration)。第二阶段:1966年发展到集成度为1001000个晶体管的中规模集成电路(MSI,Medium-Scale Integration)。第三阶段:19671973年,研制出1000100000个晶体管的大规模集成电路(LSI,Large-Scale Integration)。第四阶段:1977年研制出在30平方毫米的硅晶片上集成15万个晶体管的超大规模集成电路(V

2、LSI,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 集成电路产业分工微电子技术的迅速发展得益于集成电路产业内部的细致分工。目前,集成电路产业链主要包括设计、制造、

3、封装和测试,如图所示。在这历史过程中,世界IC产业为适应技术的发展和市场的需求,其产业结构经历了3次重大变革。1、以生产为导向的初级阶段20世纪60年代的集成电路产业就是半导体产业, IC设计只是附属产品。70年代出现独立的IC厂家设计IC产品。2、Foundry与Fabless设计公司的崛起20世纪80年代,工艺设备生产能力已经相当强大,但是费用十分昂贵,IC厂家自己的设计不足以供其饱和运行,因此开始承接对外加工,继而由部分到全部对外加工,形成了Foundry加工和Fabless设计的分工。Foundry:芯片代工厂的简称,不搞设计,没有自己的IC产品,为Fabless提供完全意义上的代工,

4、这使得Fabless可以放心地把产品交给Foundry而无需担心知识产权外流。Fabless:半导体集成电路行业中无生产线设计公司的简称。Fabless开拓市场后进行产品设计,将设计的成果外包给Foundry厂家进行芯片生产,生产出来的芯片经过封装测试后由设计公司自己销售。3、“四业分离”的IC产业20世纪90年代,IC产业结构开始向高度专业化转变,开始形成设计、制造、封装、测试独立成型的局面。这次分工的另一个特征是:系统设计和IP(知识产权)设计开始分工,它对集成电路产业的影响不亚于20世纪80年代Foundry与Fabless的分工。1.2 SoC概述随着设计与制造技术的发展,集成电路设计

5、从晶体管的集成发展到逻辑门的集成,现在又发展到IP的集成,即SoC(System-on-a-Chip)设计技术,SoC design=system architecture + IC。在经过了多年的争论后,专家们就SoC的定义达成了一致意见。这个定义虽然不是非常严格,但明确地表明了SoC的特征:实现复杂系统功能的VLSI;采用超深亚微米工艺技术;使用一个以上嵌入式CPU/数字信号处理器(DSP);外部可以对芯片进行编程;注:晶圆:指硅半导体集成电路所用的硅晶片,由于其形状为圆形,故称为晶圆,晶圆是生产集成电路所用的载体。晶圆越大,同一圆片上可生产的IC就越多,可降低成本;但对材料技术和生产技术

6、的要求更高,一般认为硅晶圆的直径越大,代表这座晶圆厂有更好的技术,在生产晶圆的过程当中,良品率是很重要的条件。工艺等级:通常把0.80.35um称为亚微米,0.25um及其以下称为深亚微米,0.18um或以下称为超深亚微米,0.05um及其以下称为纳米级。SoC中包含了微处理器/微控制器、存储器以及其他专用功能逻辑(DSP等),但并不是包含了微处理器、存储器以及其他专用功能逻辑的芯片就是SoC。SoC技术被广泛认同的根本原因,并不在于SoC可以集成多少个晶体管,而在于SoC可以用较短时间被设计出来。这是SoC的主要价值所在缩短产品的上市周期,因此,SoC更合理的定义为:SoC是在一个芯片上由于

7、广泛使用预定制模块IP(Intellectual Property)而得以快速开发的集成电路。从设计上来说,SoC就是一个通过设计复用达到高生产率的硬件软件协同设计的过程。从方法学的角度来看,SoC是一套极大规模集成电路的设计方法学,包括IP核可复用设计/测试方法及接口规范、系统芯片总线式集成设计方法学、系统芯片验证和测试方法学。SoC 是一种设计理念,就是将各个可以集成在一起的模块集成到一个芯片上,他借鉴了软件的复用概念,也有了继承的概念。也可以说是包含了设计和测试等更多技术的一项新的设计技术。SoC的一般构成:从大处来分,SoC含有:1.逻辑核包括CPU、时钟电路、定时器、中断控制器、串并

8、行接口、其它外围设备、I/O端口以及用于各种IP核之间的粘合逻辑等等;2.存储器核包括各种易失、非易失以及Cache等存储器;3.模拟核包括ADC、DAC、PLL以及一些高速电路中所用的模拟电路。现在的SoC芯片上可综合实现CPU、DSP、数字电路、模拟电路、存储器、片上可编程逻辑等多种电路;综合实现图像处理、语音处理、通信协议、通信机能、数据处理等功能。SoC按用途可分为两种类型:一种是专用SoC芯片,是专用集成电路(ASIC)向系统级集成的自然发展;另一种是通用SoC芯片,将绝大多数部件,如CPU、DSP、RAM、I/O等集成在芯片上,同时提供用户设计所需要的逻辑资源和软件编程所需的软件资

9、源。IP核是具有复杂系统功能的能够独立出售的VLSI块,经过验证并能在设计中复用的功能模块。1012 SoC设计流程2.1 软硬件协同设计SoC通常被称作系统级芯片或者片上系统,作为一个完整的系统,其包含硬件和软件两部分内容。这里所说的硬件指SoC芯片部分,软件是指运行在SoC芯片上的系统及应用程序。既然它是由软件和硬件组合而成,则在进行系统设计时,就必须同时从软件和硬件的角度去考虑。软硬件协同设计的SoC设计流程一个完整的SoC设计包括系统结构设计(也称为架构设计),软件结构设计和ASIC设计(硬件设计)。 SoC设计与传统的ASIC设计最大的不同在于以下两方面: 1)SoC设计更需要了解整

10、个系统的应用,定义出合理的芯片架构,使得软硬件配合达到系统最佳工作状态。因而,软硬件协同设计被越来越多地采用。 2)SoC设计是以IP复用或更大的平台复用为基础的。因而,基于IP复用的设计是硬件实现的特点。1系统需求说明系统设计首先从确定所需的功能开始,包含系统基本输入和输出及基本算法需求,以及系统要求的功能、性能、功耗、成本和开发时间等。在这一阶段,通常会将用户的需求转换为用于设计的技术文档,并初步确定系统的设计流程。2高级算法建模与仿真设计者将使用如C和C+等高级语言创建整个系统的高级算法模型和仿真模型。目前,一些EDA工具可以帮助我们完成这一步骤。有了高级算法模型,便可以得到软硬件协同仿

11、真所需的可执行的说明文档。此类文档会随着设计进程的深入而不断地完善和细化。3软硬件划分过程 设计者通过软硬件划分来决定哪些功能应该由硬件完成,哪些功能应该由软件来实现。这是一个需要反复评估-修改直至满足系统需求的过程。软硬件划分的合理性对系统的实现至关重要。有些功能既可以用软件实现也可以用硬件实现,这取决于所要达到的性能指标与实现的复杂程度及成本口4软硬件同步设计由于软硬件的分工已明确,芯片的架构及同软件的接口也已定义,接下来便可以进行软硬件的同步设计了。其中硬件设计包括RTL设计和集成、综合、布局布线及最后的流片。软件设计则包括算法优化、应用开发,以及操作系统、接口驱动和应用软件的开发。2.

12、2 下面主要介绍硬件(芯片)设计:基于标准单元的SoC芯片设计流程1.硬件设计定义说明硬件设计定义说明描述芯片总体结构、规格参数、模块划分、使用的总线,以及各个模块的详细定义等。2.模块设计及IP复用根据所划分出的功能模块,确定需要重新设计的部分及可复用的IP核,对于需要重新设计的模块进行设计;对于可复用的IP核,通常由于总线接口标准不一致需要做一定的修改。 IP核可自主研发或者购买其他公司的IP。目前,设计的输入是采用硬件描述语言(HDL),如Verilog或VHDL,所以,数字模块的设计通常称为RTL代码编写。3.顶层模块集成顶层模块集成是将各个不同的功能模块,包括新设计的与复用的整合在一

13、起,形成一个完整的设计。通常采用硬件描述语言对电路进行描述,其中需要考虑系统时钟/复位、I/O环等问题。4.前仿真前仿真也叫RTL级仿真,功能仿真。通过HDL仿真器验证电路逻辑功能是否有效,及HDL描述是否符合设计所定义的功能期望。在前仿真时,通常与具体的电路物理实现无关,没有时序信息。5.逻辑综合逻辑综合是指使用EDA工具把由硬件描述语言设计的电路自动转换成特定工艺下的网表,即从RTL级的HDL描述通过编译与优化产生符合约束条件的门级网表。网表是一种描述逻辑单元和他们之间互连的数据文件。约束条件包括时序、面积和功耗的约束。其中,时序是最复杂和最关键的约束,决定了整个芯片的性能。在综合过程中,

14、EDA工具会根据约束条件对电路进行优化,优化(这里指的是初次逻辑综合优化)的主要目的是在满足时序要求的前提下尽量减小芯片面积。与工艺无关的优化缺乏非常准确的时序信息,因而注意力往往集中在优化面积上。等到映射之后时序信息比较准确时再进行修正更有效。6.版图布局规划版图布局规划完成的任务是确定设计中各个模块在版图上的位置,主要包括:I/O规划,确定I/O的位置,定义电源和接地口的位置;模块放置,定义各种物理的组、区域或模块,对这些大的宏单元进行放置;供电设计,设计整个版图的供电网络,基于电压降(IR Drop)和电迁移进行拓扑优化。版图布局规划的挑战是在保证布线能够走通且性能允许的前提下,如何最大

15、限度地减少芯片面积,是物理设计过程中需要设计者付出最大努力的地方之一。7.功耗分析在设计中的许多步骤都需要对芯片功耗进行分析,从而决定是否需要对设计进行改进。 在版图布局规划后,需要对电源网络进行功耗分析(PNA,Power Network Analysis),确定电源引脚的位置和电源线宽度。 在完成布局布线后,需要对整个版图的布局进行动态功耗分析和静态功耗分析。 除了对版图进行功耗分析以外,还应通过仿真工具快速计算动态功耗,找出主要的功耗模块或单元。 8.单元布局和优化单元布局和优化主要定义每个标准单元的摆放位置并根据摆放的位置进行优化。 现在,EDA工具广泛支持物理综合,即将布局和优化与逻

16、辑综合统一起来,引入真实(实际)的连线延时信息,减少了时序收敛所需要的迭代次数。注:综合(synthesis):就是把思想转换为实现欲想功能的可制造的设计,综合是约束驱动和基于路径的:在进行综合时,对时序的约束和优化都是针对路径的,优化时序就是优化路径上的时序,因为选定工艺后,单元的建立保持时间是固定的,因此只有改变路径来满足约束,综合工具总是计算路径的延时,并根据逻辑单元对时序的要求来判断综合结果中的路径是否满足设计要求。在逻辑设计中,时序路径延时通常由组合逻辑延时和布线延时组成,其中布线延时可以通过工具优化,而组合逻辑延时属于器件延时,因此如何在设计阶段进行优化以减少组合逻辑延时(减少组合

17、逻辑的器件级数)是我们需要考虑的。在0.13 微米以前的工艺时,互连线上延迟非常的不明显,标准单元的延迟占绝对主导因素,因此在逻辑综合后,网表就被直接拿来进行布局布线,时序往往也没有问题。然而自0.13微米的工艺以来,连线延时越来越起主导作用了。物理综合是将逻辑综合和布局布线结合起来设计方法学。简单地说,物理综合工具除了具有原来逻辑综合,简单的自动放置标准单元的能力外,还会把标准单元在放置过程中实际位置的不同而导致的连线电容、电阻值的种种变化考虑进去,从而得到具有实际物理意义的准确的 RC 延迟及时序信息。如果当前的布置无法满足时序要求时,物理综合工具就会自动地尝试改变标准单元的放置或优化电路

18、结构,直到时序满足输入约束(或能达到的最优情况)为止。传统的逻辑综合方法是依赖于连线负载模型(Wire-load Model)的,所用的连线延时信息是根据wire-load model估算出来的。在物理综合时,就考虑布局布线的问题了(逻辑综合没有包含布局布线的信息),计算延时的方法不是通过连线负载模型得出的,而是通过布局信息得到。它(指物理综合)在综合(转换成可制造的设计)的同时也根据版图规划(Floorplan)的信息来完成电路布局过程(所以这是一个逻辑综合+布局结合的过程),同时进行电路综合(换成可制造的设计)和布局的过程能提供准确的互连线延时信息。物理综合要求的约束条件通常有芯片尺寸、引

19、脚位置、线上负载信息、版图规划信息等。一般使用以下两种操作模式。1)RTL到门级模式:在RTL到门级模式下,物理综合的输入信息是RTL级的设计电路、版图规划信息及含有版图信息的物理综合的库文件。经过综合后,输出带有布局(placement)数据的门级网表及布局信息。(这是上述意义上的物理综合过程)2)门级到布局后门级模式 :在这一模式下,与RTL到门级模式的唯一区别是物理综合的输入信息是门级网表,而不是RTL级的设计电路。门级网表是由传统方法通过逻辑综合方法运用连线负载模型wire-load model得出的,通过物理综合能够优化网表并得到门级电路的布局信息。当设计电路很庞大的时候,RTL到网

20、表需要花费的时间会很长,而由于缺少实际的布局布线的信息,所得的网表对实际布局而言并不是优化的。建议在这一级的综合时不要花太多的时间优化,而把优化工作由物理综合完成。换句话说,可以先通过简单的逻辑综合将RTL级的设计转换为网表,然后通过物理综合对网表进行布局与优化,最终得到满足时序的电路结构。随着物理综合工具的不断成熟,物理综合在0.18mm以下工艺的大型SOC设计中被广泛采用。9.静态时序分析STA是一种静态验证方法 通过对提取电路中所有路径上的延迟等信息的分析,计算出信号在时序路径上的延迟,找出违背时序约束的错误,如检查建立时间(Setup Time)和保持时间(Hold Time)是否满足

21、要求。静态时序分析的方法不依赖于激励,而且可以穷尽所有的路径,运行速度快,占用内存少。它完全克服了动态时序验证的缺陷,是SoC设计中重要的一个环节。在后端设计的很多步骤完成后都要进行静态时序分析,如在逻辑综合完成之后、在布局优化之后、在布线完成后等。动态验证的缺陷有:现在SoC的发展趋势是将上百万个甚至更多门级电路集成在一个芯片上,通过动态仿真的方法验证这样的电路设计,则需要花费很长的时间。动态仿真取决于验证时采用的测试向量的覆盖率及仿真平台(Testbench)的性质,因此往往只能测试到部分逻辑而其他的逻辑被忽略。10.形式验证形式验证也是一种静态验证方法,与静态时序分析一起构成设计的静态验

22、证。在整个设计流程中会多次引入形式验证用于比较RTL代码之间、门级网表与RTL代码之间,以及门级网表之间在修改之前与修改之后功能的一致性。11.可测性电路插入可测性设计是SoC设计中的重要一步。通常,对于逻辑电路采用扫描链的可测试结构,对于芯片的输入/输出端口采用边界扫描的可测试结构。基本思想是通过插入扫描链,增加电路内部节点的可控性和可观测性,以达到提高测试效率的目的。一般在逻辑综合或物理综合后进行扫描电路的插入和优化。注:在集成电路设计领域,通常所说的验证和测试是指两种不同的事,其主要区别在于:验证是在设计过程中确认所设计的电路功能的正确性,测试是指采用测试设备检查芯片是否存在制造或封装过

23、程中产生的缺陷。验证可以通过软件仿真、硬件模拟和形式验证等方法进行,它是在流片之前要做的。12.时钟树综合SoC设计方法强调同步电路的设计,即所有的寄存器或一组寄存器是由同一个时钟的同一个边沿驱动的。构造芯片内部全局或局部平衡的时钟链的过程称为时钟树综合。分布在芯片内部寄存器与时钟的驱动电路构成了一种树状结构,这种结构称为时钟树。时钟树综合是在布线设计之前进行的。13.布线设计这一阶段完成所有节点的连接。布线工具通常将布线分为两个阶段:全局布线与详细布线。在布局之后,电路设计通过全局布线决定布局的质量及提供大致的延时信息。为了减少综合到布局的迭代次数及提高布局的质量,通常在全局布线之后要提取一

24、次时序信息,尽管此时的时序信息没有详细布线之后得到的准确,得到的时序信息将被反标(Back-Annotation)到设计网表上(用于替代wire load model估算的连线延时),用于做静态时序分析,只有当时序得到满足时才进行到下一阶段。详细布线是布局工具做的最后一步,在详细布线完成之后,可以得到精确的时序信息。14.寄生参数提取通过提取版图上内部互连所产生的寄生电阻和电容值,得到SPEF文件,SPEF通过PT转换成SDF被反标回设计,用于做静态时序分析和后仿真。15.后仿真后仿真也叫门级仿真、时序仿真、带反标的仿真,需要利用在布局布线后获得的精确延迟参数和网表进行仿真,验证网表的功能和时

25、序是否正确。后仿真一般使用标准延时(SDF,Standard Delay Format)文件来输入延时信息。16.ECO修改1)ECO修改是工程修改命令的意思。 2)这一步实际上是正常设计流程的一个例外。当在设计的最后阶段发现个别路径有时序问题或逻辑错误时,有必要通过ECO对设计的局部进行小范围的修改和重新布线,并不影响芯片其余部分的布局布线。在大规模的IC设计中,ECO修改是一种有效、省时的方法,通常会被采用。17.物理验证物理验证是对版图的设计规则检查(DRC,Design Rule Check)及逻辑图网表和版图网表比较(LVS,Layout Vs. Schematic)。 DRC用以保

26、证制造良率。 LVS用以确认电路版图网表结构是否与其原始电路原理图(网表)一致。3 SOC设计与EDA工具3.1 电子系统级设计与工具SoC的设计趋势正从RTL向电子系统级(ESL,Electronic System Level)转移。ESL可以帮助设计者从更高层次进行电路设计,能协助工程师进行系统级设计、结构定义、算法开发、软硬件划分和协同设计、建立虚拟原型机,以及验证不同架构方案的可行性等。目前的ESL工具通常采用工业标准语言进行建模,如C/C+、System C、SystemVerilog等,常用的软硬件协同设计验证工具有Mentor公司的Seamless和Carbon Design S

27、ystems公司的SoC Designer。Mentor的Catapult可实现C+到RTL级的综合(高层次的综合)。3.2 验证的分类及相关工具SOC设计中验证包含以下几个方面:验证原始描述的正确性;验证设计的逻辑功能是否符合设计规范的要求;验证设计结果的时序是否符合原始设计规范的性能指标;验证结果是否包含违反物理设计规则的错误。3.2.1 验证方法的分类1.动态验证 动态验证也叫仿真,是指从电路的描述提取模型,然后将外部激励信号或数据施加于此模型,通过观察该模型在外部的激励信号作用下的实时响应来判断该电路系统是否实现了预期的功能。仿真目前最常用的是基于事件驱动的方法,也在发展周期驱动的方法

28、。2.静态验证静态验证是指采用分析电路的某些特性是否满足设计要求的方法,来验证电路的正确与否。形式验证时近几年来兴起的一种验证方法,它需要有一个正确的模型作为参考,把待验证的电路与正确的模型进行比较,并给出不同版本的电路是否在功能上等效的结论,他利用理论证明的方法来验证设计结果的正确性。比较动态验证和静态验证,各有优势和不足。动态仿真主要是模拟电路的功能行为,必须给出适当的激励信号,然而很难选择激励来达到覆盖电路所有功能的目的,同时动态仿真很耗费时间。静态验证只限于数字逻辑单路,其准确性低于动态验证,偶尔还会提供错误信息。3.2.2 动态验证及相关工具动态验证的工具很多,主要由电路级仿真工具,

29、如SPICE、TimeMill、NanoSim,以及逻辑仿真工具,如VCS、Verilog-XL、NC Verilog、Modelsiim等。电路级仿真工具模拟晶体管级的电路行为特性,主要用于模拟电路的设计。逻辑仿真工具可以仿真行为级、RTL级和门级网表的数字电路,有Synopsys的VCS和Mentor的Modelsim。3.2.3 静态验证及相关工具静态验证包括形式验证(从功能上对设计进行验证)和静态时序分析(从时序上对设计验证)。形式验证工具有Synopsys公司的Formality及Cadance公司的Encounter Conformal Equivalent Checker等。静态

30、时序分析工具有Synopsys公司的Primetime。注:下面列出IC前端设计流程中使用到的EDA工具数字前端设计:以生成可以布局布线的网表为终点。数字后端设计:以生成可以送交foundry进行流片的GDS2文件为终点。图中没有物理综合,这是一个传统的流程:逻辑综合+布局布线,目前的一个趋势是逻辑综合和布局布线的集成,即物理综合,所以物理综合慢慢的取代了从逻辑综合到布线这一系列步骤,即物理综合工具可以完成从逻辑综合到布线之间多个工具完成的功能。以往的方法是对网表文件(综合后文件)做门级仿真。此种方式的仿真时间较长,且覆盖率相对较低。形式验证+静态时序分析。此种方法仿真时间短,覆盖率高,为业界

31、普遍采用的方式。*SYNOPSYS Design Compiler:传统的逻辑综合工具初次综合时,使用wire load model来估算延时。SYNOPSYS Prime Time在初次进行静态时序分析时,仍然采用wire load model来估算电路时序。*布局布线前(即初次综合和STA分析时),由于无布线信息,所以连线(wire)延时只能够通过连接关系(与fanout相关)估计得到。当特征尺寸降低时,此种估计方法越来越不准确,所以可以使用physical synthesis技术。在布局布线后,布局布线工具可以提取出实际布线后的线网负载电容,此时PT可以计算实际延时(back-annot

32、e)。可以将延时信息写入SDF文件用,然后反向标注到DC综合工具进行时序的优化。*PT使用方法与DC类似1.指定使用的库2.读入网表文件3.指定时序约束及工作环境4.进行静态时序分析,给出报告。以上是后端设计流程及EDA工具,也是传统的流程。目前随着EDA软件的功能越来越强,各大EDA公司都推出了RTL到GDSII的完整工具包。这样大大减少了使用不同工具带来的数据格式不同等问题,如Synopsys的Galaxy平台、Candence公司的SOC Encounter、Magma公司的Blaster等。4 SOC系统结构设计嵌入式软件是运行在SOC芯片之上的。软件和硬件的有效结合决定了系统的效率和

33、性能。电子系统级(ESL,electronic system lever)设计以抽象方式来描述SOC系统,给软硬件工程师提供一个虚拟的硬件原型平台(已经比较细节化了,面向某一应用领域的基础底层平台,针对该领域内不同应用的特点进行微小的扩展或者裁剪即可满足需求,增加了设计的复用性ESL三步走的最有一步的结果),用以进行硬件系统结构的探索和软件程序的开发。SOC的系统结构设计的过程可以分为以下三个阶段(上述的三步走):功能设计阶段、应用驱动的系统结构设计阶段及平台导向的系统结构设计阶段。(1)功能设计阶段这一阶段的主要目标是根据应用的需要,正确地定义系统功能,以此为基础建立一个面向应用需求的系统功

34、能模型。需要考虑以下问题:正确定义系统的输入/输出;确定系统中各功能组件的功能行为;各功能组件之间的互连结构和通信方式。(2)应用驱动的系统结构设计阶段主要目标是针对特定的应用需求(如需要支持播放视频、音频等),确定SOC的系统结构。将设计划分为一系列硬件模块和软件任务,并确定各软硬件之间的接口规范。系统结构设计的最初级阶段需要确定芯片上使用的处理器(如处理器类型及个数)、总线(总线标准、总线架构)和存储器类型(需要哪些处理器)。在这一阶段也确定了软硬件的划分,如那些任务用处理器完成,哪些任务用硬件加速器完成。通过这一阶段,可以得到一个高抽象层次的SOC系统结构平台。(3)平台导向的系统结构设

35、计阶段主要目标是创建一个较低抽象层次的SOC硬件平台(即上面说的硬件原型平台)。在该阶段需要关注更多的设计细节,如处理器的型号、存储器容量、总线仲裁等。本阶段所构建的SOC平台将是面向某一应用领域(如手机)的基础底层平台,针对该领域内不同的应用特点仅需对该平台进行微小的扩展或裁减即可,大大增加设计复用性。基于该阶段构建的SOC平台进行设计的方法称为基于平台的设计方法。4.1 SOC中常用的处理器分为三类:通用处理器、数字信号处理器和可配置处理器。通用处理器:主要负责控制、操作系统平台和一般的信号处理等任务。无法满足计算密集型任务对于实时性的需要。如ARM系列处理器、MIPS系列处理器、Powe

36、rPC系列处理器数字信号处理器DSP:常常被作为SOC中的核心处理器或者在多核SOC中被作为对计算密集型任务进行加速的处理器。如TI系列DSP、ADI系列DSP、Freescale系列DSP。可配置处理器:针对不同应用的需求,允许用户配置具有不同体系结构的处理器。如Tensilica系列处理器、Nios系列处理器、ARC系列处理器。4.2 SOC中常用的总线较有影响力的片上总线标准有ARM公司的AMBA总线、IBM公司的CoreConnect总线、Silicore Corp公司的Wishbone总线和Altera公司的Avalon总线等。(1)AMBA总线标准包括AHB(Advanced Hi

37、gh-performance Bus)总线、ASB (Advanced System Bus)总线、APB(Advanced Peripheral Bus)总线和AXI总线。AHB和ASB总线连接高性能系统模块,ASB是旧版本的系统总线,使用三态总线,目前已被新版本的AHB总线所代替。AHB是AMBA2.0标准,而AXI是最新推出的新一代AMBA3.0标准。APB连接低性能外围设备。(2)CoreConnect总线包括PLB(Procesor Local Bus)总线、OPB(On-Chip Peripheral Bus)总线、DCR(Device Control Register)总线 在C

38、oreConnect总线中,PLB总线连接高性能设备如处理器、存储器接口、DMA等。OPB总线连接低性能设备如各种外围接口等 DCR总线主要用来访问和配置PLB和OPB总线设备的状态和控制寄存器(3)Wishbone总线是由Silicore公司推出的片上总线标准,这种总线具有简单、灵活和开放的特点,现在已经被OpenCores采用并组织维护。在Wishbone中,所有核都连接在同一标准接口上。当需要时,系统设计者可以选择在一个微处理器核上实现两个接口,一个给高速设备,另一个给低速设备 一个Wishbone系统由主设备、从设备、INTERCON和SYSCON组成。其中INTERCON定义了主设备

39、和从设备之间的连接方式,而SYSCON用来产生系统时钟和复位信号 在Wishbone中有4种不同的连接方式可以使用,它们分别是点对点、数据流、共享总线和交叉连接方式(4)AVALON总线主要应用在FPGA中,作为SOPC(System On a Programmable Chip)中的片上总线。SOPC:System-on-a-Programmable-Chip,即可编程片上系统,可编程片上系统(SOPC)是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

40、OCP:开放核协议(OCP,Open Core Protocol)是由OCP-IP组织定义的IP互连协议。它不是总线定义,而是在IP核之间的一种独立于总线之外的高性能接口规范。一个IP核可以是处理器、外围设备或者片上总线(带有这一标准接口的总线), OCP在两个通信实体之间定义了点到点的接口。4.3 SOC中典型的存储器存储器分RAM、ROM和FLASH三种。(1)RAM有SRAM、DRAM两大类:SRAM(Static RAM,静态随机存储器),是目前读写最快的存储设备,可以达到和处理器的时钟同步,SRAM存储器的接口简单,比较容易设计,SRAM在系统中常常作为处理器的缓存(如CP

41、U的一级缓存和二级缓存)。但是一个SRAM的每1位需要6个晶体管,因此相同存储空间的RAM的面积较大,在SoC中只能少量使用。DRAM(Dynamic RAM,动态随机存取存储器),通常都用作计算机内的主存储器。DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快。计算机内存就是DRAM的。DRAM分为很多种,最常见的就是SDRAM、DDR RAM。SDRAM:SDRAM(同步动态随机存储器)的价格低、体积小、容量大,与SRAM相比,SDRAM的控制逻辑复杂,速度较慢。DDRAM:DDRAM(双倍传输速度随机存储器)采用双倍数据技术,这种改进型的RAM和SD

42、RAM是基本一样的,不同之处在于它可以在一个时钟读写两次数据,支持在时钟的上升沿和下降沿同时进行数据的传输,从而增加数据的吞吐量。其最大带宽可达SDRAM的两倍。当然它的设计也更复杂。这是目前电脑中用得最多的内存,而且它有着成本优势。在很多高端的显卡上,也配备了高速DDRAM来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力。ROM(只读存储器)是一种只读存储器,包括掩膜式ROM、可编程ROM(PROM)、可擦除的可编程ROM(EPROM)和电可擦除的可编程ROM(EEPROM)等。ROM在SoC中一般用来存储固定的代码或资料。FLASH(闪存),它结合了ROM和RAM的长处,不仅具备电子可

43、擦出可编程(EEPROM)的性能,还不会断电丢失数据同时可以快速读取数据(NVRAM的优势),U盘和MP3里用的就是这种存储器。NOR Flash和NAND Flash是现在市场上两种主要的Flash存储器。NOR FLASH的特点是芯片内可以直接运行程序,而不必再把代码读到系统RAM中。NOR的传输效率很高,但写入和擦除速度较低,这大大影响了它的性能。NAND FLASH写入和擦除速度很快,但NAND FLASH没有采取内存的随机读取技术,它的读取是以一次读取一快的形式来进行的,通常是一次读取512个字节,采用这种技术的Flash比较廉价。用户不能直接运行NAND Flash上的代码,因此好

44、多使用NAND Flash的开发板除了使用NAND FLASH。以外,还作上了一块小的NOR Flash来运行启动代码。4.4 多核SOC的系统结构设计多核与多处理器:多核处理器(CMP Chip multiprocessors)是指在一枚处理器(processor)中集成两个或多个完整的计算引擎(内核core)。多核处理器可以在处理器内部共享缓存。形象的比喻是:双核心可以形象比喻成一套两居室,房子里有两个屋子,每个屋子都是独立存在的,不互相干扰。出门时也可以各走各的卧室门到大门口。不过如果因为某些原因,例如放音响声音过大等情况,在同一套两居室里的两个屋子之间也会相互影响。而且房子里的其他设施

45、都是共享的,所以多核共享缓存。多处理器(SMP Symmetric Multi-Processing)是指在一个计算机上汇集了一组处理器(多CPU),多CPU则是真正意义上的多核心,不光是处理器核心有多个,其他例如缓存等硬件配置也都是多份的。即每个CPU都有自己的缓存。各CPU之间共享内存子系统以及总线结构。形象的比喻是:双CPU,他就是名副其实的两套房子,每个房子有每个房子的大门,不会出现双核心那样一个房间因为某些原因影响另一间,即使某个房子播放音响也不会影响到另外一套房子。每个房子都有自己的设施。但是两个房子在一个小区,所以共享小区的公共设施,所以多CPU之间共享内存、总线结构等。而超线程

46、则是用软件将一个物理核心模拟出双核的效果。形象的比喻是:超线程技术实际上就相当于把一个房间人为的通过添加屏风或者推拉门来划分成两小间,虽然表面上每间居住者可以自己干自己的事,不互相影响,但是在出门时都要走同一个卧室门。核心与核心之间的通信是由 CPU芯片内部的总线完成的;而多块CPU芯片之间的通信则应该有CPU与CPU之间的总线完 成,如上面所述的AMBA等总线。上述说的是一个处理器芯片上集成核数的问题,然则在SOC中,本身就是一个芯片集成了一个系统,因此多核SOC和多处理器SOC是一个概念,因为都是多个处理引擎集成在一个芯片中。因此在书本中是这么表达的:多核SOC或多处理

47、器SOC-P45SOC的设计方法与实现第二版。原文中还说明:实际上,由于不同的任务可在很大的程度上互相独立运行,如音频和视频处理及网络协议处理等,可以将具有内在执行并行性的复杂任务分解为一系列子任务,并行执行,因此我们说多核SOC中的核不仅仅指通用处理器核,也可以是音频解码核、视频解码核及网络协议处理器核。多核结构的设计可以复用现有的成熟的单核处理器作为处理器核心。4.4.1 可用的并发性设计师可以利用许多不同级别的并发性,通常这些级别的并发性可归纳为3中:指令并级发性、数据级并发性和任务级并发性。(1)指令级并发性(ILP,Instruction Level Parallelism)利用指令

48、之间的无关性,使得多条指令可以同时执行,改变传统串行执行指令造成的较大延时,提高指令和程序的执行效率。最常见的指令并行是利用指令流水线保证多条相互无关的指令重叠执行不同的流水阶段,从而提高指令执行的吞吐率。(2)数据级并发性(DLP,Data Level Parallelism)是指,一组待处理的数据内部存在较为松散的依赖关系,在理论上可以对这些松散数据并行执行(3)任务级并行(TLP,Task Level Parallelism),由于系统往往需要完成多种功能,而这些功能可能独立于系统中的其他功能。任务级并行性可以从原本的一个串行任务中提取出来。与前两类并行性相比,任务级并行性对于结构设计师

49、更为重要。4.4.2 多核SOC设计中的系统结构选择(1)处理器结构需要重点考虑对处理器的选型、处理器间的互连结构及存储器的共享方式等方面。因为多核SOC中的核不仅仅指通用处理器核,也可以是音频解码核、视频解码核及网络协议处理器核。所以多核结构可以根据处理器核的特性分为同构多核结构和异构多核结构。同构多核结构:一个芯片上集成了多个相同的处理器,这些处理器执行相同或类似的任务,多用于服务器市场。异构多核结构:处理器中只有一个或数个同用核心承担任务指派功能,而诸如协处理器、加速器和外设等功能都可以通过专业核心如DSP来完成。应用很广泛,比如多媒体应用中。(2)核间通信多核处理器的各个核心之间需要进

50、行数据共享与同步,因此其硬件结构必须支持核间通信。高效的通信机制是保证多核处理器高性能的关键。目前比较主流的片上高效通信机制有两种,一种是基于总线共享Cache结构,一种是基于片上的互连结构。基于总线共享cache结构,是指每个处理器内核拥有共享的二级或三级cache(每个处理器核拥有私有的一级cache),cache中保存比较常用的数据,并通过连接核心的总线进行通信。基于片上互连的结构。基于片上互连的结构是指每个处理器核具有独立的处理单元和cache,各个处理器核通过总线(交叉开关或片上网络等方式)连接在一起,利用消息传递机制进行通信。典型的多核SOC系统结构:片上网络NOC:随着同一芯片内

51、部集成的处理器数量不断增加,利用传统的基于总线的互连结构已成为多核间通信的主要瓶颈。总线带宽有限,分时复用难以解决数据计算密集型的应用中。在基于NOC的SOC中,处理器核之间依靠网络和数据包交换机制,在一条由其他处理器或IP核构成的连接或路由上完成数据的交互。NOC借鉴了计算机网络的理念。较好的解决了传统的基于总线的多核SOC系统在总线结构设计上所面临的带宽和复杂逻辑协议问题。图 典型的NOC系统结构NOC包括计算和通信两个子系统,计算子系统(PE,processing element构成的子系统),完成广义的“计算”任务,PE既可以是处理器也可以是各种专用功能的IP核或存储器阵列等。通信子系

52、统(S,switch组成的子系统),负责连接PE,实现计算资源之间的高速通信。TI的开放式多媒体应用平台(OMAP)架构:在异构多核处理器方面,RISC通用处理器和DSP的结构收到了业界的广泛关注,产品以TI的OMAP最具代表性。它采用双核结构,把TI的高性能低功耗DSP核与控制性能强的ARM微处理器结合起来。此外,芯片中还包括图像、图形的加速器及一些输入输出接口。在该SOC中,利用低功耗的ARM处理器实现接口和控制方面的需求,而DSP用来增加芯片对音视频应用中的信号处理能力。图 TI OMAP结构4.5 SOC中的软件结构在一个SOC的系统结构设计中,除了硬件结构外,还包括软件结构。图 SO

53、C中的应用软件运行环境及开发工具结构 5 IP复用的设计与方法IP是知识产权的意思 在集成电路行业里,IP通常是指硅知识产权(Silicon Intellectual Property),即IP核。(1)从差异化的程度来区分除可集成到芯片上的IP核外,还有大量专门用于验证电路的IP。这些IP称为验证IP(Verification IP),如用于验证USB2.0的IP,用于验证AHB的总线功能模型等,这些IP是不需要可综合的。(2)从设计流程上来区分软核(Soft IP)利用Verilog或VHDL等硬件描述语言,依照所制定的规格,将系统所需的功能写成RTL的程序,被称为软核。与具体的实现工艺无

54、关。固核(Firm IP)RTL程序经过仿真后,通过综合从单元库中选取相应的逻辑门,转换成以逻辑门单元形式呈现的网表文件,即所谓的固核。硬核(Hard IP)网表文件经过验证后,经过布局规划和布局布线后所产生的GDSII文件,即称为硬核。硬核的设计与工艺已经完成而且无法修改,用户得到的硬核仅是产品功能而不是产品设计。与软核和固核不同,硬核在物理设计完成后必须用特定的工具对其进行建模。一个完整的硬核通常包含以下模型:功能模型时序模型功耗模型测试模型物理模型6 RTL代码的编写6.1 代码编写前的准备(1)总线设计的考虑目前,片上总线尚处于发展阶段,没有一个统一的标准,国际上比较成熟的总线结构有P

55、CI总线、ARM公司的AMBA和AXI总线、IBM的coreconnect等(2)模块的划分模块划分是将复杂的设计划分成许多小模块,它的好处是区分不同的功能模块,使得每个功能模块的尺寸和功能不至于太复杂,利于一个团队共同完成设计。模块划分的技巧如下:关于芯片级的模块划分在进行芯片级的模块划分时,建立明确的层次结构仍然是经典的设计形式,这种方式有助于基于IP复用设计的进行。顶层模块组织结构要简单,这样可以使得顶层连接更加简单、直观,同时也有利于分块式的布局布线。要确保只有在顶层模块才包含I/O引脚。基于核心逻辑的模块划分对核心逻辑进行模块划分时,要避免子模块间出现连接用的粘附逻辑。图 粘附逻辑图

56、 消除粘附逻辑尽可能地把相关的组合逻辑集中到一个模块中处理。这是因为综合器在默认的工作模式下综合优化时,不能跨越模块边界对相关的组合逻辑做归并优化处理。图 组合逻辑被分散在多个模块图 组合逻辑归并把多周期路径或伪路径限制到一个模块中如果在设计中包含了多周期路径或伪路径,应尽可能地把这些逻辑限制到一个模块中,并在代码编写时用注释行明确指出注:多周期路径约束和FALSE path约束称为慢速例外时间约束。伪路径是设计者告诉静态时许分析工具已经认定的时序不满足的路径。把多周期路径限制到一个模块中处理可以减少综合时间和优化非多周期路径的综合结果。把多周期路径或伪路径限制到一个模块中,可以方便设计者给出相关的综合及静态时序分析的约束,同时也便于设计者在后端设计实现后进行检查。根据时钟的相关性划分模块应当尽量根据时钟的相关性来划分模块。简单地说,就是将时钟分频、门控单元和复位产生等电路尽量放在同一模块中这么做使得在综合的时候便于设置时钟约束。每个模块尽量只使用一个时钟,如果实在不能避免的话,应该设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论