FPGA物理约束之布局约束

描述

约束

  在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果能够保持稳定不变,使用增量式编译是一种选择,而使用布局约束是另一种更灵活的选择。此时的布局约束,通常不会针对用户逻辑部分,而是针对一些相对固定的片内存储器或乘法器,基于第一次编译的结果进行固定布局约束的设计重用,保证后续每次新的编译不再改变其布局位置,从而达到获得相对稳定的编译结果的目的。

  这类基于设计重用的布局约束,简单易用,可以减少一定的编译时间,也无需设计者对底层器件结构非常了解。但也有其局限性,不适用于较大的设计变更,也不适合于固定太多的设计逻辑。因为这类设计重用,相当于为前期设计锁定了资源,使其占据了先发优势,而对于随后的设计变更,则因为无法分配到较优的资源,可能引起时序违规。因此,在实际工程应用中,此类固定布局约束需要谨慎使用。

  点击OpenImplemented Design,进入Implemented页面。

  Implemented页面下,如图1所示,点击菜单Layout->Floorplanning。

约束

图1 Floorplanning菜单

  接着,如图2所示,点击菜单Edit->Find。

约束

图2 Find菜单

  如图3所示,在弹出的Find对话框中,设置Find为Cells,Properties为PRIMITIVE_TYPEis BMEM。即查找设计中已经布局的所有Block Memory(FPGA片内块RAM)。

约束

图3 Find对话框

  此时,如图4所示,在FindResults列表中,出现了所有搜索到的设计中使用了BMEM的Cell。

约束

图4 FindResults列表

  如图5所示,选中所有搜索到的RAMB36E1,右键单击,弹出菜单中点击FixCells,将所有已布局的BMEM的位置固定,使其在下一次编译时不被移动。

约束

图5 FixCells菜单

  如图6所示,可以选择FindResults中的任意一个Cell,查看其Cell Properties,其STATUS项都已被修改为了FIXED。

约束

图6 查看BMEM属性

  如图7所示,可以直接点击保存按钮,覆盖到当前的xdc文件中。

约束

图7 SaveConstraints按钮

  如图8所示,也可以点击菜单File->Constraints->SaveAs创建新方案存储约束脚本。

约束

图8 SaveConstraints As菜单

  如图9所示,新的约束设置将会另存到新创建的约束方案constrs_2中。

约束

图9 SaveConstraints As对话框

  最后,如图10所示,在Source面板中可以看到,新创建的约束方案constrs_2被高亮为active状态,同时打开其下的约束文件at7.xdc,set_property BEL或set_property LOC脚本即刚添加的布局约束。重新编译后,约束将会生效。

约束

图10 约束脚本文件

  审核编辑:汤梓红

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分