CN101267459B - 采用异步fifo寄存器输出数据的方法及寄存器 - Google Patents

采用异步fifo寄存器输出数据的方法及寄存器 Download PDF

Info

Publication number
CN101267459B
CN101267459B CN2008101047315A CN200810104731A CN101267459B CN 101267459 B CN101267459 B CN 101267459B CN 2008101047315 A CN2008101047315 A CN 2008101047315A CN 200810104731 A CN200810104731 A CN 200810104731A CN 101267459 B CN101267459 B CN 101267459B
Authority
CN
China
Prior art keywords
data
address
data set
output
last
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
CN2008101047315A
Other languages
English (en)
Other versions
CN101267459A (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.)
Wuxi Vimicro Corp
Original Assignee
Wuxi Vimicro Corp
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 Wuxi Vimicro Corp filed Critical Wuxi Vimicro Corp
Priority to CN2008101047315A priority Critical patent/CN101267459B/zh
Publication of CN101267459A publication Critical patent/CN101267459A/zh
Application granted granted Critical
Publication of CN101267459B publication Critical patent/CN101267459B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了一种数据输出方法,针对每一数据组执行处理:为该数据组分配目的地地址;基于所述分配的目的地地址,输出该数据组中的数据;每输出该数据组中的一个数据,判断该输出的数据是否为该数据组中的最后一个数据,以及在判断出输出的数据为该数据组中的最后一个数据时,触发为该数据组的下一数据组分配目的地地址;否则触发继续基于所述分配的目的地地址,输出该数据组中的数据。相应的,本发明还公开了一种数据缓存器,采用本发明方案,使得可以采用较少的数据缓存器将数据输出到对应的目的地,从而减小了芯片的面积,硬件实现结构简单。

Description

采用异步FIFO寄存器输出数据的方法及寄存器
技术领域
本发明涉及通信技术领域,尤其涉及一种异步先进先出FIFO寄存器的数据输出方法,及一种异步先进先出寄存器。
背景技术
先进先出(FIFO,First In First Out)寄存器与普通存储器的区别是其没有外部读写地址线,所以FIFO寄存器的优点是使用非常简单;缺点是只能顺序的写入数据、顺序的读出数据,其数据地址是由内部读写指针自动加1完成的,而不是像普通存储器那样,由地址线决定读取或写入某个指定的地址。
在两个不同的时钟域间进行数据传输时,可以采用FIFO寄存器作为数据缓冲。在实际应用过程中,常常需要将数据流中的各种不同数据跨时钟域分配到不同的地址空间去,比如通常在做完数据运算后,需要将数据传入多个存储空间或是后续模块,而运算模块的时钟频率和存储空间或后续模块的时钟频率之间通常没有固定的频率关系,因而需要采用异步FIFO寄存器来进行数据的跨时钟处理,如图1所示,采用三个异步FIFO寄存器(异步FIFO1、异步FIFO2、异步FIFO3)来将输入数据分别写入三个不同的存储空间(空间A、空间B、空间C)。具体地,在数据输入端有一控制信号,控制将待写入不同空间的数据分配到不同的异步FIFO寄存器中,然后在异步FIFO的输出端分别读出该待写入数据,并写入对应的存储空间。
上述处理过程虽然解决了不同数据流在源头上的分配,且控制较为简单,但存在的问题是每有一个存储空间或后续模块,就需对应采用一个异步FIFO寄存器,而使用多个FIFO寄存器将会大大增加芯片的面积。
发明内容
本发明提供了一种采用异步先进先出寄存器输出数据的方法,以采用较少的数据缓存器将数据输出到对应的目的地。
相应的,本发明还提供了一种异步先进先出寄存器。
本发明实施例提供一种采用异步先进先出寄存器输出数据的方法,针对每一数据组执行处理:为该数据组分配目的地地址;基于所述分配的目的地地址,输出该数据组中的数据;每输出该数据组中的一个数据,将记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,判断该输出的数据是否为该数据组中的最后一个数据,以及在判断出输出的数据为该数据组中的最后一个数据时,触发为该数据组的下一数据组分配目的地地址;否则触发继续基于所述分配的目的地地址,输出该数据组中的数据。
本发明实施例提供一种异步先进先出寄存器,包括:分配单元,用于为数据组分配目的地地址;输出单元,用于基于分配单元分配的目的地地址,输出该数据组中的数据;记录单元,用于记录数据组中最后一个数据的地址;判断单元,用于在输出单元每输出该数据组中的一个数据时,将记录单元记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,判断该输出的数据是否为该数据组中的最后一个数据;以及第一触发单元,用于在判断单元的判断结果为是时,触发所述分配单元为该数据组的下一数据组分配目的地地址;第二触发单元,用于在判断单元的判断结果为否时,触发输出单元继续基于所述分配的目的地地址,输出该数据组中的数据。
本发明实施例提出的数据输出方案,通过针对每一数据组执行处理:为该数据组分配目的地地址;基于所述分配的目的地地址,输出该数据组中的数据;每输出该数据组中的一个数据,判断该输出的数据是否为该数据组中的最后一个数据,以及在判断出输出的数据为该数据组中的最后一个数据时,触发为该数据组的下一数据组分配目的地地址;否则触发继续基于所述分配的目的地地址,输出该数据组中的数据。使得可以采用较少的数据缓存器将数据输出到对应的目的地,从而减小了芯片的面积,硬件实现结构简单。
附图说明
图1为现有技术中采用多个FIFO寄存器,将数据跨时钟域分配到不同地址空间的示意图;
图2为通用FIFO寄存器的原理示意图;
图3a为本发明实施例提出的数据输出方法的流程示意图;
图3b为本发明实施例提出的数据输出方法中,判断输出的数据是否为数据组中最后一个数据的流程示意图;
图4为本发明实施例提出的数据输出方法中,将获取的地址与记录的地址进行比较的流程示意图;
图5为本发明实施例一提出的采用一个FIFO寄存器,将数据跨时钟域分配到不同地址空间的示意图;
图6为本发明实施例提出的数据缓存器的结构示意图;
图7为本发明实施例提出的数据缓存器中判断单元的具体结构示意图;
图8为本发明实施例提出的数据缓存其中比较子单元的具体结构示意图。
具体实施方式
本发明实施例提出的采用异步先进先出寄存器输出数据的方案是:为各数据组分配各自对应的目的地,基于所述分配的目的地,将所述各个数据组分别输出到各自对应的目的地。
首先介绍一下通用FIFO寄存器的原理,如图2所示,双口RAM两端隶属于两个不同的时钟域,写时钟域A输入写使能信号和输入数据;读时钟域B输入读使能信号和输出数据。FIFO写地址产生器产生的写满标志,通知写时钟域B双口RAM已经写满。FIFO读地址产生器产生的读空标志,通知读时钟域A双口RAM已经读空。
写满标志的生成过程如下:FIFO写地址产生器利用写使能信号产生顺序递增的写地址,将当前写地址与读地址比较,如果二者之差等于FIFO寄存器的容量,则认为双口RAM已经写满,生成写满标志。
同理,读空标志的生成过程如下:FIFO写地址产生器利用写使能信号产生顺序递增的写地址,将当前写地址与读地址比较,如果二者相等,则认为双口RAM已经读空,生成读空标志。
为了消除亚稳态,通常采用格雷码转换的方法将读地址转换为读指针格雷码,并经过两级同步,同步到写时钟域来进行写满标志判断;将写地址转换为写指针格雷码,并经过两级同步,同步到读时钟域来进行读空标志判断。
下面结合说明书附图来说明本发明的具体实施方式。
图3a为本发明实施例提出的数据输出方法的流程示意图,具体流程说明如下,针对每一数据组执行下述步骤31-步骤34:
步骤31:为该数据组分配目的地地址;
数据缓存器可以通过多种方式得到按序排列的数据组,然后对该得到的数据组按序执行步骤31-步骤34的处理。
例如:数据缓存器通过顺序接收数据组的方式,得到按照顺序排列的数据组;或数据缓存器通过将缓存的数据组按照输出目的地的不同,进行分组排序得到。
步骤32:基于所述分配的目的地地址,输出该数据组中的数据;
数据组中会包含多个数据,基于所述分配的地址,将该数据组中的数据依次输出。
步骤33:每输出该数据组中的一个数据,判断该输出的数据是否为该数据组中的最后一个数据;
步骤34:在判断出输出的数据为该数据组中的最后一个数据时,触发为该数据组的下一数据组分配目的地地址;否则触发转回步骤31继续基于所述分配的目的地地址,输出该数据组中的数据。
本发明实施例提出的数据输出方案还包括记录该数据组中最后一个数据的地址;步骤33中判断输出的数据是否为该数据组中的最后一个数据的流程如图3b所示,具体流程说明如下:
步骤331:获取输出的该数据组中的数据的地址;
步骤332:将所述获取的地址与所述记录的地址进行比较;
每输出一个数据时,获取该数据的地址,并将该地址与记录的当前数据组中的最后一个数据地址进行比较。
步骤333:在比较结果相等时,判断出输出的数据为该数据组中的最后一个数据;否则判断出输出的数据不是该数据组中的最后一个数据。
通过步骤331-步骤333的操作,可以判断输出的数据是否为该当前数据组中的最后一个数据,当然所述判断的过程也可以采用其它的方式。
为了消除亚稳态,上述步骤332中执行的将获取的地址与记录的地址进行比较,具体如图4所示,流程说明如下:
步骤3321:将所述获取的地址,转换为对应的格雷码数据;
步骤3322:将所述记录的地址,转换为对应的格雷码数据;
步骤3323:将所述转换得到的两个格雷码数据进行比较。
下面以一个具体的实施例来说明本发明方案,其中数据缓存器以FIFO寄存器为例来说明,当然采用本发明思想进行改进得到的数据缓存器不仅限于为先进先出寄存器。
实施例一:
图5为本发明实施例一提出的采用一个FIFO寄存器,将数据跨时钟域分配到不同地址空间的示意图。如图所示,这里只使用了一组异步寄存器来进行数据跨时钟域读写,即采用一个异步FIFO寄存器将三组数据分别写入到空间A、空间B和空间C中。
假设需要将第一组数据写入空间A,将第二组数据写入空间B,将第三组数据写入空间C,那么只需将三组数据依次写入异步FIFO寄存器中,在开始写入第一组数据时写空间A有效,异步FIFO寄存器为该写入的第一组数据分配对应的目的地地址,即空间A的地址,写端口在写入第一组数据时,读端口可以执行读出操作,并将读出的数据输出到空间A,在第一组数据中的最后一个数据写入异步FIFO寄存器时,记录该最后一个数据的地址,同时将其转化为格雷码后传递至读端口(此时写端口可以继续执行第二组数据的写操作),将读端口读出数据的地址,也转换为对应的格雷码,与传递至读端口的格雷码比较,在比较结果为二者相等时,判定写入异步FIFO寄存器的第一组数据已经读空;此时写空间B有效,异步FIFO寄存器为第二组数据分配目的地地址空间,即空间B的地址,读端口继续执行读出操作,并将读出的数据输出到空间B,在第二组数据中的最后一个数据写入异步FIFO寄存器时,也记录该最后一个数据的地址,同时将其转化为格雷码后传递至读端口(此时写端口可以继续执行第三组数据的写操作),将读端口读出数据的地址,也转换为对应的格雷码,与所述传递至读端口的格雷码比较,在比较结果为二者相等时,判定写入异步FIFO寄存器的第二组数据已经读空;此时写空间C有效,异步FIFO寄存器继续为第三组数据分配目的地地址空间,即空间C的地址,读端口继续执行读出操作,并将读出的数据输出到空间C,至此,完成了将三组数据分别输出至三个不同的空间。
综上所述,可见只使用了一个异步FIFO寄存器,通过在写端口增加记录各组数据中最后一个数据的地址,并将记录的地址转换为格雷码传送至读端口,在读端口将读出数据的地址转换为格雷码,并与传送来的格雷码进行比较的方式,来实现数据的跨时钟域动态分配。这样做虽然增加了一些锁存和比较逻辑,但却可以大大减少异步FIFO寄存器的使用,有效地减少了芯片面积。
本发明实施例提出了一种异步先进先出寄存器,如图6所示,包括:分配单元61,用于为数据组分配目的地地址;输出单元62,用于基于分配单元61分配的目的地地址,输出该数据组中的数据;判断单元63,用于在输出单元62每输出该数据组中的一个数据时,判断该输出的数据是否为该数据组中的最后一个数据;以及第一触发单元64,用于在判断单元63的判断结果为是时,触发所述分配单元61为该数据组的下一数据组分配目的地地址;第二触发单元65,用于在判断单元63的判断结果为否时,触发输出单元62继续基于所述分配的目的地地址,输出该数据组中的数据。
所述数据缓存器还包括记录单元66,用于记录数据组中最后一个数据的地址;
所述判断单元63如图7所示,具体包括:获取子单元631,用于获取输出单元62输出的该数据组中的数据的地址;比较子单元632,用于将获取子单元631获取的地址与记录单元66记录的该数据组中最后一个数据的地址进行比较;以及判断子单元633,用于在比较子单元632的比较结果相等时,判断出输出的数据为该数据组中的最后一个数据;否则判断出输出的数据不是该数据组中的最后一个数据。
所述比较子单元632如图8所示,具体包括:第一转换子模块6321,用于将获取子单元631获取的地址,转换为对应的格雷码数据;第二转换子模块6322,用于将记录单元66记录的地址,转换为对应的格雷码数据;比较子模块6323,用于将第一转换子模块6321与第二转换子模块6322转换得到的两个格雷码数据进行比较。
本发明采用在一个FIFO寄存器中插入多个假空标记来实现数据地址空间的切换。该方法不仅硬件实现结构简单,而且大大减少FIFO寄存器的使用面积。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种采用异步先进先出寄存器输出数据的方法,其特征在于,针对每一数据组执行处理:
为该数据组分配目的地地址;
基于分配的目的地地址,输出该数据组中的数据;
每输出该数据组中的一个数据,将记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,判断该输出的数据是否为该数据组中的最后一个数据,以及
在判断出输出的数据为该数据组中的最后一个数据时,触发为该数据组的下一数据组分配目的地地址;否则
触发继续基于所述分配的目的地地址,输出该数据组中的数据。
2.如权利要求1所述的方法,其特征在于,所述将记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,判断该输出的数据是否为该数据组中的最后一个数据,包括:
在比较结果相等时,判断出输出的数据为该数据组中的最后一个数据;否则判断出输出的数据不是该数据组中的最后一个数据。
3.如权利要求2所述的方法,其特征在于,所述将记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,具体包括:
将所述获取的输出的该数据组中的数据的地址转换为对应的格雷码数据;并
将所述记录的该数据组中最后一个数据的地址转换为对应的格雷码数据;以及
将转换得到的两个格雷码数据进行比较。
4.一种异步先进先出寄存器,其特征在于,包括:
分配单元,用于为数据组分配目的地地址;
输出单元,用于基于分配单元分配的目的地地址,输出该数据组中的数据;
记录单元,用于记录数据组中最后一个数据的地址;
判断单元,用于在输出单元每输出该数据组中的一个数据时,将记录单元记录的该数据组中最后一个数据的地址与获取的输出的该数据组中的数据的地址进行比较,判断该输出的数据是否为该数据组中的最后一个数据;以及
第一触发单元,用于在判断单元的判断结果为是时,触发所述分配单元为该数据组的下一数据组分配目的地地址;
第二触发单元,用于在判断单元的判断结果为否时,触发输出单元继续基于所述分配的目的地地址,输出该数据组中的数据。
5.如权利要求4所述的异步先进先出寄存器,其特征在于,所述判断单元具体包括:
获取子单元,用于获取输出单元输出的该数据组中的数据的地址;
比较子单元,用于将获取子单元获取的地址与记录单元记录的该数据组中最后一个数据的地址进行比较;以及
判断子单元,用于在比较子单元的比较结果相等时,判断出输出的数据为该数据组中的最后一个数据;否则判断出输出的数据不是该数据组中的最后一个数据。
6.如权利要求5所述的异步先进先出寄存器,其特征在于,所述比较子单元具体包括:
第一转换子模块,用于将获取子单元获取的地址,转换为对应的格雷码数据;
第二转换子模块,用于将记录单元记录的地址,转换为对应的格雷码数据;
比较子模块,用于将第一转换子模块与第二转换子模块转换得到的两个格雷码数据进行比较。
CN2008101047315A 2008-04-23 2008-04-23 采用异步fifo寄存器输出数据的方法及寄存器 Expired - Fee Related CN101267459B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101047315A CN101267459B (zh) 2008-04-23 2008-04-23 采用异步fifo寄存器输出数据的方法及寄存器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101047315A CN101267459B (zh) 2008-04-23 2008-04-23 采用异步fifo寄存器输出数据的方法及寄存器

Publications (2)

Publication Number Publication Date
CN101267459A CN101267459A (zh) 2008-09-17
CN101267459B true CN101267459B (zh) 2011-11-23

Family

ID=39989592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101047315A Expired - Fee Related CN101267459B (zh) 2008-04-23 2008-04-23 采用异步fifo寄存器输出数据的方法及寄存器

Country Status (1)

Country Link
CN (1) CN101267459B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677732B (zh) * 2012-09-03 2016-11-02 上海贝尔股份有限公司 Fifo装置及其方法
CN103902471B (zh) * 2012-12-28 2017-08-25 华为技术有限公司 数据缓存处理方法和装置
WO2017201727A1 (zh) * 2016-05-27 2017-11-30 华为技术有限公司 一种异步fifo电路及时延确定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407458A (zh) * 2001-08-30 2003-04-02 华为技术有限公司 一种异步先进先出(fifo)数据缓存的方法
CN1567880A (zh) * 2003-07-02 2005-01-19 华为技术有限公司 一种先入先出存储器及快速产生存储标志的方法
CN101055704A (zh) * 2007-04-28 2007-10-17 深圳安凯微电子技术有限公司 一种lcd数据写入控制方法及先入先出存储器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1407458A (zh) * 2001-08-30 2003-04-02 华为技术有限公司 一种异步先进先出(fifo)数据缓存的方法
CN1567880A (zh) * 2003-07-02 2005-01-19 华为技术有限公司 一种先入先出存储器及快速产生存储标志的方法
CN101055704A (zh) * 2007-04-28 2007-10-17 深圳安凯微电子技术有限公司 一种lcd数据写入控制方法及先入先出存储器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨青山等.基于多时钟域的异步FIFO设计.《中国集成电路》.2007,第2007卷(第9期),36-39. *

Also Published As

Publication number Publication date
CN101267459A (zh) 2008-09-17

Similar Documents

Publication Publication Date Title
CN101261575B (zh) 一种实现不等宽数据传输的异步先进先出存储器及方法
US5602780A (en) Serial to parallel and parallel to serial architecture for a RAM based FIFO memory
US8661180B2 (en) Memory controlling device and memory controlling method
CN101310339A (zh) 具有多个内部数据总线和存储器库交错的存储器装置和方法
US7197590B2 (en) Method and apparatus for connecting LPC bus and serial flash memory
CN101267459B (zh) 采用异步fifo寄存器输出数据的方法及寄存器
CN101825997A (zh) 一种异步先入先出存储器
CN113900975B (zh) 一种同步fifo
CN1996276A (zh) 多处理器系统中的数据传输
CN100557584C (zh) 用于对网络和存储器进行耦合的存储器控制器和方法
CN111274171B (zh) 一种数据传输装置及方法
US20090172215A1 (en) Even and odd frame combination data path architecture
CN101493759B (zh) 一种任意容量异步先入先出存储器的地址控制方法
CN100463443C (zh) 一种异步fifo实现系统及实现方法
CN112231261A (zh) 一种用于axi总线的id号压缩装置
US7136309B2 (en) FIFO with multiple data inputs and method thereof
CN116303169A (zh) Dma控制装置和方法及芯片
CN1274224A (zh) 流水线式共享存储器读写方法
CN115834602A (zh) 一种异步数据流通信交互系统
US7817651B2 (en) Method and apparatus for controlling storage of data
US20050152205A1 (en) Semiconductor memory
CN102306142B (zh) 一种fft倒序操作存储器数据调度方法及电路
CN111399802A (zh) 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备
US7984212B2 (en) System and method for utilizing first-in-first-out (FIFO) resources for handling differences in data rates between peripherals via a merge module that merges FIFO channels
US6442657B1 (en) Flag generation scheme for FIFOs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WUXI VIMICRO ELECTRONIC CO., LTD.

Free format text: FORMER OWNER: BEIJING ZHONGXING MICROELECTRONICS CO., LTD.

Effective date: 20110127

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100083 15/F, SHINING BUILDING, NO.35, XUEYUAN ROAD, HAIDIAN DISTRICT, BEIJING TO: 214028 NATIONAL INTEGRATED CIRCUIT DESIGN PARK (CHUANGYUAN BUILDING), NO.21-1, CHANGJIANG ROAD, NEW DISTRICT, WUXI CITY, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110127

Address after: 214028 national integrated circuit design Park, Changjiang Road, New District, Jiangsu,, Wuxi

Applicant after: Wuxi Vimicro Co., Ltd.

Address before: 100083, Haidian District, Xueyuan Road, Beijing No. 35, Nanjing Ning building, 15 Floor

Applicant before: Beijing Vimicro Corporation

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111123

Termination date: 20170423

CF01 Termination of patent right due to non-payment of annual fee