汇集网友智慧,解决技术难题
FPGA verilog SoC设计
赞0
评论
2021-01-28
点击图片添加到编辑器内容中
点击文件名将附件添加到文章中
提交
tyw
315个答案
天意无罪
284个答案
xch
203个答案
jjjyufan
197个答案
coody
183个答案
LcwSwust
136个答案
chunyang
135个答案
呐咯密密
108个答案
赞0
但是还是稍微会有点差别:比如:1、FPGA的verilog代码中,可以对变量赋初值,但是SOC中,这种就不行。2、不同家族的FPGA,写代码时,会有不同家族的verilog代码规范;3、同一RTL级verilog代码,不可能在任意FPGA上跑,多多少少都要更改一点。能复用的是IP core,但是FPGA本身结构关系,自身也有由Xlinx或者Altera发布的IP core,在Vivado或者Questios中起作用。这些FPGA例化的IP core,是会随着不同FPGA的不同而不同的。(其实这一段有20%瞎猜的成分,需要进一步验证)
不过RTL级verilog代码,就电路功能实现这一块,不管是FPGA还是SOC都是一样的。所以,有时FPGA里面的验证例子能够给我们一个很好的参考。
换句话说,在FPGA上使用过的RTL级verilog代码,稍微改一下是可以拿过来做SOC芯片设计。不同点在于,在FPGA上时,对verilog代码处理的工具和方式,和与设计SOC时,对verilog处理的工具和方式,有所不同。并且SOC设计,还要考虑面积,功耗,布线等等这些问题。(其实FPGA和SOC的RTL级verilog代码的编写,是完全相同的:从框架设定,功能划分,到功能实现。只是FPGA包含一些固定结构(这些固定架构被包含在了框架设计中),而SOC更加依赖框架)
关于SOC开发和FPGA开发,一些区别。这个知乎回答挺棒的,推荐:SOC开发和FPGA开发,流程的一些区别。
从网上介绍的FPGA开发流程,以及SoC设计方法与实现(第二版)书中提到的SOC设计流程,我们可以发现,SOC设计,和FPGA的开发,其实前端流程是一样的。因为不管是SOC设计还是FPGA开发,都是对硬件的描述。而SOC是多了后端设计,包括具体的面积,布线,功耗等等,而FPGA的后端设计,是被综合到软件里面去了,比如Quartus或Vivado。
在前端设计,基本的流程是:先有一个针对特定软件(e.g. CNN)的功能架构,以及对应的更小模块的功能架构。功能架构划分好后,用verilog进行功能实现(在这一步里面有IP core知识),然后验证并生成电路图。例子:1、MIT的Eyeriss神经网络加速器,verilog的实现:Eyeriss论文、Eyeriss代码 2、Georgia Institute of Technology (佐治亚理工学院),美国三大理工院校之一,针对DNN的FPGA解决方案:DNNweaver,verilog实现:DNNWeaver论文、DNNWeaver代码
在设计好后,FPGA对应下的,就是输出一个配置文件,告诉FPGA芯片该怎么样去配置其电路,使其实现预期功能。该文件可以在FPGA上电之后再由PC下载进去,也可以保存在Flash里,电路上电之后自动配置。而SOC/ASIC就是输出一个版图文件,告诉代工厂该怎么去腐蚀硅片,该怎么连金属等等。
评论
2021-01-28
您需要登录后才可以回复 登录 | 注册