学fpga(hls之系统开发)
Posted 费晓行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学fpga(hls之系统开发)相关的知识,希望对你有一定的参考价值。
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
对于zynq这样的开发平台,开发方法很多。你可以把它当作fpga,也可以当成是arm,当然也可以当成两者的结合体。此外,因为zynq里面集成了多核a9、a53,所以系统开发的模式就更多了,今天可以好好了解下。不过,因为最近芯片危机,zynq的供应是一个问题,这方面也要做一个好好的考虑。
1、纯pga开发
这个比较简单,就是把zynq当成纯fpga来开发。
2、纯arm开发
所谓的纯arm开发,就是忽略zynq中的fpga,并且只使用一个core核,比如一个a9。通过创建一个block design,添加zynq就可以实现这个目标。
3、arm+fpga+裸机系统开发
本身vivado给用户准备了很多的第三方IP,简单的有gpio、uart、spi这些,复杂的有ethernet mac,大家可以根据自己的需求灵活添加。注意,这里系统没有采用任何的操作系统,基本上就是一个裸循环的形式。当然,这里也仅仅使用一个arm核。
4、arm+fpga+freertos
和3相比,除了把逻辑系统替换成freertos,其他都是一样的。
5、amp+fpga
除了正常的rtos之外,zynq还支持amp开发。所谓的amp,就是非对称多处理器开发。比如说,对于zynq双核a9,其中一个core负责和外面的ethernet、串口通信,一个core负责运动控制,这都是可以的。此时,fpga可以帮助core减轻一步分负担,比如负责外面数据的收发和预处理,类似于ad、da这种。
注:
core0和core1的bsp代码是一样的,但是两者用USE_AMP做了区分,详细的流程可以参考https://blog.csdn.net/lichen_6398/article/details/81660764
6、arm+fpga+linux
和前面的处理方法相比,这种处理方法也是比较通用的一种方法,它的最大优势就是可以复用linux现有的开源软件平台。当然,构建起来也稍微复杂一起,不过因为有了petalinux这些工具,所以fsbl、bit、uboot、linux kernel、file system这些软件包的构建只要按照流程来一般问题不大。如果希望利用xilinx sdk开发linux应用程序也是可以的。
7、arm+fpga+linux+rtos
到目前为止,这或许是最复杂的一种使用方式了。这种情况下,两个arm core,一般一个跑rtos,一个跑linux,当然这中间也使用到了fpga。fpga可以给mcu作为外设采集信息数据使用,也可以给linux作为算法加速使用,这取决于具体的使用场景。这种使用方法要求使用方自己对os、fpga、linux有深刻的理解,一般要求较高。
注:
参见链接https://blog.csdn.net/weixin_41922484/article/details/103663289
8、其他
目前芯片危机下,其实zynq的供应是个很大的问题。方案设计出来了,但是不能及时生产出来也是不足取的。所以在设计zynq的时候,最好有一个备选的方案。比如可以考虑利用分列式的arm+fpga来进行开发板的设计,这些都是可以考虑的。此外,可以观察下,除了xilinx之外,其他fpga有没有类似的方案可以提供。总之一句话,千万不能吊在一棵树上。
开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系以上是关于学fpga(hls之系统开发)的主要内容,如果未能解决你的问题,请参考以下文章