[发明专利]一种异步先入先出存储器无效
申请号: | 201010102972.3 | 申请日: | 2010-01-28 |
公开(公告)号: | CN101825997A | 公开(公告)日: | 2010-09-08 |
发明(设计)人: | 周涛 | 申请(专利权)人: | 北京天碁科技有限公司 |
主分类号: | G06F5/06 | 分类号: | G06F5/06 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 许静 |
地址: | 100082 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异步 先入先出 存储器 | ||
技术领域
本发明涉及存储器技术,特别涉及一种支持多种不同宽度数据传输的异步先入先出存储器(FIFO)。
背景技术
在计算机、通信领域的各类应用中,经常需要进行不同时钟域之间的数据传输。如果是多比特数据的传输,为了保证异步时钟域之间传输时的数据完整性,一种通用的方法是使用异步FIFO。图1为现有技术的异步FIFO的结构示意图,该异步FIFO的特征是读写端各自的时钟域完全异步。
参照图1,数据在写时钟域中进入数据缓存,在读时钟域中被从数据缓存中读出,为了保证数据缓存的同时写入和读出不会造成数据丢失和重复,读和写的地址指针分别进行时钟域穿越,然后在写逻辑单元和读逻辑单元中分别对写地址和读地址的相对位置进行逻辑比较,根据比较结果判断出数据缓存的状态是否为满或空,在数据缓存处于满状态时,不能写入,在数据缓存处于空状态时,不能读出,如此,实现了对数据缓存进行安全的读写。
图2为现有技术的异步FIFO中数据缓存的逻辑结构示意图。参照图2,数据缓存的容量为t×n比特,其中,数据的读写宽度均为n,读写地址的空间深度均为t,也就是说,读写两端逻辑的地址指针范围(0到t-1)完全相同,数据的宽度(n)也一致。
如果数据不仅需要穿越异步时钟域,而且读写端数据的宽度需求不一致,例如数据在一个时钟域中宽度为n,需要转换成另一个时钟域中宽度为m,则需要额外进行数据宽度的转换,示意图如图3所示。图3中输入数据经过异步FIFO后还需要经过一次数据宽度变换处理才能从输入端的数据输入宽度n转变为输出端的数据宽度m。
对于更加复杂的应用系统,如果目标数据不仅需要穿越异步时钟域,而且输出数据可能需要多种宽度的格式,例如数据在一个时钟域中宽度为n,需要转换成另一个时钟域中宽度为m或者k,则需要额外进行多种数据宽度的转换,然后再多路选择输出,示意图如图4所示。图4中输入数据经过异步FIFO后分两路进行不同的数据宽度变换,然后经多路选择器进行选择输出。多路选择器接收外部输入的宽度选择信号,例如,所述宽度选择信号为“0”时,输出宽度为m的数据,所述宽度选择信号为“1”时,输出宽度为k的数据。
可见,现有技术中异步FIFO的读写端数据宽度相同,为实现不同宽度的数据传输,需要将该异步FIFO与宽度变换单元进行级联;如果需要支持多种不同宽度数据的输出,则需要级联多个宽度变换单元,然后进行多路选择。这种实现方式的结构复杂,数据传输需要经过多次变换和选择,传输效率低,不利于大容量数据的传输。
发明内容
本发明所要解决的技术问题是提供一种异步先入先出存储器,以实现多种宽度的数据输出,使异步时钟域的数据传输更加灵活高效。
为解决上述技术问题,本发明提供技术方案如下:
一种异步先入先出存储器,包括写逻辑单元、读逻辑单元和数据缓存,其中,还包括:
宽度获取单元,用于接收宽度选择信号,根据所述宽度选择信号从读出宽度集合中获取对应的读出宽度;
所述读逻辑单元中包括读地址产生单元,用于产生并输出读地址信号和读使能信号,所述读地址的地址空间根据所述数据缓存的容量和所获取的读出宽度确定;
所述数据缓存中包括输出控制单元,用于在接收到所述读使能信号和读地址信号时,控制所述数据缓存从所述读地址处输出宽度为所获取的读出宽度的数据。
上述的异步先入先出存储器,其中,所述写逻辑单元中包括:
第一地址转换单元,用于在写时钟域内,将写地址转换为表征比特位置的写比特地址,将读地址转换为表征比特位置的读比特地址;
满标志产生单元,用于对所述写比特地址和读比特地址在所述数据缓存中的相对位置进行比较,根据比较结果产生满标志。
上述的异步先入先出存储器,其中,所述第一地址转换单元进一步用于,在写时钟域内,将写地址与写入宽度相乘,得到写比特地址,将读地址与所获取的读出宽度相乘,得到读比特地址。
上述的异步先入先出存储器,其中,所述满标志产生单元进一步用于,当所述写比特地址与所述读比特地址相等,且所述相等是由于所述写比特地址从后赶上了所述读比特地址造成时,产生满标志。
上述的异步先入先出存储器,其中,所述读逻辑单元中包括:
第二地址转换单元,用于在读时钟域内,将写地址转换为表征比特位置的写比特地址,将读地址转换为表征比特位置的读比特地址;
空标志产生单元,用于对所述写比特地址和读比特地址在所述数据缓存中的相对位置进行比较,根据比较结果产生空标志。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天碁科技有限公司,未经北京天碁科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010102972.3/2.html,转载请声明来源钻瓜专利网。