0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA的重构是什么,具有哪些要点

OpenFPGA 来源:OpenFPGA 作者:OpenFPGA 2021-07-02 17:39 次阅读

“重构”对于刚接触FPGA的人来说,可谓十分神秘,对于已经入门的人来说很“简单”,但是你真的了解FPGA的重构吗?

术语“重构”是指FPGA已经配置后的重新编程。FPGA的重构有两种类型:完全的和部分的。完全重构将整个FPGA重新编程,而部分重构只取代设计的一部分,设计的剩下部分仍正常工作。部分重构不被视为完全重构的特殊情况,因为两者基本相同。对FPGA执行部分重构通过使用与完全重构(JTAG、CAP或SelectMAP接口)相同的方法来进行,如上一节所述。比特流的结构对于完全和部分重构来说都是相同的。

FPGA重构具有以下几个优点。它允许多个设计共享同一个FPGA架构,这反过来又降低了FPGA的面积、成本和系统复杂性。完全和部分重构为许多FPGA的创新应用程序提供了可能,否则,高昂的成本将影响应用程序实现。利用FPGA重构优势的一些应用如DSP音频视频处理器等,它们根据用户输人,由包括集成深度包检测通信控制器修改处理算法,以改变基于协议的数据包处理器。很多工业和学术性的FPGA重构方面的研究不断产生有价值的应用、研究论文和学位论文。

虽然部分重构技术不是一项新功能,也不是主流的研究方向,但是设计和实现流程、工具支持甚至名词术语都在不断发展,用户界面越来越友好。最终目标是向FPGA开发者提供简单和透明的设计流程,无须详细了解配置逻辑和比特流结构。部分重构是一项复杂过程,在设计实现、工具流程和重构本身的过程中充斥着多重挑战。面临的一个挑战是在FPGA配置的变化过程中,完成平滑切换而无须中断剩余设计功能或损害其完整性。而在完全重构过程中,FPGA架构和10不能保持在复位。另一项挑战是在改变过程中,防止设计的未改动部分进入无效状态。设计者必须正确界定和约束未改动和改动部分之间的接口。这样,FPGA物理实现工具才能进行配置并使用完全相同的布线资源。

有三个部分重构流程可用于Xilinx FPGA基于差异的(difference based)、基于分层的(partition based)及使用动态重构端口。基于差异的部分重构基于差异的部分重构[2]最适合用于将小型设计转化为LUT方程、IO特征和BRAM中的内容。以下是一个简单的、基于差异的部分重构代码和流程举例,它可以运行在Xilinx开发板上。

//原始模块:当两个按钮都按下时,点亮LED

module top(input btn0,btnl,output led); assign led=btn0&btnl;endmodule//top

//部分重构模块:当两个按钮之一按下时,点亮LEDbutton is pressed

module top_pr(input btn0,btn1,output led); assign led=btn0 | btn1;endmodule//top_pr

#约朿文件:对两个设计都相同

NET “btnO” LOC= “A18” ;NET “btnl” LOC= “H17” ;NET “led” LOC= “AD21”;

#实现LED功能的LUT被锁定到特定逻辑片中#对于原始设计,LUT函数是btn0 & btn1#对于部分重构设计,LUT函数是btn0|btn1

INST “led” AREA_GROUP=“led”;AREA_GROUP “led” RANGE = SLICE_X65Y168:SLICE_X65Y168;

#bitgen命令用于产生部分重构比特流#ActiveReconfig和Persist选项在配置变化期间置为全局复位

$bitgen -g ActiveReconfig:Yes -g Persist:Yes -r top_orig.bittop_pr.ncd top_pr.bittop_orig.bit:原始设计的比特流top_pr.ncd:部分重构设计的布局布线后输出top_pr.bit:得到的部分重构比特流结果

上面例子中基于差异的部分重构流程包括以下步骤:

(1)编译top模块。结果是比特流文件top_orig.bit。(2)编译top_pr模块。结果是布局布线后文件top_pr.ncd。(3)使用top.orig.bit比特流和top_pr.ncd,生成包含两个设计之间LED LUT方程差异的比特流。

基于分层的部分重构

与基于差异的重构不同,基于分层的部分重构流程支持重构大型部件FPGA设计。PlanAhead工具它提供了用于配置、实现和使用分层管理部分重构项目的集成环境。设计和实现流程的简要概述如下所示

:•FPGA开发者指定待配置的部分设计

•在FPGA芯片上包含所需逻辑、嵌入式存储器、10和其他资源的区域。•开发者定义覆盖该区域的所有可能设计变量。

•PlanAhead工具管理所有诸如编译设计的细节,包括管理多个网表、静态的和可重构的设计部分,执行DRC,并产生合适的比特流。

Xilinx应用提示XAPP883提供了使用部分重构的示例,以允许嵌入式PCI Exress接口模块的快速配置。

动态重构端口

改变Xilinx GTX收发器、混合模式时钟管理器(MMCM)和System Monitor原语设置的另一种方法,是使用动态重构端口(DRP)DRP提供了一个简单的用户逻辑接口,不需要更多地了解配置寄存器和比特流结构。例如,DRP允许输出时钟频率、相位和MMCM的占空比动态变化。

文章出处:【微信公众号:OpenFPGA】

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1625

    文章

    21663

    浏览量

    601666
  • 控制器
    +关注

    关注

    112

    文章

    16185

    浏览量

    177333
  • 接口
    +关注

    关注

    33

    文章

    8486

    浏览量

    150805

原文标题:FPGA 的重构

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    重构:改善既有代码的设计」实战篇

    背景 在软件开发的世界里,代码重构是提升项目质量、适应业务变化的关键步骤。最近,我重新翻阅了《重构:改善既有代码的设计 第二版》,这本书不仅重新点燃了我对重构的热情,还深化了我的理解:重构
    的头像 发表于 08-14 10:42 204次阅读
    「<b class='flag-5'>重构</b>:改善既有代码的设计」实战篇

    FPGA和ASIC有什么不同之处

    FPGA是“可重构逻辑”器件。先制造的芯片,再次设计时“重新配置”。
    的头像 发表于 07-24 09:32 945次阅读
    <b class='flag-5'>FPGA</b>和ASIC有什么不同之处

    FPGA技术的主要应用

    FPGA(Field-Programmable Gate Array)技术,即现场可编程门阵列,是一种可编程逻辑设备,它允许设计人员根据具体需求进行灵活的硬件配置和功能实现。由于其高度的可重构
    的头像 发表于 07-17 16:38 2294次阅读

    基于FPGA的CCD工业相机系统设计

    基于FPGA的CCD工业相机系统设计是一个综合性的项目,它结合了硬件电路设计、FPGA编程以及图像处理技术。以下是一个详细的系统设计方案,包括设计概述、硬件架构、FPGA编程要点以及部
    的头像 发表于 07-17 11:24 955次阅读

    如何快速入门FPGA

    电路。它允许用户通过编程对内部的逻辑模块和I/O模块进行重新配置,以实现特定功能。FPGA具有静态可重复编程和动态在系统重构的特性。 熟悉FPGA的基本结构,包括可编程输入输出单元、可
    发表于 04-28 09:06

    如何快速入门FPGA

    电路。它允许用户通过编程对内部的逻辑模块和I/O模块进行重新配置,以实现特定功能。FPGA具有静态可重复编程和动态在系统重构的特性。 熟悉FPGA的基本结构,包括可编程输入输出单元、可
    发表于 04-28 08:54

    fpga和数字ic区别 fpga和plc区别

    fpga和数字ic区别 FPGA(现场可编程逻辑门阵列)和数字IC(集成电路)在设计、功能、应用等方面存在显著的区别。 FPGA和数字IC在设计上有不同的特点。FPGA是一种可以
    的头像 发表于 03-14 18:08 2501次阅读

    fpga芯片的主要特点包括 fpga芯片上市公司

    具有显著优势,特别适用于实时性要求高的应用场景。 设计灵活与可重构性:FPGA芯片属于硬件可重构的芯片结构,其内部设置了数量丰富的输入输出单元引脚及触发器。这种灵活性使得
    的头像 发表于 03-14 16:46 998次阅读

    FPGA设计需要掌握的四大核心要点

    CPU core:分为2种,软core和硬core.软core是用逻辑代码写的CPU模块,可以在任何资源足够的FPGA中实现,使用非常灵活。而且在大容量的FPGA中还可以集成多个软core,实现多核并行处理。
    发表于 03-14 11:36 686次阅读
    <b class='flag-5'>FPGA</b>设计需要掌握的四大核心<b class='flag-5'>要点</b>

    FPGA资源与AISC对应关系

    情况下,FPGA可以被用作ASIC的原型验证平台,帮助设计师验证和优化ASIC的设计。然而,由于FPGA的灵活性和可重构性,它的资源使用效率通常低于专门为特定任务优化的ASIC。
    发表于 02-22 09:52

    fpga是什么 fpga用什么编程语言

    FPGA(Field-Programmable Gate Array)是一种可编程逻辑技术,它使用可重构的硬件单元(如门阵列和查找表)来实现电路功能。相比传统的专用集成电路(ASIC),FPGA
    的头像 发表于 02-04 15:26 1549次阅读

    电机的维修保养 | 点检要点

    电机的视觉点检要点 要点一、电机的转速是否正常,有无转速抖动、堵转现象(可用转速表检查)。 要点二、电机的地脚螺栓是否松动,基础是否完好,周围有无杂物等。 要点三、电机的罩壳、联轴器是
    的头像 发表于 02-02 16:54 632次阅读
    电机的维修保养 | 点检<b class='flag-5'>要点</b>

    rct设计方案的要点及主要内容

    RCT(随机对照试验)是一种科学研究方法,用于评估某种干预措施的有效性。在设计RCT的方案时,有几个要点和内容需要被详细考虑和描述。本文将详细介绍RCT设计方案的要点和主要内容。 一、研究目的与研究
    的头像 发表于 01-02 16:41 5480次阅读

    FPGA与GPU的区别

    和GPU之间的区别。 架构: FPGA是一种可编程逻辑器件,它由一系列可编程的逻辑单元(LOOKUP表和寄存器)组成,并通过可编程的互连网络进行连接。这使得FPGA具有高度的灵活性和可重构
    的头像 发表于 12-25 15:28 1639次阅读

    防浪涌时,PCB布线有哪些要点

    防浪涌时,PCB布线有哪些要点
    的头像 发表于 12-05 15:34 1207次阅读
    防浪涌时,PCB布线有哪些<b class='flag-5'>要点</b>?