FPGA SPI Flash 配置模式:硬件设计与约束文件的默契协作
在 FPGA 开发中,SPI Flash 配置模式的选择往往决定了整个系统的启动流程和性能表现。许多工程师第一次接触这个主题时,可能会惊讶地发现:硬件设计中的几个简单引脚连接(M[2:0])竟然能替代复杂的 XDC 约束文件,实现 FPGA 配置模式的自动识别。这种硬件与软件之间的'隐形桥梁'正是 Xilinx FPGA 设计中的精妙之处。
SPI Flash 配置模式的核心机制
SPI Flash 配置模式的选择本质上是通过 FPGA 的 M[2:0] 引脚状态实现的。这三个引脚在 FPGA 上电时被采样,决定了 FPGA 将以何种方式与外部存储设备通信。这种设计巧妙地将硬件连接与软件配置结合在一起,形成了 FPGA 配置系统的第一道指令。
配置模式选择引脚的真值表:
| M[2:0] | 配置模式 | 总线宽度 | CCLK 方向 |
|---|---|---|---|
| 000 | Master Serial | x1 | 输出 |
| 001 | Master SPI | x1/x2/x4 | 输出 |
| 010 | Master BPI | x8/x16 | 输出 |
| 100 | Master SelectMAP | x8/x16 | 输出 |
| 101 | JTAG | x1 | N/A |
| 110 | Slave Serial | x1 | 输入 |
| 111 | Slave Parallel | x8/x16 | 输入 |
实际工程中,Master SPI 模式最为常见,因为它对引脚数量要求少且支持高速读写。值得注意的是,一旦硬件引脚电平确定,Vivado 生成的比特流会默认遵循该模式,无需在约束文件中重复声明。如果硬件接错了,哪怕约束文件写得天花乱坠,芯片也无法正确加载。所以调试时遇到黑屏或无法启动,先别急着改代码,拿万用表测一下这几个关键引脚的电平才是正解。

