当前位置:网站首页>谈fpga和asic的区别
谈fpga和asic的区别
2022-07-07 00:08:00 【IC观察者】
ASICer遇到FPGAer,驴唇不对马嘴。
ASIC还是FPGA,这是个问题。
很多人都觉得同样都是写Verilog的,对于前端设计来说,FPGA和ASIC没什么区别,其实不然,从某种程度上来说,我觉得这就是两个行业。
复位不同
因为Xlinx的器件原因,Xilinx推荐高电平复位,在ASIC通常都是低电平复位。没听说过做芯片高电平复位的。
工具流差别大
FPGA开发大多是在Windows环境下开发,一个编辑器,一个Vivado可以走到底,下载bit流到开发板。一个人全流程。
ASIC开发基本都在Linux环境下开发,编译用VCS、debug用Veridi,清lint/CDC/RDC用Splayglass,收覆盖率imc,综合用DC,形式验证formality,后端做PR,DFT一直到GDSII的系列工具。需要一个完整团队,才能做出一颗芯片。
代码质量要求差别
FPGA开发,代码验证完,可以直接应Vivado自带的综合PR下板子验证。基本就没问题。
ASIC代码验证完,需要清除lint。因为很多写法是不可综合的。清完lint,进入综合,但fomal不一定能过,代码和综合后的网表对不上。综合、fomal不过,代码写得再牛逼,再快,验证的再好,也得改,重写。
ASIC的代码可以换成FPGA IP,直接放FPGA上验证,但FPGA的代码想要直接流片,还是有一段很长的路要走。
FPGA验证也因为规模小的原因,很少听说用UVM的。而且FPGA工程师一般是自己设计自己验,然后自己下板调试,trace。一人全流程。FPGA工程师基本做FPGA产品。如果有人把芯片验证认为是测试,正是无知的体现。
ASIC验证方法学UVM已经统一。验证流程也十分完善,testpoint、testcase、testplan,regression,随机,覆盖率,后仿。到系统级别的验证更是设计到软硬件交互验证,加速器验证等,最后才到了上FPGA原型验证。而FPGA基本就是调接口,测软件,基本上很少会发现RTL的bug。
都叫综合/PR,但本质不同
FPGA内部的构造大致来说,LUT实现组合逻辑,D触发器实现时序逻辑,再加上一些BRAM,硬核资源,就可以实现任意电路。所以FPGA的综合就是把RTL映射到这些资源上。
ASIC综合是将RTL映射到标准单元库上,mem。有些RTL,语法是支持,但是就是综合不了。LUT就是个大mux,瞎写的代码LUT能映射,但DC不一定过。
FPGA综合和ASIC综合完全不是一个东西。
FPGA在ASIC中的角色
FPGA在ASIC开发流程中的作用,只是用做原型验证。前面复杂的开发流程,与FPGA自成体系的开发流程相比完全不是一个量级。
你用做芯片的方法去做FPGA那是降维打击,用FPGA的方法做芯片,那叫本末倒置。
但做芯片流程复杂,放到做FPGA产品上,会造成资源浪费,杀鸡焉用牛刀。
玩法不一样
FPGA玩的是什么,是灵活性高,需求不明确,量不大,或者需求老变化,FPGA正是派上用场。
ASIC玩的就是要量产,量越大越好。需求明确,市场定位明确,未来几年内都可以不断出货。
功耗
FPGA产品设计很少关注功耗,都是插电使用的板卡。
ASIC低功耗设计又是一套设计方法学,从RTL设计,到power gating,power domain的设计,upf编写。低功耗的验证。同样的电路,FPGA的功耗也会大。
面积
如果一个产品,只是小批量出货,用FPGA实现会减少成本。但如果到了百万级别的产品量还用FPGA,那钱不都让Xilinx赚了。代码规模大,用FPGA实现困难,成本高昂。同样的电路,FPGA的面积会比ASIC大很多
通才和专才
FPGA规模小,而且是直接面向产品,FPGA工程师可以出全栈工程师,软硬件全流程覆盖。直接面向产品更有意思。
ASIC设计流程众多,岗位细分,每个人更多的只能覆盖到自己的那一部分工作。做算法IP设计的,可能不用关注中端实现过程,甚至不知道自己正在做的这个IP会用到哪个产品上。做IP会出专才,专注于协议或算法。而SOC设计又是另一套方法学体系。
FPGA其实和软件类似
想一想,类似于做软件开发,代码开发验证完成出版本,然后上开发板去测。出现问题,回来再继续改代码。产品上市了,发现了一个bug,远程OTA打个补丁,升级一下。
ASIC总不能流片一下,试一下,几千万就叫你试一下?产品到客户手里了,发现bug了,那是非常严重,召回。这一批次都废掉。
可能就是因为这样的原因,做芯片必须步步小心。流片失败,对于很多公司来说,就是倒闭灾难。
最后
以上,种种因素,造成了FPGA和ASIC整套研发流程体系不同,所以我认为严格来说,做FPGA和做ASIC就是两个行业。
更多内容可以关注(芯片记语)公众号。
原文:https://mp.weixin.qq.com/s/QgmhX4DRSXW4yly9TJysPQ
边栏推荐
- 淘宝店铺发布API接口(新),淘宝oAuth2.0店铺商品API接口,淘宝商品发布API接口,淘宝商品上架API接口,一整套发布上架店铺接口对接分享
- "Multimodal" concept
- make makefile cmake qmake都是什么,有什么区别?
- Aidl and service
- 什么是依赖注入(DI)
- SQLSTATE[HY000][1130] Host ‘host. docker. internal‘ is not allowed to connect to this MySQL server
- 5. Data access - entityframework integration
- 论文阅读【MM21 Pre-training for Video Understanding Challenge:Video Captioning with Pretraining Techniqu】
- Lombok插件
- Determine whether the file is a DICOM file
猜你喜欢

Unity让摄像机一直跟随在玩家后上方

常用消息队列有哪些?
![[PM products] what is cognitive load? How to adjust cognitive load reasonably?](/img/75/2277e0c413be561ec963b44679eb75.jpg)
[PM products] what is cognitive load? How to adjust cognitive load reasonably?

2pc of distributed transaction solution

1. AVL tree: left-right rotation -bite

Getting started with DES encryption

Differences and introduction of cluster, distributed and microservice

消息队列:消息积压如何处理?

Egr-20uscm ground fault relay

Message queue: how to deal with message backlog?
随机推荐
分布式全局ID生成方案
SAP ABAP BDC(批量数据通信)-018
I didn't know it until I graduated -- the principle of HowNet duplication check and examples of weight reduction
async / await
力扣102题:二叉树的层序遍历
Introduction to distributed transactions
拼多多新店如何获取免费流量,需要从哪些环节去优化,才能有效提升店内免费流量
爬虫练习题(三)
JD commodity details page API interface, JD commodity sales API interface, JD commodity list API interface, JD app details API interface, JD details API interface, JD SKU information interface
High voltage leakage relay bld-20
[JS component] date display.
拼多多商品详情接口、拼多多商品基本信息、拼多多商品属性接口
Go language context explanation
Web architecture design process
Aidl and service
English grammar_ Noun possessive
软件测试面试技巧
Three level menu data implementation, nested three-level menu data
[论文阅读] A Multi-branch Hybrid Transformer Network for Corneal Endothelial Cell Segmentation
5. 数据访问 - EntityFramework集成