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

[复制链接]
8860|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上。。

Backkom80 发表于 2013-1-22 08:12 | 显示全部楼层
wolftc 发表于 2013-1-21 12:59
坐等高手指导。


1,时钟的输入需从专用的时钟引脚输入,这些专用IO联接着FPGA内部的全局缓冲网络。对于输出时钟比较灵活,普通IO也可。
2,无需用ODDR2这个原语,单端直接输出就行了,差分用OBUFDS,输出的P和N需接到同一对P和N的IO上。
 楼主| 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的建立保持时间不够,时序报警告。

 楼主| wolftc 发表于 2013-1-22 10:48 | 显示全部楼层
xilinx低端芯片真不好用~~
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也可以
hawksabre 发表于 2013-1-23 20:25 | 显示全部楼层
帮你顶一个   呵呵   希望熊哥能够解决问题  哈哈
 楼主| 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也可以 ...

这样忽略,会不会有问题?感觉这样做不规矩。
hawksabre 发表于 2013-1-28 21:05 | 显示全部楼层
继续帮你顶一个  呵呵   希望有高手能看到  呵呵
qwempty 发表于 2013-1-28 22:21 | 显示全部楼层
应该不会有问题 你自己试一下 不行让熊哥再给你看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

111

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部