xilinx 时钟问题

本文讨论了在Xilinx FPGA设计中遇到的时钟问题,包括时钟IOB与BUFGCTRL未放置在最佳位置的错误以及如何通过设置CLOCK_DEDICATED_ROUTE约束来解决。介绍了Xilinx芯片全局时钟资源的五种使用方法,并分享了四个演示示例,展示了如何正确使用时钟资源。同时,提到了引脚分配问题,强调了GC和CC引脚的区别,建议确保时钟信号正确连接到专用的时钟输入。

xilinx 时钟问题:

ERROR:Place:1398 - A clock IOB / BUFGCTRL clock component pair have been found that are not placed at an optimal clock IOB / BUFGCTRL site pair. The clock IOB component <cmos_pclk> is placed at site <W10>. The corresponding BUFGCTRL component <cmos_pclk_BUFGP/BUFG> is placed at site <BUFGCTRL_X0Y0>. The clock  IO can use the fast path between the IOB and the Clock Buffer if the IOB is  placed on a Clock Capable IOB site that has dedicated fast path to BUFGCTRL  sites in its half of the device (TOP or BOTTOM). 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 listed below. These examples can be used directly in the  .ucf file to override this clock rule.
   < NET "cmos_pclk" CLOCK_DEDICATED_ROUTE = FALSE; >
ERROR:Pack:1654 - The timing-driven placement phase encountered an error.


遇到上面的问题是因为我们将外部输入的一个时钟管脚  cmos_pclk(摄像头输出给FPGA的像素时钟)分配到了一个普通的IO口上面,如果是zedboard专有时钟管脚 Y9就肯定没这样的错误了。

因为是IO管脚上,所以其周围没有全局时钟 BUFG,所以我们在 XDC 里使用: NET "cmos_pclk" CLOCK_DEDICATED_ROUTE = FALSE;    来屏蔽 Xilinx 的检测,从而通过编译。


下面我们介绍下 xilinx 时钟的管理:


Xilinx 芯片全局时钟资源的使用方法主要有下面5种:

1. GCLK  ->  IBUFG  -->  BUFG.

   IBUFG 后面连接 BUFG的方法是最基本的全局时钟资源的使用方法, 其等效于  BUFGP


2.  GCLKP&&GCLKN   -->   IBUFGDS    --->  BUFG

   当输入时钟为差分信号时候,需要使用 IBUFGDS 原语


3.  IBUFG +  DCM  +  BUFG 

   通过 DCM(digital clock manage) 不仅能对时钟进行同步、移相、分频、倍频等变换,而且可以使用全局时钟的输出无抖动和小延迟。


4.  Logic + BUFG 

    BUFG 不但可使用 IBUFG 的输出,还可以驱动其他普通信号的输出。当某个信号的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号利用全局时钟资源。


5.  Logic  +  DCM  +  BUFG

   DCM 可以改变也可以控制变换普通时钟信号。




demo1:

          从全局时钟管脚(晶振)作为时钟输入,让其驱动多个模块。  success


 


demo2:

        从全局时钟输入一个时钟,让其驱动一个 PLLE2_BASE 原语,以及很多模块  。   success




demo3:

    从全局时钟输入一个时钟,让其驱动一个 clock IP 核(输入加BUFG),以及很多模块  。   false

 ERROR:  Xst:2035 - Port <clk_100> has illegal connections. This port is connected to an input buffer and other components.

     修改为 clock 输入不加 BUFG 即可. success





demo4:

    从全局时钟输入一个时钟,让其驱动一个 clock IP 核(输入加或者不加BUFG都可以),然后从clock IP 核输出的时钟来驱动很多模块  。   success










ise中的引脚分为几种,有的是适合clock的,有些是适合组合逻辑的。

一个clock引脚,需要分配到GC pin上面,但是你分配到了CC或者其它的引脚上面了,不过如果不想换引脚位置,可以在RTL里面通过Global buffer来转换下。GC pin一般是用于连接clock的。

GC - global clock inputs drive the IBUFG/BUFG components.  GC pin has the dedicated routing to BUFG/PLL/DCM.

CC - clock capable IO are the regional clock inputs and drive the BUFIO/BUFR。 CC pin has the dedicated routing to BUFIO/BUFR.


所用的CLOCK PIN是不是DATA PIN,并不适合作为时钟使用的。上面说IOB输入离CLOCK BUFFER太远,一般情况下,作为CLOCK PIN的输入后应很快就能找到CLOCK BUFFER资源的,要么换个PIN试试,要么先加个IBUFG,再BUFG,或者先IBUFG,再DCM,再BUFG出去, 而且需要对其使用约束: NET "cmos_pclk" CLOCK_DEDICATED_ROUTE = FALSE

### Xilinx FPGA时钟资源的使用方法和配置教程 #### 一、时钟资源概述 Xilinx FPGA 提供多种类型的时钟资源来满足不同应用场景的需求。这些时钟资源可以分为全局时钟、区域时钟以及专用时钟等类别。对于高速串行收发器 GTX 来说,其特有的时钟信号如 GTREFCLK0 和 GTREFCLK1 是至关重要的输入参考时钟[^3]。 #### 二、时钟分配网络 为了确保整个芯片内部各个模块能够同步运行,在设计过程中需要合理规划时钟树结构并利用 MMCM 或 PLL 这样的相位锁定环路组件来进行频率合成及时序调整。特别是当涉及到 GTX 收发器的应用场景下,QPLL (Quad Phase-Locked Loop) 将会接收来自 IBUFDS_GTE2 原语转换后的单端时钟作为锁相环的工作基础。 #### 三、具体实现方式 针对不同的项目需求可以选择合适的时钟源接入路径: - **外部差分时钟**:通过专门设计的缓冲器(例如 IBUFDS_GTE2),将外界提供的高精度差分信号转化为适合内部电路使用的单端正弦波形,并进一步传递给 QPLL 完成后续处理。 - **内部生成时钟**:也可以采用片上振荡器或者其他形式产生所需周期性的脉冲序列供给 GTX 使用;不过这种方式通常适用于较低性能要求场合。 ```verilog // Verilog 实现简单时钟管理单元 module clk_wiz ( input wire refclk, output reg outclk ); reg [7:0] div_cnt; always @(posedge refclk) begin if(div_cnt == 8'd99)begin // 分频系数可根据实际应用修改 div_cnt <= 8'b0; outclk <= ~outclk; end else begin div_cnt <= div_cnt + 1; end end endmodule ``` #### 四、配置流程说明 在 JTAG 模式中,PC 与 FPGA 的通信依赖于 TCLK 时钟线路上的数据传输机制。这意味着开发者可以通过特定软件工具链设置好相应的参数文件并通过 USB 接口加载至目标器件内完成初步设定操作[^2]。而对于更复杂的时钟方案,则可能还需要编写额外 HDL 代码片段定义具体的连接关系及属性控制指令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值