0. 配置模式概述

        Vivado设计过程中生成的bit流文件需要通过特定的配置引脚导入到FPGA中。专用配置引脚上的不同电压级别决定了不同的配置模式。可选的配置模式有:

    Master SPI x1/x2/x4    Master Serial    Slave Serial    Master BPI-Up x8/x16    Slave SelectMap x8/x16/x32    JTAG/Boundary Scan    Master SelectMap x8/16

        不管是哪种配置模式,配置数据都是存储在FPGA中的CMOS锁存器中,每次掉电后数据都会丢失,上电之后重新配置。但是选择一个片外存储器如SPI Flash存储配置数据,并设置相应的配置模式,上电后可以自动配置FPGA。

        UG470和UG570分别对7系列和UltraScale系列的配置方法做了详细介绍。本文只介绍在Vivado中的设置方法。每种配置模式都有一些相关的接口管脚,这些管脚可能分布在不同的I/O bank中。Bank0中有一些专用管脚用于所有的配置模式;UltraScale的Bank65、7系列的Bank14和Bank15包含了各种配置模式的专用管脚。

        但是,纯FPGA和ZYNQ有所不同,纯加载是通过外部FLASH,而ZYNQ 的FLASH 不是通过FPGA 加载的,而是通过ARM。所以,一般配QSPI X1 X4只有纯FPGA可配,ZYNQ一般只配置压缩和电压。

        另外,FPGA如果选择生成bit文件是QSPI X4的,如果在批量烧写完FLASH之后再贴装的情况下,需要工厂烧录器设置为x4的烧写模式。要不,贴装之后FPGA很有可能起不来。

1. 纯FPGA情况下

        如何在Vivado下设置BITSTREAM配置信息。这可以在综合或实现之后进行。借助如下操作:

打开综合后或实现后的设计

        依次点击Tools-> Edit Device Properties会弹出如下界面。

可以选择压缩bit流,这样后面固化时会快一些。

选择合适的固化速率,可以适当设置高一些(默认是3MHZ),因为固化本身比较慢;设置SPI 的bus width,因为flash使用的是QSPI,也即SPI4x(后面还会设置此参数),所以这里要设置为4。

选择编程模式,因为我们是将程序固化到flash中,以后上电自动从flash读取程序,所以这里要勾选上。JTAG是一直且默认勾选的。

点击OK进行下一步。点击保存

在约束文件中会多出这几句即可

或者直接在约束文件中插入代码片段:

set_property CFGBVS VCCO [current_design] #当 CFGBVS 连接至 Bank 0 的 VCCO 时,Bank 0 的 VCCO 必须为 2.5V 或 3.3V

set_property CONFIG_VOLTAGE 3.3 [current_design] #设置CONFIG_VOLTAGE 也要配置为3.3V

set_property BITSTREAM.GENERAL.COMPRESS true [current_design] #设置bit是否压缩

set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] #设置QSPI的加载时钟

set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] #设置QSPI的位宽

set_property BITSTREAM.CONFIG.SPI_FALL_EDGE Yes [current_design] #设置QPSI的数据加载时钟边沿

2. ZYNQ情况下

如果你是ZYNQ 的FPGA,由于ZYNQ 的FLASH 不是通过FPGA 加载的,而是通过ARM,那么需要简单配置一下:

打开综合后或实现后的设计

        依次点击Tools-> Edit Device Properties会弹出如下界面。

可以选择压缩bit流,这样后面固化时会快一些。

或只要以下几行代码:

set_property CFGBVS VCCO [current_design]

set_property CONFIG_VOLTAGE 3.3 [current_design]

set_property BITSTREAM.GENERAL.COMPRESS true [current_design]

如果你是ZYNQ UltarScale+ 的FPGA,那么只要以下几行代码:

set_property BITSTREAM.GENERAL.COMPRESS true [current_design]

以上是代码各式说明含义:1、CFGBVS 参数:

当CFGBVS 连接至Bank 0 的VCCO 时,Bank 0 的VCCO 必须为2.5V 或3.3V。如果Bank 14 或15 的I/O 用于配置,则这些Bank(14 和15)的VCCO 也必须为2.5V 或3.3V。在CFGBVS 连接至GND 时,Bank0 的VCCO 应为1.8V。如果Bank 14 或15 的I/O 用于配置,那么这些Bank(14 和15)的VCCO 也必须为1.8V。2、CONFIG_VOLTAGE

设置为对应配置电压我们这里是3.3V3、BITSTREAM.GENERAL.COMPRESS

压缩BIT 文件4、BITSTREAM.CONFIG.CONFIGRATE

设置FLASH 配置速度,仅纯FPGA 有作用,对于ZYNQ 不支持5、BITSTREAM.CONFIG.SPI_BUSWIDTH

设置FLASH 配置的位宽, 仅纯FPGA 有作用,对于ZYNQ 不支持6、BITSTREAM.CONFIG.SPI_FALL_EDGE

设置FLASH 接口的时钟加载沿, 仅纯FPGA 有作用,对于ZYNQ 不支持  

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: