FPGA 可重构技术的实现方法
FPGA 重构技术使得以往只是在空间上设计的系统转化为时间和空间相结合的系统。使系统的功能时分复用,既不会改变原有的系统整体功能,又可以提高硬件逻辑资源的利用率,使得相同设计情况下,所需要的硬件规模减小。
1 全局动态重构
FPGA 全局动态可重构技术是指向FPGA 配置包含全部逻辑资源的文件,改变FPGA 内部的全部逻辑。
FPGA 的全局动态重构如下图所示。
将FPGA 需要的配置文件存放在外部存储器中,每一个文件都是一个独立的完整的配置文件。当需要改变FPGA 的逻辑功能时,便选择相应的配置文件通过串口配置到FPGA中,外部存储器中有多少个配置文件就能使FPGA 实现多少种功能。
全局动态可重构的优势在于对电路设计要求低,不需要在功能设计阶段对FPGA 内部逻辑资源进行模块划分,配置方便,根据功能设计的需求生成配置文件再配置到FPGA 内。
基于上述优点,FPGA 全局动态重构应用就比较多。全局重构降低了设计的复杂性,相应地带来了需要改变FPGA 内部全部的逻辑,配置文件大,FPGA 重构时间就变长的问题,当需要改变的逻辑资源并不是很多时就会导致重构效率急剧下降。
2 局部动态重构
局部动态重构只需要改变FPGA 内部的部分逻辑功能,向FPGA 内部配置的文件也只是改变这部分逻辑功能的,它相对于全局动态重构更具灵活性。
FPGA 局部动态重构示意图如下图所示。
一个系统设计共包含三个功能模块,整个过程中,系统并不需要三个功能同时运行,在时间段1 中功能1 和功能2 进行工作,在时间段2 中,功能1 和功能3 进行工作。
与全局动态重构相比,局部动态重构改变的逻辑资源少,配置文件小,重构时间短。
局部动态重构需要设计者在设计上考虑将整体设计根据时间划分为若干功能模块,需要考虑各功能模块之间的相互影响以及不同功能模块在FPGA 内部的布局布线问题,设计过程复杂,对设计提出了更高的要求。局部动态重构对设计局限性,无法适用所有的设计。
根据实现动态重构的方法进行划分,动态重构可分为本地重构和远程重构,其划分的根本是配置文件存在的位置以及配置文件流到达FPGA 的方式。
3 本地重构
在本地重构中,配置文件存在于与FPGA 配套的外部非易失性存储器中或者本地的其他设备中,通过短距离通信获取。
4 远程重构
FPGA 远程动态重构是互联网进行实现,Xilinx 在21 世纪初提出。它的基本结构如下图所示
系统通过TCP/IP 网络接收端口发送的配置文件,接收完成后,在系统的逻辑控制下将其配置到FPGA 中实现重构。