电子系统功能实现的模式不外硬件和软件两种。基于冯.诺依曼或者哈佛体系结构的通用微处理器(MPU、MCU、DSP等)系统是软件实现模式,其硬件电路结构固定,通过串行执行指令实现功能。软件设计灵活、易升级,但执行速度慢、效率低;而专用集成电路(ASIC)采用硬件模式,通过固化的特定运算和单元电路完成功能。指令并行执行,执行速度快、效率高,但开发周期长、缺乏灵活性。在一些实时性和灵活性要求都比较高的场合,采用通用微处理器或者ASIC效果都欠佳。大规模的电子系统是各种逻辑功能模块的组合。从时间轴上来看,系统中的各个功能模块并不是任何时刻都在工作,而是根据系统外部的整体要求,轮流或循环地或工作。随着系统规模的扩大。
各功能模块电路的资源利用率反而下降。因此,系统设计要从传统的追求大规模、高密度的方向,转向如何提高资源利用率上来,充分利用有限的资源去实现更大规模的逻辑设计。基于大规模可编程器件FPGA的可重构系统(ReconfigurableSystem),就是利用FPGA可以多次重复编程配置的特点,实现实时电路重构(Reconfigurationofcircuitryatruntime,简称RCR),即在电子系统的工作状态下,动态改变电路的结构,其实质是实现FPGA内部全部或部分逻辑资源的时分复用,使在时间上离散的逻辑电路功能能在同一FPGA中顺序实现。虽然可重构系统的概念早在1960年就已经提出来,但由于没有理想的可重构器件等原因。
这方面的研究一直没有很大突破。1990年以来,随着大规模集成电路的迅速发展,尤其是大规模可编程器件FPGA的出现,研制可重构电子系统的硬件条件已基本具备,实时电路重构的思想逐渐引起了学术界的注意,从而引发了对可重构系统的研究热潮。自从2000年以来,基于FPGA的重构在国际上得到了越来越多的关注和研究。可重构设计是指利用可重用的软、硬件资源,根据不同的应用需求,灵活地改变自身体系结构的设计方法。FPGA器件可多次重复配置逻辑的特性使可重构系统成为可能,使系统兼具灵活、便捷、硬件资源可复用等性能。FPGA器件的结构主要有两种:一是基于反熔丝技术,二是基于SRAM或FLASH编程。用反熔丝开关作基本元件。
具有非易失性,编程完成后,FPGA的配置数据不再变化,无法重构。而基于SRAM或FLASH编程的FPGA通过阵列中的SRAM或FLASH单元对FPGA进行编程。SRAM单元由一个RAM和一个PIP晶体管组成,RAM中储存着PIP晶体管的通断信息,系统上电时,这些信息码由外部电路写入到FPGA内部的RAM中,电源断开后,RAM中的数据将丢失。因此SRAM或FLASH编程型FPGA是易失性的,每次重新加电,FPGA都要重新加载数据。这样,运行中的FPGA功能系统在掉电后可以重新下载新的配置数据,以实现不同的功能。这一特点成为FPGA在许多新领域获得广泛应用的关键,尤其成为可重构系统发展的持续驱动力。
根据重构的方法不同,FPGA的重构可分为静态重构和动态重构两种,前者是指在系统空闲期间进行在线编程,即断开先前的电路功能后,重新下载存贮器中不同的目标数据来改变目标系统逻辑功能。常规SRAMFPGA都可实现静态重构。后者则是指在系统实时运行中对FPGA芯片进行动态配置(即在改变电路功能的同时仍然保持电路的工作状态),使其全部或部分逻辑资源实现在系统的高速的功能变换和时分复用。动态重构技术需要特定的基于SRAM或FLASH结构的新型FPGA的支持。随着其产品和技术的相对成熟,动态重构FPGA的设计理论和设计方法已经逐渐成为新的研究热点。根据实现重构的面积不同,可重构FPGA又可以分为全局重构和局部重构。