SLW
好久没用vivado了,最近有事重新回来看了看,对于新版本已经不知道怎么用了,于是就摸索了一下,写一篇帖子,以作记录。
一、2018与之后的版本的不同
2018之后的版本将硬件和软件部分进行了分离,我感觉不是很舒服,可能对厂家比较有利吧。之前是需要将比特流导进去就行,好久没用了,具体忘了。2019及以后的版本,前面的流程都是差不多的,一直到生成比特流。之后需要根据硬件生成一个xsa文件,这个文件的作用就是在vitis里生成platform,工程就建立在platform之上。
二、vivado中的工作
1.搭建block工程,生成顶层文件
最好Uart也打开,方便调试。一定要注意DDR的选型!不然可能在vitis里会报内存错误,类似Memory read error at 0xF8006018. AHB Memory access port is disabled,那么又得重新综合一遍。
右键那个design文件,有个create HDL wrapper,生成顶层文件。当然,也可以不搭建block,直接写Verilog代码调用。目的都是一样的,生成顶层文件。
2.综合、布局布线、生成比特流文件
没什么好说的,点这个就行。
3.生成xsa文件
FILE->Export->Export Hardware
如果用到了PL部分,就选上include bitstream
三、Vitis中的工作
我们已经得到了xsa文件。
1.打开vitis,选择工程位置
点击launch
可以看到这里有三个创建project选项。platform project是一个工程的平台工程,通过xsa文件生成,也就是你在vivado里设计的工程,它在vitis里作为一个平台,其上搭建application project。我们选择任意一个都行。
选择application project,如果没有platform的话,软件会引导你生成platform。
选择platform project的话,会先创建platform,然后再手动创建application project。
也就是说,我们在vitis里的工程,就是application project,而我们又必须使用xsa文件生成一个硬件平台承载application project。这就是两个工程的区别和联系。
我在这里直接生成application project。之后就是选择platform,但是我们还没有platform,于是点击右边的create a new platform from hardware。
点击browser,找到vivado生成的xsa文件,
点击next后,系统会生成platform,并且会引导我们开始创建application工程。我们给工程取名之后,一路next,最后选择hello world工程,我感觉会好一些。
创建完毕!
四、注意事项
1.注意DDR的选型。
2.如果用的是开发板,一定要注意启动方式。
3.最好勾选UART,但是要看后面的EMIO和MIO对不对。
如果报Memory read error at 0xF8006018. AHB Memory access port is disabled或者是Memory APB之类的错误,可能就是DDR选型不对或者启动方式不是从JTAG启动的。