修改时间 02-19-2021 04:05 PM
我有一个zynq7020的项目,需要用到两个不同的clk源,FCLK_CLK0目前设定为180M,因为影响后面的分频等诸多原因,暂时不能更改也不想更改这个频率,然后项目用又采用了PL侧的网络接口,用到了GMII to RGMII IP核,这个IP核官方文件中说明必须要使用200M的clk,但是我发现当我如下图设置后,实际出来的FCLK_CLK1只有187M,受到了CLK0的影响,导致了GMII to RGMII IP核在编译过程中产生了严重的Timming错误。我想请教大家,这个问题该怎么解决,按照道理FCLK_CLK0和FCLK_CLK1不是独立配置的嘛?FCLK_CLK1不应该会受FCLK_CLK0的影响呀(虽然FCLK_CLK0设置的180M有点非常规,要是设置100M,就没有偏差),因为vivado是第一次玩,是不是有其它设置项来调整,感谢
修改时间 02-22-2021 09:43 AM
@jerry2004 你可以检查一下IO PLL的时钟是多少。
有可能是IOPLL为了能达到有些外设的输出频率而发生了改变,从而影响到了其他相关的外设输出频率。
修改时间 02-22-2021 10:06 AM
可以是可以。
但是我建议你最好先确认是哪个外设影响了IOPLL的频率,还是你IOPLL的频率一开始就没有设置正确。
一般ARM PLL是专给ARM核用的,DDR PLL是给DDR用的,尽量不要影响这些更重要的时钟。
修改时间 02-22-2021 10:43 AM
你看的是Basic clocking页,可以点Advanced clocking看一下,可以手动调整的。
另外,给PL侧的时钟完全可以低一点,比如输出100M,然后再通过一个DCM倍频上去就可以了。