情景描述:

芯片: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限制它 - 这是一个生成的时钟,而不是主时钟。
但是 - 再次 - 如果这些时钟真正异步,这也无所谓......

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

  1. 有关 GCC 及 JNA 涉及动态库/共享库时处理库文件名的问题

    动态库尤其是共享库在 Linux 环境下普遍存在库文件名包含版本号的情况,比如 Linux 环境下经常会发现一个共享库的真实文件名是 libfoo.so.1.1.0,而同时会有多个指向该真实库文件的软 ...

  2. CreateFileMapping共享内存时添加Global的作用

    来源:http://www.cnblogs.com/elvislogs/articles/ShareMemory.html 通常使用CreateFileMapping建立共享内存时名称中没有加入&qu ...

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

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

  4. Oracle RAC:使用 NFS 共享存储时的 mount 选项 总结

    oracle rac 使用nfs作为共享存储时,mount的选项有 要求,不能随便设置 grid的要求:      rw,bg,hard,nointr,rsize=32768,wsize=32768, ...

  5. Mac、Linux下两个Emacs共享一个配置文件

    Mac.Linux下两个Emacs共享一个配置文件 有些嵌入式的实验需要在Linux进行,就安装了RHEL6.4的虚拟机,下载并编译了Emacs. 在Linux的.emacs文件中加入以下语句,即可引 ...

  6. react中IOS手机里面两个input同时存在时,聚焦focus失效解决办法

    最近在做webapp搜索功能时,用到两个input同时存在时,轻点input聚焦时,ios手机软键盘弹起又失效,一直在寻找合理的解决办法,现在最简单的总结回顾: <一>bug显示 < ...

  7. L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误(转)

    L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误   错误描述:“ L2TP连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到了一个处理错误” 只有这个没有错误码. ...

  8. 删除表空间时,遇到了ORA-14404错误

      Oracle中删除表空间时,遇到了ORA-14404错误.   错误信息如下: SQL> DROP TABLESPACE PART1 INCLUDING CONTENTS AND DATAF ...

  9. SQL2008、SQL2013 执行Transact-SQL 语句或者批处理时发生了异常。错误5120

    附加数据库的时候遇到问题,问题描述如下: 附加数据库 对于 服务器"服务器名"失败.(Microsoft.SqlServer.Smo) 执行Transact-SQL 语句或者批处理 ...

随机推荐

  1. 设置tomcat开机自启和后台运行

    前言:程序登录遇到了问题,重启服务器上的tomcat后程序可以正常的使用,是通过进入bin目录,双击startup.bat运行启动的程序,此时会弹出启动窗口,而且该窗口不能关闭,这个窗口是tomcat ...

  2. Xilinx FPGA引脚txt文件导入excel中

    需求 为了把xilinx FPGA的官方引脚文件txt转成excel文件(实际官网中有对应的csv文件就是excel文件了...) xilinx FPGA引脚地址:https://china.xili ...

  3. 【CSA35G】【XSY3318】Counting Quests DP 拉格朗日反演 NTT

    题目大意 zjt 是个神仙. 一天,zjt 正在和 yww 玩猜数游戏. zjt 先想一个 \([1,n]\) 之间的整数 \(x\),然后 yww 开始向他问问题. yww 每次给 zjt 一个区间 ...

  4. C# 将前端传来的图片文件分别以大图和缩略图保存

    HttpPostedFile pic_upload = Request.Files["file"]; Bitmap bitmap = (Bitmap)System.Drawing. ...

  5. did not finish being created even after we waited 189 seconds or 61 attempts. And its status is downloading

    did not finish being created even after we waited 189 seconds or 61 attempts. And its status is down ...

  6. Re.FFT

    前言 上虽然算是学过了但是实质上还是根本什么都不会 看大佬们的模板去A了模题(手动滑稽) 于是下定决心要理解FFT的代码 一些的证明主要是从算法导论和两位大佬的博客上学的 大佬1  大佬2 在这过程中 ...

  7. 【redis】redis5.0的一些新特性

    redis5.0总共增加了12项新特性,如下: 1.新增加的Stream(流)数据类型,这样redis就有了6大数据类型,另外五种是String(字符串),Hash(哈希),List(列表),Set( ...

  8. wordpress文章链接怎么把默认的别名改成id形式和伪静态设置

    别名默认是文章标题,打不开,改成英文形式可以打开,但这样很不方便,还有可能重复.怎么改成按文章id自动生成相应链接呢 找到设置---固定链接----把默认的日期和名称型改成自定义结构把末尾的%post ...

  9. 将CSV文件存为HTML文件形式

    # -*- coding: utf-8 -*- """ Created on Mon Apr 29 09:24:04 2019 @author: history &quo ...

  10. (模拟 打好基础)nyoj1363-计划日

    1363-计划日 内存限制:256MB 时间限制:3000ms 特判: No通过数:21 提交数:79 难度:1 题目描述: 为什么花那么多时间.精力还是学不好学不通,如何把握各科目的重难点,期中和期 ...