原创 CycloneIII_GCLK_PLL阅读笔记

2010-1-26 19:59 5137 9 10 分类: FPGA/CPLD
    前段时间项目中使用了CycloneIII这款芯片,负责了时钟方面的设计,摘录时钟网络和PLL使用笔记:

1、芯片管脚上可以输入16个单端时钟或者8对差分时钟;

2、芯片内部共有20个全局时钟网络;

3、全局时钟网络是由clock control模块来控制的,此模块的驱动来源以及内部结构见下图:
点击看大图

点击看大图

4、内部逻辑生成的信号虽然可以上全局时钟网络,但是不能驱动内部的PLL。可驱动PLL输入管脚inclk0inclk1的可以是以下4中驱动源:
four clock pins on the same
side as PLL ;
output from another PLL ;
 pin-driven dicated GCLK;
 clock ctrl blk
if the ccb is fed by an output from another PLL or pin-drive dicated GCLK;
点击看大图

5、PLL的输出C0~C4中只有两个能通过ccb驱动全局网络,每个Side的CCB的驱动源如下图,注意,4、5、2、4...这组数字同时也表明了,一个Side的CCB的驱动最多只能有4个时钟专用管脚或者5个PLL输出或者5个内部逻辑,这一点吃了不少亏
点击看大图
6、PLL的反馈时钟有四种模式:源同步、非补偿模式、正常模式以及0延时模式;这一点Datasheet和网上解释得很详细,不再累赘;

7、PLL输出的计数器可以级联起来组成大于512分频的计数器,利用这个功能可以分出更小频率的时钟。这个可以在QII中设置;

8、PLL的控制信号pfdena一旦处于关断状态,则VCO保持上一个状态[,相当于具备一定的保持功能,并缓慢向低频迁移;这个时候LOCK信号可以忽略了。Pfdena信号可控制PFD输出,如果PFD被关,VCO将工作在上一状态设置的控制电压和控制频率,并缓慢向低频迁移。此时PLL继续运行,即使失锁或者输入时钟失效;

9、PLL的输入时钟发生变化后必须重新复位一下;

10、PLL具备时钟切换功能,如果选用,请务必仔细阅读相关细节。比如在2路不同频率时钟之间切换,PLL可能会失锁,必须重新复位;那么如果在相同的频率下(不同相位),是否就不需要复位了?(频差在20%之内不需要重新复位?),如果需要输入与输出时钟之间有固定的相位关系则必须进行复位;

11、2PLL级联的时候,建议前一个LF设置为低带宽模式,后一个LF设置为高带宽模式;带宽越大,VCO对时钟越敏感,时钟锁定的时间越小;带宽越小,输入时钟的频率变化不易被感知,时钟锁定的时间相对较长,但是抖动较小。因此级联时建议做上述设置。

12、每次PLL失锁之后必须重新复位PLL,以保证PLL输入时钟和输出时钟之间保持正确的相位关系;

13、如果输入时钟在上电之后一直翻转或者不稳定,在输入时钟稳定之后必须要复位PLL;

14、锁定信号。指示PLL已经锁定到参考时钟上,并且PLL的输出时钟工作在设定的相位和频率上。没有外部电路的情况下,锁定信号在PLL开始锁定过程后翻转。Altera建议使用areset和locked信号,以便检测PLL的工作状态;

15、时钟切换。PLL可以在两个输入参考时钟之间切换,该功能可以在双时钟域的系统中使用,如果第一个时钟失效,那么可切换到第二个时钟上。PLL可自动实现时钟切换,也可以通过clkswitch由用户设置;

16、当前使用的参考时钟失效时,时钟传感模块自动切换到备用参考上,同时给出3个状态信号:clkbad[0],clkbad[1]activelock;

17、使用时钟切换的两种方式:


    (1)使用切换电路。主时钟和备用时钟频率相同时,切换状态机控制选择器选择输入的参考时钟,可在inclk0inclk1之间任意切换。下图中,当inclk0保持为低后大约两个时钟周期,时钟传感电路将clkbad[0]置高,切换状态机将选择器选择输出为inclk1,inclk1将成为PLL的参考时钟:
    点击看大图
   (2) 使用clkswitch,由用户控制或者系统控制。可在不同输入频率之间切换。比如,inclk0=66M,inclk1=200M,此时必须由用户控制切换,因为自动时钟传感电路不能监视超过20%频差的主时钟和备时钟。
     clkswitch从低到高(low-to-high)的翻转将激活切换序列,切换信号clkswitch必须至少持续3个时钟周期(以inclk0inclk1中较大的周期为准)。在inclk0的下降沿,计数器的参考时钟,muxout被关断。在inclk1的下降沿,参考时钟选择器开始选择inclk1作为PLL的参考时钟。activelock信号同时改变,只是哪个时钟驱动PLL,实际上activelockclkswitch的镜像信号。此时没有clkbad置高。切换电路是高电平有效的,因此clkswitch的下降沿不会导致参考时钟从0端口到1端口的转换。当clkswitch重新置高后,重复上述过程。只有在被切换到的时钟有效时,切换信号和自动切换电路才有效。下图:
d0567190-b140-465a-8146-63ce148fca8f.jpg
18、时钟切换Guidelines:
 (1) 时钟自动切换要求inclk0inclk1之间的频差不可超过20%;

 (2) 使用人工切换时,inclk0inclk1之间的频差可超过20%。但是两个时钟源之间的不同可能会导致PLL失锁。所以必须要重新复位,以保证输入和输出时钟之间保持正确的相位关系;

 (3)













文章评论1条评论)

登录后参与讨论

用户207387 2012-11-20 13:35

图挂了,亲
相关推荐阅读
用户1395232 2009-03-07 12:16
感悟--从单片机到PGA
        翻开两年前在学校做项目后提交的心得体会,看着这些熟悉而又生涩的文字,感慨万千。=====================================================...
用户1395232 2009-02-23 20:11
关于上拉电阻(ZT&YC)
最近涉及到了上、下拉电阻的使用,搜索到不少资料。自己总结了两大方向:==================================================================...
用户1395232 2009-02-21 14:59
异步FIFO的设计
         异步FIFO的设计是一个老生常谈的问题了,网上有很多很经典的教程和论文。此处以Clifford E.Cummings的文章'Simulation and Synthesis Tech...
用户1395232 2009-02-20 16:07
逻辑设计学习之读后感
几个月前从网上看到了王x人写的《浅淡逻辑设计的学习》,这个人应该是个专家吧。当时看完了4页的文字倒没什么收获,几个月后再把它翻出来看--完全不一样的感觉。摘录几点建议,谈谈自己的想法。      @@...
用户1395232 2009-02-11 09:12
set_input_delay/ set_output_delay之图解
在edn上看到很多仁兄的文章 大受启发 也写写自己的理解 一同讨论 set_input_delay/ set_output_de...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条