將錯(cuò)誤校正碼嵌入存儲(chǔ)器單元中的方法和設(shè)備的制造方法
【專利摘要】一種計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具可以標(biāo)識(shí)配置數(shù)據(jù)中的無關(guān)位。該配置數(shù)據(jù)中的無關(guān)位可以改變極性,而不會(huì)影響電路設(shè)計(jì)的功能。該CAD工具可以計(jì)算錯(cuò)誤檢查碼(例如,用于二維奇偶校驗(yàn)檢查的奇偶校驗(yàn)位)并將錯(cuò)誤檢查碼插入到配置數(shù)據(jù)中。例如,該CAD工具可以用錯(cuò)誤碼替代配置數(shù)據(jù)中的無關(guān)位。該配置數(shù)據(jù)可以存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中,從而利用錯(cuò)誤碼在可編程集成電路上實(shí)現(xiàn)電路設(shè)計(jì)。在執(zhí)行過程中,可編程集成電路可以執(zhí)行錯(cuò)誤檢查并基于嵌入的錯(cuò)誤碼檢測和校正配置數(shù)據(jù)中的錯(cuò)誤。
【專利說明】將錯(cuò)誤校正碼嵌入存儲(chǔ)器單元中的方法和設(shè)備
[0001 ] 本申請(qǐng)要求2015年3月31日提交的美國專利申請(qǐng)N0.14/675,294的優(yōu)先權(quán),其全部內(nèi)容通過引用結(jié)合在此。
技術(shù)領(lǐng)域
[0002]本發(fā)明涉及存儲(chǔ)器位損壞(bit corrupt1n),并且更具體地涉及檢測和校正集成電路中的存儲(chǔ)器位損壞。
【背景技術(shù)】
[0003]當(dāng)今的集成電路常常包括存儲(chǔ)器元件。在一些安排中,存儲(chǔ)器元件用于在集成電路中存儲(chǔ)配置數(shù)據(jù)。例如,存儲(chǔ)器元件可以用于在可編程集成電路中存儲(chǔ)配置數(shù)據(jù)??删幊碳呻娐肥峭ㄓ玫募呻娐?,能夠至少部分地對(duì)該集成電路進(jìn)行定制以實(shí)現(xiàn)期望的電路設(shè)計(jì)(例如,通過將預(yù)先確定的配置數(shù)據(jù)載入到存儲(chǔ)器元件中)。
[0004]集成電路受到一種被稱為單粒子翻轉(zhuǎn)(SEU)的現(xiàn)象的影響。單粒子翻轉(zhuǎn)是由離子或電磁輻射導(dǎo)致的一種狀態(tài)變化。在存儲(chǔ)配置數(shù)據(jù)位的存儲(chǔ)器元件中出現(xiàn)的單粒子翻轉(zhuǎn)會(huì)具有嚴(yán)重的影響。例如,查找表(LUT)可以實(shí)現(xiàn)不同的邏輯功能或路由多路復(fù)用器可能造成不良連接。
[0005]在本上下文環(huán)境中,產(chǎn)生本文的一些實(shí)施例。
【發(fā)明內(nèi)容】
[0006]根據(jù)本發(fā)明的某些方面,一種計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具可以用于處理配置數(shù)據(jù),該配置數(shù)據(jù)被存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中,并且用于在該可編程集成電路上實(shí)現(xiàn)電路設(shè)計(jì)。例如,該CAD工具可以標(biāo)識(shí)該配置存儲(chǔ)器單元的無關(guān)子集,該無關(guān)子集存儲(chǔ)該配置數(shù)據(jù)的無關(guān)位,使得在這些無關(guān)位的一個(gè)位中的極性變化保留該可編程集成電路中的電路設(shè)計(jì)實(shí)現(xiàn)的功能。該CAD工具可以進(jìn)一步計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第一子集中的該配置數(shù)據(jù)的第一子集的第一奇偶校驗(yàn)位,并在該配置存儲(chǔ)器單元的無關(guān)子集中的第一配置存儲(chǔ)器單元中存儲(chǔ)該第一奇偶校驗(yàn)位。
[0007]應(yīng)當(dāng)認(rèn)識(shí)到,能夠采用很多方式實(shí)現(xiàn)本發(fā)明,例如處理過程、設(shè)備、系統(tǒng)、裝置、或位于計(jì)算機(jī)可讀介質(zhì)上的指令。以下對(duì)本發(fā)明的若干發(fā)明性實(shí)施方式進(jìn)行描述。
[0008]在某些實(shí)施例中,上述的CAD工具可以計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第二子集中的配置數(shù)據(jù)的第二子集的第二奇偶校驗(yàn)位。配置存儲(chǔ)器單元的該第一和第二子集可以在公共的預(yù)定配置存儲(chǔ)器單元中重疊。該第二奇偶校驗(yàn)位可以被存儲(chǔ)在該配置存儲(chǔ)器單元的無關(guān)子集的第二配置存儲(chǔ)器單元中。在某些實(shí)施例中,該CAD工具可以將第一位置與該第一配置存儲(chǔ)器單元相關(guān)聯(lián),并且為該第二配置存儲(chǔ)器單元選擇第二位置,該第二位置與該第一位置之間具有預(yù)定的距離。
[0009]如果需要,該CAD工具可以計(jì)算存儲(chǔ)在該配置存儲(chǔ)器單元的第一子集中的配置數(shù)據(jù)的第一子集的第三奇偶校驗(yàn)位,并且通過比較該第一和第三奇偶校驗(yàn)位來檢測該第一和第三奇偶校驗(yàn)位之間的不匹配,該不匹配表明在該配置數(shù)據(jù)的第一子集中存在錯(cuò)誤。該CAD工具可以進(jìn)一步計(jì)算存儲(chǔ)在該配置存儲(chǔ)器單元的第二子集中的配置數(shù)據(jù)的第二子集的第四奇偶校驗(yàn)位,并且通過比較該第二和第四奇偶校驗(yàn)位來檢測該第二和第四奇偶校驗(yàn)位之間的不匹配,該不匹配表明在配置數(shù)據(jù)的第二子集中存在錯(cuò)誤。
[0010]本發(fā)明的進(jìn)一步特征、它的本質(zhì)以及各種優(yōu)點(diǎn)將從附圖和優(yōu)選實(shí)施例的以下詳細(xì)描述中變得更為明顯。
【附圖說明】
[0011]圖1是根據(jù)一個(gè)實(shí)施例的具有存儲(chǔ)器元件的說明性集成電路的圖示。
[0012]圖2是根據(jù)一個(gè)實(shí)施例的具有配置存儲(chǔ)器單元的說明性三輸入查找表(LUT)的圖不O
[0013]圖3A是根據(jù)一個(gè)實(shí)施例的具有配置存儲(chǔ)器單元的說明性路由多路復(fù)用器的圖示。
[0014]圖3B是根據(jù)一個(gè)實(shí)施例的具有配置存儲(chǔ)器單元和快速輸入的說明性路由多路復(fù)用器的圖示。
[0015]圖4是根據(jù)一個(gè)實(shí)施例的具有無關(guān)位的說明性組合邏輯電路的圖示。
[0016]圖5是根據(jù)一個(gè)實(shí)施例的具有計(jì)算機(jī)輔助(CAD)工具和數(shù)據(jù)庫的說明性電路設(shè)計(jì)系統(tǒng)的圖不。
[0017]圖6是根據(jù)一個(gè)實(shí)施例的用于設(shè)計(jì)集成電路的說明性步驟的流程圖。
[0018]圖7是根據(jù)一個(gè)實(shí)施例的說明性二維奇偶校驗(yàn)碼的圖示。
[0019]圖8是根據(jù)一個(gè)實(shí)施例的使用無關(guān)位產(chǎn)生錯(cuò)誤碼的說明性過程的圖示。
[0020]圖9是根據(jù)一個(gè)實(shí)施例的說明性錯(cuò)誤檢測和校正電路的圖示。
[0021]圖10是根據(jù)一個(gè)實(shí)施例的用于處理配置數(shù)據(jù)的說明性步驟的流程圖,該配置數(shù)據(jù)存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中并用于在該可編程集成電路上實(shí)現(xiàn)電路設(shè)
i+o
[0022]圖11是根據(jù)一個(gè)實(shí)施例的用于處理配置數(shù)據(jù)的說明性步驟的流程圖,該配置數(shù)據(jù)在集成電路上實(shí)現(xiàn)電路設(shè)計(jì)。
[0023]圖12是根據(jù)一個(gè)實(shí)施例的用于處理電路設(shè)計(jì)以便在集成電路上實(shí)現(xiàn)的說明性步驟的流程圖。
【具體實(shí)施方式】
[0024]本發(fā)明涉及存儲(chǔ)器位損壞,并且更具體地涉及檢測和校正集成電路(IC)中的存儲(chǔ)器位損壞。
[0025]集成電路(諸如可編程集成電路)受到一種被稱為單粒子翻轉(zhuǎn)(SEU)的現(xiàn)象的影響。單粒子翻轉(zhuǎn)是由離子或電磁輻射導(dǎo)致的一種狀態(tài)變化。嵌入在集成電路及其包裝中的宇宙射線或放射性雜質(zhì)可能是產(chǎn)生這種離子或電磁輻射的原因。
[0026]當(dāng)離子或電磁輻射撞擊硅基板(集成電路在其上實(shí)現(xiàn)),就產(chǎn)生電子空穴對(duì)。電子空穴對(duì)產(chǎn)生傳導(dǎo)通路,該傳導(dǎo)通路會(huì)導(dǎo)致帶電節(jié)點(diǎn)(例如,存儲(chǔ)器元件)放電。因此,單粒子翻轉(zhuǎn)可能導(dǎo)致存儲(chǔ)器元件從邏輯“I”變?yōu)檫壿嫛癘”。
[0027]時(shí)序元件(例如,存儲(chǔ)器元件、鎖存器、或寄存器)中的翻轉(zhuǎn)事件會(huì)具有嚴(yán)重的影響。例如,存儲(chǔ)器陣列可存儲(chǔ)錯(cuò)誤數(shù)據(jù),查找表(LUT)可實(shí)現(xiàn)不同的邏輯功能,或者可編程路由多路復(fù)用器可造成不良連接。
[0028]在現(xiàn)代集成電路中已經(jīng)開發(fā)了各種錯(cuò)誤檢測技術(shù)以解決這種問題。一些錯(cuò)誤檢測技術(shù)涉及實(shí)現(xiàn)相同電路的多個(gè)實(shí)例并在那些多個(gè)實(shí)例的輸出上進(jìn)行多數(shù)票決。這些錯(cuò)誤檢測技術(shù)快速并且有效,但需要大量額外的硬件資源。其他錯(cuò)誤檢測技術(shù)涉及在時(shí)序元件的初始狀態(tài)中檢查它們的狀態(tài),并且如果一個(gè)存儲(chǔ)器位已經(jīng)受到損壞就恢復(fù)原始狀態(tài)。然而,這些錯(cuò)誤檢測技術(shù)并未得到立即應(yīng)用,因此存在受損的設(shè)計(jì)在受損的狀態(tài)中運(yùn)行至少一段時(shí)間的風(fēng)險(xiǎn)。
[0029]因而,利用最少的額外硬件資源減少檢測和/或校正集成電路中的受損的存儲(chǔ)器位所需的持續(xù)時(shí)間可能是令人期望的。例如,以最少的開銷來減少錯(cuò)誤檢測時(shí)間、錯(cuò)誤校正時(shí)間、或兩者可能是令人期望的。
[0030]本領(lǐng)域技術(shù)人員將要認(rèn)識(shí)到的是,可以在不具備這些特定細(xì)節(jié)的一些或全部的情況下實(shí)踐本示例性實(shí)施例。在其他實(shí)例中,已經(jīng)詳細(xì)地描述了眾所周知的操作,目的是避免不必要地混淆本實(shí)施例。
[0031]圖1中示出根據(jù)一個(gè)實(shí)施例的集成電路的說明性實(shí)施例,該集成電路諸如可編程邏輯器件(PLD)10。
[0032]可編程邏輯器件100具有輸入/輸出電路110,該電路用于經(jīng)由輸入/輸出管腳120驅(qū)動(dòng)信號(hào)離開器件100和用于從其他器件接收信號(hào)?;ミB資源115(諸如全局和局部垂直以及水平導(dǎo)線和總線)可以用于在器件100上路由/傳送信號(hào)。
[0033]輸入/輸出電路110包括外部接口電路、串行數(shù)據(jù)收發(fā)器電路、差動(dòng)接收器和發(fā)射器電路、或用于將一個(gè)集成電路連接至另一個(gè)集成電路的其他電路。
[0034]互連資源115包括導(dǎo)線和位于對(duì)應(yīng)的導(dǎo)線之間的可編程連接,并因此有時(shí)被稱為可編程互連。
[0035]可編程邏輯區(qū)域140可以包括可編程組件,諸如數(shù)字信號(hào)處理電路、存儲(chǔ)電路、運(yùn)算電路或其他組合的和/或順序的邏輯電路,諸如可配置寄存器電路。
[0036]可以將可編程邏輯區(qū)域140配置為執(zhí)行定制邏輯功能??删幊踢壿媴^(qū)域140還可以包括執(zhí)行給定的應(yīng)用程序并具有有限可配置性的專用塊。例如,可編程邏輯區(qū)域140可以包括專用塊,諸如可配置存儲(chǔ)塊、可配置處理塊、可編程鎖相環(huán)電路、可編程延遲鎖相環(huán)電路、或具有有限可配置性的其他專用塊。還可以認(rèn)為可編程互連115是一種類型可編程邏輯區(qū)域 140 ο
[0037]可以利用任何適合的架構(gòu)來組織器件100的電路。例如,可編程邏輯器件100的邏輯可以采用一系列較大可編程邏輯區(qū)域的行和列的形式來組織,這些可編程邏輯區(qū)域的每一個(gè)包含多個(gè)較小的邏輯區(qū)域。較小的區(qū)域可以是例如有時(shí)被稱為邏輯元件(LE)的邏輯區(qū)域,每一個(gè)邏輯元件都包含一個(gè)或更多個(gè)查找表、一個(gè)或更多個(gè)寄存器、以及可編程多路復(fù)用器電路。較小區(qū)域還可以是例如有時(shí)被稱為自適應(yīng)邏輯模塊(ALM)、可配置邏輯塊(CLB)、切片、半切片等的邏輯區(qū)域。如果需要,自適應(yīng)邏輯模塊可以包括加法器電路、一個(gè)或更多個(gè)寄存器、以及查找表或共享組合邏輯的其他塊(即,來自一對(duì)LE的資源一在此上下文中有時(shí)被稱為自適應(yīng)邏輯元件或ALE)。較大區(qū)域可以是例如邏輯陣列塊(LAB)或包含例如多個(gè)邏輯元件或多個(gè)ALM的邏輯區(qū)域的邏輯簇。
[0038]可編程邏輯器件100可以包含可編程存儲(chǔ)器元件130??删幊檀鎯?chǔ)器元件130可以使用任何適合的易失性和/非易失性存儲(chǔ)器結(jié)構(gòu),諸如隨機(jī)存取存儲(chǔ)器(RAM)單元、熔絲、反熔絲、可編程只讀存儲(chǔ)器存儲(chǔ)器單元、掩模編程和激光編程結(jié)構(gòu)、這些結(jié)構(gòu)的組合等。因?yàn)榭删幊檀鎯?chǔ)器元件130在編程過程中與配置數(shù)據(jù)一起載入,可編程存儲(chǔ)器元件130有時(shí)被稱為配置存儲(chǔ)器、配置RAM( CRAM)、配置存儲(chǔ)器單元、配置存儲(chǔ)器位、或存儲(chǔ)器元件。
[0039]存儲(chǔ)器元件130能夠利用管腳120和輸入/輸出電路110與配置數(shù)據(jù)(也被稱為編程數(shù)據(jù))一起載入。一旦載入,存儲(chǔ)器元件各自提供相應(yīng)的靜態(tài)控制信號(hào),該靜態(tài)控制信號(hào)控制可編程邏輯區(qū)域140中的相關(guān)聯(lián)邏輯組件的操作。在一個(gè)典型的場景中,載入的存儲(chǔ)器元件130的輸出施加到可編程邏輯區(qū)域140中的晶體管的柵極,以便開啟或關(guān)閉某些晶體管并借此配置可編程邏輯區(qū)域140中的邏輯和路由路徑。可以采用這種方式控制的可編程邏輯電路元件包括多路復(fù)用器(例如,用于在可編程互連115中形成路由路徑的多路復(fù)用器)、查找表、邏輯陣列、與(AND)、或(OR)、與非(NAND)、以及或非(NOR)邏輯門、選通門等的一些部分。
[0040]載入到存儲(chǔ)器元件130中的配置數(shù)據(jù)可以與一種電路設(shè)計(jì)相關(guān)聯(lián),并且將配置數(shù)據(jù)載入到存儲(chǔ)器元件130中可以在可編程邏輯器件100中實(shí)現(xiàn)該電路設(shè)計(jì)。配置數(shù)據(jù)的一些位可以是用于電路設(shè)計(jì)實(shí)現(xiàn)的無關(guān)位。無關(guān)位可以是存儲(chǔ)在存儲(chǔ)器元件130中的位,當(dāng)該位的值變化時(shí),存儲(chǔ)器元件不會(huì)改變電路設(shè)計(jì)實(shí)現(xiàn)的性能。存儲(chǔ)無關(guān)位的存儲(chǔ)器元件有時(shí)被稱為無關(guān)存儲(chǔ)器元件。
[0041]例如,考慮如下場景,一種電路設(shè)計(jì)實(shí)現(xiàn)的配置數(shù)據(jù)在存儲(chǔ)器元件130的一個(gè)存儲(chǔ)器元件中存儲(chǔ)邏輯“I”。如果將該存儲(chǔ)器元件130的狀態(tài)從邏輯“I”變?yōu)檫壿嫛癘”保留了該電路設(shè)計(jì)實(shí)現(xiàn)的功能,那么存儲(chǔ)在該存儲(chǔ)器元件130中的配置數(shù)據(jù)的位就是用于該電路設(shè)計(jì)實(shí)現(xiàn)的配置數(shù)據(jù)的無關(guān)位。
[0042]再如,考慮如下場景,一種電路設(shè)計(jì)實(shí)現(xiàn)的配置數(shù)據(jù)在存儲(chǔ)器元件130的一個(gè)存儲(chǔ)器元件中存儲(chǔ)邏輯“O”。如果將該存儲(chǔ)器元件130的狀態(tài)從邏輯“O”變?yōu)檫壿嫛癐”保留了該電路設(shè)計(jì)實(shí)現(xiàn)的功能,那么存儲(chǔ)在該存儲(chǔ)器元件130中的配置數(shù)據(jù)的位就是用于該電路設(shè)計(jì)實(shí)現(xiàn)的配置數(shù)據(jù)的無關(guān)位。
[0043]圖2是具有配置存儲(chǔ)器單元的說明性查找表(LUT)的圖示。該查找表可以具有輸入A、B、和C,由輸入C控制的多路復(fù)用器250,由輸入B控制的多路復(fù)用器240和245,由輸入C控制的多路復(fù)用器230、232、234和236,以及配置存儲(chǔ)器單元210、212、214、216、220、222、224和226。通過對(duì)配置存儲(chǔ)器單元進(jìn)行編程,可以將查找表配置為實(shí)現(xiàn)具有多達(dá)三個(gè)輸入的任何邏輯功能。
[0044]例如,利用為邏輯“I”的位對(duì)配置存儲(chǔ)器單元226進(jìn)行編程和利用為邏輯“O”的一些位對(duì)所有其他配置存儲(chǔ)器單元210至224進(jìn)行編程,可以實(shí)現(xiàn)A、B和C的邏輯與(AND)功能。又如,利用為邏輯“O”的位對(duì)配置存儲(chǔ)器單元210進(jìn)行編程和利用為邏輯“I”的一些位對(duì)所有其他配置存儲(chǔ)器單元212至226進(jìn)行編程可以實(shí)現(xiàn)A、B和C的邏輯或(OR)功能。
[0045]考慮如下場景,將查找表配置為實(shí)現(xiàn)B和C的邏輯與功能。在這種場景中,配置存儲(chǔ)器單元224和226可以存儲(chǔ)為邏輯“I”的位,而所有其他配置存儲(chǔ)器單元210至222存儲(chǔ)為邏輯“O”的位,以便實(shí)現(xiàn)B和C的邏輯與功能。
[0046]在另一種場景中,輸入A可以與邏輯“O”關(guān)聯(lián)。在這種其他場景中,配置存儲(chǔ)器單元224可以存儲(chǔ)為邏輯“I”的位,并且配置存儲(chǔ)器單元210、214、和220可以存儲(chǔ)為邏輯“O”的位,以便實(shí)現(xiàn)B和C的邏輯與功能,而配置存儲(chǔ)器單元212、216、222和226存儲(chǔ)無關(guān)位。換言之,查找表實(shí)現(xiàn)B和C的邏輯與功能,這與配置存儲(chǔ)器單元212、216、222和226是否分別存儲(chǔ)邏輯“O”的位或邏輯T的位無關(guān),只要輸入A與邏輯“O”相關(guān)聯(lián)。
[0047]如果未使用查找表(例如,電路設(shè)計(jì)實(shí)現(xiàn)僅使用集成電路上的可用查找表的一部分),那么所有的配置存儲(chǔ)器單元210至226都存儲(chǔ)無關(guān)位。在此情況中,查找表的輸入上的任何可編程路由多路復(fù)用器也可以存儲(chǔ)無關(guān)位。這種可編程路由多路復(fù)用器有時(shí)也被稱為路由多路復(fù)用器電路、可配置路由多路復(fù)用器、或路由多路復(fù)用器。
[0048]圖3A示出根據(jù)一個(gè)實(shí)施例的具有配置存儲(chǔ)器單元的說明性路由多路復(fù)用器的圖示。如圖所示,路由多路復(fù)用器300可以包括配置存儲(chǔ)器單元310、312、314、316、320、322、324、以及326??梢詫?duì)配置存儲(chǔ)器單元進(jìn)行編程以便將輸入INO至IN15的任何一個(gè)上的信號(hào)路由至輸出OUT。例如,對(duì)具有為邏輯“I”的位的配置存儲(chǔ)器單元310和320和對(duì)具有為邏輯“O”的位的配置存儲(chǔ)器單元312、314、316、322、324、和326進(jìn)行編程將輸入INO導(dǎo)電地耦合至輸出0UT,從而將輸入INO上的信號(hào)路由至輸出OUT。
[0049]考慮如下場景,未使用路由多路復(fù)用器300(例如,信號(hào)OUT耦合至未使用的查找表)。在此場景中,配置存儲(chǔ)器單元310、312、314、和316可以存儲(chǔ)為邏輯“O”的位,從而解耦合所有的輸入INO至IN15。因此,配置存儲(chǔ)器單元320、322、324、和326可以存儲(chǔ)無關(guān)位。換言之,所有的輸入INO至IN15從輸出OUT解耦合,這不依賴于配置存儲(chǔ)器單元320、322、324、和326中存儲(chǔ)的位值,只要配置存儲(chǔ)器單元310、312、314、和316存儲(chǔ)為邏輯“O”的位。
[0050]路由多路復(fù)用器300可以具有耦合在任何輸入與該輸出之間的兩個(gè)傳輸晶體管。在一些實(shí)施例中,路由多路復(fù)用器可以具有一個(gè)或更多個(gè)輸入,其中只有一個(gè)傳輸晶體管耦合在對(duì)應(yīng)的輸入和該輸出之間。這種路由多路復(fù)用器的實(shí)施例在圖3B中示出。
[0051 ] 如圖所示,路由多路復(fù)用器350可以包括配置存儲(chǔ)器單元360、362、364、366、370、372、374、和376。從輸入INO至INll分別到輸出OUT的路徑可以具有兩個(gè)傳輸晶體管,并且從輸入IN12到輸出OUT的路徑可以只具有一個(gè)傳輸晶體管。因此,到達(dá)輸入IN12的信號(hào)傳播到輸出OUT的時(shí)間可以比信號(hào)到達(dá)輸入INl至INll的時(shí)間更少。換言之,從輸入IN12到輸出OUT
的傳播延遲可以比從輸入INl、IN2........1Nll到達(dá)輸出OUT的傳播延遲更短。因此,輸入
IN12有時(shí)也被稱為路由多路復(fù)用器350的“快速輸入”。
[0052]可以對(duì)配置存儲(chǔ)器單元進(jìn)行編程以便將輸入INO至IN12的任何一個(gè)上的信號(hào)路由至輸出OUT。例如,對(duì)具有為邏輯“I”的位的配置存儲(chǔ)器單元360和370和對(duì)具有為邏輯“O”的位的配置存儲(chǔ)器單元362、364、366、372、374、和376進(jìn)行編程將輸入INO導(dǎo)電地耦合至輸出OUT,從而將輸入INO的信號(hào)路由至輸出OUT。
[0053]再如,對(duì)具有為邏輯“I”的位的配置存儲(chǔ)器單元376和對(duì)具有為邏輯“O”的位的配置存儲(chǔ)器單元370、372、和374進(jìn)行編程將輸入IN12導(dǎo)電地耦合至輸出0UT,從而將來自輸入INl2的信號(hào)路由至輸出OUTο在此示例中,配置存儲(chǔ)器單元360、362、364、和366可以存儲(chǔ)無關(guān)位。換言之,所有的輸入INO至INl I從輸出OUT解耦合,這不依賴于配置存儲(chǔ)器單元360、362、364、和366中存儲(chǔ)的位值,只要配置存儲(chǔ)器單元370、372、和374存儲(chǔ)為邏輯“O”的位。
[0054]即使在使用圖2的查找表并且連接所有輸入的情況下,一些配置存儲(chǔ)器單元210至226可以基于查找表的連通性來存儲(chǔ)無關(guān)位。圖4是根據(jù)一個(gè)實(shí)施例的具有三輸入查找表的說明性組合邏輯電路的圖示,該三輸入查找表存儲(chǔ)無關(guān)位。
[0055]如圖所示,組合電路可以包括三輸入查找表(3-LUT)430、邏輯與門410和420、輸出0UT、以及輸入X、Y和Z。輸入X可以耦合至3-LUT 430的輸入A以及邏輯與門410的輸入之一。由于邏輯與門410的輸出耦合至3-LUT430的輸入B,當(dāng)輸入A接收為邏輯“O”的信號(hào)時(shí),輸入B可以不接收為邏輯“I”的信號(hào)。3-LUT輸入A和B的這種輸入組合有時(shí)還被稱為3-LUT的滿足性無關(guān)。因此,如果3-LUT 430包括圖2的查找表,配置存儲(chǔ)器單元214和224可以存儲(chǔ)無關(guān)位。
[0056]考慮如下場景,3-LUT 430實(shí)現(xiàn)邏輯功能((A AND B)0R NOT C)。由于輸入Z耦合至3-LUT 430的輸入C以及邏輯與門420的輸入,輸出OUT可以實(shí)現(xiàn)邏輯功能(((A AND B)0RNOT OAND C),這歸納為(A AND B)。換言之,輸出OUT獨(dú)立于3-LUT 430的輸入C。在這種場景中,3-LUT 430的輸入C有時(shí)也被稱為可觀察性無關(guān)。因此,3-LUT 430的輸入C可以從輸入Z解耦合并且被設(shè)置為一個(gè)常值(例如,設(shè)置為邏輯“I”)。如果3-LUT430包括圖2的查找表并且3-LUT 430的輸入C耦合至邏輯“1”,配置存儲(chǔ)器單元210、212、214和216可以存儲(chǔ)無關(guān)位。如果3-LUT 430包括圖2的查找表并且3-LUT 430的輸入C耦合至邏輯“O”,配置存儲(chǔ)器單元220、222、224和226可以存儲(chǔ)無關(guān)位。
[0057]電路設(shè)計(jì)系統(tǒng)中的CAD工具可以確定電路設(shè)計(jì)(例如,如圖4中所示的)中的與滿足性無關(guān)和可觀察性無關(guān)相關(guān)聯(lián)的無關(guān)位。如果需要,CAD工具還可以保存一些位作為無關(guān)位或?qū)⑦x擇的位設(shè)置為預(yù)先確定的值(例如,如圖2、圖3A和圖3B所示的)。
[0058]圖5中示出根據(jù)一個(gè)實(shí)施例的說明性電路設(shè)計(jì)系統(tǒng)500。系統(tǒng)500可以基于一個(gè)或更多個(gè)處理器,諸如個(gè)人計(jì)算機(jī)、工作站等。(一個(gè)或多個(gè))處理器可以利用網(wǎng)絡(luò)(例如,局域網(wǎng)或廣域網(wǎng))聯(lián)接。這些計(jì)算機(jī)中的存儲(chǔ)器或外置存儲(chǔ)器以及存儲(chǔ)裝置(諸如內(nèi)置和/或外置硬盤)可以用于存儲(chǔ)指令和數(shù)據(jù)。
[0059]基于軟件的組件(諸如計(jì)算機(jī)輔助設(shè)計(jì)工具520和數(shù)據(jù)庫530)駐留在系統(tǒng)500上。在運(yùn)行過程中,可執(zhí)行軟件(諸如計(jì)算機(jī)輔助設(shè)計(jì)工具520的軟件)在系統(tǒng)500的(一個(gè)或多個(gè))處理器上運(yùn)行。數(shù)據(jù)庫530用于存儲(chǔ)數(shù)據(jù)以用于系統(tǒng)500的操作。通常,軟件和數(shù)據(jù)可以被存儲(chǔ)在系統(tǒng)500中的任何計(jì)算機(jī)可讀介質(zhì)(存儲(chǔ)設(shè)備)上。這種存儲(chǔ)設(shè)備可以包括計(jì)算機(jī)存儲(chǔ)器芯片、可移除和固定介質(zhì)(諸如硬盤驅(qū)動(dòng)器)、閃存、致密盤(CD)、數(shù)字通用盤(DVD)、藍(lán)光碟(BD)、其他光介質(zhì)、以及軟盤、磁帶、或任何其他適合的存儲(chǔ)器或存儲(chǔ)裝置。當(dāng)安裝系統(tǒng)500的軟件時(shí),系統(tǒng)500的存儲(chǔ)器具有使系統(tǒng)500中的計(jì)算設(shè)備執(zhí)行不同方法(進(jìn)程)的指令和數(shù)據(jù)。當(dāng)執(zhí)行這些進(jìn)程時(shí),將計(jì)算設(shè)備配置為實(shí)現(xiàn)電路設(shè)計(jì)系統(tǒng)的功能。
[0060]計(jì)算機(jī)輔助設(shè)計(jì)(CAD)工具520(它們中的一些或全部有時(shí)統(tǒng)被稱為CAD工具或電子設(shè)計(jì)自動(dòng)化(EDA)工具)可以由單一供應(yīng)商或由多個(gè)供應(yīng)商提供。CAD工具520可以作為一個(gè)或更多個(gè)工具套件(例如,用于執(zhí)行與在可編程邏輯器件中實(shí)現(xiàn)電路設(shè)計(jì)相關(guān)聯(lián)的任務(wù)的編譯器套件)和/或作為一個(gè)或更多個(gè)獨(dú)立的軟件組件(工具)來提供。(一個(gè)或多個(gè))數(shù)據(jù)庫530可以包括僅由一個(gè)或多個(gè)特定工具訪問的一個(gè)或更多個(gè)數(shù)據(jù)庫,并且可以包括一個(gè)或更多個(gè)共享數(shù)據(jù)庫。共享數(shù)據(jù)庫可以由多個(gè)工具來訪問。例如,第一工具可以在共享數(shù)據(jù)庫中存儲(chǔ)用于第二工具的數(shù)據(jù)。第二工具可以訪問共享數(shù)據(jù)庫以便檢索第一工具存儲(chǔ)的數(shù)據(jù)。這允許一個(gè)工具將信息傳遞給另一個(gè)工具。如果需要的話,工具還可以在彼此之間傳遞信息,無需在共享數(shù)據(jù)庫中存儲(chǔ)信息。
[0061]說明性計(jì)算機(jī)輔助設(shè)計(jì)工具520可以執(zhí)行設(shè)計(jì)過程,該設(shè)計(jì)過程有時(shí)也被稱為設(shè)計(jì)編制。設(shè)計(jì)過程可以開始于集成電路設(shè)計(jì)的功能規(guī)范的構(gòu)想(例如,集成電路設(shè)計(jì)的功能或性能描述)。電路設(shè)計(jì)者可以利用設(shè)計(jì)和約束輸入工具564來指定所需電路設(shè)計(jì)的功能操作。設(shè)計(jì)和約束輸入工具564可以包括例如設(shè)計(jì)和約束輸入輔助566和設(shè)計(jì)編輯器568這樣的工具。設(shè)計(jì)和約束輸入輔助(諸如輔助566)可以用于幫助電路設(shè)計(jì)者從現(xiàn)有的電路設(shè)計(jì)庫中查找所需的電路設(shè)計(jì),并且可以向電路設(shè)計(jì)者提供計(jì)算機(jī)輔助的幫助以用于輸入(指定)所需的電路設(shè)計(jì)。
[0062]如一個(gè)示例,設(shè)計(jì)和約束輸入輔助566可以用于為用戶呈現(xiàn)選項(xiàng)的屏幕。用戶可以在屏幕上的選項(xiàng)中點(diǎn)擊以選擇正在設(shè)計(jì)的電路是否應(yīng)該具有某些特性。例如,用戶可以選擇正在設(shè)計(jì)的電路是否應(yīng)該包括用于錯(cuò)誤檢測和校正的錯(cuò)誤碼。
[0063]設(shè)計(jì)編輯器568可以用于輸入設(shè)計(jì)(例如,通過輸入多行硬件描述語言碼),可以用于編輯從庫中獲得的設(shè)計(jì)(例如,利用設(shè)計(jì)和約束輸入輔助),或可輔助用戶選擇并編輯適當(dāng)?shù)念A(yù)包裝碼或設(shè)計(jì)。
[0064]設(shè)計(jì)和約束輸入工具564可以用于允許電路設(shè)計(jì)者利用任何適合的格式提供期望的電路設(shè)計(jì)。例如,設(shè)計(jì)和約束輸入工具564可以包括允許電路設(shè)計(jì)者利用真值表輸入電路設(shè)計(jì)的工具。真值表可以利用文本文件或時(shí)序圖來指定并且可以從庫中導(dǎo)入。真值表電路設(shè)計(jì)和約束輸入可以用于大型電路的一部分或用于完整的電路。
[0065]再如,設(shè)計(jì)和約束輸入工具564可以包括原理圖獲取工具。原理圖獲取工具可以允許電路設(shè)計(jì)者從組成部分(諸如邏輯門和邏輯門群組)可視地構(gòu)建集成電路設(shè)計(jì)。預(yù)先存在的集成電路設(shè)計(jì)庫可以用于允許利用原理圖獲取工具導(dǎo)入一個(gè)設(shè)計(jì)的所需部分。
[0066]如果需要,設(shè)計(jì)和約束輸入工具564可以允許電路設(shè)計(jì)者利用硬件描述語言向電路設(shè)計(jì)系統(tǒng)500提供電路設(shè)計(jì),該硬件描述語言諸如是Verilog硬件描述語言(VerilogHDL)、超高速集成電路硬件描述語言(VHDLhSystemVerilog、或高級(jí)電路描述語言(諸如OpenCL或SystemC),這里僅舉幾例。通過利用編輯器568寫入硬件描述語言碼,集成電路設(shè)計(jì)的設(shè)計(jì)者能夠輸入電路設(shè)計(jì)。如果需要,可以從用戶維護(hù)的或商業(yè)庫中導(dǎo)入代碼塊。
[0067]在已經(jīng)利用設(shè)計(jì)和約束輸入工具564輸入設(shè)計(jì)后,可以使用性能模擬工具572來模擬電路設(shè)計(jì)的功能性能。如果該設(shè)計(jì)的功能性能不完整或不正確,電路設(shè)計(jì)者能夠利用設(shè)計(jì)和約束輸入工具564對(duì)電路設(shè)計(jì)做出改變。在已經(jīng)利用工具574執(zhí)行綜合操作之前,新的電路設(shè)計(jì)的功能操作可以利用性能模擬工具572來驗(yàn)證。如果需要的話,模擬工具(諸如性能模擬工具572)還可以用在設(shè)計(jì)流程的其他階段(例如,在邏輯綜合之后)。性能模擬工具572的輸出可以采用任何適合的格式(例如,真值表、時(shí)序圖等)提供給電路設(shè)計(jì)者。
[0068]一旦已經(jīng)確定電路設(shè)計(jì)的功能操作是令人滿意的,則邏輯綜合和優(yōu)化工具574就可以產(chǎn)生電路設(shè)計(jì)的門級(jí)網(wǎng)絡(luò)表,例如利用與代工廠支持的目標(biāo)進(jìn)程有關(guān)的特定庫的門電路,該代工廠被選擇用于制造集成電路??商娲?,邏輯綜合和優(yōu)化工具574可以利用目標(biāo)可編程邏輯器件(即,位于特定可編程邏輯器件產(chǎn)品或產(chǎn)品族的邏輯和互連資源中)產(chǎn)生電路設(shè)計(jì)的門級(jí)網(wǎng)絡(luò)表。
[0069]通過作出適當(dāng)?shù)挠布x擇,邏輯綜合和優(yōu)化工具574可以優(yōu)化設(shè)計(jì),以便基于邏輯設(shè)計(jì)者利用工具564輸入的電路設(shè)計(jì)數(shù)據(jù)和約束數(shù)據(jù)在電路設(shè)計(jì)中實(shí)現(xiàn)不同的邏輯功能。如一個(gè)示例,邏輯綜合和優(yōu)化工具574可以標(biāo)識(shí)設(shè)計(jì)中的無關(guān)位,這些無關(guān)位與滿足性無關(guān)和可觀察性無關(guān)相關(guān)(例如,參見圖4)。
[0070]如果需要,邏輯綜合和優(yōu)化工具574可以基于標(biāo)識(shí)的無關(guān)位來修改電路設(shè)計(jì)。在圖4的示例中,3-LUT 430的輸入C是可觀察性無關(guān),邏輯綜合和優(yōu)化工具574可以斷開3-LUT430的輸入C與輸入Z的連接并將3-LUT 430的輸入C關(guān)聯(lián)至常值(例如,邏輯“I”)。如一個(gè)示例,考慮圖2的查找表實(shí)現(xiàn)3-LUT 430。在此示例中,如果3-LUT 430的輸入C關(guān)聯(lián)至邏輯“I”,則配置存儲(chǔ)器單元210、212、214和216可以存儲(chǔ)無關(guān)位;并且如果3-LUT 430的輸入C關(guān)聯(lián)至邏輯“O”,則配置存儲(chǔ)器單元220、222、224和226可以存儲(chǔ)無關(guān)位。如果需要,邏輯綜合和優(yōu)化工具574可以在電路設(shè)計(jì)中標(biāo)記無關(guān)位或?qū)o關(guān)位分配給一組無關(guān)位。
[0071]在一些實(shí)施例中,邏輯綜合和優(yōu)化工具574可以執(zhí)行工藝映射。在工藝映射過程中,邏輯綜合和優(yōu)化工具574可以將電路設(shè)計(jì)的元件映射到可放置和路由的單元庫的元件上。這種單元庫可以包括簡單的邏輯門(例如,邏輯與門、邏輯或門、邏輯取反門、邏輯與非門、邏輯異或門等)、查找表、寄存器、存儲(chǔ)塊、和/或其他庫單元。
[0072]如一個(gè)示例,考慮如下場景,其中單元庫包括K-輸入LUT。在此場景中,邏輯綜合和優(yōu)化工具574可以將電路設(shè)計(jì)元件的至少一部分映射至(K-1)-輸入LUT并將該LUT的第K個(gè)輸入關(guān)聯(lián)至常值(例如,邏輯“O”或邏輯“I”),從而產(chǎn)生圖2中所示的2~(K-1)個(gè)無關(guān)位。
[0073]在利用工具574進(jìn)行邏輯綜合和優(yōu)化后,電路設(shè)計(jì)系統(tǒng)可以使用諸如放置和路由工具576這樣的工具進(jìn)行物理設(shè)計(jì)步驟(布局合成操作)。放置和路由工具576用于確定在何處放置工具574產(chǎn)生的門級(jí)網(wǎng)絡(luò)表的每個(gè)門。例如,如果兩個(gè)計(jì)數(shù)器彼此交互,放置和路由工具576可以在相鄰區(qū)域確定這些計(jì)數(shù)器的位置以便減少互連延遲或滿足定時(shí)要求,該定時(shí)要求規(guī)定了最大允許的互連延遲。放置和路由工具576為任何目標(biāo)集成電路(例如,為給定的可編程集成電路,諸如現(xiàn)場可編程門陣列(FPGA))順序地并且高效地創(chuàng)建電路設(shè)計(jì)的實(shí)現(xiàn)。
[0074]在一些實(shí)施例中,放置和路由工具576可以將資源添加至可以包括無關(guān)位的電路設(shè)計(jì)中以用于電路設(shè)計(jì)。例如,放置和路由工具576可以將虛擬電路(例如,一個(gè)或更多個(gè)查找表)添加到電路設(shè)計(jì)中,而無需將虛擬電路連接至電路設(shè)計(jì)的其他部分。如果需要,放置和路由工具576可以將虛擬電路與剩余的電路設(shè)計(jì)一起放置。放置和路由工具576可以將虛擬電路放置在集成電路的實(shí)現(xiàn)電路設(shè)計(jì)的預(yù)先確定的限制區(qū)域中、分布在集成電路的所選部分之間、分布在整個(gè)集成電路上,或者產(chǎn)生上述的任何組合。
[0075]在一些實(shí)施例中,CAD工具520可以編譯以有限數(shù)量可利用資源為目標(biāo)的電路設(shè)計(jì)。例如,CAD工具520可以編譯電路設(shè)計(jì)以便在圖1的可編程邏輯器件100上實(shí)現(xiàn),該可編程邏輯器件可在可編程邏輯區(qū)域140或互連資源115數(shù)量方面具有有限的資源,這里僅舉幾例。在此實(shí)施例中,放置和路由工具576可以利用可編程邏輯器件100的有限資源實(shí)現(xiàn)電路設(shè)計(jì)。如果需要,放置和路由工具576可以保存現(xiàn)有的資源以用于存儲(chǔ)無關(guān)位并僅利用未保存的資源實(shí)現(xiàn)電路設(shè)計(jì)。
[0076]如果需要,放置和路由工具576可以在電路設(shè)計(jì)中標(biāo)記無關(guān)位或?qū)o關(guān)位分配給一組無關(guān)位。例如,在放置和路由操作之后,放置和路由工具576可以分配路由多路復(fù)用器的無關(guān)位(例如,圖3A和圖3B的路由多路復(fù)用器300和350的無關(guān)位)給一組無關(guān)位。
[0077]工具(諸如工具574和576)可以是編譯器套件的一部分(例如,可編程邏輯器件供應(yīng)商提供的編譯器工具套件的一部分)。根據(jù)本發(fā)明,工具(諸如工具574、576和578)還可以包括定時(shí)分析工具,諸如定時(shí)估測器。這允許在實(shí)際生產(chǎn)集成電路之前工具574和576滿足性能要求(例如,定時(shí)要求)。
[0078]在已經(jīng)利用放置和路由工具576產(chǎn)生所需電路設(shè)計(jì)的實(shí)現(xiàn)之后,可以使用分析工具578分析并測試該設(shè)計(jì)的實(shí)現(xiàn)。例如,分析工具578可以包括定時(shí)分析工具、功率分析工具、或形式驗(yàn)證工具,這里僅舉幾例。
[0079]在已經(jīng)利用CAD工具520并依靠針對(duì)性的集成電路技術(shù)完成令人滿意的優(yōu)化操作之后,CAD工具520可以產(chǎn)生集成電路的掩模級(jí)布局描述或用于對(duì)可編程邏輯器件進(jìn)行編程的配置數(shù)據(jù)。
[0080]利用圖5的CAD工具520產(chǎn)生集成電路的掩模級(jí)布局描述所涉及的說明性操作在圖6中示出。如圖6所示,電路設(shè)計(jì)者可以首先提供設(shè)計(jì)規(guī)范602。設(shè)計(jì)規(guī)范602通常可以是以應(yīng)用程序代碼(例如,C代碼、C++代碼、SystemC碼、OpenCL碼等)的形式提供的性能描述。在一些場景中,電路設(shè)計(jì)者可以采用寄存器傳送級(jí)(RTL)描述606的形式來提供設(shè)計(jì)規(guī)范。
[0081]RTL描述可以具有在寄存器傳送級(jí)上描述電路功能的任何形式。例如,RTL描述可以利用硬件描述語言來提供,該硬件描述語言例如Verilog硬件描述語言(Verilog HDL或Verilog)、SystemVerilog硬件描述語言(SystemVerilog HDL或SystemVerilog)、或超高速集成電路硬件描述語言(VHDL)。如果需要,可以將RTL描述的一部分或全部作為原理圖表示來提供。
[0082]通常,性能設(shè)計(jì)規(guī)范602可以包括不定時(shí)的或部分定時(shí)的功能碼(S卩,應(yīng)用程序代碼不描述周期性的硬件行為),而RTL描述606可以包括完全定時(shí)的設(shè)計(jì)描述,該設(shè)計(jì)描述在寄存器傳送級(jí)上細(xì)化電路的周期性行為。
[0083]設(shè)計(jì)規(guī)范602或RTL描述606還可以包括目標(biāo)標(biāo)準(zhǔn),諸如面積利用、功耗、延遲最小化、時(shí)鐘頻率優(yōu)化、或它們的任何組合。優(yōu)化約束和目標(biāo)標(biāo)準(zhǔn)可以被統(tǒng)稱為約束。
[0084]這些約束能夠被提供給單獨(dú)的數(shù)據(jù)路徑、單獨(dú)的數(shù)據(jù)路徑的一些部分、設(shè)計(jì)的一些部分、或提供給整個(gè)設(shè)計(jì)。例如,約束可以與設(shè)計(jì)規(guī)范602、RTL描述606(例如,作為編譯指示或作為聲明)在一個(gè)約束文件中或通過用戶輸入(例如,利用圖5的設(shè)計(jì)和約束輸入工具564) 一起提供,這里僅舉幾例。
[0085]在設(shè)計(jì)規(guī)范602或RTL描述606中包括的約束可以采用變量、參數(shù)、編譯器指令、宏命令、編譯指示、或聲明的形式傳送給CAD工具520,這里僅舉幾例。CAD工具520可以使用約束文件,該約束文件可以包括約束的一部分或全部。這種約束文件可以與設(shè)計(jì)規(guī)范602或RTL描述606—起被包含。在一些場景中,約束的一部分或全部可以嵌入在電路設(shè)計(jì)中??商娲?,約束可能已經(jīng)利用設(shè)計(jì)和約束輸入工具564來定義(參見圖5)。
[0086]在步驟604處,可以進(jìn)行性能綜合(有時(shí)也被稱為算法合成)以便將性能描述傳送至IjRTL描述606中。如果已經(jīng)以RTL描述的形式提供了設(shè)計(jì)規(guī)范,則可以跳過步驟604。
[0087]在步驟618處,性能模擬工具572可以執(zhí)行RTL描述的RTL模擬,RTL模擬可以驗(yàn)證RTL描述的功能性能。如果RTL描述的功能性能不完整或不正確,電路設(shè)計(jì)者能夠?qū)DL碼(作為例子)做出改變。在RTL模擬618過程中,從模擬RTL描述的性能獲得的實(shí)際結(jié)果可以與預(yù)期結(jié)果相比較。
[0088]在步驟608期間,邏輯綜合操作可以利用圖5的邏輯綜合和優(yōu)化工具574產(chǎn)生門級(jí)描述610。如果需要,邏輯綜合操作可以標(biāo)識(shí)RTL描述606中的和/或所產(chǎn)生的門級(jí)描述610中的無關(guān)位,這些無關(guān)位與滿足性無關(guān)和可觀察性無關(guān)相關(guān)聯(lián)(例如,參見圖4)。邏輯綜合操作可以標(biāo)記標(biāo)識(shí)的無關(guān)位或?qū)?biāo)識(shí)的無關(guān)位分配給一組無關(guān)位。
[0089]在步驟612期間,物理綜合操作(利用例如放置和路由工具576進(jìn)行的放置和路由以及優(yōu)化操作)可以在目標(biāo)集成電路上的優(yōu)選位置中放置并連接門級(jí)描述610中的不同門,以滿足給定的目標(biāo)標(biāo)準(zhǔn)(例如,使面積最小化并使路由效率最大化或使路徑延遲最小化并使時(shí)鐘頻率最大化或它們的任何組合)。物理綜合612的輸出是掩模級(jí)布局描述616。在一些實(shí)施例中,掩模級(jí)布局描述616可以包括可由位流具體化的配置數(shù)據(jù)。配置數(shù)據(jù)可以配置可編程集成電路(諸如圖1的PLD 100)的至少一部分。
[0090]如果需要,物理綜合操作可以將資源添加到門級(jí)描述610,目的是增加無關(guān)位的數(shù)量。例如,物理綜合操作可以將虛擬門(例如,一個(gè)或更多個(gè)查找表)添加到門級(jí)描述610,而無需將虛擬門連接至門級(jí)網(wǎng)絡(luò)表的其他部分。如果需要,物理綜合操作可以將虛擬門與剩余門級(jí)網(wǎng)絡(luò)表一起放置。物理綜合操作可以將虛擬電路放置在預(yù)先確定的集成電路的限制區(qū)域中、分布在集成電路的所選部分之間、分布在整個(gè)集成電路上,或者產(chǎn)生上述的任何組入口 ο
[0091]在一些實(shí)施例中,物理綜合612可以將具有有限資源的集成電路(例如,圖1的PLD100)作為目標(biāo),并且物理綜合操作可以保存集成電路的有限資源的一些(例如,通過將虛擬門添加到門級(jí)描述610和/或通過減少集成電路的可利用資源的數(shù)量)。在一些實(shí)施例中,物理綜合操作可以保存預(yù)定數(shù)量的可編程邏輯區(qū)域140和/或預(yù)定數(shù)量的互連資源115。物理綜合操作可以使用保存的資源來存儲(chǔ)無關(guān)位并且只利用未保存的資源來實(shí)現(xiàn)門級(jí)描述610。如果需要,物理綜合操作可以在電路設(shè)計(jì)中標(biāo)記無關(guān)位或?qū)o關(guān)位分配給一組無關(guān)位。
[0092]電路設(shè)計(jì)系統(tǒng)500可以包括定時(shí)估測器(例如,形成為邏輯綜合和優(yōu)化工具574、放置和路由工具576、或分析工具578的一部分),該定時(shí)估測器可以用于在步驟614期間估測電路設(shè)計(jì)的同步元件之間的延遲。例如,定時(shí)估測器可以估測時(shí)序元件(諸如寄存器)與存儲(chǔ)電路之間延遲(例如,基于互連的長度、中間組合邏輯等)。如果需要,可以基于判據(jù)來估測延遲,這些判據(jù)諸如是裕量(例如,要求的到達(dá)時(shí)間與信號(hào)的到達(dá)時(shí)間之間的差)、裕量比、互連阻塞、或其他定時(shí)判據(jù)。電路設(shè)計(jì)系統(tǒng)500可以使用估測的延遲來確定多組電路的位置,同時(shí)幫助確保延遲滿足定時(shí)要求(例如,關(guān)鍵的路徑延遲要求)或其他性能約束。
[0093]電路設(shè)計(jì)系統(tǒng)500可以包括可以用于執(zhí)行錯(cuò)誤碼生成和插入的工具(例如,該工具嵌入在邏輯綜合和優(yōu)化工具574中、在放置和路由工具576中、和/或在分析工具578中)。如圖所示,錯(cuò)誤碼生成和插入619可以保存無關(guān)位以用于邏輯綜合608和/或物理綜合612期間的錯(cuò)誤碼的存儲(chǔ)。錯(cuò)誤碼生成和插入619可以基于掩模級(jí)布局描述616來產(chǎn)生錯(cuò)誤碼。如果需要,錯(cuò)誤碼生成和插入619可以基于門級(jí)布局描述610來產(chǎn)生錯(cuò)誤碼。
[0094]錯(cuò)誤碼生成和插入619可以基于任何錯(cuò)誤檢查方案來產(chǎn)生錯(cuò)誤碼。例如,錯(cuò)誤碼生成和插入619可以產(chǎn)生奇偶校驗(yàn)位以用于多維奇偶校驗(yàn)檢查(例如,二維奇偶校驗(yàn)檢查)或用于漢明碼,或產(chǎn)生校驗(yàn)和位作為多項(xiàng)式除法的余數(shù)以用于循環(huán)冗余校驗(yàn)(CRC),這里僅舉幾例。
[0095]奇偶校驗(yàn)位表明數(shù)據(jù)字中具有值邏輯“I”的位數(shù)量是奇數(shù)還是偶數(shù)。奇偶校驗(yàn)位可以表明偶數(shù)奇偶校驗(yàn)或者奇數(shù)奇偶校驗(yàn)。對(duì)于偶數(shù)奇偶校驗(yàn),如果數(shù)據(jù)字中具有值邏輯“I”的位數(shù)量是奇數(shù),奇偶校驗(yàn)位具有值邏輯“I”,而如果數(shù)據(jù)字中具有值邏輯“I”的位數(shù)量是零或偶數(shù),奇偶校驗(yàn)位具有值邏輯“O”。在奇數(shù)奇偶校驗(yàn)的情況中,如果數(shù)據(jù)字中具有值邏輯“I”的位數(shù)量是奇數(shù),奇偶校驗(yàn)位具有值邏輯“O”,而如果數(shù)據(jù)字中具有值邏輯“I”的位數(shù)量是零或偶數(shù),奇偶校驗(yàn)位具有值邏輯“I”。
[0096]用于偶數(shù)奇偶校驗(yàn)的奇偶校驗(yàn)位檢查可以利用邏輯異或(XOR)門來產(chǎn)生。用于奇數(shù)奇偶校驗(yàn)的奇偶校驗(yàn)位檢查可以在經(jīng)過取反器后利用XOR門來產(chǎn)生。然而,奇偶校驗(yàn)位可能不會(huì)檢測偶數(shù)個(gè)錯(cuò)誤何時(shí)出現(xiàn)在傳輸?shù)臄?shù)據(jù)字中。例如,如果接收的數(shù)據(jù)字的兩個(gè)位從邏輯“O”變化到邏輯“I”,為該數(shù)據(jù)字計(jì)算的奇偶校驗(yàn)位具有與傳輸該數(shù)據(jù)字之前計(jì)算的奇偶校驗(yàn)位相同的值。而且,單獨(dú)的奇偶校驗(yàn)位不能校正錯(cuò)誤,因?yàn)閿?shù)據(jù)字內(nèi)損壞的位的位置是未知的。然而,使用被安排為使得數(shù)據(jù)字內(nèi)不同的損壞位產(chǎn)生不同的錯(cuò)誤結(jié)果的多個(gè)奇偶校驗(yàn)位能夠檢測損壞位的位置并因此能夠進(jìn)行錯(cuò)誤校正。
[0097]如一個(gè)示例,圖7示出基于二維奇偶校驗(yàn)碼(2DPCC)的用于位的二維陣列的錯(cuò)誤碼生成,該二維奇偶校驗(yàn)碼能夠檢測損壞位的位置并因此能夠進(jìn)行錯(cuò)誤校正。
[0098]如圖所示,該二維陣列可以具有六行(包括行710)和四列(包括列720)。錯(cuò)誤碼生成器可以為六個(gè)行的每一個(gè)產(chǎn)生行奇偶校驗(yàn)位并且為四個(gè)列的每一個(gè)產(chǎn)生列奇偶校驗(yàn)位。如果需要,錯(cuò)誤碼生成器可以為行奇偶校驗(yàn)位產(chǎn)生額外的列奇偶校驗(yàn)位。可替代地,錯(cuò)誤碼生成器可以為列奇偶校驗(yàn)位產(chǎn)生額外的行奇偶校驗(yàn)位。
[0099]錯(cuò)誤碼生成器可以為行奇偶校驗(yàn)和列奇偶校驗(yàn)產(chǎn)生偶數(shù)奇偶校驗(yàn)位,為行奇偶校驗(yàn)產(chǎn)生奇數(shù)奇偶校驗(yàn)位并為列奇偶校驗(yàn)產(chǎn)生偶數(shù)奇偶校驗(yàn)位,或者為行奇偶校驗(yàn)產(chǎn)生偶數(shù)奇偶校驗(yàn)位并為列奇偶校驗(yàn)產(chǎn)生奇數(shù)奇偶校驗(yàn)位。如圖所示,錯(cuò)誤碼生成器可以為行奇偶校驗(yàn)和為列奇偶校驗(yàn)產(chǎn)生奇數(shù)奇偶校驗(yàn)位。例如,行710包括具有值邏輯“I”的偶數(shù)個(gè)位。因此,行奇偶校驗(yàn)位715具有值邏輯“I”。再如,列720包括具有值邏輯“I”的偶數(shù)個(gè)位,這意味著列奇偶校驗(yàn)位725具有值邏輯“I”。錯(cuò)誤碼生成器可以在存儲(chǔ)器中存儲(chǔ)生成的奇偶校驗(yàn)位。
[0100]錯(cuò)誤碼檢查器可以訪問存儲(chǔ)器以檢索存儲(chǔ)的奇偶校驗(yàn)位,目的是進(jìn)行錯(cuò)誤檢測和錯(cuò)誤校正。錯(cuò)誤碼檢查器可以計(jì)算行奇偶校驗(yàn)位和列奇偶校驗(yàn)位并將計(jì)算的行奇偶校驗(yàn)位和列奇偶校驗(yàn)位與存儲(chǔ)的奇偶校驗(yàn)位相比較。在計(jì)算的行奇偶校驗(yàn)位與存儲(chǔ)的行奇偶校驗(yàn)位的比較中的不匹配可以表示相應(yīng)行中存在錯(cuò)誤。在計(jì)算的列奇偶校驗(yàn)位與存儲(chǔ)的列奇偶校驗(yàn)位的比較中的不匹配可以表示相應(yīng)列中存在錯(cuò)誤。檢測到行中存在錯(cuò)誤和列中存在錯(cuò)誤可以表示該行和該列的交叉點(diǎn)上的位中存在錯(cuò)誤。如果需要,通過將檢測到的位的值取反,錯(cuò)誤碼檢查器可以校正檢測到的錯(cuò)誤。
[0101]如一個(gè)示例,考慮如下場景,其中圖7的位的二維陣列的位值和該位的二維陣列的行和列奇偶校驗(yàn)位存儲(chǔ)在存儲(chǔ)器(諸如配置存儲(chǔ)器單元)中或寄存器中。進(jìn)一步考慮,單粒子翻轉(zhuǎn)(SEU)撞擊在行710和列720的交叉點(diǎn)處存儲(chǔ)位的存儲(chǔ)器并將該位的值從邏輯“O”變?yōu)檫壿嫛癐”。在這種場景中,錯(cuò)誤代碼檢查器可以計(jì)算行710的奇數(shù)奇偶校驗(yàn)并確定行奇偶校驗(yàn)位715具有值邏輯“O”。錯(cuò)誤代碼檢查器可以進(jìn)一步計(jì)算列720的奇數(shù)奇偶校驗(yàn)并確定列奇偶校驗(yàn)位725具有值邏輯“O”。錯(cuò)誤代碼檢查器可以與存儲(chǔ)在存儲(chǔ)器中的相應(yīng)奇偶校驗(yàn)位進(jìn)行比較并檢測行710和列720的交叉點(diǎn)處的錯(cuò)誤。如果需要,錯(cuò)誤代碼檢查器可以通過將位值從邏輯“I”變?yōu)檫壿嫛癘”來校正行710和列720的交叉點(diǎn)處的檢測到的錯(cuò)誤。
[0102]在一些實(shí)施例中,錯(cuò)誤碼(例如,行和列奇偶校驗(yàn)位)可以被存儲(chǔ)在無關(guān)存儲(chǔ)器單元中。圖8是根據(jù)一個(gè)實(shí)施例的說明性過程的圖示,該過程用于使用無關(guān)位產(chǎn)生錯(cuò)誤碼并將其存儲(chǔ)在二維存儲(chǔ)器單元陣列的無關(guān)存儲(chǔ)器單元中。
[0103]如圖所示,該二維存儲(chǔ)器單元陣列可以具有七行和五列。該二維存儲(chǔ)器單元陣列可以存儲(chǔ)無關(guān)位A、B、C、D、E、F、G、H、I和J。錯(cuò)誤碼生成器可以基于無關(guān)位為七行中的每一行和五列中的每一列產(chǎn)生奇數(shù)奇偶校驗(yàn)。為此目的,錯(cuò)誤碼生成器可以基于存儲(chǔ)在這些行的每一行中和這些列的每一列中的位值的奇偶校驗(yàn)來提取用于無關(guān)位的約束。
[0104]例如,錯(cuò)誤碼生成器可以確定A和D必須具有值邏輯“O”(即,A = 0,D = 0)以用于行I和行3的奇數(shù)奇偶校驗(yàn),E和F必須具有值邏輯“I”以用于行4和行5的奇數(shù)奇偶校驗(yàn),B或C中確切的一個(gè)必須具有值邏輯“I”(即,B XOR C=I)以用于行2的奇數(shù)奇偶校驗(yàn),G和H兩者必須具有相同的邏輯值(即,G XOR H=O)以用于行6的奇數(shù)奇偶校驗(yàn),并且I和J兩者必須具有相同的邏輯值(即,I XOR J = O)以用于行7的奇數(shù)奇偶校驗(yàn)。
[0105]類似地,錯(cuò)誤碼生成器可以確定B和G中確切的一個(gè)、A和I中確切的一個(gè)、以及D和J中確切的一個(gè)必須具有值邏輯“I”(即,B XOR G=I,A XOR 1 = 1,D XOR J=I)以分別用于列1、行2和行3的奇數(shù)奇偶校驗(yàn)。錯(cuò)誤碼生成器可以進(jìn)一步確定E和F以及C和H必須具有相同的邏輯值(即,E XOR F = O,C XOR H=O)以分別用于列4和行5的奇數(shù)奇偶校驗(yàn)。
[0106]這些約束表示線性方程組模2,錯(cuò)誤碼生成器可以解該線性方程組以確定奇偶校驗(yàn)位。例如,由于A必須具有值邏輯“I”并且A XOR I必須具有值邏輯“I”,1必須具有值邏輯“O”。而且,因?yàn)橛屑s束I XOR J = O和D XOR J = I,J必須具有值邏輯“O”。
[0107]B、C、G和H可以具有兩個(gè)不同的解,并且當(dāng)一個(gè)變量可能有多個(gè)解時(shí),錯(cuò)誤碼生成器可以任意地選擇一個(gè)值用于這些變量之一。例如,錯(cuò)誤碼生成器可以選擇B具有值邏輯“I”。在這種示例中,C必須具有值邏輯“O”(因?yàn)橛屑s束B XOR C = O),11必須具有值邏輯“O”(因?yàn)橛屑s束C XOR H=O),并且G必須具有值邏輯“O”(因?yàn)橛屑s束G XOR H=O)。在另一示例中,錯(cuò)誤碼生成器可以選擇B具有值邏輯“O”。在這種示例中,C必須具有值邏輯“I”,H必須具有值邏輯“I”,并且G必須具有值邏輯“I”。
[0108]錯(cuò)誤碼生成器可以分別在無關(guān)存儲(chǔ)器單元(具有無關(guān)位A、B、C、D、E、F、G、H、1、J)中存儲(chǔ)通過解線性方程組所獲得的值(即,值邏輯“O”、邏輯“O”、邏輯“I”、邏輯“O”、邏輯“I”、邏輯“I”、邏輯“I”、邏輯“I”、邏輯“I”、和邏輯“I” )。
[0109]在一些實(shí)施例中,使用行和列奇偶校驗(yàn)的線性方程組可以沒有解。例如,考慮如下場景,其中為包括五列的行(例如,行810)和為包括五行的列(例如,列820)計(jì)算奇偶校驗(yàn)。在這種場景中,錯(cuò)誤碼生成器可以提取對(duì)于行810,D必須具有值邏輯“O”的約束,以及對(duì)于列820,D必須具有值邏輯“I”的約束。因此,對(duì)于D,不存在滿足這些約束的有效解。
[0110]不可滿足的約束的問題可以通過添加更多的行和/或列來克服,使得更多的無關(guān)位是每次奇偶校驗(yàn)計(jì)算的一部分。例如,延伸每個(gè)列(諸如列820)以包括七行得到如上所示的有效解。在一些實(shí)施例中,額外的無關(guān)位可以被添加到具有不可滿足約束的子集中,使得約束變得可解。例如,向列820添加具有值邏輯“I”的一個(gè)無關(guān)位K可以使D能夠具有值邏輯“O”,對(duì)行810這滿足約束。
[0111]在一些實(shí)施例中,錯(cuò)誤碼生成器可以為行產(chǎn)生錯(cuò)誤碼,但不為列產(chǎn)生,或者為列產(chǎn)生,但不為行產(chǎn)生。在這種實(shí)施例中,錯(cuò)誤碼生成器可以提供錯(cuò)誤檢測,因?yàn)闉橄嗤男谢蛄杏?jì)算兩個(gè)不同的奇偶校驗(yàn)位可以表明錯(cuò)誤已經(jīng)出現(xiàn)在該行或列中。然而,錯(cuò)誤碼可能不提供錯(cuò)誤校正,因?yàn)椴辉俅_定錯(cuò)誤的位置。
[0112]在一些實(shí)施例中,錯(cuò)誤碼生成器可以為除了一些行和/或列之外的全部產(chǎn)生錯(cuò)誤碼。如果需要,錯(cuò)誤碼生成器可以為沒有錯(cuò)誤碼產(chǎn)生的行和/或列進(jìn)行標(biāo)記。在以上示例中,錯(cuò)誤碼生成器可以為D選擇值邏輯“O”,使得行810具有奇數(shù)奇偶校驗(yàn),并且將列820標(biāo)記為不具有奇數(shù)奇偶校驗(yàn)。
[0113]計(jì)算行和列奇偶校驗(yàn)僅僅是說明性的并且無意限制本發(fā)明的范圍。如果需要,錯(cuò)誤碼生成器可以分隔位集合,在任何任意數(shù)量的子集中為該位集合產(chǎn)生錯(cuò)誤碼,使得任何兩個(gè)子集可以標(biāo)識(shí)位集合中的唯一位。換言之,位集合中的每一個(gè)位可以位于兩個(gè)子集中并且沒有兩個(gè)位可以位于相同的兩個(gè)子集中。
[0114]如果需要,錯(cuò)誤碼生成器可以將集成電路的不同位置的位包括進(jìn)每個(gè)子集,以降低子集中多于一個(gè)的位受到單粒子翻轉(zhuǎn)(SEU)的損壞,這可能出現(xiàn)在集成電路上的一個(gè)位置上。
[0115]在一些實(shí)施例中,錯(cuò)誤碼生成器可以將位集合分為子集,使得子集包括一個(gè)或更多個(gè)唯一無關(guān)位。在子集中具有唯一無關(guān)碼可以幫助提取并求解約束。
[0116]錯(cuò)誤碼檢查器可以訪問無關(guān)存儲(chǔ)器單元以檢索存儲(chǔ)的奇偶校驗(yàn)位,目的是進(jìn)行錯(cuò)誤檢測和錯(cuò)誤校正。錯(cuò)誤碼檢查器可以計(jì)算奇偶校驗(yàn)位并比較計(jì)算的奇偶校驗(yàn)位和存儲(chǔ)的奇偶校驗(yàn)位。在計(jì)算的奇偶校驗(yàn)位與存儲(chǔ)的奇偶校驗(yàn)位的比較中的不匹配可以表明相應(yīng)的位子集中存在錯(cuò)誤。在共享一個(gè)公共位的兩個(gè)不同位子集中發(fā)現(xiàn)兩個(gè)不匹配可以表明相應(yīng)的位值已經(jīng)損壞(例如,由單粒子翻轉(zhuǎn)導(dǎo)致)。如果需要,錯(cuò)誤碼檢查器可以通過將相應(yīng)位的值取反來校正檢測到的錯(cuò)誤。
[0117]錯(cuò)誤碼檢查器可以進(jìn)行錯(cuò)誤檢查,以便在周期時(shí)間間隔內(nèi)或根據(jù)要求檢測并校正錯(cuò)誤。圖9是說明性錯(cuò)誤檢測和校正電路的圖示,該電路可以檢測和校正配置幀(例如,圖1的PLD 100中一組配置存儲(chǔ)器單元)中的錯(cuò)誤。
[0118]如圖所示,配置幀(諸如配置幀910和915)各自可以包括一組配置存儲(chǔ)器單元(例如,具有無關(guān)存儲(chǔ)器單元A至J的二維存儲(chǔ)器單元陣列存儲(chǔ)通過提取和求解圖8所示的約束而獲得的奇偶校驗(yàn)位)。地址寄存器920和數(shù)據(jù)寄存器930可以協(xié)調(diào)對(duì)配置幀的讀和寫訪問。例如,地址寄存器920可能夠通過地址線925訪問配置幀910,從而將配置幀910通過位線935連接至數(shù)據(jù)寄存器930。為了進(jìn)行錯(cuò)誤檢查,數(shù)據(jù)寄存器930可以在讀操作中訪問配置幀910的配置存儲(chǔ)器單元。
[0119]數(shù)據(jù)寄存器930可以包括讀鎖存器950、ECC計(jì)算單元960、校驗(yàn)子邏輯電路970、以及擦洗控制器940。由于讀取操作,讀鎖存器950可以接收存儲(chǔ)在配置幀910的配置存儲(chǔ)器單元中的值。ECC計(jì)算單元960可以計(jì)算校驗(yàn)子。例如,ECC計(jì)算單元可以為配置幀910的位的每個(gè)子集計(jì)算奇偶校驗(yàn)位,并比較計(jì)算的奇偶校驗(yàn)位(例如,通過提取和求解圖8所示約束而獲得)和從存儲(chǔ)在配置幀910的無關(guān)配置存儲(chǔ)器單元(例如,在圖8的無關(guān)存儲(chǔ)器單元A至J中)中的奇偶校驗(yàn)位檢索的奇偶校驗(yàn)位,以便計(jì)算校驗(yàn)子。
[0120]校驗(yàn)子邏輯電路970可以從ECC計(jì)算單元960接收校驗(yàn)子。如果接收到的校驗(yàn)子為零,校驗(yàn)子邏輯電路970可以認(rèn)為沒有檢測到錯(cuò)誤。如果接收到的校驗(yàn)子為非零,校驗(yàn)子邏輯電路970可以檢測到已經(jīng)檢測到錯(cuò)誤。因此,校驗(yàn)子邏輯電路970可以通過信號(hào)故障(FAULT)通知用戶出現(xiàn)錯(cuò)誤。
[0121]如果需要,校驗(yàn)子邏輯電路970可以產(chǎn)生與檢測到的錯(cuò)誤相關(guān)聯(lián)的錯(cuò)誤位置(例如,地址和位位置)并將錯(cuò)誤位置傳送至地址寄存器920和讀鎖存器950。擦洗控制器940可以通過位線935控制對(duì)配置幀910的寫訪問,目的是校正配置幀910中的定位錯(cuò)誤。
[0122]圖10是處理配置數(shù)據(jù)時(shí)錯(cuò)誤碼生成器可以執(zhí)行的說明性步驟的流程圖,該配置數(shù)據(jù)存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中。在步驟1010期間,錯(cuò)誤碼生成器可以標(biāo)識(shí)配置存儲(chǔ)器單元的無關(guān)子集,這些配置存儲(chǔ)器單元存儲(chǔ)配置數(shù)據(jù)的無關(guān)位。例如,錯(cuò)誤碼生成器可以標(biāo)識(shí)圖8的二維存儲(chǔ)器單元陣列的無關(guān)位A、B、C、D、E、F、G、1、和J。
[0123]在步驟1020期間,錯(cuò)誤碼生成器可以計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第一子集中的配置數(shù)據(jù)的第一子集的第一奇偶校驗(yàn)位。例如,錯(cuò)誤碼生成器可以基于無關(guān)位A為圖8的二維存儲(chǔ)器單元陣列的第一行計(jì)算值邏輯“O”的奇偶校驗(yàn)位。在步驟1030期間,錯(cuò)誤碼生成器可以在配置存儲(chǔ)器單元的無關(guān)子集的第一配置存儲(chǔ)器單元中存儲(chǔ)該第一奇偶校驗(yàn)位。例如,錯(cuò)誤碼生成器可以用具有值邏輯“O”的奇偶校驗(yàn)位替代無關(guān)位A。
[0124]在步驟1040期間,錯(cuò)誤碼生成器可以計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第二子集中的配置數(shù)據(jù)的第二子集的第二奇偶校驗(yàn)位,其中該第一子集和第二子集在一個(gè)公共的預(yù)定配置存儲(chǔ)器單元中重疊。例如,假設(shè)已經(jīng)確定無關(guān)位B存儲(chǔ)值邏輯“O”,則錯(cuò)誤碼生成器可以基于無關(guān)位G為圖8的二維存儲(chǔ)器單元陣列的第一列計(jì)算值邏輯“I”的奇偶校驗(yàn)位。
[0125]在步驟1050期間,錯(cuò)誤碼生成器可以在配置存儲(chǔ)器單元的無關(guān)子集的第二配置存儲(chǔ)器單元中存儲(chǔ)該第二奇偶校驗(yàn)位。例如,錯(cuò)誤碼生成器可以用值邏輯“I”替代無關(guān)位G。
[0126]圖11是根據(jù)一個(gè)實(shí)施例的CAD工具為處理配置數(shù)據(jù)可以執(zhí)行的說明性步驟的流程圖,該配置數(shù)據(jù)實(shí)現(xiàn)在集成電路上的電路設(shè)計(jì)。如一個(gè)示例,圖5的CAD工具520可以進(jìn)行錯(cuò)誤碼生成和插入,諸如圖6的錯(cuò)誤碼生成和插入619。在步驟1110期間,CAD工具可以接收配置數(shù)據(jù)。例如,CAD工具可以接收配置數(shù)據(jù)作為圖6的掩模級(jí)布局描述616的一部分。
[0127]在步驟1120期間,CAD工具可以計(jì)算配置數(shù)據(jù)中的一組無關(guān)位。在步驟1130期間,CAD工具可以為配置數(shù)據(jù)的子集計(jì)算奇偶校驗(yàn)位。在步驟1140期間,CAD工具可以通過用奇偶校驗(yàn)位替代該組無關(guān)位中的一個(gè)位來產(chǎn)生經(jīng)更新的配置數(shù)據(jù)。
[0128]在步驟1150期間,CAD工具可以利用經(jīng)更新的配置數(shù)據(jù)對(duì)集成電路上的配置存儲(chǔ)器單元進(jìn)行編程。例如,CAD工具可以通過將經(jīng)更新的配置數(shù)據(jù)載入到存儲(chǔ)器單元130(利用管腳120和輸入/輸出電路110)來配置圖1的PLD100中的可編程邏輯區(qū)域140。
[0129]圖12是根據(jù)一個(gè)實(shí)施例的電路設(shè)計(jì)系統(tǒng)(例如,圖5的電路設(shè)計(jì)系統(tǒng)500)可執(zhí)行的說明性步驟的流程圖,這些步驟用于處理電路設(shè)計(jì)以便在可編程電路上實(shí)現(xiàn)。在步驟1210期間,電路設(shè)計(jì)系統(tǒng)可以接收電路設(shè)計(jì)(例如,使用圖5的設(shè)計(jì)和約束輸入工具564)。在步驟1220期間,電路設(shè)計(jì)系統(tǒng)可以在可編程電路中保存配置存儲(chǔ)器單元的第一子集,以用于存儲(chǔ)錯(cuò)誤檢查位。例如,當(dāng)執(zhí)行圖5的邏輯綜合和優(yōu)化工具574和/或放置和路由工具576時(shí),電路設(shè)計(jì)系統(tǒng)可以保存配置存儲(chǔ)器單元。
[0130]在步驟1230期間,電路設(shè)計(jì)系統(tǒng)可以產(chǎn)生配置數(shù)據(jù)以便對(duì)可編程電路中的配置存儲(chǔ)器單元的第二子集進(jìn)行編程。在步驟1240期間,電路設(shè)計(jì)系統(tǒng)可以確定配置存儲(chǔ)器單元的第二子集中的配置存儲(chǔ)器單元的無關(guān)子集,該配置存儲(chǔ)器單元存儲(chǔ)無關(guān)位。在步驟1250期間,電路設(shè)計(jì)系統(tǒng)可以對(duì)配置數(shù)據(jù)進(jìn)行錯(cuò)誤檢查編碼。
[0131]本文描述的方法和設(shè)備可以并入到任何適當(dāng)?shù)碾娮友b置或電子裝置系統(tǒng)中。例如,該方法和設(shè)備可以并入到很多類型的裝置中,諸如微處理器或其他1C。示例性IC包括可編程陣列邏輯(PAL)、可編程邏輯陣列(PLA)、現(xiàn)場可編程邏輯陣列(FPLA)、電可編程邏輯器件(EPLD)、電可擦除可編程邏輯器件(EEPLD)、邏輯單元陣列(LCA)、現(xiàn)場可編程門陣列(FPGA)、應(yīng)用專用標(biāo)準(zhǔn)產(chǎn)品(ASSP)、應(yīng)用專用集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、圖形處理單元(GPU),在此僅舉幾例。
[0132]本文描述的集成電路可以是數(shù)據(jù)處理系統(tǒng)的一部分,該數(shù)據(jù)處理系統(tǒng)包括以下組件的一個(gè)或更多個(gè):處理器、存儲(chǔ)器、I/o電路;以及外圍裝置。集成電路能夠用在各種各樣的應(yīng)用中,諸如計(jì)算機(jī)組網(wǎng)、數(shù)據(jù)組網(wǎng)、儀器儀表、視頻數(shù)理、數(shù)字信號(hào)處理、或任何適合的其他應(yīng)用中,在這些應(yīng)用中使用具有錯(cuò)誤檢測和/或錯(cuò)誤校正電路的集成電路的優(yōu)點(diǎn)是令人期望的。
[0133]盡管以特定的順序描述了這些方法操作,但應(yīng)當(dāng)理解的是可以在所描述的操作之間執(zhí)行其他操作,可以調(diào)整所描述的操作以便它們出現(xiàn)在稍微不同的時(shí)刻或所描述的操作可以分布在一個(gè)系統(tǒng)中,該系統(tǒng)允許處理操作出現(xiàn)在與處理相關(guān)的不同的間隔上,只要重疊操作的處理以期望的方式執(zhí)行。
[0134]附加實(shí)施例:
[0135]附加實(shí)施例1。一種用于處理配置數(shù)據(jù)的方法,該配置數(shù)據(jù)被存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中并用于在該可編程集成電路上實(shí)現(xiàn)電路設(shè)計(jì),該方法包括:標(biāo)識(shí)配置存儲(chǔ)器單元的無關(guān)子集,該無關(guān)子集存儲(chǔ)該配置數(shù)據(jù)的無關(guān)位,其中,在無關(guān)位的一個(gè)位中的極性變化保留該可編程集成電路中的電路設(shè)計(jì)實(shí)現(xiàn)的功能;計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第一子集中的該配置數(shù)據(jù)的第一子集的第一錯(cuò)誤檢查位;并且在配置存儲(chǔ)器單元的無關(guān)子集的第一配置存儲(chǔ)器單元中存儲(chǔ)該第一錯(cuò)誤檢查位。
[0136]附加實(shí)施例2。如附加實(shí)施例1所述的方法,其中,配置存儲(chǔ)器單元包括以行和列排列的配置存儲(chǔ)器單元陣列,并且其中,該配置數(shù)據(jù)的該第一子集被存儲(chǔ)在該陣列的配置存儲(chǔ)器單元的行中。
[0137]附加實(shí)施例3。如附加實(shí)施例1所述的方法,進(jìn)一步包括:計(jì)算存儲(chǔ)在這些配置存儲(chǔ)器單元的第二子集中的該配置數(shù)據(jù)的第二子集的第二錯(cuò)誤檢查位,其中,配置存儲(chǔ)器單元的該第一和第二子集在公共的預(yù)定配置存儲(chǔ)器單元中重疊。
[0138]附加實(shí)施例4。如附加實(shí)施例3所述的方法,其中,該配置數(shù)據(jù)的該第二子集被存儲(chǔ)在該陣列的配置存儲(chǔ)器單元的列中。
[0139]附加實(shí)施例5。如附加實(shí)施例3所述的方法,進(jìn)一步包括:在配置存儲(chǔ)器單元的無關(guān)子集中的第二配置存儲(chǔ)器單元中存儲(chǔ)該第二錯(cuò)誤檢查位。
[0140]附加實(shí)施例6。如附加實(shí)施例5所述的方法,進(jìn)一步包括:將第一位置與該第一配置存儲(chǔ)器單元相關(guān)聯(lián);并且為該第二配置存儲(chǔ)器單元選擇第二位置,其中,該第二位置與該第一位置之間具有一個(gè)預(yù)定的距離。
[0141]附加實(shí)施例7。如附加實(shí)施例5所述的方法,進(jìn)一步包括:計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第一子集中的配置數(shù)據(jù)的第一子集的第三錯(cuò)誤檢查位;并且通過比較該第一和第三錯(cuò)誤檢查位來檢測該第一和第三錯(cuò)誤檢查位之間的不匹配,該不匹配表明在配置數(shù)據(jù)的第一子集中存在錯(cuò)誤。
[0142]附加實(shí)施例8。如附加實(shí)施例7所述的方法,進(jìn)一步包括:計(jì)算存儲(chǔ)在配置存儲(chǔ)器單元的第二子集中的該配置數(shù)據(jù)的第二子集的第四錯(cuò)誤檢查位;并且通過比較該第二和第四錯(cuò)誤檢查位來檢測該第二和第四錯(cuò)誤檢查位之間的不匹配,該不匹配表明在配置數(shù)據(jù)的第二子集中存在錯(cuò)誤。
[0143]附加實(shí)施例9。如附加實(shí)施例8所述的方法,進(jìn)一步包括:響應(yīng)于檢測到該第一和第三錯(cuò)誤檢查位之間的不匹配和該第二和第四錯(cuò)誤檢查位之間的不匹配,對(duì)存儲(chǔ)在該公共預(yù)定配置存儲(chǔ)器單元中的該配置數(shù)據(jù)的值取反。
[0144]附加實(shí)施例10。如附加實(shí)施例1所述的方法,其中,標(biāo)識(shí)配置存儲(chǔ)器單元的無關(guān)子集進(jìn)一步包括:將該電路設(shè)計(jì)實(shí)現(xiàn)未使用的配置存儲(chǔ)器單元添加到配置存儲(chǔ)器單元的無關(guān)子集。
[0145]附加實(shí)施例U。如附加實(shí)施例1所述的方法,其中,標(biāo)識(shí)配置存儲(chǔ)器單元的無關(guān)子集進(jìn)一步包括:標(biāo)識(shí)配置存儲(chǔ)器單元的第二子集,其中,該第二子集中的配置存儲(chǔ)器單元存儲(chǔ)該配置數(shù)據(jù)的一個(gè)位,該位具有高邏輯值;并且標(biāo)識(shí)配置存儲(chǔ)器單元的第三子集,其中,該第三子集中的配置存儲(chǔ)器單元存儲(chǔ)該配置數(shù)據(jù)的一個(gè)位,該位具有低邏輯值。
[0146]附加實(shí)施例12。如附加實(shí)施例11所述的方法,進(jìn)一步包括:從配置存儲(chǔ)器單元減去配置存儲(chǔ)器單元的第二子集和第三子集,以確定配置存儲(chǔ)器單元的無關(guān)子集。
[0147]附加實(shí)施例13。一種用于處理配置數(shù)據(jù)的方法,該配置數(shù)據(jù)在集成電路上實(shí)現(xiàn)電路設(shè)計(jì),該方法包括:接收該配置數(shù)據(jù);標(biāo)識(shí)該配置數(shù)據(jù)中的一組無關(guān)位,其中,在無關(guān)位的任何一個(gè)位中的極性變化保留該電路設(shè)計(jì)的功能;為該配置數(shù)據(jù)的子集計(jì)算奇偶校驗(yàn)位;通過用該奇偶校驗(yàn)位替代該組無關(guān)位中的位來產(chǎn)生經(jīng)更新的配置數(shù)據(jù);并且以該經(jīng)更新的配置數(shù)據(jù)對(duì)該集成電路上的配置存儲(chǔ)器單元進(jìn)行編程。
[0148]附加實(shí)施例14。如附加實(shí)施例13所述的方法,其中,產(chǎn)生該經(jīng)更新的配置數(shù)據(jù)進(jìn)一步包括:為該配置數(shù)據(jù)的附加子集計(jì)算附加奇偶校驗(yàn)位,其中,該配置數(shù)據(jù)的該子集和該附加子集共享一個(gè)公共位。
[0149]附加實(shí)施例15。如附加實(shí)施例14所述的方法,進(jìn)一步包括:以該附加的奇偶校驗(yàn)位替代該組無關(guān)位中的一個(gè)附加位。
[0150]附加實(shí)施例16。如附加實(shí)施例15所述的方法,進(jìn)一步包括:計(jì)算該配置數(shù)據(jù)的該子集的第一奇偶校驗(yàn);計(jì)算該配置數(shù)據(jù)的該附加子集的第二奇偶校驗(yàn);比較該計(jì)算的第一奇偶校驗(yàn)與該奇偶校驗(yàn)位和比較該計(jì)算的第二奇偶校驗(yàn)與該附加奇偶校驗(yàn)位,以標(biāo)識(shí)該公共位的位錯(cuò)誤。
[0151 ]附加實(shí)施例17。如附加實(shí)施例16所述的方法,進(jìn)一步包括:響應(yīng)于標(biāo)識(shí)該公共位是錯(cuò)誤的,通過對(duì)該公共位取反來校正該錯(cuò)誤位。
[0152]附加實(shí)施例18。如附加實(shí)施例13所述的方法,其中,為該配置數(shù)據(jù)的該子集計(jì)算該奇偶校驗(yàn)位進(jìn)一步包括:為該組無關(guān)位和該配置數(shù)據(jù)的該子集共同具有的位產(chǎn)生一個(gè)約束。
[0153]附加實(shí)施例19。一種用于處理電路設(shè)計(jì)的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該電路設(shè)計(jì)在可編程電路上實(shí)現(xiàn),該非瞬態(tài)計(jì)算機(jī)介質(zhì)包括指令以用于:接收該電路設(shè)計(jì);在該可編程電路中保存配置存儲(chǔ)器單元的第一子集以用于存儲(chǔ)錯(cuò)誤檢查位;產(chǎn)生配置數(shù)據(jù)以便對(duì)該可編程電路中的配置存儲(chǔ)器單元的第二子集進(jìn)行編程,其中,該配置數(shù)據(jù)在該可編程電路中實(shí)現(xiàn)該電路設(shè)計(jì),并且其中,該第一和第二子集是不相交的;標(biāo)識(shí)配置存儲(chǔ)器單元的第二子集中的配置存儲(chǔ)器單元的無關(guān)子集,該配置存儲(chǔ)器單元存儲(chǔ)無關(guān)位,其中,無關(guān)位的極性變化保留該可編程電路中電路設(shè)計(jì)實(shí)現(xiàn)的功能;并且對(duì)該配置數(shù)據(jù)進(jìn)行錯(cuò)誤檢查編碼。
[0154]附加實(shí)施例20。如附加實(shí)施例19所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,執(zhí)行該錯(cuò)誤檢查編碼進(jìn)一步包括:將配置存儲(chǔ)器單元從該無關(guān)子集添加到配置存儲(chǔ)器單元的第一子集;在該配置數(shù)據(jù)中計(jì)算錯(cuò)誤檢查位;并且在該配置存儲(chǔ)器單元的第一子集中存儲(chǔ)錯(cuò)誤檢查位。
[0155]附加實(shí)施例21。如附加實(shí)施例20所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,計(jì)算錯(cuò)誤檢查位進(jìn)一步包括:為配置數(shù)據(jù)的第一子集計(jì)算第一奇偶校驗(yàn)位;并且為配置數(shù)據(jù)的第二子集計(jì)算第二奇偶校驗(yàn)位,其中,配置數(shù)據(jù)的該第一和第二子集具有一個(gè)公共位。
[0156]附加實(shí)施例22。如附加實(shí)施例19所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,保存配置存儲(chǔ)器單元的第一子集進(jìn)一步包括:通過阻塞到查找表的輸入而在該可編程電路中保存該查找表的配置存儲(chǔ)器單元。
[0157]附加實(shí)施例23。如附加實(shí)施例22所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,產(chǎn)生配置數(shù)據(jù)進(jìn)一步包括:通過解除阻塞到該查找表的輸入而從該第一子集移除配置存儲(chǔ)器單
J L ο
[0158]附加實(shí)施例24。如附加實(shí)施例19所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,保存配置存儲(chǔ)器單元的第一子集進(jìn)一步包括:通過阻塞可配置路由多路復(fù)用器的輸出而在該可編程電路中保存該可配置路由多路復(fù)用器的配置存儲(chǔ)器單元。
[0159]附加實(shí)施例25。如附加實(shí)施例24所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,產(chǎn)生配置數(shù)據(jù)進(jìn)一步包括:通過解除阻塞可配置路由多路復(fù)用器的輸出而從該第一子集移除配置存儲(chǔ)器單元。
[0160]前述內(nèi)容僅說明了本發(fā)明的原則并且本領(lǐng)域那些熟練技術(shù)人員可以在不偏離本發(fā)明范圍和精神的情況下作出各種修改。前述實(shí)施例可以獨(dú)立地或任何組合地實(shí)施。
【主權(quán)項(xiàng)】
1.一種用于處理配置數(shù)據(jù)的方法,所述配置數(shù)據(jù)被存儲(chǔ)在可編程集成電路上的配置存儲(chǔ)器單元中并且用于在所述可編程集成電路上實(shí)現(xiàn)電路設(shè)計(jì),所述方法包括: 標(biāo)識(shí)所述配置存儲(chǔ)器單元的無關(guān)子集,所述無關(guān)子集存儲(chǔ)所述配置數(shù)據(jù)的無關(guān)位,其中,在所述無關(guān)位的一個(gè)位中的極性變化保留所述可編程集成電路中的電路設(shè)計(jì)實(shí)現(xiàn)的功會(huì)K; 計(jì)算存儲(chǔ)在所述配置存儲(chǔ)器單元的第一子集中的所述配置數(shù)據(jù)的第一子集的第一錯(cuò)誤檢查位;并且 在所述配置存儲(chǔ)器單元的無關(guān)子集中的第一配置存儲(chǔ)器單元中存儲(chǔ)所述第一錯(cuò)誤檢查位。2.如權(quán)利要求1所述的方法,其中,所述配置存儲(chǔ)器單元包括以行和列排列的配置存儲(chǔ)器單元陣列,并且其中,所述配置數(shù)據(jù)的所述第一子集被存儲(chǔ)在所述陣列中的配置存儲(chǔ)器單元的行中。3.如權(quán)利要求1所述的方法,進(jìn)一步包括: 計(jì)算存儲(chǔ)在所述配置存儲(chǔ)器單元的第二子集中的所述配置數(shù)據(jù)的第二子集的第二錯(cuò)誤檢查位,其中,所述配置存儲(chǔ)器單元的所述第一子集和所述第二子集在公共的預(yù)定配置存儲(chǔ)器單元中重疊。4.如權(quán)利要求3所述的方法,其中,所述配置數(shù)據(jù)的所述第二子集被存儲(chǔ)在所述陣列中的配置存儲(chǔ)器單元的列中。5.如權(quán)利要求3所述的方法,進(jìn)一步包括: 在所述配置存儲(chǔ)器單元的無關(guān)子集中的第二配置存儲(chǔ)器單元中存儲(chǔ)所述第二錯(cuò)誤檢查位。6.如權(quán)利要求5所述的方法,進(jìn)一步包括: 將第一位置與所述第一配置存儲(chǔ)器單元相關(guān)聯(lián);并且 為所述第二配置存儲(chǔ)器單元選擇第二位置,其中,所述第二位置與所述第一位置之間具有一預(yù)定的距離。7.如權(quán)利要求5所述的方法,進(jìn)一步包括: 計(jì)算存儲(chǔ)在所述配置存儲(chǔ)器單元的第一子集中的所述配置數(shù)據(jù)的第一子集的第三錯(cuò)誤檢查位;并且 通過比較所述第一錯(cuò)誤檢查位和所述第三錯(cuò)誤檢查位來檢測所述第一錯(cuò)誤檢查位和所述第三錯(cuò)誤檢查位之間的不匹配,所述不匹配表明在所述配置數(shù)據(jù)的第一子集中存在錯(cuò)誤。8.如權(quán)利要求7所述的方法,進(jìn)一步包括: 計(jì)算存儲(chǔ)在所述配置存儲(chǔ)器單元的第二子集中的所述配置數(shù)據(jù)的第二子集的第四錯(cuò)誤檢查位;并且 通過比較所述第二錯(cuò)誤檢查位和所述第四錯(cuò)誤檢查位來檢測所述第二錯(cuò)誤檢查位和所述第四錯(cuò)誤檢查位之間的不匹配,所述不匹配表明在所述配置數(shù)據(jù)的第二子集中存在錯(cuò)誤;并且 響應(yīng)于檢測到所述第一錯(cuò)誤檢查位和所述第三錯(cuò)誤檢查位之間的不匹配,以及所述第二錯(cuò)誤檢查位和所述第四錯(cuò)誤檢查位之間的不匹配,對(duì)存儲(chǔ)在所述公共的預(yù)定配置存儲(chǔ)器單元中的所述配置數(shù)據(jù)的值取反。9.如權(quán)利要求1所述的方法,其中,標(biāo)識(shí)所述配置存儲(chǔ)器單元的無關(guān)子集進(jìn)一步包括: 將所述電路設(shè)計(jì)實(shí)現(xiàn)未使用的配置存儲(chǔ)器單元添加到所述配置存儲(chǔ)器單元的無關(guān)子集。10.如權(quán)利要求1所述的方法,其中,標(biāo)識(shí)所述配置存儲(chǔ)器單元的無關(guān)子集進(jìn)一步包括: 標(biāo)識(shí)配置存儲(chǔ)器單元的第二子集,其中,所述第二子集中的配置存儲(chǔ)器單元存儲(chǔ)所述配置數(shù)據(jù)的位,該位具有高邏輯值; 標(biāo)識(shí)配置存儲(chǔ)器單元的第三子集,其中,所述第三子集中的配置存儲(chǔ)器單元存儲(chǔ)所述配置數(shù)據(jù)的位,該位具有低邏輯值;并且 從所述配置存儲(chǔ)器單元減去所述配置存儲(chǔ)器單元的第二子集和第三子集,以確定所述配置存儲(chǔ)器單元的無關(guān)子集。11.一種用于處理配置數(shù)據(jù)的方法,所述配置數(shù)據(jù)在集成電路上實(shí)現(xiàn)電路設(shè)計(jì),所述方法包括: 接收所述配置數(shù)據(jù); 標(biāo)識(shí)所述配置數(shù)據(jù)中的一組無關(guān)位,其中,在所述無關(guān)位的任何一個(gè)位中的極性變化保留所述電路設(shè)計(jì)的功能; 為所述配置數(shù)據(jù)的子集計(jì)算奇偶校驗(yàn)位; 通過用所述奇偶校驗(yàn)位替代所述一組無關(guān)位中的位來產(chǎn)生經(jīng)更新的配置數(shù)據(jù);并且 以所述經(jīng)更新的配置數(shù)據(jù)對(duì)所述集成電路上的配置存儲(chǔ)器單元進(jìn)行編程。12.如權(quán)利要求11所述的方法,其中,產(chǎn)生所述經(jīng)更新的配置數(shù)據(jù)進(jìn)一步包括: 為所述配置數(shù)據(jù)的附加子集計(jì)算附加奇偶校驗(yàn)位,其中,所述配置數(shù)據(jù)的所述子集和所述附加子集共享公共位。13.如權(quán)利要求12所述的方法,進(jìn)一步包括: 以所述附加奇偶校驗(yàn)位替代所述一組無關(guān)位中的附加位; 計(jì)算所述配置數(shù)據(jù)的所述子集的第一奇偶校驗(yàn); 計(jì)算所述配置數(shù)據(jù)的所述附加子集的第二奇偶校驗(yàn); 比較所述計(jì)算的第一奇偶校驗(yàn)與所述奇偶校驗(yàn)位,并且比較所述計(jì)算的第二奇偶校驗(yàn)與所述附加奇偶校驗(yàn)位,以標(biāo)識(shí)所述公共位的位錯(cuò)誤;并且 響應(yīng)于標(biāo)識(shí)所述公共位是錯(cuò)誤的,通過對(duì)所述公共位取反來校正所述錯(cuò)誤位。14.如權(quán)利要求11所述的方法,其中,為所述配置數(shù)據(jù)的所述子集計(jì)算所述奇偶校驗(yàn)位進(jìn)一步包括: 為所述一組無關(guān)位和所述配置數(shù)據(jù)的所述子集共同具有的位產(chǎn)生約束。15.—種用于處理電路設(shè)計(jì)的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述電路設(shè)計(jì)在可編程電路上實(shí)現(xiàn),所述非瞬態(tài)計(jì)算機(jī)介質(zhì)包括指令以用于: 接收所述電路設(shè)計(jì); 在所述可編程電路中保存配置存儲(chǔ)器單元的第一子集以用于存儲(chǔ)錯(cuò)誤檢查位; 產(chǎn)生配置數(shù)據(jù)以便對(duì)所述可編程電路中的配置存儲(chǔ)器單元的第二子集進(jìn)行編程,其中,所述配置數(shù)據(jù)在所述可編程電路中實(shí)現(xiàn)所述電路設(shè)計(jì),并且其中,所述第一子集和所述第二子集是不相交的; 標(biāo)識(shí)所述配置存儲(chǔ)器單元的第二子集中的配置存儲(chǔ)器單元的無關(guān)子集,所述配置存儲(chǔ)器單元存儲(chǔ)無關(guān)位,其中,所述無關(guān)位中的極性變化保留所述可編程電路中電路設(shè)計(jì)實(shí)現(xiàn)的功能;并且 對(duì)所述配置數(shù)據(jù)進(jìn)行錯(cuò)誤檢查編碼。16.如權(quán)利要求15所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,執(zhí)行所述錯(cuò)誤檢查編碼進(jìn)一步包括: 將配置存儲(chǔ)器單元從所述無關(guān)子集添加到所述配置存儲(chǔ)器單元的第一子集; 在所述配置數(shù)據(jù)中計(jì)算所述錯(cuò)誤檢查位;并且 在所述配置存儲(chǔ)器單元的第一子集中存儲(chǔ)所述錯(cuò)誤檢查位。17.如權(quán)利要求16所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,計(jì)算所述錯(cuò)誤檢查位進(jìn)一步包括: 為配置數(shù)據(jù)的第一子集計(jì)算第一奇偶校驗(yàn)位;并且 為配置數(shù)據(jù)的第二子集計(jì)算第二奇偶校驗(yàn)位,其中,所述配置數(shù)據(jù)的第一子集和第二子集具有公共位。18.如權(quán)利要求15所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,保存所述配置存儲(chǔ)器單元的第一子集進(jìn)一步包括: 通過阻塞到查找表的輸入而在所述可編程電路中保存所述查找表的配置存儲(chǔ)器單元。19.如權(quán)利要求18所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,產(chǎn)生配置數(shù)據(jù)進(jìn)一步包括: 通過解除阻塞到所述查找表的輸入而從所述第一子集移除配置存儲(chǔ)器單元。20.如權(quán)利要求15所述的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,保存所述配置存儲(chǔ)器單元的第一子集進(jìn)一步包括:通過阻塞對(duì)可配置路由多路復(fù)用器的輸出而在所述可編程電路中保存所述可配置路由多路復(fù)用器的配置存儲(chǔ)器單元,并且其中,產(chǎn)生配置數(shù)據(jù)進(jìn)一步包括:通過解除阻塞對(duì)所述可配置路由多路復(fù)用器的輸出而從所述第一子集移除配置存儲(chǔ)器單J L ο
【文檔編號(hào)】G06F17/50GK106021636SQ201610205798
【公開日】2016年10月12日
【申請(qǐng)日】2016年3月31日
【發(fā)明人】H·H·施密特, M·D·赫頓
【申請(qǐng)人】阿爾特拉公司