zynq启动和程序固化流程

普通FPGA启动

FPGA的启动方式主要包含主动模式、被动模式和JTAG模式。

主动模式(AS模式)

当FPGA器件上电时,它作为控制器从配置器件EPCS中主动发出读取数据信号,并将EPCS的数据读入到自身中,实现对FPGA的编程。这种模式下,配置信息储存在EPCS等非易失性存储器中,适用于不需要频繁升级的场景。EPCS(Erasable Programmable Configurable Serial)是一种串行存储器,专门用于存储和加载FPGA的配置数据。

被动模式(PS模式)

则是由外部计算机或其他控制器件如微控制器来控制配置过程。在此模式下,EPCS作为控制器件把FPGA当作存储器,将数据写入FPGA,以实现编程。该模式可以实现在线可编程,方便升级。

JTAG模式

是一种直接对FPGA进行编程的模式,由于其基于SRAM,断电后需要重新烧写,主要用于调试目的。JTAG接口包括TDI、TDO、TMS、TCK和可选的TRST信号线。

此外,还存在一些特定的启动方式,例如SPI闪存设备启动、micro SD卡启动和U盘启动。这些方法通过将配置文件存储在相应的介质中,然后让FPGA在上电时通过对应的接口读取配置数据来实现启动。

ZYNQ启动

ZYNQ 的启动是由 ARM 主导的,此流程包括 FPGA 程序的加载,可参考UG585文件。主要有以下两到三个阶段:

Stage 0 :在上电复位或热复位后,处理器首先执行 BootRom 里的代码,该代码用户不可更改,代码里包含了最基本的 NAND,NOR,Quad-SPI,SD 和 PCAP 的驱动。以及把 stage 1 的代码(FSBL 代码(First Stage Boot Loader))搬运到OCM 中,空间限制为 192KB。
Stage 1 : 当 BootRom 搬运 FSBL 到 OCM 后,处理开始执行 FSBL 代码。FSBL主要有以下几个作用:1.初始化PS端的配置,包括初始化DDR,MIO,这些配置来源于vivado工程中对ZYNQ核的配置。2.如果有PL程序,加载PL端的bitstream。3.加载bootloader或者bare-metal程序到DDR,然后执行该程序。
Stage 2: Second stage bootloader 是可选项,一般是在运行操作系统的情况下使用,比如u-boot。

程序固化

1.新建FSBL项目到工程中


选择zynq FSBL模版

添加FSBL工程后,项目会自动编译。

2.创建boot.bin文件。

选在需要bin文件和bif文件导出的路径

3.添加启动文件,主要有FSBL.elf的bootloader文件,hello项目elf的datafile,以及PL的bitsream文件,没有的话可以不添加。


点击创建creat image

查看文件是否生成

4.对flash进行烧录



相关推荐
今天你fpga了嘛2 天前
五、一个quad同时支持pcie和sfp两种高速接口的ref时钟配置
fpga开发
电子小白的每一天2 天前
FPGA开发——状态机的使用
vscode·fpga开发·fpga
千穹凌帝2 天前
SpinalHDL之仿真(八)
fpga开发
电子小白的每一天2 天前
FPGA开发——基于Quartus的工程建立以及下载仿真全过程
vscode·fpga开发·fpga
cckkppll2 天前
vivado MAX_NAMES
fpga开发
nwpu0617013 天前
modelsim仿真quartus IP
fpga开发
十三啊嘞3 天前
高速总线概述(二):高速总线技术要点(比特流高速数据传输,编、解码、CRC校验及扰码结构,链路同步)
fpga开发·串行高速总线
神仙约架3 天前
【INTEL(ALTERA)】当使用 F-Tile 以太网 FPGA 硬 IP 并启用自动协商和链路训练 (AN/LT) 时,为什么链路训练无法完成?
网络协议·tcp/ip·fpga开发
张明阳.3 天前
调用IP实现数据加速
fpga开发
爱奔跑的虎子3 天前
详解DDR3原理以及使用Xilinx MIG IP核(app 接口)实现DDR3读写测试
fpga开发·fpga·vivado·xilinx·mig·ddr3