首页 > 其他分享 >【xilinx】解决 I/O 时钟布局器错误:UltraScale 示例

【xilinx】解决 I/O 时钟布局器错误:UltraScale 示例

时间:2024-08-25 17:55:08浏览次数:6  
标签:BUFGCE 示例 UltraScale Rule clockplacer placed SLR xilinx provisionally

示例详细信息:

设备: xcvu9p-flga2104-2-e
问题:尽管使用 GCIO 引脚作为时钟,但该工具仍返回 I/O Clock Placer 错误

错误:

<span style="background-color:#f3f3f3"><span style="color:#333333"><code>ERROR: [Place 30-675] Sub-optimal placement for a global clock-capable IO pin and BUFG pair.If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
    < set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets <input_buffer>/O] >
 
    Clock Rule: rule_gclkio_bufg
    Status: FAILED
    Rule Description: An IOB driving a BUFG must use a GCIO in the same clock region as the BUFG
 
    <input_buffer>/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X0Y338 (in SLR 1)
    The loads are distributed to 3 user pblock constraints. In addition, there are 4 loads not in user pblock constraints.
 
    Displaying first 4 loads not in user pblock constraint:
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y161 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y159 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y160 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y162 (in SLR 1)
 
    Displaying the first 10 loads for pblock constraint 1
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y154 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y155 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y167 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y166 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y156 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y165 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y157 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y158 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y164 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y163 (in SLR 1)
 
 
    Displaying the first 1 loads for pblock constraint 2
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y143 (in SLR 1)
 
 
    Displaying the first 1 loads for pblock constraint 3
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y119 (in SLR 0)
 
 
    The above error could possibly be related to other connected instances. Following is a list of
    all the related clock rules and their respective instances.
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y161 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y160 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y162 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y159 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y163 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y164 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y158 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y157 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y165 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y156 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y166 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y167 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y155 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y154 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y143 (in SLR 1)
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y119 (in SLR 0)
 
Resolution: A dedicated routing path between the two can be used if: (a) The global clock-capable IO (GCIO) is placed on a GCIO capable site (b) The BUFG is placed in the same bank of the device as the GCIO pin. Both the above conditions must be met at the same time, else it may lead to longer and less predictable clock insertion delays.
ERROR: [Place 30-675] Sub-optimal placement for a global clock-capable IO pin and BUFG pair.If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
    < set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets <input_buffer>/O] >
 
    Clock Rule: rule_gclkio_bufg
    Status: FAILED
    Rule Description: An IOB driving a BUFG must use a GCIO in the same clock region as the BUFG
 
    <input_buffer>/IBUFCTRL_INST (IBUFCTRL.O) is locked to IOB_X0Y338 (in SLR 1)
    The loads are distributed to 3 user pblock constraints. In addition, there are 4 loads not in user pblock constraints.
 
    Displaying first 4 loads not in user pblock constraint:
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y224 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y159 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y221 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y218 (in SLR 1)
 
    Displaying the first 10 loads for pblock constraint 1
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y155 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y154 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y153 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y152 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y151 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y144 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y150 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y149 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y146 (in SLR 1)
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y145 (in SLR 1)
 
 
    Displaying the first 1 loads for pblock constraint 2
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y121 (in SLR 1)
 
 
    Displaying the first 1 loads for pblock constraint 3
    <some bufg> (BUFGCE.I) is provisionally placed by clockplacer on BUFGCE_X0Y97 (in SLR 0)
 
 
    The above error could possibly be related to other connected instances. Following is a list of
    all the related clock rules and their respective instances.
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y224 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y221 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y218 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y159 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y145 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y146 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y149 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y150 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y144 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y151 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y152 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y153 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y154 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y155 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y121 (in SLR 1)
 
 
    Clock Rule: rule_bufgce_bufg_conflict
    Status: PASS
    Rule Description: Only one of the 2 available sites (BUFGCE or BUFGCE_DIV/BUFGCTRL) in a pair can be
    used at the same time
    <some bufg> (BUFGCE.O) is provisionally placed by clockplacer on BUFGCE_X0Y97 (in SLR 0)
 
Resolution: A dedicated routing path between the two can be used if: (a) The global clock-capable IO (GCIO) is placed on a GCIO capable site (b) The BUFG is placed in the same bank of the device as the GCIO pin. Both the above conditions must be met at the same time, else it may lead to longer and less predictable clock insertion delays.
</code></span></span>

这里我们有两个错误与 CLOCK_DEDICATED_ROUTE 约束中提到的同一网络相关。

使用此网络名称,当我们生成网络原理图时,我们可以获取分配给封装引脚 R34 的输入时钟端口。这可以在时钟端口的属性窗口中找到。


然后,示意图显示 17 个 BUFG 由同一端口驱动,其中一些 BUFG 已分配给 PBLOCK。

在放置端口步骤之后,当我们标记这些 BUFG 时,我们可以在设备视图中看到,除了两个之外,所有 BUFG 都放置在同一个时钟区域中,从而遵守规则表中的规则 1。 


在检查异常 BUFG 的约束时,我们发现用户 PBLOCK 强制将这两个放置在 I/O 组旁边的时钟区域之外,因此出现 CDR 错误。


用户 PBLOCK 正在将一个缓冲区分配给下面的时钟区域,并将另一个缓冲区分配给下面的第二个时钟区域。 

这种放置与规则 1 冲突,因此仅从 PBLOCK 中移除 BUFG 是正确的解决方案。没有必要将 BUFG 放入 PBLOCK 中,因为这会造成不必要的限制。

 
在后续运行中,将 BUFG 从 PBLOCK 中移除后,工具在放置过程中不会出错。

检查后发现,所有 BUFG 都被放置在同一个时钟区域,因此遵循规则 1。

 

 

标签:BUFGCE,示例,UltraScale,Rule,clockplacer,placed,SLR,xilinx,provisionally
From: https://blog.csdn.net/sqqwm/article/details/141366395

相关文章

  • 【xilinx】Vivado : 解决 I/O 时钟布局器错误:Versal 示例
    示例详细信息:设备: XCVM1802VersalPrime问题:尽管使用CCIO引脚作为时钟端口,但该工具仍返回I/O时钟布局器错误错误:<spanstyle="background-color:#f3f3f3"><spanstyle="color:#333333"><code>ERROR:[Place30-675]Sub-optimalplacementforaglobalclock-ca......
  • Java行为型设计模式-访问者模式(含二叉树场景示例)
    1.访问者模式简介访问者模式(VisitorPattern)是一种行为型设计模式,其主要目的是将数据结构与数据操作解耦。用于将数据结构和在数据结构上的操作分离开来。‌这种模式允许在不修改数据结构的情况下,定义新的操作。2.访问者模式角色访问者模式的主要角色包括:2.1抽象访问......
  • 高德地图SDK Android版开发 8 覆盖物示例2动画
    高德地图SDKAndroid版开发8覆盖物示例2动画前言动画相关的类和接口帧动画MarkerOptionsAnimation动画Animation类及其子类AnimationTranslateAnimationRotateAnimationAlphaAnimationScaleAnimationAnimationSetMarker动画示例界面布局MapMarkAnimate类常量成员变......
  • RabbitMQ 入门示例
    参考:BV15k4y1k7EpRabbitMQ相关概念及简述中简单介绍了RabbitMQ提供的6种工作模式。下面以简单模式为例,介绍RabbitMQ的使用。新建工程先新建Maven工程RabbitMQ作为父工程,在父工程下新建三个子模块:common:公共包producer:生产者consumer:消费者在三个模块中添加......
  • ensp 中 wlan 的配置过程和示例
    一、拓朴:要求:vlan20用于笔记本上网,使用Huawei信号,vlan30用于手机上网,使用Huawei-5G信号二、配置过程:        1、SW1基本配置:        起vlanbatch102030,10为管理vlan,20、30分别为办公vlan和guestvlan        到AC接口为trunk,允许vl......
  • linux下试验中间件canal的example示例-binlog日志的实时获取显示以及阿里巴巴中间件ca
    一、linux下试验中间件canal的example示例-binlog日志的实时获取显示    今天重装mysql后,进行了canal的再次试验,原来用的mysql5.7,今天重装直接换了5.6算了。反正测试服务器的mysql也不常用。canal启动后日志显示examplepreparetofindstartpositionjustshowmaste......
  • 基于SpringBoot的智慧党建系统+uniapp移动端+LW示例参考
    1.项目介绍技术栈+环境:SpringBoot+thymeleaf+uniapp+IDEA+Navicat+MySQL功能介绍:后端功能:首页管理(轮播图、通知公告、新闻管理)、用户管理(用户信息、用户反馈、用户订单、用户动态)、其他管理(题库管理、任务管理)移动端:学习模块、游戏学习模块、打卡签到、积分商城、问题咨......
  • Java行为型设计模式-状态模式(含电梯场景示例)
    1.状态模式简介状态模式(StatePattern)是一种行为型设计模式,它允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式的目的是让状态转换显式,并且使得状态转换代码集中在一个地方,不需要使用多重条件语句。状态模式(StatePattern)用于解决系统中对......
  • WebGL入门(008):WebGLObject 简介、使用方法、示例代码
    还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。No.内容链接1Openlayers【入门教程】-......
  • 批量检测微信小程序封禁状态的示例代码以及接口
    以下是一个PHP脚本示例,演示了如何批量检查多个微信小程序的封禁状态。您只需要将示例中的`appid1`,`appid2`,`appid3`替换为您实际的小程序应用ID,即可获取各个小程序的状态信息。```php<?php//需要检查的小程序AppID列表$appIds=array('appid1','appid2','a......