• 0
  • 0
分享
  • FPGA可重构技术详解——软件测试圈
  • 曼倩诙谐 2022-04-12 09:41:11 字数 1729 阅读 2615 收藏 0

  FPGA可重构技术就是通过上位机控制在FPGA运行过程中加载不同的Bitstream文件,FPGA芯片根据文件内的不同逻辑将内部的资源全部或部分进行重新配置以达到多种功能任务动态切换的目标,从而提高了使用FPGA进行开发的灵活度。

  FPGA芯片本身就具有可以反复擦写的特性,允许FPGA开发者编写不同的代码进行重复编程,而FPGA可重构技术正是在这个特性之上,采用分时复用的模式让不同任务功能的Bitstream文件使用FPGA芯片内部的各种逻辑资源,使得同一个逻辑电路在不同时间段上加载不同的功能模块。从时间轴上看,系统的每一项任务功能在FPGA芯片上依次执行,系统的整体功能全部得以实现。从局部看,FPGA只执行了一项小任务,而从整体看,FPGA完成了整个系统任务。使用一块FPGA芯片完成了需要多块FPGA芯片的任务,由此可见FPGA内部资源的利用率得到很大提升。

  FPGA上的可重构技术根据FPGA芯片内部的不同结构可以分为两种,分别是动态可重构和静态可重构。如果FPGA芯片是常规的SRAM结构,那么它只能做到静态可重构,重构过程必须首先发送中断指令停止正在运行的程序,之后再把全新的Bitstream文件加载到FPGA上。而如果FPGA芯片是特殊结构,那么它就可以进行动态可重构,重构过程可以在FPGA运行时期进行,动态可重构不但可以在系统运行时期随时改变模块参数,甚至可以在系统运行时期在FPGA内部的可重构区域动态重构电路逻辑。

  FPGA的动态可重构又可以分为动态全局可重构和动态局部可重构。动态全局可重构是指上位机给FPGA芯片加载一个全新的配置文件,而这个配置文件包含了新的任务需求所要涉及的整片FPGA内所有资源,从而实现FPGA重新配置,上一个任务实现的所有逻辑电路将全部消除。在重构操作执行前,首先在外挂存储器中加载多个不同任务需求的配置文件,同时每个配置文件中都包含该任务所需要涉及的FPGA芯片全部逻辑资源。正是因为每一个配置文件都包含了整块FPGA芯片的所有资源,所以动态全局可重构只能从外挂存储器中选择将一个配置文件加载到FPGA芯片中。当这个配置文件对应的任务结束后,再选择另一个新的配置文件加载到FPGA芯片中,通过不同配置文件的分时加载实现系统功能任务的切换。

  这种动态全局可重构的实现方式比较容易,只需要在配置文件中写入该功能任务所包含的FPGA全部资源,但是这种实现方式因为包含全部资源而导致文件较大,配置的时间也就相应变长。尤其是在两个功能任务对应的逻辑电路相差不大的配置文件先后进行重构时,本可以只改变相差部分的逻辑电路,却要对FPGA芯片内部的全部资源重新进行改变。

  相比于动态全局可重构,动态局部可重构具有更大的灵活性。它只需要针对两个功能需求之间不同的部分逻辑功能生成配置文件,并加载到FPGA中指定的可重构区域进行重新配置,而在FPGA中指定的静态区域中的逻辑电路并不需要发生改变。假设一个系统要先后切换两个功能,而这两个功能需要使用4个配置文件。其中功能1需要使用配置文件1、配置文件2和配置文件3,功能2需要使用配置文件1和配置文件4。由于配置文件1在功能1和功能2中都需要,因此首先向FPGA的静态区域加载两个功能都需要的配置文件1,然后在可重构区域加载配置文件2和配置文件3。功能1运行结束后切换成功能2,由于配置文件1在功能2中仍然需要,因此在动态局部可重构中只需要将之前加载到FPGA可重构区域的配置文件2和配置文件3对应的逻辑电路消除,重新加载配置文件4生成对应的逻辑电路就可以完成功能2的运行。在两个功能切换的过程中配置文件1所在的静态区域并没有发生改变。

  动态局部可重构因为只重构部分区域,所以配置文件中的重构内容也相应变小,重构时间也随之缩短。但是动态局部可重构的难点在于静态区域和可重构区域的大小划分是否可以满足系统功能要求、分别处在两个区域的模块之间如何进行通信以及如何在可重构区域进行合理的布局布线。因此使用动态局部可重构的实现过程相对复杂。



作者:曲若飞   

来源:http://www.51testing.com/html/51/n-5797151.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 问题描述: 有些系统接口判断用户是否登录,是校验登录接口成功后传的token值,也就是请求系统所有接口时,前端传参必带登录成功后接口返回的token,后台以此检验是否过期或是否有登录。所有接口都依赖登录成功后的token,那么可将token进行关联。本案例实现请求登录接口,获取token,将token关联至另外的get请求或post请求实现步骤:import json import requests import urllib.parse import urllib.request   def doLogin(): &nbs...
            0 0 687
            分享
          • 面试是一个“表达自己”的过程,我们需要在短暂的30到60分钟的时间,将自己的真本事表现出来,让面试官看到自己在这份职位上能产生的价值。我曾遇到很多人,简历背景非常厉害,但是在面试环节却差强人意,原因是什么呢?我想有两种情况,第一种是简历虚假,第二种是不善于表达,面试紧张等各种因素导致未将自己实际的能力表现出来。第一种情况,奉劝大家在做简历时一定要实事求是,HR都不傻,是真是假,是可以聊出来的。第二种情况,是我们今天分享的主要话题。接下来,我会按三个方面给大家分享我根据经验总结出来的干货:面试前的准备、面试中的表现、面试后的追踪。01 面试前的准备在我们收到一家企业的面试邀约并决定要参加面试后,...
            1 0 2058
            分享
          •   当地时间周二,硅谷银行新任首席执行官Tim Mayopoulos对客户表示,硅谷银行已经恢复开门,准备接收和持有客户的存款。此番言论是在呼吁风投公司和其他科技客户重新回到该银行。  Tim表示:“如果你、你的投资组合公司或你公司在过去一周内转移了资金,请考虑将其中一些资金转移回来,作为安全存款多样化战略的一部分。”  Tim对客户群表示:“储户可以完全接触到他们的资金。”并补充说,新流入的资金和现有的存款都受到联邦存款保险公司的全面保护。  上周,硅谷银行刚发布的季度显示其亏损出售了价值210亿美元的证券,导致创企和VC基金纷纷逃离,超过420亿美元的存款被撤出硅谷银行。硅谷银行倒闭是美国...
            0 0 899
            分享
          • 读者提问:测试报告怎么写?阿常回答:测试报告通常包含这四要素:1、项目背景;2、参考资料;3、计划执行列表;4、测试结果。一、项目背景项目背景主要包含以下 4 点:1、测试产品名称(XX平台);2、测试周期(5.1~5.5);3、主要测试项目及具体内容(测试XX平台的功能是否正常实现、易用性是否满足用户需求);4、测试人员(测试员XX)。二、参考资料参考资料主要包含以下 4 点:1、测试计划(文档链接);2、需求规格说明书(文档链接);3、测试用例(文档链接);4、缺陷记录(jira链接)。三、计划执行列表计划执行列表主要包含以下 3 点:1、计划内容(功能测试、界面测试、易用性测试);2、执...
            0 0 2094
            分享
          •   一、什么是敏捷测试?  敏捷测试是一种在敏捷开发中进行软件测试的方法。它强调快速、迭代和协作,以确保软件的质量和交付速度。  在敏捷测试中,测试人员需要与开发人员密切合作,尽早参与到项目中,并在整个开发过程中持续测试。测试人员不仅要测试软件的功能,还要关注软件的性能、可用性和安全性等方面。  敏捷测试强调测试的自动化,以提高测试效率和覆盖范围。测试人员通常会使用自动化测试工具来编写和执行测试用例,以便在短时间内获得反馈。同时,敏捷测试也鼓励测试人员采用探索性测试等方法,发现软件中可能存在的问题。  另外,敏捷测试还注重团队的沟通和协作。测试人员需要与开发人员、产品经理和其他相关人员保持良好...
            0 0 432
            分享
      • 51testing软件测试圈微信