现代FPGA的配置主要分为两种:基于SRAM和基于非易失性存储器。基于SRAM的FPGA在每次上电或重新配置时,都需要从外部非易失性存储器中读取配置数据。这种配置方式灵活,但需要额外的存储器和配置控制器。相反,基于非易失性的FPGA在制造时就已经配置好,无需外部存储器。
Lattice和Actel的FPGA采用了反熔丝技术,这种非易失性配置方法简化了系统设计,省去了外部存储器和配置控制器,同时降低了功耗和成本。不过,它的配置是固定的,无法更改。而像Xilinx的Spartan和Virtex系列这样的FPGA,则主要采用基于SRAM的配置方式,允许灵活地更改配置。
FPGA配置过程中,比特流存储在外部非易失性存储器中,例如Flash。这些存储器通过SeLECtMAP接口与FPGA的配置控制器相连,SelectMAP是Xilinx特有的接口。此外,比特流还可以通过JTAG或ICAP接口加载到配置控制器中,提供了额外的配置途径。
Xilinx的FPGA配置模式多种多样,以适应不同的使用场景。这些模式分为主动模式和被动模式。在主动模式中,FPGA自行控制配置过程;而在被动模式中,外部设备如单片机或CPLD负责控制FPGA的配置。除此之外,还有通过JTAG和ICAP接口的特殊配置模式。
在设计FPGA配置方案时,有几个关键因素需要考虑。首先是配置过程由FPGA还是外部设备控制,这关系到系统的复杂性。其次是选择何种类型和大小的外部存储器,这影响着成本和性能。数据宽度的选择也会影响配置速度和资源利用。此外,现场升级配置比特流的需求也是设计时必须考虑的。
配置时间在许多应用中至关重要。配置时间取决于比特流大小、时钟频率和数据宽度。Xilinx提供了一些配置时间的数据,帮助设计者预估配置过程所需的时间。
为了提高设计的安全性,Xilinx的FPGA支持比特流加密。加密密钥可以存储在内部的BBR或eFuse中。BBR是易失性的,需要外部电池来保持数据,而eFuse是非易失性的,但重新编程相对困难。
最后,了解Xilinx FPGA支持的配置相关原语也是重要的,这些原语提供了与配置过程相关的底层控制功能。
总之,FPGA配置是决定其性能的关键步骤。合理选择配置方式、存储器和数据宽度,以及考虑安全性和升级需求,对于优化FPGA设计和提高系统性能至关重要。随着技术的发展,FPGA的配置方法也在不断进步,为电子设计带来了更多可能性。
本来讲一讲FPGA的重构,在说FPGA重构之前,需要先了解FPGA的配置方式。
FPGA 配置
所有现代FPGA的配置分为两类:基于SRAM的和基于非易失性的。其中,前者使用外部存储器来配置FPGA内的SRAM后者只配置一次。 Lattice和Actel的FPGA使用称为反熔丝的非易失性配置技术,其主要优点是系统设计更加简单、不需要外部存储器和配置控制器、功耗低、成本低和FPGA配置时间更快。最大的缺点在于配置是固定的。 大多数现代FPGA都是基于SRAM包括Xilinx Spartan和Virtex系列。每个FPGA上电后或在后续的FPGA配置期间,从外部非易失性存储器中读取比特流,由配置控制器处理,并加载到内部配置SRAM中。SRAM保持了配置逻辑、IO、嵌入式存储器、布线、时钟、收发器和其他FPGA原语等所有的设计信息。 下图是Xilinx 的配置结构。
配置是由FPGA内部的配置控制器执行。比特流存储在外部非易失性存储器(如Flash)中。外部存储器通过使用SelectMAP接口连接到配置控制器,这是Xilinx特有的。额外的胶合逻辑可能需要架起SelectMAP和外部存储器接口之间的桥梁。此外,比特流可以通过JTAG或ICAP加载到配置控制器中。比特流可以选择加密,以提高安全性。内部电池备份RAM(BBR)和eFuse保存用于比特流解密的加密密钥。 FPGA配置存储器也称为配置存储器单元,它的每一位与比特流中的对应位一起初始化。每个存储器单元的输出连接到可配置的功能块上,如LUT寄存器、BRAM10、布线等。图2是配置存储器单元连接到多路复用器,以设置FPGA架构中元件之间的特定布线路径。在FPGA配置阶段,逻辑状态被置位为1或0。
图 2 FPGA 的布线配置
Xilinx 的 FPGA 配置模式
多种FPGA配置模式可满足不同的使用模式。图3是XilinxFPGA配置模式的分类。
图3FPGA配置模式的分类 配置模式分为两类:主动(master)模式和被动(slave)模式。在主动配置模式下,FPGA控制配置过程。在被动模式下,由外部设备(如单片机、CPLD或其他FPGA)控制FPGA的配置过程。此外,还有两个特殊的配置模式,即使用JTAG和内部配置访问端口(ICAP) 有4种数据宽度支持不同的外部存储器:32位、16位、8位、1位(串行)。下面是配置模式的简要介绍。 JTAG JTAG接口主要在调试期间使用。为了与Xilinx Chip Scope和IMPACT软件应用程序接口,特殊的适配器连接到专用FPGA引脚上。 ICAP 专用的ICAP原语用于与用户逻辑的接口,在FPGA架构内进行配置。 主动串行模式 在主动串行模式中,FPGA控制Xilinx Platform Flash,以提供配置数据Xilinx Platform Flash是一种特殊的非易失性存储器,旨在通过使用Select MAP接口直接与Xilinx FPGA接口。 主动SPI Flash模式 在主动SPI Flash模式中,FPGA控制串行SPI闪存,以提供配置数据。 主动Selec tMAP模式 在主动Select MAP模式中,FPGA控制Xilinx Platform Flash,以提供8位或16位的配置数据。 主动BPI模式 在主动BPI模式中,FPGA控制并行NOR Flash,以提供8位或16位的配置数据。 被动串行和Select MAP模式 在被动串行模式下,外部设备(如单片机、CPLD或其他FPGA)控制FPGA的配置过程。 设计FPGA配置方案 对于特定设计来说,有一些设计考虑用于选择最合适的FPGA配置方案。主要的选择标准是 •选择是否通过外部设备(被动模式)或由FPGA本身(主动模式)控制配置过程。从系统复杂性角度来看,主动模式最简单,但未必适合所有设计。被动模式接口作为简单的串行接口,直接连接到处理器的10引脚,读取比特流数据进人配置控制器。 •选择外部非易失性存储器的类型和大小,用于存储一个或多个FPGA比特流。尽管与FPGA的成本相比,外部存储器的成本相对较低,但仍然是不可忽略的。设计者可以在SHFlash并行NOR Flash或Xilinx Platform Flash之间进行选择。在某些设计中,FPGA可以使用连接到被动模式下的FPGA配置控制器直接配置。 •数据宽度的选择—串行、8位、16位或32位—影响配置速度和FPGA中用于设计的10数目。 •现场升级配置比特流可以是一个重要的需求。配置方案必须解决当比特流正在编程进入非易失性存储器时发生损坏的情况。 •Xilinx FPGA提供了一个选项,用来加密在更高设计安全要求情况下的比特流。解密密钥可以存储在内部的BBR或者eFuse中。BBR存储器是易失性的,需要外部电池。使用BBR与使用非易失性eFuse相比,重新编程相对容易。 计算配置时间 在许多应用中,FPGA配置时间很关键,要准确估计配置方案选择过程中的时间是很重要的。配置时间取决于比特流大小、时钟频率和配置接口的数据宽度,按下列公式定义: 配置时间=比特流大小x时钟频率x数据宽度 表1提供了配置接口在不同数据宽度下,对于使用50MHz时钟的最小和最大Xilinx Virtex-6 FPGA的预期配置时间。 表 1 FPGA 配置时间
Xilinx 配置相关的原语
表 2 提供了 Xilinx FPGA 支持的与配置相关的原语列表。 表 2 Xilinx Virtex-6 配置相关的原语
文章出处:【微信公众号:OpenFPGA】
责任编辑:gt