锁存器对于本领域来说是众所周知的,并且经常被用于缓冲或临时存储数据。标准静态存储器以两种状态操作。在其第一状态中,将锁存器的输入端连接到其对应的输出端以及将锁存器的互补输入端连接到其相应的互补输出端。输入数据信号和其互补信号自由传播到它们各自的输出端。当锁存器在其第二状态中时,断开锁存器的各输入端与其对应的输出端,并且锁存器的对应的最后输出状态被保持在它们各自的输出端。
然而,传统锁存器使用相当多的元件。从而,所需的半导体芯片面积以及制造成本很高。此外,它们消耗相当多的功率。
在图1a和图2中示出了常规CMOS静态锁存器的例子。
图1a的静态锁存器10包括四个反相器12、14、16、18,两个三态反相器20、22以及三个输入/输出端24、26、28。
第一反相器12具有充当输入控制端26的输入端,其载送用于锁存器10的输入控制信号G,并且第一反相器10具有连接到第二反相器14的输入端的输出端30。第一三态反相器20的输入端充当载送锁存器10的输入数据信号D的数据输入端24,并且其输出端32连接到第三和第四反相器16、18的输入端以及第二三态反相器22的输出端。第三反相器16的输出端充当载送锁存器10的输出数据信号Q的数据输出端28。第四反相器18的输出端34连接到第二三态反相器22输入端。第一反相器12的输出端30还分别连接到两个三态反相器20、22的第一控制端。第二反相器14的输出端36分别连接到两个三态反相器20、22的第二控制端。
当使能锁存器10时,也就是提供在控制端26上的使能信号G为高(G=1)时,锁存器10实际上是透明的,并且提供在数据输入端24上的输入数据D被传送到锁存器10的输出端28。在使能锁存器10的同时,输入数据D的任何改变将反映在输出端28上。当禁用锁存器10时,也就是在控制端26上的使能信号G=0时,锁存器10保持输出端28上的输出数据Q的当前值,而不管输入数据D的改变,也就是说锁存器10不再是透明的,并且数据输入端24实际上与数据输出端28断开。
当被使能时,也就是G为高时,锁存器10适于将数据输入D传送到输出端28;当被禁用时,也就是G为低时,锁存器10适于保持输出数据Q的当前值。第一和第二三态反相器20、22由使能信号G及其互补信号GN触发,所述使能信号G及其互补信号GN分别由第二和第一反相器12、14产生,从而当锁存器10被使能时,三态反相器20、22驱动第三和第四反相器16、18,以便将输入数据D传播到输出端28。当被禁用时,不管输入数据D的值,输出数据Q的值保持在其当前值。
当第一三态反相器20被禁用(即G=0)时,也就是锁存器10被禁用时,第二三态反相器22和第四反相器18实际上形成用于保持输出端当前值的保持电路。当锁存器10被使能(即G=1)时,第一三态反相器20被使能并对输入数据D进行反相,以及输出其互补数据DN。然后由第三反相器16对反相的输入数据DN进行反向,以在输出端28上给出输出数据Q。
当第一三态反相器20被禁用(即G=0)时,第一三态反相器22的输出端32被禁用并且处于高阻抗,也就是在输出端32上出现开路。第一三态反相器20实际上断开,并且第四反相器18为第二三态反相器22的输入端34提供输入信号的先前值D(-1)。当锁存器10被禁用时,也就是GN=1时,第二三态反相器22被使能,并且反相的输入数据的先前值DN(-1)被从第二三态反相器22输出。该反相的输入数据的先前值DN(-1)然后被提供在第三反相器16的输入端32上,在那里其被反相,并且在锁存器10的输出端28上产生数据输入的先前值D(-1)。
只要锁存器10被禁用(也就是G=0)并且因此第一三态反相器20被禁用而第二三态反相器22被使能,输入数据D的当前值就将被提供在第二三态反相器22的输入端34上,并且不管输入端24上的信号D的改变,该当前值将被保持在输出端28上。
所有的四个反相器可以是标准CMOS反相器。图1b说明标准CMOS反相器的实例,其例如是图1a中所说明的反相器,该标准CMOS反相器包括PMOS晶体管401和NMOS晶体管421。PMOS和NMOS晶体管40、42各自的栅极和漏极连接在一起,以形成反相器的对应的输入和输出端。PMOS晶体管的源极连接到正电源轨VDD,并且NMOS晶体管的源极连接到负电源轨GND。
图1c说明标准CMOS三态反相器的实例,其例如是图1a中所说明的三态反相器,该标准CMOS三态反相器包括第一和第二PMOS晶体管402、403以及第一和第二NMOS晶体管422、423。第二PMOS和第二NMOS晶体管403、423各自的栅极连接在一起,以形成三态反相器的输入端。第二PMOS晶体管403的源极连接到正电源VDD,以及第二NMOS晶体管的源极连接到负电源GND。
第一PMOS和第一NMOS晶体管402、422各自的漏极连接在一起,以形成三态反相器的输出端。第一PMOS晶体管402的源极连接到第二PMOS晶体管403的漏极,以及第一NMOS晶体管422的源极连接到第二NMOS晶体管423的漏极。第一PMOS晶体管的栅极充当用于三态反相器的第一控制端,以及第一NMOS晶体管的栅极充当用于三态反相器的第二控制端。
参考图1a,可以明显地看出这种锁存器10同时需要用于三态反相器20、22的操作的使能控制信号G及其互补信号GN。从图1b和1c能够容易推断出,图1a的锁存器10包括总共十六个NMOS和PMOS晶体管,并且从而具有大元件尺寸和高功率消耗的缺点:特别是PMOS晶体管必须大约是NMOS晶体管的物理尺寸的三倍,以便匹配电流处理能力。
图2说明可选择的传统静态锁存器。这种锁存器50包括四个反相器52、54、56、58,好包括传输电路60和三个输入/输出端62、64、66。
在图2中的四个反相器52-58可以是图1b中所说明的标准CMOS反相器类型。反相器52和54分别对应于图1a的反相器12和14。
传输电路60包括NMOS晶体管68和PMOS晶体管70,其各自的漏极端子和源极端子连接在一起。公共漏极端子形成锁存器50的载送输入数据D的数据输入端62。公共源极端子69连接到反相器56和58各自的输入和输出端。反相器56和58各自的输出和输入端连接在一起并且形成锁存器50的载送输出数据信号Q的数据输出端62。从而,反相器56和58以背靠背的方式相连接。PMOS晶体管70的栅极端子连接到第一反相器52的输出端,并且接收反相的使能信号GN。NMOS晶体管68的栅极端子连接到第二反相器54的输出端,并且接收使能信号G。
当被使能时,锁存器50的传输电路60适于将输入数据D传输到输出端66。当被禁用时,输入数据不被传输。反相器58的输入端连接到锁存器60的输出端66,其输出端连接到传输电路60的公共源极端子69,该反相器58提供反馈回路。该反馈回路确保当传输电路60被禁用时,不管输入数据D的改变,输出数据Q的值被保持在当前值。
然而,与图1a的锁存器10的情况一样,锁存器50同时需要使能信号G及其互补信号GN。此外,当其是透明的时(也就是被使能时),传输电路60具有从传输电路60的输入端62到传输电路60的公共源极输出端69的直接路径。当输入数据D改变状态时,该直接路径在输入数据D上产生过多的噪声。此外,传输电路60包括PMOS晶体管和NMOS晶体管。因为PMOS晶体管大约是其相当的NMOS晶体管大小的三倍,从而包含PMOS晶体管不利地增加所需要的单元面积。尽管图2的锁存器50比图1a的锁存器10少需要六个晶体管,但是图2的锁存器50仍然需要相当大的单元面积。
关于锁存器、触发器和类似装置的其它信息可以在William J.Dally、John W.Poulton的“锁存器和触发器(Latches and Flip-Flops)”(1999年的“数字系统工程学(Digital systems engineering)”的12章)以及美国专利No.5789956中找到。
从而,如图1和2所说明的那样,在典型的CMOS静态锁存器中,使用总共十到十六个MOSFET。需要用于每个锁存器10、50的大量MOSFET装置导致异常大的单元面积,这是一个缺点。此外,从图1和图2中所说明的锁存器10、50可以清楚的认识到,这些锁存器10、50的操作同时需要使能信号G及其互补信号GN,这是另一个缺点。因此,为了产生这些信号G、GN,需要四个附加的MOSFET,也就是需要两个附加的反相器12、14。
下面将参考图3描述本发明的一个实施例。锁存器80包括两个反相器82、84,还包括三个NMOS晶体管86、88、90以及五个输入/输出端92、94、96、98、100。
图3中的两个反相器82、84可以是图1b所说明类型的标准CMOS反相器。反相器82和84对应于图2的反相器58和56。
第一和第二晶体管86、88具有连接在一起的各自的源极端子93。这些公共源极端子93还连接到第三晶体管90的漏极端子。第一晶体管86的漏极端子形成载送锁存器的互补数据输出信号QN的数据输出端98。第二晶体管88的漏极端子形成载送锁存器的数据输出信号Q的数据输出端100。第三晶体管90的源极端子连接到负电源轨GND。三个NMOS晶体管86、88、90被共同分组在一起,以形成到锁存器80的输入电路99。两个反相器82、84以背对背方式连接在锁存器的两个输出端98、100之间。第一和第二晶体管86、88的各自的栅极端子分别对应于两个数据输入端92和94。两个数据输入端92和94分别载送互补的输入数据信号D和DN。第三晶体管90的栅极端子对应于载送输入控制信号G的输入控制端96。
图4中示出图3锁存器80的布局。
图3和4的锁存器80的操作相当简单。当控制端96的使能信号为高时,锁存器是透明的,也就是说,在对应的输入端92、94上的对应的互补输入信号D、DN能够自由传播到载送互补输出信号QN、Q的对应的输出端100、98。如果控制端96上的使能信号G为低,则互补输入信号D和DN与输出端98、100断开。在这种状态(即保持状态)下,锁存器80的互补输出信号Q和QN保持其最后的值。在该保持状态下,不允许互补输入D和DN同时为高,否则锁存器80的状态被破坏。
在下面的表I中示出用于图3的锁存器80的真值表。
表I.锁存器的功能性行为
D |
DN |
G |
Q |
QN |
1 |
1 |
- |
未定义 |
- |
- |
0 |
Q(-1) |
QN(-1) |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
数据输入信号和输出信号在上面以真值和互补形式呈现。当然,可以了解到,当锁存器80处于保持状态时,也就是使能信号G=0时,在实践中将避免D和DN同时为高电平。否则锁存器80的状态将丢失。
通过强迫任一输出端98、100为逻辑“0”来改变锁存器状态。这种原理通常被用于SRAM存储器单元。
根据本发明的实施例,可以以至少两种方式确保当锁存器80为保持状态时(也就是当锁存器80被禁用时)互补输入信号D、DN从不同时为高,其中互补输入信号D和DN连接到另一个在前锁存器单元(下面将参考图5更详细地描述)的互补输出端,或者依靠下面参考图7更详细描述的输入级的单个轨信号D’得到两个互补输入信号D和DN。
下面表II中给出了图1a所示的传统锁存器10与本发明的七晶体管锁存器80的比较。
表II图1a的传统锁存器与图3的所提议的锁存器的比较
|
本发明锁存器 |
具有三态反相器的锁存器 | |
原理 |
静态 |
标准单元锁存器 | |
面积 |
4.7 |
18.2 |
μm2 |
延迟 |
125 |
165 |
ps |
保持时间 |
静态 |
静态 |
μs |
D(DN)输入电容值 |
2×0.64 |
2.9 |
fF |
G输入电容值 |
0.68 |
2.5 |
fF |
能量(仅是时钟) |
0.99 |
17 |
nW/MHz |
能量(100%数据+时钟) |
22 |
61 |
nW/MHz |
正如从上述表II中清楚得到的那样,根据本发明优选实施例的锁存器80的尺寸比图1a的传统三态反相器锁存器10有较大的改进。其尺寸大约减小75%。关于在表II列出的比较中实施的延迟测量结果,两个对应的锁存器80被串联连接,如图5中所示。表II中的结果说明了在将延迟从165ps减小到125ps方面得到显著的改进。在输入数据端92、94和输入控制端96上的电容值也比传统三态反相器锁存器10的这些电容值小很多。另外的显著改进是减小了锁存器80的功率消耗。表II的结果示出所减小的不仅是时钟能量消耗,并且也减小了数据和时钟能量消耗。
根据本发明实施例的锁存器80特别用于FIFO模块中。当要对中间数据进行进一步的数据处理时,这种FIFO被用在数字芯片上系统中,以用于对中间数据进行存储。如果时钟信号是利用自定时电路所产生的,例如在MontekSingh和Steven M.Nowick的MOUSETRAP FIFO(“MOUSETRAP:Ultra-High-Speed Transition-Signaling Asynchronous Pipelines”,IEEE ICCD 2001年概念)中所公开的那样,能够实现包括根据本发明实施例的锁存器80的FIFO而不存在全局时钟信号。MOUSETRAP FIFO是异步的,并且从而读取和写入不需要同步地发生。因此,MOUSETRAP FIFO是在时钟域交叉(clock domain crossing)中的理想存储缓冲器。合并了本发明优选实施例的锁存器80的MOUSETRAPFIFO是状态元件的非常有效的实施方式。其中得到改进的效率,这是由于本发明实施例的锁存器80的较小单元尺寸以及事实上只需要使能信号G的一个极性以用于其透明操作模式和保持操作模式。如图1a和2所示,典型的锁存器10、50同时需要使能信号G及其互补信号GN。
此外,根据本发明实施例的锁存器80所具有的一个优点在于,其可以用于低电压环境(也就是3伏或更低),这是由于为了接通其各自的晶体管,到锁存器80的输入信号D、DN、G仅需要克服一个晶体管阈值电压Vt。
图5示出由图3中所说明的该种类型的第一和第二锁存器801、802所构成的锁存器链链,其中第一和第二锁存器801、802适于连接以形成简单的移位寄存器110。尽管为了解释的目的在这里示出两个锁存器801、802,但是可以意识到,任何数量的‘N’个锁存器80能够连接为任意长度的链。从而尤其能够实现取决于对锁存器80N的控制的移位寄存器和FIFO。
每个锁存器801、802包括互补数据输入端、互补数据输出端和单一输入控制端。
第一锁存器801在其对应的互补数据输入端112、114上接收对应的互补输入数据信号D1、DN1,并在其对应的互补数据输出端116、118上提供对应的互补输出数据信号Q1、QN1。第二锁存器802在其对应的互补数据输入端116、118上接收对应的互补输入数据信号D2、DN2,并在其对应的互补数据输出端120、122上提供对应的互补输出数据信号Q2、QN2。第一锁存器801的互补数据输出端116、118直接连接到(并且从而形成)第二锁存器802的互补数据输入端116、118。因此,第一锁存器801的互补输出数据信号Q1、QN1用作第二锁存器802的互补输入数据信号D2、DN2。
如图6所示的波形,第一锁存器801的互补输入数据信号D1、DN1经由寄存器向着第二锁存器802的互补数据输出端120、122方向被移位。
在图6中,示出对应于移位寄存器110应用的多种波形。当该锁存器链中的偶数锁存器的使能信号G为奇数锁存器的互补时,实现了移位寄存器110行为。从而,在这种实现方式中,在该链中的一对连续的锁存器801、802形成一个主/从触发器。
需要注意,锁存器80的数据输出信号Q和QN从不同时为高。这是由于在反相器延迟之后,在一个数据输入端转换到逻辑‘1’之前,需要在另一个数据输入端上转换为逻辑‘0’。
当锁存器80为保持状态时(也就是G=0),当从D=1、DN=0切换到D=0、DN=1时,输入数据D及其互补DN必需不同时为高,因为这将破坏锁存器的内容。如图5中所说明的那样,如果本发明优选实施例的锁存器80串联连接,则永不会发生D=1并且DN=1的情况。然而,必需确保在锁存器链中的第一锁存器801不会发生D=1并且DN=1的情况。
出于这个原因,可以将图7中给出的电路和本发明优选实施例的锁存器80一起使用。图7的电路是用于将单轨数据输入信号D’转换成两个双轨编码信号的简单转换电路130。图8中给出图7电路的波迹。
转换电路130包括反相器132、PMOS晶体管134、NMOS晶体管136和三个输入/输出端138、140、142。
图7中的反相器132可以是图1b所说明类型的标准CMOS反相器。PMOS晶体管134的源极端子连接到载送输入数据信号D’的转换电路输入数据端138,并且其漏极端子连接到NMOS晶体管136的漏极端子。PMOS和NMOS晶体管134、136的公共漏极端子形成载送输出数据信号Q的转换电路输出数据端142。PMOS晶体管134的栅极和NMOS晶体管136的源极连接到负电源轨GND。反相器132的输入端连接到转换电路的输入数据端138。反相器132的输出端连接到NMOS晶体管136的栅极端子,并且形成载送互补输出数据信号QN的转换电路输出数据端140。
转换电路130适于将输入数据端138上的单一数据输入信号D’转换成对应的输出数据端142、140上的双数据输出信号Q和QN,其中一个数据输出信号QN为另一个数据输出信号Q的反相,并且是图8所说明的数据输入信号D’的反相。
图9说明本发明锁存器80的一个可选择的实施例,其中使用上拉电路来代替图3的下拉网络,以改变锁存器80的该实施例80’的状态。
图9的锁存器80’包括两个反相器150、152,并且还包括五个输入/输出端154、156、158、160、162以及三个PMOS晶体管164、166、168。
图9中的反相器150、152可以是图1b所说明的类型的标准CMOS反相器。反相器150和152对应于图3的反相器82和84。
参考图9,第一和第二PMOS晶体管164、166具有连接在一起的其各自的源极端子163。这些公共源极端子163也连接到PMOS晶体管168的漏极端子。第一晶体管164的漏极端子形成载送锁存器的互补数据输出信号QN的输出端160。第二PMOS晶体管166的漏极端子形成载送锁存器的数据输出信号Q的输出端162。第三PMOS晶体管168的源极端子连接到正电源轨VDD。两个反相器150、152以背靠背的形式连接在锁存器的两个输出端160、162之间。第一和第二PMOS晶体管164、166各自的栅极端子分别对应于两个数据输入端154和156。两个数据输入端154和156分别载送互补输入数据信号D和DN。第三PMOS晶体管168的栅极端子对应于载送控制信号GN的输入控制端158,该控制信号GN为图3中的使能信号G的互补信号。
图9的锁存器80’的操作与图3所示的锁存器80的操作相似。然而,在锁存器80’的这个特定实施例中,当GN=0时,D=0和DN=0必须不在同时发生,否则锁存器80’的内容将被破坏并且锁存器80’将变得透明(也就是被使能)。
图10中示出本发明的另一个可选择的实施例。
在这个锁存器80”的实施例中,图3的锁存器80已经被适配成包括图3所示类型的两个输入电路991、992。参考图10,输入电路991、992分别具有两组输入和控制信号,即D1、DN1、G1和D2、DN2、G2。为了简单,仅对两个输入电路991、992进行说明,但是,可以意识到,任何数量‘N’的输入电路99也是可以实现的。两个输入电路991、992的各自的互补数据输出端分别连接在一起以形成公共互补数据输出端98’、100’,在其两端背靠背地连接反相器82、84,所述反相器分别载送互补数据输出信号QN、Q。
在锁存器80”的这个实施例中,使用如图3所示的NMOS晶体管的下拉网络,但是应当可以意识到,可以使用如图9所示的PMOS晶体管164、166、168的上拉网络来实现该锁存器80”。
图11说明根据本发明实施例的用于执行Boolean函数的静态锁存器的应用。在这个典型实施例中,当使能信号G=1时是AANDB。
图11的静态锁存器AND电路180包括两个反相器182、184,并且还包括五个NMOS晶体管186、188、190、192、194以及五个输入/输出端196、198、200、202、204。
图11中的两个反相器182、184可以为图1b中所说明的类型的标准CMOS反相器。反相器182和184分别对应于图3的反相器82和84。
第一、第二和第三NMOS晶体管186、188、190相互串联连接。第四和第五NMOS晶体管192、194相互并联连接。
第一NMOS晶体管186的漏极分别连接到两个反相器184和182的输入和输出端,并且形成载送互补数据输出信号QN的静态锁存器AND电路180的互补数据输出端206。第二NMOS晶体管188的漏极连接到第一NMOS晶体管186的源极。第三NMOS晶体管190的漏极210连接到第二NMOS晶体管188的源极。第三NMOS晶体管190的源极连接到负电源轨GND。
第一和第二NMOS晶体管186和188的栅极分别形成分别载送数据输入信号A和B的静态锁存器AND电路180的数据输入端196和198。第三晶体管190的栅极形成载送控制输入信号G的静态锁存器AND电路180的控制输入端204。
第四和第五NMOS晶体管192、194的漏极连接到两个反相器182和184的各自的输入和输出端,并且形成载送数据输出信号Q的静态锁存器AND电路180的数据输出端208。第四和第五NMOS晶体管192、194的源极都连接到第三NMOS晶体管190的漏极210。
第四和第五NMOS晶体管192和194各自的栅极分别形成分别载送互补数据输入信号AN和BN的静态锁存器AND电路180的互补数据输入端202和204。
图12说明由根据本发明实施例的两个简单的移位寄存器1101、1102构成的移位寄存器链。
由图5中所说明的类型的第一和第二移位寄存器1101、1102构成的该链适于连接来形成第四锁存移位寄存器220。尽管为了解释的目的在这里示出了两个移位寄存器1101、1102,但是可以意识到,任何数量‘N’的移位寄存器110可以被连接成任意长度的链。
每个移位寄存器1101、1102包括互补数据输入端、互补数据输出端以及双控制端。
第一移位寄存器1101接收对应的互补数据输入端222、224上的互补输入数据信号D、DN,以及在其对应的互补数据输出端226、228上提供对应的互补输出数据信号。第二移位寄存器1102接收来自互补数据输出端226、228的对应的互补输出数据信号作为其互补输入数据信号,并且在其互补数据输出端230、232上提供对应的互补输出数据信号Q、QN。因此,第一移位寄存器1101的互补输出数据信号用作第二移位寄存器1102的互补输入数据信号。每个移位寄存器1101、1102接收各自数据控制端234和236上的各自的数据控制信号G1和G2。
如果数据控制信号G1和G2的波形为非重叠脉冲,则图12的电路如2位移位寄存器一样运行。这样,在对应的移位寄存器1101、1102内的每一对锁存器形成主/从触发器。
通过使用本发明实施例的锁存器,能够实现小得多的移位寄存器实施方式。
参考图13,可以实现图12中所示出的电路的更小的实施方式。该移位寄存器链中的每个移位寄存器1101、1102按照如图12的链的相同方式互连,除了构成移位寄存器1101、1102的锁存器的输入控制端连接到载送各自输入数据控制信号G1-G4的四个各自的数据控制端234、235、236、237之外。这些使能输入控制信号G1-G4为非重叠脉冲,并且每个脉冲被级联,使得一个脉冲发生在前一个脉冲之后。这种特定的实施方式在所述链中对于每3位仅提供一个从锁存器。
尽管在附图中已经说明了本发明装置的优选实施例并且在前面也已对其进行了详细描述,但是可以理解,本发明并不限于所公开的实施例,而是在不偏离由所附权利要求书限定的本发明范围的情况下可以做出多种改变、修改。