四、修改时钟的mmcm IP
由于MIG模块需要系统时钟和参考时钟,我们需要在原本的mmcm模块之前再加一层mmcm用于产生MIG模块使用的系统时钟。
阅读readme说明文档,我们很容易知道,我们需要一个166.667MHZ的inputclk,以及一个200MHZ的refclk,给MIG模块输入。这个按照一般的mmcm配置方法便可以自行完成。难度不是很大。
配置完成以后,我们的E203_hbirdv2项目中就应该至少有以下4个IP核:(mmcm名字也不一定和我的一样)
五、使用vivado嵌入式逻辑分析仪ILA检查DDR是否初始化成功
创建ILA,将原始输入时钟CLK100MHZ作为逻辑分析仪的ILA采样时钟,将DDR接口的“init_calib_complete”线放进ila的探针probe中。
综合,实现完成以后,上板。将bitstream文件和debug文件都烧写进开发板。然后在弹出的ila面板中调整探针“init_calib_complete”的触发方式为 " R: from 0 to 1" ,按下开发板上的MCU_RST按键,观察init_calib_complete有没有成功被拉到高电平。
如果DDR连接正常,并且上电初始化成功,这根wire应该在初始化后,被拉至高电平。
如下图所示:我们的DDR成功被上电复位初始化: