Spartan6 pll输出时钟无法直接连接在IO引脚解决办法

原文地址:http://blog.sina.com.cn/s/blog_50363a790102w7xc.html
https://www.cnblogs.com/geekite/p/5135470.htmlSpartan6 pll输出时钟无法直接连接在IO引脚解决办法_第1张图片
对于"clock_dedicated_route”错误原因有两种情况:

  1. 就是有一个时钟你没有放到全局时钟或者局部时钟的引脚,布局的时候不能把它当作时钟分配资源。

  2. 就是你想在IO上输出一个时钟信号,但是你没有采用正确的方法,如在Spartan6里面你必须用ODDR寄存器输出,而不能直接时钟赋到一个直接连接到IO的信号。

解决方法如下:

  1. 最简单的就是直接添加一句PIN “pixclk_BUFG.O” CLOCK_DEDICATED_ROUTE = FALSE;

2.选用专用的时钟引脚;

3.选用ODDR寄存器在IO引脚上输出时钟信号。

ODDR2 #(
.DDR_ALIGNMENT(“NONE”), // Sets output alignment to “NONE”, “C0” or “C1”
.INIT(1’b0), // Sets initial state of the Q output to 1’b0 or 1’b1
.SRTYPE(“SYNC”) // Specifies “SYNC” or “ASYNC” set/reset
) ODDR2_inst (
.Q(oddr2_I/O管脚名), // 1-bit DDR output data
.C0(clock_PLL输出时钟名), // 1-bit clock input
.C1(~clock_PLL输出时钟名), // 1-bit clock input
.CE(1’b1), // 1-bit clock enable input
.D0(1’b1), // 1-bit data input (associated with C0)
.D1(1’b0), // 1-bit data input (associated with C1)
.R(1’b0), // 1-bit reset input
.S(1’b0) // 1-bit set input
);

使用时直接复制上述模块,直接将两个clock_PLL输出时钟名改成实际pll输出的名字,将oddr2_I/O管脚名改为你要接的那个引脚的名字即可。

你可能感兴趣的:(Spartan6 pll输出时钟无法直接连接在IO引脚解决办法)