FPGA配置电路综述

5.1.1 Xilinx FPGA配置电路综述 FPGA芯片是基于SRAM工艺的,不具备非易失特性,因此断电后将丢失内部逻辑配置。因此在每次上电后,都需要从外部非易失存储器中导入配置比特流。硬件配置是FPGA开发的最关键的一步,只有将HDL代码下载到FPGA芯片中,才能进而调试并最终实现相应的功能。完成FPGA配置,必须要有类似于单片机仿真器的下载电缆才能完成,典型的FPGA配置系统如图5-1所示。
图5-1 FPGA配置系统组成
在FPGA配置系统中,编程软件由FPGA提供商提供,设计人员要掌握其操作方法;下载电缆是固定的JTAG电路,只要将其连接在PC上和目标板上即可;只有目标板上的配置电路需要设计人员设计。其中,JTAG链路是器件编程的关键传输枢纽。因此JTAG链路的工作原理、FPGA的各种配置电路以及编程软件的操作是本章的重点内容。 将配置数据从PC上加载到Xilinx FPGA芯片中的整个配置过程,可分为以下步骤: 1.初始化 统上电后,如果FPGA满足以下条件:Bank2 的I/O输出驱动电压Vcc0_2大于lv;器件内部的供电电压Vccint为2.5v,器件便会自动进行初始化。在系统上电的情况下,通过对PROG引脚置低电子,便可以对FPGA进行重新配置。初始化过程完成后,DONE信号将会变低。 2.清空配置存储器 在完成初始化过程后,器件会将INIT信号置低电平,同时开始清空配置存储器。在清空完配置存储器后,INIT信号将会重新被置为高电平。用户可以通过将PROG或INIT信号(1NIT为双向信号)置为低电平,从而达到延长清空配置存储器的时间,以确保存储器被清空的目的。 3.加载配置数据 配置存储器的清空完成后,器件对配置模式脚M2、N1、M0进行采样,以确定用何种方式来加载配置数据。 4.CRC错误检查 器件在加载配置数据的同时,会根据一定的算法产生一个CRC值,这个值将会和配置文件中内置的CRC值进行比较,如果两者不一致,则说明加载发生错误,INIT引脚将会被置低电平,加载过程被中断。此时若要进行重新配置,只需将PROG置为低电平即可。 5.START-UP START-UP阶段是FPGA由配置状态过渡到用户状态的过程。在START-UP完成后,FPGA便可实现用户编程的功能。在START-UP阶段中,FPGA会进行一下操作: <1> 将DONE信号置高电平,若DONE信号没有置高,则说明数据加载过程失败; <2> 在配置过程中,器件的所有I/O引脚均为三态,此时,全局三态信号GTS置低电平,这些I/O脚将会从三态切换到用户设置的状态; <3> 全局复位信号GSR置低电平,所有触发器进入工作状态; <4> 全局写允许信号GWE置低电平,所有内部RAM有效; 整个过程需要8个时钟周期C0-C7。在默认的情况下,这些操作都和配置时钟CCLK同步,在DONE信号置高电子之前,GTS,GSR,GWE都保持高电平。如果选用JTAG配置电路,则所有操作都和JTAG电路的TCK保持同步。 5.1.2 Xilinx FPGA常用的配置管脚 对于FPGA芯片而言,无论何种配置方式,都必须通过FPGA相应的管脚把设计加载到FPGA芯片中。和配置有关的管脚可以分为专用管脚和复用管脚两类,前者只能用于FPGA配置,后者在配置过程结束后,还可当作普通I/O使用。 专用的配置引脚有:配置模式脚M2、M1、M0;配置时钟CCLK;配置逻辑异步复位PROG,启动控制DONE及边界扫描TDI,TDO,TMS,TCK。非专用配置引脚有Din,D0:D7,CS,WRITE,BUSY,INIT。当然,部分专业配置管脚在配置结束后也可作为普通管脚使用。例如,在Spartan-3E系列FPGA中,3个FPGA管脚M2、M1和M0用于选择配置模式,其配置说明如表M所式,M[2:0]的值在INIT_B输出变高后才有效。在FPGA配置完成后,M[2:0]可以作为普通IO使用。
表M Spartan 3E配置模式选择以及特性综述

5.1.3 Xilinx FPGA配置电路分类 FPGA配置方式灵活多样,根据芯片是否能够自己主动加载配置数据分为主模式和从模式。典型的主模式都是加载片外非易失(断电不丢数据)性存储器中的配置比特流,配置所需的时钟信号(称为CCLK)由FPGA内部产生,且FPGA控制整个配置过程。从模式也被称为下载模式,需要外部的主智能终端(如处理器、微控制器或者DSP等)将数据下载到FPGA中,其最大的优点就是FPGA的配置数据可以放在系统的任何存储部位,包括:Flash、硬盘、网络,甚至在其余处理器的运行代码中。此外,目前Xilinx已推出基于Internet的可重构逻辑技术System ACE。 1.主模式 在主模式下,FPGA上电后,自动将配置数据从相应的外存储器读入到SRAM中,实现内部结构映射;主模式根据比特流的位宽又可以分为:串行模式(单比特流)和并行模式(字节宽度比特流)两大类。如:主串行模式、主SPI Flash串行模式、内部主SPI Flash串行模式、主BPI并行模式以及主并行模式,如图5-2所示。 2.从模式 在从模式下,FPGA作为从属器件,由相应的控制电路或微处理器提供配置所需的时序,实现配置数据的下载。从模式也根据比特流的位宽不同分为串、并模式两类,具体包括:从串行模式、JTAG模式和从并行模式三大类,其概要说明如图5-3所示。 3. JTAG模式 在JTAG模式中,PC和FPGA通信的时钟为JTAG接口的TCLK,数据直接从TDI进入FPGA,完成相应功能的配置。 目前,主流的FPGA芯片都支持各类常用的主、从配置模式以及JTAG,以减少配置电路失配性对整体系统的影响。在主配置模式中,FPGA自己产生时钟,并从外部存储器中加载配置数据,其位宽可以为单比特或者字节;在从模式中,外部的处理器通过同步串行接口,按照比特或字节宽度将配置数据送入FPGA芯片。此外,多片FPGA可以通过JTAG菊花链的形式共享同一块外部存储器,同样一片/多片FPGA也可以从多片外部存储器中读取配置数据以及用户自定义数据。 [...]

FPGA BOARD , Altera and Xilinx, News