从FPGA design改做IC design应该注意哪些?
很多了,有听FPGA转ASIC的师兄说非常之痛苦,全部得重新学。
两者设计思路不一样吧,FPGA用lut实现,时钟频率低,时序要求低
做惯fpga的人去做asic前端设计时,对自己的设计在后端造成的影响应该是没什么概念的。必须重头学起
原理是差不多的,主要是经验的积累
原理差不多,但是注意点不太一样
还好,转起来还算快,最主要是think hardware
最重要的一点时,FPGA你的逻辑不怎么验证,就上板子调试.就算出了错,还可以经常改.
IC一出去,几十万,几百万,几千万资金就命悬一线了.
所以FPGA产品量产的时候,你晚上还能睡得着. IC tapeout出去,估计你就睡不好了.
从这个方面去思考,你应该就能知道,要注意哪些方面了.
1) 一个代码要规整,有较好的coding style,否则别说验证工程师看不懂,就过N年后,你自已都看不懂,这种不可维护的代码,就属于垃圾代码.
2) 以前设计FPGA的时候,时序可以凑一凑,同步逻辑设计考虑了,但是不太严格.在IC里面,你就要步步小心了.没有经过完全rule check的code,你敢拿去tapeout么.
3) 以前FPGA的时候,你大概的仿真一下,放到板子上调过,就算OK了.但是在IC的时候,你不好好验证,提高验证覆盖率,这是不行的.如果不做静态时序分析signoff,那么你已经落后产业15年了.靠仿真做signoff的情况,已经12年不太多见了.
4) FPGA里面的时钟部分,时钟树都是固定的.基本上没有太多发挥余地.但是在IC里面,clock generator, low-power design, reset generator, system controller之类的模块,突然变的很重要了.因为你tapeout出去,就不可能做大的修改了,否则投资人将毁在你的手里.
........
今天就说这么多.
楼上.讲的不对,你可以讲讲.
如果只是一句"讲的不对"了事,也有点太随意了吧.
(发现楼上没有了.大概被删除了.)
从代码编写上是一样的,但是从流程上,FPGA设计只是IC设计的一个小的子集。
gordon_m说的都是事实。
楼上几位说的很好,但是反过来看我们公司基本上就是拿高端FPGA做ASIC的原型验证机,其设计方法其实和FPGA的设计流程差不太多。这样应该是很不规范的吧。
原型验证是要做的,可以检验功能性的错误
多谢,牛人啊。
继续聊聊.
5) RTL仿真过后. PrimeTime timing check + Formal check( formality or LEC) 做signoff是目前最通行的流程.
做timing仿真很慢,覆盖率也很低所以通常在post-layout netlist + sdf back annotation的仿真,只是做一些重要信号的确认之用,例如时钟,复位之类的信号是否动作正常,目前并不能做signoff之用.
在很久以前,>=0.35um曾经是用verilog XL仿真结果做signoff. PT+Formality一个小时能做好的工作,用verilog XL flow可能要两周左右,才能把corner case仿完,而且coverage通常还比较低.
FPGA设计目前也在朝这个方向走,但还并不普遍.FPGA的timing分析,也依赖于Quartus,ISE之类的FPGA工具,用PT+formal check还不算太主流.
对于有经验的FPGA设计工程师,即使不做timing仿真和formal check,只做RTL仿真+Quartus/ISE timing分析,通常也是可以做到满足设计要求的.
...........
原型验证是一定要做的,不知道你们公司是拿的什么板子做的,好像Synopsys的HAPS板很不错
