请教FIFO设计的一个问题
时间:10-02
整理:3721RD
点击:
我自己写了一个FIFO,一端100MHz,一端64MHz
对两个时钟都做了period全局约束,在两个clock之间加了from to约束
PAR之后 时序收敛
但是实验结果表明,读数据时仍然会读出错误的数据
请问该怎么解决这个问题?
对两个时钟都做了period全局约束,在两个clock之间加了from to约束
PAR之后 时序收敛
但是实验结果表明,读数据时仍然会读出错误的数据
请问该怎么解决这个问题?
检查一下你异步FIFO设计中的跨时钟域信号同步有没有问题.
跨时钟域的信号我用寄存器打了两拍
除此之外 还有什么要注意的?
打两拍 解决了亚稳态问题.防止了错误的传递.
但是同步后FIFO的抗错误能力需要考虑.
比如你的读模块二进制计数器被同步过来到写模块可能跳到了一个比正常数值更加大的地址.可能造成错误的可写.
而实际是不可一写的.
建议使用GRAY 计数器.
gray coding我也试了,还是不行
问题在于,比如应该读出的数是0x8101
实际的结果确是0x8100
即便FIFO中只有一个数,而且读的时候并没有写操作
检查一下你异步FIFO设计中的跨时钟域信号同步有没有问题.
仔细看时序,肯定可以找出问题所在
慢慢来
要不你再试试用别的时钟看看
快采慢2级D同步没问题,慢采快可能就不行了,用结绳法吧,而且慢采快肯定不能满负荷采样。
