一种异步FIFO的设计方法
个出错的包);而格雷码指针一般只能做递增或递减的移动。
(2)二进制指针可以用于任意大小的FIFO;格雷码指针只能用于大小为2的幂的FIFO。
(3)与直接同步相比,通过握手同步需要多时钟周期,因此二进制指针的满空判断比格雷码指针的满空判断更“保守”;对于设计一个容量很大且由内存构成的FIFO来说,由于保守判断而损失的空间可以忽略;但对于一个容量较小的FIFO而言,这种“保守”可能是无法接受的。例如,一个由8个寄存器组成的FIFO,对于格雷码编码的指针,最坏情况下,FIFO被写者判断为满时,里面实际只存有五个数据(使用两级同步器,可能需要三个周期同步,而在这三个周期内都有读动作发生);而对与二进制编码的指针,FIFO被判为满时,FIFO里可能只有三个数据或更少(使用两级同步器,最好的情况下,需要五个周期握手,而在这五个周期里都有读动作发生)。
设计者在两种方法的比较选择上应该考虑到以上的几点。
本文介绍的异步FIFO的设计方法的两种不同尽路都能够实现功能正确的异步FIFO。对这两种方法设计的FIFO的优缺点所做的简要分析,对FIFO的设计具有指导意义 《一种异步FIFO的设计方法(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140194.html
(2)二进制指针可以用于任意大小的FIFO;格雷码指针只能用于大小为2的幂的FIFO。
(3)与直接同步相比,通过握手同步需要多时钟周期,因此二进制指针的满空判断比格雷码指针的满空判断更“保守”;对于设计一个容量很大且由内存构成的FIFO来说,由于保守判断而损失的空间可以忽略;但对于一个容量较小的FIFO而言,这种“保守”可能是无法接受的。例如,一个由8个寄存器组成的FIFO,对于格雷码编码的指针,最坏情况下,FIFO被写者判断为满时,里面实际只存有五个数据(使用两级同步器,可能需要三个周期同步,而在这三个周期内都有读动作发生);而对与二进制编码的指针,FIFO被判为满时,FIFO里可能只有三个数据或更少(使用两级同步器,最好的情况下,需要五个周期握手,而在这五个周期里都有读动作发生)。
设计者在两种方法的比较选择上应该考虑到以上的几点。
本文介绍的异步FIFO的设计方法的两种不同尽路都能够实现功能正确的异步FIFO。对这两种方法设计的FIFO的优缺点所做的简要分析,对FIFO的设计具有指导意义 《一种异步FIFO的设计方法(第3页)》