电子设计应用嵌入式SoCIC的设计方法和流程

时间:2011-09-05

 

  SoC(System on Chip)可以译为"系统集成芯片",意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容;SoC也可以译为"系统芯片集成",意指它是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

  作为ASIC(Application Specific IC)设计方法学中的新技术,SoC始于20世纪90年代中期。1994年MOTORLA发布的Flex CoreTM系统(用来制作基于68000TM和Power PCTM的定制微处理器)和1995年LSI Logic公司为SONY公司设计的SoC,可能是基于IP(Intellectual Property)核完成SoC设计的早报导。由于SoC可以充分利用已有的设计积累,显着地提高ASIC的设计能力,因此发展非常迅速。在2000年的CICC(Custom IC Conference)会议上,MOTORLA SoC 设计技术研究部主任 Joe Pumo作了主题(key note),题目是"SoC:The Convergence Point for Solution of the 21st century[1]。CICC是ASIC设计领域层次的国际学术会议。它的主题一般代表着ASIC设计领域的技术发展趋势,也说明SoC在ASIC学术界和工业界受到重视的程度。本文拟对嵌入式SoCIC的设计方法和流程作些讨论。

  一、系统集成芯片(SoC)是IC设计的发展趋势

  (1)随着微电子技术和半导体工业的不断创新和发展,超大规模集成电路和集成度和工艺水平不断提高,深亚微米(deep-submicron)工艺,如0.18μm、0.13μm已经走向成熟,使得在一个芯片上完成系统级的集成已成为可能。

  (2)各种电子系统出于降低成本、减少体积的要求,对系统集成提出了更高的要求。

  (3)高性能的EDA工具得到长足发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发集成环境。

  (4)计算机硬件平台性能大幅度提高,使得很复杂的算法和方便的图形界面得以实现,为复杂的SoC设计提供了物理基础。

  IC技术的迅速发展得益于IC产业内部的细致分工,SoC技术正是IC产业分工的体现。确切地说,60年代的IC产业应该是半导体产业,当时的厂家没有分工,所掌握的技术十分全面,典型的代表就是Fairchild公司,不但生产晶体管、集成电路,就连扩散炉都自己制作,如图2中的行所示。到了70年代开始分工,半导体工艺设备和ICCAD设备成为独立产业,以其精湛的技术为IC厂家提供高质量的设备。此时IC厂家可以有更多的精力用于产品的设计与工艺的研究。到了80年代,工艺设备生产能力已经相当强大,而且费用也十分昂贵,IC厂家自己的设计已不足以供其饱和运行。因此开始承接对外加工,继而由部分到全部对外加工,形成了Foundry加工和Fabless设计的分工。IC产业的这分工,再加上ICCAD工具发展为EDA系统和大批没有半导体背景的系统设计师提供了直接介入IC设计的条件。由于系统设计师来自国民经济的各行各业,因此使得IC的作用也渗透到各行各业,开拓了IC的应用领域,扩大了对IC的需求。80年代的这次分工是IC发展过程中的重要分工,极大地推动了IC产业的发展。

 

  二、何为嵌入式SoC IC

  SoC(System on Chip)是指集系统性能于一块芯片上的系统级芯片。它通常含有一个微处理器核(CPU),有时再增加一个或多个DSP核,以及多个或几十个的外围特殊功能模块和一定规模的存储器(RAM、ROM)等。嵌入式SoC更是针对应用所需的性能,将其设计在芯片上而成为系统操作芯片。芯片的规模常常可以达到数百万门甚至上千万门以上,所以嵌入式SoC是满足应用的系统级的集成电路产生,一方面要满足复杂的系统性能的需要,另一方面也要满足市场上日新月异的对新产品的需求,因此嵌入式SoC的设计也代替了高科技的设计方法和程序。只有在不断地发展优化下,嵌入式SoC才能提供设计周期短而性能优异的产品。因此,要掌握嵌入式系统芯片的设计,就要了解其设计方法和流程。

  三、嵌入式SoC IC的设计方法和流程

  SoC IC的设计原则,就是尽可能重用各种功能模块并集成为所需的系统级芯片。读到设计重用,必须对重用时需要考虑的因素作一些说明。首先,重用的功能模块要有详尽的说明书,对模块的功能和适用范围以及芯片集成时的总线接口进行说明。其次,要提供该模块过去已实现的生产工艺。第三,要提供用于测试该模块的测试程序及测试平台。,也是重要的,就是模块的设计内核。通常提供的设计分为“软模块”和“硬模块”两种。“软模块”只提供RTL语言描述,可以用EDA综合工具产生电路。它的优点是比较灵活,可以根据不同的生产工艺产生对应的电路。“硬模块”提供的是已经完成的电路物理设计(physical design),也就是版图的设计(layout)。它的缺点是一旦生产工艺改变就不能够再使用了,即使是在采用同样生产工艺的情况下,由于模块的物理尺寸已经确定因而也影响了布局(floor-plan)的灵活性;它的优点是在设计采用同样生产工艺的产品并且其物理尺寸不影响芯片布局的情况下,能够直接采用,不用重新设计。由于半导体工艺发展极快,通常重用“软模块”比较多。

  目前,在欧洲和北美已经在产业界形成了基于IP(Interllectual Property)总线模块的重用标准,对于重用的各个因素都有明确的规定。我国的IC设计产业正在迅速发展,应该尽快建立自己的重用标准,与国际接轨。

  通常SoC IC的设计方法有两种:一种是基于模块(module-based)的设计方法,另一种是“门海”(sea-of-cell)的设计方法。

  Module-based的设计方法是指各个单元模块完成各自的RTL和电路综合以及版图设计,然后,在顶层完成整个芯片的版图设计。这种方法的优点是当个别模块进行修改进,不会对整个芯片的设计产生较大的影响。它的设计流程如图1所示。

  Sea-of-cell的设计方法指的是在各个单元模块完成RTL后,直接对整个芯片进行综合,产生整个芯片的网表,然后,完成整个芯片的版图设计。它的优点是能够节省芯片面积,缺点是一旦某个模块修改了,整个芯片要重新做综合和版图设计。它的设计流程如图2所示。

  四、SoC IC满足的时序要求

  由于SoC IC的规模一般都非常大,因此各个模块用于综合(synthesis)的约束条件必须基于整个芯片的时序要求来产生,才不至于对整个芯片的Timing产生影响。Synopsys公司的Design Budgeting工具能够根据芯片顶层的约束条件对整个芯片以及子模块的约束和时序进行分配和控制,并且产生以此为基础的各个子模块的约束条件用于电路综合,由于芯片顶层以及模块之间的时序已经得到平衡考虑,许多时序问题(timing violations)已经预先得到控制,能够减少后期对设计进行反复修改的次数。

  在对电路进行验证(verify)的时候,除了验证功能正确外,还要验证工作时序的正确性。通常的方法是编写专门的测试程序,运行EDA仿真工具来完成,这通常称为动态仿真(dynamic simulation)。由于SoC IC的规模比较大,仿真(simulation)运行的时间比较长,尤其是在完成版图设计后做后仿真(postlayout simulation)的时候,因此,我们要引入静态时序分析的方法(static timing analysis)。它是从电路的连接和布线上来推测贪污传输的时序,因此当电路的工作时钟和约束条件确定后,电路中信号传输时的设定时间(setup time)和保持时间(hold time)也已经确定,通过静态时序分析就可以把那些不满足要求的路径或电路单元找出来,提供修改设计的依据。它的特点是运行时间远远少于动态仿真。许多电路的时序问题可以预先发现而不用等到动态仿真完成,因而可以帮助我们缩短设计周期。常用的设计工具有Synopsys公司的Primetime和Cadence公司的Pearl。

  IC工艺的发展也给人们带来一些忧虑,这就是所谓的"极限"问题。担心Moore定律是否有效,现行的硅基工艺还能持续多久?这个问题已经讨论了10年。在这10年的IC发展中可以得出这样的结论:21世纪,起码是21世纪前半,系统集成仍然是以硅基工艺实现。尽管微电子学在化合物和其他新材料方面的研究取得了很大进展,但全世界数以万亿计的设备和技术投入,已经使硅基工艺形成非常强大的产业能力。同时,长期的科研投入已使得人们对硅及其衍生物各种属性的了解达到十分深刻、十分透彻的地步,成为自然界100多种元素之,这是非常宝贵的知识积累。产业的能力和知识的积累决定着硅基工艺起码将在30~50年内起骨干作用,还将继续发展。即使是Moore定律不再有效,硅工艺为IC设计提供的加工能力也足够使用几十年。

  五、版图设计

  对于复杂的SoC IC,其版图设计(layout)也是非常复杂的。随着半导体工艺的越来越精密,芯片的规模越来越大,版图布线的负荷已成为主要的时序影响因素,所以自动布局布线的时序分析成为设计的重点。无论采用module-based的设计方法还是sea-of-cell的方法,要采用时序驱动(timing driven)的版图设计方式,这样,可以确保前端各个层次的设计约束条件延伸到物理设计(physical design)中去。具体做法是将综合电路的约束条件转化为Layout工具可以识别的格式,用来驱动Layout工具完成设计。此外,为了保证电路的时钟到达各时序单元的时间的一致性,需要在各时钟路径上插入时钟树(clocktree),通过一定的约束条件,Layout工具可以通过平衡时钟路径之间的差异(skew),自动完成时钟树的生成。通常的版图设计流程如图3所示。

  ,当布局布线完成之后,还要做DRC和LVS的检查。DRC(Design Rule Check)是检查版图设计定否符号生产工艺的物理规则要求;LVS(Layout Versus Schematic)是检查版图设计是否与电路设计一致。只有当这两项检查都通过后,版图设计的工作才算完成。我们通常采用Cadence或Avanti公司的Layout检查工具。

  再要一提的是,当生产工艺小于0.35μm以下时,尤其在采用同步电路设计方法时,因为布线而造成的时序差异和延迟常常超过模块中电路设计的差异和延迟。因此,在Layout时对布局设计和时钟树生成需要仔细考虑。Layout完成后的时序分板是做好设计的关键。这也是选择基于模块设计方法或是“门海”设计方法时要考虑的因素之一。

  对于深亚微米的版图设计,还有两个因素要考虑。一个是当走线过长时产生的天线效应(antennaeffect)会对电路的时序产生影响。解决的办法是在长走线中插入天线二极管(antenna diode),用于抵消天线效应。另一个情况是当两条平行的走线非常靠近的时候,它们之间的偶合效应会产生交叉干扰(cross-talk),也会对电路的时序造成不利影响。解决的办法是在线路中加入buffer来克服,采用Cadence公司的Signal Integrity工具可以分析出交叉干扰出现的电路部分并结合Layout工具自动完成buffer的插入。

  芯片端口(I/O PAD)的设计也是SoC IC设计的重点,除了要考虑静电保证ESD、驱动能力等因素外,还要考虑到当两个PAD靠得很近的时候,它们之间的耦合效应会形成寄生三极管(parasitic transistor)效应,影响I/O PAD的正常功能。

  SoC IC通常都是数模混合电路,版图设计的是防止噪声干扰。通常要从两个方面来考虑:一是在布局时尽量使相互容易受干扰的模块分开得远一些;二是数字电路和模拟电路要采用不同的电源和布线。

 

  六、SoC IC的测试设计DFT(Design For Test)

  芯片的测试,一方面是为了保证芯片的质量和可靠性,另一方面也要满足低成本的生产目的。过去,传统的测试方法是把我们用于功能仿真的测试程序转化为生产测试程序输入测试仪器。它的缺点是测试时间长,尤其是高覆盖率(test coverage)的要求下,对于大规模的SoC IC,其成本将非常高。现在,通常采用插入测链(scan chain)的方法,使得芯片中的时序单元在测试模式下连接成移位寄存器(shift register),然后,采用ATPG(Automatic Test Pattern Generator)工具产生的测试向量,能够有效地对芯片完成测试。测试时间大大缩短,也能达到高于90%的覆盖率,保证产品的品质和可靠性。许多EDA工具如Synopsys公司的Design Compiler和Mentor公司的DFT Aduvisor/Fastscan都可以帮助完成这一工作,自动化程序相当高。当然,这一方法的代价是会增加芯片的面积。需要指出的是,采用插入测试链的方法只适用于同步电路设计,而且在电路的RTL设计阶段就要把这一因素考虑进去。对于异步电路的测试主要还是通过功能测试完成。

  由于SoC IC比较复杂,芯处中需要设有专门的测试控制模块(test control module),将整个芯片分为若干个测试组,每个部分都有独立的测试链完成测试。结合若干个芯片端口完成整个芯片的测试控制。

  结束语

  设计计划考虑项目:

  Product Design specification(产品设计规格书)

  Design methodology and EDA tools selection(设计方法和设计工具的选择)

  Database structure(and choose a Database Manager)(设计数据的存储结构)

  Naming convertion(命名规范)

  IP Module re-use consideration (IP模块重用的考虑)

  Test plan(测试计划)

  Chip Integration plan(整个芯片的集成计划)

  Design schedule(设计时间表)

  Design Resources requirement plan(设计的人力和软硬件需求计划)

  Detail design task check off list。(详尽的设计任务完成情况检查表)

  SoC IC成为现代电子系统的已是不争的事实,一个人或几个人包打天下的可能性已经很小。有效利用“重用”功能模块和强大EDA工个的支持是SoC IC设计的基础,而采用好的设计方法和流程、解决好Timing Closure和Testability是SoC IC设计的。如果说在IP模块设计中更多体现物理背景的话,包括电路的、器件的、工艺的,甚至分子的、原子的,那么系统级设计将更多体现系统背景,包括功能的、行为的、算法的、架构的、设置思路的。赤橙黄绿青蓝紫,系统集成的广谱背景衬映着一个七彩纷呈的绚丽世界。

 


  
上一篇:嵌入式系统中JTAG接口编程技术探讨
下一篇:智能手机全键盘控制器及其编程

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料