将 .mcs 文件写入 Quad SPI 或 Linear BPI 闪存
大多数 FPGA/SoC 开发板都有用于非易失性存储的闪存设备。通常,它可以是 Quad SPI 闪存(串行接口)或线性 BPI 闪存(并行接口)。尽管它可用于存储任何内容,但它通常用于存储 FPGA 或 SoC 的配置(例如比特流、FSBL、U-Boot、Linux 内核)。如果正确设置了 FPGA 或 SoC 的启动模式,上电时它应该从闪存中读取,将比特流加载到 FPGA 中,然后加载并运行软件组件。
在这篇博文中,我们将介绍使用 Vivado 硬件管理器对开发板闪存进行编程的步骤。我将为 KCU105 板执行此操作,但我还列出了一些流行的开发板以及用于每个开发板的相应闪存设置。
如何对闪存进行编程
启动 Vivado。在欢迎屏幕上,单击“打开硬件管理器”。
为您的开发板通电并确保其 JTAG 端口已连接到您的计算机。
在硬件管理器中,单击“打开目标”,然后单击“自动连接”。
右键单击 FPGA/SoC 设备,然后单击“添加配置存储器设备”。
现在我们必须指定连接到我们特定开发板上的 FPGA/SoC 设备的内存部分。要为您的开发板找到内存部分,您必须深入研究用户指南或电路板原理图。为了帮助您,我在图片下方列出了一堆 FPGA/SoC 开发板的闪存名称(向下滚动)。
7 系列板卡
木板 | 类型 | 尺寸 | 部分 # | 闪存名称 |
---|---|---|---|---|
AC701 | QSPI | 32MB | N25Q256A13ESF40G | mt25ql256-spi-x1_x2_x4 |
KC705 | QSPI | 16MB | N25Q128A13BSF40F | mt25qu128-spi-x1_x2_x4 |
KC705 | BPI | 128MB | PC28F00AP30TF | 28f00ap30t-bpi-x16 |
VC707 | BPI | 128MB | PC28F00AG18FE | mt28gu01gaax1e-bpi-x16 |
VC709 | BPI | 128MB | PC28F00AG18FE | mt28gu01gaax1e-bpi-x16 |
ZC702 | QSPI | 16MB | N25Q128A11ESF40G | mt25qu128-spi-x1_x2_x4 |
ZC706 | 双 QSPI | 32MB | S25FL128SAGMFIR01 | s25fl128l-spi-x1_x2_x4_x8 |
Ultrascale/Ultrascale+ 板
木板 | 类型 | 尺寸 | 部分 # | 闪存名称 |
---|---|---|---|---|
KCU105 | 双 QSPI | 64MB | N25Q256A11ESF40F | mt25qu256-spi-x1_x2_x4_x8 |
KCU116 | 双 QSPI | 256MB | MT25QU01GBBB8ESF-0SIT | mt25qu01g-spi-x1_x2_x4_x8 |
VCU108 | BPI | 128MB | MT28GU01GAAA1EGC-0SIT | mt28gu01gaax1e-bpi-x16 |
VCU110 | 双 QSPI | 128MB | MT25QU512ABA8E12-0SIT | mt25qu512-spi-x1_x2_x4_x8 |
VCU118 | 双 QSPI | 256MB | MT25QU01GBB8ESF | mt25qu01g-spi-x1_x2_x4_x8 |
VCU118 | BPI | 128MB | MT28GU01GAAA1EGC-0SIT | mt28gu01gaax1e-bpi-x16 |
Zynq Ultrascale+ 开发板
木板 | 类型 | 尺寸 | 部分 # | 闪存名称 |
---|---|---|---|---|
ZCU104 | QSPI | 64MB | MT25QU512ABB8ESF | mt25qu512-spi-x1_x2_x4 |
ZCU102 | 双 QSPI | 128MB | MT25QU512ABB8ESF | mt25qu512-spi-x1_x2_x4_x8 |
ZCU106 | 双 QSPI | 128MB | MT25QU512ABB8ESF | mt25qu512-spi-x1_x2_x4_x8 |
ZCU111 | 双 QSPI | 512MB | MT25QU02GCBB8E12-0sit | mt25qu02g-spi-x1_x2_x4_x8 |
其他流行板
木板 | 类型 | 尺寸 | 部分 # | 闪存名称 |
---|---|---|---|---|
艺术A7 | QSPI | 16MB | N25Q128A13ESF40 | mt25ql128-spi-x1_x2_x4 |
PYNQ Z1 | QSPI | 16MB | S25FL128SAGMFI00 | s25fl128sxxxxxx0-spi-x1_x2_x4 |
PYNQ Z2 | QSPI | 16MB | S25FL128S | s25fl128sxxxxxx0-spi-x1_x2_x4 |
ZedBoard | QSPI | 32MB | S25FL256S | s25fl256sxxxxxx0-spi-x1_x2_x4 |
MicroZed | QSPI | 16MB | S25FL128SAGBHI200 | s25fl128sxxxxxx0-spi-x1_x2_x4 |
Z-转弯 | QSPI | 16MB | W25Q128BVFIG | mt25ql128-spi-x1_x2_x4 |
关于 Dual Quad SPI 的注意事项
您可能会注意到上面列出的闪存名称都以x1_x2_x4 或开头x1_x2_x4_x8。后缀用于双四路 SPI 接口,其中两个四路 SPI 设备连接到一个 8 位宽的接口。但是,仅仅因为连接了 2 个 Quad SPI 闪存,并不意味着您必须同时使用它们。如果您只想使用第一个 Quad SPI 设备,那么您应该使用x1_x2_x4后缀。
选择闪存设备后,系统会询问您是否要立即对配置存储设备进行编程。单击“确定”。
现在您需要选择.mcs和.prm文件来对闪存进行编程。请注意,就我而言,我在双Quad SPI 模式下对 KCU105 的闪存进行编程,这意味着我需要两个.mcs文件和两个.prm文件。如果您不使用双 Quad SPI 模式,则您只能选择每个文件中的一个。
单击“确定”后,Vivado 硬件管理器应该对您的电路板闪存进行编程并验证它是否正确编程。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !