锁相环PLL默认输入前端有个IBUFG单元,在输出端有个BUFG单元,而两个BUFG(IBUFG)不能相连,所以会报这样的错:

ERROR:NgdBuild:770 - IBUFG 'u_pll0/clkin1_buf' and BUFG 'BUFG_inst' on net

   'clkin_w' are lined up in series. Buffers of the same direction cannot be

   placed in series.

ERROR:NgdBuild:924 - input pad net 'clkin_w' is driving non-buffer primitives:

如下示例代码:

[Demo1]

 1 // demo1 two bufg connect
 2
 3 module iobuf(
 4
 5    input   clk,
 6
 7    input   rst,
 8
 9    output  led
10
11    );
12
13  wire clkin_w;
14
15  BUFG BUFG_inst(
16
17       .O(clkin_w),           // Clock buffer output
18
19       .I(clk)                   // Clock buffer input
20
21      );
22
23  pll0 u_pll0(
24
25       .CLK_IN1(clkin_w),      // IN
26
27       .CLK_OUT1(clkout),  // OUT
28
29       .RESET(rst));       // IN
30
31 assign led = clkout;
32
33 endmodule

普通IO不能直接做锁相环的输入,所以会报这样的错:

ERROR:Place:1397 -  A clock IOB / MMCM clock component pair have been found that

   are not placed at an optimal clock IOB / MMCM site pair. The clock IOB

   component <clk> is placed at site <A18>. The corresponding MMCM component

   <u_pll0/mmcm_adv_inst> is placed at site <MMCME2_ADV_X0Y0>. The clock IO can

   use the fast path between the IOB and the MMCM if the IOB is placed on a

   Clock Capable IOB site that has dedicated fast path to MMCM sites within the

   same clock region. You may want to analyze why this problem exists and

   correct it. If this sub optimal condition is acceptable for this design, you

   may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote this

   message to a WARNING and allow your design to continue. However, the use of

   this override is highly discouraged as it may lead to very poor timing

   results. It is recommended that this error condition be corrected in the

   design. A list of all the COMP.PINs used in this clock placement rule is

ERROR:Pack:1654 - The timing-driven placement phase encountered an error.

如果有ucf中加上这句约束:

1 NET clk          CLOCK_DEDICATED_ROUTE = FALSE;

依旧会报错,在ZYNQ7000系列,这样还是通不过,如下:

ERROR:PhysDesignRules:2256 - Unsupported MMCME2_ADV configuration. The signal

   u_pll0/clkin1 on the CLKIN1 pin of MMCME2_ADV comp u_pll0/mmcm_adv_inst with

   COMPENSATION mode ZHOLD must be driven by a clock capable IOB.

ERROR:Pack:1642 - Errors in physical DRC.

如下示例代码

[Demo2]

 1 // demo2 regular io directly connect to PLL
 2
 3 module iobuf(
 4
 5     input clk,
 6
 7    input     rst,
 8
 9    output   led
10
11  );
12   13
14
15  pll0 u_pll0(
16
17     .CLK_IN1(clk),      // IN
18
19     .CLK_OUT1(clkout),  // OUT
20
21     .RESET(rst));       // IN
22
23 assign led = clkout;
24
25 endmodule

使用普通的IO,再连接bufg来连到时钟线上,

仍会报这样的错误,因为还是两bufg相连了:

ERROR:NgdBuild:770 - IBUFG 'u_pll0/clkin1_buf' and BUFG 'BUFG_inst' on net

   'clkin_w' are lined up in series. Buffers of the same direction cannot be

   placed in series.

ERROR:NgdBuild:924 - input pad net 'clkin_w' is driving non-buffer primitives:

修改为如下:

[Demo3]

 1 // dem3 regular io with BUFG then connect to PLL which with"No Buffer" setting
 2
 3  module iobuf(
 4
 5    input  clk,
 6
 7    input  rst,
 8
 9    output  led
10
11    );
12
13  wire clkin_w;
14
15  BUFG BUFG_inst (
16
17       .O(clkin_w),           // Clock buffer output
18
19       .I(clk)                   // Clock buffer input
20
21    );
22
23  pll0 u_pll0(
24
25     .CLK_IN1(clkin_w),      // IN
26
27     .CLK_OUT1(clkout),  // OUT
28
29     .RESET(rst));       // IN
30
31 assign led = clkout;
32
33 endmodule

PLL的设置如下图,

这样普通IO就可以当作PLL的时钟输入了,顺利产生bit;

时钟还是最好用全局时钟IO,画图时一定要注意:)

zc702里没有global clock的概念了,但有了很多专用时钟脚,用起来一样;

[结论]

不能将两个PLL进行串联

普通IO不能直接作PLL的时钟输入,专用时钟管脚可以;

普通IO可以通过BUFG再连到PLL的时钟输入上,但要修改PLL的设置 input clk的选项中要选择"No Buffer";

具体内部布局分配可以通过 Xilinx的FPGA Editor来查看,

ZYNQ的时钟管理也和之前的片子略有不同,之后在另一篇介绍,相关文档 <ug472_7Series_Clocking.pdf>

转载于:https://www.cnblogs.com/kybyano/p/8179830.html

FPGA小白学习之路(2)error:buffers of the same direction cannot be placed in series相关推荐

  1. FPGA error:buffers of the same direction cannot be placed in series.

    锁相环PLL默认输入前端有个IBUFG单元,在输出端有个BUFG单元.而两个BUFG(IBUFG)不能相连,所以会报这样的错误. ERROR:NgdBuild:770 - IBUFG 'u_pll0/ ...

  2. FPGA小白学习之路(5)clk为什么要用posedge,而不用negedge(转)

    clk为什么要用posedge,而不用negedge 转自:http://www.cnblogs.com/dangxia/archive/2012/03/07/2383744.html Verilog ...

  3. FPGA小白学习之路——调用rom

    在这次小测试中使用的是Xilinx的ise软件 1.调用rom,并且将*.coe文件初始化进rom里 2.编写顶层模块rom_top.v 将rom例化进rom_top.v里面 module rom_t ...

  4. 数据清洗的基本流程_数据分析小白学习之路(三)——Excel多练熟能生巧

    谈到数据分析,我们可能第一时间想到python.SQL.Tableau.帆软.R等,但是这些软件.语言要入门掌握.系统学习起来耗时较长.这时候不得不提到excel这个"平平无奇数分小能手&q ...

  5. excel取整函数_数据分析小白学习之路(三)——Excel多练熟能生巧

    谈到数据分析,我们可能第一时间想到python.SQL.Tableau.帆软.R等,但是这些软件.语言要入门掌握.系统学习起来耗时较长.这时候不得不提到excel这个"平平无奇数分小能手&q ...

  6. python请输入第一个数请输入第二个数_Python小白学习之路(四)——第一次练习题...

    写在前面: 今天下雪了呢!连着两天都没有更新学习记录. 我没有偷懒呢.做了一天的练习题,昨天学的内容还没总结完,太累了就回去睡觉了 连续一周早起,强大的内心也无法支撑我疲惫的身体 今天早起做了整理.加 ...

  7. 小白学习之路,网络编程(上)

    一,计算机网络基础 在讲网络编程之前,先跟大家简单的介绍一下一些网络相关的知识. 在最早之前,两台电脑之间通信是通过电脑的mac地址找到对方,并实现相互通信.当然每台电脑都只存在唯一的mac地址,在生 ...

  8. 前端爱好者的小白学习之路-2【补充】 学会HTML你能写出来什么样子的页面?

    作为笔者另一篇文章的补充 本文基本素材以及练习思路来自 黑马程序员 pink老师~ [1]练习最基础页面的写法~ 页面效果预览 代码展示 <!DOCTYPE html> <html ...

  9. 数字编码电位器c语言,单片机小白学习之路(三十八)---AD转换电位器编码

    目标:点位器的检测 xpt2046.c #include "xpt2046.h" void SPI_Write(uchar dat) //使用SPI写入数据 { uchar i; ...

最新文章

  1. 关于技术学习的思考【转】
  2. 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
  3. html 正则表达式验证金额,js金额校验,js正则表达式,包含正负,小数点后两位...
  4. gitlab 的使用策略和简单介绍
  5. Python 图片与字符串互转
  6. Unity3D 物体运动小游戏后续
  7. Linux系统管理-(12)-网络配置IP命令
  8. layout_weight
  9. 4一20ma电流有源与无源区别_一文读懂有源信号、无源信号、干接点、湿接点
  10. php有序数组合并,使用Python怎么合并两个有序数组
  11. 用拼音输入法字典库实现同音字模糊查询
  12. 各种常用电子元器件的识别方法
  13. An invalid domain [] was specified for this cookie问题解决
  14. 高性能Java模板引擎BSL-1.0.1发布
  15. HIBERNATE:disjunction和conjunction构造复杂的查询条件.
  16. 【计算机网络】PPP和PPPoE协议
  17. EF 之 System.InvalidOperationException
  18. 北科大协同中心计算机,2021考研调剂:北科大钢铁共性技术协同创新中心公告
  19. 【唐老狮】C#——结构体和类的区别
  20. css揭秘笔记——背景与边框

热门文章

  1. Java使用RSA算法实现安全登录
  2. 行波iq调制器_行波电光相位调制器输出响应的定量分析
  3. c语言用break语句提前结束循环,break语句C语言程序设计.pdf
  4. C语言课设中的问题(数据写入文件)
  5. 小米 无线 linux 鼠标,实测小米便携式鼠标2:小巧精致 支持无线双模连接
  6. java代码安全检测机制,下列选项中,属于Java语言的代码安全检测机制的一项是______。A.动态链接B.访问权限的检查C.通过接...
  7. 不起眼却有大作用的 .NET功能集(转发)
  8. HASH和HMAC(3):SHA-1算法原理
  9. ACCESS的解密是如此简单!
  10. Apache和Tomcat的整合过程(转载)