论文部分内容阅读
FIFO(First In First Out)是先入先出存储器,可以用作数据缓冲器。根据工作在单时钟环境或双时钟环境的不同,可以将FIFO分为同步FIFO和异步FIFO。其中,异步FIFO通常作为不同时钟域之间进行数据传输的接口来使用。论文对高速大容量异步FIFO的设计展开了分析和研究。该FIFO以ASIC方式为实现手段。在异步FIFO的设计过程中会碰到的难点主要有两个。首先是亚稳态的解决。论文对亚稳态的产生机制做了介绍,探讨了亚稳态的解决方法。例如可以采用格雷码指针,使得指针有所改变时只会有一位数据发生变化,大大降低了亚稳态发生的可能性。其次是判断FIFO的状态。主要的判断方式有:在读写地址指针前增添一位附加位,或者将存储体划分成四个区间。本课题设计的FIFO共有四种不同的状态:满、空、将满和将空。在判断FIFO的状态时,进行比较的读、写地址指针各有两组,它们的差别主要体现在时序上。针对判断FIFO的将空和将满两个状态位,论文提出了一种阈值可以由使用者控制的判断方法,可以称之为“可编程判断方法”。当FIFO内存储的数据量比阈值小,但FIFO并不处于空状态时,则判断FIFO处于将空状态;当FIFO内剩余的数据存储量比阈值小,但FIFO并不处于满状态时,则判断FIFO处于将满状态。阈值寄存器内的值默认为255,可以由使用者改变。此外,FIFO内部SRAM也是设计的一个重点。本论文还分析了SRAM单元的读、写过程。在容量较大的RAM模块中,为了能够高速存入或读取数据,同时降低串扰的影响,设计中采用了字线错序译码、位线间隔排列、字线分割和位线分割技术。最后,在搭建测试平台完成电路仿真后,经0.18μm CMOS工艺流片,使用J750测试系统对样片进行测试,证明本设计是可行的。FIFO的容量为1MB,数据宽度为18bit,读写速度达到100MHz以上。FIFO具备转发功能,能准确判断出当前状态,且能实现可编程的将空、将满状态判断。