分享

VIVADO中PBlock的使用方法

 追逐四叶 2020-12-07

Pblock的作用和意义

在VIVADO的实现的布局中,可以利用PBlock将某一个或某几个Cell(模块单元)固定在Device的固定区域上。如此,可以实现该模块内部的时序收敛,并且,该工具对于可重配置工具的使用也是必不可少的。

Pblock的实现过程

如下图所示,当前工程综合完毕之后,打开综合设计,并将VIVADO切换到Floorplanning界面。此时,VIVADO会自动跳出Netlist和Device窗口。然后选中Netlist中的需要进行PBlock的某一个或某几个Cell,点击Tools ==> Floorplanning ==> Creat Pblocks,在弹出的界面中点到finish即可。图1此时就建立好了相应的Pblock,但是并没有指定位置和大小。在Physical constraint窗口中右击生成的Pblock,点击Set block size,然后就可以在Device窗口手动画出这个Cell的布局的位置了。
图2
确定之后,在block properties中就可以看到当前Cell所需的资源以及所制定矩形框内所包含的资源了。如果出现红色字体,说明所指定区域资源不够,则需要重新划定位置,然后保存即可。在保存之后,可以在constraint文件中查看到生成该Pblock的TCL语句。

至此,一个基本的pblock就完成了。

Pblock的更进一步的实现

  • 在创建了pblock之后,再进行实现,在打开的实现结果上可以看到,所指定的Cell被限制在了划定的区域中。但是也可以看到,在该区域中不仅有指定Cell的逻辑资源,也有其他模块的逻辑资源。如果想要在该区域内仅仅有指定Cell出现,需要在constraint中添加以下XDC语句:
    set_property EXCLUDE_PLACEMENT true [get_pblocks pblock名字]

  • 在综合设计界面,当手动划定了pblock区域之后,如果觉得大小不合适,可以在Device中选中该pblock,然后点击Tools ==> Floorplanning ==> Place Pblocks,划定区域就会根据Cell所使用的资源重新调整位置和大小。

  • 在上面的操作下,生成的pblock只能将指定Cell的逻辑资源(图2所示)限制在指定区域中,但是布线资源可能会超出该区域,如果需要同时限制布线资源,需要在constraint中添加以下XDC语句:
    set_property CONTAIN_ROUTING true [get_pblocks pblock名字]


关于部分重配置,有如下文档可供参考:
Xilinx 7系列FPGA可重配置 1
Xilinx 7系列FPGA可重配置 2

上述两个文档都是基于 VIVADO 2017 以上版本的,在目前使用的 2015.2 版本 VIVADO 中暂时没有找到相应的入口,后续有时间再研究吧。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多