当前位置: 首页 > article >正文

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博客


http://www.kler.cn/a/465507.html

相关文章:

  • Flask 快速入门
  • Redission红锁
  • 学技术学英文:Tomcat的线程模型调优
  • 软考教材重点内容 信息安全工程师 第 12 章网络安全审计技术原理与应用
  • Ungoogled Chromium127 编译指南 MacOS 篇(一)- 项目介绍
  • PyTorch AMP 混合精度中grad_scaler.py的scale函数解析
  • git:指令集
  • ICP备案(阿里云等)
  • html+css网页设计 美食 美食模版1个页面
  • 面试手撕笔记ML/DL
  • 教程:从pycharm基于anaconda构建机器学习环境并运行第一个 Python 文件
  • 【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件
  • 网络原理之TCP和UDP
  • Java-多种方法实现多线程卖票
  • 在mac上通过Vundle安装YouCompleteMe(YCM)
  • LeetCode题练习与总结:超级洗衣机--517
  • vue,使用unplugin-auto-import避免反复import,按需自动引入
  • Dpath之详解(Detailed Explanation of Dpath)
  • 借助 FinClip 跨端技术探索鸿蒙原生应用开发之旅
  • spring boot IDEA启动两个端口服务nginx负载
  • 如何使用Python自动化发送消息:用pynput库批量输入并发送文本
  • 网络安全:交换机技术
  • leetcode 面试经典 150 题:多数元素
  • 工信部电子标准院计算机视觉证书报考指南!
  • 项目引入MybatisPlus
  • npm提示Install fail! Error_ EBUSY_ resource busy or