在
集成电路设计中,利用宏单元(英语:macrocell)阵列是
专用集成电路的半定制设计途径之一。宏单元是由相对
逻辑门抽象级别更高的
触发器、
算术逻辑单元、硬件暂存器等组成的预定义逻辑功能实现单元。 这些逻辑单元作为一个宏单元整体被安置在
硅片上。在制造过程中,工程师需要构建各个预定义单元之间的金属互连线,不同的连线方式可以在更高逻辑层次实现不同的功能。
现场可编程逻辑门阵列的可以由宏单元构成。
集成电路设计
集成电路设计(英语:Integrated circuit design, IC design),根据当前
集成电路的集成规模,亦可称之为超大规模集成电路设计(VLSI design),是指以集成电路、
超大规模集成电路为目标的设计流程。
集成电路设计涉及对电子器件(例如
晶体管、
电阻器、
电容器等)、器件间互连线模型的建立。所有的器件和互连线都需安置在一块半导体衬底材料之上,这些元件通过半导体器件制造工艺(例如
光刻等)安置在单一的
硅衬底上,从而形成
电路。最常使用的衬底材料是
硅。设计人员会使用技术手段将硅衬底上各个器件之间相互电隔离,以控制整个芯片上各个器件之间的导电性能。
PN结、
金属氧化物半导体场效应管等组成了集成电路器件的基础结构,而由后者构成的互补式金属氧化物半导体则凭借其低静态功耗、高集成度的优点成为数字集成电路中
逻辑门的基础构造。设计人员需要考虑晶体管、互连线的能量耗散,这一点与以往由分立电子器件开始构建电路不同,这是因为集成电路的所有器件都集成在一块硅片上。金属互连线的
电迁移以及
静电放电对于微芯片上的器件通常有害,因此也是集成电路设计需要关注的课题。
随着集成电路的规模不断增大,其集成度已经达到深亚微米级(特征尺寸在130纳米以下),单个芯片集成的
晶体管已经接近十亿个。由于其复杂性,集成电路设计相较简单电路设计常常需要计算机辅助的设计方法学和技术手段。集成电路设计的研究范围涵盖了数字集成电路中
数字逻辑的优化、
网表实现,
寄存器传输级硬件描述语言代码的书写,逻辑功能的验证、仿真和时序分析,电路在硬件中连线的分布,模拟集成电路中
运算放大器、
电子滤波器等器件在芯片中的安置和
混合信号的处理。相关的研究还包括硬件设计的
电子设计自动化(EDA)、
计算机辅助设计(CAD)方法学等,是
电机工程学和计算机工程的一个子集。
对于
数字集成电路来说,设计人员更多的是站在高级抽象层面,即
寄存器传输级甚至更高的系统级(有人也称之为行为级),使用
硬件描述语言或高级建模语言来描述电路的逻辑、时序功能,而
逻辑综合可以自动将
寄存器传输级的
硬件描述语言转换为
逻辑门级的
网表。对于简单的电路,设计人员也可以用硬件描述语言直接描述逻辑门和触发器之间的连接情况。网表经过进一步的
功能验证、
布局、
布线,可以产生用于工业制造的
GDSII文件,工厂根据该文件就可以在
晶圆上制造电路。模拟集成电路设计涉及了更加复杂的信号环境,对工程师的经验有更高的要求,并且其设计的自动化程度远不及数字集成电路。
逐步完成功能设计之后,
设计规则会指明哪些设计符合制造要求,而哪些设计不符合,而这个规则本身也十分复杂。
集成电路设计流程需要符合数百条这样的规则。在一定的设计约束下,集成电路物理版图的
布局、
布线对于获得理想速度、
信号完整性、减少芯片面积来说至关重要。半导体器件制造的不可预测性使得集成电路设计的难度进一步提高。在集成电路设计领域,由于市场竞争的压力,
电子设计自动化等相关
计算机辅助设计工具得到了广泛的应用,工程师可以在计算机软件的辅助下进行寄存器传输级设计、
功能验证、
静态时序分析、
物理设计等流程。
专用集成电路
专用集成电路(英语:Application-specific integrated circuit,
缩写:ASIC),是指依产品需求不同而
客制化的特殊规格
集成电路;相反地,非客制化的是应用特定标准产品(Application-specific standard product)集成电路。
专用集成电路是由特定使用者要求和特定电子系统的需要而设计、制造。由于单个专用集成电路芯片的生产成本很高,如果出货量较小,则采用专用集成电路在经济上不太实惠。这种情况可以使用
可编程逻辑器件(如
现场可编程逻辑门阵列)来作为目标硬件实现
集成电路设计。此外,可编程逻辑器件具有用户可编程特性,因此适合于大规模芯片量产之前的原型机,来进行调试等工作。但是可编程逻辑器件在面积、速度方面的优化程度不如全定制的集成电路。
一般专用集成电路的
ROM和
RAM都在出厂前经过掩膜(MASK),如常用的
红外线遥控器发射芯片就是这种芯片。
专用集成电路的特点是面向特定用户的需求,品种多、批量少,要求设计和
生产周期短,它作为集成电路技术与特定用户的整机或系统技术紧密结合的产物,与通用集成电路相比具有体积更小、重量更轻、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
全定制
全定制(英语:Full-custom)设计途径是
集成电路设计的一种途径,这种途径需要设计人员完成所有
晶体管和互连线的详细版图,而不像另一种设计途径——半定制(semi-custom)设计方法,不是以晶体管为基础开始设计,而是通过使用已经设计好的子电路来完成整个电路的设计。实际上,半定制设计途径所使用的标准元件本身也是通过全定制设计方法完成的,而一系列这类标准元件(通常称之为“
标准单元库”、“工艺库”)的设计会花费很长时间。
全定制设计由于设计的精度很高,因此可以最大程度优化芯片的性能,而不会浪费太多芯片资源。但是,这种设计方法通常比半定制设计耗费更多的人力和时间成本。因此,只有那些需要大批量投产的集成电路产品(如
微处理器等)才会使用全定制的方法,因为使用全定制的方法对于单个芯片来说很不经济。
集成电路的设计、制造所需的成本是一个需要考虑的因素。制造用于
光刻(将抽象的
集成电路版图转化为实际硬件电路的过程之一)的光掩模相当昂贵,而相关
电子设计自动化软件的授权也将花费客观的资金。
现场可编程逻辑门阵列
内容简介
现场可编程逻辑闸阵列(英语:Field Programmable Gate Array,缩写为FPGA),它是在
PAL、
GAL、
CPLD等
可编程逻辑器件的基础上进一步发展的产物。它是作为
专用集成电路领域中的一种半定制电路而出现的,既解决了
全定制电路的不足,又克服了原有可编程逻辑器件门电路数有限的缺点。
以
硬件描述语言(
Verilog或
VHDL)描述的逻辑电路,可以利用
逻辑综合和
布局、
布线工具软件,快速地烧录至FPGA上进行测试,这一过程是现代集成电路设计验证的技术主流。这些可编程逻辑元件可以被用来实现一些基本的
逻辑门数字电路(比如
与门、
或门、
异或门、
非门)或者更复杂一些的组合逻辑功能,比如译码器等。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件,例如
触发器(Flip-flop)或者其他更加完整的记忆块,从而构成
时序逻辑电路。
系统设计师可以根据需要,通过可编辑的连接,把FPGA内部的逻辑块连接起来。这就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者的需要而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比
专用集成电路(ASIC)的速度要慢,无法完成更复杂的设计,并且会消耗更多的电能。但是,FPGA具有很多优点,比如可以快速成品,而且其内部逻辑可以被设计者反复修改,从而改正程序中的错误,此外,使用FPGA进行除错的成本较低。厂商也可能会提供便宜、但是编辑能力有限的FPGA产品。因为这些芯片有的可编辑能力较差,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于专用集成电路的芯片上。在一些技术更新比较快的行业,FPGA几乎是电子系统中的必要部件,因为在大批量供货前,必须迅速抢占市场,这时FPGA方便灵活的优势就显得很重要。
为了达到上述目的,另外一种方法是采用
复杂可编程逻辑器件(CPLD)而不是FPGA。下面对CPLD进行简要介绍,并与FPGA进行比较。
早在1980年代中期,FPGA已经在
可编程逻辑器件设备中扎根。
CPLD和FPGA都包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。CPLD的结构具有一定的局限性。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器组成。这样的结果是缺乏编辑灵活性,但是它的优点是,其延迟时间易于预计,逻辑单元对连接单元比率较高。而FPGA具有的连接单元数量很大,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的存储器。一个由此带来的重要区别是,很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑,而其他部分继续正常运行。
基本组成