Reset、clock、locked和dcm_locked之间的坑
如果连locked, 并用再生的reset,petalinux-boot --qemu --prebuilt 3仿真可以通过, 但目标板boot会死掉,判断可能是因为时钟IP需要复位初始化工作,但reset又需要稳定的时钟,所以该循环会陷入死锁无解,时钟IP无法初始化进入工作状态。如下图错误设计:
参考设计一:
原DPU TRD设计,用了第一级reset,但dcm_locked并未连,所以可以成功
参考设计二:
而在Ultra96_master_1设计中用的是原始复位信号
参考设计三:
DPU建议文件《pg338-dpu.pdf》中的时钟IP用的是原始复位和原始时钟,不用locked
用的是再生reset, 但不用locked, 能正常工作
解决方案一:全部用原始的pl_reset
如果时钟IP的reset改成ZYNQ的原始的pl_reset, 则可以工作
解决方案二:去掉全部locked
全部去掉locked, 也可以工作。
解决方案三:只第一级reset不用locked
第一级reset作为全局复位, 但不能用locked, 其余两级可用,也可不用locked,可以工作
总结正确做法:
第一级用作全局reset, 不用locked, 其余两级可用可不用locked
全不用locked
全用locked, 用原始的pl_reset,