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进行工作。首先将一个完整的系统设计分为三个配置文件写进外部存储器中,在初始阶段将包含功能1和功能2的配置文件配置到FPGA中,当功能2工作结束需要功能3进行工作时,只将包含功能3 的配置文件配置到原先功能2的区域中,将系统的功能2转变为功能3,在此期间,功能1受影响保持不变持续工作,系统的部分功能发生了改变,整个过程系统的运行和功能1、功能2和功能3同时配置到FPGA中没有区别。

与全局动态重构相比,局部动态重构改变的逻辑资源少,配置文件小,重构时间短。局部动态重构需要设计者在设计上考虑将整体设计根据时间划分为若干功能模块,需要考虑各功能模块之间的相互影响以及不同功能模块在FPGA内部的布局布线问题,设计过程复杂,对设计提出了更高的要求。局部动态重构对设计局限性,无法适用所有的设计。

根据实现动态重构的方法进行划分,动态重构可分为本地重构和远程重构,其划分的根本是配置文件存在的位置以及配置文件流到达FPGA的方式。

2.1本地重构

在本地重构中,配置文件存在于与 FPGA 配套的外部非易失性存储器中或者本地的其他设备中,通过短距离通信获取。

2.2远程动态重构

FPGA 远程动态重构是互联网进行实现,Xilinx在21世纪初提出。它的基本结构如上图所示,系统通过TCP/IP网络接收端口发送的配置文件,接收完成后,在系统的逻辑控制下将其配置到FPGA中实现重构。

更多FPGA入门级教程欢迎点击

小白如何快速入门Verilog?-CSDN博客

5分钟带你了解Verilog HDL语法结构-CSDN博客

Verilog语法之〇:Verilog HDL简介/Verilog语法介绍-CSDN博客

Verilog语法之一:简单的Verilog HDL模块-CSDN博客

相关推荐
XMAIPC_Robot11 小时前
基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代
linux·数码相机·fpga开发·架构·边缘计算
智驱力人工智能12 小时前
高密爆炸警钟长鸣:AI为化工安全戴上“智能护盾”
人工智能·算法·安全·重构·边缘计算·高密爆炸·高密化工厂
读书点滴19 小时前
关于FPGA软核的仿真(一)
fpga开发
XMAIPC_Robot1 天前
基于 NXP + FPGA+Debian 高可靠性工业控制器解决方案
运维·人工智能·fpga开发·debian·边缘计算
天天爱吃肉82181 天前
【嵌入式(2)深入剖析嵌入式开发:从基础到实战】
嵌入式硬件·fpga开发
zskj_zhyl1 天前
从“被动养老”到“主动健康管理”:平台如何重构代际关系?
大数据·人工智能·重构
Chandler241 天前
Go 即时通讯系统:日志模块重构,并从main函数开始
后端·重构·golang·gin
ThreeYear_s2 天前
基于FPGA的VGA显示文字和动态数字基础例程,进而动态显示数据,类似温湿度等
fpga开发
GateWorld2 天前
《深入解析SPI协议及其FPGA高效实现》-- 第二篇:SPI控制器FPGA架构设计
fpga开发·开源协议
GateWorld2 天前
《深入解析UART协议及其硬件实现》-- 第三篇:UART ASIC实现优化与低功耗设计
fpga开发·开源协议