本发明总体涉及集成电路,更具体地,涉及多路复用锁存电路。
背景技术:
在集成电路中,具有许多独立的器件,诸如,一个或多个存储器、模数转换器、处理器和其他类似器件。各个器件不能在制造期间或制造之后被测试。在小工艺节点(例如,22nm)中,各个器件有时不经过晶圆探针进行测试,因为在一些应用中在这些小工艺节点处可用的这种探针太过脆弱。如此,在一些应用中,各个器件的晶圆级测试是不太经济的,而是优选芯片上测试。为了执行芯片上测试,集成电路的各个器件可以包括多路复用器和锁存器来选择数据源以执行不同的操作。
技术实现要素:
根据本发明的一个方面,提供了一种集成电路,包括:时钟发生器,被配置为响应于选择信号和时钟信号而生成第一锁存时钟信号和第二锁存时钟信号;以及多路复用锁存电路,被配置为基于所述第一锁存时钟信号和所述第二锁存时钟信号来选择第一数据线上的第一数据或第二数据线上的第二数据,并且存储和输出所选数据。
优选地,当所述第一数据被选择为存储在所述多路复用锁存电路中时,所述时钟发生器被配置为将所述第一锁存信号设置为在两个逻辑值之间振荡并且将所述第二锁存时钟信号设置为预定逻辑值。
优选地,响应于所述第一数据被选择为存储在所述多路复用锁存电路,所述多路复用锁存电路被配置为在所述第一锁存时钟信号的第一个半周期期间选择所述第一数据以及在所述第一锁存时钟信号的第二个半周期期间存储所述第一数据。
优选地,所述多路复用锁存电路包括:第一选择电路,被配置为基于所述第一锁存时钟信号来选择和输出所述第一数据;以及第二选择电路,被配置为基于所述第二锁存时钟信号来选择和输出所述第二数据。
优选地,所述多路复用锁存电路包括第一锁存器,所述第一锁存器包括:反相器,被配置为经由输入端接收所述所选数据;以及三态反相器,具有耦合至所述反相器的输出端的输入端和耦合至所述反相器的输入端的输出端。
优选地,所述三态反相器包括:第一开关,被配置为基于所述第一锁存时钟信号使能所述三态反相器;以及第二开关,被配置为基于所述第二锁存时钟信号使能所述三态反相器。
优选地,当所述第一数据被选择为存储在所述第一锁存器中时,所述第一开关被配置为在所述第一锁存时钟信号的第一个半周期期间使所述三态反相器失效,以及在所述第一锁存时钟信号的第二个半周期期间使能所述三态反相器,而所述第二开关被配置为在所述第一锁存时钟信号的所述第一个半周期期间和所述第一锁存时钟信号的所述第二个半周期期间使能所述三态反相器。
优选地,所述多路复用锁存电路还包括缓冲器,所述缓冲器具有耦合至所述反相器的输出端的输入端和耦合至第二锁存器的输入端的输出端。
优选地,于所述第一数据被选择为存储在所述多路复用锁存电路中,所述缓冲器被配置为向所述第二锁存器输出所述所选数据,并且所述第二锁存器被配置为在所述第一锁存时钟信号的第三个半周期期间存储所述所选数据。
优选地,所述时钟信号的第一个半周期之后紧跟所述时钟信号的第二个半周期,并且所述时钟信号的第二个半周期之后紧跟所述时钟信号的第三个半周期。
根据本发明另一方面,提供了一种选择集成电路中的数据的方法,包括:基于选择信号和时钟信号生成第一锁存时钟信号和第二锁存时钟信号;响应于所述第一锁存时钟信号,使第一数据线集合与锁存器件的集合电耦合,或者响应于所述第二锁存时钟信号,使第二数据线集合与所述锁存器 件的集合电耦合;以及
在所述锁存器件的集合中存储来自所选数据线集合的数据。
优选地,当所述第一数据被选择为存储在第一锁存器中,将所述第一锁存时钟信号设置为在两个逻辑值之间交替变化而将所述第二锁存时钟信号设置为预定逻辑值。
优选地,该方法还包括:当所述第一数据被选择为存储在所述第一锁存器中时,在所述第一锁存时钟信号的第一个半周期期间将所述第一数据线集合输出至所述第一锁存器。
优选地,在所述第一锁存器中存储所选数据线上的所选数据包括:在所述时钟信号的第二个半周期期间锁存来自所述所选数据线的数据。
优选地,该方法还包括:在所述时钟信号的第二个半周期期间,接收所述第一锁存信号和所述第二锁存信号并且存储来自所述所选数据线的数据。
优选地,该方法还包括:在所述时钟信号的第三个半周期期间,在第二锁存器中存储来自所述所选数据线的数据。
优选地,该方法还包括:在所述时钟信号的第二个半周期期间,接收所述第一锁存信号和所述第二锁存信号并且存储所述所选数据。
优选地,所述时钟信号的第一个半周期之后紧跟所述时钟信号的第二个半周期,并且所述时钟信号的第二个半周期之后紧跟所述时钟信号的所述第三个半周期。
根据本发明的又一方面,提供了一种集成电路,包括:时钟发生器,被配置为响应于多路复用选择信号和时钟信号而生成第一锁存时钟信号和第二锁存时钟信号;以及多路复用锁存电路,被配置为基于所述第一锁存时钟信号和所述第二锁存时钟信号来选择第一数据线上的第一数据或第二数据线上的第二数据,并且被配置为基于所述第一锁存时钟信号和所述第二锁存时钟信号来存储和输出所选数据。
优选地,响应于所述第一数据被选择为存储在所述多路复用锁存电路中,所述时钟发生器将所述第一锁存信号设置为在两个逻辑值之间振荡并将所述第二锁存时钟信号设置为预定逻辑值。
附图说明
当阅读附图时,根据以下详细的描述来更好地理解本发明的各个方面。注意,根据工业的标准实践,各个部件没有按比例绘制。实际上,为了讨论的清楚,可以任意地增加或减小各个部件的尺寸。
图1是根据一些实施例的接口电路的框图。
图2是根据一些实施例的用于在图1的集成电路中生成锁存时钟信号的时钟发生器的电路图。
图3是根据一些实施例的在图1的集成电路中的图2的时钟发生器的时序图。
图4A是根据一些实施例的用于使用图1的集成电路中的锁存时钟信号选择和锁存数据的多路复用锁存器的电路图,以及图4B是根据一些实施例的多路复用锁存电路的操作的时序图。
图5A是根据一些实施例的用于使用图1的集成电路中的锁存时钟信号选择和锁存数据的另一多路复用锁存器的电路图,以及图5B是根据一些实施例的多路复用锁存电路的操作的时序图。
图6是根据一些实施例的用于使用图1的集成电路的锁存时钟信号选择和锁存数据的另一多路复用锁存器的电路图。
图7是根据一些实施例的使用锁存时钟信号多路复用和锁存数据的方法的流程图。
图8是实施实施例的基于计算机或处理器的系统的功能框图。
具体实施方式
以下公开提供了许多不同的用于实施本发明主题的不同特征的实施例或实例。以下描述部件或配置的具体实例以简化本发明。当然,这些仅仅是实例而不用于限制。例如,在以下的描述中,在第二部件上方或之上形成第一部件可以包括第一部件和第二部件被形成为直接接触的实施例,并且也可以包括可以在第一部件和第二部件形成附件部件使得第一部件和第二部分没有直接接触的实施例。此外,本发明可以在各个实例中重复参考标号和/或字母。这些重复是为了简化和清楚,其本身并不表示所讨论的各 个实施例和/或结构之间的关系。
根据一个或多个实施例的接口电路包括:时钟发生器,被配置为生成锁存时钟信号;以及多路复用锁存电路,被配置为基于锁存时钟信号来选择和锁存数据。多路复用锁存电路比单独的多路复用器和锁存器具有较少的晶体管。此外,多路复用锁存电路减少了切换延迟的次数并且增大了集成电路的速度。晶体管数量的减少还减少了被集成电路中的接口电路所占用的空间。
图1是根据一些实施例的接口电路100的框图。接口电路100从具有N条数据线的数据线集合A以及也具有N条数据线的数据线集合B接收数据,其中N是大于2的正整数。数据线集合A和B被配置为承载不同的数据源,诸如用于正常模式的数据总线和用于测试模式的测试总线。在一些实施例中,接口电路100包括多于两个的数据线集合。在一些实施例中,在存储电路中实施接口电路100来用于测试存储电路。在其他实施例中,接口电路100在集成电路中的器件中使用,其被配置为从用于测试该器件的源处接收数据。
接口电路100包括时钟发生器102,其被配置为接收时钟线CLK上的时钟信号以及接收选择线SEL上的选择信号。基于时钟信号和选择信号,时钟发生器102在线CLK_A上生成并输出用于数据线集合A的锁存时钟信号SA并且在线CLK_B上生成并输出用于数据线集合B的锁存时钟信号SB。如果选择数据线A,则锁存时钟信号SA承载时钟信号(其在时钟信号的每个周期中在两个逻辑值之间交替),而锁存时钟信号SB承载预定的逻辑值。如果选择数据线B,则锁存时钟信号SB承载时钟信号,而锁存时钟信号SA承载预定的逻辑值。然而,由于接口电路100被配置为选择一个数据集合,所以单个锁存时钟信号承载时钟信号。在一些实施例中,时钟发生器102被配置为生成多于两个的锁存时钟信号。
数据线集合A包括N条数据线A[1]至A[N],以及数据线集合B包括N条数据线B[1]至B[N]。输出数据线OUT包括N条输出数据线OUT[1]至OUT[N]。接口电路100包括N个多路复用锁存器ML[1]至ML[N](统称为“多路复用锁存器ML”)。多路复用锁存器ML[n](n为1至N范围 内的索引)耦合至数据线集合A的数据线A[n]、数据线集合B的数据线B[n]以及输出数据线OUT[n]。多路复用锁存器ML还被配置为接收锁存时钟信号SA和SB。
基于锁存时钟信号SA和SB,多路复用锁存器ML选择从数据线集合A或数据线集合B接收数据,存储来自所选数据线集合的数据,并且在输出数据线OUT上输出来自所选数据线集合的数据。例如,接口电路100在多路复用锁存器ML中选择来自数据线集合A的数据,存储来自数据线集合A的数据,并且在输出线OUT上输出数据。在一些实施例中,接口电路100向存储器阵列输出数据以执行读或写操作。
图2是根据一些实施例的用于生成锁存信号SA、SB的可用作图1的时钟发生器102的时钟发生器200的电路图。时钟发生器包括第一NAND门202、第二NAND门204以及反相器206和208。时钟线CLK耦合至反相器206的输入端。反相器206的输出端耦合至NAND门202的第一输入端和NAND门204的第一输入端。NAND门202的第二输入端耦合至选择线SEL。选择线SEL还耦合至反相器208的输入端,并且反相器208的输出端耦合至NAND门204的第二输入端。NAND门202的输出端耦合至线CLK_A,以及NAND门204的输出端耦合至线CLK_B。
时钟发生器200在线CLK_A上生成并输出用于选择数据线集合A的锁存时钟信号SA以及在线CLK_B上生成并输出用于选择数据线集合B的锁存时钟信号SB。当选择数据线集合A时,选择线SEL上的选择信号为逻辑高值(即,高电位电压VDD),而当选择数据线集合B时,选择线SEL上的选择信号为逻辑低值(即,低电位电压VSS)。
在选择数据线集合A的情况下(即,选择线SEL上的选择信号为逻辑高值),反相器208接收逻辑高值,将逻辑高值反相为逻辑低值,并且将逻辑低值输出到NAND门204中,从而迫使NAND门204在线CLK_B上输出并保持锁存时钟信号SB为逻辑高值。此外,线CLK上的时钟信号被反相器206反相并且与选择线SEL上的选择信号(即,逻辑高值)一起被输入至NAND门202。使用反相时钟信号和选择信号,NAND门202在线CLK_A上生成并输出锁存时钟信号SA作为时钟信号。
在选择数据线集合B的情况下(即,选择线SEL上的选择信号为逻辑低值),线SEL上的选择信号使得NAND门202在线CLK_A上输出并保持锁存时钟信号SA作为逻辑高值。如果选择数据线B,则线CLK上的时钟信号被反相器206反相并且与反相的选择信号(即,逻辑高值)一起被输入至NAND门204。以这种方式,NAND门204在线CLK_B上输出锁存时钟信号SB作为时钟信号。
如果选择数据线集合A,则锁存时钟信号SA为时钟信号而锁存时钟信号SB为预定的逻辑值。如果选择数据线集合B,则锁存时钟信号SB为时钟信号而锁存时钟信号SA为预定的逻辑值。时钟信号在逻辑高(upper)半周期(即,逻辑高值)和逻辑低(lower)半周期(即,逻辑低值)之间振荡。预定的逻辑值对应于逻辑高值。在一些实施例中,预定的逻辑值是与逻辑低值相关联的电压。在一些实施例中,时钟信号是另一种类型的连续波形信号(例如,正弦波、锯齿波、三角波等)。在一些实施例中,时钟发生器200被配置为输出多于两个的锁存时钟信号,并且时钟发生器200被配置为接收附加选择信号,使得一个锁存时钟信号承载时钟信号而剩余的锁存时钟信号承载预定的逻辑值。
图3是根据一些实施例的集成电路中的时钟发生器(诸如图2的时钟发生器200)的实施例的时序图。为了清楚,本文公开的时序图被简化并且没有示出由于切换而发生的任何延迟。如果在时间T0处选择数据线集合A,则线SEL上的选择信号为逻辑高值。因此,线CLK_A上的锁存时钟信号SA承载在逻辑高半周期和逻辑低半周期之间交替的时钟信号,而线CLK_B上的锁存时钟信号SB承载预定的逻辑值。当在时间T1处选择数据线集合B时,线SEL上的选择信号为逻辑低值。因此,线CLK_B上的锁存时钟信号SB承载在逻辑高半周期和逻辑低半周期之间交替的时钟信号,而线CLK_A上的锁存时钟信号SA承载预定的逻辑值。
图4A是根据一些实施例的用于使用来自图2的时钟发生器200的锁存时钟信号SA和SB来选择和锁存数据的多路复用锁存器400的电路图。为了清楚,图4A的电路图包括标记的线,其与具有相同标记的其他线电连接。多路复用锁存器400可用作图1的多路复用锁存器ML中的一个。多路复 用锁存器400包括选择电路402和选择电路404,它们被配置为基于锁存时钟信号SA和SB来选择需锁存的数据。多路复用锁存器400还包括反相器414和三态反相器416。反相器414与三态反相器416交叉耦合以形成锁存电路。反相器414耦合至选择电路402和404的输出端。
选择电路402包括三态反相器406和反相器408。三态反相器406具有耦合至数据线集合A的数据线A[n]的输入端。线CLK_A耦合至三态反相器406的低使能端和反相器408的输入端。反相器408的输出端耦合至三态反相器406的高使能端。反相器408的输出端还经由线CLKB_A耦合至三态反相器416。三态反相器406的输出端耦合至选择电路402的输出端。
选择电路404与选择电路402相同,除了三态反相器410具有耦合至数据线集合B的数据线B[n]的输入端,线CLK_B耦合至三态反相器410的低使能端和反相器412的输入端,并且反相器412的输出端耦合至三态反相器410的高使能端。反相器412的输出端还经由线CLKB_B耦合至三态反相器416。三态反相器410的输出端耦合至选择电路404的输出端。
反相器414的输入端耦合至选择电路402和404的输出端。反相器414的输出端耦合至三态反相器416的输入端,并且三态反相器416的输出端还耦合至反相器414的输入端。反相器414的输出端与多路复用锁存器400的输出端连接。
三态反相器416包括PMOS晶体管418,其源极端耦合至高电位电压源VDD,栅极端经由线CLKB_A耦合至反相器408的输出端,并且漏极端耦合至PMOS晶体管420的源极端。PMOS晶体管420还包括经由线CLKB_B耦合至反相器412的输出端的栅极端和耦合至PMOS晶体管422的源极端的漏极端。PMOS晶体管422还包括耦合至反相器414的输出端的栅极端以及耦合至反相器414的输入端的漏极端。
三态反相器416还包括NMOS晶体管424,其漏极端耦合至反相器414的输入端,栅极端耦合至反相器414的输出端,以及源极端耦合至NMOS晶体管426的漏极端。NMOS晶体管426还包括耦合至线CLK_A的栅极端以及耦合至NMOS晶体管428的漏极端的源极端。NMOS晶体管428还 包括耦合至线CLK_B的栅极端以及耦合至低电位电压源VSS的源极端。
三态反相器416包括由PMOS晶体管418和420形成的两个低使能端。当三态反相器416的输入为逻辑低值时,如果PMOS晶体管418或PMOS晶体管420截止,则PMOS晶体管422不接收和输出高电压电位VDD。然而,当PMOS晶体管418和420均导通且PMOS晶体管422从三态反相器414的输出端接收逻辑低值时,PMOS晶体管418至422将高电压电位VDD耦合至三态反相器416的输出端(即,PMOS晶体管422的漏极),从而输出逻辑高值。
三态反相器416还包括由NMOS晶体管426和428形成的两个高使能端。如果NMOS晶体管426或NMOS晶体管428截止,则当三态反相器416的输入为逻辑高值时,NMOS晶体管424不接收并且不输出低电压电位VSS。当NMOS晶体管426和428均导通且NMOS晶体管424从反相器414的输出端接收逻辑高值时,NMOS晶体管424至428将低电压电位VSS耦合至三态反相器416的输出端(即,NMOS晶体管424的漏极),从而输出逻辑低值。
为了描述多路复用锁存器400的操作,数据线集合A的所选数据线A[n]上的输入数据被称为数据DA,并且数据线集合B的所选数据线B[n]上的输入数据被称为数据DB。当数据DA和数据DB在多路复用锁存器400中被反相时,数据DA和数据DB被称为数据DBA和数据DBB。此外,多路复用锁存器400内的其他信号可以如下所述被反相以承载互补信号。
图4B是根据一些实施例的图4A的多路复用锁存器400和图2的时钟发生器200在各个节点处的波形的时序图。
在操作中,当在时间T0处选择数据线集合A时,锁存时钟信号SA是被输入至三态反相器406的低使能端的时钟信号。反相器408还接收线CLK_A上的锁存时钟信号SA,将线CLK_A上的所述时钟信号反相,并经由线CLKB_A将反相的锁存时钟信号SBA输出至三态反相器406的高使能端。
三态反相器406的输出端被配置为根据高使能端和低使能端处的信号而使能。当三态反相器406的低使能端接收逻辑低值且三态反相器406的 高使能端接收逻辑高值时,三态反相器406被使能以将三态反相器406的输入端处的逻辑值反相为三态反相器406的输出端处的反相逻辑值。当三态反相器406的低使能端接收逻辑高值且三态反相器406的高使能端接收逻辑低值时,三态反相器406失效且在三态反相器406的输出端处具有高阻状态。
因此,当锁存时钟信号SA在逻辑低半周期中且反相的锁存时钟信号SBA在逻辑高半周期中时,三态反相器406的低使能端接收逻辑低值且高使能端接收逻辑高值,从而使得三态反相器406接收数据DA,将数据DA反相为数据DBA,并输出数据DBA。另一方面,当锁存时钟信号SA为逻辑高半周期中的时钟信号且反相的锁存时钟信号SBA在逻辑低半周期中时,三态反相器406的低使能端接收逻辑高值且高使能端接收逻辑低值,从而使三态反相器406的输出端失效。
此外,当选择数据线集合A以输入数据(即,选择信号表示数据线集合A被选择)时,线CLK_B上的锁存时钟信号SB为逻辑高值。在这种情况下,选择电路404被配置为失效。具体地,逻辑高值被输入值三态反相器410的低使能输入端。此外,反相器412接收承载高逻辑值的锁存时钟信号SB,将逻辑高值反相为低逻辑值,并将承载逻辑低值的反相时钟信号SBB输出至高使能端,从而使得三态反相器410失效且在输出端处具有高阻状态。因此,线CLK_B上承载预定逻辑值的锁存时钟信号SB使选择电路404失效。
此外,当在时间T0处选择数据线集合A时,承载逻辑高值的锁存时钟信号SB导通NMOS晶体管428,并且承载逻辑低值的反相的锁存时钟信号SBB导通PMOS晶体管420。此外,在时间T0处,锁存时钟信号SA的逻辑高半周期将导通NMOS晶体管426且反相的锁存时钟信号SBA的逻辑低半周期将导通PMOS晶体管418。然而,锁存时钟信号SA的逻辑低半周期将截止NMOS晶体管426且锁存时钟信号SBA的逻辑高半周期将截止PMOS晶体管418。因此,在时间T0处,三态反相器416被使能接收数据DA并输出数据DBA。
当选择数据线集合B时,选择电路402和404以类似方式进行操作。 具体地,在时间T1处,选择线SEL上的选择信号被设置为逻辑低值以选择数据线集合B,锁存时钟信号SA为逻辑高值,从而使选择电路402失效。此外,在时间T1处,锁存时钟信号SB承载时钟信号。因此,在锁存时钟信号SB的逻辑低半周期期间,选择电路404被配置为接收数据DB,将数据DB反相为数据DBB,并输出数据DBB。在线CLK_B上的锁存时钟信号的逻辑高半周期期间,选择电路404失效。
在时间T1处,反相器414的输入端从选择电路404处接收数据DBB,将数据DBB反相为数据DB,并在线OUT上输出来自多路复用锁存器400的数据DB。反相器414的输出端还将数据DB输出至三态反相器416的输入端。
当在时间T1处选择数据线集合B时,选择电路404将数据DBB传输至反相器414。在时间T1处,线CLK_A上的承载逻辑高值的锁存时钟信号SA导通NMOS晶体管426,并且线CLKB_A上的承载逻辑低值的反相锁存时钟信号SBA将导通PMOS晶体管418。然而,在时间T1处,线CLK_B上的锁存时钟信号SB处在逻辑低半周期中而反相的锁存时钟信号SBB处在逻辑高半周期中,从而使PMOS晶体管420和NMOS晶体管428截止并使三态反相器406失效。在时间T2处,线CLK_B上的锁存时钟信号SB的逻辑高半周期将导通NMOS晶体管428且线CLKB_B上的反相锁存时钟信号SBB的逻辑低半周期将导通PMOS晶体管420,从而使得三态反相器416输出数据DBB。
反相器414和三态反相器406交叉耦合并且形成反馈回路来在多路复用锁存器400中锁存数据DA或数据DB。三态反相器416被配置为在线CLK_A上的锁存时钟信号SA的逻辑高半周期或线CLK_B上的锁存时钟信号SB的逻辑高半周期期间是可操作的。因此,反相器414在锁存时钟信号SA和SB的逻辑低半周期期间接收来自选择电路402的数据DBA或来自选择电路404的数据DBB,并输出数据DA或数据DB。在锁存时钟信号SA和SB的逻辑高半周期期间,PMOS晶体管422或NMOS晶体管424被配置为导通以将数据DBA或数据DBB输出至反相器414的输入端。如果数据DA或数据DB对应于逻辑高值,则NMOS晶体管424导通以输出低电压VSS (即,逻辑低值),并且如果数据D对应于逻辑低值,则PMOS晶体管422导通以输出高电压VDD(即,逻辑高值)。
多路复用锁存器400被称为半锁存器,因为锁存操作在时钟信号的上升沿触发。在其他实施例中,时钟信号的上升沿和下降沿用于触发锁存操作。在一些实施例中,多路复用锁存器400的器件被其他任何适当的结构所替代。例如,在其他实施例中,使用NAND逻辑门以基于锁存时钟信号SA和SB生成单个时钟信号。
图5A是根据一些实施例的多路复用锁存器500的电路图,其操作类似于图4A中的多路复用锁存器400的操作,用于使用集成电路中的锁存时钟信号SA和SB来选择和锁存数据。多路复用锁存器500接收锁存时钟信号SA和SB,基于锁存时钟信号SA和SB选择数据线集合中的数据线,存储来自所选数据线的数据,并且输出来自所选数据线集合的数据。多路复用锁存器500的操作类似于多路复用锁存器400并由此省略其描述。
多路复用锁存器500包括选择电路502和选择电路504。选择电路502与选择电路402相同,除了反相器508的输出端不与线CLKB_A耦合且参考标号增加100。选择电路504与选择电路404相同,除了反相器512的输出端不与线CLKB_B耦合并且参考标号增加100。
多路复用锁存器500包括NAND门514,其具有耦合至线CLK_A的第一输入端、耦合至线CLK_B的第二输入端和耦合至线CLKALL的输出端。NAND门514的输出端耦合至反相器516的输入端,并且反相器516的输出端耦合至线CLKALLB。
选择电路502和504的输出端耦合至反相器520的输入端。反相器520与三态反相器522交叉耦合,从而形成第一锁存器。三态反相器522具有耦合至线CLKALLB的高使能端和耦合至线CLKALL的低使能端。
反相器520的输出端耦合至三态反相器524的输入端。三态反相器524具有耦合至线CLKALLB的高使能端和耦合至线CLKALL的低使能端。反相器524的输出端耦合至反相器528的输入端,其中反相器528与三态反相器530交叉耦合。反相器528和三态反相器530形成第二锁存器。三态反相器530具有耦合至线CLKALL的高使能端和耦合至线CLKALLB的低 使能端。反相器528的输出端与多路复用锁存器500的输出端连接。
图5B是根据一些实施例的图5A的多路复用锁存器500和图2的时钟发生器200在各个节点处的波形的时序图。
在多路复用锁存器500的操作期间,NAND门514被配置为接收锁存时钟信号SA和SB,对锁存时钟信号SA和SB执行逻辑NAND操作以生成时钟信号SCLOCK,并且在线CLKALL上输出时钟信号SCLOCK。反相器516接收线CLKALL上的时钟信号SCLOCK,使线CLKALL上的生成时钟信号反相,并且在线CLKALLB上输出反相时钟信号SBCLOCK。
在时间T0处,选择电路502在线CLK_A上的锁存时钟信号SA的逻辑低半周期期间被使能,从而使得反相器506反相数据DA并将数据DBA输出至反相器520。选择电路502在锁存时钟信号SA的逻辑高半周期期间失效。在时间T0处,反相器520被配置为从选择电路502处接收数据DBA,将数据DBA反相为数据DA,并将数据DA输出至三态反相器522和三态反相器524。
在时间T1处,选择电路504在锁存时钟信号SB的逻辑低半周期期间被使能,从而使得反相器510反相数据DB并将数据DBB输出至反相器520。选择电路504在线CLK_B上的锁存时钟信号SB的逻辑高半周期期间失效。在时间T1处,反相器520从选择电路504接收数据DBB,将数据DBB反相为数据DB,并将数据DB输出至三态反相器522和三态反相器524。因此,反相器520在第一个半周期540期间接收并输出数据DB。
在时间T1处,三态反相器522的低使能端接收线CLKALL上的时钟信号SCLOCK的逻辑高半周期,并且三态反相器522的高使能端接收线CLKALLB上的时钟信号SBCLOCK的逻辑低半周期,从而使三态反相器522失效。三态反相器522将在每个CLKALL的逻辑高半周期(高态)期间失效。
在时间T2处,三态反相器522的低使能端接收线CLKALL上的时钟信号SCLOCK的逻辑低半周期,并且三态反相器522的高使能端接收时钟信号SBCLOCK的逻辑高半周期,从而使能三态反相器522。因此,在时间T2处,三态反相器522在第二个半周期542期间接收数据DB,将数据DB反 相为数据DBB,并且输出数据DBB。三态反相器524还将在时间T2处使能以接收来自反相器520的数据DB,将数据DB反相为数据DBB,并将数据DBB传输至由反相器528和三态反相器530形成的第二锁存器。三态反相器524被配置为缓冲第二锁存器和第一锁存器。三态反相器530的高使能端接收时钟信号SCLOCK的逻辑低半周期,并且三态反相器530的低使能端接收时钟信号SBCLOCK的逻辑高半周期,从而使三态反相器530失效。
在时间T3处,三态反相器530的高使能端接收时钟信号SCLOCK的逻辑高半周期,并且三态反相器530的低使能端接收时钟信号SBCLOCK的逻辑低半周期,从而使能三态反相器530。在时间T3处,三态反相器530在第三个半周期544期间接收数据DB,将数据DB反相为数据DBB,并输出数据DBB。
多路复用电路500被称为全锁存器,因为时钟信号的下降沿和时钟信号的上升沿被用于触发锁存操作以在完全存储其中的数据DA或数据DB。在一些实施例中,除接收锁存时钟信号之外,多路复用电路500接收线CLK上的时钟信号。在这种可选实施例中,省略NAND门514以及在线CLKALL和CLKALLB上生成时钟信号的操作。
图6是根据一些实施例的用于使用集成电路中的锁存时钟信号来选择和锁存数据的另一多路复用锁存器600的电路图。多路复用锁存器600与多路复用锁存器400类似,除了包括三态反相器630、反相器644和三态反相器646,其中反相器644的输出端耦合至多路复用锁存器600的输出端,并且参考标号增加了200。
多路复用锁存器600包括选择电路602和选择电路604。选择电路602与选择电路402相同,除了反相器608的输出端还经由线CLKB_A耦合至三态反相器630和646,并且参考标号增加了200。选择电路604与选择电路404相同,除了反相器612的输出端还经由线CLKB_B耦合至三态反相器630和646,并且参考标号增加了200。多路复用锁存器600包括由反相器614和三态反相器616形成的交叉耦合锁存器,其与由反相器414和三态反相器416形成的交叉耦合锁存器相同,除了参考标号增加了200,以及除了反相器614的输出不与多路复用锁存器的输出端连接。
反相器614的输出端和三态反相器616的输入端还耦合至三态反相器630的输入端。三态反相器630与三态反相器616相同,除了具有不同的输出以及参考标号增加了14。
三态反相器630的输出端耦合至反相器644的输入端。反相器644与三态反相器646交叉耦合以形成第二锁存电路。反相器644的输出端耦合至三态反相器646的输入端,并且三态反相器646的输出端耦合至反相器644的输入端。反相器644的输出端还连接至输出线OUT以从多路复用锁存器600输出数据。
三态反相器646包括PMOS晶体管648,其具有耦合至高电位电压源VDD的源极端、耦合至线CLK_A的栅极端和耦合至PMOS晶体管650的源极端的漏极端。PMOS晶体管650还包括耦合至线CLKB_B的栅极端和耦合至PMOS晶体管652的源极端的漏极端。PMOS晶体管652包括耦合至反相器646的输出端的漏极端和耦合至反相器646的输入端的栅极端。三态反相器646还包括NMOS晶体管654,其具有耦合至反相器646的输出端的漏极端、耦合至反相器646的输入端的栅极端和耦合至NMOS晶体管656的漏极端的源极端。NMOS晶体管656还包括耦合至线CLKB_A的栅极端和耦合至NMOS晶体管658的漏极端的源极端。NMOS晶体管658还包括耦合至线CLK_B的栅极端和耦合至低电位电压源(例如,地、VSS等)的源极端。
三态反相器646还包括PMOS晶体管660,其具有耦合至高电位电压源VDD的源极端、耦合至线CLKB_A的栅极端和耦合至PMOS晶体管662的源极端的漏极端。PMOS晶体管662还包括耦合至线CLK_B的栅极端和耦合至PMOS晶体管652的源极端的漏极端。
三态反相器646还包括NMOS晶体管664,其具有耦合至NMOS晶体管654的源极端的漏极端、耦合至线CLK_A的栅极端和耦合至NMOS晶体管666的漏极端的源极端。NMOS晶体管666还包括耦合至线CLKB_B的栅极端和耦合至低电位电压源(例如,VSS、地等)的源极端。
选择电路602在锁存时钟信号SA的逻辑低半周期期间被使能,从而使得反相器606将数据DA反相为数据DBA并将数据DBA输出至反相器614。 选择电路602在线CLK_A上的锁存时钟信号SA的逻辑高半周期期间失效。类似地,选择电路604在锁存时钟信号SB的逻辑低半周期期间被使能,从而使得反相器610反相数据DB并输出数据DBB。选择电路604在锁存时钟信号SB的逻辑高半周期期间失效。
反相器614和三态反相器616被配置作为第一锁存器来接收数据、存储数据并且将数据输出至三态反相器630。三态反相器630被配置作为第二锁存器(由反相器644和三态反相器646来实现)的缓冲器。具体地,三态反相器630在逻辑高半周期期间接收数据D并将数据输出至反相器644。反相器644接收数据、存储数据并且输出数据。
三态反相器646被配置为在锁存时钟信号SA和SB的逻辑高半周期和逻辑低半周期期间使能。具体地,PMOS晶体管660和662以及NMOS晶体管664和666在CLK_A上的锁存时钟信号SA的逻辑高半周期期间使能三态反相器646。PMOS晶体管648和650以及NMOS晶体管656和658在CLK_B上的锁存时钟信号SB的逻辑高半周期期间使能反相器646。PMOS晶体管660和662以及NMOS晶体管664和666在CLK_B上的锁存时钟信号SB的逻辑低半周期期间使能三态反相器646。PMOS晶体管648和650以及NMOS晶体管656和658在CLK_A上的锁存时钟信号SA的逻辑低半周期期间使能反相器646。
三态反相器646是全锁存器,其被配置为在时钟信号的逻辑高半周期和逻辑低半周期期间均锁存数据。多路复用锁存器600被配置为比典型的全锁存器更快地锁存数据,因为与典型的全锁存器相比,多路复用锁存器600缺少附加的多路复用器级,因此节省了典型全锁存器的附加多路复用器级中的延迟时间。
图7是根据一个或多个实施例的用于使用锁存时钟信号来多路复用和锁存集成电路中的数据的方法700的流程图。在一些实施例中,方法700可应用于结合图2、图4A、图5A和/或图6示出的电路。
该方法开始于操作705,其中,时钟发生器200接收线CLK上的时钟信号以及线SEL上的选择信号。线SEL上的选择信号表示待选以输入至集成电路的器件中的数据线集合。在一些实施例中,器件是存储器阵列、模 数转换器(ADC)或处理器。该方法继续至操作710,时钟发生器200在线CLK_A上生成锁存时钟信号SA而在线CLK_B上生成锁存时钟信号SB。每个数据线集合都是用于该器件的不同数据源。在生成锁存时钟信号SA和SB之后,该方法继续到操作715,多路复用锁存器ML[n]基于锁存时钟信号SA和SB来选择数据线A[n]或B[n]。该方法继续到操作720,多路复用锁存器ML[n]将来自所选数据线集合的数据存储在并输出在线OUT[n]上。该方法存储来自所选数据线集合的数据,直到所选数据线集合提供新数据或者直到选择不同的数据线集合来输入器件为止。
图8是实现一实施例的基于处理器的系统800的功能框图。
在一些实施例中,基于处理器的系统被实施为单个“芯片上系统”。基于处理器的系统800包括:通信器件,诸如总线801,用于在基于处理器的系统800的各部件之间传输信息和/或指令;以及存储器805,用于存储数据。处理器803连接至总线801以获取用于执行和处理例如存储在存储器805中的信息的指令。在一些实施例中,处理器803还通过与一个或多个专用部件(诸如,一个或多个数字信号处理器(DSP)、一个或多个ADC、一个或多个数模转换器(DAC)或者一个或多个专用集成电路(ASIC))一起来执行特定的处理功能和任务。基于处理器的系统800内的器件(诸如存储器805或其他部件)包括多路复用锁存器ML[n]以接收来自至少两个数据源的输入数据并且响应于来自处理器803或其他适当控制电路的各种选择信号来选择性地输出所接收到的数据。在一些实施例中,多路复用锁存器ML[n]使能基于处理器的系统800来执行器件的芯片上测试。
在一个实施例中,一种存储器包括时钟发生器和多路复用锁存电路。时钟发生器用于响应于选择信号和时钟信号生成第一锁存时钟信号和第二锁存时钟信号。多路复用锁存电路被配置为基于第一锁存时钟信号和第二锁存时钟信号选择第一数据线上的第一数据或第二数据线上的第二数据,并存储和输出所选数据。
在另一实施例中,描述了一种选择存储器中的数据的方法。该方法包括:基于选择信号和时钟信号生成用于选择性地锁存第一数据线集合的第 一锁存时钟信号和用于选择性地锁存第二数据线集合的第二锁存时钟信号。该方法还包括基于第一锁存时钟信号和第二锁存时钟信号进行选择以在锁存器中存储第一数据线集合或第二数据线集合。该方法在第一锁存器中存储来自所选数据线的数据,并基于所选数据输出数据来执行存储器操作。
在另一实施例中,一种存储器包括时钟发生器和多路复用锁存电路。时钟发生器被配置为响应于多路复用选择信号和时钟信号生成第一锁存时钟信号和第二锁存时钟信号。多路复用锁存器被配置为基于第一锁存时钟信号和第二锁存时钟信号选择第一数据线上的第一数据或第二数据线上的第二数据,基于第一锁存时钟信号和第二锁存时钟信号存储和输出所选数据。
上面论述了多个实施例的特征使得本领域技术人员能够更好地理解本发明的各个方面。本领域技术人员应该理解,他们可以容易地以本公开为基础设计或修改用于执行与本文所述实施例相同的目的和/或实现相同优点的其他工艺和结构。本领域技术人员还应该意识到,这些等效结构不背离本发明的精神和范围,并且可以在不背离本发明的精神和范围的情况下做出各种变化、替换和改变。