FIFO分为两种:同步FIFO和异步FIFO,两者的却别在于读写时钟是否是同一个时钟。换句话说,异步FIFO是同步FIFO的强化版设计,更加的灵活。特征就是:地址+1
1、结构框图
内部结构:双端口RAM、写控制逻辑、写地址、状态产生、读控制逻辑产生、读地址、格雷码同步。其中状态产生分为空信号、将空信号、满信号、将满信号。格雷码同步分为写地址格雷码从写时钟域到读时钟域的同步、读地址格雷码从读时钟域到写时钟域的同步。
2、原理
设计思想:状态信号的产生和跨时钟域的转换及同步。
(1)格雷码同步
格雷码同步在异步fifo中的作用:用于状态产生。
格雷码实现多比特跨时钟域转换的原理:因为fifo中地址是逐次+1的,而格雷码相邻两位数据一次只有一位数据发生变化。因此,将写地址(读地址)变换成格雷码,虽然地址是多比特的,但是每次变化只有1bit发生变化。这就是将二进制的地址转换成格雷码的好处了。格雷码能最大限度的降低垮时钟域带来的风险(亚稳态)。(注意:先转换成格雷码再跨时钟域)
转换原则:
二进制转格雷码:
二进制码右移一位后与原二进制码进行位间异或运算,例如