两个MMCM共享时钟输入时的严重警告和错误

情景描述:

芯片:zynq7020

问题:

设计从FPGA的U19引脚上的开发板板接收时钟输入125M,并将其送到两个MMCM。
使用软件:vivado2015.4
在Vivado中打开合成设计后,我得到以下Crticial警告:

Failed to create I/OLOGIC Route Through shape for instance MMCM_2/inst/clkin1_ibufg. Found overlapping instances within the shape: MMCM_1/inst/clkin1_ibufg and MMCM_MAC_1/inst/clkin1_ibufg.

Cannot set LOC property of ports, Instance MMCM_2/inst/clkin1_ibufg can not be placed in INBUF_DCIEN of site IOB_X1Y424 because the bel is occupied by MMCM_1/inst/clkin1_ibufg. This could be caused by bel constraint conflict

MMCM没有手工实例化,而是使用时钟向导创建的,通常,当使用MMCM IP核,它包括所有缓冲区:

输出时钟上BUFG

时钟反馈的ebufg

驱动输入时钟的IBUFG

当只有一个时钟向导核心由输入时钟驱动时,这很好,但是当你尝试使用两个时,你最终会实例化两个IBUFG(或IBUF)单元。
这是非法的。

FPGA的每个引脚都有一个且只有一个输入缓冲区(IBUF) - 你不能将两个并行放置

必须修改MMCM的输入。
如果您正在使用时钟向导,则必须从两个时钟核心的输入中移除IBUF,然后在设计的顶层手动实例化IBUF(并将输出馈送到两个时钟核心)。
但是,解决这个问题会产生另一个问题。
用于MMCM的“最佳”输入是与MMCM在同一时钟区域中的四个时钟引脚之一。
但是,在7系列中,每个时钟区域只有一个MMCM。
因此,您无法通过“最佳”输入机制从同一时钟源驱动多个MMCM。
试图这样做会产生另一个严重警告。
这可以通过将另一个MMCM(在不同的时钟区域中)的CLOCK_DEDICATED_ROUTE属性设置为“BACKBONE”来解决,假设它在时钟能力引脚的相邻时钟区域内(即时钟区域上方或下方的时钟区域)
功能引脚和其他MMCM驻留)。
这样做(使用BACKBONE)会增加一些额外的时钟延迟,而这些延迟不会被MMCM补偿 - 这会对使用MMCM在“其他”时钟区域生成的时钟的任何接口的时序产生负面影响(可能
或者对你的设计无关紧要)。
那么,下一个问题是“为什么你需要两个MMCM”? 
MMCM可以使用相同的VCO(因此相同的MMCM)生成不同的时钟输出频率和相位。
虽然有些情况下您绝对必须使用两种不同的MMCM,但如果可以的话,通常最好避免这种情况,并将两者结合起来。
那么告诉我们你在做什么需要不同的MMCM,我们可以看看它们是否可能/更好地结合起来。

何检查哪个MMCM放置在时钟引脚的时钟区域中,哪个放置在时钟区域上方/下方?
最简单的方法是在Vivado IDE(GUI)中打开设计,并在设备查看器中找到MMCM和时钟引脚。
在器件查看器中,时钟区域(和I / O bank)可清晰识别。
要查找对象,可能最容易从设计的示意图开始,并选择要查找的对象。
在原理图视图中选择对象时,它也会在设备视图中被选中并高亮显示。
有没有办法可以让工具将特定的MMCM放在时钟引脚的时钟区域,而另一个MMCM放在上/下的时钟区域?
引脚的时钟区域只有一个MMCM。
像所有资源一样,FPGA中的站点被命名 -  MMCM位置看起来像MMCME2_ADV_X0Y0
您可以通过设置单元格的LOC属性将单元格放置在站点上。
在您的XDC中,您可以做到
set_property LOC MMCME2_ADV_X0Y0 [get_cells]
我需要两个MMCM,因为我需要9个异步时钟
首先,这是很多时钟......其次,根据定义,来自MMCM的时钟都是彼此同步的。
它们之间的时序关系可能很复杂,但它们是同步的......
我可以通过使用divide_by_2逻辑生成一些时钟来最小化这个数字(9)。
我可以通过放置BUFG并使用create_clock(不是create_generated_clock)约束来在divide_by_2逻辑的输出上定义新时钟吗?
通常不建议使用结构时钟 - 这会在生成的时钟和源时钟之间引入大量偏差。
但是,你说你的时钟是异步的 - 如果你真的不关心时钟之间的关系那么你就可以做到这一点。
生成时钟作为触发器的输出并通过BUFG运行。
生成分频时钟的更好方法是使用BUFGCE或BUFHCE,每隔一个时钟启用“CE”。
这会产生频率为1/2的时钟,输出时钟与输入时钟保持同相。
但是,如果你真的希望时钟是异步的,这并不重要。
当使用BUFGCE / BUFHCE生成时钟时,您需要知道结果时钟的占空比不是50/50  - 除以2,它将是25/75。
最后,无论你做什么(结构分割器或BUFGCE / BUFHCE),我通常会用create_generated_clock限制它 - 这是一个生成的时钟,而不是主时钟。
但是 - 再次 - 如果这些时钟真正异步,这也无所谓......

原文地址:https://www.cnblogs.com/hcr1995/p/9904218.html

时间: 2025-01-04 04:51:07

两个MMCM共享时钟输入时的严重警告和错误的相关文章

两个栈共享一块存储空间新解

前段时间数据结构的作业里有一个这样的题跟大家分享一下: 若栈采用顺序存储方式存储,现两栈共享空间V[1..m], top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是( ). A. |top[2]-top[1]|=0      B. top[1]+1=top[2] C. top[1]+top[2]=m      D. top[1]=top[2] 本来这是一个很简单的问题,想必大家一眼就能得出答案是B,但我当时不知道是那根筋抽搐,自己跟自己较劲,牛

同一个tomcat多个项目共享session,一个tomcat两个项目共享sessionId

同一个tomcat多个项目共享session,一个tomcat两个项目共享sessionId >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年7月12日 http://www.cnblogs.com/fanshuyao/ 一个是2个项目,一个是web-sess

MySQL远程连接时出现10061以及1045错误时的解决方法

以前对于MySQL数据库的管理基本都是在本地,今天了解到一个比较轻便,不需安装,直接解压可用的图形界面管理工具HeidiSQL(下载地址:链接:http://pan.baidu.com/s/1nvuP2Et 密码:vry9),界面非常简洁. 1)解决10061问题 本人在按照提示进行远程连接Linux系统下的MySQL数据库时,首先遇到的是下面的问题: 图1: '10061'问题 于是乎,按照提示的错误代码查找资料,网上很多平台都说是MySQL的权限问题,需要对root用户赋予足够权限,能够允许

Nodejs发送Post请求时出现socket hang up错误的解决办法

参考nodejs官网发送http post请求的方法,实现了一个模拟post提交的功能.实际使用时报socket hang up错误. 后来发现是请求头设置的问题,发送选项中需要加上headers字段信息(这个估计也和对方的服务器有关,对于不完成的post请求头,可能被丢弃了). 完整的代码如下(遇到类型问题的同学可以做个参考): var querystring = require('querystring') , http = require('http'); var data = query

安装ipvsadm时出现下面所示错误,MARK

[[email protected] ipvsadm-1.26]# makemake -C libipvsmake[1]: Entering directory `/usr/local/soft/ipvsadm-1.26/libipvs'gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c在包含自 libipvs.h:13 的文件中

无法启动T-SQL调试。未能连接到计算器"."。这是在主机名解析时通常出现的暂时错误……

今天在按在SSMS中,按F11进行断点调试时,弹出错误:"无法启动T-SQL调试.未能连接到计算器".".这是在主机名解析时通常出现的暂时错误--", 如下图: 原来,我连接本机数据库时,习惯用 "."或者"localhost". 解决方法:关闭退出SSMS, 用计算机名称登录SSMS,就可以继续Happy地断点调试sql语句了.

SCCM 在运行某些报告时提示如下格式的错误

在运行某些报告时提示如下格式的错误 Error in XML document. Hexadecimal value 0x0C, is an invalid character Manager SCCMR2 Version 5.0.7958.1203 SQL Version 2012R2 11.0.3000.0 Operating System6.3.9600 故障现象: 在SCCM控制台(monitoring\Overview\Reporting\Reports\*)运行某些报告时会出现下面截

Javaweb项目链接sqlserver 2008R2时出现的一系列的错误

好久没有弄java,玩eclipse了,最近因为小小的原因,参加一个比赛,不得不把javaweb的东西又捡起来,所以不熟悉,再加上之前链接数据库都是用Oracle的,现在公司的电脑上又只是安装了sqlserver 2008R2,所以就试着,开发项目链接sqlserver 2008R2.从昨天晚,到今天晚,终于算是搞定了一系列的问题,当页面显示出来的一刹那,好开心.人生就像打怪兽,就得一关一关地过.仅此,记录一下,辛苦的这些岁月,这活在当下的大好青春. 01 五月 28, 2014 9:21:02

centos安装LAMP环境时访问本地MYSQL数据库错误

近日在安装LAMP环境时访问本地MYSQL数据库错误 错误如下: Warning: mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server 问题描述: 由于将安装mysql服务器文件位置修改在home目录下,造成本地访问问题. 在网上找了很久终于找到解决问题的方法: 1.先确保在本机上使用命令能登陆,如果也出现提示sock文件位置问题,那么需要修改mysql配置文件(/etc/my.cnf) 增加如下配置: [mys