zoukankan      html  css  js  c++  java
  • xilinx planahead partial reconfiguration

    1.为什么要使用reconfiguration?

    reconfiguration,即逻辑可重配,指的是FPGA的逻辑只加载指定区域(功能)的逻辑,而对除此之外的逻辑不产生影响,最常用的就是PCIe/PCI逻辑可重配,这样当我重新修改了逻辑后,pcie部分一直正常工作,上位机对pcie的读写也正常,可重配有两种方法:

    • 通过jtag加载或者selectmap接口,加载可重配逻辑;
    • 通过PCIe访问ICAP接口由上位机加载程序;

    现在讨论的是第一种。

    2.逻辑可重配如何实现?

    第一步,划分整个工程代码为固定的部分以及需要经常修改的部分,称固定代码为static logic,而经常修改的代码为reconfiguration logic;

    第二步,在ISE新建两个部分的工程,将两个工程综合,主要在生成网表的过程中,需要注意综合的选项,-iobuf,即Add I/O Buffers,在静态逻辑中需要勾选上,而在可重配逻辑中不能勾选此选项;

    第三步,新建planahead工程,将静态逻辑生成的网表以及静态工程使用的ngc文件,并且需要注意勾上使能逻辑可重配选项,添加静态逻辑ngc文件和ucf约束文件;

    第四步,设定某个module为可重配逻辑,并指定其对应的网表文件;

    第五步,设定这部分逻辑可以使用的FPGA资源;

    第六步,编译并生成代码。

    3.一些注意事项

    所有的全局资源,比如BUFG,MMCM等都不能位于可重配逻辑中,这样可重配逻辑可以使用的资源基本上只有SLICE,RAM,IO,DSP等,建议IO资源也在静态逻辑中使用,可重配逻辑只使用RAM和DSP以及slice资源。

    部分可重配逻辑里面使用的NGC通过add reconfigurable logic sources加入到工程里面。 

    4.可重配资源如何使用chipscope

    只能使用ip核生成的chipscope,无法使用图形界面。icon只能位于静态逻辑中,ila和vio可以在可重配逻辑中使用,并且需要注意,ip核生成的control管脚是inout类型,不能在可重配逻辑中使用,所以需要修改ip核文件。

    5.如何使用selectmap接口对FPGA进行反复的加载

    默认的当程序加载完成后,selectmap IO没有使能,在生成bit文件时加上-g选项,让selectmap io在加载完后使能。

    可参考的文档:第一种加载方法:ug743,第二种:xapp883

  • 相关阅读:
    [No0000199]设计模式总结
    [No0000197]Windows用户都应该知道的运行命令
    [No000017F]如何监控注册表的修改
    [No0000196]一文读懂Java 11的ZGC为何如此高效
    [No0000195]NoSQL还是SQL?这一篇讲清楚
    [No0000194]聊聊 Chrome DevTools 中你可能不知道的调试技巧
    [No000018A]改善C#程序的建议11-20
    [No000018C]Vim清除上次的搜索高亮结果-Vim使用技巧(1)
    [No000018D]Vim快速注释/取消注释多行的几种方法-Vim使用技巧(2)
    [No000018E]Vim快速跳转任意行、任意列以及高亮显示当前行、当前列方法-Vim使用技巧(3)
  • 原文地址:https://www.cnblogs.com/fpga/p/3402702.html
Copyright © 2011-2022 走看看