IP核
在赛灵思的官方IP中时钟管理单元最为常用,其中IP原语的意义如下:
先用MMCM(混合式汇总管理单元)产生IP核输入时钟为50MHz,输出时钟为200MHz、375MHz、75MHz、50MHz、25MHz。
代码
// IP代码
MMCME2_ADV
#(.BANDWIDTH ("OPTIMIZED"),
.CLKOUT4_CASCADE ("FALSE"),
.COMPENSATION ("ZHOLD"),
.STARTUP_WAIT ("FALSE"),
.DIVCLK_DIVIDE (1),
.CLKFBOUT_MULT_F (15.000),
.CLKFBOUT_PHASE (0.000),
.CLKFBOUT_USE_FINE_PS ("FALSE"),
.CLKOUT0_DIVIDE_F (3.750), //分频系数为3.75
.CLKOUT0_PHASE (0.000), //无相移
.CLKOUT0_DUTY_CYCLE (0.500), //占空比50%r
.CLKOUT0_USE_FINE_PS ("FALSE"),
.CLKOUT1_DIVIDE (2), //分频系数为30
.CLKOUT1_PHASE (0.000), //无相移
.CLKOUT1_DUTY_CYCLE (0.500), //占空比50%
.CLKOUT1_USE_FINE_PS ("FALSE"),
.CLKOUT2_DIVIDE (10), //分频系数为10
.CLKOUT2_PHASE (0.000), //无相移
.CLKOUT2_DUTY_CYCLE (0.500), //占空比50%
.CLKOUT2_USE_FINE_PS ("FALSE"),
.CLKOUT3_DIVIDE (15), //分频系数为15
.CLKOUT3_PHASE (0.000), //无相移
.CLKOUT3_DUTY_CYCLE (0.500), //占空比50%
.CLKOUT3_USE_FINE_PS ("FALSE"),
.CLKOUT4_DIVIDE (30), //分频系数为30
.CLKOUT4_PHASE (0.000), //无相移
.CLKOUT4_DUTY_CYCLE (0.500), //占空比50%
.CLKOUT4_USE_FINE_PS ("FALSE"),
.CLKIN1_PERIOD (20.000)) //输入时钟50Mhz,对应周期20ns
总结
输出时钟的计算公式为
输出时钟 = 输入时钟 x CLKFBOUT_MULT_F / 分频系数