Xilinx FPGA——Vivado生成bit文件时需要添加的约束

本文介绍了Vivado设计中FPGA的配置模式选择,包括MasterSPI、Serial等,以及如何在纯FPGA和ZYNQ环境下设置Bitstream配置信息,如压缩、固化速率和SPI相关参数。特别强调了ZYNQ的配置方式与FPGA的不同之处。
摘要由CSDN通过智能技术生成

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.3V
3、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 不支持
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值