本文主要介绍DFX的基本概念和使用到的一些基本技术。
1 基本概念
动态功能交换(Dynamic Function eXchange, DFX)允许在FPGA使用时重新配置部分结构。该流程需要实现多个配置,最终会存在每个配置的完整位流和每个可重构模块(Reconfigurable Module, RM)的部分位流。根据需要实现的模块数量不同,需要配置的数量也不同。但是,所有配置都使用相同的顶级(或静态)、布局和布线结果。这些静态结果从初始配置导出,被后续所有可重构模块使用。
FPGA技术提供了现场编程和重新编程的灵活性,动态功能交换(DFX)将这种灵活性更进一步,允许通过加载动态配置文件(通常是部分比特文件)来修改正在运行的FPGA设计。在完整的BIT文件配置FPGA之后,可以下载部分BIT文件来修改FPGA中的可重构区域,而不会影响在未被重新配置的设备部分上运行的应用程序的完整性。
如下图所示,通过下载部分BIT文件(A1.bit、A2.bit…)来修改Reconfig Block “A”中实现的功能。FPGA设计中的逻辑分为两种不同的类型,可重构逻辑和静态逻辑。FPGA块的灰色区域表示静态逻辑,标记为Reconfig Block “A”的块部分表示可重构逻辑。静态逻辑保持正常工作,不受部分BIT文件加载的影响。可重构逻辑被部分BIT文件的内容所取代。在单个FPGA上动态地对硬件进行可重构有很多好处,包括: