在 Vivado 中,set_property CFGBVS value [current_design] 命令用于设置 FPGA 配置 Bank 电压选择。以下是详细说明:
一、命令语法
set_property CFGBVS <value> [current_design]
二、CFGBVS 可选值
| Value | 描述 | 适用电压范围 | 典型应用 |
|---|---|---|---|
| GND | 接地方 | 1.8V-3.3V | 7系列FPGA 3.3V配置 |
| VCCO_0 | Bank 0 VCCO | 2.5V-3.3V | 7系列FPGA 2.5V/3.3V配置 |
三、使用方法
1. 在 XDC 约束文件中(推荐)
# constraints.xdc # 对于3.3V配置Bank set_property CFGBVS GND [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] # 对于2.5V配置Bank set_property CFGBVS VCCO_0 [current_design] set_property CONFIG_VOLTAGE 2.5 [current_design]
2. 完整的配置电压设置
# 3.3V 配置 - 7系列FPGA set_property CFGBVS GND [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design] # 2.5V 配置 - 7系列FPGA set_property CFGBVS VCCO_0 [current_design] set_property CONFIG_VOLTAGE 2.5 [current_design] set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
3. 在 Tcl 控制台中使用
# 设置CFGBVS set_property CFGBVS GND [current_design] # 验证设置 get_property CFGBVS [current_design]
四、CFGBVS 详细说明
1. CFGBVS = GND(3.3V 配置)
# 3.3V 配置场景
set_property CFGBVS GND [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property IOSTANDARD LVCMOS33 [get_ports {spi_cs_n spi_sck spi_mosi}]
# 适用情况:
# - Bank 0 VCCO = 3.3V
# - 使用3.3V SPI Flash
# - 传统外设接口
2. CFGBVS = VCCO_0(2.5V 配置)
# 2.5V 配置场景
set_property CFGBVS VCCO_0 [current_design]
set_property CONFIG_VOLTAGE 2.5 [current_design]
set_property IOSTANDARD LVCMOS25 [get_ports {spi_cs_n spi_sck spi_mosi}]
# 适用情况:
# - Bank 0 VCCO = 2.5V
# - 使用2.5V SPI Flash
# - 现代外设接口
五、不同系列 FPGA 的 CFGBVS 设置
1. 7系列 FPGA (Artix-7, Kintex-7, Virtex-7)
# 3.3V 配置 set_property CFGBVS GND [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] # 2.5V 配置 set_property CFGBVS VCCO_0 [current_design] set_property CONFIG_VOLTAGE 2.5 [current_design] # 注意:7系列不支持1.8V配置Bank
2. UltraScale/UltraScale+ 系列
# UltraScale 系列通常不需要显式设置CFGBVS # 配置电压自动检测 set_property CONFIG_VOLTAGE 1.8 [current_design] # 直接设置电压即可 set_property CONFIG_MODE SPI [current_design]
3. Zynq-7000 系列
# 与7系列相同 set_property CFGBVS GND [current_design] set_property CONFIG_VOLTAGE 3.3 [current_design] set_property CONFIG_MODE SPI [current_design]
六、验证配置的方法
1. 检查属性设置
# 查看CFGBVS设置 get_property CFGBVS [current_design] # 查看配置电压 get_property CONFIG_VOLTAGE [current_design] # 查看所有配置相关属性 report_property [current_design] | findstr -i "CFGBVS\|CONFIG_VOLTAGE"
2. 生成 DRC 检查报告
# 运行DRC检查 report_drc -file drc_report.rpt # 检查电压配置警告 grep -i "voltage\|cfgbvs" drc_report.rpt
七、常见配置组合
3.3V 系统完整配置
# 传统3.3V系统
set_property CFGBVS GND [current_design]
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property CONFIG_MODE SPI [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property IOSTANDARD LVCMOS33 [get_ports {spi_*}]
2.5V 系统完整配置
# 现代2.5V系统
set_property CFGBVS VCCO_0 [current_design]
set_property CONFIG_VOLTAGE 2.5 [current_design]
set_property CONFIG_MODE SPI [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 66 [current_design]
set_property IOSTANDARD LVCMOS25 [get_ports {spi_*}]
八、调试和故障排除
1. CFGBVS 设置错误的症状
# 常见错误:CFGBVS与CONFIG_VOLTAGE不匹配 # 错误示例:3.3V配置但CFGBVS=VCCO_0 set_property CFGBVS VCCO_0 [current_design] # 错误! set_property CONFIG_VOLTAGE 3.3 [current_design] # 正确示例:3.3V配置需要CFGBVS=GND set_property CFGBVS GND [current_design] # 正确! set_property CONFIG_VOLTAGE 3.3 [current_design]
2. 自动检测和修复
# 自动设置CFGBVS的Tcl过程
proc auto_set_cfgbvs {} {
set config_voltage [get_property CONFIG_VOLTAGE [current_design]]
if {$config_voltage == 3.3} {
set_property CFGBVS GND [current_design]
puts "已设置 CFGBVS GND 用于 3.3V 配置"
} elseif {$config_voltage == 2.5} {
set_property CFGBVS VCCO_0 [current_design]
puts "已设置 CFGBVS VCCO_0 用于 2.5V 配置"
} else {
puts "警告:不支持的配置电压 $config_voltage"
}
}
# 使用自动设置
auto_set_cfgbvs
九、重要注意事项
-
7系列专用:CFGBVS 主要是 7 系列 FPGA 的特性
-
电压匹配:CFGBVS 必须与 CONFIG_VOLTAGE 匹配
-
硬件一致性:必须与实际的 Bank 0 VCCO 电压一致
-
UltraScale:UltraScale 系列通常不需要此设置
十、最佳实践
# 设计开始时根据硬件设置
if {[get_property FAMILY [current_design]] == "artix7"} {
# 根据硬件原理图设置
set_property CFGBVS GND [current_design] # 3.3V硬件
set_property CONFIG_VOLTAGE 3.3 [current_design]
} elseif {[get_property FAMILY [current_design]] == "kintex7"} {
set_property CFGBVS VCCO_0 [current_design] # 2.5V硬件
set_property CONFIG_VOLTAGE 2.5 [current_design]
}
# 生成比特流前验证
if {[get_property CFGBVS [current_design]] == ""} {
puts "警告:未设置CFGBVS,可能影响7系列FPGA配置"
}
CFGBVS 是 7 系列 FPGA 配置的关键设置,确保正确的电压检测和配置接口工作。错误的 CFGBVS 设置会导致配置失败或硬件损坏。
906

被折叠的 条评论
为什么被折叠?



