易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

易灵思的时钟网络问题

 

我们以T20F256为例来做一个实验。

我们把T20F256的5个PLL全部打开,每个PLL的三路输出也全面打开。在生成约束时会报以下错。

Unrouted pins driving inputs of clock mux CLKMUX_R:PLL_TR0.CLKOUT2,PLL_TR0.CLKOUT1.

图片[1]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

在T20中有16个全局时钟网络GCLK。在芯片的左右两侧各8个。全局时钟管脚或者PLL的输出时钟通过左右两个CLKMUX上全局网络。左侧的PLL(包括PLL_TL0和PLL_TL1)上左侧的CLKMUX_L;右侧的PLL(包括PLL_TR0,PLL_TR1和PLLBR0)上右侧的CLKMUX_R。

当两侧要上全局时钟网络的时钟超过8个时就会报错。

 

图片[2]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

拿上面的例子来分析报“Unrouted pins driving inputs of clock mux CLKMUX_R:PLL_TR0.CLKOUT2,PLL_TR0.CLKOUT1″错误的原因。

当我们把所有PLL及其输出都打开后,先来分析左侧的CLKMUX_L的使用情况。如下图左侧的GCLK的编号为0~7。而PLL_TL0和PLL_TL1只有6个时钟,那么按红色标注,PLL_TL0.CLKOUT0上GCLK0;PLL_TL0.CLKOUT1上GCLK1;PLL_TL0.CLKOUT2上GCLK2…,按红色的标记是每个时钟都会有GCLK可以走的。

图片[3]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

同样的,当我们把所有PLL及其输出都打开后,先来分析右侧的CLKMUX_L的使用情况。如下图左侧的GCLK的编号为8~15。右侧有三个PLL分别为PLL_TR0,PLL_TR1和PLLBR0。按绿色框分配之后,PLL_TR0的CLKOUT1和2是没有网络可以走的。虽然它们可以走GCLK9和GCLK10,但是这两个网络已经被PLL_BR0的CLKOUT1和2占用了。所以就会报出上面的负错误。

图片[4]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

 

可能有人会问。为什么GCLK15及GCLK6,GCLK7都没有用到呢。这是因为我们这里只谈到了PLL的输出时钟,另外还有没有专用时钟管脚没有考虑。如下图。

图片[5]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

图片[6]-易灵思的时钟网络问题-易灵思(Elitestek)社区-FPGA CPLD-ChipDebug

钛金系列的器件也有相似的问题。具体大家可以先看下时钟网线的说明。

 

请登录后发表评论

    没有回复内容