配置模式概述

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包含了各种配置模式的专用管脚。

设置配置模式

点击Tools->Edit Device Properties(需要打开某一阶段的设计才有此选项):

在Configuration Modes标签中选择配置模式,可以选择多个,并且JTAG作为最基本的配置模式总会被选中。点击配置模式会打开一个新窗口:

该窗口中可以查看配置模式的具体信息、相关管脚、原理框图,点击Print可打印输出原理框图,用于硬件设计参考。设置配置模式会创建一条约束:
set_property CONFIG_MODE <configuration_mode> [current_design]
如果在配置界面中选中“Prohibit usage of the configuration pins as user I/O and persist
after configuration“,即使在配置完成后,配置管脚也不会用作通用I/O,同时创建如下约束:
set_property BITSTREAM.CONFIG.PERSIST YES [current_design]
上述创建的约束需要点击保存,如果设计已经有了XDC约束文件,约束命令会添加到文件末尾。

设置配置bank电压

Xilinx FPGA有一个CFGBVS(Configuration Bank Voltage
Select)管脚,该管脚在硬件上可以选择连接到Vcc或GND,Vcc电压可能是1.5、1.8、2.5或3.3,该电压即为配置电压。在Vivado中需要设置两个对应的属性
CFGBVS(设置为Vcc或GND)和CONFIG_VOLTAGE(设置为对应配置电压)。
这两个属性默认为空,如果不设置,在运行DRC检查时会报告如下警告:

这是因为DRC检查需要根据这两个值和Bank的IOSTANDARD来判断是否 有设计规则错误。因此最好根据实际情况在Tools-> Edit Device
Properties的Configuration标签中设置这两个值:

该设置对应着两条约束命令,需要保存到约束文件中:
set_property CFGBVS VCCO [current_design] set_property CONFIG_VOLTAGE 3.3
[current_design]

这两个属性的设置一定要与硬件设计相符,且设置正确。比如,当使用JTAG配置模式时,CFGBVS设置为GND,CONFIG_VOLTAGE却设置为3.3,会导致DRC检查报告一个严重警报,提示应该将CONFIG_VOLTAGE必须设置为1.8V。另外需要知道,对于UltraScale+系列的FPGA芯片,不需要设置这两个属性。