应用PlanAhead 进行布局规划
FloorPlanning 工具是PlanAhead 的一个组成部分,用它可以对FPGA 设计进行分析,首先找到设计中的时序问题或者拥塞的问题,然后再通过使用PloorPlanning 约束,以指导实现工具产生更优的结果。例如,使用LOC 约束可以将Pblock(Phisical Block Region)中的逻辑对象锁定在一个位置或者锁定在一个区域。

为了有效地使用FloorPlanning,必须对Xilinx 的器件结构有较深入的了解,如果不熟悉器件结构,那么通过FloorPlanning 工具生成的布局约束,非但不会提高设计性能,很多情况下还会使系统性能下降。用FloorPlanning 进行布局规划,没有一种现成的、“正确”的规划方案,而是需要经过设计者多次尝试,从而找到合理的规划方案。

1. 指定关键逻辑到Pblock 中。

此处我们继续使用10.5 节所用实例,从图10-68 时序分析结果可以看到,此设计有多处时序违例,主要是usbEngine0 和usbEngine1 模块。其实,可以用多种方式使此处时序收敛,我们这里只是介绍一种用FloorPlanning 进行时序收敛的方法。在【Netlist】窗口选择usbEngine0 模块,在其右键菜单中选择【Draw Pblock】,用鼠标左键在【Device】窗口画一个矩形框,并可以通过鼠标拖拉调整矩形框大小,使其可以容纳所有usbEngine0 所需资源。如图10-75 所示。用同样的方法创建usbEngine1 的Pblock。

图10-75 创建Pblock

2. 手动添加LOC 位置约束。

运行Ctrl+F,打开图10-76 查找对话框,按图中所示设置查找条件,单击【OK】开始查找。图10-77 为查找结果。
在图10-78 所示的【Device】窗口,单击工具栏的(Create Site Constraint Mode)图标,进入创建位置约束模式。在图10-77 的查找结果窗口选择一个BRAM16,用鼠标拖放到【Device】窗口,找到一个BRAM 资源并释放,这样就为设计中的BRAM16 指定了一个物理位置。

图10-76 查找条件设置 图10-77 查找结果 图10-78 BRAM 位置约束

用这种方法可以指定设计中BUFG、DCM、Port、PPC、MGT 等元素的位置。这里创建的位置约束,是一个固定的约束,会被写入UCF 文件中,它与从ISE 导出的约束有所不同,ISE 导出的约束是不固定的,在【Device】用不同的颜色标识。

建立LOC 约束,除了这里介绍的方法,还可以单击(Create BEL Constraint Mode)按钮,创建基于Slice 的位置约束。

单击(Assign Instance Mode)按钮,创建例化元件的位置约束。
单击【Edit】→【Undo】或者按钮,可以取消位置约束的操作。

3. 查看FloorPlan 的实现结果。

在PlanAhead 主界面,切换到【Floorplan – fp_usb_timing】视图,如图10-79 所示,单击【Design Runs】标签,可以看到impl_2 的实现结果中Timing Score 为0,说明此实现已满足到时序要求。

图10-79 【Floorplan – fp_usb_timing】视图

4. 锁定关键逻辑。
FPGA 设计中,逻辑模块的性能经常是不确定的,多次实现结果可能出现较大的差别,为了保证实现的一致性,一个方法就是锁定关键逻辑的位置,例如BRAM 和DSP 资源,这些资源的布局经常会对设计性能产生比较大的影响。我们可以先运行布局布线产生一个满足时序的实现结果,再将这个结果中的BRAM 和DSP 的位置锁定,作为约束指导下次布局布线的参考。

下面介绍锁定BRAM 和DSP 位置。

在PlanAhead 主界面,切换到【Floorplan – fp_usb_timing】视图,单击【Design Runs】标签,可以看到impl_2实现结果中Timing Score 为0,说明此实现已满足到时序要求,如图10-79 所示,双击打开此实现结果。运行【Edit】→【Find】,按照图10-80 所示设置查找条件,找到设计中所有的BRAM和DSP 资源。

查找结束后,在【Find Results】视图中任意选择一个元素,按Ctrl+A 键,选择所有BRAM 和DSP 元素,在右键菜单中选择【Fix Instances】,这样就锁定了布局布线后的BRAM 和DSP 位置。这个位置约束会被写入UCF 文件,作为下次实现的指导。

5. 保留与usbEngine 相关的位置约束,删除其余位置约束。

在【Physical Hierarchy】视图中选择usbEngine Pblocks,在右键菜单中单击【SelectPrimitives】,如图10-81 所示。

图10-80 查找 图10-81 选择usbEngine关键逻辑原语

运行【Tools】→【Clear Placement Constraints】,弹出图10-82对话框,选择将要清除的布局类型为【Instance placement】。

单击【Next】按钮,弹出图10-83所示对话框,选择将要清除的布局对象,这里选择【Unplace all except for 8923 selected instance】。

图10-82 选择布局类型 图10-83 【Clear Placement Constraints】对话框

单击【Next】按钮,弹出图10-84所示对话框,选择布局对象中哪些逻辑元素可以被清除,这里保留默认值。

图10-84 清除布局约束的实例类型 图10-85 仅保留usbEngine关键逻辑布局结果

单击【Next】按钮,在后续出现的对话框中,保留默认选项,在最后一个对话框中单击【Finish】,就会清除关键逻辑usbEngine部分的所有布局布线。

新的布局约束结果如图10-85所示。在【Device】窗口的右键菜单中选择【Fix instances】,usbEngine关键逻辑的布局约束被写入UCF文件,指导ISE布局布线。

需要注意的是,布局约束仅锁定了逻辑资源的位置,不会锁定布线,在实现结果中,布线结果仍会有差异。

应用PlanAhead 进行布局规划相关推荐

  1. 全球及中国生物质能利用产业现状调研及十四五建设布局规划报告2021-2027年

    全球及中国生物质能利用产业现状调研及十四五建设布局规划报告2021-2027年 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- [修订日期]:2021 ...

  2. FPGA 的布局规划艺术

    FPGA 的布局规划艺术 布局规划是为设计增加布局布线约束的过程.一个大型高速设计的布局规划是实现时序收敛的关键.好的布局规划可以大大提高设计性能,并确保设计结果的质量.差的布局规划具有相反的效果,使 ...

  3. ICC布局规划---1

    ICC布局规划  写在前面的标注: 这里的流程参照guide,以及微信公众号:数字集成电路设计及EDA教程  首先,简单的介绍一下floorplan的重要性,在之前的我学完成,本人之前的学Encoun ...

  4. 全球及中国泵真空系统行业发展战略与十四五布局规划报告2022版

    全球及中国泵真空系统行业发展战略与十四五布局规划报告2022版 --------------------------------------- [修订日期]:2021年12月 [搜索鸿晟信合研究院查看 ...

  5. endcap和welltap_ICC布局规划

    写在前面的标注:这里的流程参照guide,以及微信公众号:数字集成电路设计及EDA教程 首先,简单的介绍一下floorplan的重要性,在之前的我学完成,本人之前的学Encounter忽略这个,这里特 ...

  6. 数字IC后端流程——(二)布局规划Floorplan

    参考博客原址:https://blog.csdn.net/weixin_46752319/article/details/107313770 ICC布局规划 Floorplan是ICC设计流程中非常重 ...

  7. ICC图文流程——(二)布局规划Floorplan

    ICC布局规划 Floorplan是ICC设计流程中非常重要的一环,Floorplan的好坏直接影响到设计的timing和布线布通率, 很多时候流程中反复主要发生在这步. 在ICC student l ...

  8. 中国航空物流行业运行现状与总体布局规划报告2022版

    中国航空物流行业运行现状与总体布局规划报告2022版 --------------------------------------- [修订日期]:2021年12月 [搜索鸿晟信合研究院查看官网更多内 ...

  9. 全球及中国城市轨道交通与设备行业布局规划策略及投资模式分析报告2021-2027年版

    全球及中国城市轨道交通与设备行业布局规划策略及投资模式分析报告2021-2027年版 HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS--HS-- ...

最新文章

  1. TCP/IP详解--学习笔记(5)-IP选路,动态选路,和一些细节
  2. 计算机更改本地用户,win10电脑更改本机账户名的详细步骤(图文)
  3. 可扫爆服务器系统,可扫可爆云服务器
  4. 4.10/4.11/4.12 lvm讲解 4.13 磁盘故障小案例
  5. python曲面图颜色渐变方向_matplotlib三维曲面的透明度和颜色渐变?
  6. 2020前端最新面试题(vue篇)
  7. Celery实现定时任务crontab
  8. python3 x和python2 x区别_Python3.x和Python2.x的区别(转存参考)
  9. Android添加拍照功能,Android相机开发(二): 给相机加上偏好设置
  10. 如何从应用直接跳转AppStore 电话 短信 邮件
  11. android自动修音,唱吧自动修音app下载-唱吧自动修音 安卓版v8.6.0-PC6安卓网
  12. java画图类_JAVA绘图类_Graphics
  13. 手把手教你使用Bitvise Tunnelier设置SSH代理服务器
  14. 【图像处理】图像锐化的工作原理和算法实现(matlab实现)
  15. apache更改网站目录
  16. 算法:(二)枚举(穷举)算法
  17. 高精度除法:高精度除以低精度
  18. java非标准包_javac的标准程序有哪些?非标准的有哪些?
  19. CString时间字符串,COleDateTime,CTime类之间的转换
  20. 信号与系统作业讲解视频勘误

热门文章

  1. Server2008 RMS測試
  2. java编程思想 入门_java编程思想学习(基础)
  3. 免费云服务器无限流量,云服务器弄无限流量
  4. android 获取网卡mac_在Android机顶盒上 怎么样获取有线网卡MAC地址?
  5. java option作用_java – 类Option [T]的意义是什么?
  6. oracle12c 新特性,12c Oracle数据库新特性汇总
  7. 博达交换机镜像端口配置_“量身定制”的轨道交通工业以太网交换机,RT FORUM2019春季大会智慧解决方案12...
  8. 对图像数据最主要的预处理: Resize
  9. 第十六届全国大学生智能车竞赛赛道审核 - 东北赛区第三批赛道审核
  10. 智能车竞赛自动裁判系统