FPGA: failed to route using a CLK template

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:34:06
CLK Net:Tdmc_Tx_Clk_OBUF may have excessive skew because 0 CLK pins and 3 NON_CLK pins failed to route using a CLK template.
谁能给出详细的解决方法
虽然你说得没能解决我的问题,但还是非常感谢。
我的问题很简单,也就是一个差分对时钟进入,还有一个晶振时钟进入,三个管脚接的都是GCLK,现将差分时钟和晶振时钟通过BUFGMUX来二选一,然后直接assign给四个输出(3个是LCLK,还有一个是差分GCLK)。带管脚综合时出现了上面的问题。希望能对证解决下

先说症状:

你的这个问题是因为你的时钟上时钟总线,这种情况百分之八十是因为你没有将其约束到clk pin上面。由于普通io到fpga各个位置的走线不同。所以存在excessive skew,也就是可接受范围以外的时钟偏移。所以报了这个warning。

warning里面也提醒你了。0 clk pin 也就是说你的时钟没有从clk pin上输入。

解决办法:
1、把这个clk扔到clk pin上即可。程序应该会自己搞定的,他会自动插入一个“高速时钟总线入口”的器件。下面有讲到。

2、当然有时候设计大了。难免这种问题。明明约束在clk pin上了。结果还是不行。这个时候需要你使用一个时钟总线的“入口”模块。xilinx里面叫BUFG,你可以自行例化一个。

例:
--VHDL version
Library UNISIM;
use UNISIM.vcomponents.all;
--这两句是调用库
--不需要components 声明
BUFG_add: BUFG
port map (
I => input, --你从普通管脚上的输入
O => output --你的时钟输出
);
------------------------分割线---------------------
//verilog version
BUFG bufg_add (
.I(input), //同VHDL
.O(output) //同VHDL
);
注意!!不需要用core generator生成一个的,综合的时候自动认识的。

gpio1是一个从普通管脚的输入时钟,然后你可以让他上时钟总线,然后这个warning就不会有了。

后面搜到一个和你比较像的例子

Failed to create renderer FPGA ??? failed to open config key failed on connecting to server failed on connecting to werver. failed to load kernel library failed to create 的中文翻译 FAILED TO LOED KERNEL LIBRARY 550 Failed to change directory failed on connecting to seriver