在 Vivado 中,set_property CONFIG_VOLTAGE value [current_design] 命令用于设置 FPGA 配置Bank的电压。以下是详细说明:
一、命令语法
set_property CONFIG_VOLTAGE <value> [current_design]
二、CONFIG_VOLTAGE 常用值
| Value | 电压等级 | 描述 | 典型应用 |
|---|---|---|---|
| 3.3 | 3.3V | LVCMOS33 | 传统外设 |
| 2.5 | 2.5V | LVCMOS25 | 常用电平 |
| 1.8 | 1.8V | LVCMOS18 | 现代外设 |
| 1.5 | 1.5V | LVCMOS15 | DDR 内存 |
| 1.2 | 1.2V | LVCMOS12 | 低功耗应用 |
三、使用方法
1. 在 XDC 约束文件中
# constraints.xdc # 3.3V 配置电压 set_property CONFIG_VOLTAGE 3.3 [current_design] # 或 1.8V 配置电压 set_property CONFIG_VOLTAGE 1.8 [current_design] # 或 2.5V 配置电压 set_property CONFIG_VOLTAGE 2.5 [current_design]
2. 完整的配置电压设置
# 3.3V 系统配置 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] # 1.8V 低功耗配置 set_property CONFIG_VOLTAGE 1.8 [current_design] set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design]
3. 在 Tcl 控制台中使用
# 设置配置电压 set_property CONFIG_VOLTAGE 3.3 [current_design] # 验证设置 get_property CONFIG_VOLTAGE [current_design]
四、不同电压的详细配置
3.3V 配置(传统系统)
# 3.3V SPI Flash 配置
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_*}] ;# 匹配I/O标准
1.8V 配置(现代系统)
# 1.8V 低功耗配置
set_property CONFIG_VOLTAGE 1.8 [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 LVCMOS18 [get_ports {spi_*}] ;# 匹配I/O标准
2.5V 配置(折中方案)
# 2.5V 通用配置
set_property CONFIG_VOLTAGE 2.5 [current_design]
set_property CONFIG_MODE SPI [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 2 [current_design]
set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
set_property IOSTANDARD LVCMOS25 [get_ports {spi_*}]
五、不同器件的电压支持
1. Artix-7 系列
# 支持多种配置电压 set_property CONFIG_VOLTAGE 3.3 [current_design] ;# Bank 0 set_property CONFIG_VOLTAGE 1.8 [current_design] ;# Bank 14/15
2. Kintex-7 系列
# 高性能应用常用1.8V set_property CONFIG_VOLTAGE 1.8 [current_design] set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
3. Zynq-7000 系列
# PS 和 PL 电压协调 set_property CONFIG_VOLTAGE 3.3 [current_design] ;# 与PS Bank匹配 set_property CONFIG_MODE SPI [current_design]
4. UltraScale/UltraScale+ 系列
# 通常使用1.8V或1.2V set_property CONFIG_VOLTAGE 1.8 [current_design] set_property CONFIG_MODE SPIx4 [current_design] set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design]
六、验证配置的方法
1. 检查属性设置
# 查看配置电压 get_property CONFIG_VOLTAGE [current_design] # 查看所有配置相关属性 report_property [current_design] | findstr CONFIG_VOLTAGE # 查看Bank电压设置 report_property [get_banks] | findstr VCCAUX
2. 生成配置报告
# 生成比特流 write_bitstream -force design.bit # 查看电压配置报告 report_power -file power_report.rpt report_drc -file drc_report.rpt
七、与 I/O 标准的匹配
1. 电压与 I/O 标准对应关系
# 3.3V 配置
set_property CONFIG_VOLTAGE 3.3 [current_design]
set_property IOSTANDARD LVCMOS33 [get_ports {spi_cs_n spi_sck spi_mosi}]
# 1.8V 配置
set_property CONFIG_VOLTAGE 1.8 [current_design]
set_property IOSTANDARD LVCMOS18 [get_ports {spi_cs_n spi_sck spi_mosi}]
# 2.5V 配置
set_property CONFIG_VOLTAGE 2.5 [current_design]
set_property IOSTANDARD LVCMOS25 [get_ports {spi_cs_n spi_sck spi_mosi}]
八、多 Bank 电压配置
1. 不同 Bank 不同电压
# Bank 0 - 配置Bank (SPI Flash)
set_property CONFIG_VOLTAGE 3.3 [current_design]
# Bank 14 - DDR3 接口
set_property IOSTANDARD SSTL15 [get_ports {ddr_dq[*] ddr_dqs_p[*] ddr_dqs_n[*]}]
# Bank 15 - 普通I/O
set_property IOSTANDARD LVCMOS18 [get_ports {leds[*] buttons[*]}]
九、调试和故障排除
1. 电压不匹配的调试
# 检查电压一致性 get_property CONFIG_VOLTAGE [current_design] report_property [get_ports] | findstr IOSTANDARD # 常见的电压不匹配错误: # - CONFIG_VOLTAGE 与 Flash 电压不匹配 # - IOSTANDARD 与 CONFIG_VOLTAGE 冲突 # - 多Bank电压配置错误
2. 电压兼容性检查
# 验证电压设置是否与硬件匹配
if {[get_property CONFIG_VOLTAGE [current_design]] != 3.3} {
puts "警告:配置电压与硬件设计可能不匹配"
# 建议调整为硬件实际电压
set_property CONFIG_VOLTAGE 3.3 [current_design]
}
十、重要注意事项
-
硬件一致性:CONFIG_VOLTAGE 必须与实际硬件电压一致
-
Flash 兼容性:SPI Flash 工作电压必须与配置电压匹配
-
I/O 标准匹配:所有配置Bank的I/O必须使用兼容的I/O标准
-
多Bank设计:配置Bank电压独立于其他Bank
十一、最佳实践
# 设计开始时确认硬件电压
# 查阅开发板原理图或硬件手册
# 示例:ZC706开发板配置
set_property CONFIG_VOLTAGE 1.8 [current_design]
set_property CONFIG_MODE SPI [current_design]
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design]
set_property IOSTANDARD LVCMOS18 [get_ports {spi_* qspi_*}]
# 生成前验证
if {[get_property CONFIG_VOLTAGE [current_design]] == ""} {
puts "错误:未设置配置电压"
return
}
CONFIG_VOLTAGE 是关键的硬件相关设置,错误的电压设置可能导致 FPGA 无法配置或硬件损坏。务必与硬件设计完全一致。

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



