要谈IC设计的流程,首先得搞清楚IC和IC设计的分类。
集成电路芯片从用途上可以分为两大类:通用IC(如CPU、DRAM/SRAM、接口芯片等)和专用IC(ASIC)(Application Specific Integrated Circuit),ASIC是特定用途的IC。从结构上可以分为数字IC、模拟IC和数模混合IC三种,而SOC(System On Chip,从属于数模混合IC)则会成为IC设计的主流。从实现方法上IC设计又可以分为三种,全定制(full custom)、半定制(Semi-custom)和基于可编程器件的IC设计。全定制设计方法是指基于晶体管级,所有器件和互连版图都用手工生成的设计方法,这种方法比较适合大批量生产、要求集成度高、速度快、面积小、功耗低的通用IC或ASIC。基于门阵列(gate-array)和标准单元(standard-cell)的半定制设计由于其成本低、周期短、芯片利用率低而适合于小批量、速度快的芯片。最后一种IC设计方向,则是基于PLD或FPGA器件的IC设计模式,是一种“快速原型设计”,因其易用性和可编程性受到对IC制造工艺不甚熟悉的系统集成用户的欢迎,最大的特点就是只需懂得硬件描述语言就可以使用EDA工具写入芯片功能。
从采用的工艺可以分成双极型(bipolar),MOS和其他的特殊工艺。硅(Si)基半导体工艺中的双极型器件由于功耗大、集成度相对低,在近年随亚微米深亚微米工艺的的迅速发展,在速度上对MOS管已不具优势,因而很快被集成度高,功耗低、抗干扰能力强的MOS管所替代。MOSFET工艺又可分为NMOS、PMOS和CMOS三种;其中CMOS工艺发展已经十分成熟,占据IC市场的绝大部分份额。GaAs器件因为其在高频领域(可以在0.35um下很轻松作到10GHz)如微波IC中的广泛应用,其特殊的工艺也得到了深入研究。而应用于视频采集领域的CCD传感器虽然也使用IC一样的平面工艺,但其实现和标准半导体工艺有很大不同。
在IC开发中,常常会根据项目的要求(Specifications)、经费和EDA工具以及人力资源、并考虑代工厂的工艺实际,采用不同的实现方法。
其实IC设计这个领域博大精深,所涉及的知识工具领域很广,本系列博文围绕EDA工具展开,以实现方法的不同为主线,来介绍这三种不同的设计方法:全定制、半定制和基于FPGA的IC设计,这三种方法在EDA工具和流程上都有各自鲜明的特色,通过介绍这三种IC设计方法可以让大家对IC设计有个清晰的思路,也顺便介绍了其中涉及到的大多数EDA工具,并且避免了读者陷入IC领域的某些细节中而不能一窥全貌之嫌。其实,无论是IC和ASIC,还是I/O芯片、CPU芯片在EDA工具上的区别都不明显,并且涉及某些应用领域的特定的知识,需要读者具备一定的背景知识,不适合用来作为介绍IC的设计流程的入门级题材。
全定制IC设计方法,是按照规定的功能与性能要求,先设计出满足功能的电路,然后对电路的布局与布线进行专门的优化设计,以达到芯片的最佳性能。全定制IC设计的主要EDA工具有Cadence的Virtuoso、Synopsys的Custom Designer(CD)等,这两款工具实际上提供一个集成设计环境,在这个环境里用户可以方便地配置和利用各家EDA的工具来完成各个设计阶段的任务。首先来看一看它的设计基本流程(如下图)。
图1
1. 定义设计规格(Design Specification)
典型的设计规格书描述了电路的功能(电流放大能力、信噪比、带宽等),最大可容许的延时,以及其他的物理性能,如功耗等。
通常设计规格书给予电路设计者以较大的设计自由度:如选择特定的电路拓扑结构,特定器件的位置,输入输出pin角的位置,MOSFET的宽长比等。
下面是一个一个全加器的规格说明书:
-------
0.8um双井CMOS工艺
“加法”“进位”的传递延时小于1.2ns
“加法”“进位”的转换时间小于1.2ns
电路面积小于1500平方微米
动态功耗<1mW(VDD=5V,fmax=20MHZ)
-------
2. 绘制电路图
电路图绘制工具称为Schematic Capture(下图是Virtuoso中的Composer工具),可以提供门级和晶体管级的电路图绘制功能,该步骤完成后可以生成网表文件供电路仿真之用。需要说明的是,各家产生的Schematic文件不完全兼容,要从Synopsys的CD中读入Virtuoso产生的电路图似乎有些困难。再有一点就是从网表反过来生成电路图这一功能在这两家的工具中都没有被支持,有一个第三方工具spicevison有此功能,但是否能导入Virtuoso或CD中者不得而知,spicevison这个工具的用处在于晶体管级的调试(对照网表和电路图),不在于其生成的电路图的通用性。
图2
3. 产生子电路或电路单元符号
在有层次结构(hierarchical)的电路中,使用用户自定义的电路图符号来代替整个子电路块,有利于减少重复绘制这些频繁出现的子电路块,使整个顶层的电路整洁而有序,避免出现一个一大片的扁平(flatten)的电路图。如反相器INV,NOR和NADN等,在设计中一般都使用自定义的电路符号代替,这也是代工厂提供PDK中常用的一个手法。
4. 电路仿真
这一步将调用电路仿真器,如HSPICE、SPECTRE、ELDO等来实现电路的仿真,用以验证电路的各项电性指标是否符合规格说明书。在集成设计环境中用户可以通过配置自由地选择使用这些仿真器,如在Virtuoso ADE(Analog Design Environment),可以方便地使用HSPICE来仿真,当然前提是生成HSPICE格式的网表。
在图1中有一个迭代-循环的箭头,说明这一步可能需要迭代,若仿真的结果不满足规格说明书,需要调整电路图,然后再做仿真。这一步由于没有寄生参数加入网表,通常叫做版图前仿真(Pre-layout simulation)。
另外,电路仿真需要代工厂提供的元器件库(代工厂一般以PDK包提供给客户,里面包含各种器件的spice模型,technology file,Design rule等)
5. 生成版图
版图的生成是至关重要的一环,是连接电路设计与芯片代工厂的一个桥梁,版图不仅反映了电路图的连接关系和各种元器件规格,还反映了芯片的制造过程和工艺(具体将在另一篇博文中专门叙述)。由电路图Schematic到版图绘制一般使用集成开发环境中的Layout Editor。生成版图有两种途径,一是手工绘制而成(根据具体的工艺文件-technology file),另一种是自动生成(具体可参考Virtuoso Layout,Synopsys的ICWB)。生成的文件格式为GDSII 或CIF,都是国际流行的标准格式。
6. DRC检查
DRC——Design Rule Check,版图生成完成后,还需要进行“设计规则检查”,这是一些由特定的制造工艺水平确定的规则,如poly-poly contact的最小间距,metal-metal的最小间距和metal的最大宽度等等。这些规则体现了芯片制造的“良率(即合格率)”和芯片性能的折衷。(图3 显示出有两处违反DRC,都是metal的宽度超过设计规则要求)
EDA工具有Cadence Virtuoso iDRC、Dracula(这是一个独立的版图验证工具,具有DRC/ERC、LVS、寄生参数提取等多种功能),Synopsys的Hercules(DRC、LVS检查)。
图3
7. 寄生参数提取
当版图的DRC完成之后,需要提取该电路的寄生参数以用来比较精确地模拟现实芯片的工作情形,寄生参数包含寄生电阻和寄生电容,在高频电路设计中还需要提取寄生的电感。EDA工具主要有StarRC,Calibre,Dracula等。这些寄生参数一般都简化成一个或多个lumped R/C/L,“插入”相应的电路节点处,一般都是与电压无关的线性无源器件。这样经过寄生参数提取后生成的网表文件,被称为“post-layout netlist”。
8. LVS检查
Layout-versus-Schematic (LVS) Check,LVS将比较原来的电路图的“拓扑网络”与从版图提取出来的拓扑结构,并证明二者是完全等价的。LVS提供了另一个层次的检查以保证设计的完整性和可靠性——这个版图是原来设计的物理实现。LVS只能保证电路的拓扑结构是一致的,并不能保证最后电路的电学性能一定满足设计规格书。典型的LVS错误为,两个晶体管的不当连接关系,或遗漏的连线等。
9. 后仿真
可以从图1看到,在DRC和LVS这两步上都有返回layout的迭代,说明若要设计流程成功进行到“post-layout simulation”即后仿真这一阶段,需要清除所有DRC和LVS的错误信息。后仿真的输入是包含原始电路信息以及寄生信息的网表,是最接近真实电路的网表文件。通过“后仿真”,可以获得该设计完整真实的性能:延时、功耗、逻辑功能、时序信息等信息,这一过程也是验证整个设计是否成功的“最后一关”,若不满足规格说明书要求则需要从头来过——从调整Schematic开始重新走完新一轮的设计流程。
与pre-layout仿真(第4步)不同的是,HSPICE或SPECTRE的输入文件除了原始网表外,还须要一些寄生参数的文件(如spf、spef),这一种电路仿真又称“back-annotation simulation”(具体参见HSPICE用户手册)。
评价与说明
以上的9个步骤只能保证该设计在simulation的角度是经过“验证了的”,并不保证制造出来的电路一定和simulation出来的结果一致,所以在大规模投放代工厂制造(又称“流片”)之前,还需要经过一些小批量的“试流片”,这叫做“硅验证”(silicon verification)。通过硅验证后的设计才是真正成功的设计,我们经常听说的“硬IP”就是指这一类经过硅验证过的成功的设计,“软IP”通常指的是只是通过以上9步的EDA工具验证的设计。
特别说明,感谢博主:http://blog.e-works.net.cn/608938/articles/191716.html
来源:oschina
链接:https://my.oschina.net/u/4273421/blog/3587432