当前位置:   article > 正文

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

vitis固化sd

记录一下最近在调试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模板工程即可。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/163025
推荐阅读
相关标签
  

闽ICP备14008679号