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

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

3天内不再提示

基于PCIE(mcap)的部分可重构实现方案

电子设计 来源:CSDN 博主 作者:向前行 2021-01-03 09:20 次阅读

本博文主要是对基于PCIE(mcap)的部分可重构实现的步骤做一个简单的演示,如有错误之处,欢迎批评指正。值得说明的是,基于PCIE的部分可重构需在ultrascale系列及ultrascale+芯片才能实现,具体哪些系列能实现哪种配置方式如下图所示:

o4YBAF9uJsSADE5RAAFmTD1i1do111.png

图1

本质上来说,无论是JTAG还是ICAP或者MCAP以及其它FPGA的配置方式,目的都是配置FPGA的逻辑。MCAP是通过PCIE来实现对FPGA的烧写,最终结果和使用JTAG进行FPGA烧写没有区别,而使用PCIE对FPGA烧写有更好的灵活性,在某些需求场合是必不可缺的,譬如在数据加速的部署,FPGA加速板卡是位于服务器端,在服务上线之后修改FPGA业务逻辑的话如果使用JTAG烧写,一方面操作十分不便,可行性极低,另一方面,重新烧写FPGA会导致原FPGA的PCIE设备从服务器中删除,需要重新启动服务器枚举设备(目前本人没有找到可以进入系统后重新枚举设备的方法),对于已经上线的服务器,在每次切换FPGA业务逻辑后重启服务器是无法接受的,因此,使用PCIE对FPGA的部分重配置就十分必要,部分重配置能够在保持FPGA静态逻辑(PCIE部分和其他非业务逻辑)正常工作的情况下动态修改某个区域的逻辑(业务逻辑)。使用这种技术能够不重启服务器情况下快速切换业务逻辑。

本文的实现基于Xilinx的VCU1525加速板卡实现,VCU1525的FPGA是一颗ultrascale+的VU9P,由上图可以知道UltraScale+系列的FPGA支持MCAP配置模式。下面由一个简单的例程实现MCAP部分重配置。

1.新建一个空白工程。

o4YBAF9uJsaAT3qxAAEIahP0tvk791.png

图2

2.因为使用MCAP的配置方式,而MCAP集成于PCIE硬核中,因此需要例化一个PCIE相关的IP,这里使用XDMA进行本次例程(裸PCIE硬核也可以),该例程没有XDMA进行数据DMA搬运的相关内容,仅仅是借用XDMA中的MCAP功能,本人目前也有一个比较痛苦的地方,就是XDMA的上位机驱动怎么和MCAP的驱动整合在一起,不懂上位机驱动开发表示很迷茫,有大佬懂这个可以探讨下。

3.在Board选项中(在建立工程时选择Xilinx官方板卡才有这个选项)选择如下。

pIYBAF9uJseAWkrKAACwWZmMLXU305.png

图3

4.在Basic选项中,把图中红色框中的Mode设置成Advanced。

pIYBAF9uJsmAJfrsAAEHcKEsmbc366.png

图4

5.在Basic选项中,在最底部的Tandem Configuration or Partial Reconfiguration中选择PR over PCIE。

o4YBAF9uJsuAeXFVAAED12L25Fo564.png

图5

6.在Pcie ID选项的Device ID中设置成8011(因为Xilinx提供的驱动支持8011,8038,506F)

pIYBAF9uJsyADitNAADp_pK0xfE244.png

图6

7.其它按照默认选项,生成该IP。

pIYBAF9uJs6AKeWaAACQPZzfmtk607.png

图7

8.考虑到测试和实现的方便,使用XDMA的Example Design来修改例程,在XDMA综合完成之后(记得选择OOC),打开该IP的Example Design,在该工程上面做修改。

o4YBAF9uJs-Ad90sAACHcewbYo8071.png

图8

9.Example Design如下图。

o4YBAF9uJtGAP0lPAAEX9FDHH8o425.png

图9

10.首先我们先修改XDC文件和工程顶层,主要是LED的管脚和电平约束。在这个例子中,我们将要实现使用两个可重构模块,一个模块用于控制VCU1525的LED灯亮,一个模块用于控制VCU1525的LED灯灭,用这个简单的例子来说明PR的实现步骤。

11.修改工程中的时钟生成IP,此步骤不是必要,主要是指定输入时钟管脚,如果不是官方板子,在XDC里面约束即可。

pIYBAF9uJtKAI2D-AAA6agzhgkM642.png

图10

12.新建两个模块,分别是LED_RM_0和LED_RM_1。其中LED_RM_0用于控制LED灭,LED_RM_1用于控制LED亮。两个模块的逻辑很简单,只是做演示作用。代码逻辑如下。

pIYBAF9uJtOAegZLAAAUfYudRF0028.png

图11

13.在工程顶层例化其中一个RM模块。

o4YBAF9uJtSAJX3JAABZFo0qvpQ903.png

图12

14.完成上述步骤之后,选择Tools->Enable Partial Reconfiguration...选项,将工程转换成支持PR类型的工程,在后续弹出的方框中选择Convert。

pIYBAF9uJtaAK-zeAAGnqGdlWto916.png

图13

15.此时工程已经转换完成,对比转换之前,在Flow Navigator的PROJECT MANAGER会多出Partial Reconfiguration Wizard选项。

o4YBAF9uJtiARhkeAAHXfHmWZEI331.png

图14

16.设置我们要进行部分重构的逻辑,即LED_RM_x模块,如下图所示,右键LED_RM_0,选择Create Partition Definition...

o4YBAF9uJtqADs_JAAJLfvq1YPM045.png

图15

17.在弹出的窗口中指定一个分区的名字,这里设置为LED_RM,点击OK。

pIYBAF9uJtyACGCEAABr514vhIw718.png

图16

18.完成上一步之后,LED_RM_0模块变成了一个黄色的棱形标志,如下图所示。

o4YBAF9uJt2ABxcAAABDX9vSgG4805.png

图17

19.打开Partial Reconfiguration wizard

pIYBAF9uJt-AOUEBAAENY1caBLY838.png

图18

20.在Edit Reconfiguration Modules界面中,点击“+”符号,把LED_RM_1添加进来,表明有两个重配置模块,添加完成后如下图所示,属于LED_RM分区定义列表里面有LED_RM_0和LED_RM_1两个重配置模块。

o4YBAF9uJuCALcBDAACuSoPOiGs491.png

图19

21.在Editing Configurations界面中,选择automatically create configurations,并修改Configuration Name,如下图所示。

pIYBAF9uJuGAOFjkAACwvEzVmTs034.png

图20

22.在Edit Configuration Runs界面中,选择automatically create configurations。

o4YBAF9uJuOAJncQAADab9KkXMo510.png

图21

23.最后,点击Finish,部分重配置的向导设置完成,然后点击Run Synthesis综合设计。

pIYBAF9uJuWABGFKAAKUBpw9QmY674.png

图22

24.综合完成之后打开综合设计。

o4YBAF9uJueAB1mxAABLkjIWfhM374.png

图23

25.在Floorplanning界面,右键LED_RM_0,选择Floorplanning->Draw Pblock,给RM模块划分重配置的区域。

o4YBAF9uJumATQ2SAAFLFf2Cq_0987.png

图24

26.在分配完重配置区域之后,保存相应的约束到xdc文件中,然后做DRC检查,检查分配的区域是否符合要求。

pIYBAF9uJuqALTEaAAF6SVPdn3o389.png

图25

27.DRC检查没有问题之后,点击Generate Bitstream.

o4YBAF9uJuyADICoAABjhWgIfy4644.png

图26

28.至此,部分重配置的工程就生成完毕,在生成出来的文件里面,在工程目录下会有两个imp的文件夹,里面会分别有静态逻辑和各自的重配置逻辑,我们将静态逻辑先烧写进去FPGA,之后就可以通过PCIE配置动态逻辑,关于MCAP的驱动的上位机,在Xilinx_Answer_64761__UltraScale_Devices这份文档中有详细的说明。

pIYBAF9uJu2Afuy7AAEOH-Oh-Lo341.png

图27

pIYBAF9uJvCAcYuhAAMhJGSXpUA661.png

图28

编辑:hfy

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

    关注

    1626

    文章

    21670

    浏览量

    601879
  • Xilinx
    +关注

    关注

    71

    文章

    2164

    浏览量

    121013
  • JTAG
    +关注

    关注

    6

    文章

    398

    浏览量

    71601
  • PCIe
    +关注

    关注

    15

    文章

    1224

    浏览量

    82445
收藏 人收藏

    评论

    相关推荐

    PCIe信号完整性问题解决方案

    问题的解决方案: 一、检查和优化硬件连接 确保连接器和插槽正确接触 : 检查PCIe设备(如显卡、固态硬盘等)与主板上的PCIe插槽之间的连接是否牢固,确保所有连接器都正确插入且没有物理损伤。 使用高质量的材料和工艺 : 选择高
    的头像 发表于 11-26 15:18 110次阅读

    基于相变材料的重构超构表面用于图像处理

    光学超构表面(metasurface)实现了在亚波长尺度内的模拟计算和图像处理,并具备更低的功耗、更快的速度。虽然人们已经展示了各种图像处理超构表面,但大多数考虑的器件都是静态的,缺乏重构性。然而
    的头像 发表于 11-13 10:24 126次阅读
    基于相变材料的<b class='flag-5'>可</b><b class='flag-5'>重构</b>超构表面用于图像处理

    Cadence展示完整的PCIe 7.0 IP解决方案

    十多年来,Cadence 对 PCIe 技术的坚定承诺和支持,在业界有目共睹。我们深知强大 PCIe 生态系统的重要性,并感谢 PCI-SIG 提供的平台。在 PCI-SIG 开发者大会迎来 32 周年之际,Cadence 宣布面向 HPC/AI 市场推出完整的
    的头像 发表于 08-29 09:14 435次阅读
    Cadence展示完整的<b class='flag-5'>PCIe</b> 7.0 IP解决<b class='flag-5'>方案</b>

    PCIe 5.0 SerDes 测试

    #01 PCIe Gen 5 简介 PCIe 是用于硬盘、固态硬盘 (SSD)、图形卡、Wi-Fi 和内部以太网连接的先进互连 I/O 技术。PCIe 由一组快速、扩展且可靠的 I/
    的头像 发表于 08-16 09:33 687次阅读
    <b class='flag-5'>PCIe</b> 5.0 SerDes 测试

    实测952Mbps!四路千兆网PCIe拓展方案,国产工业级!

    /4路千兆网口模块方案:无锡沐创N500L-AM2C-DD、N500L-AM4C-QD测试工具:iperf3创龙科技已基于瑞芯微RK3588J、RK3568J处理器实现PCIe拓展多路千兆网口
    发表于 07-25 14:57

    PCIe插槽竟然能玩出花样?多个最新PCIe扩展硬盘方式!#PCIe扩展 #PCIe #硬盘盒

    硬盘PCIe
    ICY DOCK硬盘盒
    发布于 :2024年07月11日 17:21:28

    pcie4.0和pcie3.0接口兼容吗

    PCIe 4.0和PCIe 3.0接口在多个方面实现了兼容性,PCIe 4.0和PCIe 3.0接口兼容性问题是一个广泛讨论的话题。
    的头像 发表于 07-10 10:12 6276次阅读

    麦格纳为中国本土汽车制造商提供重构座椅系统

    技术提供了与长滑轨配套的完全旋转的前排座椅,从而实现灵活布局,扩展座舱空间。 车内的灵活布局和扩展的座舱空间 不要让人来适应车,而是让车来适应人的需求,是麦格纳
    的头像 发表于 06-18 17:13 1814次阅读

    重构柔性装配产线:AI边缘控制技术的崭新探索

    在信息化和智能化浪潮的推动下,制造业正面临着前所未有的转型升级挑战。其中,重构柔性装配产线以其独特的AI边缘控制技术,为制造业的智能化转型提供了新的解决方案
    的头像 发表于 04-30 16:11 357次阅读
    <b class='flag-5'>可</b><b class='flag-5'>重构</b>柔性装配产线:AI边缘控制技术的崭新探索

    重构柔性装配产线整体解决方案,智能化生产转型的引领者

    在当今数字化时代,智能制造已成为企业提升生产效率和降低成本的关键。而重构柔性装配产线基于富唯智能AI工业控制与决策平台打造,通过一台AI边缘控制器即可控制整个系统,实现跨品类产品的数控自动化
    的头像 发表于 04-29 16:29 975次阅读
    <b class='flag-5'>可</b><b class='flag-5'>重构</b>柔性装配产线整体解决<b class='flag-5'>方案</b>,智能化生产转型的引领者

    PCIe-AXI-Cont用户手册

    Transaction layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于使用,定制化的PCIe-AXI互连解决方案,同时适用于ASIC和FPGA。
    发表于 02-22 09:15 3次下载

    PCIe控制器(FPGA或ASIC),PCIe-AXI-Controller

    Transaction Layer的所有功能特性,不仅内置DMA控制器,而且具备AXI4用户接口,提供一个高性能,易于使用,定制化的PCIe-AXI互连解决方案,同时适用于ASIC和FPGA。
    的头像 发表于 02-21 15:15 842次阅读
    <b class='flag-5'>PCIe</b>控制器(FPGA或ASIC),<b class='flag-5'>PCIe</b>-AXI-Controller

    【正运动】高速高精,超高实时性的PCIe EtherCAT实时运动控制卡 | PCIE464

    产品摘要正运动技术PCIE464运动控制卡,提供高效的工业运动控制解决方案。用户可直接将PCIE464嵌入标准PC机快速实现高性能的EtherCAT运动控制功能。在“PC+运动控制卡”
    发表于 01-24 09:48

    一种重构的莫尔相干纳米激光阵列

    ,展示了纳米激光能够以“P”“K”“U”和“中”“国”等图形生成重构的阵列化相干激射。研究成果以《相位同步重构莫尔纳米激光阵列》(“Reconfigurable moiré nan
    的头像 发表于 12-16 11:42 608次阅读
    一种<b class='flag-5'>可</b><b class='flag-5'>重构</b>的莫尔相干纳米激光阵列

    为什么PCIe Retimer芯片成为未来主流解决方案呢?

    PCIe协议持续更新换代,每代升级传输速率翻倍。** 总线是为服务器主板上不同的硬件进行互相数据通信的“道路”,单位时间内数据传输量被称为带宽,即每秒传输的比特数。
    的头像 发表于 12-06 16:45 3821次阅读
    为什么<b class='flag-5'>PCIe</b> Retimer芯片<b class='flag-5'>可</b>成为未来主流解决<b class='flag-5'>方案</b>呢?