发明内容
本发明的目的是提供一种FIFO寄存器,其中由相对简单的装置控制寄存器链路。
根据本发明,提供一种FIFO寄存器,包括寄存器单元的序列,寄存器单元包括数据部分和状态部分,其中在输入端提供的数据通过寄存器单元中的数据部分移位到输出端,每个单元的状态部分指示那个单元中的数据部分是否包括有效数据,其中所述单元的状态部分包括:-时钟输入,用于接收一个输入时钟信号,-状态输入,用于接收一个输入状态信号,-状态输出,用于提供一个输出状态信号,-时钟输出,用于提供一个输出时钟信号,-第一充电控制元件,连接到状态输入,-第二充电控制元件,连接到状态输出,-控制部件,包括多个连接到状态输入和状态输出的逻辑门,以及连接到时钟输入、时钟输出和所述多个逻辑门的锁存器,其中所述多个逻辑门组合输入状态信号和输出状态信号,用于根据这些信号产生一个中间信号,所述锁存器将中间信号与输入时钟信号相组合,并产生输出时钟信号,该输出时钟信号控制充电控制元件和数据部分,其中状态部分的状态输出和其后面的状态部分的状态输入共享一个节点,用于动态存储。
在根据本发明的FIFO寄存器中,该链路中的寄存器具有状态部分,在一个电容节点处动态地存储每个寄存器的状态,与其后面的状态部分共享该电容节点。提供一个控制信号,控制相应的数据寄存器和充电控制元件,充电控制元件用于对与其前面的状态部分共享的电容节点进行放电,和用于对与其后面的状态部分共享的电容节点进行充电。该控制信号由一个中央时钟信号同步的控制部件产生,并且控制部件连接到与前面的状态部分共享的电容节点和与后面的状态部分共享的电容节点。这样考虑到了非常简单的结构,其中该链路中的寄存器的状态部分仅通过共享的电容节点相互连接,并连接到一个公共的时钟发生器。这样简化了该链路中的多个寄存器的控制,考虑到了较小数量的门电路和更快的控制。
第一组合部件的控制部件首先产生一个状态信号,该信号指示是否在输入端出现了有效信号并且相应的数据寄存器的状态为空闲。可是这个信号随后在第二组合部件中不得不与中央时钟信号同步,从而获得用于控制数据寄存器和充电控制元件的输出时钟信号。
在作为本发明优选实施例的FIFO寄存器中,该单元的数据部分包括数据输入、数据输出、用于从状态部分的时钟输出接收输出时钟信号的时钟输入,该数据输出通过第一链路连接到第一电压线和通过第二链路连接到第二电压线,第一链路包括由数据输入控制的第一半导体元件和由时钟输入控制的第二半导体元件的主电流通路,第二链路包括由数据输入控制的第三半导体元件和由时钟输入控制的第四半导体元件的主电流通路。该实施例是有利的,其中多个单元的数据部分仅要求少量的门电路。
在作为本发明优选实施例的FIFO寄存器中,该单元的数据部分与后面单元的数据部分共享一个电容节点,用于数据的存储。该实施例能够电容性地存储数据,使得能够进一步减少门电路。
用于数字信号处理器中的根据本发明的FIFO寄存器是有益的,其中FIFO用于在产生的数据的功能部件和使用的数据的功能部件之间缓冲数据。
具体实施方式
图1示出了一个FIFO寄存器,包括m个寄存器单元10.1,…,10.m的序列。寄存器单元10.1,…,10.m包括数据部分40和状态部分30。在输入20提供的数据Din通过寄存器单元10.1,…,10.m中的数据部分40,移位到输出50。每个单元10.1,…,10.m的状态部分30指示那个单元中的数据部分40是否包括有效数据。
在图2中更为详细地示出了状态部分30,包括:
-时钟输入31,用于接收一个输入时钟信号Cl,
-状态输入32,用于接收一个输入状态信号VDi-1,
-状态输出33,用于提供一个输出状态信号VDi,
-时钟输出34,用于提供一个输出时钟信号Cli,
-第一充电控制元件35,连接到状态输入32,
-第二充电控制元件36,连接到状态输出33,
-控制部件37。
控制部件37连接到状态输出32、状态输出33和时钟输入31。它产生输出时钟信号Cli,该输出时钟信号控制充电控制元件35、36和数据部分40。
状态部分30的状态输出33和其后面的状态部分30’的状态输入32’共享电容节点38,用于动态存储。节点38的电容例如由在状态输出33和状态输入32’之间连接的寄生电容来实现,并且电容例如可以在十分之一pF到几十pF的数量级。在这个实施例中,状态部分30包括反相器39,用于产生反相的时钟信号CLi。可选择的,反相信号CLi能够在数据部分中产生。
图3示出了图2的状态部分的第一实施例。其中对应于图2中的那些部分具有相同的附图标记。在图3的实施例中,充电控制元件35和36以半导体开关元件的形式分别由一个p沟道FET和一个n沟道FET实现。在导通状态,开关35将节点32连接到负电压源,并且开关36将节点33连接到正电压源。
该n沟道FET由反相元件36a连接到控制部件37。可选择的,电流源能够用作充电控制元件。在该实施例中示出,控制部件37包括第一组合部件37a、37b,用于组合输入状态信号VDi-1和输出状态信号VDi,并且用于根据这些信号提供一个中间信号Is给第二组合部件37c。第二组合部件37c将中间信号Is与输入时钟信号Cl相结合,并产生输出时钟信号Cli。第一组合部件包括反相元件37a,用于反相输出状态信号VDi,并且,当且仅当第i个单元10.i的状态为空闲时产生一个具有值“1”的信号。第一组合部件进一步包括与非门37b,用于产生中间信号Is,当且仅当第i个单元10.i为空闲并且在其输入端提供有效数据时,中间信号Is具有值“0”。
图4更详细地示出了第二组合部件37c。它包括用作同步部件的锁存器37d、反相器37e和或非门37f。如果在输入端37d2提供的时钟信号Cl为低电平,那么锁存器37d传输在输入端37d1提供的中间信号Is。当且仅当在锁存器37d的输出端37d3的值为“0”和时钟信号具有值“0”时,或非门37f输出值“1”。
优选地如图5所示实现锁存器37d,其中输出值动态存储为在输出37d3和或非门37f的输入之间的连接的寄生电容中的电荷。动态存储器允许少量的部件。然而,还能够静态地存储该锁存器的输出值。锁存器37d包括p沟道MOSFET 37d5和n沟道MOSFET 37d6,以及用于反相时钟信号Cl的反相器37d4。代替对每个控制部件37使用单独的反相器37d4和37e,替代地可以从外部提供一个反相的时钟信号/Cl。这依赖于在减少部件的数量和减少连接的数量之间的选择。
图6示出了对于图3和图4的实施例的替换实施例。其中对应于图3和图4中的那些部分具有比其高100的附图标记。其中第一组合部件包括与门137b和反相器137a。第二组合部件包括锁存器137d和与门137f。
对所属领域技术人员来说,可能进行许多进一步的改变。例如一个改变中,有效数据不用“1”表示出现,而用“0”,通过交换充电控制元件35和36,和通过包括在VDi-1输入和门137b之间的反相门137a代替在VDi输入和门137b之间的反相门,来实现这样的改变。
图7示出了在单元的数据部分40中的存储元件的实现方式。虽然数据部分40能够包括单独的存储元件,但是最好包括多个存储元件。优选的,该数量为2的幂,例如8、16和32。
它包括数据输入41、数据输出42、时钟输入电容性地,用于从状态部分30的时钟输出34接收输出时钟信号Cli。数据输出42通过第一链路连接到第一电压线+,通过第二链路连接到第二电压线-。第一链路包括由数据输入41控制的第一半导体元件44和由时钟输入电容性地控制的第二半导体元件45的主电流通路。第二链路包括由数据输入41控制的第三半导体元件46和由时钟输入电容性地控制的第四半导体元件47的主电流通路。反相器用于反相时钟信号Cl。取而代之,反相时钟信号可以在中央产生。
如图7所示的实施例中,单元的数据部分40与后面单元的数据部分共享电容节点42,用于存储数据。该节点的电容可以由在两个接连的数据部分40之间的连接的电容值来体现,然而可以增加明确的电容部件。考虑到所要求的门电路的数量,这样实现的动态存储是有利的。然而,作为选择,能够静态地实现存储,例如通过一对交叉连接的或门实现。
图8示出了一个数字信号处理器,包括第一功能部件60、第二功能部件80和根据本发明如上所述的FIFO寄存器10,FIFO寄存器10用于在第一和第二功能部件之间传输数据。
现在参照图9来说明根据本发明的FIFO寄存器的操作。
假定在t0时刻输出信号VDi为“0”,意味着没有有效数据存储在该状态部分所属的单元中。进一步,在t0时刻VDi-1=“0”,表明没有有效信号由前面的寄存器提供或在该FIFO寄存器的输入端。此时假设中间信号Is的值为“1”,意味着不满足条件:有效数据出现在输入端并且该单元为空。
如图9所示,在t0和t1之间的t0’时刻,VDi-1的值从“0”变为“1”。几乎同时,中间信号的值从“1”变为“0”。第二组合部件的输出信号A保持“1”,因为它仅当时钟信号为“0”时,传输输入值。从而,信号Cli保持“0”,使得充电控制元件35和36保持停用。于是状态部分不改变VDi-1和VDi的状态。
假定在t1时刻时钟信号Cl的值为“0”,导致锁存器37将中间信号Is的值传输到它的输出,使得信号A也变为“0”。输出时钟信号Cli仍保持“0”,因为现在或非门37f的另一输入端的反相时钟信号具有值“1”。
在t2时刻,反相时钟信号变为“0”,导致或非门37f的输出信号Cli“0”变为“1”。这使得数据部分的MOS晶体管45和47导通。如果输入数据40是逻辑“1”,那么在第一链路中连接到数据输入41的半导体元件44截止,同时在第二链路中连接到数据输入41的半导体元件47变为导通。如果输入数据是“0”,那么半导体元件44导通,半导体元件47非导通。这样具有以下效果:数据Di-1以反相的形式复制到数据输出42。只要该FIFO包括偶数个单元,数据就在输出端以其原始形式出现。输出时钟信号Cli的值“1”进一步使充电控制元件35对输入节点32进行放电,使得在输入端的该信号有效数据VDi-1从“1”变为“0”。它进一步使充电控制元件36对电容节点33进行充电,表明在该单元的数据部分获得了有效数据。中间信号于是从“0”变为“1”。
在t3时刻,时钟信号Cl从“1”变为“0”。这样具有以下效果:中间信号的当前值“1”传输到锁存器37d的输出,信号A也从“0”变为“1”。因此,输出时钟信号Cli从“1”变为“0”,使得后面的单元现在能够安全地将一个新的数据Di-1提供给数据部分40的输入节点41,和将一个新的有效数据信号VDi-1提供给状态部分的输入32,而不使它们分别重写输出42和43。
图10示出了一个输入级,它连接到第一单元10.1的状态部分30。在时钟CL为低电平期间,该输入级用于有选择地将来自于一个外部数据源的写信号WR传输给状态输入32。这样防止了在第一开关35处于导通模式中时给状态输入32提供一个有效的高电平信号。
在图10所示的实施例中,输入部分包括第一组合元件51,用于将写信号WR与输入状态信号VD0组合。该组合元件51的逻辑高电平输出信号表明FIFO 10的第一位置为空,并且表明写信号WR有效。输入状态信号VD0还用到外部数据源,作为FIFO 10是否具有可用空间来写入新数据的指示。在该实施例中,所示的组合元件51的输出连接到锁存器52的数据输入D,锁存器52进一步包括连接到时钟CL的一个控制输入。通过第一可控开关元件53的主电流通路和第二可控开关元件54的主电流通路,将状态输入连接到第一电压线+。锁存器52的反相输出Q控制第一可控开关元件53。时钟信号CL控制第二可控开关元件54。
借助于图11描述图10的电路的操作。
如图所示,信号FL(=VD0)在时间间隔t0-t1中从“1”变为“0”。这对于一个外部数据源表明出现了一个位置。现在如果在时间间隔t1-t2中外部数据源设置了写信号WR。因此,组合元件51在锁存器的D输入端产生一个逻辑高电平输出信号。在时钟信号CL为“1”的时间间隔期间,锁存器52是通过的(transparent),使得锁存器的反相输出Q从时刻t2开始为逻辑低电平值。这样具有以下结果:第一可控开关元件53在时刻t2变为导通的。然而另一个可控开关元件54保持在非导通阶段,直到时钟信号在t3时刻变为逻辑低电平。随后对第一单元10.1的状态部分30的状态输入32进行充电。这不干扰开关35的操作,因为仅在时钟信号CL具有逻辑高电平值期间能够导通。
图12示出了包括具有一个控制部分的输出部分80,控制部分具有一个输入,用于接收最后的寄存器单元10.m的有效数据信号VDm。该输出部分具有一个控制部分,该控制部分包括用于产生时钟信号CLo的锁存器81和与门82,以及放电元件83。它进一步包括数据部分84,数据部分84包括由时钟信号CLo控制的一个或多个数据寄存器85。
图13示意性地示出了输出级的操作。在从t0到t1期间,因为时钟信号的高电平值保持放电元件83导通,所以信号VDm维持在值“0”。在从t1到t2期间,放电元件83不再导通,使得最后的寄存器单元10.m的第二充电控制元件36m能够对节点33m进行充电。对于当前的实施例,假定在时间间隔t1-t2中信号VDm的值为“1”。从t1到t2,对于信号VDm,锁存器81的输出信号是通过的,并且也具有值“1”。时钟信号CLo保持“0”。在下一个时间间隔t2-t3中,锁存器处于非导通状态,使得它的输出信号Q保持“1”。现在在t2时刻,时钟信号CL从“0”到“1”的改变导致了输出时钟信号CLo的改变。经由这种变换,动态存储在最后的单元10.m的数据部分中的数据就存储在数据部分84中。
应当注意,本发明的保护范围不限于这里所述的实施例。权利要求书中的附图标记也不限制本发明的保护范围。用语“包括”不排除在一个权利要求中的那些所提及部件之外的其它部件。某个元件前的用语“一个(n个)”不排除多个那种部件。形成本发明各部分的装置可以以专用硬件的形式实现或以编程的通用处理器形式实现。本发明在于每个新的特征或特征组合。