xilinx FPGA普通IO作PLL时钟输入

本帖转自于 :http://www.cnblogs.com/jamesnt/p/3535073.html

在xilinx ZC7020的片子上做的实验;

[结论]

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

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

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

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

[Demo1]

// demo1 two bufg connect

module iobuf(

 input clk,

 input     rst,

 output   led

 );

 wire clkin_w;

 BUFG BUFG_inst (

      .O(clkin_w),           // Clock buffer output

      .I(clk)                   // Clock buffer input

   );

 pll0 u_pll0(

    .CLK_IN1(clkin_w),      // IN

    .CLK_OUT1(clkout),  // OUT

    .RESET(rst));       // IN

assign led = clkout;

endmodule

锁相环PLL默认输入前端有个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:

 [Demo2]

// demo2 regular io directly connect to PLL

module iobuf(

    input clk,

 input     rst,

 output   led

 );
 wire clkin_w;

 /*

 BUFG BUFG_inst (

      .O(clkin_w),           // Clock buffer output

      .I(clk)                   // Clock buffer input

   );

*/

 pll0 u_pll0(

    .CLK_IN1(clk),      // IN

    .CLK_OUT1(clkout),  // OUT

    .RESET(rst));       // IN

assign led = clkout;

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中加上这句约束:

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.

使用普通的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]

// dem3 regular io with BUFG then connect to PLL which with"No Buffer" setting

 module iobuf(

 input clk,

 input     rst,

 output   led

 );

 wire clkin_w;

 BUFG BUFG_inst (

      .O(clkin_w),           // Clock buffer output

      .I(clk)                   // Clock buffer input

   );

 pll0 u_pll0(

    .CLK_IN1(clkin_w),      // IN

    .CLK_OUT1(clkout),  // OUT

    .RESET(rst));       // IN

assign led = clkout;

endmodule

PLL的设置如下图,

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

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

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

时间: 2024-10-11 07:12:58

xilinx FPGA普通IO作PLL时钟输入的相关文章

xilinx FPGA全局时钟资源的使用

1.什么是xilinx fpga全局时钟资源 时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动.延迟.偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能.xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源.xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小.全局时钟资源

Xilinx FPGA结构

FPGA是什么?FPGA是现场可编程逻辑阵列,由可编程逻辑资源(LUT和 REG),可编程连线,可编程I/O构成.Xilinx的FPGA的基本结构是一样的,但随着半导体工艺的发展,FPGA的逻辑容量越来越丰富,速度更快,嵌入越来越多的硬核了,比如:ARM处理器,PCIe, ETHERNET等.在制程工艺上,Xilinx的7系列FPGA采用28 nm工艺,UltraScale采用20nm, UltraScale+ 采用16nm,每一代工艺的可用资源,比上一代就翻了一倍. 从架构而言,Xilinx

Xilinx FPGA LVDS应用

最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用.Xilinx FPGA中,主要通过原语实现差分信号的收发:OBUFDS(差分输出BUF),IBUFDS(差分输入BUF). 注意在分配引脚时,只需要分配SIGNAL_P的引脚,SIGNAL_N会自动连接到相应差分对引脚上:若没有使用差分信号原语,则在引脚电平上没有LVDS的选项(IO Planning PlanAhead). 测试代码: //////////////////////////////////////////////

Xilinx FPGA 学习笔记一-chipscope 无法观察信号 BUFG

今天开始试着使用chipscope,写了一个简单的流水灯的例程,开始综合布线的时候没有问题,但是加上chipscope 以后,综合就总报错. 第一种情况:用chipscope不可以直接观察全局时钟信号,即BUFG信号-----X 错误如下: ERROR:Place:1136 - This design contains a global buffer instance, <PLL_u0/clkout1_buf>, driving the net, <CLK_OUT1>, that

2-基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板

基于6U VPX的双TMS320C6678+Xilinx FPGA K7 XC7K420T的图像信号处理板 综合图像处理硬件平台包括图像信号处理板2块,视频处理板1块,主控板1块,电源板1块,VPX背板1块. 一.板卡概述 图像信号处理板包括2片TI 多核DSP处理器-TMS320C6678,1片Xilinx FPGA XC7K420T-1FFG1156,1片Xilinx FPGA XC3S200AN.实现四路千兆以太网输出,两路422输出.通过FPGA的GTX ,LVDS实现高速背板互联.采用

Xilinx FPGA高速串行收发器简介

1 Overview 与传统的并行实现方法相比,基于串行I/O的设计具有很多优势,包括:器件引脚数较少.降低了板空间要求.印刷电路板(PCB)层数较少.可以轻松实现PCB设计.连接器较小.电磁干扰降低并具有较好的抗噪能力. 2 高速串行通信中用到的技术 2.1多重相位 高速的秘密在于多重相位技术.所谓多重相位,就是在一个时钟的不同相位提取数据,例如,由锁相环产生多个不同相位的同源时钟,相位分别为 0°.90°.180°.270°,使用这几个时钟分别对串行数据流进行采样,再经零相位时钟同步,最后转

Xilinx FPGA控制器的Everspin STT-DDR4设计指南

自旋转移扭矩磁阻随机存取存储器(STT-MRAM)是一种持久性存储技术,可利用各种工业标准接口提供了性能,持久性和耐用性. Everspin推出了STT-MRAM产品,该产品利用称为JE-DDR4的JEDEC标准DDR4接口的变体,它包含了对完整系统支持所需的独特功能.本文将帮助工程师了解Xilinx FPGA控制器的Everspin STT-DDR4设计指南 2.启用ST-DDR4为了使设计人员能够快速集成ST-DDR4支持,该过程从Xilinx Vivado开发环境中生成的现有8Gb DDR

Xilinx FPGA全局时钟和全局时钟资源的使用方法

对FPGA的全局时钟了解不多,遂转载一篇文档: http://xilinx.eetop.cn/?action-viewnews-itemid-42 目前,大型设计一般推荐使用同步时序电路.同步时序电路基于时钟触发沿设计,对时钟的周期.占空比.延时和抖动提出了更高的要求.为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟. FPGA全局时钟资源一般使用全铜层工艺实现,并设计了专用时钟缓冲与驱动结构,从而使全局时钟到达芯片内部的所有可配置单元

Xilinx FPGA 学习笔记一时钟资源

在Xilinx的FPGA中,时钟网络资源分为三大类:全局时钟资源和区域时钟资源. 全局时钟资源是一种专用互连网络,它可以降低时钟歪斜.占空比失真和功耗,提高抖动容限.Xilinx的全局时钟资源设计了专用时钟缓冲与驱动结构,从而使全局时钟到达CLB.IOB和BRAM的延时最小. 区域时钟资源是独立于全局时钟网络的.Xilinx的器件分成若干个时钟区域,以Virtex-6为例,Virtex-6的最小器件有6个区域,最大器件有18个区域.它与全局时钟不同,区域时钟信号X只能驱动限定的时钟区域. 这里面