上文XILINX FPGAIP之Clocking Wizard详解说到时钟IP的支持动态重配的,本节介绍通过DRP进行MMCM PLL的重新配置。
(相关资料图)
Clocking Wizard IP的DRP( Dynamic Reconfiguration)提供了对MMCM/PLL的配置寄存器的访问接口(这些配置位通常只在比特流中初始化),这允许用户动态更改MMCM或PLL时钟输出,而无需加载新的比特流。
MMCM或PLL必须在动态重新配置期间保持复位状态,或者必须在动态重新配置更改完成后释放复位。
DRP可以动态改变时钟的频率、相位、占空比。
MMCM/PLL有6个用户可访问的配置寄存器组,允许重新配置单个时钟输出。这六组分别是分频配置寄存器、相位配置寄存器、分数配置寄存器、锁定配置寄存器、滤波器配置寄存器和功率配置寄存器。
1.分频配置寄存器参数:
•High Time :高电平持续时间,以vco 为clk
•Low Time :低电平持续时间,以vco 为clk
•No Count :使能时输出vco频率
•Edge :它迫使高电平时间计数器在计数结束时在下降边上转换。
例如:要输出一个3分频的时钟50%占比的时钟,High Time配1,Low配2,Edge配1.
4分频配 2 2 0 0
1分频配 0 0 1 0
2.相位配置寄存器参数:
•Phase MUX :相位选择,1代表45°,将vco频率分为8份
•Delay Time:输出时钟的vco偏移,最大支持到64
•MX:固定为2’b00
3.小分配置寄存器参数:
MMCM的clkout0和clkfbout支持小数分频,使能小数分频时,会使用小数组参数(只有MMCM的clkout0和clkfbout有这组参数);
• FRAC_EN:使能
• FRAC :单位0.125
• PHASE_MUX_F:下降沿相位,单位45°
• FRAC_WF_R
• FRAC_WF_F
4.锁定配置寄存器、滤波器配置寄存器和功率配置寄存器基本不用用户配置。
以MMCM为例有17个可配置寄存器,其中CLKOUT[6:0] 和CLKFBOUT各有两个配置寄存器,DIVCLK_DIVIDE有一个独立配置寄存器。下图中的D、O0-O6、M均有可配置的寄存器。
来看一下寄存器的定义:
Reg1:主要是分频配置寄存器参数,CLKOUT[6:0] 和CLKFBOUT均有该寄存器:
OUT0 Reg2,CLKOUT[0]小数等的配置寄存器:
OUT1 Reg2:
OUT234 Reg2:
OUT5 Reg2:(包含clkout0的小数部分配置):
OUT6 Reg2,包含fb的小数部分:
Div Reg:
在锁相环中,通过可配置接口配置时,上述寄存器的地址如下:
当使能DRP端口对时钟进行动态重配时,锁相环的端口会增加下面的端口:
端口含义为:
// Dynamic reconfiguration ports
input [6:0] daddr, //地址控制
input dclk, //配置时钟
input den, //en,读写使能信号
input [15:0] din, //写配置
output [15:0] dout, //会读
output drdy, //ready
input dwe, //写使能
本文先写到这里,下一篇文章结合仿真对drp的具体应用进行说明。
标签: