本發(fā)明涉及一種集成電路(IC)在工程修改(ECO)時減少重新制版層數(shù)的方法。
背景技術:
ECO(Engineering Change Order,工程修改)是指在集成電路(IC)設計流程后期階段或者集成電路流片(IC tape out)之后對電路和版圖進行小幅度修改的過程。當IC tape out后發(fā)現(xiàn)問題需要修改時,為了節(jié)約成本,通常只做metal only ECO(金屬層修改),即不修改底層的標準單元(standard cell),只改變metal(金屬層)連接關系,從而實現(xiàn)電路功能的改變。制版時,只需要代工廠 (Foundry) 替換掉需進行修改的幾層金屬的掩膜(mask),便可以方便的修正掉芯片初始流片中所發(fā)現(xiàn)的各種問題。相比于重新設計、重新流片,這種方法設計周期大大減少,其設計的成本也顯著降低。
由于需要對修改的金屬層的mask進行替換,所以其所涉及到的mask的層 數(shù),直接決定了這一修改的成本。如何獲得最小的金屬層數(shù)改動,是ECO調整所面臨的核心問題。目前的處理方法一般是在電路中增加冗余單元(spare cell) ,將 spare cell 的輸入、輸出端與電源或地端相連,然后利用EDA(Electronics Design Automation)工具完成這一連接的布線。EDA工具的處理方式,通常都是將輸入、輸出端與其附近的電源軌(power rail)或地線軌(ground rail)相連。由于power rail或ground rail一般由底層金屬實現(xiàn),所以這一連接布線,通常只涉及底層金屬的少量布線。當芯片需要 ECO 調整時,需首先將這一連接切斷,然后選擇合適的金屬層,以及合適的走線位置,將spare cell的端口與目標端口相連。這一方式存在的問題是,由于EDA工具對于spare cell端口與power/ground rail之間的布線采用了很底層的金屬走線完成,那么當此處的spare cell需要進行ECO調整時,這一調整很有可能需要從頂層金屬一路向下跳到底層金屬才能完成從spare cell端口到目標端口的走線,這將涉及到大量的金屬及通孔層重新制版的工作,所付出的費用和成本是巨大的。
在IC設計過程中,會有很多地方需要用到寄存器(register),在模擬(analog)模塊中可能會用到很多參數(shù)。這些register或analog參數(shù)需要一個default值(缺省值)。但是在IC tape out前可能無法確定default值設為何值比較好,往往需要拿到實際IC后系統(tǒng)調試完才能最終確定。對于這類問題,可以通過EFUSE(電子熔絲)或者EEPROM(電可擦寫存儲器)等方式修改default值,但是這無疑增加了成本。而且對于PLL(鎖相環(huán))相關的參數(shù),用這類方式不一定能解決問題。若對這些default值做ECO,如前面提到的,可能需要動到多層金屬層和通孔層,改版的成本也會很高。
技術實現(xiàn)要素:
本發(fā)明旨在提供一種集成電路工程修改時減少改動層數(shù)的方法,以解決現(xiàn)有ECO修改時需要對多個金屬層和通孔層的版圖進行修改,改版費用高、耗時長的問題。
具體方案如下:
一種集成電路工程修改時減少改動層數(shù)的方法,所述方法包括以下步驟:
1)在集成電路設計中引入一個或者多個硬模塊(hard block)單元,所述硬模塊單元包括至少一個拉低單元(tie0 cell)及與之相連的金屬線、至少一個拉高單元(tie1 cell)及與之相連的金屬線和至少一組缺省值修改單元,所述缺省值修改單元包括output H[n]、output L[n]、input I[n]和output O[n]四條線路,n為所在組的索引號,其中output H[n]線路與拉高單元(tie1 cell)的金屬線相連接,output L[n]線路與拉低單元(tie0 cell)的金屬線相連接,所述output O[n]線路為該硬模塊單元的輸出端口,連接到寄存器(register)的缺省值(default)端口或者模擬(analog)模塊的參數(shù)端口,與拉低單元(tie0 cell)相連的金屬線和與拉高單元(tie1 cell)相連的金屬線都位于集成電路的同一金屬層上,屬于同一個硬模塊單元的所有output H[n]、output L[n]、input I[n]和output O[n]線路位于集成電路的同一金屬層上;
2)在集成電路設計時,根據(jù)寄存器的缺省值或者模擬模塊的參數(shù)為高電平‘1’或者低電平‘0’的需要,分別將對應的input I[n]線路與output H[n]線路相連接,或者分別將對應的input I[n]線路與output L[n]線路相連接;
3)在進行工程修改(ECO)時,根據(jù)需要修改的缺省值或者模擬模塊的參數(shù)確定需要修改的output O[n],如果設計時為高電平‘1’,而工程修改(ECO)時需要修改為低電平‘0’,則將相對應的output H[n]線路與tie1 cell的金屬線斷開,并將相對應的input I[n]線路與tie0 cell的金屬線相連接;如果設計時為低電平‘0’,而工程修改(ECO)時需要修改為高電平‘1’,則將相對應的output L[n]線路與tie0 cell的金屬線斷開,并將相對應的input I[n]線路與tie1 cell的金屬線相連接;
4)根據(jù)步驟3)中修改的缺省值或者模擬模塊的參數(shù),對相應金屬層或者通孔層進行重新制版。
優(yōu)選的,所述缺省值單元的output H[n]、output L[n]、input I[n]和output O[n]線路所在的金屬層和與tie0 cell相連的金屬線、與tie1 cell相連的金屬線所在的金屬層相鄰。
優(yōu)選的,output H[n]線路通過通孔(VIA)與拉高單元(tie1 cell)的金屬線相連接,output L[n]線路通過通孔(VIA)與拉低單元(tie0 cell)的金屬線相連接。
優(yōu)選的,所述input I[n]線路和output O[n]線路在同一條線段上。
優(yōu)選的,所述output H[n]線路和output L[n]線路相互平行,input I[n]線路和output O[n]線路位于output H[n]線路和output L[n]線路之間,并且與output H[n]線路和output L[n]線路平行。
優(yōu)選的,所述硬模塊單元包括多組缺省值修改單元,每組缺省值修改單元之間等間距平行陣列分布在同一金屬層上。
優(yōu)選的,所述硬模塊單元的輸出位寬為4bit、8bit、16bit、32bit、64bit、128bit、256bit中的一種或者多種。
本發(fā)明提供的一種集成電路工程修改時減少改動層數(shù)的方法,與現(xiàn)有技術相比較,具有以下有益效果:
1、在集成電路設計時引入了硬模塊單元,通過硬模塊單元為寄存器提供缺省值或者為模擬模塊提供參數(shù),硬模塊單元的所有缺省值修改單元都位于同一金屬層上,與拉低單元(tie0 cell)相連的金屬線和與拉高單元(tie1 cell)相連的金屬線都位于集成電路的同一金屬層上,因此在ECO時,只需要修改較少金屬層或者通孔層即可實現(xiàn)對寄存器的缺省值或者模擬模塊參數(shù)的修改,可以大幅減少因重新制版所增加的費用,并且還能減少代工廠修改掩膜的時間,提高ECO的效率。
2、在硬模塊單元的優(yōu)選設計中,缺省值修改單元的output H[n]、output L[n]、input I[n]和output O[n]線路所在的金屬層和與tie0 cell相連的金屬線和與tie1 cell相連的金屬線所在的金屬層相鄰,并且output H[n]線路通過通孔(VIA)與拉高單元(tie1 cell)的金屬線相連接,output L[n]線路通過通孔(VIA)與拉低單元(tie0 cell)的金屬線相連接,因此在ECO修改缺省值或者模擬模塊的參數(shù)時,只需要對一個通孔層修改就可以實現(xiàn),大幅減少了重新制版的費用。
附圖說明
圖1示出了Metal only ECO前的邏輯電路圖。
圖2示出了Metal only ECO后的邏輯電路圖。
圖3示出了CMOS集成電路的版圖剖面示意圖。
圖4示出了tie0和tie1輸出net都在Metal3情況下的Metal only ECO的示意圖。
圖5示出了tie0輸出net在Metal2,tie1輸出net在Metal3情況下的Metal only ECO的示意圖。
圖6示出了硬模塊單元的示意圖。
圖7示出了利用硬模塊單元實現(xiàn)metal only ECO的示意圖。
具體實施方式
為進一步說明各實施例,本發(fā)明提供有附圖。這些附圖為本發(fā)明揭露內容的一部分,其主要用以說明實施例,并可配合說明書的相關描述來解釋實施例的運作原理。配合參考這些內容,本領域普通技術人員應能理解其他可能的實施方式以及本發(fā)明的優(yōu)點。圖中的組件并未按比例繪制,而類似的組件符號通常用來表示類似的組件。
現(xiàn)結合附圖和具體實施方式對本發(fā)明進一步說明。
當IC tape out后發(fā)現(xiàn)問題需要修改時,為了節(jié)約成本,通常只做metal only ECO,即不修改底層的standard cell,只改變metal連接關系,從而實現(xiàn)電路功能的改變。圖1和圖2示出是metal only ECO的一個例子。如圖1所示,D類型觸發(fā)器(DFF)的D 引腳(pin)接到一個數(shù)據(jù)選擇器(mux),該mux的選擇端由sync_rst_b信號決定。當sync_rst_b為‘0’時,mux接到一個tie1 cell,即該sync_rst_b會將DFF的缺省值(default值)設定為‘1’?,F(xiàn)在假設default值為‘1’有問題,需要將default值改為‘0’。圖2所示的是metal only ECO后的圖,將mux和tie1 cell斷開(即net1斷開),然后將mux和tie0 cell的輸出連接(即接上net2)。這樣只修改metal連接,就實現(xiàn)了電路功能的改變。圖1和圖2只是描述了邏輯上的修改方式。圖3示出的是CMOS集成電路的版圖剖面示意圖。在實際物理版圖中net1和net2有可能需要經過多層金屬層(metal),因此需要對多層的物理版圖進行重新制版。
圖4示出的是tie0和tie1輸出的net都在Metal3的情況,由于tie0和tie1的net在Metal3都能找到,且距離靠近,可以只要修改Metal3一層就可以完成metal only ECO。圖5示出的是tie0輸出的net在Metal2,tie1輸出的net在Metal3的情況,修改時需將Metal3和tie1斷開、增加VIA2、Metal2和tie0連接,總共需要修改三層??梢娦薷耐瑯拥倪壿嫞锢戆鎴D可能需要修改不同的metal層數(shù)。當工藝越來越先進,改版費用也越來越貴,修改metal層數(shù)越多,改版費用也越高。因此減少修改metal層數(shù)可以大幅降低ECO的成本。
圖6示出的是本發(fā)明提出的硬模塊(hard block)單元的示意圖。本發(fā)明提供了一種集成電路工程修改時減少改動層數(shù)的方法,具有以下步驟:
1)在集成電路設計中引入一個或者多個硬模塊(hard block)單元,所述硬模塊單元包括至少一個拉低單元(tie0 cell)及與之相連的金屬線、至少一個拉高單元(tie1 cell)及與之相連的金屬線和至少一組缺省值修改單元,所述缺省值修改單元包括output H[n]、output L[n]、input I[n]和output O[n]四條線路,n為所在組的索引號,其中output H[n]線路與拉高單元(tie1 cell)的金屬線相連接,output L[n]線路與拉低單元(tie0 cell)的金屬線相連接,所述output O[n]線路為該硬模塊單元的輸出端口,連接到寄存器(register)的缺省值(default)端口或者模擬(analog)模塊的參數(shù)端口,與拉低單元(tie0 cell)相連的金屬線和與拉高單元(tie1 cell)相連的金屬線都位于集成電路的同一金屬層上,屬于同一個硬模塊單元的所有output H[n]、output L[n]、input I[n]和output O[n]線路位于集成電路的同一金屬層上;圖6中將output H[n]簡寫為H[n]、output L[n]簡寫為 L[n]、input I[n]簡寫為I[n]、output O[n]簡寫為O[n];圖6中示出的硬模塊單元中的與tie0相連接的金屬線和與tie1相連接的金屬線位于金屬層2(metal 2),缺省值修改單元的output H[n]、output L[n]、input I[n]和output O[n]線路位于金屬層3(metal 3),但所在金屬層根據(jù)需求進行設置,并不限定于此;
2)在集成電路設計時,根據(jù)寄存器的缺省值或者模擬模塊的參數(shù)為高電平‘1’或者低電平‘0’的需要,分別將對應的input I[n]線路與output H[n]線路相連接,或者分別將對應的input I[n]線路與output L[n]線路相連接;優(yōu)選的,所述缺省值修改單元的output H[n]、output L[n]、input I[n]和output O[n]線路所在的金屬層和與tie0 cell相連的金屬線和與tie1 cell相連的金屬線所在的金屬層相鄰,output H[n]線路通過通孔(VIA)與拉高單元(tie1 cell)的金屬線相連接,output L[n]線路通過通孔(VIA)與拉低單元(tie0 cell)的金屬線相連接。
3)在進行工程修改(ECO)時,根據(jù)需要修改的缺省值或者模擬模塊的參數(shù)確定需要修改的output O[n],如果設計時為高電平‘1’,而工程修改(ECO)時需要修改為低電平‘0’,則將相對應的output H[n]線路與tie1 cell的金屬線斷開,并將相對應的input I[n]線路與tie0 cell的金屬線相連接;如果設計時為低電平‘0’,而工程修改(ECO)時需要修改為高電平‘1’,則將相對應的output L[n]線路與tie0 cell的金屬線斷開,并將相對應的input I[n]線路與tie1 cell的金屬線相連接;
4)根據(jù)步驟3)中修改的缺省值或者模擬模塊的參數(shù),對相應金屬層或者通孔層進行重新制版。
由于硬模塊單元的所有缺省值修改單元都位于同一金屬層上,與拉低單元(tie0 cell)相連的金屬線和與拉高單元(tie1 cell)相連的金屬線都位于同一金屬層上,因此在ECO時,只需要修改較少金屬層或者通孔層即可實現(xiàn)對寄存器的缺省值或者模擬模塊參數(shù)的修改,優(yōu)選的,當所述兩個金屬層相鄰時,只需要對一個通孔層修改就可以實現(xiàn)對寄存器的缺省值或者模擬模塊參數(shù)的修改,不需要對多個金屬層進行重新制版,可以大幅減少因重新制版所增加的費用,并且還能減少代工廠修改掩膜的時間,提高ECO的效率。
圖7示出的是采用本發(fā)明提供的方法在ECO時的示意圖,與tie0相連接的金屬線和與tie1相連接的金屬線位于金屬層2(metal 2),缺省值修改單元的output H[n]、output L[n]、input I[n]和output O[n]線路都位于金屬層3(metal 3)。圖7中將output H[n]簡寫為H[n]、output L[n]簡寫為 L[n]、input I[n]簡寫為I[n]、output O[n]簡寫為O[n]。O的任意位(bit)都可以獨立設定為低電平‘0’或高電平‘1’,所以對于任意寄存器的缺省值或者模擬模塊的參數(shù)都可以調用含有相應組數(shù)缺省值修改單元的硬模塊單元,或者調用缺省值修改單元組數(shù)大于所需位(bit)數(shù)的硬模塊單元,并使用其中的一部分缺省值修改單元。
本實施例示出了5組缺省值修改單元,假設設計時O[4:0]的輸出是5’b00111,現(xiàn)在需要ECO成5’b10101,因此需要對O[4]和O[1]進行修改,也就是需要將O[4]從低電平‘0’改成高電平‘1’,將O[1]從高電平‘1’改成低電平‘0’。對O[4]修改的具體方法為,在A1處將連接output L[4]和與tie0 cell相連接的金屬線的通孔(VIA)斷開,并在A2處增加一個通孔(VIA)將input I[4]和與tie1 cell相連接的金屬線相連接;對O[1]修改的具體方法為,在B2處將連接output H[1]和與tie1 cell相連接的金屬線的通孔(VIA)斷開,并在B1處增加一個通孔(VIA)將input I[1]和與tie0 cell相連接的金屬線相連接。所有修改的通孔(VIA)都在同一層。通過本實施例說明,在同一個硬模塊單元中,無論有多少組缺省值修改單元需要被修改,也無論是從高電平‘1’修改為低電平‘0’或者是從低電平‘0’修改為高電平‘1’,都只需修改同一通孔層上相對應的通孔就可以實現(xiàn),而不會涉及到多層金屬層,因此可以大幅減少因改版帶來的成本。
參考圖6和圖7,為了減少硬模塊單元布圖所占用的面積,優(yōu)選的將input I[n]和output O[n]布在同一條線段上,并且output H[n]和output L[n]相互平行,input I[n]和output O[n]位于output H[n]和output L[n]之間,并且與output H[n]和output L[n]平行。其中優(yōu)選的硬模塊單元的輸出位寬為4bit、8bit、16bit、32bit、64bit、128bit、256bit中的一種或者多種。硬模塊單元的輸出位寬根據(jù)需求進行選擇,可以選擇一個或者多個進行組合。
盡管結合優(yōu)選實施方案具體展示和介紹了本發(fā)明,但所屬領域的技術人員應該明白,在不脫離所附權利要求書所限定的本發(fā)明的精神和范圍內,在形式上和細節(jié)上可以對本發(fā)明做出各種變化,均為本發(fā)明的保護范圍。