摘要: 提出了一种FPGA 远程动态重构的方法, 结合FPGA 动态重构技术和GSM 通信技术来实现。利用GSM 技术实现配置数据的无线传输,在单片机控制下将数据存储于CF 卡中。在内嵌硬核微处理器PowerPC405 控制下,FPGA 通过内部配置存取端口读取CF 卡中新的配置数据, 对可重构区进行配置以实现新的功能。
随着现场可编程门阵列的广泛应用, 对其进行灵活的重新配置的研究也越来越多。目前绝大多数FPGA 都是基于查找表LUT (Look UP Table ) 的技术, 采用SRAM工艺生产。这种工艺的FPGA 有两层结构, 上层为配置存储器, 下层是硬件逻辑层。通过上层配置信息控制硬件层门电路的通断, 改变芯片内基本逻辑块的布线, 从而形成特定的功能。这种架构为动态重构技术实现提供了可能。一个FPGA 大型数字系统总是由很多功能模块组合而成, 这样各个系统模块的激活状态就可能在时间轴上产生分离, 时间上分离的模块就可以共用一个硬件逻辑区, 根据需要对这个逻辑区动态地改变配置, 实现不同的功能, 这就是局部动态重构[ 1]。FPGA 的动态重构使其应用更加灵活, 减少了硬件的资源消耗, 缩短了开发周期。但是对一些特殊场合, 如深海数据采集或机器人野外勘探, 开发者可以为某个系统模块设计几个功能, 设备在自主运行过程中根据需要选择相应的配置数据进行配置。如果遇到特殊环境, 事先设计的功能有可能不适合工作要求, 需要增加新的功能。在目前硬件进化技术还无法进行实际应用的情况下, 本文设计了一种远程动态重构的系统来解决上述问题。
1 远程动态重构系统的结构
远程动态重构系统有PowerPC 处理器和89C54 微控制器两个核心。VirtexII -Pro FPGA 内部集成有2 个PowerPC405 嵌入式处理器[2], 本文系统使用其中一个, 实现对动态重构进行控制和调配。FPGA 内部用于对局部重构区域PRR 进行重新配置的硬件模块有3 个, 分别是嵌入式内核PowerPC、系统高级配置环境System ACE和内部配置访问通道ICAP。System ACE 是一种在系统编程的高级配置解决方案, 它提供CF (Compact Flash ) 、MPU 和Test JTAG 等多个接口, 本系统采用CF 卡作为配置数据的来源, 可以更方便地改变和存储配置数据。ICAP 的主要作用就是按照特定时序将配置数据重新配置到PRR 中[3]。