本發(fā)明總體涉及集成電路,更具體地,涉及多路復用鎖存電路。
背景技術:
在集成電路中,具有許多獨立的器件,諸如,一個或多個存儲器、模數轉換器、處理器和其他類似器件。各個器件不能在制造期間或制造之后被測試。在小工藝節(jié)點(例如,22nm)中,各個器件有時不經過晶圓探針進行測試,因為在一些應用中在這些小工藝節(jié)點處可用的這種探針太過脆弱。如此,在一些應用中,各個器件的晶圓級測試是不太經濟的,而是優(yōu)選芯片上測試。為了執(zhí)行芯片上測試,集成電路的各個器件可以包括多路復用器和鎖存器來選擇數據源以執(zhí)行不同的操作。
技術實現(xiàn)要素:
根據本發(fā)明的一個方面,提供了一種集成電路,包括:時鐘發(fā)生器,被配置為響應于選擇信號和時鐘信號而生成第一鎖存時鐘信號和第二鎖存時鐘信號;以及多路復用鎖存電路,被配置為基于所述第一鎖存時鐘信號和所述第二鎖存時鐘信號來選擇第一數據線上的第一數據或第二數據線上的第二數據,并且存儲和輸出所選數據。
優(yōu)選地,當所述第一數據被選擇為存儲在所述多路復用鎖存電路中時,所述時鐘發(fā)生器被配置為將所述第一鎖存信號設置為在兩個邏輯值之間振蕩并且將所述第二鎖存時鐘信號設置為預定邏輯值。
優(yōu)選地,響應于所述第一數據被選擇為存儲在所述多路復用鎖存電路,所述多路復用鎖存電路被配置為在所述第一鎖存時鐘信號的第一個半周期期間選擇所述第一數據以及在所述第一鎖存時鐘信號的第二個半周期期間存儲所述第一數據。
優(yōu)選地,所述多路復用鎖存電路包括:第一選擇電路,被配置為基于所述第一鎖存時鐘信號來選擇和輸出所述第一數據;以及第二選擇電路,被配置為基于所述第二鎖存時鐘信號來選擇和輸出所述第二數據。
優(yōu)選地,所述多路復用鎖存電路包括第一鎖存器,所述第一鎖存器包括:反相器,被配置為經由輸入端接收所述所選數據;以及三態(tài)反相器,具有耦合至所述反相器的輸出端的輸入端和耦合至所述反相器的輸入端的輸出端。
優(yōu)選地,所述三態(tài)反相器包括:第一開關,被配置為基于所述第一鎖存時鐘信號使能所述三態(tài)反相器;以及第二開關,被配置為基于所述第二鎖存時鐘信號使能所述三態(tài)反相器。
優(yōu)選地,當所述第一數據被選擇為存儲在所述第一鎖存器中時,所述第一開關被配置為在所述第一鎖存時鐘信號的第一個半周期期間使所述三態(tài)反相器失效,以及在所述第一鎖存時鐘信號的第二個半周期期間使能所述三態(tài)反相器,而所述第二開關被配置為在所述第一鎖存時鐘信號的所述第一個半周期期間和所述第一鎖存時鐘信號的所述第二個半周期期間使能所述三態(tài)反相器。
優(yōu)選地,所述多路復用鎖存電路還包括緩沖器,所述緩沖器具有耦合至所述反相器的輸出端的輸入端和耦合至第二鎖存器的輸入端的輸出端。
優(yōu)選地,于所述第一數據被選擇為存儲在所述多路復用鎖存電路中,所述緩沖器被配置為向所述第二鎖存器輸出所述所選數據,并且所述第二鎖存器被配置為在所述第一鎖存時鐘信號的第三個半周期期間存儲所述所選數據。
優(yōu)選地,所述時鐘信號的第一個半周期之后緊跟所述時鐘信號的第二個半周期,并且所述時鐘信號的第二個半周期之后緊跟所述時鐘信號的第三個半周期。
根據本發(fā)明另一方面,提供了一種選擇集成電路中的數據的方法,包括:基于選擇信號和時鐘信號生成第一鎖存時鐘信號和第二鎖存時鐘信號;響應于所述第一鎖存時鐘信號,使第一數據線集合與鎖存器件的集合電耦合,或者響應于所述第二鎖存時鐘信號,使第二數據線集合與所述鎖存器 件的集合電耦合;以及
在所述鎖存器件的集合中存儲來自所選數據線集合的數據。
優(yōu)選地,當所述第一數據被選擇為存儲在第一鎖存器中,將所述第一鎖存時鐘信號設置為在兩個邏輯值之間交替變化而將所述第二鎖存時鐘信號設置為預定邏輯值。
優(yōu)選地,該方法還包括:當所述第一數據被選擇為存儲在所述第一鎖存器中時,在所述第一鎖存時鐘信號的第一個半周期期間將所述第一數據線集合輸出至所述第一鎖存器。
優(yōu)選地,在所述第一鎖存器中存儲所選數據線上的所選數據包括:在所述時鐘信號的第二個半周期期間鎖存來自所述所選數據線的數據。
優(yōu)選地,該方法還包括:在所述時鐘信號的第二個半周期期間,接收所述第一鎖存信號和所述第二鎖存信號并且存儲來自所述所選數據線的數據。
優(yōu)選地,該方法還包括:在所述時鐘信號的第三個半周期期間,在第二鎖存器中存儲來自所述所選數據線的數據。
優(yōu)選地,該方法還包括:在所述時鐘信號的第二個半周期期間,接收所述第一鎖存信號和所述第二鎖存信號并且存儲所述所選數據。
優(yōu)選地,所述時鐘信號的第一個半周期之后緊跟所述時鐘信號的第二個半周期,并且所述時鐘信號的第二個半周期之后緊跟所述時鐘信號的所述第三個半周期。
根據本發(fā)明的又一方面,提供了一種集成電路,包括:時鐘發(fā)生器,被配置為響應于多路復用選擇信號和時鐘信號而生成第一鎖存時鐘信號和第二鎖存時鐘信號;以及多路復用鎖存電路,被配置為基于所述第一鎖存時鐘信號和所述第二鎖存時鐘信號來選擇第一數據線上的第一數據或第二數據線上的第二數據,并且被配置為基于所述第一鎖存時鐘信號和所述第二鎖存時鐘信號來存儲和輸出所選數據。
優(yōu)選地,響應于所述第一數據被選擇為存儲在所述多路復用鎖存電路中,所述時鐘發(fā)生器將所述第一鎖存信號設置為在兩個邏輯值之間振蕩并將所述第二鎖存時鐘信號設置為預定邏輯值。
附圖說明
當閱讀附圖時,根據以下詳細的描述來更好地理解本發(fā)明的各個方面。注意,根據工業(yè)的標準實踐,各個部件沒有按比例繪制。實際上,為了討論的清楚,可以任意地增加或減小各個部件的尺寸。
圖1是根據一些實施例的接口電路的框圖。
圖2是根據一些實施例的用于在圖1的集成電路中生成鎖存時鐘信號的時鐘發(fā)生器的電路圖。
圖3是根據一些實施例的在圖1的集成電路中的圖2的時鐘發(fā)生器的時序圖。
圖4A是根據一些實施例的用于使用圖1的集成電路中的鎖存時鐘信號選擇和鎖存數據的多路復用鎖存器的電路圖,以及圖4B是根據一些實施例的多路復用鎖存電路的操作的時序圖。
圖5A是根據一些實施例的用于使用圖1的集成電路中的鎖存時鐘信號選擇和鎖存數據的另一多路復用鎖存器的電路圖,以及圖5B是根據一些實施例的多路復用鎖存電路的操作的時序圖。
圖6是根據一些實施例的用于使用圖1的集成電路的鎖存時鐘信號選擇和鎖存數據的另一多路復用鎖存器的電路圖。
圖7是根據一些實施例的使用鎖存時鐘信號多路復用和鎖存數據的方法的流程圖。
圖8是實施實施例的基于計算機或處理器的系統(tǒng)的功能框圖。
具體實施方式
以下公開提供了許多不同的用于實施本發(fā)明主題的不同特征的實施例或實例。以下描述部件或配置的具體實例以簡化本發(fā)明。當然,這些僅僅是實例而不用于限制。例如,在以下的描述中,在第二部件上方或之上形成第一部件可以包括第一部件和第二部件被形成為直接接觸的實施例,并且也可以包括可以在第一部件和第二部件形成附件部件使得第一部件和第二部分沒有直接接觸的實施例。此外,本發(fā)明可以在各個實例中重復參考標號和/或字母。這些重復是為了簡化和清楚,其本身并不表示所討論的各 個實施例和/或結構之間的關系。
根據一個或多個實施例的接口電路包括:時鐘發(fā)生器,被配置為生成鎖存時鐘信號;以及多路復用鎖存電路,被配置為基于鎖存時鐘信號來選擇和鎖存數據。多路復用鎖存電路比單獨的多路復用器和鎖存器具有較少的晶體管。此外,多路復用鎖存電路減少了切換延遲的次數并且增大了集成電路的速度。晶體管數量的減少還減少了被集成電路中的接口電路所占用的空間。
圖1是根據一些實施例的接口電路100的框圖。接口電路100從具有N條數據線的數據線集合A以及也具有N條數據線的數據線集合B接收數據,其中N是大于2的正整數。數據線集合A和B被配置為承載不同的數據源,諸如用于正常模式的數據總線和用于測試模式的測試總線。在一些實施例中,接口電路100包括多于兩個的數據線集合。在一些實施例中,在存儲電路中實施接口電路100來用于測試存儲電路。在其他實施例中,接口電路100在集成電路中的器件中使用,其被配置為從用于測試該器件的源處接收數據。
接口電路100包括時鐘發(fā)生器102,其被配置為接收時鐘線CLK上的時鐘信號以及接收選擇線SEL上的選擇信號。基于時鐘信號和選擇信號,時鐘發(fā)生器102在線CLK_A上生成并輸出用于數據線集合A的鎖存時鐘信號SA并且在線CLK_B上生成并輸出用于數據線集合B的鎖存時鐘信號SB。如果選擇數據線A,則鎖存時鐘信號SA承載時鐘信號(其在時鐘信號的每個周期中在兩個邏輯值之間交替),而鎖存時鐘信號SB承載預定的邏輯值。如果選擇數據線B,則鎖存時鐘信號SB承載時鐘信號,而鎖存時鐘信號SA承載預定的邏輯值。然而,由于接口電路100被配置為選擇一個數據集合,所以單個鎖存時鐘信號承載時鐘信號。在一些實施例中,時鐘發(fā)生器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](統(tǒng)稱為“多路復用鎖存器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向存儲器陣列輸出數據以執(zhí)行讀或寫操作。
圖2是根據一些實施例的用于生成鎖存信號SA、SB的可用作圖1的時鐘發(fā)生器102的時鐘發(fā)生器200的電路圖。時鐘發(fā)生器包括第一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。
時鐘發(fā)生器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)半周期(即,邏輯低值)之間振蕩。預定的邏輯值對應于邏輯高值。在一些實施例中,預定的邏輯值是與邏輯低值相關聯(lián)的電壓。在一些實施例中,時鐘信號是另一種類型的連續(xù)波形信號(例如,正弦波、鋸齒波、三角波等)。在一些實施例中,時鐘發(fā)生器200被配置為輸出多于兩個的鎖存時鐘信號,并且時鐘發(fā)生器200被配置為接收附加選擇信號,使得一個鎖存時鐘信號承載時鐘信號而剩余的鎖存時鐘信號承載預定的邏輯值。
圖3是根據一些實施例的集成電路中的時鐘發(fā)生器(諸如圖2的時鐘發(fā)生器200)的實施例的時序圖。為了清楚,本文公開的時序圖被簡化并且沒有示出由于切換而發(fā)生的任何延遲。如果在時間T0處選擇數據線集合A,則線SEL上的選擇信號為邏輯高值。因此,線CLK_A上的鎖存時鐘信號SA承載在邏輯高半周期和邏輯低半周期之間交替的時鐘信號,而線CLK_B上的鎖存時鐘信號SB承載預定的邏輯值。當在時間T1處選擇數據線集合B時,線SEL上的選擇信號為邏輯低值。因此,線CLK_B上的鎖存時鐘信號SB承載在邏輯高半周期和邏輯低半周期之間交替的時鐘信號,而線CLK_A上的鎖存時鐘信號SA承載預定的邏輯值。
圖4A是根據一些實施例的用于使用來自圖2的時鐘發(fā)生器200的鎖存時鐘信號SA和SB來選擇和鎖存數據的多路復用鎖存器400的電路圖。為了清楚,圖4A的電路圖包括標記的線,其與具有相同標記的其他線電連接。多路復用鎖存器400可用作圖1的多路復用鎖存器ML中的一個。多路復 用鎖存器400包括選擇電路402和選擇電路404,它們被配置為基于鎖存時鐘信號SA和SB來選擇需鎖存的數據。多路復用鎖存器400還包括反相器414和三態(tài)反相器416。反相器414與三態(tài)反相器416交叉耦合以形成鎖存電路。反相器414耦合至選擇電路402和404的輸出端。
選擇電路402包括三態(tài)反相器406和反相器408。三態(tài)反相器406具有耦合至數據線集合A的數據線A[n]的輸入端。線CLK_A耦合至三態(tài)反相器406的低使能端和反相器408的輸入端。反相器408的輸出端耦合至三態(tài)反相器406的高使能端。反相器408的輸出端還經由線CLKB_A耦合至三態(tài)反相器416。三態(tài)反相器406的輸出端耦合至選擇電路402的輸出端。
選擇電路404與選擇電路402相同,除了三態(tài)反相器410具有耦合至數據線集合B的數據線B[n]的輸入端,線CLK_B耦合至三態(tài)反相器410的低使能端和反相器412的輸入端,并且反相器412的輸出端耦合至三態(tài)反相器410的高使能端。反相器412的輸出端還經由線CLKB_B耦合至三態(tài)反相器416。三態(tài)反相器410的輸出端耦合至選擇電路404的輸出端。
反相器414的輸入端耦合至選擇電路402和404的輸出端。反相器414的輸出端耦合至三態(tài)反相器416的輸入端,并且三態(tài)反相器416的輸出端還耦合至反相器414的輸入端。反相器414的輸出端與多路復用鎖存器400的輸出端連接。
三態(tài)反相器416包括PMOS晶體管418,其源極端耦合至高電位電壓源VDD,柵極端經由線CLKB_A耦合至反相器408的輸出端,并且漏極端耦合至PMOS晶體管420的源極端。PMOS晶體管420還包括經由線CLKB_B耦合至反相器412的輸出端的柵極端和耦合至PMOS晶體管422的源極端的漏極端。PMOS晶體管422還包括耦合至反相器414的輸出端的柵極端以及耦合至反相器414的輸入端的漏極端。
三態(tài)反相器416還包括NMOS晶體管424,其漏極端耦合至反相器414的輸入端,柵極端耦合至反相器414的輸出端,以及源極端耦合至NMOS晶體管426的漏極端。NMOS晶體管426還包括耦合至線CLK_A的柵極端以及耦合至NMOS晶體管428的漏極端的源極端。NMOS晶體管428還 包括耦合至線CLK_B的柵極端以及耦合至低電位電壓源VSS的源極端。
三態(tài)反相器416包括由PMOS晶體管418和420形成的兩個低使能端。當三態(tài)反相器416的輸入為邏輯低值時,如果PMOS晶體管418或PMOS晶體管420截止,則PMOS晶體管422不接收和輸出高電壓電位VDD。然而,當PMOS晶體管418和420均導通且PMOS晶體管422從三態(tài)反相器414的輸出端接收邏輯低值時,PMOS晶體管418至422將高電壓電位VDD耦合至三態(tài)反相器416的輸出端(即,PMOS晶體管422的漏極),從而輸出邏輯高值。
三態(tài)反相器416還包括由NMOS晶體管426和428形成的兩個高使能端。如果NMOS晶體管426或NMOS晶體管428截止,則當三態(tài)反相器416的輸入為邏輯高值時,NMOS晶體管424不接收并且不輸出低電壓電位VSS。當NMOS晶體管426和428均導通且NMOS晶體管424從反相器414的輸出端接收邏輯高值時,NMOS晶體管424至428將低電壓電位VSS耦合至三態(tài)反相器416的輸出端(即,NMOS晶體管424的漏極),從而輸出邏輯低值。
為了描述多路復用鎖存器400的操作,數據線集合A的所選數據線A[n]上的輸入數據被稱為數據DA,并且數據線集合B的所選數據線B[n]上的輸入數據被稱為數據DB。當數據DA和數據DB在多路復用鎖存器400中被反相時,數據DA和數據DB被稱為數據DBA和數據DBB。此外,多路復用鎖存器400內的其他信號可以如下所述被反相以承載互補信號。
圖4B是根據一些實施例的圖4A的多路復用鎖存器400和圖2的時鐘發(fā)生器200在各個節(jié)點處的波形的時序圖。
在操作中,當在時間T0處選擇數據線集合A時,鎖存時鐘信號SA是被輸入至三態(tài)反相器406的低使能端的時鐘信號。反相器408還接收線CLK_A上的鎖存時鐘信號SA,將線CLK_A上的所述時鐘信號反相,并經由線CLKB_A將反相的鎖存時鐘信號SBA輸出至三態(tài)反相器406的高使能端。
三態(tài)反相器406的輸出端被配置為根據高使能端和低使能端處的信號而使能。當三態(tài)反相器406的低使能端接收邏輯低值且三態(tài)反相器406的 高使能端接收邏輯高值時,三態(tài)反相器406被使能以將三態(tài)反相器406的輸入端處的邏輯值反相為三態(tài)反相器406的輸出端處的反相邏輯值。當三態(tài)反相器406的低使能端接收邏輯高值且三態(tài)反相器406的高使能端接收邏輯低值時,三態(tài)反相器406失效且在三態(tài)反相器406的輸出端處具有高阻狀態(tài)。
因此,當鎖存時鐘信號SA在邏輯低半周期中且反相的鎖存時鐘信號SBA在邏輯高半周期中時,三態(tài)反相器406的低使能端接收邏輯低值且高使能端接收邏輯高值,從而使得三態(tài)反相器406接收數據DA,將數據DA反相為數據DBA,并輸出數據DBA。另一方面,當鎖存時鐘信號SA為邏輯高半周期中的時鐘信號且反相的鎖存時鐘信號SBA在邏輯低半周期中時,三態(tài)反相器406的低使能端接收邏輯高值且高使能端接收邏輯低值,從而使三態(tài)反相器406的輸出端失效。
此外,當選擇數據線集合A以輸入數據(即,選擇信號表示數據線集合A被選擇)時,線CLK_B上的鎖存時鐘信號SB為邏輯高值。在這種情況下,選擇電路404被配置為失效。具體地,邏輯高值被輸入值三態(tài)反相器410的低使能輸入端。此外,反相器412接收承載高邏輯值的鎖存時鐘信號SB,將邏輯高值反相為低邏輯值,并將承載邏輯低值的反相時鐘信號SBB輸出至高使能端,從而使得三態(tài)反相器410失效且在輸出端處具有高阻狀態(tài)。因此,線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處,三態(tài)反相器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輸出至三態(tài)反相器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截止并使三態(tài)反相器406失效。在時間T2處,線CLK_B上的鎖存時鐘信號SB的邏輯高半周期將導通NMOS晶體管428且線CLKB_B上的反相鎖存時鐘信號SBB的邏輯低半周期將導通PMOS晶體管420,從而使得三態(tài)反相器416輸出數據DBB。
反相器414和三態(tài)反相器406交叉耦合并且形成反饋回路來在多路復用鎖存器400中鎖存數據DA或數據DB。三態(tài)反相器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被稱為半鎖存器,因為鎖存操作在時鐘信號的上升沿觸發(fā)。在其他實施例中,時鐘信號的上升沿和下降沿用于觸發(fā)鎖存操作。在一些實施例中,多路復用鎖存器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與三態(tài)反相器522交叉耦合,從而形成第一鎖存器。三態(tài)反相器522具有耦合至線CLKALLB的高使能端和耦合至線CLKALL的低使能端。
反相器520的輸出端耦合至三態(tài)反相器524的輸入端。三態(tài)反相器524具有耦合至線CLKALLB的高使能端和耦合至線CLKALL的低使能端。反相器524的輸出端耦合至反相器528的輸入端,其中反相器528與三態(tài)反相器530交叉耦合。反相器528和三態(tài)反相器530形成第二鎖存器。三態(tài)反相器530具有耦合至線CLKALL的高使能端和耦合至線CLKALLB的低 使能端。反相器528的輸出端與多路復用鎖存器500的輸出端連接。
圖5B是根據一些實施例的圖5A的多路復用鎖存器500和圖2的時鐘發(fā)生器200在各個節(jié)點處的波形的時序圖。
在多路復用鎖存器500的操作期間,NAND門514被配置為接收鎖存時鐘信號SA和SB,對鎖存時鐘信號SA和SB執(zhí)行邏輯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輸出至三態(tài)反相器522和三態(tài)反相器524。
在時間T1處,選擇電路504在鎖存時鐘信號SB的邏輯低半周期期間被使能,從而使得反相器510反相數據DB并將數據DBB輸出至反相器520。選擇電路504在線CLK_B上的鎖存時鐘信號SB的邏輯高半周期期間失效。在時間T1處,反相器520從選擇電路504接收數據DBB,將數據DBB反相為數據DB,并將數據DB輸出至三態(tài)反相器522和三態(tài)反相器524。因此,反相器520在第一個半周期540期間接收并輸出數據DB。
在時間T1處,三態(tài)反相器522的低使能端接收線CLKALL上的時鐘信號SCLOCK的邏輯高半周期,并且三態(tài)反相器522的高使能端接收線CLKALLB上的時鐘信號SBCLOCK的邏輯低半周期,從而使三態(tài)反相器522失效。三態(tài)反相器522將在每個CLKALL的邏輯高半周期(高態(tài))期間失效。
在時間T2處,三態(tài)反相器522的低使能端接收線CLKALL上的時鐘信號SCLOCK的邏輯低半周期,并且三態(tài)反相器522的高使能端接收時鐘信號SBCLOCK的邏輯高半周期,從而使能三態(tài)反相器522。因此,在時間T2處,三態(tài)反相器522在第二個半周期542期間接收數據DB,將數據DB反 相為數據DBB,并且輸出數據DBB。三態(tài)反相器524還將在時間T2處使能以接收來自反相器520的數據DB,將數據DB反相為數據DBB,并將數據DBB傳輸至由反相器528和三態(tài)反相器530形成的第二鎖存器。三態(tài)反相器524被配置為緩沖第二鎖存器和第一鎖存器。三態(tài)反相器530的高使能端接收時鐘信號SCLOCK的邏輯低半周期,并且三態(tài)反相器530的低使能端接收時鐘信號SBCLOCK的邏輯高半周期,從而使三態(tài)反相器530失效。
在時間T3處,三態(tài)反相器530的高使能端接收時鐘信號SCLOCK的邏輯高半周期,并且三態(tài)反相器530的低使能端接收時鐘信號SBCLOCK的邏輯低半周期,從而使能三態(tài)反相器530。在時間T3處,三態(tài)反相器530在第三個半周期544期間接收數據DB,將數據DB反相為數據DBB,并輸出數據DBB。
多路復用電路500被稱為全鎖存器,因為時鐘信號的下降沿和時鐘信號的上升沿被用于觸發(fā)鎖存操作以在完全存儲其中的數據DA或數據DB。在一些實施例中,除接收鎖存時鐘信號之外,多路復用電路500接收線CLK上的時鐘信號。在這種可選實施例中,省略NAND門514以及在線CLKALL和CLKALLB上生成時鐘信號的操作。
圖6是根據一些實施例的用于使用集成電路中的鎖存時鐘信號來選擇和鎖存數據的另一多路復用鎖存器600的電路圖。多路復用鎖存器600與多路復用鎖存器400類似,除了包括三態(tài)反相器630、反相器644和三態(tài)反相器646,其中反相器644的輸出端耦合至多路復用鎖存器600的輸出端,并且參考標號增加了200。
多路復用鎖存器600包括選擇電路602和選擇電路604。選擇電路602與選擇電路402相同,除了反相器608的輸出端還經由線CLKB_A耦合至三態(tài)反相器630和646,并且參考標號增加了200。選擇電路604與選擇電路404相同,除了反相器612的輸出端還經由線CLKB_B耦合至三態(tài)反相器630和646,并且參考標號增加了200。多路復用鎖存器600包括由反相器614和三態(tài)反相器616形成的交叉耦合鎖存器,其與由反相器414和三態(tài)反相器416形成的交叉耦合鎖存器相同,除了參考標號增加了200,以及除了反相器614的輸出不與多路復用鎖存器的輸出端連接。
反相器614的輸出端和三態(tài)反相器616的輸入端還耦合至三態(tài)反相器630的輸入端。三態(tài)反相器630與三態(tài)反相器616相同,除了具有不同的輸出以及參考標號增加了14。
三態(tài)反相器630的輸出端耦合至反相器644的輸入端。反相器644與三態(tài)反相器646交叉耦合以形成第二鎖存電路。反相器644的輸出端耦合至三態(tài)反相器646的輸入端,并且三態(tài)反相器646的輸出端耦合至反相器644的輸入端。反相器644的輸出端還連接至輸出線OUT以從多路復用鎖存器600輸出數據。
三態(tài)反相器646包括PMOS晶體管648,其具有耦合至高電位電壓源VDD的源極端、耦合至線CLK_A的柵極端和耦合至PMOS晶體管650的源極端的漏極端。PMOS晶體管650還包括耦合至線CLKB_B的柵極端和耦合至PMOS晶體管652的源極端的漏極端。PMOS晶體管652包括耦合至反相器646的輸出端的漏極端和耦合至反相器646的輸入端的柵極端。三態(tài)反相器646還包括NMOS晶體管654,其具有耦合至反相器646的輸出端的漏極端、耦合至反相器646的輸入端的柵極端和耦合至NMOS晶體管656的漏極端的源極端。NMOS晶體管656還包括耦合至線CLKB_A的柵極端和耦合至NMOS晶體管658的漏極端的源極端。NMOS晶體管658還包括耦合至線CLK_B的柵極端和耦合至低電位電壓源(例如,地、VSS等)的源極端。
三態(tài)反相器646還包括PMOS晶體管660,其具有耦合至高電位電壓源VDD的源極端、耦合至線CLKB_A的柵極端和耦合至PMOS晶體管662的源極端的漏極端。PMOS晶體管662還包括耦合至線CLK_B的柵極端和耦合至PMOS晶體管652的源極端的漏極端。
三態(tài)反相器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和三態(tài)反相器616被配置作為第一鎖存器來接收數據、存儲數據并且將數據輸出至三態(tài)反相器630。三態(tài)反相器630被配置作為第二鎖存器(由反相器644和三態(tài)反相器646來實現(xiàn))的緩沖器。具體地,三態(tài)反相器630在邏輯高半周期期間接收數據D并將數據輸出至反相器644。反相器644接收數據、存儲數據并且輸出數據。
三態(tài)反相器646被配置為在鎖存時鐘信號SA和SB的邏輯高半周期和邏輯低半周期期間使能。具體地,PMOS晶體管660和662以及NMOS晶體管664和666在CLK_A上的鎖存時鐘信號SA的邏輯高半周期期間使能三態(tài)反相器646。PMOS晶體管648和650以及NMOS晶體管656和658在CLK_B上的鎖存時鐘信號SB的邏輯高半周期期間使能反相器646。PMOS晶體管660和662以及NMOS晶體管664和666在CLK_B上的鎖存時鐘信號SB的邏輯低半周期期間使能三態(tài)反相器646。PMOS晶體管648和650以及NMOS晶體管656和658在CLK_A上的鎖存時鐘信號SA的邏輯低半周期期間使能反相器646。
三態(tài)反相器646是全鎖存器,其被配置為在時鐘信號的邏輯高半周期和邏輯低半周期期間均鎖存數據。多路復用鎖存器600被配置為比典型的全鎖存器更快地鎖存數據,因為與典型的全鎖存器相比,多路復用鎖存器600缺少附加的多路復用器級,因此節(jié)省了典型全鎖存器的附加多路復用器級中的延遲時間。
圖7是根據一個或多個實施例的用于使用鎖存時鐘信號來多路復用和鎖存集成電路中的數據的方法700的流程圖。在一些實施例中,方法700可應用于結合圖2、圖4A、圖5A和/或圖6示出的電路。
該方法開始于操作705,其中,時鐘發(fā)生器200接收線CLK上的時鐘信號以及線SEL上的選擇信號。線SEL上的選擇信號表示待選以輸入至集成電路的器件中的數據線集合。在一些實施例中,器件是存儲器陣列、模 數轉換器(ADC)或處理器。該方法繼續(xù)至操作710,時鐘發(fā)生器200在線CLK_A上生成鎖存時鐘信號SA而在線CLK_B上生成鎖存時鐘信號SB。每個數據線集合都是用于該器件的不同數據源。在生成鎖存時鐘信號SA和SB之后,該方法繼續(xù)到操作715,多路復用鎖存器ML[n]基于鎖存時鐘信號SA和SB來選擇數據線A[n]或B[n]。該方法繼續(xù)到操作720,多路復用鎖存器ML[n]將來自所選數據線集合的數據存儲在并輸出在線OUT[n]上。該方法存儲來自所選數據線集合的數據,直到所選數據線集合提供新數據或者直到選擇不同的數據線集合來輸入器件為止。
圖8是實現(xiàn)一實施例的基于處理器的系統(tǒng)800的功能框圖。
在一些實施例中,基于處理器的系統(tǒng)被實施為單個“芯片上系統(tǒng)”?;谔幚砥鞯南到y(tǒng)800包括:通信器件,諸如總線801,用于在基于處理器的系統(tǒng)800的各部件之間傳輸信息和/或指令;以及存儲器805,用于存儲數據。處理器803連接至總線801以獲取用于執(zhí)行和處理例如存儲在存儲器805中的信息的指令。在一些實施例中,處理器803還通過與一個或多個專用部件(諸如,一個或多個數字信號處理器(DSP)、一個或多個ADC、一個或多個數模轉換器(DAC)或者一個或多個專用集成電路(ASIC))一起來執(zhí)行特定的處理功能和任務?;谔幚砥鞯南到y(tǒng)800內的器件(諸如存儲器805或其他部件)包括多路復用鎖存器ML[n]以接收來自至少兩個數據源的輸入數據并且響應于來自處理器803或其他適當控制電路的各種選擇信號來選擇性地輸出所接收到的數據。在一些實施例中,多路復用鎖存器ML[n]使能基于處理器的系統(tǒng)800來執(zhí)行器件的芯片上測試。
在一個實施例中,一種存儲器包括時鐘發(fā)生器和多路復用鎖存電路。時鐘發(fā)生器用于響應于選擇信號和時鐘信號生成第一鎖存時鐘信號和第二鎖存時鐘信號。多路復用鎖存電路被配置為基于第一鎖存時鐘信號和第二鎖存時鐘信號選擇第一數據線上的第一數據或第二數據線上的第二數據,并存儲和輸出所選數據。
在另一實施例中,描述了一種選擇存儲器中的數據的方法。該方法包括:基于選擇信號和時鐘信號生成用于選擇性地鎖存第一數據線集合的第 一鎖存時鐘信號和用于選擇性地鎖存第二數據線集合的第二鎖存時鐘信號。該方法還包括基于第一鎖存時鐘信號和第二鎖存時鐘信號進行選擇以在鎖存器中存儲第一數據線集合或第二數據線集合。該方法在第一鎖存器中存儲來自所選數據線的數據,并基于所選數據輸出數據來執(zhí)行存儲器操作。
在另一實施例中,一種存儲器包括時鐘發(fā)生器和多路復用鎖存電路。時鐘發(fā)生器被配置為響應于多路復用選擇信號和時鐘信號生成第一鎖存時鐘信號和第二鎖存時鐘信號。多路復用鎖存器被配置為基于第一鎖存時鐘信號和第二鎖存時鐘信號選擇第一數據線上的第一數據或第二數據線上的第二數據,基于第一鎖存時鐘信號和第二鎖存時鐘信號存儲和輸出所選數據。
上面論述了多個實施例的特征使得本領域技術人員能夠更好地理解本發(fā)明的各個方面。本領域技術人員應該理解,他們可以容易地以本公開為基礎設計或修改用于執(zhí)行與本文所述實施例相同的目的和/或實現(xiàn)相同優(yōu)點的其他工藝和結構。本領域技術人員還應該意識到,這些等效結構不背離本發(fā)明的精神和范圍,并且可以在不背離本發(fā)明的精神和范圍的情況下做出各種變化、替換和改變。