手动锁定方法:

implementation------sch-----fixed routing

手动布线:

implementation----open ---------floorplanning -----leafcells -----mark/highlight ------move.

1,VIVADO如何手动布局布线

我现在设计了一个延时模块,应用后需要把该模块的布局和布线全部锁定,然后在别的项目中直接调用。现在布局没有问题。可以通过约束文件来锁定,就是布线不能大范围锁定,否则应用时会失败。我已经尝试过增量编译(调用DCP文件)的功能,发现在增量编译中布局布线并不是全部不变的,个别走线也是会变的。请问有办法把布线也固定下来吗?(Tool: Vivado17.3   Device: K7)

谢谢!

回复: Vivado下如何锁定设计模块的布局布线

Hi, @sopc_li ,

如果你用的是Ultrascale/Ultrascale+ , 我觉得PR是个不错的选择,你的目标模块可以放在静态部分,只占据很小的一块面积,剩下大块的动态部分.

但是7系列有很多primitive不能放在动态,静态的部分包含的逻辑过多,剩下供你修改的逻辑偏少,不太适合目前的应用场景.

关于锁定某一个net的布线路径,请参考以下步骤:

  1. 打开跑完布局布线的工程,Open Implemented Design
  2. 找到你要锁定布线的net,选中,右键菜单点击Fixed Routing,如下图所示:

3. Tcl Console里面会打印出一些命令,然后在Tcl Console里面敲命令:write_xdc <path>/dirt.xdc

4. 打开导出的xdc,在最下面的部分会有所有元件的位置锁定以及FIXED_ROUTE,示例如下:

5. 另外还需注意的是,负载中有LUT的话需要将LUT的输入pin也锁住。以下图的LUT2为例,在其property窗口中找到Cell pins,信号是连到LUT2的I0端,映射到BEL pin是A3。

因此上述导出的位置锁定约束中还有一个LOCK_PINS的设置:

set_property LOCK_PINS {I0:A3} [get_cells clk_gen_i0/rst_meta_i_1]

6. 将这部分有关锁定的约束拷贝到你工程的约束文件中,重新跑implementation,这条线会按照原先的结果布。

来源:

https://forums.xilinx.com/t5/Vivado/Vivado下如何锁定设计模块的布局布线/td-p/885693

2,很多时候工具并不能解决代码的布局布线问题,通常需要手动调整位置,过程如下:

工具自动布局布线,报错,如:

这个报错有可能是在P&R,也有可能是在bit文件产生的DRC过程。

打开布局布线后的设计;
Report utilization ,便于找到设计中需要更改的component,如上图就需要找到IDELAYCTRL的位置;

3. 找到component

4. 右键Mark和highlight 便于定位;

注意要在Floorplan 窗口内。

5. 手动拖拽到合适的位置,XDC会有相应的语句。

6. 添加DCP文件布局布线,很快能够产生新的结果;

注明:vivado 没有FPGA Editor小工具,但手动布局的方法依然适用,很多布局不通过的设计依然需要工程师手动LOC component位置。
建议工程师多打开布局布线后的设计,了解设计实现结果和FPGA的底层。

来源于:http://xilinx.eetrend.com/d6-xilinx/blog/2016-06/10158.html

VIVADO如何手动布局布线相关推荐

  1. 用Tcl定制Vivado设计实现流程

    http://xilinx.eetop.cn/viewnews-2359 介绍了Tcl的基本语法以及如何利用Tcl在Vivado中定位目标.其实Tcl在Vivado中还有很多延展应用,接下来我们就来讨 ...

  2. vivado 如何创建工程模式_用Tcl定制Vivado设计实现流程

    原标题:[Vivado使用误区与进阶]用Tcl定制Vivado设计实现流程 上一篇<Tcl在Vivado中的应用>介绍了Tcl的基本语法以及如何利用Tcl在Vivado中定位目标.其实Tc ...

  3. 通过keil使用汇编语言生成二进制文件,并使用vivado仿真cortexm0处理器

    本文为<ARMCortex-M0全可编程SoC原理及实现面向处理器.协议.外设.编程和操作系统>一书的大体复现,由于版权问题,本文不附加该书资源,请自行搜索 其余相关资料:链接:https ...

  4. 【雪天鱼】(2) PYNQ_Z2从Vivado到SDK开发流程

    文章目录 一.Vivado中手动添加Pynq-Z2板卡文件 二.Block Design 2.1 新建工程 2.2 Block design 三.SDK开发 3.1 Create Platform P ...

  5. FPGA基础学习 -- 内部结构之CLB

    目录 1. 总览 2. 可配置逻辑单元 2.1 6输入查找表(LUT6) 2.2 选择器(MUX) 2.3 进位链(Carry Chain) 2.4 触发器(Flip-Flop) 参考文献: 一直以来 ...

  6. 基于ISE的设计实现基础

    所谓实现(Implement)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的.实现主要分为3个步骤:翻译(Transla ...

  7. 紫光同创国产FPGA学习之Design Editor

    这一篇也是从紫光参考书里面拷贝出来的.这个design editor我很少用.你们凑合的看吧. 一.       功能介绍 该文档详细描述了Design Editor(下文简称DE)的各项功能,使用方 ...

  8. FPGA经验谈系列文章——时序不过怎么办

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA经验谈系列文章--时序不过怎么办 前言 如果设计验证和测试已经接近尾声,偶尔进行小改可能出现几条时序违例的情况 逻辑级数过大引 ...

  9. 无敌简单hls入门教程

    文章目录 hls数据类型 新建hls工程 矩阵乘法示例 1.新建工程 2.编码 3.编译 4.Run C Simulation 5.C Synthesis 选择顶层函数 Synthesis结果分析 6 ...

最新文章

  1. 一些windows下调试网络的命令行
  2. java中的快速生成代码
  3. ABAP Submit 用法解析
  4. replaceAll的坑
  5. Java黑皮书课后题第6章:**6.28(梅森素数)如果一个素数可以写成2^p-1的形式,其中p是某个正整数,那么这个素数就称作梅森素数。编写程序,找出p≤31的所有梅森素数,然后显示如下结果
  6. linux 应用网络连接失败的原因,PuTTY网络错误:软件导致连接中止
  7. 作者:张坦(1989-),女,西安交通大学管理学院信息系统系博士生
  8. 乒乓球(洛谷-P1042)
  9. java程序的开发步骤为,开发与运行Java程序需要经过的三个主要步骤为: ( )、( )、( )...
  10. mysql分组查询统计求和
  11. opencv中的Mat、CvMat以及IplImage介绍以及三者之间的转换
  12. 帆软高级函数应用之文本函数
  13. 吾智商低,对于VS的char实在是不知所云
  14. Hyper-V Windows 8.1 Windows Server 2012 R2 QA
  15. Java项目演示第23期在线购书商城系统
  16. 拉钩教育高薪训练营学习笔记——分布式理论与分布式架构设计理论
  17. 【WebGoat习题解析】Parameter Tampering-Bypass HTML Field Restrictions
  18. 最小二乘法求拟合曲线(中线)的斜率和截距
  19. 宋红康jvm学习p1-100
  20. Office快捷键之王,这个键应该没人不服

热门文章

  1. 如何在Google Chrome浏览器中举报网络钓鱼和恶意网站
  2. WebService为什么不如RESTful API流行
  3. CSS制作垂直口风琴2
  4. 睢宁微服务平台下载_掌上睢宁app下载-掌上睢宁官方版下载v1.0-飞飞世界
  5. 《我喜欢你》:大叔与萝莉的爱情
  6. GPS定位系统源码,通用系统源码包含GPS行业核心功能可轻松开发出各类行业应用
  7. ansible踩坑——环境变量问题
  8. 关于 MATLAB 你首先要会的基础(权且可当做期末复习备考)
  9. 购买价格与商品价格和SKU价格的关系
  10. 包装大小与商品价格问题