我们还可以在图中看到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:
表示的就是专用PLL供给外部时钟引脚,这里成对出现,就是时钟的PLLx_CLKOUTp & PLLx_CLKOUTn差分信号。具体哪个是p哪个是n可在手册里查找:(如下图三)
除了专用的输出引脚,需要注意的是只有C0才能不使用全局时钟数GCLK来供给专用的外围时钟引脚,其它输出(C1-C4)需要通过全局时钟树GCLK来驱动外围IO。
参考:max10的pcg-01018管脚说明
图四所示,全局时钟数资源有限,在一个大系统里为了利用好它,C0供给外部器件的时钟是一个可用的办法。
还有个需要提醒的是,实践证明:PLLx_CLKOUTp & PLLx_CLKOUTn这两者,如果只用一端的话,应该取用PLLx_CLKOUTp,配置成PLLx_CLKOUTn警告还是无法消除。