[发明专利]实现任意深度异步FIFO的方法及装置、设备、介质在审
申请号: | 201811057400.0 | 申请日: | 2018-09-11 |
公开(公告)号: | CN110888622A | 公开(公告)日: | 2020-03-17 |
发明(设计)人: | 熊旭红;秦刚;冯歆鹏;周骥 | 申请(专利权)人: | 上海肇观电子科技有限公司;昆山肇观电子科技有限公司 |
主分类号: | G06F5/14 | 分类号: | G06F5/14 |
代理公司: | 北京市中伦律师事务所 11410 | 代理人: | 杨黎峰;钟锦舜 |
地址: | 200120 上海市浦东新区中国(上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 实现 任意 深度 异步 fifo 方法 装置 设备 介质 | ||
本申请公开了实现任意深度异步FIFO的方法及装置、设备、介质。该方法至少包括:每当利用写地址写数据时,将写地址及其对应的二进制写指针分别加1,写地址是按照异步FIFO的深度N绕回的,二进制写指针是按照2n绕回的,2n≥N,N为正整数,接收从读端跨时钟域同步的格雷码读指针,并进行二进制转换,得到二进制读指针,根据二进制读指针和二进制写指针,进行异步FIFO满判定。本申请通过对写地址及其对应的二进制写指针差异化地绕回,能够实现任意深度异步FIFO。
技术领域
本申请涉及芯片技术领域,尤其涉及实现任意深度异步先进先出(First InFirst Out,FIFO)的方法及装置、设备、介质。
背景技术
异步FIFO在现代专门应用集成电路(Application Specific IntegratedCircuit,ASIC)/片上系统(System On a Chip,SOC)设计中非常通用。尤其是在ASIC/SOC设计中更加注重功耗的情况下,架构中不同模块需要异步工作。为保证功能正确,需要在不同模块间加入异步FIFO。
异步FIFO具有读端、写端和存储模块,读端和写端各自的时钟域是异步的,在写时钟域中写端将数据顺序写入存储模块,在读时钟域中读端将已写入存储模块的数据,按照先入先出的规则读出。
在现有技术中,根据格雷码编码要求指定写地址和读地址的范围,以便基于格雷码进行跨时钟域地址同步,进而进行异步FIFO空满判定。
但是,由于格雷码编码要求码总数是2的正整数次方,比如,2、4、8、16等,从而也相应地限制了所能实现的异步FIFO的深度。
发明内容
本申请实施例提供实现任意深度异步FIFO的方法及装置、设备、介质,用以解决现有技术中的如下技术问题:目前基于格雷码能够实现的异步FIFO的深度受到限制。
本申请实施例采用下述技术方案:
一种实现任意深度异步FIFO的方法,包括:
每当利用写地址写数据时,将所述写地址及其对应的二进制写指针分别加1,所述写地址是按照异步FIFO的深度N绕回的,所述二进制写指针是按照2n绕回的,2n≥N,N为正整数;
接收从读端跨时钟域同步的格雷码读指针,并进行二进制转换,得到二进制读指针;
根据所述二进制读指针和所述二进制写指针,进行异步FIFO满判定。
可选地,所述方法还包括:
将所述二进制写指针进行格雷码转换,得到格雷码写指针;
将所述格雷码写指针跨时钟域同步至读端,以进行二进制转换,得到二进制写指针,用于读端根据所述二进制写指针和读端本地的二进制读指针,进行异步FIFO空判定;
其中,读端每当利用读地址读数据时,将所述读地址及其对应的所述二进制读指针分别加1,所述读地址是按照异步FIFO的深度N绕回的,所述二进制读指针是按照2n绕回的,所述格雷码读指针通过将所述二进制读指针进行格雷码转换得到。
可选地,所述根据所述二进制读指针和所述二进制写指针,进行异步FIFO满判定,具体包括:
若所述二进制写指针与所述二进制读指针之差等于N,则判定异步FIFO为满。
可选地,通过跨时钟域同步得到的二进制写指针相比于写端本地的二进制写指针,存在时延;以及,
通过跨时钟域同步得到的二进制读指针相比于读端本地的二进制读指针,存在时延。
另一种实现任意深度异步FIFO的方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海肇观电子科技有限公司;昆山肇观电子科技有限公司,未经上海肇观电子科技有限公司;昆山肇观电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811057400.0/2.html,转载请声明来源钻瓜专利网。