Vivado中PBlock的使用方法

版权声明:本文为CSDN博主「德云boys」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45534768/article/details/103897691

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

Pblock的实现过程
如下图所示,当前工程综合完毕之后,打开综合设计,并将VIVADO切换到Floorplanning界面。此时,VIVADO会自动跳出Netlist和Device窗口。然后选中Netlist中的需要进行PBlock的某一个或某几个Cell,点击Tools ==> Floorplanning ==> Creat Pblocks,在弹出的界面中点到finish即可。

此时就建立好了相应的Pblock,但是并没有指定位置和大小。在Physical constraint窗口中右击生成的Pblock,点击Set block size,然后就可以在Device窗口手动画出这个Cell的布局的位置了。

确定之后,在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名字]

最新文章

最新文章