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

原文地址:http://blog.sina.com.cn/s/blog_50363a790102w7xc.html
https://www.cnblogs.com/geekite/p/5135470.html在这里插入图片描述
对于"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管脚名改为你要接的那个引脚的名字即可。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值