DETECT子流程扫描循环当状态进入DETECT时detect_state置1detect_req在进入DETECT时以及每次扫描完成后产生单周期脉冲触发restart脉冲restart脉冲宽度为7个时钟周期restart_cnt从0到6然后清零sync_start直接连接到restart用于启动afe_sync的SYNC状态每个restart脉冲期间各idelay_lane会进行一次延迟值扫描延时值递增具体由idelay_lane内部逻辑实现扫描完成后sync_done_0~3变为1也就是前述的afe_sync模块的同步逻辑每次延时控制模块修改了一次延时后afe_sync同步逻辑就要完整的工作一遍工作后给出同步结果用于延时控制模块判断对于各通道该延时值对于通道数据采样的影响detc_over产生当detc_flag1且所有AFE的sync_done_0~3均为1时detc_over置1detc_cnt加1表示一次延迟修改的同步扫描工作完成detc_flag在restart_cnt5’d30即restart脉冲结束后的下一个周期时置1并在所有sync_done_0~3为1后清零扫描计数detc_cnt从0开始每次detc_over后加1直到511。因此总共扫描512个延迟值0~511LOCKING子流程当detc_over1 detc_cnt511时512次扫描结束后状态进入LOCKINGlocking_state置1开始进行延时结果的判断idelay_lane在locking_state1时将扫描得到的最佳延迟值value_best通过内部idelaye3_mode_ctrl渐进加载每次±8tap每次修改idelaye3的步进不能超过8这是原语的要求加载完成后locking_done置1locking_done_clk汇总所有通道的locking_done信号从125MHz域同步到100MHz域后按位相与得到locking_done_clk当所有通道完成锁定时locking_done_clk变为1locking_ok条件locking_done_clk1且detc_flag1且所有AFE的sync_done_03和sync_ok_03均为1时locking_ok拉高一拍状态机进入EXIT_PATAFE退出测试模式locking_err条件若locking_done_clk1但sync_ok_0~3不全为1表示没有全通道同步成功则locking_err置1触发afe_soft_rst状态机返回IDLEafe芯片也要复位全流程重新开始EXIT_PAT子流程与进入测试模式的流程类似进入状态时产生exit_pat单周期脉冲等待所有AFE的exit_pat_ok_0~3锁存为1exit_pat_status4’hf然后启动exit_pat_delay延迟一段时间后exit_pat_ok置1状态机进入LOCKEDLOCKED状态sync_ok输出为1表示系统正常工作若pwon_init_ok变低状态机返回IDLE在LOCKED状态下afe_sync同步模块处于WORK模式输出正常采样数据跨时钟域CDC从100M跨到4个afe的各自的125M从4个afe的125M跨到100M。本文章由威三学社出品对课程感兴趣可以私信联系