打印
[Quartus]

FPGA时钟引脚问题?求指教。

[复制链接]
8006|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wolftc|  楼主 | 2013-1-21 12:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Spartan-6 FPGA中,GCLK定义 :Input、 These clock pins connect to global clock buffers. These pins become  regular user I/Os when not needed for clocks.
例如输入时钟的选择:做好选用IO_L34P_GCLK19_0,IO_L34N_GCLK18_0这种时钟引脚。

那么对于输出时钟:
1、对于引脚位置定义有何要求?又没有专门的时钟输出引脚?
    我没有看到相关资料介绍,能否理解为:任意普通I/O都可以.
2、全局时钟GCLK,如何连接到输出引脚:
    对于单端时钟输出:ODDR2模块输出;
    对于差分时钟输出:ODDR2 + OBUFDS模块输出;

求指教。

相关帖子

沙发
wolftc|  楼主 | 2013-1-21 12:59 | 只看该作者
坐等高手指导。

使用特权

评论回复
板凳
Backkom80| | 2013-1-22 08:11 | 只看该作者
本帖最后由 Backkom80 于 2013-1-22 08:15 编辑

时钟的输入需从专用的时钟引脚输入,这些专用IO联接着FPGA内部的全局缓冲网络。对于输出时钟比较灵活,普通IO也可。

使用特权

评论回复
地板
Backkom80| | 2013-1-22 08:12 | 只看该作者
本帖最后由 Backkom80 于 2013-1-22 08:15 编辑

无需用ODDR2这个原语,单端直接输出就行了,差分用OBUFDS,输出的P和N需接到同一对P和N的IO上。。

使用特权

评论回复
5
Backkom80| | 2013-1-22 08:12 | 只看该作者
wolftc 发表于 2013-1-21 12:59
坐等高手指导。


1,时钟的输入需从专用的时钟引脚输入,这些专用IO联接着FPGA内部的全局缓冲网络。对于输出时钟比较灵活,普通IO也可。
2,无需用ODDR2这个原语,单端直接输出就行了,差分用OBUFDS,输出的P和N需接到同一对P和N的IO上。

使用特权

评论回复
6
wolftc|  楼主 | 2013-1-22 09:54 | 只看该作者
本帖最后由 wolftc 于 2013-1-22 10:12 编辑
Backkom80 发表于 2013-1-22 08:12
1,时钟的输入需从专用的时钟引脚输入,这些专用IO联接着FPGA内部的全局缓冲网络。对于输出时钟比较灵活 ...

Spartan-6系列输出时钟,不加ODDR2会出错。
   This design practice, in Spartan-6, can lead to an unroutable situation due
   to limitations in the global routing. If the design does route there may be
   excessive delay or skew on this net. It is recommended to use a Clock
   Forwarding technique to create a reliable and repeatable low skew solution:
   instantiate an ODDR2 component; tie the .D0 pin to Logic1; tie the .D1 pin to
   Logic0; tie the clock net to be forwarded to .C0; tie the inverted clock to
   .C1. If you wish to override this recommendation, you may use the
   CLOCK_DEDICATED_ROUTE constraint (given below) in the .ucf file to demote
   this message to a WARNING and allow your design to continue. Although the net
   may still not route, you will be able to analyze the failure in FPGA_Editor.
   < PIN "RGB_GEN_T/clks/U1/pllx2_dcm/clkout1_buf.O" CLOCK_DEDICATED_ROUTE =
   FALSE; >错误信息里所说的:在SPARTAN6的设计中,由时钟管理IP分出来的时钟线是不能直连到一些FPGA引脚的,如错误信息中所说,你需要采用一个ODDR2的模块。该模块是一个IO BUFFER,你将ODDR的D0连到高电平,将D1连到低电平,将时钟连到C0,将时钟取反连到C1然后将ODDR的输出再连到FPGA的引脚上去。so,在低端器件中,需要例化一个ODDR。


附加一个问题:要求输出时钟clkx1,输出数据data速率为clkx2(2倍clkx1)。我的做法是,同一个PLL产生clkx1,clkx2,以保证clkx1,clkx2同相位。前面都是clkx1处理的数据,到输出模块时,用clkx2将原一个数据分2次输出。这就产生异步时钟问题,导致data的建立保持时间不够,时序报警告。

使用特权

评论回复
7
wolftc|  楼主 | 2013-1-22 10:48 | 只看该作者
xilinx低端芯片真不好用~~

使用特权

评论回复
8
Backkom80| | 2013-1-23 09:05 | 只看该作者
wolftc 发表于 2013-1-22 09:54
Spartan-6系列输出时钟,不加ODDR2会出错。
   This design practice, in Spartan-6, can lead to an unro ...

PIN "RGB_GEN_T/clks/U1/pllx2_dcm/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE
这句加入.ucf也可以

使用特权

评论回复
9
hawksabre| | 2013-1-23 20:25 | 只看该作者
帮你顶一个   呵呵   希望熊哥能够解决问题  哈哈

使用特权

评论回复
10
wolftc|  楼主 | 2013-1-28 10:43 | 只看该作者
Backkom80 发表于 2013-1-23 09:05
PIN "RGB_GEN_T/clks/U1/pllx2_dcm/clkout1_buf.O" CLOCK_DEDICATED_ROUTE = FALSE
这句加入.ucf也可以 ...

这样忽略,会不会有问题?感觉这样做不规矩。

使用特权

评论回复
11
hawksabre| | 2013-1-28 21:05 | 只看该作者
继续帮你顶一个  呵呵   希望有高手能看到  呵呵

使用特权

评论回复
12
qwempty| | 2013-1-28 22:21 | 只看该作者
应该不会有问题 你自己试一下 不行让熊哥再给你看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

111

帖子

0

粉丝