ASIC和FPGA,选择哪种设计比较好?-FPGA新闻资讯论坛-FPGA CPLD-ChipDebug

ASIC和FPGA,选择哪种设计比较好?

 

 

很多人都觉得同样都是写Verilog的,ASIC和FPGA其实并没有什么区别,其实并不是这样。那么ASIC和FPGA,选择哪种设计比较好?接下来IC修真院就来为大家细细分析。

ASIC (Application Specific Integrated Circuit),即专用集成电路,是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。

FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL(可编程阵列逻辑)、GAL(通用阵列逻辑)等可编程器件的基础上进一步发展的产物,FPGA是一种可以重构电路的芯片,是一种硬件可重构的体系结构,通过编程可以随时改变它的应用场景。

 

FPGA的特点:

加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此FPGA能够反复使用。理论上,FPGA允许无限次的编程。

FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。

FPGA内部有丰富的触发器和I/O引脚。

快速成品,可以被修改来改正程序中的错误和更便宜的造价。

用户不需要介入芯片的布局布线和工艺问题,而且可以随时改变其逻辑功能,使用灵活。

ASIC的特点:

面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。

ASIC需要较长的开发周期,风险较大,一旦有问题,成片全部作废,所以小公司已经玩不起了。

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时序预见性更好,可调整度高,所以可以写很大的逻辑

不同情况选择哪种设计比较好?

考虑到时间问题, ASIC设计流程漫长,大概一年左右一个周期,而FPGA设计一般几个星期或者一两个月就能完成,如果想快速看到成效选择FPGA设计会比较好。 在性能方面,ASIC设计出来的芯片比较好,完整的定制,性能更加稳定。ASIC (Application Specific Integrated Circuit)本身就是一种专用集成电路芯片。

涉及设计成本,ASIC设计完成一般会花费几百万到几个亿不等,但如果产量多,那么单块ASIC芯片成本就会低,特别便宜的芯片还有2块左右的;而FPGA设计完成有时候几百块钱就能搞定,如果产量多那单块成本就摆在这了,最后也是一笔巨资。

所以,小批量生产和使用用FPGA设计比较占优势,反之大批量生产和使用ASIC占优势。 其实,国内很多公司刚开始市场发展还不稳定时,都是用的FPGA设计;当有了一定市场和抗风险能力后,才开始用ASIC设计。

 

 

请登录后发表评论

    没有回复内容