fpga vs asic相同点都设计使用硬件描述语言(hdl),如vhdl或verilog。但asic相比于fpga开发上,代码风格更为随意,因为fpga是先有电路,后有代码,asic是先有代码后面有专门的人员进行布局布线,而且是专用的布局布线软件工具。
不同点可编程性:fpga可重构电路,完全由用户通过软件进行配置和编程,从而完成某种特定的功能,且可以反复擦写;asic永久电路,asic需要较长的开发周期,风险较大,一旦有问题,成片全部作废。
功耗:在相同工艺条件下,fpga要大于asic。fpga,尤其是基于占用大量硅面积的、每个单元六个晶体管的静态存储器(sram)的查找表(lut)和配置元件技术的fpga,其功耗要比对等的asic大得多。asic的功耗可以非常精确地控制和优化(低功耗设计)。
速度:fpga内部是基于通用的结构,根据rtl设计选择内部布局布线,fpga结构上的通用性必然导致冗余。asic是根据设计需求,最优化cell逻辑资源,没有结构上的限制,并且做到最优布局走线,降低走线延迟和cell延时。相同的工艺和设计,在fpga上的速度应该比asic跑得慢。
频率:asic主频时钟是远高于fpga系统主频时钟,一个很重要的原因也是有专门布局布线,另一个原因是asic使用组合逻辑相对较多。
模拟:fpga不可能进行模拟设计,asic在专用于模拟收发器的射频(rf)核心上,可以不包含许多专用的模拟收发器。
应用:fpga 的可配置性更适合科研、军工等应用,而 asic 的高性能和低成本则适合消费电子领域(包括移动终端)
原型设计:fpga优先用于原型设计和验证设计或概念。asic除非经过绝对验证,否则不建议使用asic对设计进行原型设计。一旦硅被贴上胶带,几乎什么也无法修复设计缺陷。fpga验证是进行asic设计的重要环节,完成fpga验证可以说就完成了asic整套流程的50~80%。
设计流程:fpga设计人员一般不需要关心后端设计,asic设计人员需要关心从rtl到重置树、时钟树、物理布局和布线、工艺节点、制造约束(dfm)、测试约束(dft)等所有事情,通常每一个领域都由不同的专业人员处理。
成本:asic开发成本高于fpga,随着使用数量增加,fpga成本上升幅度高于asic,下图是xilinx公司制作的成本比较:
面积:定制化的电路设计和工艺使用asic面积小于fpga。
fpga和asic区别很多。asic的逻辑通常远远大于fpga的,门数上有数量级的差别,运行时钟也远远高于fpga。而且,asic只有一次机会,fpga因为可以编程,所以coding的灵活性相对提高。仅仅从rtl设计上来说:
(1)asic更趋于保守,对逻辑的任何改动都要三思,并且要做备选的选择,以防改错。rtl的任何修改几乎都是增量修改,即便以前的逻辑错了,也不会删掉,而是多做一个分支。(2)asic对coding style的要求更高。所有模块的coding风格要求一致,这样有利于后端以及后续的check。(3)asic设计对时钟和复位更加重视。尤其是时钟,对asic的设计极其关键,复位对bist测试又很关键。asic在这方面都需要采用库来进行设计。asic通常不会用counter分频,这样会导致时钟不干净,除非是很低频的时钟。asic对于跨时钟域的信号处理也谨慎很多。对于clock的关闭和打开也需要严格检查。(4)asic要考虑scan测试和bist的问题,所以设计的时候还需要为sram做bist插入,需要为scan预留接口,虽然大部分都是工具干的,但是经常rtl作者也要手动做一些顶层工作,比如scan时钟的来源等逻辑。(5)fpga多用现成ip,需要考虑资源的均衡,不能把某一资源撑爆了,而且fpga存在资源浪费问题。asic很少考虑这种问题,asic考虑的永远是性能和功耗,在逻辑选择上除了sram,clk和复位相关,都是手写的,逻辑基本没有浪费,也更加紧凑。(6)asic时序预见性更好,可调整度高,所以可以写很大的逻辑。
fpga 和asic开发流程的区别:
第一步,首先是要实现功能,方式一般采用hdl描述,如verilog,vhdl。当然对于小规模电路也可以采用电路图输入的方式。
第二步,得保证电路功能的正确性,也叫验证,可以通过软件仿真,硬件仿真等方式实现。软件仿真一般比较直观,方便调试,因为每一时刻的状态都可以看到,这好比调试软件程序。硬件仿真一般就是指fpga验证,就是把电路用fpga实现,然后去跑,这个的好处就是速度很快,譬如一个视频解码核,解一帧图像出来,软件仿真就算用最好的服务器,也得跑上多少秒,但是在fpga中实现的话,基本就是多少 毫秒了。这对于一个需要大规模验证的电路来说,是必不可少的。前面两步对于数字ip来说,asic和fpga基本一致,除非一些实现技巧的差别。第三步,在你描述的电路正确性得到确保之后,你就要实现它,就是要把你写的那些代码变成实实在在的电路,如寄存器还是 与非门,这个过程就叫综合。由于电路规模日益复杂,一般最基本的电路就被做成了cell,如寄存器, 与非门,就不会再细化到用三极管怎么去搭的问题了。这一步对于fpga和asic来说就是最小的那个单元不一样。fpga是做好的电路,一般顾及通用性和效能,基本电路单元就做得比较大,如lut,就是由寄存器和 与非门构成,你可能只用了其中一个与门,但是还会占用这么一个单元。对于asic来说,两输入的与非门,就是一个简单的门电路,甚至为了区分 驱动能力和时序特性差异,还分了好几个等级,有的面积小,有的 驱动能力强。总的来说这一步就是工具把你的描述变成基于库的电路描述。第四步,你得到基于库的电路描述之后,就要考虑这些单元怎么摆放的问题,这叫布局布线。fpga的话连线资源有限,所以需要不断地调整,在保证时序要求的情况下,把你的电路映射到其固定的资源分布图中间。asic的话一般是根据周边电路需求,时序要求,把你的电路放到芯片的某个位置。在摆好之后还得考虑连线是否能通,各级延时是否能满足电路的建立和保持时间要求等等。第五步,输出。fpga就是输出一个配置文件,告诉 fpga芯片该怎么样去配置其电路,使其实现预期功能。该文件可以在fpga上电之后再由pc下载进去,也可以保存在flash里,电路上电之后自动配置。asic就是输出一个版图文件,告诉代工厂该怎么去腐蚀硅片,该怎么连金属等等。当然在这过程中间会有各种各样的辅助步骤。总的来说都是为了确保你设计的电路正确及正确实现你的电路。
精彩推荐至芯科技12年不忘初心、再度起航11月12日北京中心fpga工程师就业班开课、线上线下多维教学、欢迎咨询!fpga与cpu、gpu、asic的区别,fpga在云计算中的应用方案fpga数字信号截位分析和位宽设计扫码加微信邀请您加入fpga学习交流群
欢迎加入至芯科技fpga微信学习交流群,这里有一群优秀的fpga工程师、学生、老师、这里fpga技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!
点个在看你最好看
原文标题:fpga vs asic
文章出处:【微信公众号:fpga设计论坛】欢迎添加关注!文章转载请注明出处。
基于RFID的汽车混流装配线生产监控系统
芯盾时代获评北京市“培育助推和谐劳动关系企业共同行动”合格企业
顶配最高15万 苹果更新iMac一体机配置
电容式电压互感器接线图
North收购了被取消的英特尔Vaune眼镜项目
FPGA vs ASIC
华为助力海南电网构建以新能源为主体的新型电力系统
中国移动韩柳燕指出面向5G新需求的SPN技术具有三大特征
虚拟现实和增强现实的定义 虚拟现实与增强现实的区别和联系
红外线摄像头报价
pcb设计:过孔阻抗忽高忽低的问题
环路的跟踪状态和锁定状态的区别?锁相环路的锁定状态应满足什么条件?
魅族Pro7什么时候上市?魅族Pro7最新消息:魅族Pro7创新有余配置升级,携手魅族Pro7Plus7月发布
TU Delft已研发出世界上最小的微型自动驾驶仪
iPhone 6s Plus升级到 iOS10.2 测试跑分!
hdmi_hdmi是什么意思
百度计划在2018年上半年进行爱奇艺美国IPO,规模约10亿美元
线束加工入门基础
量子计算的六个问题你有吗
中国移动2018年至2019年4G皮基站集中采购项目中标结果正式发布