想必大家都挺说过IC、ASIC、VLSI、FPGA等等专业术语,也听说过芯片前端、后端、设计、制作等等流程,但对其了解比较少,接下来我们将从这些术语定义出发,逐个解开芯片领域术语的面纱,理清芯片设计的内部结构。
# 1 芯片的“通用”与“专用”IC 全称为 integrated circuit,意为集成电路。它就是 芯片(chip) 的另一个专业别称。
集成电路按照用途可以分成两大类,一是通用芯片,包括经常听到的CPU、 GPU、 DSP等;二是专用芯片,包括FPGA、ASIC等。这个大类划分很重要,两者有本质上的不同。需要说明下,芯片的分类有很多种,我们这样的分类是基于芯片的设计理念,这是后续理解一切的基础。
这里“通用”与“专用”的区别是指该芯片是否是仅为执行某一种特定运算而设计,用银行来做个简单的比喻,通用芯片就是“银行柜员”,可以处理各种复杂的业务;而专用芯片就是“ATM机”,将某些流程标准化并固化在硬件中,做一台没有感情的处理机器。“通用”与“专用”并不是指该芯片是否仅用于某一种产品或使用场景,比如intel所研发的用于PC的CPU,这颗芯片仅用在PC上,但它不是我们这里说的“专用”芯片。
# 若想拓展学习“通用”与“专用”芯片,请点击这里open in new window。
# 2 ASIC 的全定制、半定制和可编程专用集成电路英文为 Application Specific Integrated Circuit,即我们常说的 ASIC 专用集成电路。它是指按照特定用户要求和特定电子系统的需要而设计、制作的芯片。
按照主流分类标注,ASIC芯片可以分为全定制、半定制和可编程。进行 ASIC 设计的方式有很多,两种最为流行的方式为:
CPLD (复杂可编程逻辑器件)FPGA (现场可编程逻辑阵列)共性:
可编程性:CPLD和FPGA都可以根据用户的需求进行编程和配置,实现不同的逻辑功能和电路设计。
高集成度:它们都能够将多个逻辑门、触发器以及其他电子器件集成在一个芯片上,从而实现复杂的电路功能。
可重构性:CPLD和FPGA都具备可重复编程的能力,可以多次修改和重新配置电路设计。
区别:
架构:CPLD采用的是可编程逻辑阵列和可编程连接器的结构,而FPGA采用的是可编程逻辑阵列和可编程互连的结构。这使得FPGA在逻辑密度和灵活性方面更具优势,而CPLD在时序可靠性和功耗方面较为优秀。
规模:FPGA通常比CPLD规模更大,具有更高的逻辑资源和更多的可编程单元。这使得FPGA适用于需要更高复杂度和灵活性的设计。
时序性能:CPLD通常具有更好的时序性能,适用于时序要求较为严格的应用,如时钟分配和同步电路设计。FPGA则在时序性能方面相对较差,更适合于并行处理和大规模数据处理等应用。
功耗:由于CPLD通常采用静态存储器元件,因此其功耗较低。而FPGA由于采用动态存储器元件,其功耗较高。
总体来说,CPLD适用于需要更高的时序可靠性和功耗控制的应用,而FPGA适用于需要更高的逻辑密度和灵活性的应用。选择哪种器件取决于具体的应用需求和设计目标。
# 若想拓展学习“ASIC芯片分类、优点及应用介绍”,请点击这里open in new window。
# 3 芯片的结构层级在介绍 SoC 片上系统前,我们先介绍芯片从大到小的结构层次分类(更好理解芯片内部结构):
系统级:芯片系统架构的设计,具备独立完整功能的IP模块。比如手机,具有玩游戏、打电话、听音乐等多个功能。
Port* compute_optimal_route_for_packet (Packet_t *packet, Channel_t *channel){
static Queue_t *packet_queue; packet_queue = add_packet(packet_queue, packet); ......
}
模块级:在整个系统中分为很多功能模块各司其职,各负责一个功能。
寄存器传输级:借助寄存器将功能实现出来,形成RTL代码。一个复杂的功能模块是由许许多多的寄存器和组合逻辑组成的。门级:经过综合工具,将RTL代码转化为电路,再将电路映射为由GTech或者标准单元库形成的门级网表;晶体管级:标准单元库中的每个单元均已提前设计好,其中关键组建是晶体管,也是最原子的级别;版图级:门级网表经过物理化之后,会形成一个版图GDS,属于芯片制造的图纸;掩膜级:芯片生产厂商会根据版图分层设计掩膜,用于指导光刻机进行曝光,先进工艺甚至需要多次曝光;# 若想拓展学习“芯片层级结构”,请点击这里open in new window。
# 4 SoC、MPU、MCU、CPU、GPU、DSP 简介SoC (System on Chip)
系统级芯片,既像MCU那样有内置RAM,ROM的同时,又像MPU那样强大的不单单是放简单的代码,而是可以放系统级代码,也就是说可以运行操作系统。可以理解为一个SoC芯片集成了计算机系统中所有必要的功能模块,不需要额外与其他芯片协同工作,但是仍需要与外部器件协同工作以构建出完整的系统。
例子:智能手机中的芯片通常采用SoC的设计。 当你使用智能手机进行游戏时,SoC中的CPU负责处理游戏逻辑、运算和控制,而GPU则负责图形渲染,将游戏画面显示在屏幕上。此外,调制解调器模块负责处理无线通信,使你能够连接到移动网络并进行通话或上网。同时,摄像头处理器则负责处理拍照和录像功能,使你能够拍摄高质量的照片和视频。
CPU(Central Processing Unit)中央处理器
计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。以下是一些CPU存在的常见形式:单片CPU芯片(嵌入式系统、智能手机、平板电脑)、多芯片模块(AMD 的 Ryzen Threadripper 处理器系列)、超大规模集成电路(一些特定应用的超高性能CPU)、定制化解决方案(专用计算设备、科学研究设备)。
例子: 当你使用手机上的社交媒体应用浏览朋友圈时,CPU会负责处理应用程序发出的命令,从服务器上获取数据,对数据进行处理和显示。当你打开手机上的游戏时,CPU会负责处理游戏的逻辑运算、图形渲染等任务。即使是简单的操作,比如拨打电话、发送短信,CPU也会参与其中,确保手机能够正常工作。
微处理器(MPU)
在微机中,CPU被集成在一片超大规模集成电路芯片上,被称为MPU。也就是说,MPU是单片CPU芯片,是微机的心脏。
例子:智能家居控制器是一个使用MPU的实际例子。 智能家居系统通常需要一个中央控制单元来管理和控制各种智能设备,比如灯光、温度调节器、安全摄像头等等。这个中央控制单元可以由MPU组成,通过连接网络和各种传感器,监测和控制各个智能设备的状态和功能。MPU负责处理控制指令、数据交互和联网通信等任务,使智能家居系统能够实现自动化控制和智能化管理。
问:微机芯片是SoC芯片吗?
回:微型计算机(Microcomputer)通常是指个人电脑(PC),而不是单片机(Microcontroller)。因此,对于个人电脑而言,它的处理器芯片不是SoC芯片。个人电脑的CPU(中央处理器)通常以模块化的形式存在,由多个芯片组成,例如一些历史悠久的x86架构处理器,包括Intel Pentium和AMD Athlon。这些芯片通常由中央处理器(CPU)、北桥芯片、南桥芯片等多个组件组成,每个组件都具有不同的功能。
然而,在现代嵌入式系统中,单片机(Microcontroller)和芯片组(Chipset)之间的差别已经逐渐模糊,SoC的应用也变得越来越普遍了。现代嵌入式系统中的SoC芯片通常集成了处理器核心、存储器控制器、周边设备接口、无线通信模块、传感器接口等多个功能模块,以实现更高的集成度和更低的功耗。在这种情况下,SoC芯片可以看作是一个完整的计算机系统,与微型计算机系统的芯片组有着相似的设计目标。
综上所述,微型计算机(个人电脑)的处理器芯片通常不是SoC芯片,而是模块化设计的多个芯片组成。但在现代嵌入式系统中,SoC芯片已经变得越来越普遍,集成了多个功能模块,实现了更高的集成度和更低的功耗。
MCU(Microcontroller)单片机
是将CPU、RAM等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。MCU和SoC的设计目标、集成度和应用场景不同,MCU通常用于相对简单的嵌入式系统,而SoC则用于更复杂的嵌入式系统和移动终端设备。MCU不是SoC芯片。
例子: Arduino Uno是一款基于ATmega328P单片机的开发板,它集成了处理器核心、存储器、输入输出接口以及其他功能模块。它具有丰富的引脚资源,可以连接各种传感器、执行器和外部设备,方便进行物联网和嵌入式系统开发。其他功能模块。它具有丰富的引脚资源,可以连接各种传感器、执行器和外部设备,方便进行物联网和嵌入式系统开发。
GPU(Graphics Processing Unit)图像处理器
又称显卡。在大多数的个人计算机中,GPU仅仅是用来绘制图像的。如果CPU想画一个二维图形,只需要发个指令给GPU,GPU就可以迅速计算出该图形的所有像素,并且在显示器上指定位置画出相应的图形。由于GPU会产生大量的热量,所以通常显卡上都会有独立的散热装置。
DSP(Digital Signal Processor)数字信号处理器
是一种专用的数字信号处理器芯片,专门用于处理数字信号,如音频、视频、雷达信号等。DSP在实时数据处理、滤波、编解码、音频处理等领域有着较高的性能和效率,常被用于无线通信、音频处理、图像处理等应用。
例子: TMS320C6748是德州仪器(Texas Instruments)生产的一款高性能DSP芯片。它专门设计用于数字信号处理应用,具有强大的计算能力和丰富的外设接口,广泛应用于音频、视频、通信、医疗、工业控制和汽车等领域。
# 若想拓展学习“这些术语”,请点击这里open in new window。
# 5 ASIC vs VLSIVLSI和ASIC是不同的两个概念。
VLSI(Very Large Scale Integrate circuit)是指集成电路的规模,有时也指制造集成电路所使用的工艺,VLSI工艺一般都在1um以下。
ASIC(Application Specified Integrate Circuit)指相对于通用集成电路而言的用户专用的电路。
VLSI技术当然可以用在ASIC中,但非VLSI技术,如LSI,MSI技术等,也可以用于ASIC中,当然现在的ASIC大多用VLSI技术,不过它又可以分成全定制(Full-custom),半定制(semi-custom)和可编程电路(如FPGA,CPLD等)。
对于ASIC设计并没有专门去学的, 因为设计集成电路的人可以搞ASIC,研究通讯的人也可以搞ASIC, 凡是需要设计的电路的人都可以搞ASIC。ASIC的形式也有多种, 说得通俗一点就是把电路板上的好几块集成块集成到一块集成电路上就可以说是ASIC。
倒是VLSI的设计是一门比较专业的学科, 但也包含了许多方面.如果你希望以后能从事集成电路的设计工作, 学VLSI设计是一门基础的课程, 其中有集成电路制造工艺方面的知识, 有电路设计方面的知识.我不知你指的故障检测是哪方面的, 如果是VLSI的测试,则包含了一部分故障检测的内容.
# 节选自博客,若想拓展学习“ASIC和VLSI区别的”,请点击这里open in new window。
# 6 引用[1] https://zhuanlan.zhihu.com/p/374131234open in new window [2] https://www.sgpjbg.com/info/32937.htmlopen in new window [3] https://www.cnblogs.com/grooovvve/p/11604016.htmlopen in new window [4] https://blog.csdn.net/YinShiJiaW/article/details/101391597open in new window [5] https://www.cnblogs.com/PhiloSky/p/3419854.htmlopen in new window