原创 关于FPGA的全局时钟网络和PLL

2014-2-22 16:02 1612 9 9 分类: FPGA/CPLD 文集: FPGA

以Altera CYCLONEIII 为例

1.EP3C16系列的FPGA 支持16个时钟输入,clk0-3 ,clk4-clk7 clk8- clk11  clk12-clk15  四组,
每一组对应一个PLL,共四个PLL  如CLK4-CLK7 对应PLL2, PLL 的输入只能从CLK4-CLK7 或者其他PLL的输出作为输入。每个PLL 都有5个输出 C0,C1,C2,C3,C4.每个pll只支持一个或者一对差分信号(间隔180度)输出,在c0脚。这里与cyclone2中的略有不同,它用c2作 为输出。
2.EP3C16 共有20个全局时钟网络  可以把PLL 的输出时钟 异步复位信号 分布在全局时钟上,让时钟的skew最小。这20个全局时钟网络 可分为4组, 每组5个,由分布在FPGA 的四个边上的时钟控制模块,输出,一个时钟 控制模块只控制一个全局时钟网络。

b40c05894d4186d9eece4d6d02bf8667.jpg#100167212

注意 这是个多选一的电路,其实 对应于一个PLL,还有四个时钟控制模块没有画出(一共5个) 假设n=0, 那么CLK0,CLK1, CLK2,  CLK3 还有DPCLK  以及C0 C1 C2 C3 C4 这么多个输入,输入到一个时钟控制模块中 却只能由一个输出到全局时钟网络上。 当然  因为一共有5个这样的模块,所以最多可以有5个能够连到全局时钟网络上,其他的就甭想了。
举个全局时钟不够的例子。
如果我用了PLL的四个输出C0,C1,C2,C3,作为内部逻辑用的时钟,还有个外部时钟连接到了CLK0 上 那么这5个信号已经把这一侧的5个全局 时钟占满了,如果我还有一个时钟输入进来,这时候如果接到了CLK1引脚上,抱歉!它不能走全局时钟了,只能走普通的布线资源,时钟skew会很大,时序 就会出乱子。那怎么办呢?

只好将这个时钟信号 连接到下一组 时钟输入上 如clk4-clk7 中的任何一个。就可以走全局时钟了。

所以全局时钟资源是很宝贵的。

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条