本公開大體涉及可編程集成電路的配置存儲(chǔ)器。
背景技術(shù):
傳統(tǒng)的可編程集成電路(IC),例如復(fù)雜PLD(CPLD)和現(xiàn)場(chǎng)可編程門陣列(FPGA),通常使用數(shù)百萬(wàn)個(gè)靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)配置存儲(chǔ)單元以對(duì)實(shí)施的電路的功能進(jìn)行編程。配置存儲(chǔ)單元可以是,例如,用于對(duì)可編程IC的互連、邏輯或存儲(chǔ)器資源進(jìn)行編程的配置存儲(chǔ)單元。
隨著可編程IC中越來(lái)越多數(shù)量的SRAM配置存儲(chǔ)單元的出現(xiàn),以及芯片尺寸變得越來(lái)越小以及電源電壓變得越來(lái)越低,使得配置存儲(chǔ)單元儲(chǔ)存狀態(tài)被來(lái)自外太空的宇宙微?;騺?lái)自IC封裝材料的阿爾法粒子碰撞而翻轉(zhuǎn)的可能性增大。存儲(chǔ)單元狀態(tài)的意想不到的改變被稱作單粒子翻轉(zhuǎn)(single event upset,SEU)。隨著SEU發(fā)生的可能性增大,用于PLD的特定程序配置的平均故障時(shí)間會(huì)降低,而單位時(shí)間故障發(fā)生(failure in time,F(xiàn)IT)率會(huì)增加。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)在可編程集成電路上生成電路設(shè)計(jì)的實(shí)現(xiàn)的一種方法,生成第一數(shù)據(jù)以用于實(shí)施輸入的電路設(shè)計(jì)。該方法確定電路設(shè)計(jì)的關(guān)鍵部分和非關(guān)鍵部分。生成第二數(shù)據(jù)以用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程,以實(shí)施電路設(shè)計(jì)。第二數(shù)據(jù)的第一子集被分配以對(duì)可編程IC的6T配置存儲(chǔ)單元進(jìn)行編程,以在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分的3個(gè)或更多個(gè)實(shí)例。第二數(shù)據(jù)的第二子集被分配以對(duì)可編程IC的12T配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施表決電路。該表決電路被耦接以接收來(lái)自電路設(shè)計(jì)的第一部分的3個(gè)實(shí)例的輸出。第二數(shù)據(jù)被儲(chǔ)存在電子可讀存儲(chǔ)介質(zhì)中。
根據(jù)在可編程IC上生成電路設(shè)計(jì)的實(shí)現(xiàn)的另一種方法,電路設(shè)計(jì)被輸入并且第一數(shù)據(jù)被生成以實(shí)施電路設(shè)計(jì)。電路設(shè)計(jì)的關(guān)鍵和非關(guān)鍵部分被確定。該第二方法生成用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程以實(shí)施電路設(shè)計(jì)的第二數(shù)據(jù)。第二數(shù)據(jù)的第一子集被分配以對(duì)第一類型配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分。第二數(shù)據(jù)的第二子集被分配以編程第二類型的配置存儲(chǔ)單元,從而在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分。第二數(shù)據(jù)被存儲(chǔ)在電子可讀存儲(chǔ)介質(zhì)中。
可編程IC包括具有多個(gè)6T存儲(chǔ)單元和多個(gè)12T存儲(chǔ)單元的配置存儲(chǔ)器??删幊袒ミB資源被耦接至配置存儲(chǔ)器??梢酝ㄟ^6T存儲(chǔ)單元的子集對(duì)可編程互連資源的第一子集進(jìn)行編程,并且可以通過12T存儲(chǔ)單元的子集對(duì)可編程互連資源的第二子集進(jìn)行編程??删幊踢壿嬞Y源被耦接至配置存儲(chǔ)器??梢酝ㄟ^6T存儲(chǔ)單元的子集對(duì)可編程邏輯資源的第一子集進(jìn)行編程,并且可以通過12T存儲(chǔ)單元的子集對(duì)可編程邏輯資源的第二子集進(jìn)行編程??删幊梯斎?輸出(I/O)資源被耦接至配置存儲(chǔ)器。
通過具體實(shí)施方式和權(quán)利要求書可以了解其它特征。
附圖說(shuō)明
通過閱讀以下具體實(shí)施方式和參考附圖可以了解公開的方法和系統(tǒng)的各個(gè)方面和特點(diǎn),在附圖中:
圖1示出了可編程集成電路(IC)的框圖,可編程IC具有的可編程資源的一部分使用6T SRAM配置存儲(chǔ)器配置,可編程資源的另一部分使用12T SRAM配置存儲(chǔ)器配置;
圖2示出了過程的流程圖,該過程用于在可編程IC上生成電路設(shè)計(jì)的實(shí)現(xiàn),該可編程IC具有一些可編程存儲(chǔ)單元,它們相比于該可編程IC的其它可編程存儲(chǔ)單元更加不受SEU翻轉(zhuǎn)的影響;
圖3示出了電路設(shè)計(jì)的一部分的框圖,其在用6T配置存儲(chǔ)單元配置的可編程資源中被實(shí)施成三重冗余(triple modular redundant,TMR),還示出了在用12T可編程存儲(chǔ)單元配置的可編程資源中實(shí)施的表決電路;
圖4示出了計(jì)算布置的實(shí)施例,該計(jì)算布置被配置為實(shí)施本公開描述的過程和數(shù)據(jù)結(jié)構(gòu);以及
圖5示出了示例性可編程IC的框圖。
具體實(shí)施方式
在以下描述中,許多特定的細(xì)節(jié)被提出以描述這里舉出的特定例子。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,一個(gè)或多個(gè)其它例子和/或這些例子的變化可以在不具有下述全部細(xì)節(jié)的情況下實(shí)現(xiàn)。在其它例子中,眾所周知的細(xì)節(jié)沒有詳細(xì)描述,以使得這里的例子更易理解。為說(shuō)明方便,相同的編號(hào)可以被用在不同的圖表中以指代相同的元素或相同元素的額外實(shí)例。
公開的方法和電路涉及可編程IC,在可編程IC中,一些(但非全部)配置存儲(chǔ)單元是12T(12晶體管)SRAM單元,而其它配置存儲(chǔ)單元是6T(6晶體管)SRAM單元。通過實(shí)施只有一些配置存儲(chǔ)器是用12T SRAM實(shí)施的可編程IC,設(shè)計(jì)關(guān)鍵部分的互連和邏輯資源中并非全部都需要被做成三重冗余(TMR)以降低SEU FIT比率。可以在用12T單元配置的資源上布局和布線電路設(shè)計(jì)的關(guān)鍵部分,而可以在用6T單元配置的資源上布局和布線電路設(shè)計(jì)的非關(guān)鍵部分?;蛘?,可以使用6T配置存儲(chǔ)單元將電路設(shè)計(jì)的關(guān)鍵部分做成TMR,而可以使用12T配置存儲(chǔ)單元實(shí)施表決電路,以使得表決電路能夠從SEU快速恢復(fù)(resilient)。因?yàn)椴⒎鞘褂?2T SRAM實(shí)施全部的配置存儲(chǔ)單元,所以可編程IC的空間占用(footprint)沒有明顯大于所有配置存儲(chǔ)器都用6T SRAM實(shí)施的可編程IC的空間占用。
根據(jù)在可編程IC上生成電路設(shè)計(jì)實(shí)現(xiàn)的一個(gè)公開的方法,生成第一數(shù)據(jù),以用于實(shí)施電路設(shè)計(jì)。例如,電路設(shè)計(jì)可以被匯編或者被原始地布圖并布局和布線。設(shè)計(jì)者可以選擇將電路設(shè)計(jì)中被選擇的部分變得可靠性強(qiáng)且不容易受SEU影響。電路設(shè)計(jì)中被指定成可靠性強(qiáng)且不容易受SEU影響的部分也可以被稱為“關(guān)鍵部分”。設(shè)計(jì)者可以指定關(guān)鍵部分,或者設(shè)計(jì)工具可以自動(dòng)確定輸入的電路設(shè)計(jì)的關(guān)鍵部分。例如,設(shè)計(jì)的關(guān)鍵部分可以是使用可編程資源的配置存儲(chǔ)單元中的大部分以配置該可編程資源所需功能的部分。例如,如果電路設(shè)計(jì)中使用的大型查詢表(LUT)的多數(shù)輸入引腳都被該設(shè)計(jì)使用,那么該大型LUT可以被認(rèn)為是關(guān)鍵的,這是因?yàn)榭膳渲么鎯?chǔ)單元會(huì)被用于實(shí)施所需要的功能。相反,如果只有少數(shù)輸入引腳被設(shè)計(jì)使用,那么該大型LUT不會(huì)被認(rèn)為是關(guān)鍵的,因?yàn)橹挥幸恍〔糠峙渲么鎯?chǔ)單元會(huì)被用于實(shí)施所需要的功能,而大量配置存儲(chǔ)單元不會(huì)被使用。沒有使用的配置存儲(chǔ)單元的翻轉(zhuǎn)不會(huì)影響電路的運(yùn)行。根據(jù)本方法,生成第二數(shù)據(jù)以用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程,從而實(shí)施電路設(shè)計(jì)。第二數(shù)據(jù)的第一子集被分配以對(duì)第一類型配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分。第二數(shù)據(jù)的第二部分被分配以對(duì)第二類型配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯的第二子集和可編程互連的第二子集上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分。在示例性的實(shí)施例中,第一類型配置存儲(chǔ)單元相比第二類型配置存儲(chǔ)單元,對(duì)SEU具有更好的抗性。也就是說(shuō),第一類型配置存儲(chǔ)單元相比第二類型配置存儲(chǔ)單元,更不容易受SEU影響并且具有較低的FIT比率。第二數(shù)據(jù)被儲(chǔ)存在可編程IC中,并且隨后可以被用來(lái)配置可編程IC。
根據(jù)在可編程IC上生成電路設(shè)計(jì)的實(shí)現(xiàn)的第二方法,可編程處理器生成用于實(shí)施電路設(shè)計(jì)的第一數(shù)據(jù),并且如上所述確定電路設(shè)計(jì)的關(guān)鍵部分。第二數(shù)據(jù)被生成以用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程,從而實(shí)施電路設(shè)計(jì)。第二方法的第二數(shù)據(jù)的第一子集被分配以對(duì)可編程IC的6T配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上,實(shí)施電路設(shè)計(jì)的關(guān)鍵部分的3個(gè)或更多的實(shí)例。第二數(shù)據(jù)的第二子集被分配以對(duì)可編程IC的12T配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施表決電路。該表決電路被耦接以接收來(lái)自電路設(shè)計(jì)的第一部分的3個(gè)實(shí)例的輸出信號(hào)。第二數(shù)據(jù)被儲(chǔ)存在可編程IC中,并且在之后可以用于配置可編程IC。
還公開了具有同時(shí)包括12T和6T配置存儲(chǔ)單元的配置存儲(chǔ)器的可編程IC。在該可編程IC中,可編程互連資源和可編程邏輯資源被耦接至配置存儲(chǔ)器。通過6T和12T配置存儲(chǔ)單元對(duì)可編程互連資源的不同子集進(jìn)行編程。相似地,也可以通過6T和12T配置存儲(chǔ)單元對(duì)可編程邏輯資源的不同子集進(jìn)行編程。可編程IC還包括被耦接至配置存儲(chǔ)器的可編程輸入/輸出(I/O)資源。
圖1示出了可編程集成電路(IC)100的框圖,可編程IC 100具有的可編程資源的一個(gè)部分可以使用6T SRAM配置存儲(chǔ)器配置,可編程資源的另一個(gè)部分可以使用12T SRAM配置存儲(chǔ)器配置。應(yīng)當(dāng)意識(shí)到,圖1沒有示出可編程IC的電路的物理布局。此外,圖1示出:一些可編程資源可以使用12T配置存儲(chǔ)單元配置,而其它可編程資源可以使用6T配置存儲(chǔ)單元配置。此外,除了展示的之外,可編程IC還可以具有各種可編程資源。
可編程IC 100的可編程資源包括可編程邏輯資源102和104、可編程互連資源106和108、可編程輸入/輸出(I/O)資源110和112、以及存儲(chǔ)器資源114和116??删幊蘄C還包括配置存儲(chǔ)單元118和配置存儲(chǔ)單元120。配置存儲(chǔ)單元118相比于配置存儲(chǔ)單元120更不容易受SEU翻轉(zhuǎn)的影響。在示例性實(shí)施例中,配置存儲(chǔ)單元118是12T存儲(chǔ)單元,配置存儲(chǔ)單元120是6T存儲(chǔ)單元。
可編程邏輯、可編程互連和可編程I/O資源的不同子集可以使用不同種類的配置存儲(chǔ)器進(jìn)行編程。例如,可以使用由12T SRAM實(shí)施的配置存儲(chǔ)器118對(duì)可編程邏輯資源102進(jìn)行編程,并且可以使用由6T SRAM實(shí)施的配置存儲(chǔ)器120對(duì)可編程邏輯資源104進(jìn)行編程。相似地,可以用配置存儲(chǔ)器118對(duì)可編程互連資源106和可編程I/O資源110進(jìn)行編程,并且可以用配置存儲(chǔ)器120對(duì)可編程互連資源108和可編程I/O資源112進(jìn)行編程。
可編程IC 100還包括存儲(chǔ)器資源114和116,其可以被用于:通過在可編程邏輯資源102和104、可編程互連資源106和108以及可編程I/O資源110和112上實(shí)施的應(yīng)用電路來(lái)儲(chǔ)存應(yīng)用數(shù)據(jù)。可以使用12T SRAM實(shí)施存儲(chǔ)器資源114,并且可以使用6T SRAM實(shí)施存儲(chǔ)器資源116。在可編程IC 100上實(shí)施的、被認(rèn)為對(duì)應(yīng)用電路起關(guān)鍵作用的數(shù)據(jù)可以被儲(chǔ)存在存儲(chǔ)器資源114中,以便降低對(duì)SEU的敏感度。不那么關(guān)鍵的數(shù)據(jù)可以被儲(chǔ)存在存儲(chǔ)器資源116中。
可編程IC 100具有一些相比于可編程IC中的其它配置存儲(chǔ)器更不容易受SEU影響的配置存儲(chǔ)器,該可編程IC 100提供了試圖為在可編程IC上實(shí)施的電路降低FIT比率的靈活度。例如,可以在通過配置存儲(chǔ)器118(用12T存儲(chǔ)單元實(shí)施)配置的可編程資源上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分,可以在通過配置存儲(chǔ)器120(用6T存儲(chǔ)單元實(shí)施)配置的可編程資源上實(shí)施電路設(shè)計(jì)的不那么關(guān)鍵的部分。或者,可以在通過配置存儲(chǔ)器120(用6T存儲(chǔ)單元實(shí)施)配置的可編程資源上將電路設(shè)計(jì)的關(guān)鍵部分實(shí)施成TMR電路,而可以在通過配置存儲(chǔ)器118(用12T存儲(chǔ)單元實(shí)施)配置的可編程資源上實(shí)施表決電路。為了避免可編程IC變得過于龐大,12T配置存儲(chǔ)單元的數(shù)量比6T配置存儲(chǔ)單元的數(shù)量少。例如,配置存儲(chǔ)單元中的5-10%可以是12T配置存儲(chǔ)單元,而剩余的配置存儲(chǔ)單元可以是6T單元。
圖2示出了過程的流程圖,其用于生成在可編程IC上的電路設(shè)計(jì)的具體實(shí)現(xiàn),該可編程IC具有的一些配置存儲(chǔ)單元相比于可編程IC的其它配置存儲(chǔ)單元更不容易受SEU影響。在框202,輸入電路設(shè)計(jì)以用于處理,并且在框204,生成初始實(shí)施數(shù)據(jù)。初始實(shí)施數(shù)據(jù)可以是合成電路設(shè)計(jì)或進(jìn)一步布圖(map)和/或布局(place)并布線(route)電路設(shè)計(jì)的結(jié)果。根據(jù)設(shè)計(jì)者的輸入,可以使電路設(shè)計(jì)的一些部分高度可靠并且更不容易受SEU影響。設(shè)計(jì)者可以指定電路設(shè)計(jì)的特定部分使其高度可靠(“關(guān)鍵”),或者關(guān)鍵部分可以被自動(dòng)確定。在框206,該過程確定電路設(shè)計(jì)的關(guān)鍵和非關(guān)鍵部分。
在自動(dòng)化的過程中,如果電路設(shè)計(jì)的一部分的FIT比率在實(shí)施的電路設(shè)計(jì)的總體FIT比率中是顯著因素,那么該部分可以被認(rèn)為是關(guān)鍵的。例如,如果電路設(shè)計(jì)中使用的大型查詢表(LUT)中的多數(shù)輸入引腳都被該電路設(shè)計(jì)使用,那么該大型LUT可以被認(rèn)為是關(guān)鍵的,因?yàn)榕渲么鎯?chǔ)單元中的一大部分都會(huì)被用于實(shí)施所需要的功能。相反,如果只有少數(shù)輸入引腳被該設(shè)計(jì)使用,那么該大型LUT(具有大量輸入引腳的LUT)不會(huì)被認(rèn)為是關(guān)鍵的,因?yàn)橹挥幸恍〔糠峙渲么鎯?chǔ)單元會(huì)被用于實(shí)施所需要的功能,并且很多配置存儲(chǔ)單元不會(huì)被用到。不被使用的配置存儲(chǔ)單元的翻轉(zhuǎn)不會(huì)影響電路的操作。類似地,因?yàn)橹挥猩贁?shù)配置存儲(chǔ)單元會(huì)被用于實(shí)施在小LUT上的功能,所以小LUT可以被視為非關(guān)鍵的。在示例性的實(shí)施例中,如果電路設(shè)計(jì)的一部分在具有超過閾值數(shù)量的輸入引腳的LUT上實(shí)施,并且被使用輸入的引腳的數(shù)量超過閾值,那么電路設(shè)計(jì)的該部分可以被確定為是關(guān)鍵的。例如,響應(yīng)于電路設(shè)計(jì)的一部分在具有至少6個(gè)輸入引腳的LUT上實(shí)施,并且至少使用了5個(gè)引腳,那么電路設(shè)計(jì)的該部分可以被確定為是關(guān)鍵的。在下述的專利申請(qǐng)?zhí)枮?4/266,547的專利申請(qǐng)中描述了電路設(shè)計(jì)的關(guān)鍵和非關(guān)鍵部分的進(jìn)一步的方面:發(fā)明人Jain等,申請(qǐng)名稱:“用于冗余的邏輯路徑的選擇”,申請(qǐng)日:2014年4月30日,代理人案號(hào):X-4399US,其全部?jī)?nèi)容以參考的方式并入本文。
在判定框208,該過程選擇實(shí)施電路設(shè)計(jì)的關(guān)鍵部分的方式(approach)。響應(yīng)于設(shè)計(jì)者的輸入(該輸入指定期望的途徑),可以選擇方式。在第一方式中,使用由12T配置存儲(chǔ)單元編程的可編程資源實(shí)施關(guān)鍵部分,并且在第二方式中,由用于實(shí)施表決電路的12T配置存儲(chǔ)單元來(lái)將關(guān)鍵部分實(shí)施成TMR電路。
在第一方式中,在框210,通過分配由12T配置存儲(chǔ)單元編程的可編程資源來(lái)布圖、布局和布線電路設(shè)計(jì),從而實(shí)施關(guān)鍵部分。如果已經(jīng)預(yù)先布圖、布局并布線電路設(shè)計(jì),那么該過程可以相應(yīng)地重新布圖、布局和布線電路設(shè)計(jì)。
在框212,生成配置數(shù)據(jù)以用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程,從而實(shí)施電路設(shè)計(jì)。配置數(shù)據(jù)的第一子集對(duì)12T配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第一子集(如框210處確定的)和可編程互連資源的第二子集(如框210處確定的)上,實(shí)施電路設(shè)計(jì)的關(guān)鍵部分。例如,配置數(shù)據(jù)可以用于對(duì)由12T存儲(chǔ)單元實(shí)施的配置存儲(chǔ)器118(圖1)的一部分進(jìn)行編程,從而在可編程邏輯資源102和可編程互連資源106上實(shí)施關(guān)鍵部分??梢栽诳删幊蘄C的任何可用的可編程資源上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分。例如,可以在可編程邏輯資源的第二子集(如框210處確定的)和可編程互連資源的第二子集(如框210處確定的)上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分,其中可以僅用6T配置存儲(chǔ)單元或用6T和12T配置存儲(chǔ)單元的組合來(lái)對(duì)資源的第二子集進(jìn)行編程。用于實(shí)施非關(guān)鍵部分的配置數(shù)據(jù)可以用于對(duì)用6T存儲(chǔ)單元實(shí)施的配置存儲(chǔ)器120(圖1)的一部分進(jìn)行編程,從而在可編程邏輯資源104和可編程互連資源108上實(shí)施非關(guān)鍵部分。
電路設(shè)計(jì)的關(guān)鍵部分還可以包括:對(duì)電路設(shè)計(jì)所訪問的數(shù)據(jù)進(jìn)行存儲(chǔ)的存儲(chǔ)器資源。生成的配置數(shù)據(jù)還可以包括:對(duì)可編程互連資源106和/或可編程互連資源108進(jìn)行編程的配置數(shù)據(jù),從而將可編程邏輯資源102和/或可編程邏輯資源104連接至由12T存儲(chǔ)單元實(shí)施的存儲(chǔ)器資源114。
電路設(shè)計(jì)的非關(guān)鍵部分還可以包括:對(duì)電路設(shè)計(jì)所訪問的非關(guān)鍵數(shù)據(jù)進(jìn)行存儲(chǔ)的存儲(chǔ)器資源。生成的配置數(shù)據(jù)還可以包括:對(duì)可編程互連資源106和/或可編程互連資源108進(jìn)行編程的配置數(shù)據(jù),從而將可編程邏輯資源102和/或可編程邏輯資源104連接到由6T存儲(chǔ)單元實(shí)施的存儲(chǔ)器資源116。
在框214,在框212處生成的配置數(shù)據(jù)被輸出和/或儲(chǔ)存在電子可讀存儲(chǔ)介質(zhì)中。配置數(shù)據(jù)可以被輸出并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備中,例如閃存或磁存儲(chǔ)設(shè)備。
如果電路設(shè)計(jì)的關(guān)鍵部分要被實(shí)施成TMR電路,那么判定框208將過程引導(dǎo)至框222。在示例性的方式中,通過用6T配置存儲(chǔ)單元配置的可編程資源可以將電路設(shè)計(jì)的關(guān)鍵部分做成TMR,并且可以在由12T配置存儲(chǔ)單元配置的可編程資源中實(shí)施表決電路。
在框222,通過分配可編程資源可以布圖、布局和布線電路設(shè)計(jì),從而實(shí)施電路設(shè)計(jì)的關(guān)鍵部分的三個(gè)實(shí)例。可以僅用6T配置存儲(chǔ)單元或者6T和12T配置存儲(chǔ)單元的組合來(lái)對(duì)這些資源進(jìn)行編程。如果已經(jīng)預(yù)先布圖、布局和布線電路設(shè)計(jì),那么該過程可以相應(yīng)地重新布圖、布局和布線電路設(shè)計(jì)。
在框222,還可以分配可編程資源,以用于實(shí)施表決電路并將表決電路連接到TMR電路。僅用12T配置存儲(chǔ)單元來(lái)對(duì)實(shí)施表決電路并將表決電路連接到TMR電路的可編程資源進(jìn)行編程,從而幫助表決電路不受SEU干擾。
在框224,生成配置數(shù)據(jù),以用于對(duì)配置存儲(chǔ)單元進(jìn)行編程,其中該配置存儲(chǔ)單元對(duì)實(shí)施TMR電路和表決電路的可編程資源進(jìn)行編程。配置數(shù)據(jù)被指定用于對(duì)配置存儲(chǔ)單元進(jìn)行編程,其中該配置存儲(chǔ)單元配置在框222處確定的可編程IC的可編程邏輯資源和可編程互連資源的子集的功能。例如,對(duì)于TMR電路,配置數(shù)據(jù)可以用于對(duì)由6T存儲(chǔ)單元實(shí)施的存儲(chǔ)器120(圖1)的一部分進(jìn)行編程,從而在可編程邏輯資源104和可編程互連資源108的一部分上實(shí)施關(guān)鍵部分。例如,對(duì)于表決電路,配置數(shù)據(jù)可以用于對(duì)由12T存儲(chǔ)單元實(shí)施的配置存儲(chǔ)器118(圖1)的一部分進(jìn)行編程,從而在可編程邏輯資源102和可編程互連資源106的一部分上實(shí)施表決電路。配置數(shù)據(jù)還配置可編程資源,從而連接表決電路以從實(shí)施電路設(shè)計(jì)關(guān)鍵部分的TMR電路(例如,圖3的實(shí)例302、304、306)接收輸出信號(hào)。
在框226,在框224處生成的配置數(shù)據(jù)被輸出和/或儲(chǔ)存在電子可讀存儲(chǔ)介質(zhì)中。配置數(shù)據(jù)可以被輸出和/或儲(chǔ)存在數(shù)據(jù)存儲(chǔ)設(shè)備中,例如閃存或磁存儲(chǔ)設(shè)備。
圖3示出了電路設(shè)計(jì)的一部分的框圖,該部分在用6T配置存儲(chǔ)單元配置的可編程資源中被實(shí)施成三重冗余,還示出了在用12T可編程存儲(chǔ)單元配置的可編程資源中實(shí)施的表決電路。也可以在由具有6T存儲(chǔ)單元的配置存儲(chǔ)器配置的可編程資源上將電路設(shè)計(jì)的關(guān)鍵部分實(shí)施成TMR電路,而不是在由具有12T存儲(chǔ)單元的配置存儲(chǔ)器配置的可編程資源上實(shí)施該關(guān)鍵部分。可以在由具有12T存儲(chǔ)單元的配置存儲(chǔ)器配置的可編程資源上實(shí)施表決電路,從而降低表決電路對(duì)SEU的敏感度。
所示的電路設(shè)計(jì)的關(guān)鍵部分被實(shí)施為框302、304、306、308、310和312???02、304和306表示在各自可編程邏輯(PL)資源和可編程互連(INT)資源上實(shí)施的電路設(shè)計(jì)的關(guān)鍵部分的三個(gè)實(shí)例。框308、310和312表示將每個(gè)關(guān)鍵部分的實(shí)例連接到表決電路314的互連資源。因?yàn)樵撾娐肥侨氐?triplicated),所以可以在用6T配置存儲(chǔ)單元配置的可編程資源上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分的實(shí)例和表決電路的連接??梢栽谟?2T配置存儲(chǔ)單元配置的可編程邏輯資源和可編程互連資源上實(shí)施表決電路,從而降低表決電路對(duì)SEU的敏感度。只要實(shí)例302、304、306以及互連電路308、310和312中不超過一個(gè)(no more than one)遭受SEU,表決電路314就會(huì)輸出期望的結(jié)果。
可以在用6T配置存儲(chǔ)單元配置的可編程邏輯資源和可編程互連資源上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分。例如,非關(guān)鍵部分316為TMR電路(關(guān)鍵部分)提供輸入,非關(guān)鍵部分318通過表決電路314從關(guān)鍵部分接收輸出。可編程互連資源309將非關(guān)鍵部分316連接到關(guān)鍵部分的TMR實(shí)例302、304和306,并且可以用12T配置存儲(chǔ)單元配置可編程互連資源309。
圖4示出了計(jì)算布置(computing arrangement)的實(shí)施例,該計(jì)算布置可以被配置以實(shí)施在此描述的過程和數(shù)據(jù)結(jié)構(gòu)。處理器計(jì)算布置500包括一個(gè)或多個(gè)處理器502(根據(jù)可執(zhí)行計(jì)算機(jī)代碼對(duì)一個(gè)或多個(gè)處理器502進(jìn)行編程)、時(shí)鐘信號(hào)發(fā)生器504、內(nèi)存布置506、存儲(chǔ)器布置508以及輸入/輸出控制單元510,它們都耦接至主機(jī)總線512??梢杂秒娐钒迳戏謩e的元件來(lái)實(shí)施布置500,或者可以在集成電路中內(nèi)部實(shí)施布置500。當(dāng)在集成電路中內(nèi)部實(shí)施時(shí),處理器計(jì)算布置也被稱為微控制器。
計(jì)算布置的架構(gòu)取決于可以被本領(lǐng)域技術(shù)人員了解的實(shí)施要求。處理器502可以是一個(gè)或多個(gè)通用處理器,或者一個(gè)或多個(gè)通用處理器和合適的協(xié)處理器的組合,或者一個(gè)或多個(gè)專用處理器(例如,RISC、CISC、流水線處理器等)。
內(nèi)存布置506通常包括多個(gè)級(jí)別的高速緩存以及主內(nèi)存。存儲(chǔ)器布置508可以包括本地和/或遠(yuǎn)程持久性存儲(chǔ)器,例如由磁盤(沒有示出)、閃存、EPROM或其它非易失性數(shù)據(jù)存儲(chǔ)器提供。存儲(chǔ)單元可以是可讀的或可讀寫的。此外,內(nèi)存布置506和存儲(chǔ)器布置508可以結(jié)合在單個(gè)布置中。
處理器502在存儲(chǔ)器布置508和/或內(nèi)存布置506中執(zhí)行軟件,從存儲(chǔ)器布置508和/或內(nèi)存布置506中讀出或向其中寫入數(shù)據(jù),并通過輸入/輸出控制布置510與外部設(shè)備通信。這些功能通過時(shí)鐘信號(hào)發(fā)生器504同步。可以通過操作系統(tǒng)(沒有示出)或硬件控制單元(沒有示出)來(lái)管理計(jì)算布置的資源。
圖5示出了公開的電路可以在其上實(shí)施的可編程集成電路(IC)600??删幊蘄C也可以指包括現(xiàn)場(chǎng)可編程門陣列邏輯(FPGA)以及其它可編程資源的片上系統(tǒng)(SOC)。FPGA邏輯可以在陣列中包括集中不同類型的可編程邏輯模塊。例如,圖5說(shuō)明了包括大量不同可編程單元包括千兆位收發(fā)機(jī)(MGT)601、可配置邏輯模塊(CLB)602、隨機(jī)存取存儲(chǔ)器模塊(BRAM)603、輸入/輸出模塊(I/O)607(例如時(shí)鐘端口)以及其它可編程邏輯608比如數(shù)字時(shí)鐘管理器、模數(shù)轉(zhuǎn)換器、系統(tǒng)監(jiān)控邏輯等的可編程IC 600。一些具有FPGA邏輯的可編程IC還包括專用處理器模塊(PROC)610和內(nèi)部與外部重置端口(沒有示出)。
在一些FPGA邏輯中,每個(gè)可編程單元包括可編程互連元件(INT)611,其具有去到和來(lái)自每個(gè)相鄰單元中對(duì)應(yīng)的互連元件的標(biāo)準(zhǔn)化連接。因此,可編程互連元件一起實(shí)施了說(shuō)明的FPGA邏輯的可編程互連結(jié)構(gòu)。如圖5頂部包括的例子所示,可編程互連元件INT611還包括去到和來(lái)自同一個(gè)單元內(nèi)的可編程邏輯元件的連接。
例如,CLB 602可以包括配置邏輯元件CLE 612,其可以被編程以實(shí)施用戶邏輯,加上單個(gè)可編程互連元件INT 611。BRAM 603除一個(gè)或多個(gè)可編程互連元件外,還可以包括BRAM邏輯元件(BRL)613。通常,一個(gè)單元中包括的互連元件的數(shù)量取決于該單元的高度。在圖示的實(shí)施例中,BRAM單元具有與5個(gè)CLB單元相同的高度,但其它數(shù)字(如4)也可以被使用。DSP單元606除了適當(dāng)數(shù)量的可編程互連元件外還可以包括DSP邏輯元件(DSPL)614。例如,IOB 604除可編程互連元件INT 611的一個(gè)實(shí)例外還可以包括輸入/輸出邏輯元件(IOL)615的兩個(gè)實(shí)例。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚,連接到例如I/O邏輯元件615的實(shí)際的I/O接合焊盤使用覆蓋在多種說(shuō)明的邏輯模塊上的金屬層制造,并且通常不被限制在輸入/輸出邏輯元件615的區(qū)域中。
在圖示的實(shí)施例中,靠近裸片中心的列區(qū)域(在圖5中示出)被用于配置、時(shí)鐘和其它控制邏輯。水平區(qū)域609從這列延伸,并被用于將時(shí)鐘和配置信號(hào)在可編程IC的寬度上分配。
一些利用圖5中說(shuō)明的架構(gòu)的IC包括額外的邏輯模塊用于破壞構(gòu)成可編程IC大部分的常規(guī)列結(jié)構(gòu)。額外的邏輯模塊可以是可編程模塊和/或?qū)S眠壿嫛@?,圖5中所示的處理器模塊PROC 610跨過CLB和BRAM的多個(gè)列。
注意,圖5只是用于說(shuō)明一個(gè)示例性可編程IC架構(gòu),一列中的邏輯模塊的數(shù)量、列的相對(duì)寬度、列的數(shù)量和順序、列中包括的邏輯模塊的種類、邏輯模塊的相對(duì)尺寸以及包括在圖5頂部的互連/邏輯實(shí)施例完全是示例性的。例如,在實(shí)際的可編程IC中,無(wú)論CLB出現(xiàn)在哪里,通常都存在超過一個(gè)相鄰的CLB列,從而有助于用戶邏輯的有效實(shí)施。
這里提供多個(gè)例子。
在一個(gè)例子中,提供一種在可編程集成電路上生成電路設(shè)計(jì)的實(shí)現(xiàn)的方法。這樣的方法包括,在編程過的處理器上,執(zhí)行以下操作:輸入電路設(shè)計(jì);生成用于實(shí)施電路設(shè)計(jì)的第一數(shù)據(jù);確定電路設(shè)計(jì)的關(guān)鍵部分和非關(guān)鍵部分;生成用于對(duì)可編程IC的配置存儲(chǔ)單元進(jìn)行編程的第二數(shù)據(jù),從而實(shí)施電路設(shè)計(jì);其中第二數(shù)據(jù)的第一子集被分配以對(duì)第一類型配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施電路設(shè)計(jì)的關(guān)鍵部分;其中第二數(shù)據(jù)的第二子集被分配以對(duì)第二類型配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分;并且將第二數(shù)據(jù)存儲(chǔ)在電子可讀存儲(chǔ)介質(zhì)中。
在一些方法中,第一類型的配置存儲(chǔ)單元可以相比于第二類型的配置存儲(chǔ)單元,具有對(duì)單粒子翻轉(zhuǎn)(SEU)更好的抗性。
在一些這樣的方法中,第一類型的配置存儲(chǔ)單元是12T存儲(chǔ)單元,而第二類型的配置存儲(chǔ)單元是6T存儲(chǔ)單元。
在一些這樣的方法中,確定關(guān)鍵部分包括確定具有被使用輸入的數(shù)量大于閾值的查詢表(LUT)。
在一些這樣的方法中,第二數(shù)據(jù)的第一子集包括通過可編程互連資源的第一子集將可編程邏輯資源的第一子集連接至可編程IC的存儲(chǔ)器資源的第一子集的配置數(shù)據(jù),用于儲(chǔ)存被可編程邏輯資源的第一子集處理的數(shù)據(jù);并且,存儲(chǔ)器資源的第一子集由12T存儲(chǔ)單元實(shí)施。
在一些這樣的方法中,第二數(shù)據(jù)的第二子集包括通過可編程互連資源的第二子集將可編程邏輯資源的第二子集連接至可編程IC的存儲(chǔ)器資源的第二子集的配置數(shù)據(jù),用于儲(chǔ)存被可編程邏輯資源的第二子集處理的數(shù)據(jù);并且,存儲(chǔ)器資源的第二子集由6T存儲(chǔ)單元實(shí)施。
在一些這樣的方法中,確定關(guān)鍵部分包括確定被使用輸入的數(shù)量大于閾值數(shù)量的使用的輸入的查詢表(LUT);并且,第一類型的配置存儲(chǔ)單元相比于第二種類型的配置存儲(chǔ)單元,具有對(duì)單粒子翻轉(zhuǎn)(SEU)更強(qiáng)的抗性。
在一些這樣的方法中,確定關(guān)鍵部分包括確定被使用輸入的數(shù)量大于閾值的查詢表(LUT);并且,第一類型的配置存儲(chǔ)單元是12T存儲(chǔ)單元而第二類型的配置存儲(chǔ)單元是6T存儲(chǔ)單元。
在一些這樣的方法中,確定關(guān)鍵部分包括確定被使用輸入的數(shù)量大于閾值的查詢表(LUT);并且,第二數(shù)據(jù)的第一子集包括通過可編程互連資源的第一子集將可編程邏輯資源的第一子集連接至可編程IC的存儲(chǔ)器資源的第一子集的配置數(shù)據(jù),用于儲(chǔ)存被可編程邏輯資源的第一子集處理的數(shù)據(jù),存儲(chǔ)器資源的第一子集由12T存儲(chǔ)單元實(shí)施。
在另一個(gè)例子中,提供在可編程集成電路上生成電路設(shè)計(jì)的實(shí)現(xiàn)的方法。這樣的方法可以包括:在可編程處理器上,運(yùn)行如下操作:輸入電路設(shè)計(jì);生成用于實(shí)施該電路設(shè)計(jì)的第一數(shù)據(jù);確定該電路設(shè)計(jì)的關(guān)鍵部分和非關(guān)鍵部分;生成第二數(shù)據(jù),用于編程可編程IC的可配置存儲(chǔ)單元以實(shí)施該電路設(shè)計(jì);其中第二數(shù)據(jù)的第一子集被分配用以編程可編程IC的6T配置存儲(chǔ)單元,從而在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施該電路設(shè)計(jì)關(guān)鍵部分的三個(gè)或更多的實(shí)例;以及其中第二數(shù)據(jù)的第二子集被分配以編程可編程IC的12T配置存儲(chǔ)單元,從而在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施表決電路,表決電路耦接以從電路設(shè)計(jì)的關(guān)鍵部分的三個(gè)或更多實(shí)例中接收輸出信號(hào);在電子可讀存儲(chǔ)介質(zhì)中儲(chǔ)存第二數(shù)據(jù)。
在一些這樣的方法中,第二數(shù)據(jù)包括:第二數(shù)據(jù)的第三子集,用于對(duì)可編程IC的6T配置存儲(chǔ)單元進(jìn)行編程,從而在可編程IC的可編程邏輯資源的第三子集和可編程互連資源的第三子集上實(shí)施電路設(shè)計(jì)的非關(guān)鍵部分。
在這樣的方法中,確定關(guān)鍵部分包括確定被使用輸出的數(shù)量大于閾值的查詢表(LUT)。
可以提供一種可編程IC。這樣的可編程IC可以包括:配置存儲(chǔ)器,其包括多個(gè)6T存儲(chǔ)單元和多個(gè)12T存儲(chǔ)單元;耦接至配置存儲(chǔ)器的可編程互連資源,其中可編程互連資源的第一子集能夠由6T存儲(chǔ)單元的子集來(lái)編程,且可編程互連資源的第二子集能夠由12T存儲(chǔ)單元的子集來(lái)編程;耦接至配置存儲(chǔ)器的可編程邏輯資源,其中可編程邏輯資源的第一子集能夠由6T存儲(chǔ)單元的子集來(lái)編程,且可編程邏輯資源的第二子集能夠由12T存儲(chǔ)單元的子集來(lái)編程;以及耦接至配置存儲(chǔ)器的可編程輸入/輸出(I/O)資源。
一些這樣的IC還可以包括用于儲(chǔ)存被可編程邏輯資源處理的數(shù)據(jù)的存儲(chǔ)器資源,其中:存儲(chǔ)器資源能夠通過可編程互連資源被連接至可編程邏輯資源;存儲(chǔ)器資源的第一子集是6T存儲(chǔ)單元;并且存儲(chǔ)器資源的第二子集是12T存儲(chǔ)單元。
一些這樣的IC還可以包括:在可編程互連資源的第一子集和可編程邏輯資源的第一子集上實(shí)施的三重冗余(TMR)電路;在可編程互連資源的第二子集和可編程邏輯資源的第二子集上實(shí)施的表決電路,表決電路通過可編程互連資源的第一子集耦接至TMR電路。
一些這樣的IC還可以包括:電路設(shè)計(jì)的第一部分,其在可編程IC的可編程邏輯資源的第一子集和可編程互連資源的第一子集上實(shí)施;以及電路設(shè)計(jì)的第二部分,其在可編程IC的可編程邏輯資源的第二子集和可編程互連資源的第二子集上實(shí)施。
一些這樣的IC中,所述多個(gè)6T存儲(chǔ)單元的數(shù)量大于所述多個(gè)12T存儲(chǔ)單元的數(shù)量。
盡管在一些情況下,方面和特征在單獨(dú)的附圖中描述,應(yīng)當(dāng)理解,一個(gè)附圖中的特征可以與另一附圖中的特征組合,即使該組合沒有以組合的形式被明確示出或明確描述。
這些方法和系統(tǒng)被認(rèn)為可以應(yīng)用于各種用于處理電路設(shè)計(jì)以保護(hù)電路不受SEU干擾的系統(tǒng)中。通過考慮本說(shuō)明書,其它方面和特征對(duì)于本領(lǐng)域技術(shù)人員應(yīng)當(dāng)顯而易見。說(shuō)明書和附圖只應(yīng)作為示例考慮,而權(quán)利要求書中才確定本發(fā)明真正的范圍。