ASIC的FPGA原型 验证
我们上课学的FPGA的使用时直接输入Verilog代码,编译,分配管脚,下载,貌似很简单。(代码是modelsim的)
而我在网上看的一些资料说输入的是综合后的网表,而且由于FPGA与ASIC的不同,可能要修改代码。
对于这个直接输入代码和输入网表,有什么区别呢?是不是网表输入验证更加的准确,还有就是FPGA有没有导入工艺库,所以怎么验证时序方面的问题。
没人!
這是兩種流程, 其實都可以通的...
1. 即使是verilog輸入, 也是要經過synthesis的步驟, 產生netlist.
2. 至於netlist輸入, 則是有可能經過3rd-party的synthesizer (Synplify, Mentor Precision etc.), 針對target的FPGA (Xilinx, Altera etc.)產生netlist (通常是EDIF格式), 再進入FPGA implementation流程.
3. 假如你說的netlist是ASIC netlist, 然後拿來implement FPGA, 個人認為這種情況比較少發生, 畢竟standard library差異太大. (除非有工具做轉換)
可能你理解有误吧,像QuartusII和ISE这样的FPGA布局布线工具是接受网表输入的,前者是.vqm后者是.edf。这样的网表通常是synplify pro 或precision rtl综合得到。当然,新版的synplify支持网表的转换。不过种情况非常少见。如果你是指仿真,那就是指网表仿真了。
最近也在做fpga验证,不太懂,不知道正规的验证方法是什么,我现在就是把asic的代码用fpga的工具综合,然后加激励看结果
不懂,坐等牛人。
想学习fpga的飘过~
看看设计流程吧
FPGA一般比如ISE,都有配套的mapping syn工具可以把代码转成实际的网表后再烧写到FPGA片子上去。
ASIC的这些步骤都是人工定制做的,综合也在这里面。但是ASIC与FPGA在芯片上的结构不太相同,FPGA用到了非常多的LUT(查找表),RAM等固化结构。而ASIC的结构不会有FPGA类似的。故一般ASIC的综合后网表和FPGA综合后网表差别较大,兼容性不好。
所以ASIC的代码转到FPGA时,需要FPGA重新综合一下成为网表再烧写入FPGA片子中即可。
以前我们用专门的综合工具是为了更快,面积更小点。其实只用ise什么的也可以。
你好,请问使用ise综合之后哪个文件进入后面的布局布线呢?
现在的FPGA综合工具已经很好用了,一般不需要第三方工具,如vivado;现在工作的公司,都是直接用vivado导入verilog源代码,然后综合,布局布线;受FPGA资源限制,一般会对芯片代码进行裁剪,不然布线很难布出来;ASIC综合出来的网标,是寄存器加组合逻辑门(与门,或门等),而FPGA综合出来的网标是寄存器加lut(查找表),形式完全不一样,应该不会直接用ASIC的网标导入到FPGA实现中,除非有转化工具,但估计这转化效果不大好,毕竟FPGA综合工具会根据自身器件特点进行优化;知道的就这么多,希望有帮助
“输入的是综合后的网表,而且由于FPGA与ASIC的不同,可能要修改代码”
ASIC设计里有些IP可能没提供RTL源代码,或是加密的RTL源代码,要走FPGA流程就只能用DC输出网表了。
修改代码主要是clock/rest处理,因为ASIC clock/reset方案会比FPGA复杂很多;而且FPGA工作频率大概率比ASIC低,有些RTL也需要做修改。此外ASIC里一些模拟模块如DDR PHY,USB PHY, Memory要替换成FPGA能支持的,对应控制器的接口代码也要修改。
你可以看看Synopsys HAPS,Cadence Protium相关的white paper和application note,里面应该提到过这个问题的