一、MMCM 源语介绍
1、调用源语
2、调用Clocking Wizard IP
调用Clocking Wizard IP核选择使用MMCM资源时,IP内部也是调用的MMCM源语。
Clocking Wizard IP中启用MMCM DRP接口方法:
在Clocking Wizard IP中设置分频倍频系数方法:
IP核中生成VCO的值,和使用公式计算的一致:
再看一下设置的输出时钟clkout1,clkout2,clkout3。和公式计算的一致。
二、MMCM 内部寄存器介绍
按照上面配置的MMCM只能生成一个固定的时钟频率,使用DRP接口能够在FPGA芯片工作中进行MMCM输出时钟的动态更改。
1、MMCM内部结构(XAPP888)
2、分频参数介绍
关于edge参数举例:
3、相位参数介绍
4、小数分频参数介绍
5、寄存器表
三、MMCM 动态速率重配置(DRP)方法
1、VCO频率配置
VCO频率配置主要使用下面三个寄存器:
Clkreg1主要设置高电平和低电平计数。倍频系数M=HIGH TIME + LOW TIME。如:进行8倍频,50%占空比。设置HIGH TIME=4,LOW TIME=4。Clkreg2中edge和NO COUNT设为0。
Divreg主要设置分频系数D。D=1需设置NO COUNT=1,不进行分频。D=2需设置NO COUNT=0,
HIGH TIME=1,LOW TIME=1.
2、输出频率配置
每个输出端口都有2个配置寄存器,小数分频只有clkout0上具有。常用参数为HIGH TIME,LOW TIME,NO COUNT,EDGE。以clkout0为例:
①VCO=1000MHz,需输出100MHz,50%占空比的时钟,配置HIGH TIME=5,LOW TIME=5,NO COUNT=0,EDGE=0;
②VCO=1000MHz,输出200MHz,50%占空比的时钟,配置HIGH TIME=2,LOW TIME=3,NO COUNT=0,EDGE=1。
3、重配置流程
在重配置过程中需要对MMCM进行复位(rst=1),配置完成后清除复位(rst=0)。
①检验时钟是否锁定(lock=1);
②读取寄存器中的数据;
③修改对应bit位的数据;
④再次读取寄存器中值是否更改完成;
⑤所有寄存器配置完成后退出。