关于vitis2019.2固化程序到SD卡和qspi flash的补充

记录一下最近在调试zynq7020时遇到的关于固化程序的问题与要点

  我前期利用zynq7020的板子做了一个简单的lcd显示界面,用来显示三串数字和单位,方便后面测量信号时进行上电调试,程序调好了,通过jtag下载也没问题,到最后一步固化程序到SD卡中时遇到了问题,最后几经波折解决了,特此记录。
场景说明:
  1.开发环境: vivado2019.2 和 vitis2019.2
  2.所需功能只使用了PL部分的资源,且PL部分为.v文件和rom ip.
遇到的问题:
  1. 在原工程中引入PS zynq的block design后导致文件混乱
  2. 输出的hadrware 文件 (.xsa) 无法被vitis使用。
问题2是最终要解决的,但是是由问题1引起的,问题1的关键是理解PL和PS部分的文件关系.

 参考正点原子zynq的程序固化教程以及网上其他的教程,要固化程序必须要加入zynq的IP,并使能SD或者qspi等控制器模块功能。引入zynq IP的一般步骤是新建design block模块图文件,再加入ZYNQ IP进行配置,再generate output file,接着创建 HDL wrapper,最后export出Hardware文件时勾选bitstream。
但是工程前面已经有了lcd的顶层文件及多个子文件,且全是verilog文件,再添加block design后PS和PL部分如何合并,HDL wrapper该如何创建,要不要把原来的PL部分也生成block后合并到一起打包?
答案是原PL部分verilog代码保持不动,仅对新添加的包含zynq IP的block design文件生成 HDL wrapper,注意!注意!注意!此时会有两个顶层文件,如果要更新PL部分lcd的bitsteam文件,就把lcd的verilog文件设为顶层,然后生成比特流,如果要输出含有比特流的硬件文件给后面vitis固化,则必须把HDL wrapper设置为顶层文件后再进行export!千万不能在原PL部分的顶层文件下输出xsa文件,否则vitis无法创建!

在这里插入图片描述

  1. 上述删除线部分,对SD卡来说是正确的,实际上在下载到qspi flash芯片时PL部分是不行的,跑不起来。
  2. 正确的做法是在vivado自动生成的PS顶层文件design1_wrapper.v(生成wrapper时的文件)中再把PL的顶层例化进去(verilog例化没问题,我在生成block design模块时不行),再编译生成比特流,导出.xsa。

在这里插入图片描述

  3. 补充一点,SDK 2018中,需要创建两次工程,而在vitis2019.2中仅需要一个fsbl模板工程即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值