前段时间项目中使用了CycloneIII这款芯片,负责了时钟方面的设计,摘录时钟网络和PLL使用笔记:
1、芯片管脚上可以输入16个单端时钟或者8对差分时钟;
2、芯片内部共有20个全局时钟网络;
3、全局时钟网络是由clock control模块来控制的,此模块的驱动来源以及内部结构见下图:
4、内部逻辑生成的信号虽然可以上全局时钟网络,但是不能驱动内部的PLL。可驱动PLL输入管脚inclk0和inclk1的可以是以下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、2个PLL级联的时候,建议前一个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)使用切换电路。主时钟和备用时钟频率相同时,切换状态机控制选择器选择输入的参考时钟,可在inclk0和inclk1之间任意切换。下图中,当inclk0保持为低后大约两个时钟周期,时钟传感电路将clkbad[0]置高,切换状态机将选择器选择输出为inclk1,即inclk1将成为PLL的参考时钟:
(2) 使用clkswitch,由用户控制或者系统控制。可在不同输入频率之间切换。比如,inclk0=66M,inclk1=200M,此时必须由用户控制切换,因为自动时钟传感电路不能监视超过20%频差的主时钟和备时钟。
clkswitch从低到高(low-to-high)的翻转将激活切换序列,切换信号clkswitch必须至少持续3个时钟周期(以inclk0和inclk1中较大的周期为准)。在inclk0的下降沿,计数器的参考时钟,muxout被关断。在inclk1的下降沿,参考时钟选择器开始选择inclk1作为PLL的参考时钟。activelock信号同时改变,只是哪个时钟驱动PLL,实际上activelock是clkswitch的镜像信号。此时没有clkbad置高。切换电路是高电平有效的,因此clkswitch的下降沿不会导致参考时钟从0端口到1端口的转换。当clkswitch重新置高后,重复上述过程。只有在被切换到的时钟有效时,切换信号和自动切换电路才有效。下图:
18、时钟切换Guidelines:
(1) 时钟自动切换要求inclk0和inclk1之间的频差不可超过20%;
(2) 使用人工切换时,inclk0和inclk1之间的频差可超过20%。但是两个时钟源之间的不同可能会导致PLL失锁。所以必须要重新复位,以保证输入和输出时钟之间保持正确的相位关系;
(3)
用户207387 2012-11-20 13:35