完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
1、SOC设计前端流程
随着SoC的设计逐渐庞大,SoC从设计到验证的诸多流程有待探索。 一本系统性的书籍还是挺好的,推荐书籍:《SoC设计方法与实现》郭炜著:下载链接,《UVM实战》:下载链接 2、为什么verilog可以描述硬件? verilog只是把硬件对应逻辑块的功能用软件的形式给模拟出来了。然后用这个verilog代码工程,来仿真整个SOC系统。仿真验证通过后,才到真正制定电路这一步。 对这个问题疑惑的话,是因为SOC流程还没弄懂。不知道SOC电路是怎样出来的。知道这个问题的答案,就知道verilog在SOC设计中的定位了。 3、在SOC设计中使用verilog,和FPGA为对象使用verilog,有什么区别? 首先说明,关于RTL级的verilog代码,只是行为级描述,对功能的实现而已。所以,不管最后是用于设计SOC,还是用于FPGA,这和RTL级verilog代码的编写,没有绝对关系。 但是还是稍微会有点差别:比如: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就是输出一个版图文件,告诉代工厂该怎么去腐蚀硅片,该怎么连金属等等。 4、SOC设计和FPGA开发这么像,那有什么区别呢?FPGA的代码例子,是不是都可以拿去流片? 是的,用于FPGA的代码例子,理论上都可以用于SOC设计,并拿去流片,因为verilog的代码就是硬件描述语言。至于为什么不拿去流片,是因为流片除了要对硬件相关东西的限制考虑外(面积、功耗、布线、成本等等),把这个东西拿到工厂流一次片太贵了。如果有1K+/月的需求量,可以考虑去流片。不然只需要用FPGA上去顶一下就可以了。 至于SOC流程和FPGA流程的不同之处 第一点:工具集的不同。 SOC设计及验证的工具集是:1、SOC流程对对应的工具、2、SOC开发和FPGA开发,流程的一些区别(很细致)、3、ASIC/SOC开发工具集及流程 FPGA程序设计的工具集是:FPGA的是集成开发环境。如英特尔家族的Quartus II、赛灵思家族的ISE或Vivado。不同FPGA厂商对自家FPGA板提供软件支持。1、FPGA工具,以及为什么只有Intel和Xlinx两大家族的FPGA板;2、FPGA工具及学习路线;3、FPGA的一些经验和流程。这些集成开发环境,包含从代码编辑、编译、仿真验证、布局布线到最后生成FPGA可识别的配置文件,这些所有流程。 第二点:使用频次不同 FPGA可以高频次的擦写,有些特定的电路,用FPGA更合适,因为SOC流一次片太贵,流片了又只用一次会很浪费;而FPGA实现了该电路,用过一次后,该FPGA可以下载其他配置文件,再进行其他操作,多么经济的选择。 5、软件安装 1、Ubuntu系统下Synopsys VCS DC PT安装文件下载及破解方法 2、带有VCS、ICC、DC和ICFB等软件的Redhat 3、一个小时搞定VCS安装。 |
|
|
|
只有小组成员才能发言,加入小组>>
904 浏览 2 评论
12827 浏览 0 评论
4125 浏览 7 评论
2337 浏览 9 评论
2162 浏览 2 评论
457浏览 2评论
786浏览 2评论
904浏览 2评论
395浏览 1评论
623浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:41 , Processed in 1.058804 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号