基于FPGA的可重构系统及其结构分析
时间:10-18
来源:互联网
点击:
2.3支持重构的FPGA器件
近年来,随着FPGA技术的发展,支持重构的FPGA器件新品迭现。Xilinx、Altera、Lattice的FPGA器件都是SRAM查找表结构。Xilinx支持模块化动态部分重构的器件族有XC6200系列,90nm工艺Spartan-3和Virtex-4 、Virtex-II-E和Virtex-II Pro 。Acmel公司的AT6000系列同样基于SRAM结构,只是SRAM的各单元能够单独访问配置,即支持部分重构。Lattice公司的基于Flash的FPGA通过在Flash上存储多种逻辑功能的配置数据流,经过配置实现不同逻辑功能,严格意义上讲属于静态可重构技术。Altera公司的Flex系列、ACEX、APEX、Cyclone系列也是基于SRAM的可重构逻辑。支持重构的FPGA器件有数量逐渐增加的趋势。但目前价格相对偏高。
3 基于FPGA的可重构系统结构分析
由于可重构系统的研究历史很短,目前尚未形成标准的结构形式,在此仅根据已有的应用做初步分析。
按重构的粒度和方式,可重构系统可以粗略地分为两种。一种是粗粒度重构单元的模块级重构,即重构时改变某一个或若干个子模块的结构。此时不仅电路逻辑改变,连线资源也重新分配。重构所需的电路输出配置信息事先由编译软件生成。通常重构时系统需要暂停工作,待重构完成后再继续。这种重构系统设计简单,但灵活性不足,且有时不能完全发挥出硬件运算的效率。较适合应用于嵌入式系统中。
另一种细粒度的重构单元的元件级重构,即重构时仅改变若干元件的逻辑功能。通常情况下重构时连线资源的分配状况不作修改,重构所需的电路配置信息在系统运行过程中动态产生。重构时系统可以边重构边工作。这种重构系统设计复杂,但灵活性大,能充分发挥出硬件运算的效率,较适合高速数字滤波器、演化计算、定制计算等方面的应用。
从现有的可重构系统组织结构看,可以根据应用类型加以区分,在中低端应用中,主要采用通用微处理器MPU(MCU/DSP)+FPGA形式;在高端应用中,主要采用处理器集成型,即将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的资源集成到一个FPGA芯片上,构建成一个可编程的片上系统SoPC(System on Programmable Chip)。
3.1 MPU+FPGA结构的可重构系统的结构特点
通用微处理器具有良好的接口功能,便于构建可重构系统。按照MPU与FPGA之间的相互关系以及在系统中所起的作用,主要可以分为两类:MPU控制FPGA工作的可重构系统和MPU协同FPGA工作的可重构系统。
3.1.1 MPU控制FPGA工作的可重构系统
这类系统采用MPU作为系统的控制核心,在FPGA中实现控制器的外设电路功能。实质上,这是传统MPU控制系统的继承与发展,根据系统需要,在FPGA中定制实现各分立的外部设备与接口,如SRAM、键盘与显示接口以及总线的扩展等应用。
例如在某多通道超声信号高速采集处理系统中,所需处理的数据流庞大,对它的处理是计算密集型任务。采用DSP+FPGA结构模式,以FPGA作为DSP的协处理器,能够以硬件的速度进行并行计算,同时利用其在线可重构特性,灵活地改变内部逻辑配置来完成多种不同算法的任务。
由于主要控制任务在MPU上实现,系统逻辑实现的重点在编制MPU程序上,而FPGA则更多地使用IP (Intellectual Property)核实现基本功能模块,软件开发在整个系统设计过程中所占比重较大。
3.1.2 MPU协同FPGA工作的可重构系统
这类系统通常以可编程逻辑器件为核心,在其内部实现面向应用的逻辑控制功能(通常以状态机FSM实现),而MPU则占据次要地位(充当FPGA控制器的外设)。应该说,这类系统充分利用了可编程逻辑器件和MCU的特点,实现了优势互补。它主要应用在面向实时性应用、并行处理以及高速等环境中。例如,使用高密度FPGA进行多路A/D高速采样,经内部处理模块处理后,并行输出结果,整个过程的时序控制在FPGA内部实现;而MPU只负责对FPGA各功能模块的参数装载、启动命令发送及FPGA工作状态监控等外围任务。
这类系统的开发重点主要在FPGA逻辑功能的硬件实现上,而MPU的控制软件比较简单。
在实际应用中,系统的特点并不像以上两种类型这么明显,普遍存在的是兼具以上特点的系统,只是所占比重不同而已。
3.2 单片FPGA上的SoC—SoPC
将片上系统SOC和FPGA各自的优点相结合,实现现场可编程、可重构的新型SoC就是片上系统SoPC。
以Altera Stratix FPGA器件为例,Stratix体系把硬件、软件和IP功能从技术上融合到基于模块的设计中。这个新的体系结构采用CPU软核Nios和DirectDriveTM的MultiTrackTM互联布线结构。Nios II系列32位嵌入式处理器是一款通用的RISC结构的CPU,它定位于广泛的嵌入式应用。可编程的NiosII核含有许多可配置的接口模块,用户可根据设计要求,利用Altera的Quartus II软件以及SoPC Builder工具,允许设计者轻松地将Nios II处理器嵌入到他们的系统中。用户还可通过Matlab和DSP Builder,或直接用VHDL等硬件描述语言,为NiosII嵌入式处理器设计各类硬件模块,并以指令的形式加入到NiosII的指令系统中,使其成为NiosII系统的一个接口设备,与整个片内嵌入式系统融为一体,而不是直接下载到FPGA中生成庞大的硬件系统。正是NiosII所具有的这些重要特点,使得可重构SoPC的设计成为可能。市场上流行的SoPC器件厂商Xilinx和Altera都提供功能强大的SoPC设计平台,并提供大量的IP核和参考设计,这是SoPC的一大优势。
当然,可重构系统的形式并没有完全定型,各类型间的分界是非常模糊的,甚至是交叉重合的。可以预见,随着可重构技术的发展,还会有新的系统结构出现。
近年来,随着FPGA技术的发展,支持重构的FPGA器件新品迭现。Xilinx、Altera、Lattice的FPGA器件都是SRAM查找表结构。Xilinx支持模块化动态部分重构的器件族有XC6200系列,90nm工艺Spartan-3和Virtex-4 、Virtex-II-E和Virtex-II Pro 。Acmel公司的AT6000系列同样基于SRAM结构,只是SRAM的各单元能够单独访问配置,即支持部分重构。Lattice公司的基于Flash的FPGA通过在Flash上存储多种逻辑功能的配置数据流,经过配置实现不同逻辑功能,严格意义上讲属于静态可重构技术。Altera公司的Flex系列、ACEX、APEX、Cyclone系列也是基于SRAM的可重构逻辑。支持重构的FPGA器件有数量逐渐增加的趋势。但目前价格相对偏高。
3 基于FPGA的可重构系统结构分析
由于可重构系统的研究历史很短,目前尚未形成标准的结构形式,在此仅根据已有的应用做初步分析。
按重构的粒度和方式,可重构系统可以粗略地分为两种。一种是粗粒度重构单元的模块级重构,即重构时改变某一个或若干个子模块的结构。此时不仅电路逻辑改变,连线资源也重新分配。重构所需的电路输出配置信息事先由编译软件生成。通常重构时系统需要暂停工作,待重构完成后再继续。这种重构系统设计简单,但灵活性不足,且有时不能完全发挥出硬件运算的效率。较适合应用于嵌入式系统中。
另一种细粒度的重构单元的元件级重构,即重构时仅改变若干元件的逻辑功能。通常情况下重构时连线资源的分配状况不作修改,重构所需的电路配置信息在系统运行过程中动态产生。重构时系统可以边重构边工作。这种重构系统设计复杂,但灵活性大,能充分发挥出硬件运算的效率,较适合高速数字滤波器、演化计算、定制计算等方面的应用。
从现有的可重构系统组织结构看,可以根据应用类型加以区分,在中低端应用中,主要采用通用微处理器MPU(MCU/DSP)+FPGA形式;在高端应用中,主要采用处理器集成型,即将处理器、存储器、I/O口、LVDS、CDR等系统设计需要的资源集成到一个FPGA芯片上,构建成一个可编程的片上系统SoPC(System on Programmable Chip)。
3.1 MPU+FPGA结构的可重构系统的结构特点
通用微处理器具有良好的接口功能,便于构建可重构系统。按照MPU与FPGA之间的相互关系以及在系统中所起的作用,主要可以分为两类:MPU控制FPGA工作的可重构系统和MPU协同FPGA工作的可重构系统。
3.1.1 MPU控制FPGA工作的可重构系统
这类系统采用MPU作为系统的控制核心,在FPGA中实现控制器的外设电路功能。实质上,这是传统MPU控制系统的继承与发展,根据系统需要,在FPGA中定制实现各分立的外部设备与接口,如SRAM、键盘与显示接口以及总线的扩展等应用。
例如在某多通道超声信号高速采集处理系统中,所需处理的数据流庞大,对它的处理是计算密集型任务。采用DSP+FPGA结构模式,以FPGA作为DSP的协处理器,能够以硬件的速度进行并行计算,同时利用其在线可重构特性,灵活地改变内部逻辑配置来完成多种不同算法的任务。
由于主要控制任务在MPU上实现,系统逻辑实现的重点在编制MPU程序上,而FPGA则更多地使用IP (Intellectual Property)核实现基本功能模块,软件开发在整个系统设计过程中所占比重较大。
3.1.2 MPU协同FPGA工作的可重构系统
这类系统通常以可编程逻辑器件为核心,在其内部实现面向应用的逻辑控制功能(通常以状态机FSM实现),而MPU则占据次要地位(充当FPGA控制器的外设)。应该说,这类系统充分利用了可编程逻辑器件和MCU的特点,实现了优势互补。它主要应用在面向实时性应用、并行处理以及高速等环境中。例如,使用高密度FPGA进行多路A/D高速采样,经内部处理模块处理后,并行输出结果,整个过程的时序控制在FPGA内部实现;而MPU只负责对FPGA各功能模块的参数装载、启动命令发送及FPGA工作状态监控等外围任务。
这类系统的开发重点主要在FPGA逻辑功能的硬件实现上,而MPU的控制软件比较简单。
在实际应用中,系统的特点并不像以上两种类型这么明显,普遍存在的是兼具以上特点的系统,只是所占比重不同而已。
3.2 单片FPGA上的SoC—SoPC
将片上系统SOC和FPGA各自的优点相结合,实现现场可编程、可重构的新型SoC就是片上系统SoPC。
以Altera Stratix FPGA器件为例,Stratix体系把硬件、软件和IP功能从技术上融合到基于模块的设计中。这个新的体系结构采用CPU软核Nios和DirectDriveTM的MultiTrackTM互联布线结构。Nios II系列32位嵌入式处理器是一款通用的RISC结构的CPU,它定位于广泛的嵌入式应用。可编程的NiosII核含有许多可配置的接口模块,用户可根据设计要求,利用Altera的Quartus II软件以及SoPC Builder工具,允许设计者轻松地将Nios II处理器嵌入到他们的系统中。用户还可通过Matlab和DSP Builder,或直接用VHDL等硬件描述语言,为NiosII嵌入式处理器设计各类硬件模块,并以指令的形式加入到NiosII的指令系统中,使其成为NiosII系统的一个接口设备,与整个片内嵌入式系统融为一体,而不是直接下载到FPGA中生成庞大的硬件系统。正是NiosII所具有的这些重要特点,使得可重构SoPC的设计成为可能。市场上流行的SoPC器件厂商Xilinx和Altera都提供功能强大的SoPC设计平台,并提供大量的IP核和参考设计,这是SoPC的一大优势。
当然,可重构系统的形式并没有完全定型,各类型间的分界是非常模糊的,甚至是交叉重合的。可以预见,随着可重构技术的发展,还会有新的系统结构出现。
电子 MCU DSP 电路 集成电路 FPGA LTE Xilinx Altera 嵌入式 滤波器 总线 SoC Quartus VHDL 相关文章:
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 周立功:如何兼顾学习ARM与FPGA(05-23)
- 初学者如何学习FPGA(08-06)
- 为何、如何学习FPGA(05-23)
- 学习FPGA绝佳网站推荐!!!(05-23)
- 我的FPGA学习历程(05-23)