VIVADO如何手动布局布线

手动锁定方法:

  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 /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的位置;

VIVADO如何手动布局布线_第1张图片

 

3. 找到component

VIVADO如何手动布局布线_第2张图片

 

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

VIVADO如何手动布局布线_第3张图片

 

注意要在Floorplan 窗口内。

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

 

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

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

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

你可能感兴趣的:(VIVADO如何手动布局布线)