1.4 集成电路设计的知识范围

集成电路发展到现在的SoC,既不再是模拟的“放大器”或数字的“与非门”一类的基本单元电路的概念,也不再是模拟的“锁相环”或数字的“全加器”一类的功能电路的概念,甚至不再是模拟的“接收机”或数字的“CPU”一类子系统的概念,而是变成了包含多种模拟和数字子系统、硬件和软件功能的复杂的信息处理系统。因此,集成电路设计需要的知识范围已大大扩展。概括起来可分为以下4个方面。

(1)系统知识

这里的系统范围很广:对于计算机学科,有计算机的软件系统和硬件系统;对于通信学科,有程控电话系统、无线通信系统、光纤通信系统等;对于信息学科,有各种信息处理系统;对于控制学科,有各种控制系统。如果说以往从事系统研究的工程师是在器件和电路工程师完成的工作基础上构建系统的话,到了SoC时代,系统工程师必须亲自参与SoC级别集成电路的设计。另一方面,以往的器件和电路工程师在SoC时代必须熟悉系统,以实现SoC的设计。这就是说,所有的集成电路设计工程师都必须掌握一定的系统知识。这些知识包括软件和硬件两个方面。对于从事前端设计的工程师来讲,则对系统的理解必须达到精通的程度。

(2)电路知识

既然是集成电路设计,电路知识就是核心知识。集成电路设计工程师,特别是在逻辑门级、晶体管级和版图级从事设计的工程师,必须对各类功能电路和基本单元电路的原理和设计技术达到融会贯通的程度。集成电路设计相对于数字电路、模拟电路和模数混合电路设计而言,需要更多的知识、技术和经验。射频电路RFIC、微波单片集成电路MMIC、毫米波单片集成电路M3IC、Gb/s速度级超高速集成电路的设计,更需要特殊的知识、技术和经验。

(3)工具知识

从VLSI到SoC,芯片上晶体管的数目达到了数千万量级,它们形成的网络方程的阶数可能达到同样量级。我们知道,小于10阶的线性方程也许还可以用手工求解,10阶以上就很难想像用手工计算了。何况晶体管本身是非线性器件,由它们组成的网络方程是高度复杂的非线性方程。另外,系统级芯片不仅包含硬件部分,还包含软件部分。这样的芯片绝非用手工可以分析和设计的。事实上,从小规模集成电路开始,人们就引入了计算机辅助设计(CAD, Computer-Aided Design)技术,开发了一系列CAD软件工具。SPICE程序就是著名的集成电路分析程序,经过30余年的发展,如今已成为集成电路设计的工业标准。

随着设计自动化程度的提高,出现了如Cadence、Synopsis和Mentor Graphics等开发电子设计自动化(EDA, Electronic Design Automation)软件的专业公司,开发出一系列EDA软件工具。现在,从功能验证,逻辑分析和综合,电路分析到版图设计都有多家公司提供的多种类型软件工具的支持。

因此,集成电路设计工程师必须根据所从事的设计任务和内容掌握相应的软件工具。例如,在逻辑电路级从事设计的工程师就需要掌握VHDL或Verilog HDL等硬件描述语言及相应的分析和综合工具。在晶体管级从事电路设计的工程师就需要掌握SPICE或类似的电路分析工具。设计版图时则需要版图设计工具。

(4)工艺知识

集成电路的设计,特别是涉及后端(Back-end)即物理层(Physical Layer)的设计与工艺制造息息相关。无生产线加代工模式的IC设计工程师虽然不需要直接参与集成电路的工艺流程,掌握工艺的每一个细节,但掌握IC设计所用元器件的特性和物理数学模型,了解制造工艺的基本原理和过程,对于IC的成功设计是大有帮助的。事实上,集成电路设计工程师最好是熟悉集成电路制造过程中,从芯片外延和掩模制作,一步步光刻,材料淀积和刻蚀,杂质扩散或注入,一直到滑片封装的全过程,关心每一步工艺对元器件和电路性能的影响。这样才能读懂代工工艺厂家提供的设计文件(Design Kits),全面地利用,甚至充分地挖掘出工艺的潜力,在现有工艺的基础上,成功地创造出功能最强和性能最佳的集成电路。