异步FIFO,只需要记住几个核心点
1.有两个地址,两个读写指针,指针是用来跨时钟比较的
2.指针是地址转格雷码
3.地址要扩充1位,并且格雷码是高两位取反判断FIFO满
4.采用两级同步器跨时钟
5.本地需要打一拍,防止同步器前有组合逻辑出现毛刺
6.写指针与本地读指针来判断空,读指针和本地写指针来判断满
代码如下,还是有一些难度的,但是只要理解了异步FIFO,其实就是按部就班一个模块一个模块写。