注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
zl_felix的个人空间 https://home.eeworld.com.cn/space-uid-157982.html [收藏] [复制] [分享] [RSS]
日志

CycloneIII 时钟资源及PLL引脚分配问题总结

已有 3329 次阅读2012-12-20 15:26 |个人分类:FPGA学习|

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(注:应为PLL)供给外部时钟的话,那么这个外部时钟引脚也是需要特定的,当然,这只是要求,用其他普通引脚也行,但是会产生…. 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狂奔)

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章