在 Vivado 中,set_property CONFIG_MODE value [current_design] 命令用于设置 FPGA 的配置模式。以下是详细说明:
一、命令语法
set_property CONFIG_MODE <value> [current_design]
二、CONFIG_MODE 常用值
| Value | 配置模式 | 描述 | 典型应用 |
|---|---|---|---|
| SPI | SPI 模式 | 串行 SPI Flash | 最常用 |
| BPI | BPI 模式 | 并行 NOR Flash | 高速配置 |
| SERIAL | 串行模式 | JTAG 配置 | 调试用 |
| Master SPI | 主 SPI | FPGA 主动控制 | 标准 SPI |
| Master BPI | 主 BPI | FPGA 主动控制 | 并行 Flash |
三、使用方法
1. 在 XDC 约束文件中(推荐)
# constraints.xdc # SPI 配置模式 set_property CONFIG_MODE SPI [current_design] # 或 BPI 配置模式 set_property CONFIG_MODE BPI [current_design] # 或串行模式 set_property CONFIG_MODE SERIAL [current_design]
2. 完整的配置模式设置
# SPI 模式完整配置 set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] # BPI 模式完整配置 set_property CONFIG_MODE BPI [current_design] set_property BITSTREAM.CONFIG.BPI_SYNC_MODE 0 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design]
3. 在 Tcl 控制台中使用
# 设置配置模式 set_property CONFIG_MODE SPI [current_design] # 验证设置 get_property CONFIG_MODE [current_design]
四、不同配置模式的详细说明
1. SPI 模式(最常用)
# 标准SPI配置 set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design] ;# 单线 set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] # 或高性能SPI配置 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 BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design]
2. BPI 模式(并行)
# BPI 并行配置 set_property CONFIG_MODE BPI [current_design] set_property BITSTREAM.CONFIG.BPI_SYNC_MODE 0 [current_design] ;# 异步模式 set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] set_property BITSTREAM.CONFIG.BPI_PAGE_SIZE 1 [current_design] ;# 页大小 # 或同步BPI配置 set_property CONFIG_MODE BPI [current_design] set_property BITSTREAM.CONFIG.BPI_SYNC_MODE 1 [current_design] ;# 同步模式 set_property BITSTREAM.CONFIG.BPI_BUS_WIDTH 16 [current_design] ;# 16位总线
3. 串行模式
# 串行配置(通常用于调试) set_property CONFIG_MODE SERIAL [current_design]
五、不同器件的配置模式支持
1. Artix-7/Kintex-7 系列
# 支持多种模式 set_property CONFIG_MODE SPI [current_design] ;# 推荐 # 或 set_property CONFIG_MODE BPI [current_design] ;# 高速应用 # 或 set_property CONFIG_MODE SERIAL [current_design] ;# 调试
2. Zynq-7000 系列
# PS 配置 PL set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] # 或主模式 set_property CONFIG_MODE Master SPI [current_design]
3. UltraScale/UltraScale+ 系列
# 高性能配置 set_property CONFIG_MODE SPIx4 [current_design] set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 66 [current_design]
六、验证配置的方法
1. 检查属性设置
# 查看配置模式 get_property CONFIG_MODE [current_design] # 查看所有配置相关属性 report_property [current_design] | findstr CONFIG
2. 生成配置报告
# 生成比特流 write_bitstream -force design.bit # 查看配置摘要 report_config_status -file config_status.rpt
七、相关属性说明
1. SPI 模式相关属性
set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] ;# 数据位宽 set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] ;# 时钟频率 set_property BITSTREAM.CONFIG.SPI_FALL_EDGE YES [current_design] ;# 时钟边沿 set_property BITSTREAM.CONFIG.SPI_32BIT_ADDR YES [current_design] ;# 地址模式
2. BPI 模式相关属性
set_property BITSTREAM.CONFIG.BPI_SYNC_MODE 0 [current_design] ;# 同步模式 set_property BITSTREAM.CONFIG.BPI_BUS_WIDTH 16 [current_design] ;# 总线宽度 set_property BITSTREAM.CONFIG.BPI_PAGE_SIZE 1 [current_design] ;# 页大小 set_property BITSTREAM.CONFIG.CONFIGRATE 50 [current_design] ;# 时钟频率
八、硬件设计注意事项
1. SPI 模式引脚需求
SPI 引脚: - CCLK : 配置时钟 - MOSI/IO0: 主出从入 - MISO/IO1: 主入从出 - IO2 : Quad SPI 数据2 - IO3 : Quad SPI 数据3 - CS_B : 片选信号
2. BPI 模式引脚需求
BPI 引脚: - A[0:28] : 地址总线 - DQ[0:15]: 数据总线 - CS_B : 片选信号 - OE_B : 输出使能 - WE_B : 写使能 - ADV_B : 地址有效
九、调试和故障排除
1. 配置模式选择指南
# 如果配置失败,尝试以下步骤: # 1. 确认硬件连接 # 2. 检查配置模式设置 get_property CONFIG_MODE [current_design] # 3. 尝试不同的配置模式 set_property CONFIG_MODE SPI [current_design] # 或 set_property CONFIG_MODE BPI [current_design] # 4. 使用保守设置 set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design] set_property BITSTREAM.CONFIG.CONFIGRATE 25 [current_design]
十、最佳实践
# 新设计推荐使用 SPI 模式 set_property CONFIG_MODE SPI [current_design] set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 1 [current_design] ;# 开始用单线 set_property BITSTREAM.CONFIG.CONFIGRATE 25 [current_design] ;# 保守频率 # 验证后优化性能 set_property BITSTREAM.CONFIG.SPI_BUSWIDTH 4 [current_design] ;# 升级到四线 set_property BITSTREAM.CONFIG.CONFIGRATE 66 [current_design] ;# 提高频率
CONFIG_MODE 是 FPGA 配置的基础设置,必须与硬件设计完全匹配。错误的配置模式会导致 FPGA 无法正常加载比特流。
1156

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



