这篇文章主要讲述一下另一种异步fifo的设计方法,这种设计方法与上篇文章设计方法的区别在于不需要将读指针rd_ptr和写指针wr_ptr同步化。该论文中采取对读、写指针的异步比较并且异步判断出empty和full状态位的值。
这里的读写指针还是采用格雷码计数器。由前面博客中讲到的格雷码计数器可知,有两种设计方法:一种设计只用到一组触发器,但是Grey-to-binary转换器,二进制增量器,Binary-to-grey转换器;另外一种设计用到两组触发器,一组触发器用来储存二进制数,另外一组用来出来二进制转换的格雷码值,这种设计方法能够减少组合逻辑,增加计数器的上限频率。其结构如下图所示:
下面讲一下空满状态的检测:空和满状态两种情况下,rd_ptr和wr_ptr的值是相等,因此要区别这两