专用集成电路(ASIC)在现代电路设计里是必不可少的,它是一类五花八门的集成电路,能帮设计师把复杂的电子设备优化得更好。
以前,分立元件——主要是电阻、电容、电感、晶体管和二极管——对很多电气设计项目来说就够用了。现在呢,很难见到一块电路板上连一个集成电路都没有,而布满各种形状和大小集成电路的电路板也很常见。集成电路在现代电路设计中这么受欢迎,跟工程师们能轻松找到、评估、购买并使用各种各样的微芯片有很大关系。不过,现成的集成电路有时候没法直接做出最优化的方案,这种情况下,工程师可能就会考虑用专用集成电路了。
一、什么是专用集成电路(ASIC)?
关于ASIC的确切意思,没有官方说法,不少电子专业人士对ASIC到底是什么,或者某个元件算不算ASIC,看法也不一样。我在一本杂志上看到过一个定义,挺好的,可以拿来当参考:
“专用集成电路是为特定客户、特定应用或特定市场设计的集成电路,用的是基于单元的设计方法,从单元库里挑必要的功能模块,把它们连起来再做仿真,实现需要的系统功能和性能水平。这个定义不包括用传统‘定制’设计方法做的集成电路。”
这个定义的第一部分——为特定客户、特定应用或特定市场设计的集成电路——是对这个词更宽泛也更常见的理解。不过第二部分挺有用的,因为它把“ASIC”和单纯的“定制集成电路”区分开了。要是ASIC和定制集成电路一样,那还专门叫ASIC干嘛呢?
完整的定义说明,ASIC是能提供定制功能,但不用完全走定制化设计流程的集成电路。相反,它的定制功能是通过类似设计印制电路板的流程实现的。画原理图的时候,我们从元件库里选元件,把它们连起来,有时候还会通过仿真验证原理图的部分内容。设计ASIC的时候,设计师从库里选功能模块,把它们连起来,通过仿真验证功能和性能。
举个例子,下图是ASIC就结合了标准的数字信号处理器(DSP)内核和客户想用的那种应用所需的额外电路。
二、ASIC中的“专用”是什么意思?
ASIC里的“专用”这两个字,其实挺容易让人误会的。按现在电路设计里的说法,“应用”一般指的是电子设备的实际用途。说白了,就是这个设备是用来干具体什么活儿的。
但实际上,专用集成电路往往并不只针对某一个特定的用途,至少不会被局限在一个用途里。比如说,一款高度集成的数据转换器ASIC,可能主要是为医疗成像设计的,但完全可能在工业视频处理或者汽车的多通道传感器网络里也很好用。还有更常见的,比如一款片上系统ASIC,一开始是为智能手机设计的,可它集成的功能多,在好多地方都能用得上。
所以我觉得,叫“任务专用集成电路(TSIC)”或者“功能专用集成电路(FSIC)”可能更准。不过这俩词读着肯定没ASIC顺口。总的来说,ASIC的设计目的就是让一块芯片能高效完成一系列特定任务。就算这些任务一开始是为某个特定用途设计的,也可能在其他很多场景里,这款ASIC比现成的集成电路更好用、更合适。
三、ASIC的分类
1、全定制ASIC
这种ASIC是完全从头开始为特定应用设计的。芯片的方方面面,从逻辑门到电路布局,都是定制的,为的就是满足目标应用的精确需求。全定制ASIC的性能最强,功耗也最低,但设计和制造起来成本最高,花的时间也最长。一般只有在产量足够大,或者对性能要求特别严格,值得投入额外成本和精力的情况下,才会用这种ASIC。
2、半定制ASIC
半定制ASIC包括标准单元ASIC和门阵列ASIC,在定制化和成本之间找到了平衡。
- 标准单元ASIC:在基于标准单元的ASIC设计中,有一个标准单元库,里面存放着预先设计好的逻辑单元,比如与门、或门、多路复用器和触发器。这些单元是标准化的,专门供ASIC芯片设计使用。ASIC芯片通常包含一个标准单元区域或者说灵活模块,由这些排成行的单元组成,还可能集成像微控制器、微处理器这样的宏单元,这些也被称为宏功能、系统级宏或者固定模块/功能标准模块。标准单元ASIC的掩膜层是可以定制的,设计师能在芯片上有策略地放置标准单元,这样既能高效利用空间,又能优化性能,这种设计方法也叫C-BIC。
- 门阵列ASIC:门阵列ASIC是半定制ASIC的一种,硅片上有预先做好的晶体管,设计师不能改变晶体管的位置,但可以通过芯片最初的金属层来改变它们之间的连接。设计时会用门阵列库来配置,通常会形成有通道型、无通道型或者结构化门阵列,每种的连接方式都不一样。这种方法叫掩膜门阵列,电路设计要靠基础阵列图案和基础单元来实现。
- 有通道型门阵列:在逻辑单元之间有预先设定的布线通道,用来连接线路,适合那些需要灵活互连路径的标准化设计。
- 无通道型门阵列:没有预先设定的布线通道,能把互连线直接放在单元上方,这样设计更紧凑,芯片密度也更高。
- 结构化门阵列:把预先设定的逻辑块和可定制的互连层结合起来,在设计灵活性和快速开发之间找到了平衡。
3、可编程ASIC
- PLD:这是一种数字集成电路,能通过编程实现多种逻辑运算。在很多应用中,用它来实现定制逻辑电路,不用专门去做半导体定制制造。
- FPGA:可以重复编程,能用于多种应用。制造出来后,用户能根据不同需求对它进行配置。
四、ASIC的设计流程
- 设计输入:这个阶段会用硬件描述语言,比如VHDL、Verilog和System Verilog,来开发微架构。
- 逻辑综合:这一步要生成一个网表,里面会列出逻辑单元、它们的连接方式以及其他必要组件,这些都是根据硬件描述语言代码来的。
- 系统划分:在这里,把大的芯片分成一个个能处理的ASIC大小的部分,这样设计和处理起来更高效。
- 布局前仿真:这个阶段会做一次仿真,目的是找出设计里的错误并修正。
- 布局规划:这一步要确定网表模块在芯片上的排列方式。
- 放置:这一步是确定每个模块里单元的具体位置。
- 布线:这个阶段要给模块和单元之间建立物理连接。
- 提取:这一步主要是评估连接的电气特性,比如电阻和电容。
- 布局后仿真:这是最后的仿真,会测试整个系统的功能,包括互连负载带来的影响,之后设计才会送去制造。
五、ASIC的设计周期
就算有单元库里的功能模块帮忙,设计和验证一款定制的集成电路也不是件简单事儿。要是设计师在现成的集成电路里找不到需要的功能或性能,通常第一个办法就是“再找找看”。如果还是找不到,可编程逻辑器件——比如FPGA或者CPLD——可能是个靠谱的选择。
开发ASIC可能得花上好几个月甚至好几年,还要投入几千万到上亿人民币的成本,才能做出第一块芯片。所以,一般只有那些产量高、对性能要求也高的项目,管理层才觉得值得花时间和钱去开发ASIC。产量足够大的话,ASIC在成本上其实是有优势的。整体生产成本会降下来,因为元器件和组装成本省下来的钱,比分摊到每块芯片上的ASIC开发成本要多得多。
下面图表对比了基于ASIC的开发成本和基于可编程逻辑的开发成本。可以看到,随着产量增加,ASIC方案最终会实现更低的总生产成本。
下面列出了ASIC设计项目的主要环节:
- 根据系统需求和其他相关限制条件,制定ASIC的规格参数。
- 这些规格参数为高层次架构设计提供了框架。
- 高层次架构会被转化为低层级逻辑。和FPGA、CPLD一样,硬件描述语言(VHDL和Verilog)已经成为ASIC设计中很有用的工具。
- 对设计进行测试,验证功能和时序是否符合要求。
- 逻辑设计必须转化为物理布局。
- 物理布局验证通过后,项目就可以进入流片和制造阶段了。
- 制造和封装完成后,ASIC会进行电气测试,然后集成到原型机中,进行实验室测试和现场测试。
这张图展示了一款ASIC的高层架构。它是一款面向“云服务和通信服务提供商”的“可编程网络设备”。
六、ASIC的优点
- 性能强:ASIC是为特定应用定制设计的,所以性能比通用集成电路更高。
- 功耗低:因为ASIC是针对特定用途优化过的,做同样的任务,通常比其他类型的集成电路更省电。
- 体积小:ASIC能把很多功能集成到一小块芯片里,这样整个设备的体积就能缩小。
- 单位成本低:虽然一开始的开发成本高,但大规模生产的时候,单个的成本能降很多。
- 安全性高:定制化的设计让别人很难对硬件进行逆向工程,安全性更有保障。
- 元件少:把多个功能集成到一起,需要的独立元件就少了,这样构造更简单,可靠性也更高。
七、ASIC的应用
ASIC的独特特性改变了电子制造业,让芯片尺寸更小,每块芯片的逻辑门密度也更高。ASIC芯片通常用于高端应用,比如在卫星里当IP核,在ROM生产中很关键,还能用在微控制器上,以及各种医疗和研究领域。现在,ASIC技术最受关注的应用之一就是比特币挖矿。
八、ASIC和FPGA的区别
ASIC是为特定任务定制设计的半导体芯片,不适合通用场景。这种电路一旦造出来,就没法重新编程了。相比之下,FPGA有可编程的硬件,灵活性强,造出来之后还能重新配置。再具体对比一下:
| 特性 | FPGA | ASIC |
| 灵活性 | 高(可重新编程) | 低(不可重新编程) |
| 性能 | 比ASIC低 | 针对特定任务性能更高 |
| 功耗 | 比ASIC高 | 低(为效率优化过) |
| 开发成本 | 低(无非经常性工程成本) | 高(非经常性工程成本高) |
| 单位生产成本 | 比ASIC高 | 低(为效率优化过) |
| 上市时间 | 较短(可重新编程,适应性强) | 较长(受设计和制造流程影响) |
| 可重新编程性 | 是(生产后可更改算法) | 否(设计固定) |
| 适用的生产规模 | 中小规模 | 大规模(以抵消非经常性工程成本) |
| 设计周期 | 较短 | 较长 |
总的来说,选FPGA还是ASIC,得看具体的应用需求。FPGA的优势在于适应性强、部署快,适合那些需要灵活调整的场景,比如需求不断变化的环境、做原型开发,还有中小规模生产的情况。而ASIC呢,在效率方面更突出,性能经过优化,功耗也更低,所以在大规模、需求稳定的应用中更合适——这种情况下,前期投入的高成本能被大规模生产带来的好处抵消掉。说到底,到底用FPGA还是ASIC,最终还是要看对灵活性的要求、性能需求、功耗以及生产规模这些因素。
最后,总结一下
元件集成能让构造变简单、可靠性变高。ASIC特性独特,让芯片更小、逻辑门密度更高,常用于卫星、ROM、微控制器及医疗研究等领域,比特币挖矿也是其热门应用。ASIC是为特定任务定制的,造好不能重新编程;FPGA可编程、灵活性强。选FPGA还是ASIC得看需求,FPGA适应性强、部署快,适合需求多变、做原型及中小规模生产;ASIC效率高、性能优、功耗低,适合大规模稳定需求,前期高成本能被大规模生产的好处抵消,得综合考虑多方面因素来选。
931