專利名稱:可編程邏輯器件中多行塊支持的行級冗余的制作方法
技術(shù)領(lǐng)域:
0001本發(fā)明涉及具有冗余電路的可編程邏輯器件。
背景技術(shù):
0002可編程邏輯器件("PLD")(有時也被稱為CPLD, PAL, PLA, FPLA,EPLD, EEPLD, LCA, FPGA或其它名稱)是一種眾所周知的集成電路,其提供固定集成電路的優(yōu)點,并且具有定制集成電路的靈活性。在本領(lǐng)域里這種器件是眾所周知的,并且通常提供一種"現(xiàn)成的"器件,其至少有一部分可以通過編程來滿足用戶的特定需求。專用集成電路("ASIC")傳統(tǒng)上是固定集成電路,但是,可以提供一種ASIC,其一部分或者某些部分是可編程的;因此,就可能提供一種具有ASIC和PLD二者的優(yōu)點的集成電路器件。在此使用的術(shù)語PLD可以被認為范圍廣泛到包括前述這種器件。
0003可編程邏輯器件通常包括邏輯元件塊,有時也被稱為邏輯陣列塊("LAB";還可以被稱為別的名字,如"可配置邏輯塊"或"CLB")。邏輯元件("LE",還可以被稱為別的名字,如"邏輯單元"),其可包括査找表(LUT)或積項、進位鏈、寄存器和其它元件。LAB (包括多個LE)可以連接至水平線和垂直線,這些線可能擴展或不擴展PLD的長度。
0004PLD具有可以被編程或重復(fù)編程的配置元件。配置元件可以實現(xiàn)為R細位、觸發(fā)器、EEPROM單元或其它存儲元件。放置新數(shù)據(jù)到配置元件中就編程或重新編程PLD的邏輯功能和相關(guān)路由(布線)通道?,F(xiàn)場可編程的配置元件通常實施為RAM (隨機存取存儲器)單元(有時也稱為"CRAM"或"配置RAM")。然而,很多種可編程元件可以被使用,包括靜態(tài)或動態(tài)隨機存取存儲器、電可擦除只讀存儲器、閃存、熔絲和反熔絲可編程連接。配置元件的編程可以通過器件制造過程中的掩膜編程來實施。雖然相對于前述的一些現(xiàn)場可編程選項而言,掩膜編程有一些劣勢,但是它在某些大批量的應(yīng)用中是有益的。為了在此的目的,通用術(shù)語"可配置元件"用來指任何可編程元件,其可以被配置以確定通過其它的PLD元件間的路由來實現(xiàn)的功能。
0005具有冗余電路的PLD可以幫助提高產(chǎn)品的產(chǎn)量,這通過在器件上提供多個區(qū)域來實現(xiàn),所述區(qū)域可以通過使用冗余電路來修復(fù)?;谛械娜哂喾桨竿ǔT谶壿嬰娐逢嚵兄?如一個LAB陣列和相關(guān)布線)提供至少一個冗余或"備用"行。基于行的冗余方案在被共同轉(zhuǎn)讓的美國專利6,201,404 (專利名稱為"具有冗余電路的可編程邏輯器件(Programmable Logic Device withRedundant Circuitry)")和6,344,755 (專利名稱為"具有冗余電路的可編程邏輯器件(Programmable Logic Device with Redundant Circuitry)") 中被描述,并且在被共同轉(zhuǎn)讓的美國專利6,965,249 (專利名稱為"具有冗余電路的可編禾呈邏車葺器件(Programmable Logic Device with Redundant Circuitry)")和7, 180, 324 (專利名稱為"可編程邏輯器件中的冗余結(jié)構(gòu)和方法(RedundancyStructures and Methods in a Programmable Logic Device)") 中被進~"步描
述。通常,可修復(fù)的區(qū)域可以在備用行上如此被定義以至于如果邏輯陣列的一行是有缺陷的,那么備用行被激活并且從備用行到缺陷行中的每一行代替下一個更高行,從而修復(fù)了缺陷區(qū)域。
發(fā)明內(nèi)容
0006根據(jù)一個多行塊實例,位于多行塊內(nèi)行間的邏輯連接具有冗余邏輯連接,其容許另一個行的元件來代替塊內(nèi)一行的所有元件,包括代替行分段的所有邏輯連接。這就容許多行塊中的行冗余,甚至在內(nèi)部邏輯連接在塊內(nèi)的行之間延伸的情況。此外,在一行的元件不同于要代替的行的元件的情況下,可配置元件被用來實現(xiàn)其預(yù)定(缺省)功能,也實現(xiàn)在上面的行中對應(yīng)元件的功能。這樣,整個行可以被代替,即使其延伸貫穿多行塊。
0007在一個實例中,可編程邏輯器件包括通過可配置連接互聯(lián)的多行元件;多個行冗余電路,其用非缺陷行來代替缺陷行; 一個多行元件塊,其包括第一行、第二行和第三行中的每個元件,位于第一行的第一元件與第二行的第二元件之間的內(nèi)部邏輯連接;在多行塊中的內(nèi)部冗余連接,內(nèi)部冗余連接包括一個在第三行的第三元件和所述第一元件之間的內(nèi)部冗余邏輯連接,以在第二元件有缺陷時來代替第二元件和第一元件之間的內(nèi)部邏輯連接。
0008在另一個實例中, 一種運行包括多行塊的多行可編程邏輯器件的方法包括確定可編程邏輯器件的行是有缺陷的;重新路由輸入信號以及來自缺陷行的輸出信號到一個相鄰行;在貫穿缺陷行和相鄰行的多行塊中,用位于相鄰行和鄰近行之間的內(nèi)部邏輯連接來代替位于缺陷行和鄰近行之間的內(nèi)部邏輯連接;以及重新配置相鄰行的元件來實現(xiàn)缺陷行的功能。
0009在另一個實例中,可編程邏輯器件包括多行元件;多個行冗余電路,其用非缺陷行代替缺陷行; 一個貫穿多個行的多行數(shù)字信號處理塊,其實現(xiàn)不同功能,并且在多行塊內(nèi)的不同行中使用不同的物理元件;位于多行塊中行間的多個內(nèi)部邏輯連接,多行塊有多個冗余內(nèi)部邏輯連接,以在行冗余電路代替多行中的一行時,代替多個內(nèi)部邏輯連接。
0010本發(fā)明可通過參考以下描述并結(jié)合附圖得到最佳的理解,這些附圖
圖解說明了本發(fā)明的特定實施例。
0011圖l展示一個包括多行數(shù)字信號處理(DSP)塊的可編程邏輯器件的框圖。
0012圖2示出一個被輸入和輸出冗余電路代替的LAB缺陷行的實例。0013圖3A示出一個多行塊的實例,在此傳統(tǒng)的行代替不重新生成多行塊的內(nèi)部邏輯連接,且各個行有不同的元件。
0014圖3B示出一個有多行塊的可編程邏輯器件,在此信號通過位于多行
塊任一個邊上的額外冗余電路被重新路由。
0015圖3C示出圖3B中的額外冗余電路的更為詳細的圖。
0016圖4A示出一個從行0的元件至行1的元件的內(nèi)部邏輯連接。
0017圖4B示出代替圖4A中的內(nèi)部邏輯連接的冗余內(nèi)部邏輯連接。
0018圖4C示出當(dāng)行1有缺陷時被使用的冗余邏輯連接。
0019圖4D示出當(dāng)行O有缺陷時被使用的冗余邏輯連接。
0020圖5A示出從行1元件至行0元件的一個內(nèi)部邏輯連接。
0021圖5B示出代替圖5A中的內(nèi)部邏輯連接的冗余內(nèi)部邏輯連接。
0022圖5C示出當(dāng)行l(wèi)有缺陷時被使用的冗余邏輯連接。
0023圖5D示出當(dāng)行O有缺陷時被使用的冗余邏輯連接。
0024圖6示出具有行間的冗余內(nèi)部邏輯連接的一個兩行高的多行塊,一
行中的可配置元件代替上面行的元件。
0025圖7A示出不同行中有不同功能的四行高的多行塊中的元件。0026圖7B示出四行高的多行塊中的元件,該多行塊具有可配置元件以便
7每個行具有能夠?qū)崿F(xiàn)缺省功能以及上面行元件的功能的元件。
0027圖8示出一個多行塊的特定實例,通過使用兩個不同的行分段,其能實現(xiàn)36*36乘法。
0028圖9示出一個可配置行分段的實例,其是可配置的,以象圖8中行分段中的任一個那樣實現(xiàn)。
0029圖10示出圖9使用兩個加法器的可配置行分段的實施例。
0030圖11示出圖9只使用一個加法器的可配置行分段的另一個實施例。
具體實施例方式
0031本發(fā)明現(xiàn)在將參照附圖中圖示說明的各種實施例進行具體說明。在接下來的描述中,闡明具體細節(jié)來提供對本發(fā)明的深入理解。但是很明顯,對于本領(lǐng)域的技術(shù)人員,在不使用本文闡明的某些實施細節(jié)的情況下也可實現(xiàn)本發(fā)明。應(yīng)該理解的是,為了避免不必要地模糊本發(fā)明,本文沒有對眾所周知的操作進行細節(jié)描述。此外,應(yīng)該注意的是,本發(fā)明的技術(shù)可以用于各種系統(tǒng)或電子器件,如可編程器件與專用集成電路(ASIC)器件。
0032圖l示出一個可編程邏輯器件(PLD)的一個框圖實例。PLD10包括一個基于二維行列的結(jié)構(gòu),其包括排列在芯片外圍周圍的多個輸入輸出元件(IOE) 12、貫穿器件分組成行和列的多個邏輯陣列塊(LAB) 14、位于某些LAB14之間分組成列的隨機存取存儲器(RAM)塊16、貫穿器件分組成列的數(shù)字信號處理(DSP)塊18、貫穿器件且位于某些LAB 14之間的分組成列的第二RAM塊20,和一個或更多個M-RAM存儲塊22,每個處于貫穿器件的不同位置。
0033LAB 14包括預(yù)定數(shù)目的邏輯模塊(圖中不可見)。在各種實施例中,邏輯模塊的數(shù)目可從兩個到十六個或者更多變化。RAM塊16為具有預(yù)定數(shù)目的位和額外奇偶校驗位的簡單雙通道(雙端口)存儲器塊。RAM塊16為器件提供專用的簡單雙通道或單通道存儲器。DSP塊18被提供用來實現(xiàn)數(shù)字信號處理功能,例如,有限沖擊響應(yīng)(FIR)與無限沖擊響應(yīng)(IIR)濾波器。第二RAM塊20為具有存儲位和奇偶校驗位的真雙通道存儲塊。最后,M-RAM存儲塊22為具有存儲位和奇偶校驗位的大型真雙通道存儲塊。DSP塊18和M-RAM存儲塊22都貫穿LAB的多個行,并且可以被認為是多行塊。應(yīng)該注意PLD IO僅為本發(fā)明的示例,絕不應(yīng)該解釋為對本發(fā)明的限制。還應(yīng)該注意的是,這里描述的本發(fā)明的實施,不要求PLD具有上面提到的全部功能塊。如RAM塊16、 DSP塊18、 RAM塊20以及M-RAM塊22的這些功能塊是可選的,并且不是實施本發(fā)明所必需的。
0034圖2示出具有LAB行的PLD中的行級冗余的示例,但是該PLD不具有任何的多行塊。當(dāng)PLD中的一行為缺陷行時,例如如圖所示,因為行1中的LAB 24為有缺陷的,所以缺陷行l(wèi)被替換,盡管存在缺陷行,但是容許PLD的正常運行。尤其要指出的是,在圖2中,缺陷行1由其緊鄰的行2來代替。輸入和輸出行冗余電路26、 28能夠從一行到下一行將通信重新路由,以便對應(yīng)于行l(wèi)的I/0焊接點發(fā)送或接收的信號被發(fā)送給行2。在一個包含缺陷行的陣列中,輸入和輸出行冗余電路重新路由所有的通信來去缺陷行下面的行,以便行功能住下推一行。在這種陣列中提供一個或更多個冗余行以便所有輸入和輸出通信被發(fā)送到正在工作的行。這種冗余電路的一個優(yōu)勢是提高產(chǎn)量。導(dǎo)致PLD被認為是有缺陷的行中的缺陷可以被旁路,并且PLD能夠正常運行。對冗余電路需要增加的任何面積可以由這種冗余行提供的增加的產(chǎn)量而被補償。
0035盡管圖2中所示的方案由于在行中只包含有LAB塊,其可以良好工作,但是多行塊是更有問題的。尤其是,如DSP塊的這種多行塊可能具有行間的內(nèi)部邏輯連接,以容許在超過一行上實現(xiàn)復(fù)雜功能。圖3A示出一個包含有多行DSP塊30的陣列示例。內(nèi)部互聯(lián)32在行1與行0的元件之間延伸。內(nèi)部互聯(lián)32用來容許在兩行或更多行上實現(xiàn)復(fù)雜計算,并且一般支持相對大數(shù)據(jù)量的快速通信。例如,多行塊通常在大的多位操作數(shù)上執(zhí)行操作,并且重要的是,當(dāng)操作分布在多行時,將這種大的多位數(shù)從一行傳到另一行。因此,這種內(nèi)部互聯(lián)一般構(gòu)成多位的數(shù)據(jù)總線(例如,18位寬總線)。如果輸入和輸出行冗余電路34、 36實現(xiàn)位替換,并且如圖所示針對行1的所有信號被重新路由到了行2,那么DSP塊中位于行0與行1之間的內(nèi)部互聯(lián)就不被替換,并且DSP塊不必按所要求的運行。因此,圖3A圖示說明了為什么傳統(tǒng)行冗余一般不對貫穿多行塊的行起作用。圖3A還示出了鏈信號,其從一行傳送到下一行,提供邏輯塊的行間的連接。在多行塊的情況下,這些可以是多位的操作數(shù),如18位。雖然LAB還可以具有鏈信號,但是傳統(tǒng)上這些是單個位承載信號。
0036圖3A中圖示的另一個問題就是在多行塊中不同行里實現(xiàn)的功能可能在行與行之間是不同的。通常,由于DSP塊的本性,DSP塊中的內(nèi)部元件有固定的功能,并且不是以LAB的方式來進行配置。例如,在圖3A中,行l(wèi)包含具有功能A和C的元件,而行2包含具有功能A和B的元件。所以行1不能直接用行2來替換。
0037如圖3B所示,在一個陣列中提供冗余的方法是包含多行塊。圖中示出了加在LAB和多行塊41之間的額外冗余多路復(fù)用器38、 40。額外冗余多路復(fù)用器38、 40從一行到鄰近行來重新路由通信。具體是,如圖3B所示,額外冗余多路復(fù)用器38、 40容許通信被重新路由到貫穿一個缺陷行的多行塊。在此,由于有缺陷的LAB塊43,使得行O是有缺陷的。所以,輸入和輸出冗余電路44、 46改址(改向)從行0至行1的輸入和輸出通信。輸入和輸出冗余電路也改址從行l(wèi)到行2的輸入和輸出通信。任何較低行可以以這種方式重新路由。額外冗余電路然后為多行塊重新路由通信從行1回到行0,為多行塊重新理由通信從行2回到行1。因此,即使在行l(wèi)中存在缺陷,但是不是所有的行l(wèi)部分都被替換。在多行塊中的行l(wèi)部分仍然被使用。當(dāng)沒有缺陷出現(xiàn)時,多行塊42接收它應(yīng)該接收的同樣的輸入信號。
0038圖3C示出重新路由來自多行塊42任一邊的通信的詳細框圖。尤其是,圖3C示出額外冗余電路38、 40,其包括冗余多路復(fù)用器46a d及其連接,這容許通信被重新路由向上通過在多行塊42的一行。每一個輸入和輸出具有一個冗
余多路復(fù)用器來從同一行或鄰近行中選擇一個輸入或輸出。箭頭示出來自路由輸入?yún)^(qū)域48以及路由輸出區(qū)域50 (在任一邊連接到LAB區(qū)域)中的行i+l的通信
流,通信流一直到多行塊中的行i。
0039盡管圖3B C的方案提供了冗余,容許具有有缺陷LAB的邏輯陣列的運行,但是缺陷仍然可能出現(xiàn)在多行塊中,而且圖3B C的方案沒有提供一種處理這種缺陷的機制。同時,這種方案需要額外的冗余電路,額外的冗余電路占有寶貴的空間并增加了成本。
0040另一種可替換的方法是提供具有內(nèi)部冗余能力的多行塊,內(nèi)部冗余能力容許行分段的替代(在此使用的術(shù)語"行分段"用來描述在多行塊內(nèi)的行的那部分)。具有這種內(nèi)部冗余的多行塊的示例有兩個方面值得注意。第一,冗余內(nèi)部邏輯連接被提供在多行塊中,其容許行之間的任何內(nèi)部邏輯連接的替換。第二,在鄰近行中功能間存在不同的情況下,提供可以實現(xiàn)它們的預(yù)定功能(當(dāng)無缺陷出現(xiàn)時的缺省情況)的可配置元件,并且可配置元件還可以被重新配置來實現(xiàn)鄰近行中元件的功能。
0041圖4A示出一個每行(盡管實際多行塊可能有超過三行,每行超過兩個元件,但是圖中示出兩個元件的三行)顯示兩個元件的多行塊的內(nèi)部結(jié)構(gòu)的實例。圖4A示出位于行0與行1之間的一個邏輯連接52。邏輯連接從行O中一個元件發(fā)送數(shù)據(jù)向下到行l(wèi)中的下一個元件。這種連接在如DSP塊這樣的多行塊中是常見的,在DSP塊中邏輯信號不僅從行中的一個元件傳送到同行的下一個元件,還從一行中的一個元件傳送到鄰近行中的一個元件。對比而言,LAB—般只是具有通過路由結(jié)構(gòu)的行間邏輯通信。應(yīng)該注意邏輯連接是多位數(shù)據(jù)總線,其能夠快速傳遞多位的數(shù)。
0042圖4B示出內(nèi)部冗余邏輯連接54a、 b,其被提供以在缺陷發(fā)生時代替內(nèi)部邏輯連接52。具體是,從行0和行l(wèi)至行2都提供連接54a、 b。在正常運行期間,當(dāng)無缺陷出現(xiàn)時,這些內(nèi)部冗余邏輯連接不被激活。但是,當(dāng)在行0或行1中出現(xiàn)缺陷時,這些連接就被用來路由邏輯信號去往或來自一個替換行。多路復(fù)用器56提供在冗余邏輯連接54a、 b之間選擇的能力,以便通往行2元件的冗余連接能夠來自于行0或行1。
0043圖4C示出行1被確定為缺陷行(通過陰影來指示)的一個實施例。在這種情況下,行1中的缺陷可能出現(xiàn)在LAB或其它地方,包括在多行塊中。由于行l(wèi)是缺陷行,所以行2用來代替行1。在這種情況下,整個行2用來代替整個行l(wèi)。包括多行塊中的一個行分段。因為行l(wèi)是內(nèi)部邏輯連接的目標(biāo)行,所以把行2作為目標(biāo)行的冗余邏輯連接54a取代內(nèi)部邏輯連接。冗余邏輯連接54a從行0延伸,通過缺陷行l(wèi),到達行2,其不通過路由結(jié)構(gòu),或另外通過多行塊外面的路徑。在本圖以及其它圖中沒有被使用的邏輯連接被顯示為點線。
0044圖4D示出當(dāng)行0被確定為缺陷行的另一個實例。在此,行l(wèi)被用來代替行O (并且行2代替行1等)。由于行O對于內(nèi)部邏輯連接是源行,并且行0被行1來代替,所以在這種情況下,多路復(fù)用器56選擇一個以行1作為源行,行2作為目標(biāo)行的冗余內(nèi)部邏輯連接54b。這對應(yīng)著原始內(nèi)部邏輯連接52向下移動一行(即,源行和目標(biāo)行都被向下移動一行)。
0045圖5A示出類似于圖4A的內(nèi)部邏輯連接58的另一個實例,但是在這個實例中從一個較低行(行l(wèi))中的元件向一個較高行(行0)中的元件向上延伸。在一些實例中,多行塊可以具有內(nèi)部邏輯連接,其向上、向下或既向上又向下在單個多行塊中延伸。應(yīng)該注意,為了清晰表述,本例子以傳統(tǒng)的方式使用"上"和"下"的表達,但是應(yīng)該理解出于很多目的,這些名稱是任意的和可被顛倒的。例如,缺陷行可以被其上面的行來代替,到缺陷行上面的每行的通信被向上推一行,并且冗余行在非冗余行的上面的位置被提供。相似的是,冗余的方向可以是列,而不是描述的行方向,在這種情況下缺陷塊可能被相鄰的水平鄰塊所替換。而且,行間的邏輯連接不限于長度為一行。在一些情況下,這種內(nèi)
ii部邏輯連接可以延伸兩個或者是更多行。
0046圖5B示出內(nèi)部冗余邏輯連接60a、 b,其被提供用來在行0或者行1中出現(xiàn)缺陷時代替內(nèi)部邏輯連接58。尤其是,即使是缺陷出現(xiàn)在多行塊中,內(nèi)部冗余邏輯連接60a, b容許行O或者行l(wèi)的替換。
0047圖5C示出圖5B系統(tǒng)在行1有缺陷時的運行。尤其是,圖5C示出位于行2和行0之間的用于代替圖5A中內(nèi)部邏輯連接58的內(nèi)部冗余邏輯連接60a。內(nèi)部冗余邏輯連接60a來自行2,通過缺陷行l(wèi),達到行O。
0048圖5D示出當(dāng)行0有缺陷時圖5B系統(tǒng)的運行。在這種情況下,由于行O是缺陷行,所以其被行l(wèi)所替換,行1又被行2所替換,以下類同。因此,從行l(wèi)到行O的內(nèi)部邏輯連接58被從行2到行1的冗余內(nèi)部邏輯連接60b所替換。
0049結(jié)合圖4B和5B中的內(nèi)部冗余邏輯連接和多路復(fù)用器得出內(nèi)部冗余邏輯電路,其容許通過將內(nèi)部邏輯連接重新路由通過一個缺陷行,并且將缺陷行
下方的所有內(nèi)部邏輯連接重新路由而以一個行分段替換鄰近的行分段。
0050圖6示出一個多行塊的兩行高的部分,多行塊包括內(nèi)部冗余邏輯連接61 ,其對應(yīng)于通過增加圖4B和5B中的冗余內(nèi)部邏輯連接來改變的圖3B或3C中的多行塊。具體是,多路復(fù)用器62a、 b在行i和i+l的元件A的輸入處選擇冗余內(nèi)部連接61,以便每行可以從自己的路由輸入?yún)^(qū)域接收輸入,或根據(jù)多路復(fù)用器配置從另一個行的路由輸入?yún)^(qū)域接收輸入。例如,行i可以從行i-2、 i-l、 i+l或者i+2接收輸入。這是一個一般性的冗余連接的實例,其在行具有到其緊上行和緊下行的連接的情況下需要。在行具有超過這些緊鄰行的內(nèi)部邏輯連接的情況下,就需要額外冗余內(nèi)部邏輯連接。 一般來說,如果內(nèi)部邏輯連接延伸n行,那么冗余內(nèi)部邏輯連接就延伸n+l行,以便連接能夠移位一行。
0051除了冗余內(nèi)連接之外,圖6示出了分別在行i和i+l中的可配置元件64、 66。行i中的可配置元件64被指定來實現(xiàn)功能B,但是在缺陷行的情況下必須能夠?qū)崿F(xiàn)這行上面的行的功能C。類似的,在行i+l中的可配置元件66有一個預(yù)定的功能C,但是在有缺陷行的情況下是可重新配置的,以還實現(xiàn)功能B。這就容許元件66代替其上面的元件。 一般來說,多行塊中的某些元件可以是可配置來實現(xiàn)它們的預(yù)定功能(缺省功能),并且如果其上面的元件具有一個不同功能,這些元件是可配置來實現(xiàn)上面行中元件的功能。鏈信號被提供有多路復(fù)用器,其從緊上面的行來選擇鏈信號,或在被移除的行中選擇,以便如果緊上面的行為缺陷行時,下一行可以被選擇。0052應(yīng)該注意的是,圖6的實例在多行塊的每一邊上不包括額外冗余電路,這是因為甚至在行貫穿多行塊的情況下也可以通過使用展示的結(jié)構(gòu)獲得全行冗余。因此,不是如圖3B中示出的重新路由多行塊的任一邊的連接,在此整行(包括多行塊中的行分段)被替換,使得這種重新路由不是必須的。所以,冗余內(nèi)部路由和可配置元件所需的任何增加面積通過在多行塊的任一邊上節(jié)約額外的冗余電路來補償。
0053圖7A示出一個多行塊的四行高的部分。具體是,圖7A圖示說明了不同行中的元件的不同預(yù)定功能。前兩行有具有功能A和B的元件,而后兩行有具有預(yù)定功能A和C的元件。在多行塊中一般使用只實現(xiàn)其預(yù)定功能并且不可重新配置來實現(xiàn)其它功能的元件。相對比而言,在此描述的實例示出多行塊中的可重新配置元件。
0054圖7B中示出圖7A的多行塊怎樣具有可重新配置的元件,這些元件處在上面的行中的相應(yīng)元件具有不同功能的位置。尤其是,每個元件能夠?qū)崿F(xiàn)它自己的預(yù)定功能,而且還能實現(xiàn)上面這行中相應(yīng)元件的功能。應(yīng)該注意的是圖7B的模式不重復(fù)每一行。各個行可以具有不同的元件。在可配置元件不被需要的情況下(如,在元件具有和上行的對應(yīng)元件相同的預(yù)定功能的情況),具有固定功能的元件就被使用。因此,例如,在行i和i+2中所示的是具有功能B或C的可配置元件68和70,而固定功能元件72和74 (分別具有功能B和C)在行i+l和i+3中被示出。如圖7B中所示,所有的行都是不同的,而且一些行不包括可配置元件。圖7B還示出提供給鏈信號的多路復(fù)用器,以便來自于緊上面的行的鏈信號或來自于更高行的鏈信號能夠被選取。鏈信號還是多位信號,其用于行行通信。
0055圖8示出一個兩行高的多行塊的特定實例。具體是,圖8示出在一個多行DSP塊中的兩行上實現(xiàn)的36t36乘法器。這個乘法器能夠?qū)崿F(xiàn)兩個36位數(shù)的乘法,以得到一個72位的結(jié)果。這是在一個單行上不能實現(xiàn)的過于復(fù)雜的功能實例,因此(在一些設(shè)計中)可以要求乘法器占用兩行。其它的功能,尤其是更復(fù)雜的功能還可能需要多行塊中的兩行或更多行。
0056圖8示出兩個36位操作數(shù)的乘法運算,其中每個操作數(shù)分成兩部分各18位的數(shù)字。在此,第一個操作數(shù)是A+B,第二個操作數(shù)為C+D,這里每個操作數(shù)的第一部分代表最高有效18位,第二部分代表最低有效18位。要計算的結(jié)果為(A+B)*(C+D) = A*C +A*D +B*C+B*D,其中右側(cè)的每一項為兩個18位數(shù)的乘積,為一個36位數(shù)。首先,每個行分段中一對18W8乘法器76a-d計算部分操作數(shù)的乘積。因此,在上行分段中,計算乘積0*8和D*A。作為兩個最低有效部分的乘積的DtB提供一個36位數(shù),其最低有效18位是期望結(jié)果的18個最低有效位。 一般這個結(jié)果以進位保留(carry-save)的格式被提供,包括兩個36位數(shù)分別用于和與進位。為了內(nèi)容的簡潔,這部分在本說明書中不再描述。這些18個位(BSD)
作為第一輸出Z0提供。這個乘積的最高有效位(B*D) [18:35]作為上行分段中加法器的一個輸出提供。傳統(tǒng)的三個數(shù)相加的方式是使用一個3:2壓縮器執(zhí)行第一個相加,接下來是CPA 80a,以將兩個輸出減少到一個單獨的和中。禾nB求D的計算同時的是,18*18乘法器7613計算八*0。最低有效18位(A*D)
被發(fā)送到上行分段中的加法器78a,同時最高有效位(A求D) [18:35]被發(fā)送到下行分段中的加法器78b。這是一個多行塊中相鄰行的元件間的內(nèi)部邏輯連接的實例。在此提供的內(nèi)部邏輯連接是18位寬,以支持快速地把18位結(jié)果A舉D[18:35]傳送到下行中的一個后續(xù)元件。在下行分段中, 一個上乘法器76c將B和C相乘,提供最低有效位(B化)
到上行分段中(再一次使用18位數(shù)據(jù)總線)的加法器78a。這是多行塊中相鄰行的元件之間的內(nèi)部邏輯連接的另一實例。最高有效位(BXC) [18:35]被發(fā)送到下行中的加法器78b。下乘法器76d將A和C相乘,提供最低有效18位(AK)
到下行分段中的加法器78b,并提供最高有效位(AO [18:35]到一個進位傳送加法器(CPA) 80c。只需要CPA 80c來傳送來自Z2加法器的任何可能進位。這個結(jié)果被提供作為輸出Z3,代表結(jié)果的18個最高有效位。
0057如圖8所示,上行的加法器78a把三個18位數(shù)加在一起來獲取結(jié)果的緊接著的最低有效位。這個結(jié)果作為加法器的兩個輸出提供。因為加法器78a將三個輸入加在一起來提供和作為兩個輸出,所以加法器78a被認為是一個3: 2加法器。CPA 80a接收加法器的兩個輸出并且提供結(jié)果作為輸出Zl。前面所描述的三個數(shù)相加的傳統(tǒng)方法是使用后跟CPA的一個3: 2加法器。下行的加法器78a還接收三個輸入,然后把它們相加,并且提供和作為兩個輸出給CPA 80b。
0058CPA 80b提供輸出Zl作為結(jié)果的緊接著的最低有效位。因此,四個輸出Z0、 Zl、 Z2和Z3為18位的數(shù),它們?yōu)?2位結(jié)果中的連續(xù)的最高有效18位部分。
0059實現(xiàn)圖8的乘法器的一種方式就是只提供對應(yīng)于所示的功能塊的組件。因此,在上行中,兩個乘法器、 一個加法器和一個CPA被提供, 一個內(nèi)部邏輯輸出被提供到下面的行,并且一個內(nèi)部邏輯輸入從下面的行被接收。在下行
14中,兩個乘法器、 一個加法器和兩個CPA被提供, 一個內(nèi)部邏輯輸出被提供給上面的行,并且一個內(nèi)部邏輯輸入從上面的行被接收。但是,在這種情況中,每個行分段具有不同的硬件并且是不可配置來替換鄰近的行分段的。
0060圖9示出組成可配置的行分段81所需的算術(shù)元件的集合,行分段81可以被配置來實現(xiàn)作為圖8中的上行分段或下行分段。具體是,行分段包含兩個乘法器82a、 82b, 一個3: 2加法器84和兩個CPA86a、 b,其提供輸出Z0和Z1。同圖8相比對,可以看出這里包含了足夠的資源來實現(xiàn)圖8的頂行或底行。行分段還具有內(nèi)部邏輯連接,連接到上面的行(out—up和in—down)和下面的行((in—up和out—down)。根據(jù)它是運行為圖8的上行分段或者下行分段,可配置的行分段具有兩個不同的模式,頂部(或上)和底部(或下)。根據(jù)下面的表,輸出和內(nèi)部邏輯連接在每個這些模式中被配置
<formula>formula see original document page 15</formula>因此,在頂部模式下,輸出Z0為XOKXl (到頂部乘法器的輸入)的18個最低有效位,輸出Z1為X(^X1的18個最高有效位加上X(^X2 (到底部乘法器的輸入)的最低有效位,加上in—up (來自下面的行的輸入)的和。在頂部模式下,沒有輸出提供給上面的行,所以ont—up未使用。XO!0(2的18個最高有效位被提供作為out_down,即到下面的行的輸出。
0061在底部模式中,輸出Z0為從上面的行接收到的輸入in—down加上X0木X1的18個最高有效位,加上X(^X2的18個最低有效位的總和。輸出Z1只是X0求X2的18個最高有效位。輸出out—up為XO^Xl的18個最高有效位,同時在這種模式下不需要輸出out一down。
0062圖9給出了可配置行分段81的元件和期望的輸入和輸出的簡化圖,沒有顯示元件之間的連接??膳渲玫倪B接可以通過不同的方式被提供,并且本發(fā)明不限于任何特定的實施方式。
0063圖10示出實施圖9的可配置行分段81的硬件的第一示例。尤其是,圖10示出兩個3: 2的加法器88a、 b,其接收來自乘法器的輸入,乘法器被配置為根據(jù)行分段運行的模式來選擇合適的輸入。對比于圖9,圖10包括更多的算術(shù)資源來簡化創(chuàng)造各種模式所需的乘法器結(jié)構(gòu)。
一般對于任何塊來說,在邏輯量
和連接資源的多路傳輸?shù)膹?fù)雜度之間存在著一個折中。圖9表示圖8塊的下界限,而圖10使用了比最小資源量多的資源。例如,在頂部模式中,上加法器88a從中間多路復(fù)用器接收了輸入,這個中間多路復(fù)用器選擇18個最低有效位(為這個中間多路復(fù)用器示出兩個輸入,對應(yīng)于XONXl的最高有效位和最低有效位)。在這種模式下加法器88a的其他輸入不被使用。下加法器88b從上乘法器接收XOttl的最高有效位,從下乘法器接收XO^X2的最低有效位和通過它的輸入多路復(fù)用器接收up—in (來自下面的行的輸入),并且把這些量相加,乘積作為輸出Z1。0ut—down是來自下乘法器的X(^X2的最高有效位。在本例中,圖10的行間邏輯連接(如In—up、 In—upr、 Out—down等等)為18位數(shù)據(jù)總線。在其它的多行塊中,多行塊中的這種內(nèi)部邏輯連接可以使用不同的多位總線來構(gòu)成。
0064在本例中,在鄰近行之間的每個輸入和輸出包括兩個連接, 一個連接位于給定行和它的緊鄰近行(一行距離)之間,而一個冗余連接位于給定行和相距兩行遠的行之間。如果頂行是缺陷行,那么頂行和底行都向下移動一行并且繼續(xù)使用相同的信號。如果底行是缺陷行,那么它向下移動一行并且頂行保持在同樣的位置,并使用in—upr信號,同時底行使用in—downr信號。應(yīng)該注意的是多路復(fù)用器選擇信號(在此沒有示出)是通過模式和冗余信號的組合來驅(qū)動的。
0065如圖11所示,在另一個示例實施中,可以重新安排多路復(fù)用以使用較少的加法硬件,而以更多的多路復(fù)用為代價。實施方案的選擇依賴于各種因素,包括多路復(fù)用器或其它組件是否能夠用于額外模式(沒有示出)以及面積和電路延遲的成本/好處分析。例如,在圖10中,可以看到頂部和底部模式包含一種共同的表達式形式Uruup/in—dowr^+XOi0a[18:35]+XOKX2
,而另一
輸出是兩個操作數(shù)部分的未修改的乘積。所以,如圖11所示,可以重新安排多路復(fù)用以使用較少的加法硬件,而以更多的多路復(fù)用為代價。應(yīng)該注意在這個例子中,圖10和圖11都包含有6個多路復(fù)用器,但是在圖ll中具有更多級的多路復(fù)用(3對1)。
0066圖11示出單個加法器90,其具有來自每個乘法器的輸入,而且多路復(fù)用器92給該加法器提供來自irudown或者iru叩(或它們的冗余對應(yīng)物in一downr, in—upr)的一個額外輸入。因此,該加法器可以提供一個對應(yīng)于下
16面第一表達式的輸出
{in—up/in—down}+X0*X1[18:35]+X0*X2
另一個多路復(fù)用器94提供一個選自于兩個乘法器的輸出XC^Xl或者XONX2的輸出。加法器的輸出和多路復(fù)用器的輸出然后可以依照行分段正在運行的模式被適當(dāng)路由到輸出Z0和Z1。如圖10所示,內(nèi)部行邏輯輸入和輸出成對出現(xiàn),具
有相鄰行間的連接以及通過行的連接。
0067上述實例參考PLD中的物理行,其是用于冗余目的的方便單位。但
是本發(fā)明的各方面并不限于物理行。在一些實例中為了冗余的目的而選擇的單位不同于物理行。在某個方向上重復(fù)的邏輯組被認為是一種虛行,即使該邏輯組在物理PLD中不具有直線邊界,或即使它在PLD中沒有使用鄰近帶。
權(quán)利要求
1、一種可編程邏輯器件,包括由可配置的連接互聯(lián)的多行元件;多個行冗余電路,其用非缺陷行來代替缺陷行;元件的多行塊,其包括第一行、第二行和第三行中每行內(nèi)的元件,位于第一行的第一元件與第二行的第二元件之間的內(nèi)部邏輯連接;和在多行塊中的內(nèi)部冗余連接,所述內(nèi)部冗余連接包括位于第一元件與第三行中第三元件之間的一個內(nèi)部冗余邏輯連接,其在第二元件有缺陷時代替位于第一元件與第二元件間的內(nèi)部邏輯連接。
2、 根據(jù)權(quán)利要求1所述的可編程邏輯器件,其中第一行在第二行的緊上面, 第二行在第三行的緊上面,并且位于第一元件與第三元件間的內(nèi)部邏輯連接貫 穿多行塊中的第二行。
3、 根據(jù)權(quán)利要求2所述的可編程邏輯器件,其中內(nèi)部冗余連接進一步包括 第二元件與第三元件之間的內(nèi)部冗余連接,其在第一行有缺陷時代替位于第一 元件與第二元件之間的內(nèi)部邏輯連接。
4、 根據(jù)權(quán)利要求1所述的可編程邏輯器件,其中由第一行、第二行和第三 行實現(xiàn)的功能在沒有缺陷出現(xiàn)的缺省情況下是不同的,并且可配置元件容許每 行實現(xiàn)其缺省功能和相鄰行的缺省功能。
5、 根據(jù)權(quán)利要求1所述的可編程邏輯器件,其中多行塊是數(shù)字信號處理塊。
6、 根據(jù)權(quán)利要求5所述的可編程邏輯器件,其中多行塊實現(xiàn)兩個數(shù)的乘法。
7、 根據(jù)權(quán)利要求6所述的可編程邏輯器件,其中多行塊在多行塊的每行中 包括多個乘法器元件和至少一個加法器元件。
8、 根據(jù)權(quán)利要求7所述的可編程邏輯器件,其中在多行塊的一個特定行中的加法器元件從該特定行中的多個乘法器元件接收輸入,并且從另一行中的一 個乘法器元件中接受一個輸入。
9、 一種運行含有多行塊的多行可編程邏輯器件的方法,其包括確定可編程邏輯器件的一行是有缺陷的; 將缺陷行的輸入信號和輸出信號重新路由至相鄰行;在貫穿缺陷行和相鄰行的多行塊中,用位于相鄰行與鄰近行之間的內(nèi)部邏輯 連接代替位于缺陷行和鄰近行之間的內(nèi)部邏輯連接; 重新配置相鄰行的元件來實現(xiàn)缺陷行的功能。
10、 根據(jù)權(quán)利要求9所述的方法,其中相鄰行位于缺陷行的下面,并且重新 路由包括將多行塊的一個內(nèi)部邏輯連接從缺陷行上面的一行通過缺陷行重新路 由至相鄰行。
11、 根據(jù)權(quán)利要求9所述的方法,進一步包括重新路由缺陷行下的所有行的 輸入信號和輸出信號,以及重新路由在缺陷行下的行之間的多行塊的所有內(nèi)部 邏輯連接。
12、 根據(jù)權(quán)利要求9所述的方法,進一步包括重新路由缺陷行下的所有行的 輸入信號和輸出信號,以及重新配置缺陷行下其中一些行但不是所有行中的元 件。
13、 根據(jù)權(quán)利要求9所述的方法,其中多行塊為數(shù)字信號處理塊。
14、 根據(jù)權(quán)利要求13所述的方法,其中多行塊實現(xiàn)兩個數(shù)的乘法,這兩個 數(shù)作為到多行塊的兩行的輸入被接收。
15、 一種可編程邏輯器件,包括 多行元件;多個行冗余電路,其用非缺陷行來代替缺陷行;貫穿多行的多行數(shù)字信號處理塊,在所述多行塊的不同行中,所述多行數(shù)字信號處理塊實現(xiàn)不同的功能,使用不同的物理元件;和多行塊內(nèi)行間的多個內(nèi)部邏輯連接,多行塊具有多個冗余內(nèi)部邏輯連接,其 在多行中的一行被行冗余電路代替時,代替多個內(nèi)部邏輯連接。
16、 根據(jù)權(quán)利要求15所述的可編程邏輯器件,其中多行塊實現(xiàn)乘法,并且 在多行塊中的每行包含至少一個乘法器元件和加法器元件,每個加法器元件從 同行中的一個乘法器元件和不同行中的一個乘法器元件中接受輸入。
17、 根據(jù)權(quán)利要求15所述的可編程邏輯器件,其中多行塊通過兩行或更多 行中的輸入接收要相乘的數(shù),并通過兩行或多行中的輸出提供一個結(jié)果。
18、 根據(jù)權(quán)利要求15所述的可編程邏輯器件,其中不同物理元件包括實現(xiàn) 單個功能的不可配置元件以及可配置元件,所述可配置元件在缺省模式下實現(xiàn) 第一功能,并且在冗余模式下實現(xiàn)冗余功能。
19、 根據(jù)權(quán)利要求18所述的可編程邏輯器件,其中元件的冗余功能為相鄰 行中對應(yīng)元件的缺省功能。
全文摘要
在可編程邏輯器件(PLD)中,具有行間的內(nèi)部邏輯連接的一個多行塊具有在故障發(fā)生時代替內(nèi)部邏輯連接的行間的冗余內(nèi)部連接。冗余的內(nèi)部邏輯連接貫穿行,其連接缺陷行的上下行。如果功能不同,在多行塊內(nèi)的元件可配置為執(zhí)行缺省功能和鄰近行內(nèi)元件的功能。
文檔編號H03K19/177GK101674076SQ20091017114
公開日2010年3月17日 申請日期2009年9月8日 優(yōu)先權(quán)日2008年9月8日
發(fā)明者D·劉易斯 申請人:阿爾特拉公司