最近一天半的时间一直在查一个诡异的时序问题;
pcie bridge + axi bram controller 无论怎么处理综合编译都会出现时序违例,没有任何思路;查看了路径是axi口上的时序违例,一直以为是ip内部的bug,然后查资料各种查有一篇文章比较好,放在这里分享给大家(侵删)
Vivado时序违约小结
建立时间违例有两种:1是logic level过长;2是fanout过多;
目前这边是logic level 过长,然后想中间逻辑加寄存器将axi数据手动打拍,但axi是握手信号,这样会有问题;又是一顿查还是没有思路,改各种的综合模式,ooc 改为global等等就是没有想到中间过了一个axi connector,用的太少了;问了朋友才知道这个里面会给加register slice的,然后这边正更改了编译上了;分析下来肯定是这个问题了,等下结果吧!
挺郁闷的,主要是编译太花时间了,挺郁闷的!
问题就是在这里,加了该功能好了;
总结:
时序违例后首先打开timer 分析工具查看具体哪个路径,分析是建立时间还是保持时间,然后继续看是路径太长还是驱动太多,还是跨时钟了,在针对该路径做相应处理;后续如果遇到类似问题还会持续更新。。。