Menu Close

数字集成电路设计概述

数字集成电路设计概述

芯片的主要类型:

  • 感知 Sensing 模拟/数字
  • 传递 Transmit / Receive 模拟/混合
  • 思考 computing 数字/混合
  • 记忆存储 Memory 数字
  • 供能 Power Management 模拟
  • 交换接口芯片 Interface 模拟混合
  • 显示驱动控制类芯片 Display / Driver 模拟混合

flow_06

图 1    芯片的主要类型

集成电路设计概述:

  • 集成电路设计涉及对电子器件(例如晶体管、电阻器、电容器等)、器件间互连线模型的创建。所有的器件和互连线都需安置在一块半导体衬底材料之上,这些组件通过半导体器件制造工艺(例如光刻等)安置在单一的硅衬底上,从而形成电路。目前最常使用的衬底材料是硅。设计人员会使用技术手段将硅衬底上各个器件之间相互电隔离,以控制整个芯片上各个器件之间的导电性能。PN结、金属氧化物半导体场效应管等组成了集成电路器件的基础结构,而由后者构成的互补式金属氧化物半导体则凭借其低静态功耗、高集成度的优点成为数字集成电路中逻辑门的基础构造。设计人员需要考虑晶体管、互连线的能量耗散,这一点与以往由分立电子器件开始构建电路不同,这是因为集成电路的所有器件都集成在一块硅片上。金属互连线的电迁移以及静电放电对于微芯片上的器件通常有害,因此也是集成电路设计需要关注的课题。
  • 随着集成电路的规模不断增大,其集成度已经达到深亚微米级(特征尺寸在130纳米以下),单个芯片集成的晶体管已经接近十亿个。由于其极为复杂,集成电路设计相较简单电路设计常常需要计算机辅助的设计方法学和技术手段。集成电路设计的研究范围涵盖了数字集成电路中数字逻辑的优化、网表实现,寄存器传输级硬件描述语言代码的书写,逻辑功能的验证、仿真和时序分析,电路在硬件中连线的分布,模拟集成电路中运算放大器、电子滤波器等器件在芯片中的安置和混合信号的处理。相关的研究还包括硬件设计的电子设计自动化(EDA)、计算机辅助设计(CAD)方法学等,是电机工程学和计算机工程的一个子集。
  • 对于数字集成电路来说,设计人员现在更多的是站在高级抽象层面,即寄存器传输级 ( Register Transmit Level, RTL) 甚至更高的系统级(有人也称之为行为级),使用硬件描述语言或高级建模语言来描述电路的逻辑、时序功能,而逻辑综合可以自动将寄存器传输级的硬件描述语言转换为逻辑门级的网表。对于简单的电路,设计人员也可以用硬件描述语言直接描述逻辑门和触发器之间的连接情况。网表经过进一步的功能验证、布局、布线,可以产生用于工业制造的GDSII文件,工厂根据该文件就可以在晶圆上制造电路。模拟集成电路设计涉及了更加复杂的信号环境,对工程师的经验有更高的要求,并且其设计的自动化程度远不及数字集成电路。
  • 逐步完成功能设计之后,设计规则会指明哪些设计符合制造要求,而哪些设计不符合,而这个规则本身也十分复杂。集成电路设计流程需要符合数百条这样的规则。在一定的设计约束下,集成电路物理版图的布局、布线对于获得理想速度、信号完整性、减少芯片面积来说至关重要。半导体器件制造的不可预测性使得集成电路设计的难度进一步提高。在集成电路设计领域,由于市场竞争的压力,电子设计自动化等相关计算机辅助设计工具得到了广泛的应用,工程师可以在计算机软件的辅助下进行寄存器传输级设计、功能验证、静态时序分析、物理设计等流程。

数字电路设计

数字IC设计将产生诸如微处理器,FPGA,存储器(RAM,ROM和闪存)和数字ASIC之类的模块。 数字设计专注于逻辑正确性,最大化电路密度,和巧妙的摆放各构成单元 ( IP, IO, Mem, Std Cell, Analog block),使得时钟和时序信号能更有效地布线。

digital_2

图 2    数字电路设计

 

模拟电路设计

模拟IC设计专注于功率 IC 设计和 RF IC设计。 模拟IC设计用于运放,线性稳压器,锁相环,振荡器和有源滤波器的设计中。 该设计更关注半导体器件的物理特性,例如增益,匹配,功耗和电阻。 模拟信号放大和滤波的保真度通常很关键,因此,相对于数字设计,模拟IC 使用面积更大的有源器件,并且电路密度通常较低。

analog_2

图 3    模拟电路设计

 

设计方法概述:

全定制设计

这种设计方式要求设计人员利用版图编辑器来完成版图设计、参数提取、单元表征,然后利用这些自己设计的单元来完成电路的构建。通常,全定制设计是为了最大化优化电路性能。如果标准单元库中缺少某种所需的单元,也需要采取全定制设计的方法完成所需的单元设计。不过,这种设计方式通常需要较长的时间

半定制设计

与全定制设计相对的设计方式为半定制设计。简而言之,半定制集成电路设计是基于预先设计好的某些逻辑单元。例如,设计人员可以在标准组件库(通常可以从第三方购买)的基础上设计专用集成电路,从中选取所需的逻辑单元(例如各种基本逻辑门、触发器等)来搭建所需的电路。他们也可以使用可编程逻辑器件来完成设计,这类器件的几乎所有物理结构都已经固定在芯片之中,仅剩下某些连线可以由用户编程决定其连接方式。这些预先设计好的逻辑单元有关的性能参数通常也由其供应商提供,以方便设计人员进行时序、功耗分析。

ASIC介绍+ASIC类型:

图 4    定制设计

 

可编程逻辑器件 (PLA):

可编程逻辑器件通常由半导体厂家提供商品芯片,这些芯片可以通过JTAG等方式和计算机连接,因此设计人员可以用电子设计自动化工具来完成设计,然后将利用设计代码来对逻辑芯片编程。可编程逻辑阵列芯片在出厂前就提前定义了逻辑门构成的阵列,而逻辑门之间的连接线路则可以通过编程来控制连接与断开。随着技术的发展,对连接线的编程可以通过EPROM(利用较高压电编程、紫外线照射擦除)、EEPROM(利用电信号来多次编程和擦除)、SRAM、闪存等方式实现。现场可编程逻辑门阵列 (FPGA) 是一种特殊的可编程逻辑器件,它的物理基础是可配置逻辑单元,由查找表、可编程多路选择器、寄存器等结构组成。查找表可以用来实现逻辑函数,如三个输入端的查找表可以实现所有三变量的逻辑函数。

专用集成电路 ( ASIC):

专用集成电路只能在整个集成电路设计完成之后才能开始制造,而且需要专业的半导体工厂的参与。专用集成电路可以是基于标准单元库,也可以是全定制设计。在后一种途径中,设计人员对于晶圆上组件的位置和连接有更多的控制权,而不像可编程逻辑器件途径,只能选择使用其中部分硬件资源,从而造成部分资源被浪费。专用集成电路的面积、功耗、时序特性通常可以得到更好的优化。然而,专用集成电路的设计会更加复杂,并且需要专门的工艺制造部门(或者外包给晶圆代工厂)才能将GDSII文件制造成电路。一旦专用集成电路芯片制造完成,就不能像可编程逻辑器件那样对电路的逻辑功能进行重新配置。对于单个产品,在专用集成电路上实现集成电路的经济、时间成本都比可编程逻辑器件高,因此在早期的设计与调试过程中,常用可编程逻辑器件,尤其是现场可编程逻辑门阵列;如果所设计的集成电路将要在后期大量投产,那么批量生产专用集成电路将会更经济

设计方法

集成电路设计通常是以“模块”作为设计的单位的。例如,对于多位全加器来说,其次级模块是一位的加法器,而加法器又是由下一级的与门、非门模块构成,与、非门最终可以分解为更低抽象级的CMOS器件。

从抽象级别来说,数字集成电路设计可以是自顶向下的,即先定义了系统最高逻辑层次的功能模块,根据顶层模块的需求来定义子模块,然后逐层继续分解;设计也可以是自底向上的,即先分别设计最具体的各个模块,然后如同搭积木一般用这些最底层模块来实现上层模块,最终达到最高层次。在许多设计中,自顶向下、自底向上的设计方法学是混合使用的,系统级设计人员对整体体系结构进行规划,并进行子模块的划分,而底层的电路设计人员逐层向上设计、优化单独的模块。最后,两个方向的设计人员在中间某一抽象层次会合,完成整个设计。

自顶向下的设计

采用自顶向下的设计方法有如下优点:

自顶向下设计方法是一种模块化设计方法。

由于高层设计同器件无关,可以完全独立于目标器件的结构,因此在设计的最初阶段,设计人员可以不受芯片结构的约束,集中精力对产品进行最适应市场需求的设计,从而避免了传统设计方法中的再设计风险,缩短了产品的上市周期。

由于系统采用硬件描述语言进行设计,可以完全独立于目标器件的结构,因此设计易于在各种集成电路工艺或可编程器件之间移植

适合多个设计者同时进行设计。

top down design

图 5    自顶向下的设计

 

自底向上的设计

自底向上设计方法是根据系统功能要求,从具体的器件、逻辑部件或者相似系统开始,凭借设计者熟练的技巧和丰富的经验,通过对其进行相互连接、修改和扩大,构成所要求的系统。该方法是从底层(具体部件)开始的,实际中无论是取用已有模块还是自行设计电路,其设计成本和开发周期都优于自顶向下法;但由于设计是从最底层开始的,所以难以保证总体设计的最佳性,例如电路结构不优化、能够共用的器件没有共用。

应当说明的是,自底向上法并非一切从硬件开始设计,设计之初,依然要了解系统要求,设计中要保证系统功能的实现。所谓自底向上主要指在设计功能块时,应考虑如何使用现有器件。

实际上在现代许多设计中,是混合使用自顶向下法和自底向上法的,因为混合应用可能会取得更好的设计效果。一般来说,自顶向下设计方法适用于设计各种规模的数字系统,而自底向上设计方法则更适用于设计小型数字系统。

bottom up

图 6    自底向上的设计

 

芯片反向设计

也称 “芯片逆向工程 ” ,它是通过对芯片内部电路的提取与分析、整理,实现对芯片技术原理、设计思路、工艺制造、结构机制等方面的深入洞悉,可用来验证设计框架或者分析信息流在技术上的问题,也可以助力新的芯片设计或者产品设计方案

 

method2

图 7     反向设计

 

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

功能设计阶段:

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

设计描述和行为级验证:

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

逻辑综合:

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

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

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

布局和布线:

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

 

Posted in 文章

发表评论

相关链接