Vivado2020.1 ERROR: [Place 30-681] Sub-optimal placement for a global clock-capable IO pin and MMCM

目录

错误log:

报错路径分析:

该类型问题解决方法:

如何加物理约束?


最近跑工程,跑一个小时后place阶段报错,完整的错误截图:

错误log:

翻译一下报错log:

全局时钟IO管脚和MMCM之间非最优布局。为了解决这错误,可在IO和MMCM之间插入BUFG。

IO锁定在IOB_X1Y132 (在SLR 0区域)

MMCM被时钟布局引擎暂时放置在MMCME3_ADV_X1Y5 (在SLR1区域)

log中的SLR为Super Logic Region,多个die用SLR编号区分。

两个die之间用SSI互联(Stacked Silicon Interconnect)。

 

报错路径分析:

 

管脚输入rx_clk时钟经过IBUF直接接到MMCM。

现在布局结果 MMCM放置在 SLR1区域  MMCME3_ADV_X1Y5。

而pin 布局在SLR 0区域IOB_X1Y132。

可以看到从时钟pin到mmcm输入跨SLR,所以信号必须经过BUFG走全局时钟网络,否则就会报错。

该类型问题解决方法:

  1. log提到的修改代码,在pin与mmcm之间插入BUFG。
  2. 增加物理约束,把mmcm放置在SLR0 区域。

     个人建议资源不冲突情况下用方法2 更方便,节省综合时间。

如何加物理约束?

首先我们打开综合网吧,ctrl+f 查找BELs类型,关键字输入MMCM,回车即可得到该FPGA所有MMCM资源,如下图

 

 

整个VU440 FPGA用clock region分区

X0Y0 -> X8Y14  一共9*15=135区域

其中

SLR0 :Y0 -> Y4

SLR1 :Y5 -> Y9

SLR2 :Y10 - Y14

MMCME3_ADV_X0Y14  对应时钟区域X0Y14

MMCME3_ADV_X1Y14  对应时钟区域X7Y14

一共2*15 = 30个MMCM资源

每个mmcm资源带两个PLLE3_ADV  一共60个PLL资源

通过网表我们查看输入时钟pin属于哪个时钟区域,可以设置对象高亮在device里面直接看到,如下图所示:

 

rx_clk 输入pin用黄色标识,可以看到输入时钟管脚在时钟区域(clock region)X7Y2

管脚所在时钟区域X7Y2,该时钟区域里面包含一个MMCM,即MMCME3_ADV_X1Y2

所以新增加以下约束即可:

set_property LOC MMCME3_ADV_X1Y2 [get_cells fpga_top/eth_wrapper/rx_clk_mmcm_inst/mmcme3_adv_inst]

  • 2
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:报错信息"collect2.exe: error: ld returned 1 exit status"通常是由于链接器(ld)在链接过程中出现错误导致的。这个错误可能是由于文件格式不被识别引起的。\[1\] 引用\[2\]:根据提供的链接,这个问题可能与申请内存的地方有关。有人建议去掉申请内存的代码来简化程序。此外,还提到了一个警告信息,即"Hls::stream 'hls::stream<ap_axiu<24, 1, 1, 1> >.2' is read while empty, which may result in RTL simulation hanging"。\[2\] 引用\[3\]:根据提供的信息,这个问题发生在Linux系统上的vivado工具中。\[3\] 综合以上引用内容,这个错误可能是由于链接器在链接过程中无法识别文件格式导致的。为了解决这个问题,你可以尝试简化代码,去掉申请内存的部分,并检查是否有其他警告信息。此外,你还可以查看相关文档或寻求其他开发者的帮助来解决这个问题。 #### 引用[.reference_title] - *1* *2* [在vivado HLS2018.2中使用xfOpenCV](https://blog.csdn.net/wd1603926823/article/details/82698385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [HLS工具COSimulation时报错 libpthread.so.0: 无法添加符号: 不可识别...](https://blog.csdn.net/weixin_39544101/article/details/116955207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值