CN101299204B - 一种异步fifo及其地址转换方法 - Google Patents

一种异步fifo及其地址转换方法 Download PDF

Info

Publication number
CN101299204B
CN101299204B CN2008101145464A CN200810114546A CN101299204B CN 101299204 B CN101299204 B CN 101299204B CN 2008101145464 A CN2008101145464 A CN 2008101145464A CN 200810114546 A CN200810114546 A CN 200810114546A CN 101299204 B CN101299204 B CN 101299204B
Authority
CN
China
Prior art keywords
address
binary
gray code
obtains
calculate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101145464A
Other languages
English (en)
Other versions
CN101299204A (zh
Inventor
周涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing T3G Technology Co Ltd
Original Assignee
Beijing T3G Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing T3G Technology Co Ltd filed Critical Beijing T3G Technology Co Ltd
Priority to CN2008101145464A priority Critical patent/CN101299204B/zh
Publication of CN101299204A publication Critical patent/CN101299204A/zh
Application granted granted Critical
Publication of CN101299204B publication Critical patent/CN101299204B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种异步FIFO及其地址转换方法。所述方法包括:计算B[m-1:0]对应的十进制数x;当x<N时,令G[m-1]=0,G[i]=B[i]异或B[i+1],0≤i≤m-2,得到G[m-1:0];当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]异或B1[j+1],0≤j≤m-2,得到G[m-1:0]。依照本发明,可以对任意偶数阶的二进制地址进行格雷码转换,从而使得FIFO的深度可以为任意偶数。

Description

一种异步FIFO及其地址转换方法
技术领域
本发明涉及微电子技术领域,特别是涉及一种异步FIFO及其地址转换方法。
背景技术
在通讯处理系统中,经常需要进行不同时钟域之间的数据传输。如果是多比特数据的传输,为了保证异步时钟域之间传输时的数据完整性,一种通用的方法是使用异步FIFO(先进先出)。异步FIFO的特征是读写端各自的时钟域完全异步,图1为其一般结构。如图1所示,数据在写时钟域中进入缓存,在读时钟域中被读出,为了保证数据缓存的同时写入和读出时数据的一致和完整,在写逻辑和读逻辑中分别对写地址和读地址的相对位置进行逻辑比较,从而判断出缓存的状态(例如,空状态、满状态)。
由于读写时钟的异步,读和写的地址指针需要分别进行时钟域穿越。读地址和写地址的宽度都是多个比特,所以直接的时钟穿越不能解决问题。为此,一种通用的做法是在穿越前(源时钟域内)将二进制地址转换成格雷码(GrayCode),利用格雷码的特性(相邻数字只相差一个比特)进行时钟穿越,在穿越后(目标时钟域)再转换成原来的二进制编码。
图2为现有异步FIFO中地址转换示意图。如图2所示:读逻辑中生成二进制的读地址后,将该二进制读地址转换为格雷码,然后,将该读地址格雷码从读时钟域穿越到写时钟域,在写逻辑中,将该读地址格雷码转换为二进制读地址,并通过对读地址和写地址进行比较来确定缓存是否为满;写地址的穿越类似,不再赘述。
但是,由于格雷编码的特殊性,一般的格雷编码要求数据总数是2的整数次幂(2、4、8、16、32、...)。这样,使用常规格雷编码的异步FIFO的数据缓存的地址空间(即异步FIFO的深度)也只能为2的整数幂,从而限制了FIFO的应用。
发明内容
本发明所要解决的技术问题是提供一种用于异步FIFO存储器的地址转换方法及装置,可以对任意偶数阶的二进制地址进行格雷码转换,从而使得FIFO存储器的深度可以为任意偶数。
为解决上述技术问题,本发明提供技术方案如下:
一种用于异步FIFO存储器的地址转换方法,将二进制地址B[m-1:O]转换为格雷码G[m-1:0],m为大于1的整数,所述异步FIFO存储器的深度为2N,N为整数,所述方法包括:
计算B[m-1:0]对应的十进制数x;
当x<N时,令G[m-1]=0,G[i]=B[i]^B[i+1],0≤i≤m-2,得到G[m-1:0];
当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]^B1[j+1],0≤j≤m-2,得到G[m-1:0]。
一种用于异步FIFO存储器的地址转换方法,将格雷码G[m-1:0]转换为二进制地址B[m-1:0],m为大于1的整数,所述异步FIFO存储器的深度为2N,N为整数,所述方法包括:
令B[m-1]=0,B[k]=G[m-1]异或G[m-2]^...^G[k],0≤k≤m-2,得到B[m-1:0];
计算所述得到的B[m-1:0]对应的十进制数z;
当G[m-1]=1时,计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]。
一种用于异步FIFO存储器的地址转换装置,所述异步FIFO存储器的深度为2N,N为整数,包括二进制地址到格雷码转换模块和格雷码到二进制地址转换模块,其中:
所述二进制地址到格雷码转换模块用于,将二进制地址B[m-1:0]转换为格雷码G[m-1:0],m为大于1的整数,具体为:
计算B[m-1:0]对应的十进制数x;
当x<N时,令G[m-1]=0,G[i]=B[i]^B[i+1],0≤i≤m-2,得到G[m-1:0];
当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]^B1[j+1],0≤j≤m-2,得到G[m-1:0];
所述格雷码到二进制地址转换模块用于,将格雷码G[m-1:0]转换为二进制地址B[m-1:0],具体为:
令B[m-1]=0,B[k]=G[m-1]^G[m-2]^...^G[k],0≤k≤m-2,得到B[m-1:0];
计算所述得到的B[m-1:0]对应的十进制数z;
当G[m-1]=1时,计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]。
与现有技术相比,本发明的有益效果是:
可以对任意偶数阶的二进制地址进行格雷码转换,而不局限于2的整数次幂的大小;
使用这种格雷码转换方法设计的异步FIFO存储器,其数据缓存的地址空间不受2的整数幂的限制,使系统设计得到优化。
附图说明
图1为现有异步FIFO的结构示意图;
图2为现有异步FIFO中地址转换示意图;
图3为本发明实施例的二进制地址到格雷码的转换示意图;
图4为本发明实施例的格雷码到二进制地址的转换示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明进行详细描述。
首先介绍本发明实施例中使用的数学符号的含义。B[m-1:0]表示一个m位的二进制数,B[k]为B[m-1:0]的第k位;格雷码G[m-1:0]的含义类似。
参照图3,需要将二进制地址B[m-1:0]转换为格雷码G[m-1:0],其中,m为大于1的整数,异步FIFO的深度为2N,N为整数。转换方法主要包括如下步骤:
步骤301:计算B[m-1:0]对应的十进制数x;
步骤302:判断x是否小于N,若是执行步骤303,否则,执行步骤304;
步骤303:令G[m-1]=0,G[i]=B[i]异或B[i+1],0≤i≤m-2,得到G[m-1:0],结束;
步骤304:令y=2N-1-x,计算y对应的二进制数B1[m-1:0];
步骤305:令G[m-1]=1,G[j]=B1[j]异或B1[j+1],0≤j≤m-2,得到G[m-1:0],结束。
参照图4,需要将将格雷码G[m-1:0]转换为二进制地址B[m-1:0],其中,m为大于1的整数,异步FIFO的深度为2N,N为整数。转换方法主要包括如下步骤:
步骤401:令B[m-1]=0,B[k]=G[m-1]异或G[m-2]异或...异或G[k],0≤k≤m-2,得到B[m-1:0];
步骤402:计算所述得到的B[m-1:0]对应的十进制数z;
步骤403:判断G[m-1]是否为1,若是,执行步骤404,否则,执行步骤405
步骤404:计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]输出,结束;
步骤405:直接将步骤401中得到的B[m-1:0]作为最终结果输出,结束。
以下为利用上述方法进行转换的实例。
共6个数,2N=6,N=3,表示6个数需要3比特,m=3,使用上述方法转换结果如下:
二进制数      格雷码
0(000)        000
1(001)        001
2(010)        011
3(011)        111
4(100)        101
5(101)        100
可以看出转换结果符合格雷码的定义,每两个相邻数之间只相差一个比特,且首尾循环。
使用上述方法的异步FIFO(可参照图2),包括二进制地址到格雷码转换模块和格雷码到二进制地址转换模块,其中:
所述二进制地址到格雷码转换模块用于,将二进制地址B[m-1:0]转换为格雷码G[m-1:0],m为大于1的整数,具体为:
计算B[m-1:0]对应的十进制数x;
当x<N时,令G[m-1]=0,G[i]=B[i]异或B[i+1],0≤i≤m-2,得到G[m-1:0];
当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]异或B1[j+1],0≤j≤m-2,得到G[m-1:0];
所述格雷码到二进制地址转换模块用于,将格雷码G[m-1:0]转换为二进制地址B[m-1:0],具体为:
令B[m-1]=0,B[k]=G[m-1]异或G[m-2]异或...异或G[k],0≤k≤m-2,得到B[m-1:0];
计算所述得到的B[m-1:0]对应的十进制数z;
当G[m-1]=1时,计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]。
最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神范围,其均应涵盖在本发明的权利要求范围当中。

Claims (3)

1.一种用于异步FIFO存储器的地址转换方法,将二进制地址B[m-1:0]转换为格雷码G[m-1:0],m为大于1的整数,所述异步FIFO存储器的深度为2N,N为整数,其特征在于,所述方法包括:
计算B[m-1:0]对应的十进制数x;
当x<N时,令G[m-1]=0,G[i]=B[i]^B[i+1],0≤i≤m-2,得到G[m-1:0];
当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]^B1[j+1],0≤j≤m-2,得到G[m-1:0]。
2.一种用于异步FIFO存储器的地址转换方法,将格雷码G[m-1:0]转换为二进制地址B[m-1:0],m为大于1的整数,所述异步FIFO存储器的深度为2N,N为整数,其特征在于,所述方法包括:
令B[m-1]=0,B[k]=G[m-1]^G[m-2]^...^G[k],0≤k≤m-2,得到B[m-1:0];
计算所述得到的B[m-1:0]对应的十进制数z;
当G[m-1]=1时,计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]。
3.一种用于异步FIFO存储器的地址转换装置,所述异步FIFO存储器的深度为2N,N为整数,其特征在于,包括二进制地址到格雷码转换模块和格雷码到二进制地址转换模块,其中:
所述二进制地址到格雷码转换模块用于,将二进制地址B[m-1:0]转换为格雷码G[m-1:0],m为大于1的整数,具体为:
计算B[m-1:0]对应的十进制数x;
当x<N时,令G[m-1]=0,G[i]=B[i]^B[i+1],0≤i≤m-2,得到G[m-1:0];
当x≥N时,令y=2N-1-x,计算y对应的二进制数B1[m-1:0],且令G[m-1]=1,G[j]=B1[j]^B1[j+1],0≤j≤m-2,得到G[m-1:0];
所述格雷码到二进制地址转换模块用于,将格雷码G[m-1:0]转换为二进制地址B[m-1:0],具体为:
令B[m-1]=0,B[k]=G[m-1]^G[m-2]^...^G[k],0≤k≤m-2,得到B[m-1:0];
计算所述得到的B[m-1:0]对应的十进制数z;
当G[m-1]=1时,计算2N-1-z对应的二进制数,并将计算得到的二进制数作为B[m-1:0]。
CN2008101145464A 2008-06-10 2008-06-10 一种异步fifo及其地址转换方法 Expired - Fee Related CN101299204B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101145464A CN101299204B (zh) 2008-06-10 2008-06-10 一种异步fifo及其地址转换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101145464A CN101299204B (zh) 2008-06-10 2008-06-10 一种异步fifo及其地址转换方法

Publications (2)

Publication Number Publication Date
CN101299204A CN101299204A (zh) 2008-11-05
CN101299204B true CN101299204B (zh) 2010-06-02

Family

ID=40079035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101145464A Expired - Fee Related CN101299204B (zh) 2008-06-10 2008-06-10 一种异步fifo及其地址转换方法

Country Status (1)

Country Link
CN (1) CN101299204B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102495713A (zh) * 2011-12-09 2012-06-13 盛科网络(苏州)有限公司 实现任意深度异步fifo的方法及系统
CN103377029B (zh) * 2012-04-12 2016-05-25 中国航空工业集团公司第六三一研究所 参数化的通用fifo控制方法
CN110888622A (zh) * 2018-09-11 2020-03-17 上海肇观电子科技有限公司 实现任意深度异步fifo的方法及装置、设备、介质
CN111400205B (zh) * 2020-02-29 2022-05-24 华南理工大学 一种先进先出地址轮询缓存读写方法、系统及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545031A (zh) * 2003-11-17 2004-11-10 中兴通讯股份有限公司 一种fifo存储器的数据处理方法
CN1787370A (zh) * 2004-12-09 2006-06-14 华为技术有限公司 一种确定时钟域转换异常的装置及方法
CN1893388A (zh) * 2005-07-01 2007-01-10 中兴通讯股份有限公司 一种异步fifo实现系统及实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1545031A (zh) * 2003-11-17 2004-11-10 中兴通讯股份有限公司 一种fifo存储器的数据处理方法
CN1787370A (zh) * 2004-12-09 2006-06-14 华为技术有限公司 一种确定时钟域转换异常的装置及方法
CN1893388A (zh) * 2005-07-01 2007-01-10 中兴通讯股份有限公司 一种异步fifo实现系统及实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开2005-166120A 2005.06.23

Also Published As

Publication number Publication date
CN101299204A (zh) 2008-11-05

Similar Documents

Publication Publication Date Title
CN101261575B (zh) 一种实现不等宽数据传输的异步先进先出存储器及方法
CN101299204B (zh) 一种异步fifo及其地址转换方法
US6801143B2 (en) Method and apparatus for generating gray code for any even count value to enable efficient pointer exchange mechanisms in asynchronous FIFO'S
CN105183423A (zh) 一种跨时钟域异步数据处理方法和装置
CN102520761A (zh) 一种基于自定义处理器的任意波形产生系统
CN102799410B (zh) 基于李氏制约竞争计数编码的异步fifo地址转换电路
CN103888147A (zh) 一种串行转并行转换电路和转换器以及转换系统
CN101477833A (zh) 钟控异步fifo存储器
CN102468829A (zh) 一种信号发生器及其波表重组方法
AU597554B2 (en) Pseudo-noise sequence generator
JP4956295B2 (ja) 半導体記憶装置
WO2017067038A1 (zh) 半导体存储器操作方法
CN103377029B (zh) 参数化的通用fifo控制方法
CN202261243U (zh) 一种应用于dds芯片的10位高速dac电路
CN209765494U (zh) 一种异步fifo装置
CN105184365A (zh) 用于非精确计算的数模混合信号处理系统
JP4902662B2 (ja) シリアル・リンクの信号遷移特性ベースのコード化
CN101267459B (zh) 采用异步fifo寄存器输出数据的方法及寄存器
CN110427168B (zh) 一种实现任意深度低传输延时的异步fifo的方法及装置
Guo et al. Shifted gray encoding to reduce instruction memory address bus switching for low-power embedded systems
KR20220012019A (ko) 메모리 모듈 및 이를 포함하는 메모리 시스템
CN101488119A (zh) 地址译码方法、装置及单板
Tripathi et al. Low power based Manchester encoder by GDI
CN110532815A (zh) 一种基于cnfet的三值sram-puf电路
CN106877872B (zh) 一种电流舵数模转换器的控制装置及编码方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100602

Termination date: 20180610