PLL/MMCM的动态重配置需要在GUI界面中勾选Dynamic Reconfig选项,然而该选项只能对时钟频率进行配置,用户如果想要配置相位和占空比,还需要勾选Phase Duty Cycle Config或者Dynamic Phase Shift。勾选Dynamic Phase Shift的情况下,IP核会多出四个引脚,功能如下:
|
引脚 |
功能 |
|
psclk |
用于相移控制信号的驱动时钟 |
|
psen |
控制相位偏移的使能信号,一个psen高脉冲,输出相位偏移1/56个VCO周期 |
|
psincdec |
用于相位正负偏移的信号,1表示正向偏移,0表示负向偏移 |
|
psdone |
相位偏移完成标志信号 |
使用该方式配置PLL相位相较复杂,用户需要提供参考时钟以及对应脉冲信号,因此,对于一般的应用场景这里更推荐Phase Duty Cycle Config的方式。
在勾选了Dynamic Reconfig和Phase Duty Cycle Config之后,便可以通过对应的接口配置相关寄存器,接口通常选用AXI4-Lite。配置频率、相位、占空比的相关寄存器如下:
基于该表,用户在初始化Clk_Wiz后,只需要计算好所需的频率、相位、占空比对应的设置值,使用Xil_Out32函数配置对应寄存器即可。配置完成后再向Clock Configuration Register 23中写入0x3即可完成配置的加载,随后等待新时钟的生成。
示例代码如下:
欢迎关注!我们将持续分享FPGA学习与使用中的问题及解决思路。

END

