asic与fpga
不知道你具体的问题是什么
?
个人感觉FPGA主要部分在前端,一般做FPGA都是从代码入手,后端的各种工具以及设计,FPGA基本都帮做了。
而ASIC主要偏后端设计,基本是从网表文件往后走,后端工具好多都要学。
FPGA里的资源都是固定的,比如Memory, Dsp等,如果要移植到ASIC,那么你就要改变对FPGA硬件结构的依赖性,代码要写得符合ASIC结构要求。
ASIC需要考虑更多的因素,FPGA不用考虑
首先,fpga代码和asic代码风格中一些特别需要注意的,比如复位、状态机尤其是门控时钟;
其次,asic中的memory,fpga代码中的fifo和ram核是不可用的,那么我fpga代码中的fifo核是用ram代替比较好还是用verilog代码写fifo实现好一些?
最后,asic中的前段和后端都可以分享一下呀。
同楼上的回复,还有fpga代码验证中比较好的建议呀,像模型的建立、CUP的验证、MAC的验证、SPI总线或IIC总线的验证等
嗯,谢谢您的回复,您用的后端工具是什么?
我不做ASIC的,只是把FPGA代码改好生产网表文件交个专门的单位去做,
另外FIFO最好是自己手动写代码,控制双口RAM来实现,包括异步与同步,
因为移植ASIC没有对应IP核。
另外ASIC开发就是时钟网络,复位网络,以及代码风格更严谨些,前端跟FPGA比就这差别。
哦,好的,谢谢!还处在验证阶段,没有生成对应的网表。
ASIC和FPGA,现在可能最好的趋势是用FPGA来设计ASIC,好像以前了解过关于ALTERA有设计ASIC的fpga。
FPGA主要是IP特性与asic有差别,如内部ram,外部接口控制器等IP。FPGA代码切到asic上后,需要替换IP,且IP端口往往与原来FPGA上的不一致;另外IP行为上也会有一些不一致,在使用上也要注意。
解决了IP的替换问题,功能上就没问题了。
后期为了减少单片芯片成本,可以做做面积的优化,特别是ram的使用上(一般比较大的项目ram占总面积70%左右),由于FPGA的ram都是一些特定大小的通用ram,不管是当单口,简单双口或双口用,都是一样大的,而且一定范围的bit规格内都会一样大,但是asic的ram就差别很大,要了解asic的ram面积特性来做相关的设计改动。
多学多练
好的,谢谢您的回复,对我的作用挺大的,我们会注意IP和ram的使用。
