前几天在调试DA的时候,因为要3个DA进行串联,所以要串行发送24位数据,此时会遇到问题 “有的DA档位会出错” ,这个问题,当时考虑是时序达不到,后来把DA的时序降低到5M,但是发现偶尔还是出错。
因此想到 是不是24的寄存器进行串行输出的时候,是不是有的位数因为离着时钟比较远,导致数据在时钟后面,基于这个思路,把24位寄存器作为一个分组约束。
此时测试了50遍左右,发现正常工作,没有出现出错的情况。
///////////////////////修改///////////////////
但是后来 又发现 有的机器还是出现,这一点另我一点也摸不着头脑,仔细分析了过程,发现问题真正的所在,原因是 因为我的结构是FPGA+68013,其中68013是24M,而FPGA的主控时钟是125M,那么两者之间出现的就是异步时钟域, 基于这个现象,我进行了同步操作,打拍2次,OK,问题解决。
不过令我感到意外的是 为什么时序报告 没有报告这个错误呢 !!!