当前位置:   article > 正文

Vivado 布局布线约束之pblock

布线约束

对于某些特殊的FPGA工程,可能会存在部分对于布局布线有较为精确要求的模块。此时,将这些逻辑约束在FPGA的特定位置上是一个较好的解决方案。

关于pblock的使用可以参考文章布局约束Pblock设置方法_evlpr8的博客-CSDN博客,这篇写得相当详细。这里说两个我实际使用pblock时遇到的问题。

一. pblock 和 LOC 的优先级问题

由于项目中存在部分需要用BEL和LOC的进行布局约束的逻辑资源,这些资源分布于工程的各个模块中。如果将该部分资源与pblock约束的逻辑资源交叉的部分分离开来,即使是使用GUI而非修改xdc,也会显得十分麻烦。

而在实现工程时,在对pblock的约束语句中,可以将所有二级模块都放到该pblock中,随后对于需要使用BEL和LOC进行约束的逻辑资源,再额外添加相应的约束语句。目前看来BEL和LOC执行的优先级是高于pblock的add_cells_to_pblock命令的。

        这一操作会在message里留下warning:[DRC LOCE-1] Pblock ranges contradict LOC constraints on logic assigned to the Pblock: Pblock pblock_1's ranges fail to contain LOC constraints on assigned instance block3/XLXI_1/XLXI_8/XLXI_1/XLXI_1 (and 1516 other instances). 但是实现结果是符合预期的。

二. pblock的IS_SOFT属性

        在将模块逻辑资源的布局布线全部约束在给定的pblock区域之后,有时候会发现部分未被约束的逻辑资源被放置到了pblock之外的位置上,即使pblock内部的逻辑资源是充足的。这可能是VIVADO在pblock约束和最小时序违例中进行均衡的结果。通过使用以下语句:

        set_property IS_SOFT FALSE [get_pblocks pblock_1]

        可以修改pblock的 IS_SOFT 属性,该属性为FALSE时,所有的逻辑资源都不会被放置在pblock之外,除了使用BEL和LOC进行约束的部分。

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/988247
推荐阅读
相关标签
  

闽ICP备14008679号