浅谈FPGA,SoC,ASIC
内容:
主要介绍FPGA,SoC,ASIC的一些基本概念
读完这篇文章,你将会学到FPGA,SoC,ASIC的含义,它们之间的异同点,以及它们分别都是做什么的,加深对它们的理解
声明:
文章主要参考知乎上两篇文章(小声逼逼,这才是知乎该有的模样)
SoC流程、FPGA流程和ASIC流程有什么区别
在人工智能大背景下,FPGA和ASIC谁发展潜力更大?
ASIC:专用集成电路,是一种为专门目的而设计的集成电路,(固化电路)
通常意义上的ASIC指的是模块级别的含义,如视频解码器,音频解码器,USB,神经网络加速计算等模块。
但是现在的ASIC通常包含 处理器,存储单元(ROM,RAM,flash等)和其他模块。这样的ASIC通常称为SoC(System on Chip)
FPGA:可编程门阵列(和ASIC是一个近亲的概念),内部集成了大量的数字电路基本门电路以及存储器,(非固化电路,电路可根据配置文件重新生成)
用户可以通过烧入 FPGA 配置文件来来定义这些门电路以及存储器之间的连线。
这种烧入不是一次性的,即用户今天可以把 FPGA 配置成一个微控制器 MCU,明天可以编辑配置文件把同一个 FPGA 配置成一个音频编解码器。
SoC:片上系统,集成了CPU核,内存单元,以及其他外设。亦即集成了许多不同模块的芯片。
FPGA和ASIC的主要区别就是,一个是固化了的电路,一个是非固化的电路。所以FPGA的灵活性更强,但是性能比ASIC更低,而且大规模做生产应用的时候,ASIC的价格更加便宜。
SoC的执行:是由CPU控制的,即程序是由执行单元顺序执行的
FPGA和ASIC(此处指的是模块级)的执行:程序并不由任何执行单元顺序执行,而是由硬件电路直接执行,可能是并行,并不会存在流水线和周期的概念
注:软件执行,一般指的是通过CPU执行,由执行单元顺序执行,会有流水线,指令周期的概念;硬件执行,一般指的是通过硬件模块执行
如,执行一个乘法操作,cpu会通过流水线的执行路线执行,需要花费几个时钟周期,但是专门的硬件乘法电路模块执行乘法运算的时候,没有时钟周期和流水线的概念,肯定运算速度会快很多
现在的ASIC的实现模式是SoC+IP:
电子业界发现每个模块都做 ASIC 成本太高,而且速度太慢,而且最后电子产品的体积也很难做小,不如把所有的模块都集成到同一块芯片上。这块芯片集成了多个模块,并由一个中央控制单元通过总线控制每个模块的运作,就是 SoC。例如,现在高通公司的 Snapdragon 就是一块典型的 SoC,上面集成了 GPU,视频/音频编解码,相机图像信号处理单元(ISP),GPS 以及有线/无线连接单元等等。
SoC 上面的每一个模块都可以称为 IP,这些 IP 既可以是自己公司设计的(如 Snapdragon 上面的调制解调器就是高通自己设计的),也可以是购买其他公司的设计并整合到自己的芯片上,例如苹果 A 系列处理器里用的 GPU 就使用了 ImaginaTIon 的 PowerVR IP。SoC+IP 提供了一种灵活而快速的模式,可以想象如果苹果不是购买 IP 而是自己组建团队慢慢做 GPU,其 A 系列处理器芯片上市的时间至少要被延迟一年。
对于深度学习加速器而言,做成 IP 也是一个加速上市速度的模式。当深度加速器成为 IP 时,它就不再自己做成 ASIC,而是成为 SoC 的一部分,当 SoC 需要做深度学习相关运算时就交给加速器去做。
做成 IP 对于加速器来说能够更灵活地满足客户的需求。 IP 公司可以根据客户的需求快速微调自己的设计并在一两个月内交付(由于并不需要真正生产芯片,只需要交付设计);但是如果加速器已经做成 ASIC,那要改动设计就必须重新做一块芯片,这个过程牵扯到耗时巨大的物理设计和验证,改动完的芯片上市时间可能是一年之后了。
在 SoC+IP 的模式下,IP 公司可以专注于加速器的前端设计并且根据客户的需求量体裁衣,大公司则做自己擅长的后端以及芯片/封装级验证,可以说是大公司和小公司都可以扬长避短,各取所需,最终实现快速加速器设计迭代(如半年甚至一个季度一次)并跟上深度学习发展的步伐。
ASIC(现代SOC级别)和FPGA做AI算法硬件加速运算:(性能,成本)
结语:
FPGA 和 ASIC 在实现深度学习加速器方面各有所长,FPGA 的可配置性更适合企业、军工等应用,而 ASIC 的高性能和低成本则适合消费电子领域(包括移动终端)。为了实现快速迭代,ASIC 可以采用 SoC+IP 的模式,而这种模式也使得没有资源量产芯片的中小公司可以专注于深度学习加速器 IP 的架构和前端设计,并在人工智能市场上占有一席之地。
浅谈FPGA,SoC,ASIC相关推荐
- 浅谈FPGA与音频处理器的结合
FPGA通常是面向通信行业,尽管其主要开发者仍然专注于通信应用, 但他们越来越关注存储和服务器市场. 但是, 广阔的工业市场又如何呢? 通常, 工业市场的要求并不像存储.服务器或通信应用程序所要求的那 ...
- 浅谈FPGA有限状态机
状态机几乎可以实现一切时序电路. 有限状态机(FiniteStateMachine, FSM),根据状态机的输出是否与输入有关,可分为Moore型状态机和Mealy型状态机.Moore型状态机输出仅仅 ...
- 浅谈FPGA网络PHY芯片RTL8211FD的配置和简单使用
最近迷上了FPGA的网络通信和GTP光通信,个人感觉光通信简单一些,那就从难得网络通信开始吧,先搞个最简单的,使用MDIO配置和读取网络PHY的信息. 板子:米联客的MA703FA(A7-35T板子) ...
- 浅谈XILINX FPGA CLB单元 汇总 (CLB、LUT、存储单元、Distributed RAM、移位寄存器、多路复用器、进位逻辑(Carry Logic))
浅谈XILINX FPGA CLB单元 汇总 (CLB.LUT.存储单元.Distributed RAM.移位寄存器.多路复用器.进位逻辑(Carry Logic)) 一.概述 CLB可配置逻辑块是指 ...
- 浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真
浅谈用ModelSim+Synplify+Quartus来实现Altera FPGA的仿真 工作内容: Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业 ...
- 人工智能Ai芯片层出不穷,GPU、FPGA、ASIC用于人工智能的优势和劣势对比
人工智能(AI)主要包括三大要素,分别是数据.算法和算力.其中数据是基础,正是因为在实际应用当中的数据量越来越大,使得传统计算方式和硬件难以满足要求,才催生了AI应用的落地.而算法是连接软件.数据.应 ...
- 浅谈PCI Express体系结构(二)
PCI总线的信号定义 PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号 ...
- 浅谈中国区块链发展史
浅谈中国区块链发展史 目录 比特币 进入中国 新生 快速发展 央行 华为 阿里 腾讯 百度 中国信息通信研究院 目录 比特币 区块链1起源于比特币,2008年11月1日,中本聪发表了<比特币:一 ...
- IC设计- 浅谈各种验证 - 功能验证,形式验证,原型验证
浅谈逻辑仿真,形式验证及硬件仿真 随着硬件设计复杂性的不断增加,为了能够最大程度的使得验证收敛,验证方法也越来越多,今天我们针对常见的几种验证方法做一些简单的分析,指出它们的常用应用环境以及一些优缺点 ...
- 浅谈PCI Express体系结构(三)
PCI总线的存储器读写总线事务 总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI ...
最新文章
- 【CV】Pytorch一小时入门教程-代码详解
- 【Qt】QtCreator中自动补全注释
- Jquery string 和 json相互转换的方法
- 怎么计算一组数据的波动_数据分析(一):数据描述统计
- laravel 5.5 顶部带条件分页查询
- Debina解决浏览器中乱码(将系统字体改为中文)
- c语言大数相加怎么写,大数相加
- ROS入门-7.创建工作空间与功能包
- application实现网页计数_SpringBoot整合NoSQL 数据库(Redis)实现缓存
- linux虚拟化技术这么玩,Linux上实现虚拟化技术的优势
- win10熄屏时间不对_电脑熄屏时间怎么设置win10的
- Gradle剔除依赖
- 量子力学(4) 全同粒子
- js生日计算年龄_js 根据出生日期计算年龄
- Mac Terminal (终端) 使用ssh快速登录远程服务器
- 罗密哦与朱丽叶----this指针、函数封装
- c 语言中星号什么意思,Objective-C中的星号*是什么意思?
- bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅
- python idle使用教程_pythonidle中文教程
- 请尝试写一个验证Email地址的正则表达式。版本一应该可以验证出类似的Email —— python学习笔记