本系列博文描述7系列FPGA配置的技术参考。作为开篇,简要概述了7系列FPGA的配置方法和功能。随后的博文将对每种配置方法和功能进行更详细的描述。本文描述的配置方法和功能适用于所有7系列家族器件,只有少数例外。
1.概述
Xilinx®7系列FPGA通过将特定于应用程序的配置数据(位流)加载到内存中进行配置。7系列FPGA可以主动从外部非易失性存储设备加载,也可以通过外部智能源(如微处理器、DSP处理器、微控制器、PC或板测试仪)被动进行配置。在任何情况下,都有两个通用配置数据路径。第一个是串行数据路径,这种情况需要最少的硬件管脚连接。第二个数据路径是8位、16位或32位数据路径,用于更高性能或访问(或链接)行业标准接口,非常适合外部数据源,如处理器或x8或x16并行闪存。与处理器和处理器外围设备一样,Xilinx FPGA可以在线重新编程,编程次数无限制。由于Xilinx FPGA配置数据存储在CMOS配置锁存器(CCL)中,因此必须在断电后对其进行重新配置。每次通过专用配置引脚将比特流加载到FPGA器件中。这些配置引脚可以用作多种不同配置模式的接口:
主动-串行配置模式
从(或被动)-串行配置模式
主动-并行(SelectMAP)配置模式(x8和x16)
主动-并行(SelectMAP)配置模式(x8,x16和x32)
JTAG边界扫描模式
主动-串行SPI Flas配置模式(x1,x2,x4)
主动-字节BPI Flash配置模式(x8,x16),使用并行NOR Flash
这些配置模式通过输入管脚M[2:0]设置不同的电平进行模式选择。M2,M1和M0应该连接至DC电压常量,可以直接接GND或者VCCO_0或者通过上拉或下拉电阻(≤1kΩ)连接至GND或者VCCO_0。上述几种配置模式中主或者从是以配置时钟管脚CCLK的方向为参考的。例如,在从配置模式中,CCLK为输入管脚;在主配置模式中,CCLK来自7系列FPGA内部振荡器,在主配置模式中,配置完成之后,CCLK时钟自动关闭,除非通过Persist Option将其配置为强制打开。该CCLK管脚为三态管脚,内部弱上拉。JTAG边界扫描配置模式,无论M[2:0]配置管脚电平如何,都一直可用。
2.设计考虑
要建立一个高效的系统,重要的是要考虑哪种FPGA配置模式最符合系统的要求。每个配置模式都有专用FPGA配置引脚,并且只能在配置期间临时使用其他多功能引脚。配置完成后,这些多功能管脚将被释放作为通用I/O使用。类似地,配置模式可能会对某些FPGA I/O Bank施加电压限制。尽管FPGA有几种不同的配置选项可用,但就单个具体项目来说,每个系统通常都有一个最佳解决方案。FPGA配置过程涉及许多步骤。每个步骤通常涉及一系列事件。例如,第一步是多个电源的通电顺序。要了解总体配置时间,设计师必须了解每个步骤的贡献。CALC_CONFIG_TIME可以估算配置时间。选择最佳配置选项时必须考虑几个主题:总体方案、速度、成本和复杂性。
2.1 配置比特流长度及Flash容量选择
FPGA设计被编译成比特流。比特流通过配置接口加载。每个FPGA部件类型的完整比特流具有固定长度。表1-1显示了7系列FPGA的比特流长度和其他设备特定信息。
表1、7系列FPGA的比特流长度和其他设备特定信息
2.2 FPGA配置数据源
Xilinx 7系列FPGA旨在实现最大的灵活性。FPGA或者自动加载来自非易失性闪存的配置数据,或者其他外部智能设备(如处理器或微控制器)可以将配置数据下载到FPGA。此外,配置数据可以通过电缆从主机下载到FPGA的JTAG端口。
主动模式
主动模式,FPGA自我加载,可通过串行或并行数据路径使用。FPGA在驱动配置逻辑的内部振荡器中生成配置时钟信号,并在CCLK输出引脚上可见,FPGA控制整个配置过程。主动模式利用各种类型的非易失性存储器来存储FPGA的配置信息。在主动模式下,FPGA的配置比特流通常保存在同一块电路板上的非易失性内存中,通常位于FPGA外部。
被动模式
图1、从配置模式
外部控制加载FPGA配置模式,通常称为从模式,也可通过串行或并行数据路径进行配置。在从模式下,外部“智能代理”(如处理器、微控制器、DSP处理器或测试仪)将配置映像下载到FPGA中,如图1所示。从属配置模式的优点是FPGA比特流几乎可以存储在整个系统中的任何位置。比特流可以与主机处理器的代码一起存储在闪存板上。它可以储存在硬盘上,它可以通过网络连接或其他类型的网桥连接发起配置。
2.3 JTAG连接
四针JTAG接口常用于调试硬件和测试。无论最终在应用程序中使用何种配置模式,最好还包括一个JTAG配置路径,以便于设计开发。
2.4 基本配置解决方案
在基本配置解决方案中,FPGA在通电时自动从Flash设备检索其比特流。FPGA具有串行外围接口(SPI),通过该接口,FPGA可以从标准SPI闪存设备读取比特流。
2.5 低成本配置解决方案
成本最低的选项因具体应用而异。
如果系统中已有备用非易失性存储器可用,则可将比特流镜像存储在系统存储器中。它甚至可以存储在硬盘上或通过网络连接远程下载。如果是,则应考虑其中一种下载模式:主BPI模式,从串行模式或JTAG。
如果应用程序已经需要非易失性内存,则可以整合内存。例如,FPGA配置比特流可以与该板的任何处理器代码一起存储。如果处理器是MicroBlaze™ 嵌入式处理器,则FPGA配置数据和MicroBlaze理器代码可以共享同一个非易失性存储设备。
2.6 高速配置
某些应用要求逻辑在短时间内可运行。某些FPGA配置模式和方法比其他配置模式和方法更快。配置时间包括初始化时间和配置时间。配置时间取决于设备的大小和配置逻辑的速度。
- 在相同的时钟频率下,并行配置模式固有地比串行模式快,因为它们一次编程8、16或32位。
- 在菊花链中配置单个FPGA比配置多个FPGA具有更快的固有速度。在关注配置速度的多FPGA设计中,每个FPGA都应该单独并行配置。
- 在主模式下,FPGA内部生成配置时钟信号,并在CCLK引脚上发送。默认情况下,CCLK频率较低,但比特流配置选项可以提高CCLK频率,或将CCLK源从EMCCLK引脚切换到外部时钟源。支持的最大CCLK频率设置取决于所连接的非易失性存储器的读取规格。更快的内存可实现更快的配置。当使用CCLK的内部振荡器源时,输出频率可随工艺、电压或温度而变化。EMCCLK时钟源选项启用精确的外部时钟源,以实现最佳配置性能。
使用EMCCLK选项的从模式或主模式允许更严格的公差和更快的时钟。
2.7 保护FPGA比特流免受未经授权的复制
与处理器代码一样,定义FPGA功能的比特流在上电期间加载到FPGA中。因此,这意味着不道德的公司可以在上电启动配置时捕获配置比特流并创建未经授权的设计副本。与处理器一样,存在多种技术来保护FPGA比特流和嵌入在FPGA中的任何知识产权(IP)核心。最强大的技术是使用电池支持的基于SRAM密钥的AES加密或使用eFUSE密钥的AES加密。设备识别是第三种技术,它使用较低级别的安全性和设备DNA。
此外,7系列器件还具有片上高级加密标准(AES)解密逻辑,以提供高度的设计安全性。
2.8 加载具有相同配置比特流的多个FPGA
通常,系统中每个FPGA有一个配置比特流映像。通过利用菊花链配置,多个不同的FPGA比特流镜像可以共享单个配置闪存。如果应用程序中的所有FPGA具有相同的部件并使用相同的比特流,则只需要一个比特流镜像。另一种解决方案称为组合或宽边配置,它使用相同的比特流加载多个类似的FPGA。仅在从串行或从SelectMAP模式下支持组合或宽侧配置。
3.配置调试考虑
本节讨论的最佳实践有助于在实现配置解决方案时遇到问题时启用调试和解决方案。在开始全面调试之前,请使用比特流默认值(例如,计数器或LED输出模式)创建并测试简单设计。此简单的设计测试有助于消除高级比特流设置或板接口的任何潜在问题。尝试使用其他方法进行配置,例如通过JTAG而不是从闪存进行配置,以确定问题是否特定于配置模式。两个最重要的配置信号INIT_B和DONE应连接到LED驱动器。INIT_B从低到高的脉冲表示通电时初始化完成。配置期间INIT_B信号低电平可指示FPGA设备读取到的比特流存在CRC错误。如果配置未正确完成,状态寄存器将提供有关哪些错误可能导致故障的重要信息。JTAG readback/verify可确定预期配置数据是否正确加载到设备中。