2

学fpga(hls之系统开发)

 2 years ago
source link: https://blog.csdn.net/feixiaoxing/article/details/124906424
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

学fpga(hls之系统开发)

original.png
费晓行 newUpTime2.png 已于 2022-05-22 17:24:13 修改 articleReadEyes2.png 64

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        对于zynq这样的开发平台,开发方法很多。你可以把它当作fpga,也可以当成是arm,当然也可以当成两者的结合体。此外,因为zynq里面集成了多核a9、a53,所以系统开发的模式就更多了,今天可以好好了解下。不过,因为最近芯片危机,zynq的供应是一个问题,这方面也要做一个好好的考虑。

1、纯pga开发

        这个比较简单,就是把zynq当成纯fpga来开发。

2、纯arm开发

        所谓的纯arm开发,就是忽略zynq中的fpga,并且只使用一个core核,比如一个a9。通过创建一个block design,添加zynq就可以实现这个目标。

13fd5f96a6b549b7bd0c7ac2d218e743.png

3、arm+fpga+裸机系统开发

        本身vivado给用户准备了很多的第三方IP,简单的有gpio、uart、spi这些,复杂的有ethernet mac,大家可以根据自己的需求灵活添加。注意,这里系统没有采用任何的操作系统,基本上就是一个裸循环的形式。当然,这里也仅仅使用一个arm核。

43e824bef1b6427eb7b086e02eb208da.png

4、arm+fpga+freertos

        和3相比,除了把逻辑系统替换成freertos,其他都是一样的。

a39e8f9355c84c1f8fe30208d3132449.png

5、amp+fpga

        除了正常的rtos之外,zynq还支持amp开发。所谓的amp,就是非对称多处理器开发。比如说,对于zynq双核a9,其中一个core负责和外面的ethernet、串口通信,一个core负责运动控制,这都是可以的。此时,fpga可以帮助core减轻一步分负担,比如负责外面数据的收发和预处理,类似于ad、da这种。

2b30223753374c718bc7a0df6210015b.png

        core0和core1的bsp代码是一样的,但是两者用USE_AMP做了区分,详细的流程可以参考https://blog.csdn.net/lichen_6398/article/details/81660764

c9ca70aaf447438785d41dc8df5da8b0.png

6、arm+fpga+linux

        和前面的处理方法相比,这种处理方法也是比较通用的一种方法,它的最大优势就是可以复用linux现有的开源软件平台。当然,构建起来也稍微复杂一起,不过因为有了petalinux这些工具,所以fsbl、bit、uboot、linux kernel、file system这些软件包的构建只要按照流程来一般问题不大。如果希望利用xilinx sdk开发linux应用程序也是可以的。

8edb6908beed4014a6d3672ed9474309.png

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

        目前芯片危机下,其实zynq的供应是个很大的问题。方案设计出来了,但是不能及时生产出来也是不足取的。所以在设计zynq的时候,最好有一个备选的方案。比如可以考虑利用分列式的arm+fpga来进行开发板的设计,这些都是可以考虑的。此外,可以观察下,除了xilinx之外,其他fpga有没有类似的方案可以提供。总之一句话,千万不能吊在一棵树上。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK