芯片设计流程
扫描二维码
随时随地手机看文章
集成电路设计可以大致分为数字集成电路设计和模拟集成电路设计两大类。不过,实际的集成电路还有可能是混合信号集成电路,因此不少电路的设计同时用到这两种流程。模拟集成电路集成电路设计的另一个大分支是模拟集成电路设计,这一分支通常关注电源集成电路、射频集成电路等。由于现实世界的信号是模拟的,所以,在电子产品中,模-数、数-模相互转换的集成电路也有着广泛的应用。模拟集成电路包括运算放大器、线性整流器、锁相环、振荡电路、有源滤波器等。相较数字集成电路设计,模拟集成电路设计与半导体器件的物理性质有着更大的关联,例如其增益、电路匹配、功率耗散以及阻抗等等。模拟信号的放大和滤波要求电路对信号具备一定的保真度,因此模拟集成电路比数字集成电路使用了更多的大面积器件,集成度亦相对较低。
在微处理器和计算机辅助设计方法出现前,模拟集成电路完全采用人工设计的方法。由于人处理复杂问题的能力有限,因此当时的模拟集成电路通常是较为基本的电路,运算放大器集成电路就是一个典型的例子。在当时的情况下,这样的集成电路可能会涉及十几个晶体管以及它们之间的互连线。为了使模拟集成电路的设计能达到工业生产的级别,工程师需要采取多次迭代的方法以测试、排除故障。重复利用已经设计、验证的设计,可以进一步构成更加复杂的集成电路。1970年代之后,计算机的价格逐渐下降,越来越多的工程师可以利用这种现代的工具来辅助设计,例如,他们使用编好的计算机程序进行仿真,便可获得比之前人工计算、设计更高的精确度。SPICE是第一款针对模拟集成电路仿真的软件(事实上,数字集成电路中标准单元本身的设计,也需要用到SPICE来进行参数测试),其字面意思是“以集成电路为重点的仿真程序(英语:Simulation Program with Integrated Circuit Emphasis)” 基于计算机辅助设计的电路仿真工具能够适应更加复杂的现代集成电路,特别是专用集成电路。使用计算机进行仿真,还可以使项目设计中的一些错误在硬件制造之前就被发现,从而减少因为反复测试、排除故障造成的大量成本。此外,计算机往往能够完成一些极端复杂、繁琐,人类无法胜任的任务,使得诸如蒙地卡罗方法等成为可能。实际硬件电路会遇到的与理想情况不一致的偏差,例如温度偏差、器件中半导体掺杂浓度偏差,计算机仿真工具同样可以进行模拟和处理。
总之,计算机化的电路设计、仿真能够使电路设计性能更佳,而且其可制造性可以得到更大的保障。尽管如此,相对数字集成电路,模拟集成电路的设计对工程师的经验、权衡矛盾等方面的能力要求更严格。数字电路粗略地说,数字集成电路可以分为以下基本步骤:系统定义、寄存器传输级设计、物理设计。而根据逻辑的抽象级别,设计又分为系统行为级、寄存器传输级、逻辑门级。设计人员需要合理地书写功能代码、设置综合工具、验证逻辑时序性能、规划物理设计策略等等。在设计过程中的特定时间点,还需要多次进行逻辑功能、时序约束、设计规则方面的检查、调试,以确保设计的最终成果合乎最初的设计收敛目标。系统定义系统定义是进行集成电路设计的最初规划,在此阶段设计人员需要考虑系统的宏观功能。设计人员可能会使用一些高抽象级建模语言和工具来完成硬件的描述,例如C语言、C++、SystemC、SystemVerilog等事务级建模语言,以及Simulink和MATLAB等工具对信号进行建模。
尽管主流是以寄存器传输级设计为中心,但已有一些直接从系统级描述向低抽象级描述(如逻辑门级结构描述)转化的高级综合(或称行为级综合)、高级验证工具正处于发展阶段。系统定义阶段,设计人员还对芯片预期的工艺、功耗、时钟频率频率、工作温度等性能指标进行规划 [2] 。寄存器传输级设计集成电路设计常常在寄存器传输级上进行,利用硬件描述语言来描述数字集成电路的信号储存以及信号在寄存器、存储器、组合逻辑装置和总线等逻辑单元之间传输的情况。在设计寄存器传输级代码时,设计人员会将系统定义转换为寄存器传输级的描述。设计人员在这一抽象层次最常使用的两种硬件描述语言是Verilog、VHDL,二者分别于1995年和1987年由电气电子工程师学会(IEEE)标准化。正由于有着硬件描述语言,设计人员可以把更多的精力放在功能的实现上,这比以往直接设计逻辑门级连线的方法学(使用硬件描述语言仍然可以直接设计门级网表,但是少有人如此工作)具有更高的效率。