发明名称 用双端口随机存取存储器实现异步FIFO数据传输的方法
摘要 本发明涉及专用集成电路设计、数字电路设计技术领域,特别是一种用双端口随机存取存储器实现异步FIFO数据传输的方法。本发明设计了一种适用于异步数据传输的桥接FIFO,这种新型FIFO是在双端口RAM的基础上,通过同步控制逻辑把双端口RAM包装成一个通用的同步FIFO,再用一个较小的寄存器阵列构成异步接口。其步骤:S1:用双端口RAM构造一个通用的同步FIFO,S2:确定数据时钟域,S3:读取数据,S4:实现异步数据传输。使用本发明所设计的FIFO,能够准确及时地给出FIFO中数据的多少,使得数据传输双方可以适时地发起数据读写操作,有效地提高数据传输的效率。
申请公布号 CN100424663C 申请公布日期 2008.10.08
申请号 CN200410003886.1 申请日期 2004.02.10
申请人 中国科学院计算技术研究所 发明人 张亮;韩承德
分类号 G06F13/00(2006.01);G11C7/00(2006.01) 主分类号 G06F13/00(2006.01)
代理机构 中科专利商标代理有限责任公司 代理人 周国城
主权项 1. 一种用双端口随机存取存储器实现异步FIFO数据传输的方法,其特征在于,该方法包括:步骤S1:用双端口RAM构造一个通用的同步FIFO,具体包括:把双端口RAM的两个端口分别定义成数据输入端口和数据输出端口,写指针是数据输入端口的地址信号,读指针是数据输出端口的地址信号;当写信号有效时,读写控制逻辑把写指针加1;当读信号有效时,读写控制逻辑把读指针加1,根据读指针和写指针大小,读写控制逻辑实时地给出双端口RAM中数据量的多少和空/满状态;步骤S2:如果数据源域的时钟频率大于数据目标域的时钟频率,同步FIFO工作在数据源时钟域,并在同步FIFO的输出端接一个异步寄存器阵列;否则,同步FIFO工作在数据目标时钟域,并在同步FIFO的输入端接一个异步寄存器阵列,异步寄存器阵列的宽度与同步FIFO的数据宽度相等,寄存器阵列的深度根据异步时钟域的频率和相位差来决定,频率和相位差越大,寄存器阵列的深度越大;当频率和相位差接近于0时,寄存器阵列的深度等于或大于3;步骤S3:当数据源域的时钟频率大于数据目标域的时钟频率时,只要同步FIFO中有数据且寄存器阵列有空闲的寄存器阵列单元,都及时从同步FIFO预取数据到寄存器阵列中,并给出数据就绪标志;当数据源域的时钟频率小于数据目标域的时钟频率时,只要同步FIFO输入端的寄存器阵列中有数据,都被及时地读入同步FIFO中,同时寄存器阵列给出空闲标志;步骤S4:以上通过同步控制逻辑把双端口RAM包装成一个通用的同步FIFO,再用一个异步寄存器阵列构成异步接口,从而实现异步FIFO功能的方法,只要异步寄存器阵列有足够大的深度,就可以保证异步数据大流量连续传输。
地址 100080北京市中关村科学院南路6号