当前位置: 首页 > ai >正文

ZYNQ 纯PL端逻辑资源程序固化流程

ZYNQ 纯PL端逻辑资源程序固化

ZYNQ的程序固化流程比传统的FPGA固化流程复杂很多,Vivado生成的bit文件无法直接固化在ZYNQ芯片中。因为ZYNQ 非易失性存储器的引脚(如 SD 卡、QSPI Flash)是 ZYNQ PS 部分的专用引脚。这些非易失性存储器由 PS 的 ARM 处理器进行驱动,因此需要将 bit 流文件和 elf 文件(软件程序的下载文件)合成一个 BOOT.BIN,才能进行固化。

本文以按键控制LED亮灭的程序为例,将代码固化至开发板上的QSPI FLASH中。

  • 硬件平台:正点原子领航者 ATK-DF7020P
  • 软件平台:Vivado 2020.2
  1. 正常的开发流程将可综合的RTL代码编写完成,确定代码功能正确。本例中只有一个模块。
    在这里插入图片描述

  2. 点击侧边栏PROJECT MANAGER-IP INTEGRATER-Create Block Design选项
    在这里插入图片描述

  3. 在弹出的窗口中输入合适的名称,如system,随后点击OK
    在这里插入图片描述

  4. 点击Diagram窗口中的按钮
    在这里插入图片描述

  5. 在弹出的窗口中找到ZYNQ7 Processing System,回车选择
    在这里插入图片描述

  6. 双击出现的ZYNQ处理器模块
    在这里插入图片描述

  7. 由于纯PL端的开发不涉及与ZYNQ处理器的通信,不需要使用到AXI总线,因此需要将总线接口关闭。
    在这里插入图片描述

  8. 因为打开IP核界面,按下图所示配置SPI FLASH外设。因为程序是固化在FLASH中的,因此,必须要对其进行配置。
    在这里插入图片描述

  9. 然后配置DDR3。根据板载的DDR芯片选择相应的型号,本例选择的是MT41K256M16 RE-125
    在这里插入图片描述

  10. 点击OK结束配置

  11. 点击Source,右键需要固化的模块,选择Add Module to Block Design,或者直接左键按住模块名称,拖入中间图形化界面中。
    在这里插入图片描述

  12. 点击Run Connection Automation进行自动连线
    在这里插入图片描述

  13. 在弹出的界面中,勾选需要自动连线的模块,确认时钟源为ZYNQ FCLK端口提供的50MHZ时钟
    在这里插入图片描述

  14. 完成后的界面如下
    在这里插入图片描述

  15. 选择需要引出的端口,右键端口选择Make External选项
    在这里插入图片描述

  16. 全部完成后,点击Run Block Automation
    在这里插入图片描述

  17. 弹出的窗口直接点击OK
    在这里插入图片描述

  18. 点击红框中的按钮进行验证,如果出现绿色框中的弹窗,说明验证正确。如果出现错误请检查连线。
    在这里插入图片描述

  19. 右键Sources中的Design Block文件,选择Generate Output Products选项
    在这里插入图片描述

  20. 直接点击generate
    在这里插入图片描述

  21. 完成后,右键Sources中的Design Block文件,选择Create HDL Wrapper选项
    在这里插入图片描述

  22. 保持默认,点击OK
    在这里插入图片描述

  23. 出现顶层文件后,按常规操作进行引脚分配
    在这里插入图片描述

  24. 分配完成后,关闭Elaborated Design界面,按常规流程生成bit文件。随后点击File-Export-Export Hardware选项
    在这里插入图片描述

  25. 选择Include bitstream选项
    在这里插入图片描述

  26. 选择合适的导出位置和导出的文件名,默认也可。点击Finish结束
    在这里插入图片描述

  27. 之后打开Vitis。选择合适的文件夹,新建应用程序
    在这里插入图片描述

  28. 点击Create a new platform from hardware,找到刚才导出的文件
    在这里插入图片描述

  29. 为工程命名,本例为FSBL
    在这里插入图片描述

  30. 保持默认
    在这里插入图片描述

  31. 选择Zynq FSBL模板
    在这里插入图片描述

  32. 直接右键应用工程名,点击Bulid Project
    在这里插入图片描述

  33. 左键单击系统工程名后,点击Xilinx-Create Boot Image
    在这里插入图片描述

  34. 会弹出以下窗口,检查无误后,点击Create Image。如果没有自动填充文件,则说明没有点击系统工程名。如果显示找不到elf文件,说明没有编译,需要先Bulid Project
    在这里插入图片描述

  35. 生成成功后,点击Xilinx-Program Flash
    在这里插入图片描述

  36. 将JTAG和电路板相连,确保ZYNQ芯片启动模式处于JTAG模式。电路板上电后,点击Program。蓝色框中的选项,可选可不选。
    在这里插入图片描述

  37. 写入完成后,电路板断电,断开JTAG,将ZYNQ启动模式调整为QSPI模式后,重新上电就能看到固化成功后的效果。

http://www.xdnf.cn/news/3226.html

相关文章:

  • AM剪辑软件汉化版:简单易用,开启视频创作之旅
  • 5G技术如何提升智能家居体验:让家更聪明,生活更智能
  • Kubernetes(k8s)的API Server 组件原理与结合生产实战教程
  • 上位机知识篇---ARM 汇编语言与寄存器深度讨论
  • 【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理
  • UDP数据包和TCP数据包的区别;网络编程套接字;不同协议的回显服务器
  • Android短信监控技术实现:合法合规的远程采集方案
  • 计网_PPP协议
  • CMake中的“包管理“模块FetchContent
  • Android Kotlin 项目完整集成 Bugly 异常监控指南
  • react学习笔记4——React UI组件库与redux
  • 《数据结构初阶》【顺序表/链表 精选15道OJ练习】
  • Python 与 MongoDB 深度融合:全流程数据库操作指南
  • 二、OrcaSlicer用户预设
  • 数据结构学习篇——哈希
  • 第六章 进阶07 莹姐做产品
  • 瑞昱点屏芯片RTD2785T带旋转功能
  • select,poll,epoll区别联系
  • Verilog仿真模块--真随机数生成器
  • 【dify—5】Dify关联Ollama
  • GD32F407单片机开发入门(十九)DMA详解及ADC-DMA方式采集含源码
  • 3d-bat安装
  • 智能体-CyberTask Orchestrator设计概要(V4.1超长版)
  • Kubernetes 与 Service Mesh 的集成
  • 黑苹果显卡免驱教程:蓝宝石RX580刷成RX570详细步骤(附工具与注意事项)
  • 2025华东杯A/B/C题解题思路+可运行代码参考
  • 关于我的算法文章学习路线
  • 虚实结合赋能嵌入式教育:基于嵌入式仿真实验教学平台的智能门禁系统实验深度解析
  • 巧用虚拟现实技术,解锁模拟训练高效密码
  • 关于杰理ac791切换版本, git clone下来仍然是最新版本问题