8

学fpga(hls之vivado、zynq和petalinux)

 1 year ago
source link: https://blog.csdn.net/feixiaoxing/article/details/124679757
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.

学fpga(hls之vivado、zynq和petalinux)

original.png
费晓行 newUpTime2.png 已于 2022-05-10 14:19:35 修改 articleReadEyes2.png 96

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

        很多同学学习了fpga,也用到xilinx的vivado,当然也用到了zynq。可是没有弄清楚这里面之间的关系,趁着这个机会正好可以好好梳理一下。

1、vivado

        vivado是开发fpga的工具。一般人谈到vivado都是说用它来开发数字ip,不管是进行功能验证,还是功能开发,大体都是这个思路。

2、zynq

        zynq是arm和fpga的结合体。xilinx设计zynq的目的,一方面是想利用arm来获取现有的linux软件生态果实,另外一方面又可以利用fpga搭建个性化的应用场景,一举两得。

3、vivado sdk

        除了fpga之外,vivado还提供了sdk软件。这个软件主要就是提供各种裸机系统的开发和验证,当然ip的验证也是少不了的。等裸机系统验证没问题之后,就可以port到linux了。

4、vivado hls

        一般熟悉硬件开发的同学都是用vivado开发ip,但是对于软件开发的同学来说,他们对数字电路未必那么熟悉。所以Xilinx的同学希望软件同学也可以用hls来开发对应的ip内核。这部分的开发工作和vivado并不冲突,因为vivado hls更侧重于算法的实现和优化,而vivado侧重于硬件协议的开发。一个block design里面既有hls的ip,也有vivado的ip,这都是很正常的事情。不过有一点需要注意下,vivado的ip软件驱动需要自己写,而hls的软件驱动可以自动生成。

5、petalinux

        petalinux是xilinx给zynq等soc提供的linux平台,一般需要借助于ubuntu来开发底层软件,并不能完全用vivado sdk来开发。不过用xilinx做上层app的开发倒是可以的,vivado sdk本身也支持交叉编译、makefile和linkfile的编写。涉及到uboot、kernel、fs和device tree的部分,最好还是在ubuntu下面来完成。

7、裸机系统开发的思路

        如果把zynq当然裸机使用也是可以的。通常先用vivado或者vivado hls构建好ip之后,再设计block design,将个性ip嵌入在block design里面。等到block design设计结束后,就可以用vivado sdk开发软件程序了。

8、linux开发的思路

        除了裸机系统外,另外一种开发方法就是linux开发了。通常,用vivado和vivado hls构建好ip之后,再搭建block design。这部分和裸机开发一样。等block design完成之后,下面就是用petalinux工具创建完整的linux bsp平台(包含linux启动的一切必要代码)。在bsp全部构建好之后,就可以用vivado sdk或者ubuntu开发上层程序了,主要是linux程序。

9、异构软件平台开发

        除了纯裸机系统和linux开发之外,鉴于zynq有双核arm,还可以构建rtos+linux的开发架构。这部分的工作主要是软件设计的更改,和ip无关。至于ip在裸机系统里面被调用,还是在linux里面被调用,这个也看需求了。不过,这种模式比较适合那些需要复用linux平台和实时运动控制的场合,有点类似于arm+mpu的场景,整体来说也是非常合适的,再加上ip做硬件加速、拓展,只要设计得当,效果应该是非常不错的。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK