專利名稱:用于掩膜可編程邏輯器件的開關(guān)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及掩膜可編程邏輯器件,并更具體地涉及從先前存在的電路設(shè)計(jì)創(chuàng)造掩膜編程邏輯器件的方法。
背景技術(shù):
可編程邏輯器件(PLD)是眾所周知的。早期的可編程邏輯器件只可一次性配置。例如,已經(jīng)通過“熔斷”(即斷開)可熔斷鏈接而實(shí)現(xiàn)配置。可替換地,配置儲存在可編程只讀存儲器中。這些器件一般向用戶提供對用于“乘積和”(或“P-TERM”)邏輯運(yùn)算的器件進(jìn)行配置的能力。后來,出現(xiàn)包含可擦可編程只讀存儲器(EPROM)以進(jìn)行配置的可編程邏輯器件,允許重新配置器件。
再后來,出現(xiàn)包含靜態(tài)隨機(jī)存取存儲器(SRAM)元件以進(jìn)行配置的可編程邏輯器件。這些器件也可重新配置,在諸如EPROM的非易失性存儲器中儲存它們的配置信息,其中,當(dāng)器件被加電時(shí),配置從EPROM裝入到SRAM元件中。這些器件一般向用戶提供對用于查找表型邏輯操作的器件進(jìn)行配置的能力。在某些時(shí)候,這些器件開始設(shè)置可由用戶配置的隨機(jī)存取存儲器嵌入部件,作為隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)或邏輯(如P-TERM邏輯)。。
在前述所有可編程邏輯器件中,器件中特定邏輯資源的邏輯功能以及用于在邏輯資源之間傳送信號的互連資源的邏輯功能是可編程的??商鎿Q地,已經(jīng)提供掩膜可編程邏輯器件(MPLD)。采用掩膜可編程邏輯器件,制造商不是向所有用戶銷售相同的器件,而是生產(chǎn)具有邏輯資源標(biāo)準(zhǔn)布置的掩膜可編程基本器件,所述基本器件缺少任何布線資源或互連資源,并且用戶對所述邏輯資源的功能不能進(jìn)行編程。
用戶向掩膜可編程邏輯器件的制造商提供所需器件的技術(shù)要求,所述技術(shù)要求可以是用于對類似常規(guī)可編程邏輯器件(“源PLD”)進(jìn)行編程的配置信息文件。制造商使用該信息向上述基本器件增加金屬化層。這些附加層基于源器件的可配置存儲器(CRAM)單元的配置信息,通過在資源內(nèi)進(jìn)行某些固定連接(即,通過對MPLD的電源硬編碼由用戶信息文件所提供的配置值)而對基本器件的邏輯資源進(jìn)行編程。進(jìn)而,這些附加層增加用于在邏輯資源之間進(jìn)行布線的互連資源。如以上結(jié)合常規(guī)可編程邏輯器件所描述地,掩膜可編程邏輯器件也可設(shè)置嵌入隨機(jī)存取存儲部件。在此掩膜可編程邏輯器件中,如果嵌入存儲器配置為只讀存儲器或P-TERM邏輯,就也使用附加金屬化層來實(shí)現(xiàn)此配置。
雖然常規(guī)可編程邏輯器件允許用戶容易設(shè)計(jì)用于執(zhí)行所希望功能的器件,但是,常規(guī)可編程邏輯器件總是包括不用于特定設(shè)計(jì)的資源。而且,為了容納通用布線和互連資源、以及允許信號從任何邏輯資源到達(dá)任何所希望布線和互連資源的開關(guān)資源,隨著在常規(guī)PLD中內(nèi)置的功能越多,常規(guī)PLD不斷變大,增加這些器件的尺寸和功耗。當(dāng)信號從一個(gè)布線和互連資源傳輸?shù)搅硪粋€(gè)時(shí),通過各種開關(guān)資源的信號傳送也使信號慢下來。
可編程邏輯器件的出現(xiàn)允許用戶在常規(guī)源可編程邏輯器件中檢驗(yàn)設(shè)計(jì),但是將生產(chǎn)版本提交給掩膜可編程邏輯器件,對于相同的功能性,掩膜可編程邏輯器件明顯更小并且使用明顯更少的功率,因?yàn)閷?shí)際上只在基本器件上增加需要具體設(shè)計(jì)的互連和布線資源。另外,沒有通用開關(guān)資源來消耗空間或能量或使信號減慢。例如,在2002年3月29日提交的共同轉(zhuǎn)讓的美國專利申請第10/113838號中,描述掩膜可編程基本器件上源PLD的先前設(shè)計(jì)的這種實(shí)現(xiàn),該專利申請的全部內(nèi)容在此引作參考。
與源PLD相比,通過除去源器件的全部可編程序性,這些MPLD可獲得顯著的電路片尺寸優(yōu)勢,其中,所述可編程序性包括信號互連、信號傳輸配置相關(guān)邏輯以及配置存儲器。除了布線結(jié)構(gòu),這些MPLD的基本器件結(jié)構(gòu)幾乎與源器件相同。邏輯資源在這些MPLD的基本器件上的組織與相關(guān)源器件的不同,但這些資源在功能性、數(shù)量、可訪問性和結(jié)構(gòu)方面相同,從而,允許將用于資源-資源的資源從等效源器件直接轉(zhuǎn)換到基本器件。
從這些MPLD除去先前存在的信號互連、信號傳輸配置相關(guān)邏輯、配置存儲器和源器件的某些信號緩沖器可明顯減小電路片的尺寸并可優(yōu)化信號路由。然而,盡管在這些MPLD的物理設(shè)計(jì)時(shí),通過在基本器件上增加金屬化層而對邏輯資源的互連路由和CRAM配置值進(jìn)行硬編碼,但是在基本器件上保留源器件的邏輯資源的配置相關(guān)邏輯電路,以使設(shè)計(jì)變化和項(xiàng)目開發(fā)時(shí)間最小。這些配置相關(guān)邏輯包括巨量的晶體管電路,這些晶體管電路增加器件的尺寸和功耗。
相應(yīng)地,希望提供用于使掩膜可編程邏輯器件的面積和性能優(yōu)化的改進(jìn)技術(shù)、系統(tǒng)和方法,其中,所述器件實(shí)施先前存在的電路設(shè)計(jì)并要求最小的用戶牽連。
發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供用于對實(shí)施先前電路設(shè)計(jì)的掩膜可編程邏輯器件的面積和性能進(jìn)行優(yōu)化的改進(jìn)技術(shù)、系統(tǒng)和方法。
本發(fā)明通過修改基本器件結(jié)構(gòu)以有利于沒有晶體管的源器件的配置相關(guān)邏輯電路的功能性,而對掩膜可編程邏輯器件的尺寸、節(jié)電和性能實(shí)現(xiàn)更大的優(yōu)化。所述修改包括用掩膜可編程基本器件上的“智能”開關(guān)取代源器件的配置相關(guān)邏輯及其CRAM配置信息。智能開關(guān)是金屬端子,在金屬端子的頂部上可增加金屬化層,以在開關(guān)的一個(gè)或多個(gè)輸入端之一與開關(guān)的輸出端之間進(jìn)行連接。基于布爾方程而進(jìn)行此連接,其中,從開關(guān)所取代的一個(gè)或多個(gè)資源的功能性得到所述布爾方程,并且,所述布爾方程由與一個(gè)或多個(gè)資源有關(guān)的CRAM值定義。
根據(jù)本發(fā)明,提供一種布置在集成電路上的掩膜可編程邏輯器件,所述器件配置為有利于將源可編程邏輯器件的先前設(shè)計(jì)轉(zhuǎn)換為掩膜可編程器件。該掩膜可編程邏輯器件包括布置在集成電路基板上的多個(gè)掩膜可編程邏輯資源;用于互連掩膜可編程邏輯資源的多個(gè)互連導(dǎo)體,所述互連導(dǎo)體耦合到掩膜可編程邏輯資源并布置在基板上方。多個(gè)掩膜可編程邏輯資源中的至少一個(gè)包括布置在基板上的至少一個(gè)智能開關(guān)。至少一個(gè)智能開關(guān)是可編程的,以執(zhí)行源可編程邏輯器件設(shè)計(jì)的配置相關(guān)邏輯電路的功能。
從以下結(jié)合附圖的詳細(xì)描述中,本發(fā)明的以上和其它的優(yōu)點(diǎn)將更加清楚,在附圖中,相同的參考符號表示相同的部件,并且,在附圖中圖1為根據(jù)本發(fā)明的基本器件的優(yōu)選實(shí)施例的布局的框圖表示;圖2為包含圖1器件的根據(jù)本發(fā)明的掩膜可編程器件的基板和掩膜金屬化層的橫截面視圖;圖3為示出根據(jù)本發(fā)明的具有標(biāo)準(zhǔn)雙輸入方程的雙輸入智能開關(guān)的一種可能的物理布局的框圖;圖4為配置相關(guān)邏輯電路的具體布置的示意圖,用于說明適于由圖3的雙輸入智能開關(guān)取代的電路;圖4A為圖4電路布置的框圖表示;圖5為根據(jù)本發(fā)明的更新框圖,說明將圖3智能開關(guān)的輸入端耦合到信號源并定義圖3智能開關(guān)的標(biāo)準(zhǔn)雙輸入方程的占位符以取代圖4和4A的電路布置的一種方式;圖6為配置相關(guān)邏輯電路的另一具體布置的邏輯符號表示,說明適于由圖3雙輸入智能開關(guān)取代的電路;圖7為根據(jù)本發(fā)明的更新框圖,說明將圖3智能開關(guān)的輸入端耦合到信號源并定義圖3智能開關(guān)的標(biāo)準(zhǔn)雙輸入方程的占位符以取代圖6的電路布置的一種方式;圖8為示出根據(jù)本發(fā)明的具有標(biāo)準(zhǔn)四輸入方程的四輸入智能開關(guān)的一種可能的物理布局的框圖;
圖9為配置相關(guān)邏輯電路的具體布置的示意圖,說明適于由圖8的四輸入智能開關(guān)取代的電路;圖10為根據(jù)本發(fā)明的更新框圖,說明將圖8智能開關(guān)的輸入端耦合到信號源并定義圖8智能開關(guān)的標(biāo)準(zhǔn)四輸入方程的占位符以取代圖9的電路布置的一種方式;圖11為配置相關(guān)邏輯電路的另一具體布置的框圖表示,說明適于由圖8四輸入智能開關(guān)取代的電路;圖12為根據(jù)本發(fā)明的更新框圖,說明將圖8智能開關(guān)的輸入端耦合到信號源并定義圖8智能開關(guān)的標(biāo)準(zhǔn)四輸入方程的占位符以取代圖11的電路布置的一種方式;圖13為說明根據(jù)本發(fā)明的在從源PLD基本器件創(chuàng)造掩膜可編程基本器件時(shí)所涉及的一些步驟的流程圖;圖14為說明根據(jù)本發(fā)明的將PLD源器件轉(zhuǎn)換為圖13中創(chuàng)造的掩膜可編程基本器件上的掩膜編程器件的一些步驟的流程圖;以及圖15為采用本發(fā)明掩膜編程器件的示例系統(tǒng)的簡化框圖。
具體實(shí)施例方式
本發(fā)明通過在基本器件上設(shè)置智能開關(guān)以取代配置相關(guān)邏輯電路和相關(guān)CRAM配置值,而減小掩膜可編程邏輯器件的電路片面積和功率需求,同時(shí)提高其性能和產(chǎn)量。智能開關(guān)不需晶體管就可用于促進(jìn)先前在另一集成電路上實(shí)施的電路設(shè)計(jì)的配置相關(guān)邏輯電路的功能性。以下更詳細(xì)地描述基本器件結(jié)構(gòu)、智能開關(guān)結(jié)構(gòu)、互連、以及轉(zhuǎn)換過程。
現(xiàn)在結(jié)合圖1-15描述本發(fā)明。
如圖1所示,根據(jù)本發(fā)明構(gòu)造的掩膜可編程基本器件10的一個(gè)實(shí)施例包括邏輯資源陣列,該陣列與San Jose的Altera Corporation,California(本申請受讓人)所銷售的APEX和Stratix系列可編程邏輯器件(即可能的源器件)中的相似。盡管示出APEX型結(jié)構(gòu),但應(yīng)理解,如果希望,任何類型的PLD、CPLD(復(fù)雜可編程邏輯器件)或相似的器件可作為用于掩膜可編程器件的基本部分的模型。
如圖1所示,邏輯資源在其最基本的層次上包括“邏輯元件”(LE)11,邏輯元件11例如為基于查找表的邏輯區(qū)域,該區(qū)域具有四個(gè)輸入并具有注冊或不注冊輸出的能力。邏輯元件11可集合成“邏輯陣列塊”(LAB)12。在圖示實(shí)施例中,每個(gè)LAB12包括十個(gè)LE11,但是,其它數(shù)量的LE 11也可集合成每個(gè)LAB12。LAB12可進(jìn)一步集合成“LAB組”(GOL)13。在圖示實(shí)施例中,每個(gè)GOL13包括17個(gè)LAB12,但是,其它數(shù)量的LAB12也可集合成每個(gè)GOL13。每個(gè)GOL13還優(yōu)選包括嵌入式存儲部件(在此實(shí)施例中稱作“嵌入式系統(tǒng)塊”(ESB))14。每個(gè)GOL13還包括多個(gè)門陣列地址15,所述門陣列地址15例如可用于緩沖、延遲、處理和/或傳送特定的信號(在后面更詳細(xì)描述)。
而且,應(yīng)理解,LAB12不必在GOL13中組織,而是以規(guī)則或不規(guī)則的圖案在全部基本器件10中展開。這些資源的一部分在核心邏輯陣列的外部?;倦娐菲?0上LE11和LAB12的特定組織對本發(fā)明不是至關(guān)重要的。
如圖所示,GOL13可布置在行和列的正交陣列中?!拜斎?輸出元件”(I/O)優(yōu)選位于陣列周圍的區(qū)域16中。其它輔助電路,如“鎖相環(huán)”(PLL)(如,用于定時(shí)),優(yōu)選設(shè)置在陣列之內(nèi)的方便位置上,如在陣列中央附近示出的區(qū)域17中。
掩膜可編程基本器件10的“體系結(jié)構(gòu)”(即,總體組織)可以與源器件如源PLD的顯著不同。盡管器件10至少包含相同數(shù)量的邏輯資源(如邏輯元件、鎖相環(huán)、I/O元件等)作為以此為基礎(chǔ)的源器件,但是,這些資源中的大多數(shù)修改為消除它們的可編程序性,并用智能開關(guān)取代配置相關(guān)邏輯,并可物理地安排和布置在不同的相對位置上。例如,在圖1中示出通常位于源器件周圍的PLL,其中,PLL位于器件10的中央,以提高抗擾度,并使更小掩膜可編程器件中的性能優(yōu)化。除去配置相關(guān)邏輯、CRAM和布線資源使GOL13在一維上更明顯地收縮。為了維持更為正方形的器件,上述行和列的正交陣列可以“折疊”,從而,該陣列可具有是源器件兩倍的行和一半的列(如,與y方向相比,該陣列在x方向上是兩倍長,反之亦然),其中,正方形器件比長方形器件更容易制造和組裝。此布置也在器件10每一側(cè)上導(dǎo)致I/O單元的雙列,這與許多源器件I/O布置截然不同。進(jìn)而,不是源器件上的每個(gè)邏輯資源都可在用戶設(shè)計(jì)中使用。未使用的邏輯資源電路處于其最低電流狀態(tài),并且其輸入使電源和接地層打結(jié),以使漏電流和開關(guān)電流最小。從而,由于在掩膜可編程器件中只執(zhí)行已用電路部件,因此可獲得更好的功率性能。未使用邏輯資源即使在可用于基本器件10上的不同設(shè)計(jì)實(shí)施時(shí)也不被加電。
如上所述,基本器件10和源器件使用有很大不同的互連方案。源器件,如PLD,傳統(tǒng)上具有大量的通用布線導(dǎo)體,以提供布線靈活性,并保證利用芯片上最大量的邏輯資源。通過對可編程邏輯連接器(在此情況下為配置有SRAM單元的多路復(fù)用器)進(jìn)行編程而在芯片上將信號發(fā)送到PLD上邏輯電路的互連部分,以獲得特定的電路設(shè)計(jì)。此種類型的布置用于提供PLD的“可編程性”,從而,可接受大范圍的電路設(shè)計(jì)。在復(fù)雜PLD中,這些布線資源占用電路片面積的大部分。這些固定資源的大部分在任何特定設(shè)計(jì)中都不經(jīng)常使用,因而,可在掩膜可編程基本器件10中除去它們。通過在每個(gè)基本器件10上建造定制互連網(wǎng)絡(luò),可實(shí)現(xiàn)節(jié)省大量的電路片面積。通過對在基本器件頂部上增加的金屬化層進(jìn)行掩膜編程,可實(shí)現(xiàn)此互連網(wǎng)絡(luò)。與定制互連網(wǎng)絡(luò)有關(guān)的一些好處包括與源PLD相比,減小電路片尺寸并減小內(nèi)部電容性負(fù)載。
圖2示出掩膜可編程基本器件10在編程之后(即,在已經(jīng)變?yōu)椤把谀ぞ幊獭逼骷?0之后)的橫截面,其中,在21一起示出組成未編程基本器件10的基板和其它層(示出一個(gè)晶體管/開關(guān)25作為代表)。金屬和電介質(zhì)附加層22和23用于對器件20進(jìn)行編程,并創(chuàng)建連接包括在基本器件10中的資源的定制互連網(wǎng)絡(luò)。共同地設(shè)置封裝層24,以保護(hù)金屬和電介質(zhì)層22和23。從而,可在掩膜可編程基本器件10上建造掩膜編程邏輯器件20,其中,掩膜可編程基本器件10具有與源器件相同的邏輯資源、存儲器、I/O和PLL并從源器件轉(zhuǎn)換,但不必具有與源器件相同的結(jié)構(gòu)。然而,在一些實(shí)施例中,結(jié)構(gòu)保持相同,并可通過本文描述方法轉(zhuǎn)換為掩膜編程器件20。
本發(fā)明的轉(zhuǎn)換過程利用以下事實(shí)掩膜可編程基本器件10至少具有與其源器件相同的邏輯資源,并且,器件10除應(yīng)該是與引線兼容的并且應(yīng)該滿足源器件的關(guān)鍵時(shí)間約束以外,不受這些資源現(xiàn)有位置的約束。
在本發(fā)明的基本器件10上設(shè)置不需晶體管就可配置為促進(jìn)任何配置相關(guān)邏輯電路(即,其功能性至少取決于一個(gè)配置相關(guān)CRAM值的電路)的功能性的智能開關(guān)。這些智能開關(guān)具有各種能力,并且以各種方式用于MPLD中,以減小其電路片面積和功率需求,同時(shí)提高其性能和產(chǎn)量。例如,用于取代邏輯資源特定電路的智能開關(guān)的類型可基于該電路的功能性和與該功能性有關(guān)的非配置相關(guān)值的數(shù)值而改變。
在圖3中,示出說明智能開關(guān)一種可能類型的視圖。此“雙輸入”開關(guān)30包括第一輸入端31(觸針A)、第二輸入端32(觸針B)以及輸出端35(觸針Z)。在互連導(dǎo)體可耦合到開關(guān)內(nèi)的觸針的程度上,雙輸入智能開關(guān)30可被認(rèn)為是“可編程的”。此可編程序性允許一般的雙輸入智能開關(guān)30形成具有特定功能的“智能單元”。每個(gè)單個(gè)智能開關(guān)的實(shí)際內(nèi)容和尺寸根據(jù)智能開關(guān)計(jì)劃實(shí)現(xiàn)的配置相關(guān)功能性的類型而改變。進(jìn)而,應(yīng)理解,幾種不同類型的智能開關(guān)(即,具有不同內(nèi)容和尺寸的智能開關(guān))可布置在基本器件10中,以提供最佳的電路片面積減小。
布置在基本器件10上的每個(gè)雙輸入智能開關(guān)30可由相同的標(biāo)準(zhǔn)方程38定義,與將要實(shí)現(xiàn)的特定功能性無關(guān),其中,標(biāo)準(zhǔn)方程38在用參數(shù)描繪如何進(jìn)行智能開關(guān)的端子(即觸針)之間連接(即開關(guān)如何被編程)的示意圖中建立。此方程38包含布爾表達(dá)式“占位符”(@RB),當(dāng)定義和評估@RB時(shí),@RB標(biāo)識兩個(gè)輸入端中的第一個(gè)是否連接到輸出端或者兩個(gè)輸入端中的第二個(gè)是否連接到輸出端。標(biāo)準(zhǔn)方程38例如可表達(dá)如下EQ=@RB?BA(1)(即,“如果表達(dá)式@RB為真,就將第二輸入觸針B連接到輸出觸針Z,否則,就將第一輸入觸針A連接到輸出觸針Z”)。
用于每個(gè)雙輸入開關(guān)30的占位符表達(dá)式@RB可單獨(dú)從以下布爾功能得到,所述布爾功能定義由開關(guān)取代的配置相關(guān)邏輯的類型,并取決于由用戶提供給制造商的與被取代邏輯配置有關(guān)的至少一個(gè)配置相關(guān)CRAM(在后面詳細(xì)描述)。接著,開關(guān)觸針的互連可通過用與該特定開關(guān)有關(guān)的至少一個(gè)配置相關(guān)CRAM值評估所獲得占位符表達(dá)式@RB而確定。從而,智能開關(guān)可用參數(shù)表示。
可以互連雙輸入開關(guān)30的觸針以獲得具有所希望功能的智能單元。通常來講,智能單元是已編程(配置)的智能開關(guān)。圖4示出配置相關(guān)邏輯的具體布置40,用于說明在適于由掩膜可編程基本器件10上的雙輸入智能開關(guān)30取代的源PLD上發(fā)現(xiàn)的典型電路。電路40是包括反相器41、晶體管42、43、44和45的標(biāo)準(zhǔn)二合一多路復(fù)用器(MUX)。基于選擇信號R1的邏輯值,將輸入信號Xl或輸入信號X2連接到輸出XOUT。此電路實(shí)現(xiàn)以下布爾功能48XOUT=R1‾·X1+R1·X2...(2)]]>在此適于由雙輸入開關(guān)30取代的包含MUX40的源PLD上,選擇信號必須是由用戶配置信息(CRAM)定義的靜態(tài)值“R”(即R1),然而,輸入信號X1和X2每一個(gè)可以是CRAM定義的靜態(tài)值“R”或用器件確定的非配置相關(guān)信號值“N”(如,時(shí)鐘信號,提供給計(jì)算器件的用戶信號等)。隨著分別耦合到觸針A和B,如果相應(yīng)的輸入X確實(shí)是靜態(tài)CRAM值R,開關(guān)30的每個(gè)輸入端3l和32就耦合到適當(dāng)?shù)墓潭ㄟ壿嬛翟?如用于邏輯值“0”的電源Vss或用于邏輯值“1”的電源Vds),或者,如果相應(yīng)的輸入X是非配置相關(guān)信號值N,輸入端31和32就耦合到器件的適當(dāng)互連信號線。然而,應(yīng)理解,在其選擇信號由信號值N(即,非CRAM值R)提供的源PLD上的二合一MUX不用基本器件10上的雙輸入開關(guān)30取代,而相反,容易用另一類型的智能開關(guān)取代,這在后面結(jié)合圖11和12更詳細(xì)地描述。
為了使第二輸入X2連接到輸出XOUT,通過確定哪個(gè)輸入必須為真,可從布爾功能48得到占位符布爾表達(dá)式@RB,其中,@RB定義取代電路40的雙輸入開關(guān)30的標(biāo)準(zhǔn)方程38。例如,為了使輸入X2連接到輸出XOUT,通過確定選擇輸入R1必須為邏輯值“1”,@RB可簡單定義為“R1”。接著,通過使用用戶CRAM定義的R1的適當(dāng)靜態(tài)值來評估開關(guān)30的標(biāo)準(zhǔn)方程38,對開關(guān)30進(jìn)行編程,以使其觸針互連,其中,@RB等于R1,這在后面結(jié)合圖13和14而更詳細(xì)地描述。從而,在此實(shí)例中,雙輸入智能開關(guān)30能取代基本器件10上的配置相關(guān)邏輯40,由此從基本器件除去4個(gè)晶體管和1個(gè)反相器。
圖4A為圖4所示二合一MUX的框圖表示。
圖5為智能開關(guān)30的視圖,其中,智能開關(guān)30的端子耦合到適當(dāng)?shù)男盘柧€或邏輯值源,并且,用適當(dāng)?shù)恼嘉环磉_(dá)式@RB更新智能開關(guān)30的標(biāo)準(zhǔn)方程38,從而,此開關(guān)可取代基本器件10上的二合一MUX電路40。
應(yīng)理解,圖4和4A所示配置相關(guān)邏輯的特定布置40僅僅是示例性的,并且,配置相關(guān)邏輯有許多其它的布置,圖4和4A用于說明在源PLD上發(fā)現(xiàn)的典型電路,其中,源PLD適于用掩膜可編程基本器件10上的雙輸入智能開關(guān)30來取代。例如,開關(guān)30適于取代大范圍的配置相關(guān)邏輯,所述配置相關(guān)邏輯包括但不限于AND門、OR門、反相器、緩沖器、NOR門、XOR門、異或非門以及它們的組合等。而且,應(yīng)理解,本發(fā)明的智能開關(guān)可具有任何數(shù)量的輸入,這在后面更詳細(xì)地描述,并且,本發(fā)明的智能開關(guān)可取代具有任何布爾項(xiàng)的電路,其中,布爾項(xiàng)可由CRAM值確定。進(jìn)而,智能開關(guān)可結(jié)合在一起,以取代更高級的配置相關(guān)邏輯電路,如觸發(fā)器、寄存器、計(jì)數(shù)器、延遲元件、加法器等。
在圖6中示出適于用掩膜可編程基本器件10上的雙輸入智能開關(guān)30來取代的配置相關(guān)邏輯的另一特定布置60的實(shí)例。用于取代電路60的特定雙輸入開關(guān)30以及用于取代電路40的開關(guān)30,只根據(jù)定義開關(guān)的標(biāo)準(zhǔn)方程38中占位符@RB的布爾表達(dá)式,并根據(jù)連接到開關(guān)端子(即端子31、32和35)的外部連接的類型,而互相變化。
如圖6所示,電路60例如包括經(jīng)常用于源PLD的列地址解碼器中的長邏輯鏈。電路60包括NAND門6l、以及NOR門62、63和64,每一個(gè)門都包括4個(gè)晶體管和1個(gè)反相器(未示出)。例如,雖然基于用門62的輸入R1和R2的CRAM值來評估門62的NAND功能性,通過將門61的輸入61a耦合到適當(dāng)?shù)墓潭ㄟ壿嬛翟?如Vss或Vds)而簡單地取代門62,但還有可能用單個(gè)智能開關(guān)30來取代所有電路60。通過分析電路60的功能性,基于輸入R1、R2、R3和R4的邏輯值,邏輯值“0”或輸入N的補(bǔ)碼連接到輸出XOUT。此電路實(shí)現(xiàn)以下布爾功能68XOUT=R1‾·R2‾·R3‾·R4‾·N‾...(3)]]>邏輯值“0”的源(如Vss)可固定到開關(guān)30的第一輸入端31,并且,非配置相關(guān)值N的補(bǔ)碼(即N)可用反相器33(圖7)耦合到第二輸入端32,因?yàn)橹惶峁┮粋€(gè)邏輯信號值N作為對電路60的輸入。為了使第二輸入N連接到輸出XOUT,通過確定哪個(gè)輸入必須為真,可從布爾功能68得到占位符@RB的布爾表達(dá)式,其中,該標(biāo)志符定義取代電路60的雙輸入開關(guān)30的標(biāo)準(zhǔn)方程38。例如,為了使輸入的補(bǔ)碼連接到輸出XOUT,通過確定選擇輸入R1-R4的每一個(gè)必須是邏輯值“0”,@RB可定義為“ ”。接著,通過使用用戶CRAM定義的R1-R4的適當(dāng)靜態(tài)值來評估開關(guān)30的標(biāo)準(zhǔn)方程38,對開關(guān)30進(jìn)行編程,以使其觸針互連,其中,@RB等于 ,這在后面結(jié)合圖13和14而更詳細(xì)地描述。從而,在此實(shí)例中,雙輸入智能開關(guān)30能取代基本器件10上的配置相關(guān)邏輯60,由此從基本器件除去16個(gè)晶體管和3個(gè)反相器。
圖7為智能開關(guān)30的視圖,其中,如上所述,智能開關(guān)30的端子耦合到適當(dāng)?shù)男盘柧€或邏輯值源,并且,用適當(dāng)?shù)恼嘉环磉_(dá)式@RB更新智能開關(guān)30的標(biāo)準(zhǔn)方程38,從而,此開關(guān)可取代基本器件10上的電路60。
應(yīng)理解,圖3、5和7中所示特定的雙輸入型智能開關(guān)30僅僅是示例性的,并且,有許多其它類型的智能開關(guān)可用于取代掩膜可編程基本器件10上源PLD的配置相關(guān)邏輯。例如,在圖8中示出說明智能開關(guān)另一可能類型的視圖。此“四輸入”開關(guān)80包含第一輸入端81(觸針A)、第二輸入端82(觸針B)、第三輸入端83(觸針C)、第四輸入端84(觸針D)以及輸出端85(觸針Z)。與開關(guān)30一樣,在互連導(dǎo)體耦合到開關(guān)內(nèi)的觸針的程度上,四輸入智能開關(guān)80被認(rèn)為是“可編程的”。
布置在基本器件10上的每個(gè)四輸入開關(guān)80可由相同的標(biāo)準(zhǔn)方程88定義,與將要實(shí)現(xiàn)的特定功能性無關(guān),其中,標(biāo)準(zhǔn)方程88在用參數(shù)描繪如何進(jìn)行開關(guān)的端子(即觸針)之間連接的示意圖中建立。此方程88包含3個(gè)布爾表達(dá)式占位符@RD、@RC和@RB,當(dāng)定義和評估@RD、@RC和@RB時(shí),@RD、@RC和@RB標(biāo)識4個(gè)輸入端中的第一個(gè)、第二個(gè)、第三個(gè)或第四個(gè)連接到開關(guān)的輸出端。標(biāo)準(zhǔn)方程88例如可表達(dá)如下EQ=@RD?D@RC?C@RB?BA (4)(即,“如果表達(dá)式@RD為真,就將第四輸入觸針D連接到輸出觸針Z,如果表達(dá)式@Rc為真,就將第三輸入觸針C連接到輸出觸針Z,如果表達(dá)式@RB為真,就將第二輸入觸針B連接到輸出觸針Z,否則,就將第一輸入觸針A連接到輸出觸針Z”)。
用于每個(gè)四輸入開關(guān)80的每一個(gè)占位符表達(dá)式@RD-B可單獨(dú)從以下布爾功能得到,所述布爾功能定義由開關(guān)取代的配置相關(guān)邏輯的類型,并取決于與被取代邏輯的配置有關(guān)的至少一個(gè)配置相關(guān)CRAM值。接著,開關(guān)觸點(diǎn)的互連可通過用與該特定開關(guān)有關(guān)的至少一個(gè)配置CRAM值評估所獲得占位符表達(dá)式@RD-B而確定。從而,與開關(guān)30一樣,智能開關(guān)80可用參數(shù)表示。
圖9示出配置相關(guān)邏輯的特定布置90,用于說明在適于由掩膜可編程基本器件10上的四輸入智能開關(guān)90取代的源PLD上發(fā)現(xiàn)的典型電路。電路90是由三個(gè)標(biāo)準(zhǔn)二合一MUX 40a、40b和40c組合構(gòu)成的標(biāo)準(zhǔn)四合一多路復(fù)用器(MUX),其中,二合一MUX 40a、40b和40c與圖4和4A的MUX 40相似。MUX 40a、40b和40c每一個(gè)都包括反相器41和晶體管42、43、44和45?;谶x擇信號R1和R2的邏輯值,輸入信號X1、X2、X3或X4連接到輸出XOUT。此四合一MUX電路90實(shí)現(xiàn)以下布爾功能98XOUT=R1‾·R2‾·X1+R1·R2‾·X2+R1‾·R2·X3+R1·R2·X4...(5)]]>在適于由基本器件10上四輸入開關(guān)30取代的包含此四合一MUX90的源PLD上,選擇信號必須是由用戶配置信息定義的靜態(tài)值“R”(即,R1和R2),然而,輸入Xl、X2、X3和X4每一個(gè)都可以是由CRAM定義的靜態(tài)值“R”或用器件確定的非配置相關(guān)信號值“N”。隨著分別耦合到觸針A-D,如果開關(guān)80的相應(yīng)輸入X1-4確實(shí)是靜態(tài)CRAM值R,開關(guān)80的每一個(gè)輸入端81-84就耦合到適當(dāng)?shù)墓潭ㄟ壿嬛翟?,或者,如果相?yīng)輸入X1-4是非配置相關(guān)信號值“N”,開關(guān)80的每一個(gè)輸入端81-84就耦合到器件的適當(dāng)互連信號線。
為了使每一個(gè)輸入X1-4連接到輸出XOUT,通過確定哪個(gè)輸入必須為真,可從布爾功能98得到每一個(gè)占位符@RD-B的布爾表達(dá)式,其中,@RD-B定義四輸入開關(guān)80的標(biāo)準(zhǔn)方程88。例如,為了使輸入X4連接到輸出XOUT,通過確定選擇輸入R1和選擇輸入R2的每一個(gè)必須是邏輯值“1”;為了使輸入X3連接到輸出XOUT,通過確定選擇輸入R1必須為邏輯值“0”且選擇輸入R2必須是邏輯值“1”;為了使輸入X2連接到輸出XOUT,通過確定選擇輸入R1必須為邏輯值“1”且選擇輸入R2必須是邏輯值“0”;并且,為了使輸入X1連接到輸出XOUT,通過確定選擇輸入R1和選擇輸入R2的每一個(gè)必須是邏輯值“0”,@RD可定義為“R1·R2”,@Rc可定義為“ ·R2”,并且,@RB可定義為“R1· ”。接著,通過使用用戶CRAM定義的R1和R2的適當(dāng)靜態(tài)值來評估開關(guān)80的標(biāo)準(zhǔn)方程88,對開關(guān)80進(jìn)行編程,以使其觸點(diǎn)互連,這在后面結(jié)合圖13和14而更詳細(xì)地描述,其中,標(biāo)準(zhǔn)方程88具有三個(gè)@RD-B表達(dá)式。從而,在此實(shí)例中,四輸入智能開關(guān)80能取代配置相關(guān)邏輯90,由此從基本器件除去12個(gè)晶體管和三個(gè)反相器。
圖10為智能開關(guān)80的視圖,其中,智能開關(guān)80的端子耦合到適當(dāng)?shù)男盘柧€或邏輯值源,并且,用適當(dāng)?shù)恼嘉环磉_(dá)式@RD-B更新智能開關(guān)80的標(biāo)準(zhǔn)方程88,從而,此開關(guān)可取代基本器件10上的四合一MUX電路90。
應(yīng)理解,圖9所示配置相關(guān)邏輯的特定布置90僅僅是示例性的,并且,配置相關(guān)邏輯有許多其它布置,用于說明在適于由掩膜可編程基本器件10上的四輸入智能開關(guān)80取代的源PLD上發(fā)現(xiàn)的典型電路。例如,在圖11中示出此電路的另一特定布置。電路110是與圖4和4A所示MUX40相似的標(biāo)準(zhǔn)二合一多路復(fù)用器。然而,與由選擇輸入R(即CRAM值)控制的MUX40不同,二合一MUX110由選擇輸入N(即,通過使用器件而確定的非配置相關(guān)信號值)控制。例如,此類配置相關(guān)邏輯可用于在LE11中提供一部分查找表(LUT)。LUT的邏輯輸入用作LUT的16位可編程存儲器的地址線(如,十六個(gè)CRAM值),16位可編程存儲器的內(nèi)容使用配置相關(guān)邏輯(如多路復(fù)用器(MUX)、熔斷器、晶體管等)的陣列來定義LUT的邏輯功能?;谶x擇輸入N的邏輯值,輸入R1或輸入R2連接到輸出XOUT。此電路實(shí)現(xiàn)以下布爾功能118XOUT=N·R1+N·R2(6)在適于由基本器件10上四輸入開關(guān)80取代的包含此MUX110的源PLD上,輸入R1和R2必須是由CRAM定義的靜態(tài)值“R”。隨著分別耦合到觸針A-D,開關(guān)80的每一個(gè)輸入端81-84連接到適當(dāng)?shù)墓潭ㄟ壿嬛翟?如電源Vss或電源Vds)或器件的適當(dāng)信號線,這在后面更詳細(xì)描述。
為了從輸出XOUT提供特定信號,通過確定輸入R的哪一個(gè)必須為真,可從布爾功能118得到占位符@RD-B的布爾表達(dá)式,其中,占位符@RD-B定義用于取代電路110的四輸入開關(guān)80的標(biāo)準(zhǔn)方程88。例如,當(dāng)輸入R1和R2每個(gè)都是邏輯值“1”時(shí),通過確定XOUT將與選擇輸入N的值無關(guān)地提供邏輯值“1”;當(dāng)輸入R1為邏輯值“1”并且輸入R2為邏輯值“0”時(shí),通過確定XOUT將提供與N的邏輯值的補(bǔ)碼相同的邏輯值;當(dāng)輸入R1為邏輯值“0”并且輸入R2為邏輯值“1”時(shí),通過確定XOUT將提供與N的邏輯值相同的邏輯值;以及,當(dāng)輸入R1和R2每個(gè)都是邏輯值“0”時(shí),通過確定XOUT將與選擇輸入N的值無關(guān)地提供邏輯值“0”,@RD可定義為“R1·R2”,@Rc可定義為“ ·R2”,并且,@RB可定義為“R1· ”。接著,通過使用用戶CRAM定義的R1和R2的適當(dāng)靜態(tài)值來評估開關(guān)80的標(biāo)準(zhǔn)方程88,對開關(guān)80進(jìn)行編程,以使其觸針互連,這在后面結(jié)合圖13和14而更詳細(xì)地描述,其中,標(biāo)準(zhǔn)方程88具有這些@RD-B表達(dá)式。然而,為了使編程的智能開關(guān)80完全實(shí)現(xiàn)MUX電路110的功能性,輸入端81必須耦合到邏輯值“0”的固定源(如電源Vss),輸入端84必須耦合到邏輯值“1”的固定源(如電源Vds),輸入端82必須耦合到提供信號N的器件的信號線,并且,輸入端83必須耦合到使用反相器86提供信號N的補(bǔ)碼的信號線(圖12)。然而,應(yīng)理解,如果開關(guān)80的端子耦合到與上述不同的信號源,就必需重新定義占位符@RD-B的布爾表達(dá)式。從而,在此實(shí)例中,四輸入智能開關(guān)80能取代配置相關(guān)邏輯110。
圖12為智能開關(guān)80的視圖,其中,智能開關(guān)80的端子耦合到適當(dāng)?shù)男盘柧€,并且,用適當(dāng)?shù)恼嘉环磉_(dá)式@RD-B更新智能開關(guān)80的標(biāo)準(zhǔn)方程88,從而,此開關(guān)可取代基本器件10上的二合一MUX電路110。
圖4、4A、6、9和11的配置相關(guān)邏輯電路布置僅僅是示例性的,并且,配置相關(guān)邏輯有許多其它布置,用于說明在適于由本發(fā)明的智能開關(guān)取代的源PLD上發(fā)現(xiàn)的電路,其中,所述智能開關(guān)不偏離本發(fā)明的精神和范圍。
從以上可理解,N輸入智能開關(guān)的標(biāo)準(zhǔn)方程例如可一般地表達(dá)如下EQ=@RN?N@RN-1?N·1…@RB?BA (7)每個(gè)N輸入開關(guān)的占位符@RD-B可分別由以下布爾表達(dá)式定義,其中,所述布爾表達(dá)式從被所述開關(guān)取代的配置相關(guān)邏輯電路的布置得到,并且,可通過用與電路有關(guān)的CRAM值評估方程而對所述開關(guān)進(jìn)行編程,其中,所述方程用適當(dāng)?shù)恼嘉环磉_(dá)式來更新。
然而,應(yīng)理解,智能開關(guān)的功能性不僅由其標(biāo)準(zhǔn)方程的占位符表達(dá)式定義,也由耦合到其輸入端的信號線的類型來定義。例如,雖然示出的標(biāo)準(zhǔn)方程88的占位符表達(dá)式與開關(guān)80的相同,與開關(guān)是否取代四合一MUX(例如參見圖10)或由邏輯信號值N控制的二合一MUX(例如參見圖12)無關(guān),但是,根據(jù)放回到基本器件上的源器件的配置相關(guān)邏輯電路的類型而將輸入端81-84耦合到不同的信號線。信號與器件上智能開關(guān)端子的傳送優(yōu)選結(jié)合器件上所有互連的布線進(jìn)行,同時(shí)考慮開關(guān)所取代的配置相關(guān)邏輯的類型,這在下面結(jié)合圖13和14更詳細(xì)地說明。
圖13為說明根據(jù)本發(fā)明的在從源PLD基本器件產(chǎn)生掩膜可編程基本器件10時(shí)所涉及的一些步驟的流程圖。此處理不依賴于用戶提供的任何配置信息。一開始,在步驟200中向制造商提供PLD的基本器件的示意信息。在Altera的專用軟件產(chǎn)生的計(jì)算機(jī)生成文件中,提供的示意信息與諸如PLD的源基本器件有關(guān)。與前面已知的方法相同,在步驟S202中除去源器件的CRAM和布線結(jié)構(gòu)。
接著,在步驟204中,可掃描源基本器件的示意信息,以標(biāo)識可由掩膜可編程基本器件10上的本發(fā)明智能開關(guān)取代的配置相關(guān)邏輯。此配置相關(guān)邏輯例如為任何類型的電路,如圖4、6、9和11所示的電路40、60、90和110,其中,所述電路的功能性依賴于至少一個(gè)配置相關(guān)CRAM值。在步驟206中,使用在內(nèi)部開發(fā)的軟件,以適當(dāng)大小的智能開關(guān)的標(biāo)準(zhǔn)方程,在掩膜可編程基本器件10的示意信息中取代在步驟204的示意信息中標(biāo)識的源基本器件的每個(gè)配置相關(guān)邏輯電路,其中,所述智能開關(guān)具有適當(dāng)?shù)恼嘉环磉_(dá)式。如上所述,通過評估將被取代的配置相關(guān)邏輯電路的功能性而得到智能開關(guān)的標(biāo)準(zhǔn)方程的占位符布爾表達(dá)式。
一旦在步驟206中適當(dāng)?shù)囟x智能開關(guān)方程,在有可能由用戶定義以確定開關(guān)如何編程的CRAM值的組中,即使不是全部,仿真數(shù)據(jù)也是在步驟208中最廣泛地注釋每個(gè)方程。對于在步驟208中注釋的每組CRAM值,可通過靜態(tài)功能驗(yàn)證技術(shù)而驗(yàn)證方程的完整性(步驟210),該技術(shù)包括當(dāng)應(yīng)用某些約束時(shí)確認(rèn)兩種版本的設(shè)計(jì)在功能上是相同的。例如,在步驟206中得到的每個(gè)智能開關(guān)方程應(yīng)在邏輯上等效于開關(guān)所取代的源器件的配置相關(guān)邏輯。此技術(shù)不依賴于用戶提供的任何模擬向量。如果未發(fā)現(xiàn)注釋的方程在功能上與配置相關(guān)邏輯相同,那么,就在步驟212中在方程中進(jìn)行適當(dāng)?shù)男U?,通過重復(fù)步驟204-208直到產(chǎn)生滿意的智能開關(guān)方程為止,從而保證功能等效。
此時(shí),完成智能開關(guān)方程的推導(dǎo)。在步驟214中,具有適當(dāng)方程的智能開關(guān)的物理表述進(jìn)入掩膜可編程基本器件10的概要中。在步驟216中,基于正被取代的配置相關(guān)邏輯的源PLD基本器件上的位置而提取基本器件10上每個(gè)智能開關(guān)的位置。
圖14示出使用用戶的設(shè)計(jì)規(guī)范從先前電路設(shè)計(jì)產(chǎn)生基本器件10上掩膜編程邏輯器件20的上述方法的轉(zhuǎn)換流程圖。一開始,用戶向制造商提供與源器件的配置和所需時(shí)間要求有關(guān)的信息(步驟230)。在由Altera的QuartusII軟件產(chǎn)生的計(jì)算機(jī)生成配置文件如SRAM目標(biāo)文件(.sof文件)中,提供的配置信息與諸如PLD的源器件有關(guān)。此文件通常包括連通性信息和與邏輯資源的物理配置有關(guān)的信息。配置文件在步驟235中提供給連線表生成器,并在步驟237中提供給物理模塊生成器。由連線表生成器提取包含在配置文件中的連通性信息,并且創(chuàng)建諸如Verilog連線表的結(jié)構(gòu)連線表240。連線表240包含描述源器件的邏輯功能和連通性的信息,但優(yōu)選不保留與邏輯資源的物理位置有關(guān)的信息。
接著,在步驟243中,對連線表240掃描,以測試可測性違規(guī)。此時(shí),可增加測試結(jié)構(gòu)來糾正任何檢測的違規(guī),以實(shí)現(xiàn)故障測試并對已完成的掩膜編程器件20的操作提供進(jìn)一步的能見度(步驟244)??芍貜?fù)步驟243和244,直到糾正所有可測性違規(guī)為止。
在步驟237中,物理模塊生成器確定如何物理配置基本器件10上的邏輯資源,如LE11,從而,它們執(zhí)行所要求的邏輯功能。此步驟從圖13的步驟216獲得每個(gè)基本器件10的物理布局,如LE11以及其智能開關(guān)位置和方程,并且,基于來自步驟230所提供配置信息的與開關(guān)相關(guān)的CRAM的評估值而對智能開關(guān)進(jìn)行編程。在一些實(shí)施例中,此操作可基于步驟230的配置文件所提供的配置位(CRAM)。這可被認(rèn)為是物理編程器件10的第一步驟(即,確定如何連接邏輯資源和它們的開關(guān)以產(chǎn)生所希望的邏輯功能)。這些“已編程模塊”的功能性和物理完整性隨著它們的產(chǎn)生而進(jìn)行驗(yàn)證,從而,不需要驗(yàn)證模塊功能性的邏輯仿真。步驟237一般與步驟235-280同時(shí)進(jìn)行。
連線表240中的信息描述源器件(如PLD中的I/O、LE、ESB和PLL部件)上每個(gè)電路部件的功能以及每個(gè)部件如何連接到其它電路部件。在步驟245中,布置程序向基本器件10的具體部分分配源器件設(shè)計(jì)的特定部分。邏輯資源(如LAB12)的布置可基于各種因素,如互連要求、時(shí)間要求以及與源器件的引線兼容性所強(qiáng)加的約束。布置程序的一個(gè)目的是優(yōu)化掩膜編程器件20上邏輯資源的位置,以保證其性能特性等于或好于源器件已經(jīng)實(shí)現(xiàn)的性能特性。
在一些實(shí)施例中,希望保留部分源器件布局,以取消對電路設(shè)計(jì)轉(zhuǎn)化或綜合的要求。在源器件和掩膜可編程器件共享實(shí)際上相同的邏輯資源結(jié)構(gòu)的情況下就可以如此。例如,在轉(zhuǎn)換PLD的情況下,在源PLD中使用的LAB12可被引入并布置成掩膜可編程器件上的LAB12,不需進(jìn)一步分解為更小的元件(如LE11),因?yàn)楸M管LAB具有不同的物理布局,但它們具有完全相同的功能性。這允許布置程序基于LAB而在LAB上分配部分源器件設(shè)計(jì),由此避免通過布置基礎(chǔ)邏輯部件來執(zhí)行電路設(shè)計(jì)所需的進(jìn)一步處理。然而,應(yīng)指出,在許多情況下,與源PLD相比,LAB12在掩膜編程器件20上的不同位置中結(jié)束,因?yàn)榕c源器件上位置無關(guān)地進(jìn)行布置。然而,應(yīng)理解,只要保留LAB內(nèi)的LE結(jié)構(gòu),就可在LE層次上進(jìn)行此布置,但這通常花更長的時(shí)間,并且需要更復(fù)雜的測試程序。
在完成本發(fā)明的邏輯資源布置之后,得到的布置信息轉(zhuǎn)換為代表基本器件10上電路部件物理位置的物理坐標(biāo)數(shù)據(jù)文件(步驟245)。此信息用于確定如何互連在步驟245中布置的邏輯資源,以形成所要求的先前電路設(shè)計(jì)。此互連設(shè)置在基本器件10之上的適當(dāng)掩膜金屬化層中(例如,參見圖2中的金屬化層22)。這被認(rèn)為是物理編程器件10的第二步驟(即,標(biāo)識在步驟237中配置且同時(shí)需要在步驟255中互連的邏輯資源的布置,以產(chǎn)生所希望的邏輯設(shè)計(jì))。所有I/O單元16的布置通常固定在基本器件10的周圍上。
接著,在步驟255中,布線程序產(chǎn)生用于互連以上布置的邏輯資源的定制互連網(wǎng)絡(luò)。布線程序使用從連線表240得到的連通性信息和以上產(chǎn)生的物理坐標(biāo)信息,以確定用于連接在步驟245中布置的邏輯資源的最佳方式。這被認(rèn)為是物理編程器件10的第三步驟(即,連接以上布置的邏輯資源)。最后,在基本器件10之上的金屬化層中實(shí)施定制的互連。以與用于配置PLD的已知軟件相似的方式執(zhí)行上述布置和布線步驟。
與使用定制互連有關(guān)的一個(gè)好處是與源PLD相比,使用明顯更少的布線資源,因?yàn)閮H產(chǎn)生必需的互連(即,在定制互連中,在源PLD上未發(fā)現(xiàn)一個(gè)不使用的通用布線導(dǎo)體)。另外,除去在源PLD中使用的全部可編程邏輯連接器,顯著減小掩膜編程器件20的功耗和尺寸。
此時(shí),完成表述邏輯源布置和互連的軟件文件。此表述可用于檢查物理設(shè)計(jì)違規(guī),如過大的輸出能力或天線違規(guī)(步驟260)。例如,此設(shè)計(jì)表述的測試可揭示與某個(gè)LE11相關(guān)的節(jié)點(diǎn)具有可導(dǎo)致減慢響應(yīng)時(shí)間或增加功耗的過大輸出能力。此問題可通過在負(fù)荷重的電路路徑中插入緩沖電路以增加信號強(qiáng)度而糾正。接著,可在步驟260中在連線表240上增加此緩沖電路。根據(jù)在2002年3月29日提交的、在共同委托的且共同未決的美國專利申請第10/113324號中的描述,可通過對上述一些門陣列地址15進(jìn)行編程而創(chuàng)造緩沖電路,此專利申請的全部內(nèi)容在此引作參考。
在完成步驟260之后,可在得到的電路布局上產(chǎn)生互連寄生電容和電阻信息(步驟265)。此信息可轉(zhuǎn)換為標(biāo)準(zhǔn)延遲格式文件(.sdf文件),該文件具有用于估計(jì)傳播延遲的延遲計(jì)算工具。可估計(jì)最小和最大延遲,以識別電勢設(shè)置時(shí)間違規(guī)(太因而不滿足用戶指定時(shí)間要求的信號)和/或保持時(shí)間違規(guī)(太快而且不能正確處理的信號)。
接著,在步驟270中,使用在步驟265中產(chǎn)生的信息,在步驟245-265之后分析和糾正出現(xiàn)的電路設(shè)計(jì)定時(shí)。定時(shí)違規(guī)可通過比較用戶提供的定時(shí)要求和步驟265中的估計(jì)而確定。設(shè)置時(shí)間違規(guī)可按幾種方式糾正。例如,可使用如上所述的附加緩沖器,以加速信號,或者如果需要,可通過返回到步驟245而再次優(yōu)化布置。保持時(shí)間違規(guī)可通過插入延遲元件來糾正。這些延遲和緩沖元件可通過對上述門陣列地址15進(jìn)行編程而創(chuàng)造。
如果在連線表240上增加任何新的元件以糾正定時(shí)或設(shè)計(jì)違規(guī),就在步驟275在連線表240中執(zhí)行適當(dāng)?shù)募m正。隨后,反復(fù)執(zhí)行布置步驟245和布線步驟255,向連線表240反映這些變化,隨后,另外重復(fù)步驟270中用于時(shí)間違規(guī)的測試。通常,在初始布置和布線之后,只有一個(gè)或多個(gè)重復(fù)是必需的。
如果在步驟270中觀察沒有定時(shí)違規(guī),可通過靜態(tài)功能驗(yàn)證技術(shù)來驗(yàn)證連線表240的完整性(步驟280),其中,該技術(shù)包括當(dāng)應(yīng)用某些約束時(shí)確認(rèn)兩種版本的設(shè)計(jì)在功能上是相同的。例如,原始連線表240應(yīng)該在邏輯上等效于被修改以糾正時(shí)間和/或設(shè)計(jì)規(guī)則違規(guī)的連線表240。此技術(shù)不依賴于用戶提供的任何模擬向量。如果未發(fā)現(xiàn)兩種版本的連線表240在功能上相同,那么,就在步驟285在連線表240中執(zhí)行適當(dāng)?shù)募m正(例如,通過增加或除去某些電路,等等),以保證功能等效。接著,重復(fù)步驟245-270,直到產(chǎn)生滿意的電路設(shè)計(jì)為止。
此時(shí),完成電路設(shè)計(jì)的布置和布線(步驟290)。在步驟295中,表示從步驟240-280所開發(fā)電路設(shè)計(jì)的軟件文件與在步驟237中產(chǎn)生的物理配置文件相結(jié)合,完成將在掩膜編程器件20中執(zhí)行的電路設(shè)計(jì)。此結(jié)合包括結(jié)合在步驟237中產(chǎn)生的物理配置文件,其中,所述物理配置文件包含指定在步驟245中布置且在步驟255中布線的每個(gè)邏輯資源的具體配置的互連信息。例如,這產(chǎn)生需要在基本器件上互連的全部邏輯資源的準(zhǔn)確物理坐標(biāo),以產(chǎn)生具體電路設(shè)計(jì)。它還包括必須在掩膜層中產(chǎn)生的全部互連路徑的物理坐標(biāo),以提供必需的互連。
然而,可在制造定制金屬互連之前驗(yàn)證物理布局。這通常包括檢查設(shè)計(jì)規(guī)則違規(guī)以及保證在物理上正確執(zhí)行互連(步驟299)。這些過程有時(shí)稱作設(shè)計(jì)規(guī)則檢查(DRC)和布局-示意圖驗(yàn)證(LVS)。此時(shí),產(chǎn)生金屬互連,并耦合到基本器件10上,以產(chǎn)生掩膜編程器件20(步驟297)。在步驟299之后,可執(zhí)行用于保證器件20正確操作的附加步驟,例如包括使用掃描鏈技術(shù)來觀察器件20內(nèi)的某些節(jié)點(diǎn)(未示出)。
應(yīng)理解,從先前邏輯設(shè)計(jì)創(chuàng)建甚至更小掩膜編程邏輯器件20的能力為電路設(shè)計(jì)者提供針對昂貴的專用集成電路技術(shù)(ASIC)的既節(jié)省成本又縮短周期時(shí)間的替代方案。進(jìn)而,產(chǎn)生上述掩膜編程器件的能力允許電路設(shè)計(jì)者結(jié)合更小容量PLD如Altera的Flex400、600、800、1000、8K、10K和大容量FPGA如APEX、Cyclone和Stratix系列產(chǎn)品或相似器件的邏輯設(shè)計(jì),并用沒有配置相關(guān)邏輯電路的單個(gè)掩膜編程器件20取代它們,這超出以前可能地節(jié)省電路片面積且減小總功耗。
根據(jù)上述方法構(gòu)造的掩膜編程邏輯器件20可用作圖15所示數(shù)據(jù)處理系統(tǒng)300的一部分。數(shù)據(jù)處理系統(tǒng)300包括一個(gè)或多個(gè)以下部件處理器301;存儲器302;I/O電路303;以及外圍器件304。這些部件通過系統(tǒng)總線305而耦合在一起,并且在電路板306上組裝,其中,電路板306包含在終端用戶系統(tǒng)307中。
系統(tǒng)300可用于許多應(yīng)用,如計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)網(wǎng)絡(luò)、儀器儀表、視頻處理、數(shù)字信號處理或希望利用掩膜可編程邏輯的優(yōu)點(diǎn)的任何其它應(yīng)用。掩膜編程邏輯器件20可配置為執(zhí)行各種不同的邏輯功能。例如,掩膜編程邏輯器件20可配置為與處理器301協(xié)同工作的處理器或控制器。掩膜編程邏輯器件20還可作為用于仲裁對系統(tǒng)300中共享資源的訪問的仲裁器。在另一實(shí)例中,掩膜編程邏輯器件20可配置為處理器301與系統(tǒng)300中一個(gè)其它部件之間的接口。應(yīng)指出,系統(tǒng)300只是示范性的,并且,本發(fā)明的真實(shí)范圍和精神應(yīng)該由后附權(quán)利要求表示。
各種集成電路工藝技術(shù)可用于實(shí)現(xiàn)根據(jù)本發(fā)明的上述掩膜編程邏輯器件20。另外,其它已知的編程技術(shù)如基于熔斷器的編程可用于替換詳細(xì)討論的掩膜編程,并仍然實(shí)踐本發(fā)明的原理。
從而,應(yīng)該理解,前面僅僅是說明本發(fā)明的原理,并且,只要不偏離本發(fā)明的范圍和精神,本領(lǐng)域中技術(shù)人員可進(jìn)行各種變更,而且,本發(fā)明只受后附權(quán)利要求的限制。
權(quán)利要求
1.一種布置在集成電路上的掩膜可編程邏輯器件,所述器件被配置為有利于將源可編程邏輯器件的先前設(shè)計(jì)轉(zhuǎn)換為所述掩膜可編程器件,包括布置在集成電路基板上的多個(gè)掩膜可編程邏輯資源;以及用于互連掩膜可編程邏輯資源的多個(gè)互連導(dǎo)體,所述互連導(dǎo)體耦合到掩膜可編程邏輯資源并布置在基板上方,其中,多個(gè)掩膜可編程邏輯資源中的至少一個(gè)包括布置在基板上的至少一個(gè)智能開關(guān),該智能開關(guān)是可編程的,以執(zhí)行源可編程邏輯器件的先前設(shè)計(jì)的配置相關(guān)邏輯電路的功能。
2.如權(quán)利要求1所述的掩膜可編程邏輯器件,其中,配置相關(guān)邏輯電路的功能取決于源可編程邏輯器件的至少一個(gè)可配置值。
3.如權(quán)利要求1所述的掩膜可編程邏輯器件,其中,智能開關(guān)不包括晶體管。
4.如權(quán)利要求1所述的掩膜可編程邏輯器件,其中,智能開關(guān)包括從基板延伸到第一掩膜層的固定觸點(diǎn)。
5.如權(quán)利要求4所述的掩膜可編程邏輯器件,進(jìn)一步包括至少一個(gè)互連段,所述互連段耦合到固定觸點(diǎn)并位于掩膜層上,用于對智能開關(guān)進(jìn)行編程以實(shí)現(xiàn)所述功能。
6.如權(quán)利要求1所述的掩膜可編程邏輯器件,其中,智能開關(guān)包括多個(gè)固定輸入觸點(diǎn)和一個(gè)固定輸出觸點(diǎn),其中,所述輸入和輸出觸點(diǎn)從基板延伸到第一掩膜層。
7.如權(quán)利要求6所述的掩膜可編程邏輯器件,進(jìn)一步包括至少一個(gè)互連段,所述互連段耦合到所述輸入觸點(diǎn)之一和所述輸出觸點(diǎn),其中,所述互連段位于掩膜層上,用于對智能開關(guān)進(jìn)行編程以實(shí)現(xiàn)所述功能。
8.如權(quán)利要求6所述的掩膜可編程邏輯器件,其中,智能開關(guān)包括用于每一個(gè)所述輸入觸點(diǎn)的占位符表達(dá)式,其中,每一個(gè)占位符表達(dá)式從配置相關(guān)邏輯電路的功能得到并依賴于源可編程邏輯器件的至少一個(gè)可配置值。
9.如權(quán)利要求8所述的掩膜可編程邏輯器件,進(jìn)一步包括至少一個(gè)互連段,所述互連段位于掩膜層上并耦合到所述輸出觸針和一個(gè)輸入觸點(diǎn),其中,通過用源可編程邏輯器件的至少一個(gè)可配置值評估每一個(gè)所述占位符表達(dá)式而選擇所述一個(gè)輸入觸點(diǎn)。
10.一種數(shù)字處理系統(tǒng),包括處理電路;耦合到處理電路的存儲器;以及如權(quán)利要求1所述的掩膜可編程邏輯器件,該器件耦合到所述處理電路和存儲器。
11.一種印刷電路板,在所述印刷電路板上安裝如權(quán)利要求1所述的掩膜可編程邏輯器件。
12.如權(quán)利要求11所述的印刷電路板,進(jìn)一步包括安裝在印刷電路板上并耦合到掩膜可編程邏輯器件的存儲器。
13.如權(quán)利要求12所述的印刷電路板,進(jìn)一步包括安裝在印刷電路板上并耦合到掩膜可編程邏輯器件的處理電路。
14.一種從源可編程邏輯器件的先前設(shè)計(jì)創(chuàng)造掩膜可編程邏輯器件的方法,所述方法包括接收代表所述源器件設(shè)計(jì)的示意信息;從示意信息除去可配置存儲器和布線資源;用可編程的至少第一智能開關(guān)來取代示意信息的至少第一配置相關(guān)邏輯資源,以執(zhí)行第一配置相關(guān)邏輯資源的功能。
15.如權(quán)利要求14所述的方法,其中,第一配置相關(guān)邏輯資源的功能依賴于源可編程邏輯器件的至少一個(gè)可配置存儲器值。
16.如權(quán)利要求14所述的方法,其中,智能開關(guān)布置在基板上,并包括多個(gè)固定輸入觸點(diǎn)和一個(gè)固定輸出觸點(diǎn),并且其中,每一個(gè)所述觸點(diǎn)從基板延伸到第一掩膜層。
17.如權(quán)利要求16所述的方法,其中,所述取代包括從第一配置相關(guān)邏輯資源的功能得到用于每個(gè)輸入觸針的占位符表達(dá)式。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括接收包括源可編程邏輯器件的可配置存儲器值的配置信息。
19.如權(quán)利要求18所述的方法,其中,每個(gè)占位符表達(dá)式是依賴于至少一個(gè)可配置存儲器值的布爾表達(dá)式。
20.如權(quán)利要求19所述的方法,進(jìn)一步包括通過用所述配置信息評估每個(gè)占位符表達(dá)式,并通過用位于第一掩膜層上的互連段將適當(dāng)?shù)囊粋€(gè)輸入觸針耦合到輸出觸針,對智能開關(guān)進(jìn)行編程。
全文摘要
提供一種實(shí)施先前電路設(shè)計(jì)并且包括可編程智能開關(guān)的掩膜可編程邏輯器件。智能開關(guān)是金屬端子,其中,金屬端子可被編程,以執(zhí)行先前電路設(shè)計(jì)的配置相關(guān)邏輯功能。
文檔編號H03K19/177GK1716568SQ20051007553
公開日2006年1月4日 申請日期2005年6月2日 優(yōu)先權(quán)日2004年6月2日
發(fā)明者喬納森·帕爾克 申請人:阿爾特拉公司