CycloneIII 时钟资源及PLL引脚分配问题总结(原创)

在工程中,发现有编译的警告,如下:

PLL "<name>" output port <name> feeds output pin "<name>" via non-dedicated routing -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance。

初步断定是PLL的输出引脚不在特定的走线上造成的,于是决定研究一下EP3C40的时钟资源。

 

                                     

                                                                                                    图一

 

从图一可知,EP3C40上下左右各有4个专用时钟引脚CLK[..],其中上下四个布置紧凑。两用时钟引脚DPCLK有12个。CPDCLK较为特殊一点,,它们首先通过选择器再接入时钟控制模块,共有8个。这20个两用时钟引脚通常用于接入时钟或者异步控制信号,比如异步复位信号。

我们还可以在图中看到GCLK,这个就是全局时钟数,它的概念很重要,全局时钟数就是一个网络,它能为FPGA内部的所有资源提供时钟信号,为什么要它来运作时钟信号呢?一句话,它能保证到达各种资源的时钟沿同步,skew非常小。

上图中我们还可以看出,EP3C40包含了四个锁相环(PLL),锁相环支持单端的时钟输入和差分的时钟输入两种输入方式,值得注意的是,只有使用专用的时钟输入管脚的时钟信号才能驱动锁相环。

如图一所示的CLK[0..15]就是特定的时钟脚。不但PLL有特定的输入引脚,而且如果PKK供给外部时钟的话,那么这个外部时钟引脚也是需要特定的,当然,这只是要求,用其他普通引脚也行,但是会产生…. jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance这样的报警。

从何区分这些引脚了呢?我们来看芯片引脚鸟瞰图:

 

                                                   

                                                                                                              图二

图二中的表示的就是专用时钟输入引脚,共有16个CLK专用脚。(里面的颜色代表着引脚划分的Bank,这里附带说一下,做原理图时,最好把同一功能模块的用脚划分到一个Bank内,这样减少布线长度,有利于时序达成)

表示的就是专用PLL供给外部时钟引脚,这里成对出现,就是时钟的PLLx_CLKOUTp & PLLx_CLKOUTn差分信号。具体哪个是p哪个是n可在手册里查找:(如下图三)

 

        

                                                                                                              图三

 

除了专用的输出引脚,需要注意的是只有C0才能不使用全局时钟数GCLK来供给专用的外围时钟引脚,其它输出(C1-C4)需要通过全局时钟树GCLK来驱动外围IO。

 

                                                    

 

                                                                                                                              图四

 

图四所示,全局时钟数资源有限,在一个大系统里为了利用好它,C0供给外部器件的时钟是一个可用的办法。

还有个需要提醒的是,实践证明:PLLx_CLKOUTp & PLLx_CLKOUTn这两者,如果只用一端的话,应该取用PLLx_CLKOUTp,配置成PLLx_CLKOUTn警告还是无法消除。

最后一个疑问:我们在系统中随意创建的一个PLL,到底是哪一个呢(PLL1-PLL4),本质上来说这和编译器有关,编译器会自动优化,但是影响它的比较重要的因素还是引脚位置,经过我的工程实践,输入引脚和输出引脚会很大程度上影响PLL分配,

 

                                   

                                                                                                              图五

假设AB11引脚供给系统时钟的话,经过锁相环PLL输出到T16(可参考图二鸟瞰图),编译器会把这个PLL优化成PLL4。而在图三中已经显示了F484系列的PLL4专用输出引脚是T16,正是因为工程中没有把T16分配给PLL输出时钟脚,所以才产生...jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance的报警。

  

    (欢迎转载,请注明出处---愤怒de狂奔)

转载于:https://www.cnblogs.com/slhuang10714/archive/2012/06/19/2554595.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值