FPGA配置加载说明
遇到了一个FPGA高温试验加载失败的问题,降低了CCLK的频率,问题解决。顺带也学习了一下FPGA加载相关的知识。
本文内容基本上就是把Ug470翻译了一下,等有时间再整理整理
1 配置概述
1.1 概述
因为Xilinx FPGA的配置是易失性的,每次上电比特流都会通过某些特定的引脚读入FPGA。这些配置脚可用于下面几种不同的配置模式(7系列):
• Master-Serial configuration mode
• Slave-Serial configuration mode
• Master SelectMAP (parallel) configuration mode (x8 and x16)
• Slave SelectMAP (parallel) configuration mode (x8, x16, and x32)
• JTAG/boundary-scan configuration mode
• Master Serial Peripheral Interface (SPI) flash configuration mode
• Master Byte Peripheral Interface (BPI) flash configuration mode (x8 and x16) using parallel NOR flash
所谓的master就是FPGA向外输出CCLK,配置过程主要由FPGA主动控制;slave就是外部提供CCLK,可由外部处理器/DSP/CPLD控制配置过程。
1.2 设计考虑
这一章节从不同的设计考虑出发,分析了不同配置接口的适应场景。
1.2.1 比特流长度
每个FPGA型号的完整比特流长度都是固定的。文档中给出了每个FPGA型号对应比特流的大小,大概在4M~200+M(7VH870T)这个范围内。
1.2.2 配置数据源
FPGA设计为了保证最大的灵活性,可以有三种配置方式:FPGA自动从非易失性存储器中加载;外部智能器件比如CPU可以把配置数据写入FPGA;还可以从电脑上通过jtag写入FPGA。
1.2.3 Master模式
FPGA自动配置模式,通常称为主模式,支持并行和串行数据通路。主模式下,比特流文件允许存在多种非易失性存储器件中,通常和FPGA在同一个板子上。FPGA内部的晶振产生配置时钟,同时送给配置逻辑和CCLK输出。FPGA控制配置过程。
1.2.4 Slave模式
外部智能设备控制FPGA加载过程,通常称为从模式。从模式的好处是,比特流文件几乎可以放在任意位置,可以是非易失性存储器件、可以在板子上甚至可以通过网络远程配置。
1.2.5 jtag连接
4pin的jtag接口是常用的在线测试和调试硬件。不管最终的应用是用什么配置方式,为了调试的便利都应该把jtag配置通路预留出来。
1.2.6 基础解决方案
基础的解决方案是,FPGA在上电之后,自动通过SPI总线,从非易失性存储设备中取回比特流。通过使用Xilinx的工具,可以通过jtag从FPGA间接的编程SPI flash。
1.2.7 低成本解决方案
两种情况:
- 如果有空闲的非易失性存储器件,那比特流就可以存在该器件中。甚至也可以存储在硬盘或者通过网络远程下载。这种时候就可以考虑主BPI模式或者从串行模式。
- 如果非易失性的存储器件已经被其它应用占用了,那也可以和其它应用共用同一块存储设备。
1.2.8 高速选项
从速度来考虑,主要有以下几个方面:
- 相同时钟频率的情况下,并行肯定比串行快(废话)
- 配置单个FPGA比