Menu Close

芯片设计流程和对应工具

芯片设计流程和对应工具

数字芯片设计流程和各流程所需工具:

图 1 所示数字和模拟芯片设计大致流程和各流程所需的 EDA软件工具, 有些工序可以有不同厂商不同工具完成,这里主要列举一两种主流工具;

 

功能要求定义:Word, Excel, PDF

系统建模:Matlab

行为设计: Verilog, VHDL, C

设计验证: Modelsim

综合 Synthesis; DC/PC Compiler

布局规划: Floor Planing, Astro

时钟树综合 Clock Tree Synthesis, CTS: Physical Compiler

布局布线: Place & Route, IC Encounter

后仿: Verification: Star-RC

版图生成:Virtuoso, IC Encounter,Calibre, Dracula

寄生参数提取: Calibre, Star-RCXT

版图验证: Calibre, Dracula,Astro

可测性设计: DFT Compiler, BIST, ATPG

静态时序分析: STA Prime Time

测试生成: DFT Compiler, BIST, ATPG

测试矢量生成:DFT Compiler, BIST, ATPG

 

flow_04_r

图 1    芯片设计流程和各流程所需工具

 

%title插图%num

图 2    数字和模拟IC的设计对照

 

数字芯片硬件设计主要包括

系统规划

是进行集成电路设计的最初规划,在此阶段设计人员需要考虑系统的宏观功能。设计人员可能会使用一些高抽象级建模语言和工具来完成硬件的描述,例如C语言C++SystemCSystemVerilog事务级建模语言,以及SimulinkMATLAB等工具对信号进行建模。尽管目前的主流是以寄存器传输级设计为中心,但已有一些直接从系统级描述向低抽象级描述(如逻辑门级结构描述)转化的高级综合(或称行为级综合)、高级验证工具正处于发展阶段。系统定义阶段,设计人员还对芯片预期的工艺、功耗、時脈频率、工作温度等性能指标进行规划

功能设计阶段:

设计人员根据产品的应用场合,设定一些诸如功能,操作速度,接口规格,环境温湿度及消耗功率等规格,以做为将来电路设计时的依据,更可进一步规划硬件模块,软件模块该怎样划分,那些功能该整合在SOC里,那些功能该设计在电路板上等

设计描述和行为级验证:

功能设计完成后,可以依据功能将SOC划分为若干功能模块,并决定实现这些功能将要使用的IP核。此阶段将直接影响了SOC内部的架构及各模块间互动的讯号,及未来产品的可靠性。决定模块之后,可以用VHDL或 Verilog等硬件描述语言实现各模块的设计。 接着,利用VHDL或 Verilog的电路仿真器,对设计进行功能验证( function simulation) 或行为验证 (behavioral simulation)。注意,这种功能仿真没有考虑电路实际的延迟,因此无法获得精确的结果。

逻辑综合:

确定设计描述正确后,可以使用逻辑综合工具(synthesizer)进行综合。综合过程中,需要选择适当的逻辑器件库( Standard cell library), 作为合成逻辑电路时的参考依据。硬件语言设计描述文件的编写风格是决定综合工具执行效率的一个重要因素。 事实上,综合工具支持的HDL语法均是有限的,一些过于抽象的语法只适于做为系统评估时的仿真模型,而不能被综合工具接受。逻辑综合得到门级网表 (Gate- Level Netlist)。

等效性检查:

为了比较门级网表和寄存器传输级的等效性,可以通过生成诸如不二可满足性二元决策图等途径来完成形式等效性检查(形式验证)。实际上,等效性检查还可以检查两个寄存器传输级设计之间,或者两个门级网表之间的逻辑等效性

门级验证(Gate- Level Netlist Verification):

门级功能验证是寄存器传输级验证,主要的工作是要确认经综合后的电路是否符合功能需求,该工作一般利用门电路级验证工具完成。注意,此阶段仿真需要考虑门电路的延迟。

布局规划 (Floor Plan):

布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的摆放位置,如IP模块,RAM,I/O引脚等等。布局规划能直接影响芯片最终的面积。

时钟树综合 CTS:

时钟树综合, (Clock Tree Synthesis CTS ),简单点说就是时钟的布线。由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。这也是为什么时钟信号需要单独布线的原因。

布局和布线:

布局指将设计好的功能模块合理地安排在芯片上,规划好它们的位置。布线则指完成各模块之间互连的连线。注意,各模块之间的连线通常比较长,因此,产生的延退会严重影响SOC的性能,无其在0.25微米制程及以下,这种现象更为显著

时序分析 (静态时序分析):

现代集成电路的时钟频率已经到达了兆赫兹级别,而大量模块内、模块之间的时序关系极其复杂,因此,除了需要验证电路的逻辑功能,还需要进行时序分析,即对信号在传输路径上的延迟进行检查,判断其是否符合时序收敛要求。时序分析所需的逻辑门标准延迟格式信息可以由标准单元库(或从用户自己设计的单元从提取的时序信息)提供。随着电路特征尺寸不断减小,互连线延迟在实际的总延时中所占的比例愈加显著,因此在物理设计完成之后,把互连线的延迟纳入考虑,才能够精准地进行时序分析。

物理验证:

需要注意的是,电路实现的功能在之前的寄存器传输级设计中就已经确定。在物理设计 ( 布局和布线, DRC, LVS, ERC, 寄生参数提取等 ) 阶段,工程师不仅不能够让之前设计好的逻辑、时序功能在该阶段的设计中被损坏,还要进一步优化芯片按照正确运行时的延迟时间、功耗、面积等方面的性能。在物理设计产生了初步版图文件之后,工程师需要再次对集成电路进行功能、时序、设计规则信号完整性等方面的验证,以确保物理设计产生正确的硬件版图文件

寄生参数提取:

由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射。这些效应会产生信号完整性问题,导致信号电压波动和变化,如果严重就会导致信号失真错误。提取寄生参数进行再次的分析验证,分析信号完整性问题是非常重要的。

可测试性设计:

随着超大规模集成电路的复杂程度不断提高,电路制造后的测试所需的时间和经济成本也不断增加。以往,人们将绝大多数精力放在设计本身,而并不考虑之后的测试,因为那时的测试相对今天更为简单。近年来,测试本身也逐渐成为一个庞大的课题。

比如,从电路外部控制某些内部信号使得它们呈现特定的逻辑值比较容易,而某些内部信号由于依赖大量其它内部信号,从外部很难直接改变它们的数值。此外,内部信号的改变很多时候不能在主输出端观测(有时主输出端的信号输出看似正确,其实内部状态是错误的,仅观测主输出端的输出不足以判断电路是否正常工作)。以上两类问题,即可控制性和可观测性,是可测试性的两大组成部分。

人们逐渐发现,电路在设计时向电路添加一些特殊的结构(例如扫描链内建自测试),能够大大方便之后的电路测试。这样的设计被即为可测试性设计,它们使电路更加复杂,但是却能凭借更简捷的测试降低整个项目的成本。

设计的重用 IP 核:

随着超大规模集成电路的集成難度不断提高,同时市场竞争压力不断增加,集成电路设计逐渐引入了可重用设计方法学。

可重用设计方法学的主要意义在于提供IP (intellectual property知识产权核) 核的供应商可以将一些已预先完成之设计以商品的形式提供给设计方,后者可以将IP核作为一个完整的模块在自己的设计项目中使用。由此,在实现类似功能时,各个公司就不需反复设计类似模块。这样做虽会提高商业成本,但亦显著降低了设计的复杂程度,从而缩短设计大型电路所需的時間周期並提高市场竞争力。

IP核供应商提供的产品可能是已验证的硬件描述语言代码,为了保护供应商的知识产权,这些代码大多是加密的。IP核本身也是作为集成电路进行设计,但是它为了在不同设计项目中能够得到应用,会重点强化其可移植性,因此它的设计代码规范更加严格。有的芯片公司专门从事IP核的开发和销售,ARM就是一个典型的例子,这些公司通过知识产权的授权营利

 

flow_good

图 3     芯片设计流程及设计自动化程度

 

图中方框的颜色深浅表示对应步骤自动化程度,颜色越深,表示自动化程度越高, 黑色表示该步骤完全由工具完成, 如逻辑综合( Logic Synthesis),布局布线 (Place & Route) 等;颜色越浅,表示人工干预越多,白色表示该步骤完全由人工完成,如架构设计 ( Architecture Design),平面布局 (floor-planning) 等

 

Physical_design_flow

图 4     芯片设计后端详细流程

 

Posted in 文章

发表评论

相关链接