1 功能
在PL端或PS端能动态配置时钟输出,时钟频率、相位、占空比可控。
2 IP核动态设置
要使用Clock Wizard输出动态时钟,还需要在Clocking Options 界面里勾选Dynamic Reconfig 和Dynamic Phase Shift 选项,分别是打开动态配置选项和允许更改时钟的相位关系。同时提供AXI4 Lite和DRP接口进行配置,两者结构都大差不差。
AXI4 Lite 接口:系统已经将动态配置集成好了,只需要用过总线配置寄存器即可。
DRP接口:不带总线,操作性更强,便于用户自定义接口。
3 时钟架构
基于MMCM and PLL时钟框图如下图所示,提供CLKIN1和CLKIN2 (参考频率)两个输入时钟进行选择,基于锁相环原理,参考频率经过D分频应等于压控振荡器(VCO)经过M分频后的频率。所以:
需要说明下:
1、MMCM结构的输出要多于PLL结构,且MMCM结构可输出差分时钟;
2、CLKOUT0和CLKOUTB提供小数分频,其余输出只提供整数分频;
4 FPGA逻辑设计及仿真
为了便于移植,小编采用MMCME2_ADV原语进行设计,同时使用DRP框架进行设计,相比AXI Lite接口,DRP接口的文档描写的相对清楚一些。同时为了设计方便,我将配置进行了集成,在官方原有的基础上进行了修改,只需要将时钟的配置信息传入同时送入一个脉冲信号,模块便可工作。
仿真:S1_CLKOUT(0/1/2/3/4/5/6)为配置信息,CLK(0/1/2/3/4/5/6)OUT为时钟输出,经验证输出频率、相位、占空比正确。
CLKIN=100MHz,D=1,M=8 | DIV | PHASE | DUTY_CYCLE | 输出频率 |
CLK0 | 1 | 0 | 50% | 800 |
CLK1 | 2 | 0 | 50% | 400 |
CLK2 | 3 | 0 | 50% | 200 |
CLK3 | 8 | 0 | 50% | 100 |
CLK4 | 8 | 0 | 80% | 100 |
CLK5 | 8 | 90 | 50% | 100 |
CLK6 | 8 | 180 | 50% | 100 |
5 参考手册
1、pg065-clk-wiz
2、ug472_7Series_Clocking
3、xapp888_7Series_DynamicRecon
6 资料获取
https://m.tb.cn/h.g7RL8Ck?tk=0Zrf3YP7iNM