提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
异步FIFO用来处理跨时钟域的读写,知识点涉及跨时钟域、同步、读写指针、空满判断、格雷码等。
一、异步FIFO
异步FIFO的结构如图所示。由读时钟域、写时钟域、Mermory模块和跨时钟域同步组成。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/739381a70bac88c37590448ebfe809ff.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/10f3369018472b743c00c79cb3befbfe.png)
二、读写指针、空满判断、格雷码
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82977995905e6043a44952898239c393.png)
读写指针随着读写操作在内存区域内循环移动。
写满:最高位不同,其余位相同
(可以理解为,写指针比读指针多跑一圈)
读空:所有位相同
(可以理解为,读指针赶上写指针)
二进制→格雷码:第一位不变,后面每位都是对应二进制码当前位和其左位的异或。
为什么使用格雷码?
如图红色地址跳变