另外FPGA上还有两个比较重要的引脚:M0、M1,这两个引脚的高低电平组合不同代表了不同模式的选择,以Spartan6为例具体如下:
Configuration Mode M[1:0] Bus Width CCLK Direction
Master Serial/SPI 01 1, 2, 4 Output
Master SelectMAP/BPI 00 8, 16 Output
JTAG xx 1 Input (TCK)
Slave SelectMAP 10 8, 16 Input
Slave Serial 11 1 Input
所以这里M1接地,M0接高电平,采用主串模式读取。
当M0、M1引脚配置无误之后FPGA在上电时就可以从PROM里读取数据了,此时相关的几个引脚有:CCLK、INTB、DONE、ProgramB和DIN如图所示可以看到它们分别与clk、OE/RESET、CE、CF、D0相连。这几个引脚的定义可以参见PROM和相关型号FPGA文档,作用分别是配置时钟、复位和使能、配置完成、串行数据传输。这几个引脚除了D0不需要上拉外在datasheet上都要求上拉了,不过在许多开发板上CCLK信号时候不下拉的,本人尝试了未接下拉依然可以正常传输,不知这样有什么影响。
每次上电的操作时序如下:
BUSY信号可以不接,在CE拉低和OE拉高之后开始传输数据,PROM中数据传输完成之后DONE拉高。
主要配置流程分4个阶段:存储器清除、初始化、装入配置数据、启动器件。
|