TWI502385B - 修改積體電路佈局之方法 - Google Patents
修改積體電路佈局之方法 Download PDFInfo
- Publication number
- TWI502385B TWI502385B TW098131114A TW98131114A TWI502385B TW I502385 B TWI502385 B TW I502385B TW 098131114 A TW098131114 A TW 098131114A TW 98131114 A TW98131114 A TW 98131114A TW I502385 B TWI502385 B TW I502385B
- Authority
- TW
- Taiwan
- Prior art keywords
- programmable
- units
- unit
- locations
- programmed
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
本發明係有關於積體電路之領域。更具體而言,本發明係有關於在起初形成了積體電路佈局之後對其進行修改,舉例來說,上述修改可能是為了修正那些在最初形成了該佈局後才會浮現出來的錯誤(bug)或效能問題。
製造一積體電路的初期設置成本非常高昂。由於積體電路的複雜性與密度不斷提升,製造這些積體電路所需的遮罩與其他材料的成本也不斷增加。因此,對於已經製造完成的積體電路,假使在測試時發現其設計上的問題,例如錯誤、效能限制或功能性(functionality)上有缺失的片段,此時為了修正這些問題,若是要再重新製作用以製造積體電路所必須的所有的遮罩與材料,將會耗費極高的成本。
為了處理上述議題,一種已知的方法是在積體電路中提供稱為「備用閘」(spare gate)的設計,其係設置於整個積體電路中,且可透過一種適當的修改而將其連接至選路層,以便取代在其他位置上出現錯誤的功能性,或是提供必須的新功能性。此種方式的一種問題在於,此種備用閘通常不利地具有較大的尺寸,且其所在位置通常不會鄰近出現問題的積體電路部分。這使得必需要有訊號選路路徑,但其本身就會產生一種效能限制。更有甚者,隨著積體電路的複雜性不斷提升,要完成此種選路也變得越來越困難,這是因為積體電路必須穿透許多層。即使備用閘的尺寸已經很大了,某些時候其可能還是無法提供修正一問題所必須的功能性。
另一種現用的方法是基於當將形成一積體電路的標準單元擺置於適當位置(通常是利用自動化合成工具)時,在這些標準單元之間可能存有許多未使用區位(unused site)。這些未使用區位可能會被填入簡單的填充單元(如可以提供額外去耦合電容的單元)。另一種可能性是利用在一開始並未使用的可程式化單元來填充這些未使用區位,然而可藉由僅修改積體電路中相對較小的層,而得以使用這些未使用區位或使其與標準單元或積體電路的其他部分相連接。因此,要使用這些可程式化單元(即,將其變成已程式化單元)時,可使得必須改變的遮罩數目較少(相對於總遮罩數),且相對應地可以降低進行此一改變的成本。在一實施例中,可程式化單元可包含提供用以形成邏輯元件的電晶體所必須的擴散層與閘層,但可能不包括任何用於向上連接且使得這些閘層可運作或使其經設置可提供特定邏輯功能所用的金屬層。要進行此種可程式化單元的程式化,可以在下方擴散層與閘層上提供一適當的金屬層,以便利用一種理想的方式將閘向上連接。此種可程式化單元的程式化會產生已程式化單元,且可能牽涉到了僅修改組成積體電路之複數層中的一個金屬層(和/或接觸層),上述多層中各別具有相關聯的遮罩。在實作中,亦可能需要在其他層中增加選路連接,以便將已程式化單元向上連接至積體電路中的其他點。即使是這樣,仍可減少必須進行修改的遮罩數目(相較於產生一個全新的設計來解決一問題)。
為了要使得此種技術達到良好的效果,很重要的一點是在發生錯誤的局部區域或需要額外功能性的局部區域中,必須有足夠的可程式化單元。若沒有足夠的可程式化單元,則可能無法修正錯誤或修正可能沒有效率,因為存在過多的選路延遲。因此,在有利的情形中可在標準單元沒有使用的空間中提供大量的可程式化單元。
在設計中提供可程式化單元的一種方法為利用常規的合成、擺置與選路工具來根據需求擺置標準單元,且之後對整個佈局進行搜索以識別大小足以容納一可程式化單元的任何擺置區位,並將可程式化單元擺置於這些區位中的每一區位。可利用標準填充單元來填充剩餘的空的區位。在使用中,當想要將積體電路中目前由一可程式化單元佔據的位置轉換成一已程式化單元以修正問題時,設計者必須人工地識別處於鄰近欲解決問題之區域的適當可程式化單元,手動地由佈局中移除該可程式化單元,利用經過適當選擇之已程式化單元來填充目前空的空間(如選自由具有適當金屬層之已程式化單元的資料庫,以達成所需的功能性),且之後能自動產生選路以將已程式化單元連接至積體電路之其他部分中的所需的一或多點。此種方法的問題之一在於,設計者想要修正既有問題而進行擺置選擇時,可能必須引入大量的進一步錯誤。
另一種技術是在標準單元擺置區位陣列上方預先定義一可程式化填充區位陣列。在形成佈局時,將標準單元擺置於適當的標準單元區位。之後可進行一搜索以尋找完全未被任何標準單元或標準單元之部分所佔據的可程式化填充區位。之後,將可程式化單元擺置於經識別的空的可程式化填充區位。這些可程式化單元具有和預先定義的可程式化填充區位格柵相關聯的已知位置。之後,以填充單元來填充未被標準單元或可程式化單元佔據之剩餘的未使用標準單元區位。
當想要利用這些可程式化單元中的一部份來處理一問題時,可使用自動化機制,在一開始可由佈局中刪除所有可程式化單元。這些經刪除的可程式化單元具有和可程式化填充區位格柵相關聯的已知位置。之後可以識別處理該錯誤所需的已程式化單元。由於可由可程式化填充區位格柵得知可供擺置這些程式單元的空的區位,可利用標準擺置演算法(或略經修改的形式)以自動化地將已程式化單元擺置於適合進行連接的位置,在該位置上,上述已程式化單元可和想要進行互動之積體電路的其他部分一起作用。之後,可利用自動化的選路機制來提供至該些程式單元的訊號選路。使用此種機制能夠利用與先前經擺置之可程式化單元相對應的空的區位來進行自動化擺置與與選路,因而能夠降低在使用已程式化單元來修正經識別之問題時發生錯誤的可能性。
上述第二種方式的缺點是由於可程式化填充區位格柵是預先界定的,且除非一可程式化單元區位是完全空的否則不會擺置一可程式化填充,因而其在初始佈局中可提供的可程式化單元較少。因此,可用以修正所識別之問題的可程式化單元較少。更有甚者,可程式化單元區塊的最大尺寸可能較小,因而限制了在一個位置能提供的功能性。這降低了這些機制解決所識別之問題的能力。
由一面向觀之,本發明提出了一種產生積體電路佈局的方法,上述方法至少包含以下步驟:提供一標準單元區位陣列,其可供擺置可用以形成積體電路之多個標準單元;擺置標準單元於陣列中之所選標準單元區位;在陣列中搜索並未被一標準單元佔據且具有足以持有一可程式化單元之大小的相鄰標準單元區位之多個叢集,該些叢集具有多個邊界,該些邊界經允許可位於陣列中的任何位置,且其大小對應至多個標準單元區位;將該些叢集識別為可供用以形成積體電路之多個可程式化單元所用的多個可程式化區位,並擺置多個可程式化單元於該些可程式化區位;以及產生徵顯該佈局之佈局資料,佈局資料包含可識別可程式化區位之區位資料。
此處提出的技術係基於在完成了標準單元擺置之後,可能會進行一搜索以識別空的區位,空的區位具有足夠大小可容納一可程式化單元,且不會限制應如何設置可程式化單元的邊界(除了應與標準單元的標準填充位置陣列對齊之外)。這提供了大量的可能性,可供設置可程式化單元之位置,且相對應地可達成一種較高的可程式化單元密度。此技術進一步尋求達成更自動化的可程式化單元運用,其產生並保留了識別上述經使用的可程式化單元區位的資料,即便並未將其設置於一正規格柵上。即便並未利用正規格柵形式來設置可程式化單元,藉由保留此一可程式化區位資訊,因而能夠在有需要時利用自動化擺置與自動化選路機制來修改佈局。
當可想見,識別可程式化填充區位與擺置可程式化單元的第一步可以是識別出可程式化填充區位,並可將其進行如是的標示,且接著可利用可程式化單元來進行填充。一種替代方案是可識別具有適當大小的區位,並以可程式化單元填充之,且之後可利用一後續步驟對佈局進行後處理,以識別並紀錄已經放置了可程式化單元之區位,並將其標示為可程式化填充區位。上述這兩種可能性以及其他類似的可能性,都為此處所提出的技術所涵蓋。
可利用填充單元來填充並未以標準單元或可程式化單元來填充的標準單元區位。
上述可程式化單元在積體電路的作業期間通常不會被使用,但會被修改而形成已程式化單元,當有需要時,可在作業期間使用此種已程式化單元以作為修正問題或提供額外功能性的一部份。
可由多個電路佈局圖樣來形成可程式化單元,且一已程式化單元可和上述可程式化單元共用這些電路層圖樣中的多個圖樣。已程式化單元重新使用可程式化單元中的多種電路層圖樣,如此一來,能夠降低形成已程式化單元的成本,這是因為可以減少需要修改的遮罩數目且可減少在製程中需要進行的其他改變。
在某些具體實施例中,經常可以見到已程式化單元所具有的一或多金屬電路層和/或一種接觸層與可程式化單元不同,而可程式化單元與已程式化單元可具有共用的電路層例如擴散層與閘層。
由另一面向觀之,本發明提供了一種產生經修改之積體電路佈局的方法,該積體電路佈局具有和標準單元區位陣列對齊的標準單元以及可程式化單元,該方法至少包含以下步驟:讀取定義上述積體電路之初始佈局的資料,該資料包含區位資料可識別可程式化單元所處的區位,上述可程式化單元的大小與多個標準單元區位相對應且其邊界可位於陣列中的任何位置;自動地擺置一或多已程式化單元於個別區位,該些區位經識別為目前含有可程式化單元的區位資料;以及自動地加入選路連接,以耦接上述一或多個已程式化單元至積體電路內的一或多個標準單元。
在本發明此一面向中,所形成的積體電路佈局包含可程式化單元以及可識別可程式化填充區位的資料,其可藉由讀取識別可程式化單元之位置的區位資料,且之後可自動地擺置一或多已程式化單元於經識別的位置,以利用此一積體電路佈局來形成經修改之佈局。由於區位資料可識別可供使用的擺置位置(即由可程式化單元填充的擺置位置),且相對應地具有必要的下方架構能夠藉由選擇適當的金屬層或其他層來形成已程式化單元,因而能夠完成自動擺置。之後,上述經自動地擺置的已程式化單元可能會進行自動選路,以提供選路連接。如此一來,可以避免容易發生錯誤的人工擺置,因為所提供的區位資料可以識別可程式化填充單元所處的位置;且擺置可程式化填充區位的位置的彈性使得可程式化單元的密度較高(相較於既有限制下,僅能將可程式化單元擺置於一預先定義的可程式化單元格柵上),這是較為有利的。
修改佈局的技術可包含以下步驟。在自動擺置步驟之前,可進行刪除步驟以由佈局中刪除可程式化單元。此一步驟係利用區位資料來識別這些可程式化單元,藉以提供空的區位,可利用傳統或略經修改的擺置演算法將已程式化單元擺置於上述空的區位中。
在自動地擺置已程式化單元的步驟之後,可提供進一步的步驟,以利用可程式化單元來填充區位資料所識別且不含有已程式化單元的空的區位。這可將佈局回復到一種經填充的狀態,且可確保該些遮罩保持不變,因為若不將可程式化單元擺置回這些區位,會使得這些層改變。
本發明的其他面向提供了一電腦可讀取媒體,其可儲存一電腦程式以用於控制電腦來執行根據上述技術的方法。
可藉由閱讀下文所提供的例示性具體實施例的實施方式連同附隨圖式,更清楚地瞭解本發明的上述與其他目的、特徵與優點。
第1圖概要地闡明了在形成積體電路佈局2的過程中最初的狀態。將積體電路的面積分隔為標準單元區位陣列4,可由來自單元元件庫的標準單元來填充這些區位陣列。本發明所屬技術領域中具有通常知識者當可理解,標準單元可佔據多個標準單元區位。在選擇標準單元的擺置時,會使其佔據一或多相鄰空的標準單元區位4。標準單元區位4代表一種可供執行的的擺置中的位置量化。
第2圖闡明了將標準單元6擺置於標準單元區位4後的積體電路佈局2。擺置標準單元6時,使該標準單元6鄰近必須與之進行通訊的其他標準單元6。這有助於降低選路的間接成本。執行此種標準單元擺置的機制與演算法為所屬技術領域中具有通常知識者所熟知。可利用由Cadence Design Systems,Inc與Synopsis Inc等公司提供的電子設計自動(electronic design automatic,EDA)軟體工具來執行此種標準單元擺置以及後續的選路作業。
第2圖中利用可程式化填充區位8闡明了根據本技術對這些標準擺置與選路演算法所進行的修改。在完成了標準單元6的擺置之後,識別這些可程式化填充區位8。可在佈局2中進行搜索,以便識別相鄰的空標準單元區位4的叢集(區塊),這些相鄰的空標準單元區位4的叢集聯合起來的大小足以容納一可程式化單元。在所示的實施例中,可程式化填充單元的大小為四個標準單元區位,且相對應地必須有最少為四個的相鄰標準單元區位,方能提供一可程式化填充區位所需的空間。這些可程式化填充區位的邊界可放置於該陣列中的任何位置,只要它們與標準單元區位邊界對齊。因此,每當識別出的空的標準單元區位4之區塊的大小為四個(或更多)填充區位時,可將其指定為可程式化填充區位。每當出現適當的空的空間時,即可用以擺置這些可程式化填充區位8,此種彈性使得可以達成一種有利的高密度可程式化單元。
在所示的實施例中,可以看到已經識別出了五個可程式化填充區位8。空的標準區位的區塊可含有一或多個可程式化填充區位8,且可能還有一些殘餘的空的空間,可利用標準填充單元(而非可程式化單元)來填充這些殘餘的空間。
當識別出一可程式化填充區位8時,可產生資料,上述資料可識別該可程式化填充區位的位置。在後續的過程中,當要利用這些可程式化單元以將其轉變為已程式化單元時,上述區位資料非常有用。
在上述情形中,一旦已經識別了可程式化填充區位8之後,可將可程式化單元擺置於其中,並以標準填充單元來填充該空的標準單元區位的其他部分。
在其他具體實施例中,每當存在的空的標準單元區位的區塊具有足夠的大小時,亦可以利用標準擺置演算法來擺置可程式化單元,且之後接著後擺置分析該佈局,從而識別已經放置了可程式化單元的位置,並在區位資料中將這些位置標注為可程式化單元區位,以供後續使用。
第3圖概要地闡明了在放置了標準單元6之後,可識別可程式化填充區位並將可程式化單元10擺置於這些可程式化填充區位後的佈局2。最後,接著將標準填充單元12(例如電容解耦填充單元)擺置於剩餘的空的標準單元區位中,而使得標準單元區位陣列完全被佔據。
第3圖所示的佈局具有經擺置的標準單元6、可程式化單元10與填充單元12,以及可識別可程式化單元10之位置的資料。在實作中,可紀錄與佈局2有關的多種其他資料形式。之後可利用佈局2來產生遮罩與其他資訊以及所需的元件,以便根據佈局2來製造積體電路。
第4圖為流程圖,其概要闡明了可用以擺置可程式化單元的方法。在步驟14,識別標準單元區位陣列的形式。在步驟16,接著利用常規擺置演算法將標準單元擺置於陣列中。在步驟18,進行搜索以尋找大小足以容納一可程式化單元的相鄰空的區位之叢集(區塊),並在該位置產生一可程式化填充區位。在經識別的位置產生一可程式化填充區位會在區位資料中紀錄可程式化填充區位在陣列中的位置。可將此一區位資料與佈局一起保持,且當程式單元要取代可程式化單元時可利用此一區位資料。
在步驟20,將可程式化單元擺置於步驟18所識別的所有可程式化填充區位中。之後,以標準填充單元來填充剩餘的空的標準單元區位。在步驟22,形成佈局資料(代表第3圖之佈局的資料),且其包含上述可識別可程式化填充區位的區位資料。
根據第3圖之佈局製造的積體電路,在製造過程中可能會發現一些問題,或者是可能會需要額外的功能性。在這些情形中,可利用適當的所選已程式化單元部分來取代可程式化單元10。這些已程式化單元的結構大部分與可程式化單元相同,但通常具有一或多金屬層和/或一接觸層所選,這些層經選擇以使得可程式化單元的下方基本配置能夠與上層連接,以使其能夠執行所想的邏輯功能。這些已程式化單元可能不像一種特定用途標準單元(們)一般小巧,但透過它們,可以修改相對較少的電路層(如僅修改金屬遮罩層)同時構成可程式化單元的許多其他層可保持不變且可重新使用,而使得電路元件具有所想的功能。
第5圖繪示製造經修改積體電路佈局的方法。在步驟24,產生一經修改的閘級網路連線表,藉以修正任何經識別的錯誤,以及提供任何所需的額外功能性。上述對錯誤進行的修正亦包括隔離任何不再使用的標準單元(如具有錯誤形式者)。此種隔離可包含阻斷其輸入與輸出,其係藉由修改此標準單元的金屬層,而使得它們不再是浮接的而不會造成進一步的問題。產生上述經修改的閘級網路連線表,以便納入取代的已程式化單元,上述取代的已程式化單元係對應於已經移除的任何標準單元(當許可時)以及對應於已加入的任何新功能性。
在步驟26,由已程式化單元的元件庫中,選擇與在步驟24產生之閘級網路連線表的新的部分新對應的已程式化單元。這些已程式化單元係以可程式化單元8為基礎,但通常包含了特定的金屬層連接,以便達成其所需的功能性。
在步驟28,將第3圖之佈局2中的既有可程式化單元由該佈局中刪除。能夠進行此種刪除是因為已經紀錄了識別可程式化填充區位的區位資料,且即便可程式化填充區位並非位於一通常的可程式化填充區位格柵中,仍可正確地識別可程式化單元的位置,且可將其自佈局中移除。這會在佈局2中留下空的空間,其大小與一已程式化單元相應,且之後可能可以將已程式化單元擺置於空的區位。根據先前的遮罩而製造出來的先前積體電路會具有許多已經形成的已程式化單元所必須的基層結構,即便在積體電路的操作過程中不會使用到可程式化單元中的這些部分。當將已程式化單元擺置於此一區位時,之後通常可在該區位提供一或多經修改的金屬層,以及那些需要修改的金屬層所需的遮罩,而剩餘的遮罩(例如用以產生擴散區域、閘極等的遮罩)會保持不變,因為在該些區位的可程式化單元中仍會出現相同的結構。
在步驟30,利用區位資料來識別空的區位並根據自動化擺置演算法,以將經選擇欲使用的已程式化單元擺置於空的區位。此種自動化擺置演算法可類似通常用以擺置標準單元的演算法。如此一來,可以藉由避免人工擺置已程式化單元,藉以提升可靠性。更有甚者,在選擇用於所有已程式化單元之可程式化填充區位時,擺置演算法可以做出較佳的選擇,以產生整體較短的選路,因而可導致較有效率的作業。在步驟32,針對並未以程式單元填充的空的區位,利用區位資料來識別該些空的區位,並以可程式化單元重新填充之。在步驟34,利用標準或經修改的選路演算法,在已程式化單元和標準單元與積體電路中的其他部分之間建立選路連接。同樣地,使用自動化選路演算法可以降低此一過程中的錯誤,且可能得以達成更有效率的選路。
回到第3圖,當已經製造了一積體電路時,可能發現標準單元36含有錯誤。因此,可識別兩個鄰近的可程式化單元38,且利用兩個已程式化單元38’來取代位於該些區位的可程式化單元,藉以取代標準單元36原本提供的功能性。可視需求向/由已程式化單元38’建立選路,以便連接至先前選路至/來自標準單元36的訊號中。通常會阻斷標準單元36的輸入而非使其浮接。由本實施例可以理解,可有利地在佈局2中達成一種高密度的可程式化單元10,以便增加當需要取代標準單元6或必須增加其功能性時,可用的鄰近可程式化單元10的機率。
在根據第3圖之佈局所製造的積體電路的正常運作中,會運用標準單元6。在此種正常運作中,通常不會使用可程式化單元10。由於已程式化單元38’取代或增添了積體電路之部分36的功能性,因此在上述運作中會使用此已程式化單元38’。可程式化單元通常係由多個電路層圖樣所形成,且已程式化單元可共用電路層圖樣中的多種圖樣。這有助於減少當欲提供已程式化單元時,所需的遮罩數目。
第6圖概要地繪示了一般用途電腦200其可用以實作上述技術。一般用途電腦200包含中央處理單元(central processing unit,CPU)202、隨機存取記憶體(random access memory,RAM)204、唯讀記憶體(read only memory,ROM)206、網路介面卡(network interface card,NIC)208、硬碟機(hard disk drive,HDD)210、顯示驅動器212與螢幕214以及具有鍵盤218與滑鼠220的使用者輸入/輸出電路(user input/output circuit,User I/O)216,以上元件皆透過公用匯流排222來連接。在作業時,中央處理單元202會執行電腦程式指令,上述指令可儲存於隨機存取記憶體204、唯讀記憶體206與硬碟機210其中一或多種元件,或可透過網路介面卡208而動態地下載。可透過顯示驅動器212與螢幕214,向使用者顯示所執行的處理的結果。可經由使用者輸入輸出電路216接收來自鍵盤218或滑鼠220的使用者輸入,上述使用者輸入可控制一般用途電腦220的作業。當可想見,可利用多種不同的電腦語言來撰寫上述電腦程式。可將電腦程式儲存並分散於紀錄媒體上或動態地下載至一般用途電腦200。當在適當的電腦程式的控制下進行作業時,一般用途電腦200可執行上述技術,且可將其視為用以執行上述技術的裝置。一般用途電腦220的架構可能有很大的差異,且第6圖僅為其中一例而已。
雖然在本揭示內容中參照了附隨圖式詳細地描述了本發明的例示性具體實施例,當可理解本發明不限於那些精確的具體實施例,且本發明所屬技術領域具有通常知識者可在不悖離附隨申請專利範圍中所界定的範圍與精神的情形下,對其進行各種修改與修飾。
2...積體電路
4‧‧‧標準單元區位
6‧‧‧標準單元
8‧‧‧可程式化填充區位
10‧‧‧可程式化單元
12‧‧‧標準填充單元
14-34‧‧‧步驟流程
36‧‧‧標準單元
38‧‧‧可程式化單元
38’‧‧‧已程式化單元
200‧‧‧電腦
202‧‧‧中央處理單元
204‧‧‧隨機存取記憶體
206‧‧‧唯讀記憶體
208‧‧‧網路介面卡
210‧‧‧硬碟機
212‧‧‧顯示驅動器
214‧‧‧螢幕
216‧‧‧使用者輸入/輸出電路
218‧‧‧鍵盤
220‧‧‧滑鼠
222‧‧‧公用匯流排
第1圖概要地繪示了一積體電路佈局,其呈現了可供擺置標準單元於其中的一空的標準單元區位陣列;
第2圖繪示了第1圖的陣列,其中已經擺置了標準單元,且進行了一部份陣列的搜索,以識別其中可供擺置可程式化單元的區位叢集以及被紀錄為可程式化填充區位的區位;
第3圖繪示了第1圖的陣列,其中已經加入了所有標準單元、可程式化單元與填充單元,以便完全填充陣列;
第4圖為流程圖,其概要地闡明了第2圖所示的處理,該處理利用標準單元與可程式化單元來填充標準單元區位陣列;
第5圖為流程圖,其概要地闡明了利用可程式化單元來處理積體電路中的問題或在其中提供新的功能性,其係利用區位資料來識別程式單元可處的位置以代替既有可程式化單元;以及
第6圖概要地闡明了一種一般用途電腦,其可用以實作上述技術。
14-22...步驟流程
Claims (17)
- 一種產生一積體電路之一佈局的方法,該方法包含以下步驟:提供一標準單元區位陣列,該標準單元區位陣列可供擺置可用以形成該積體電路之多個標準單元;擺置標準單元於該陣列中之所選標準單元區位;在該陣列中搜索並未被一標準單元佔據且具有足以容納一可程式化單元之大小的相鄰標準單元區位之多個叢集,該些叢集具有多個邊界,可允許該些邊界位於該陣列中的任何位置,且該些叢集之大小對應至多個標準單元區位;將該些叢集識別為可供用以形成該積體電路之多個可程式化單元所用的多個可程式化區位,並擺置多個可程式化單元於該些可程式化區位;以及產生代表該佈局之佈局資料,該佈局資料包含可識別該些可程式化區位之區位資料,該等步驟是在一電腦上實施。
- 如申請專利範圍第1項所述的方法,更包含下列步驟:將多個填充單元擺置於未被一標準單元或一可程式化單元佔據的多個標準單元區位。
- 如申請專利範圍第1項所述的方法,其中該些可程式化單元並未用於該積體電路之作業中,且該些可程式化單元可經修改以形成可用於該積體電路之作業中的已程式化單元。
- 如申請專利範圍第3項所述的方法,其中該些可程式化單元各者係由多個電路層圖樣所形成,且該些已程式化單元與該些可程式化單元共用該多個電路層圖樣。
- 如申請專利範圍第4項所述的方法,其中該些已程式化單元各者具有一或多個金屬電路層,在該些可程式化單元之形成中不會使用到該一或多個金屬電路層。
- 如申請專利範圍第4項所述的方法,其中該些已程式化單元各者具有一接觸層,在該些可程式化單元之形成中不會使用到該接觸層。
- 一種產生一積體電路之一經修改佈局的方法,該積體電路具有與一標準單元區位陣列對齊的多個標準單元與多個可程式化單元,該方法包含以下步驟:讀取定義該積體電路之一初始佈局的資料,該資料包含區位資料,該區位資料可用以識別多個可程式化單 元所處的多個可程式化區位,該些可程式化單元之一大小係對應至多個標準單元區位,且該些可程式化單元之多個邊界經允許可位於該陣列中之任何位置;自動擺置一或多個已程式化單元於個別區位中,該些個別區位係由該區位資料識別為目前含有一可程式化單元者;以及自動增加選路連接以耦接該一或多個已程式化單元至該積體電路中之一或多個標準單元,該等步驟是在一電腦上實施。
- 如申請專利範圍第7項所述的方法,其中該一或多個已程式化單元僅可擺置於由該區位資料識別為目前含有一可程式化單元的多個區位。
- 如申請專利範圍第7項所述的方法,其中在該自動擺置的步驟之前,從由該區位資料識別的該些可程式化區位中刪除該些可程式化單元,以提供可供擺置已程式化單元於其中的多個空的區位。
- 如申請專利範圍第9項所述的方法,其中在該自動擺置的步驟之後,將由該區位資料識別的多個空的區位重新填充一可程式化單元,且該空的區位不含有一已程式化 單元。
- 如申請專利範圍第7項所述的方法,其中該經修改佈局具有多個填充單元位於未被一標準單元、一可程式化單元或一已程式化單元佔據的多個標準單元區位。
- 如申請專利範圍第7項所述的方法,其中該些可程式化單元並未用於該積體電路之作業中,且該些可程式化單元可經修改以形成可用於該積體電路之作業中的該一或多個已程式化單元。
- 如申請專利範圍第12項所述的方法,其中該些可程式化單元各者係由多個電路層圖樣所形成,且該些已程式化單元與該些可程式化單元共用該多個電路層圖樣。
- 如申請專利範圍第13項所述的方法,其中該些已程式化單元各者具有一或多個金屬電路層,在該些可程式化單元之形成中不會使用到該一或多個金屬電路層。
- 如申請專利範圍第13項所述的方法,其中該些已程式化單元各者具有一接觸層,在該些可程式化單元之形成中不會使用到該接觸層。
- 一種電腦可讀取媒體,其儲存了一電腦程式可用以控制一電腦以執行如申請專利範圍第1項所述的方法。
- 一種電腦可讀取媒體,其儲存了一電腦程式可用以控制一電腦以執行如申請專利範圍第7項所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/289,159 US8051400B2 (en) | 2008-10-21 | 2008-10-21 | Modifying integrated circuit layout |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201017458A TW201017458A (en) | 2010-05-01 |
TWI502385B true TWI502385B (zh) | 2015-10-01 |
Family
ID=42109624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098131114A TWI502385B (zh) | 2008-10-21 | 2009-09-15 | 修改積體電路佈局之方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8051400B2 (zh) |
TW (1) | TWI502385B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2996248B1 (en) * | 2007-12-29 | 2021-03-24 | France Brevets | Flexible layout for integrated mask-programmable logic devices and manufacturing process thereof |
US8276105B2 (en) * | 2009-09-18 | 2012-09-25 | International Business Machines Corporation | Automatic positioning of gate array circuits in an integrated circuit design |
US8762917B2 (en) | 2012-01-13 | 2014-06-24 | AWR Corporation | Automatically modifying a circuit layout to perform electromagnetic simulation |
US8813020B2 (en) | 2012-01-13 | 2014-08-19 | AWR Corporation | Automatically modifying a circuit layout to perform electromagnetic simulation |
US9009646B1 (en) | 2012-07-17 | 2015-04-14 | Cypress Semiconductor Corporation | Finding I/O placement with a router |
US20140167815A1 (en) * | 2012-12-18 | 2014-06-19 | Broadcom Corporation | Area reconfigurable cells of a standard cell library |
US9152754B2 (en) * | 2013-05-07 | 2015-10-06 | Synopsys, Inc. | Sub-module physical refinement flow |
US10318685B2 (en) * | 2014-09-19 | 2019-06-11 | Synopsys, Inc. | Management of placement constraint regions in an electronic design automation (EDA) system |
US10114918B2 (en) | 2016-01-27 | 2018-10-30 | Arm Limited | Physical placement control for an integrated circuit based on state bounds file |
US10372861B2 (en) | 2016-11-28 | 2019-08-06 | Ncku Research And Development Foundation | Method of macro placement and a non-transitory computer readable medium thereof |
US10331838B2 (en) * | 2016-12-12 | 2019-06-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | Semiconductor device with fill cells |
TWI612435B (zh) * | 2016-12-20 | 2018-01-21 | 財團法人成大研究發展基金會 | 巨集電路的擺置方法及其非暫態電腦可讀取媒體 |
US10452804B2 (en) * | 2017-03-02 | 2019-10-22 | Arm Limited | Technique for distributing routing into superfluous metal section of an integrated circuit |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5225991A (en) * | 1991-04-11 | 1993-07-06 | International Business Machines Corporation | Optimized automated macro embedding for standard cell blocks |
US5416720A (en) * | 1988-04-21 | 1995-05-16 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for optimizing block shape in hierarchical IC design |
US5623420A (en) * | 1994-11-16 | 1997-04-22 | Sun Microsystems, Inc. | Method and apparatus to distribute spare cells within a standard cell region of an integrated circuit |
TW367590B (en) * | 1996-12-27 | 1999-08-21 | Toshiba Corp | Integrated circuit of standard cells |
CN1881223A (zh) * | 2005-04-06 | 2006-12-20 | Lsi罗吉克公司 | 具有可重定位处理器硬核的集成电路 |
TW200729009A (en) * | 2006-01-17 | 2007-08-01 | Taiwan Semiconductor Mfg Co Ltd | A semiconductor device structure and methods of manufacturing the same |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625568A (en) * | 1993-12-22 | 1997-04-29 | Vlsi Technology, Inc. | Method and apparatus for compacting integrated circuits with standard cell architectures |
US5671397A (en) * | 1993-12-27 | 1997-09-23 | At&T Global Information Solutions Company | Sea-of-cells array of transistors |
US5856927A (en) * | 1995-05-01 | 1999-01-05 | Vlsi Technology, Inc. | Method for automatically routing circuits of very large scale integration (VLSI) |
US5838583A (en) * | 1996-04-12 | 1998-11-17 | Cadence Design Systems, Inc. | Optimized placement and routing of datapaths |
US6031981A (en) * | 1996-12-19 | 2000-02-29 | Cirrus Logic, Inc. | Reconfigurable gate array cells for automatic engineering change order |
JP3420694B2 (ja) * | 1996-12-27 | 2003-06-30 | 株式会社東芝 | スタンダードセル方式の集積回路 |
US6536028B1 (en) * | 2000-03-14 | 2003-03-18 | Ammocore Technologies, Inc. | Standard block architecture for integrated circuit design |
US6567967B2 (en) * | 2000-09-06 | 2003-05-20 | Monterey Design Systems, Inc. | Method for designing large standard-cell base integrated circuits |
US6814296B2 (en) * | 2001-05-01 | 2004-11-09 | Lattice Semiconductor Corp. | Integrated circuit and associated design method with antenna error control using spare gates |
US7343570B2 (en) * | 2005-11-02 | 2008-03-11 | International Business Machines Corporation | Methods, systems, and media to improve manufacturability of semiconductor devices |
-
2008
- 2008-10-21 US US12/289,159 patent/US8051400B2/en active Active
-
2009
- 2009-09-15 TW TW098131114A patent/TWI502385B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416720A (en) * | 1988-04-21 | 1995-05-16 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for optimizing block shape in hierarchical IC design |
US5225991A (en) * | 1991-04-11 | 1993-07-06 | International Business Machines Corporation | Optimized automated macro embedding for standard cell blocks |
US5623420A (en) * | 1994-11-16 | 1997-04-22 | Sun Microsystems, Inc. | Method and apparatus to distribute spare cells within a standard cell region of an integrated circuit |
TW367590B (en) * | 1996-12-27 | 1999-08-21 | Toshiba Corp | Integrated circuit of standard cells |
CN1881223A (zh) * | 2005-04-06 | 2006-12-20 | Lsi罗吉克公司 | 具有可重定位处理器硬核的集成电路 |
TW200729009A (en) * | 2006-01-17 | 2007-08-01 | Taiwan Semiconductor Mfg Co Ltd | A semiconductor device structure and methods of manufacturing the same |
Also Published As
Publication number | Publication date |
---|---|
TW201017458A (en) | 2010-05-01 |
US8051400B2 (en) | 2011-11-01 |
US20100100861A1 (en) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI502385B (zh) | 修改積體電路佈局之方法 | |
US10796053B2 (en) | Computer implemented system and method for generating a layout of a cell defining a circuit component | |
US11288432B2 (en) | Computer implemented system and method for generating a layout of a cell defining a circuit component | |
TWI575393B (zh) | 產生包含標準元件及至少一個記憶體實體兩者的積體電路之佈局的方法 | |
TWI625639B (zh) | 用於產生積體電路佈局的電腦實施方法、電腦、電腦可讀取儲存媒體以及藉由該方法所製造的積體電路 | |
US7406620B2 (en) | System and method for compiling a memory assembly with redundancy implementation | |
US8984465B1 (en) | Methods, systems, and articles of manufacture for automatically assigning track patterns to regions for physical implementation of an electronic design | |
US11392741B2 (en) | Computer implemented system and method for generating a layout of a cell defining a circuit component | |
US7831944B2 (en) | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method | |
KR100939786B1 (ko) | 제조능력을 위한 디자인 | |
US7904863B2 (en) | Circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method | |
EP2541773A1 (en) | Reconfigurable logic block | |
US20130002287A1 (en) | Apparatus for improving reliability of electronic circuitry and associated methods | |
CN114781301A (zh) | 模拟集成电路布局的产生系统与方法 | |
TWI803481B (zh) | 產生積體電路的電路模塊的佈局的方法,及其電腦程式產品、非暫時性儲存媒體,及積體電路 | |
KR102611888B1 (ko) | 스위칭 액티비티에 기초한 반도체 장치의 배치 방법 및 이에 의해 제조된 반도체 장치 | |
US7380231B2 (en) | Wire spreading through geotopological layout | |
JP6282285B2 (ja) | ネットリストアブストラクション | |
JP4805779B2 (ja) | 集積回路設計方法、集積回路設計装置及び集積回路設計プログラム | |
US5740071A (en) | Method and apparatus for selective shape adjustment of hierarchical designs | |
JP2009134439A (ja) | ソフトマクロを用いたレイアウト設計方法、ソフトマクロのデータ構造及びソフトマクロライブラリの作成方法 | |
JP7059157B2 (ja) | レイアウト設計装置及びレイアウト設計用プログラム | |
JPWO2006025412A1 (ja) | 論理検証方法、論理モジュールデータ、デバイスデータおよび論理検証装置 | |
US8255844B2 (en) | Coordinated-design supporting apparatus, coordinated-design supporting method, computer product, printed-circuit-board manufacturing method, circuit-design supporting apparatus, circuit-design supporting method, computer product, and printed-circuit-board manufacturing method | |
JP4668974B2 (ja) | 半導体装置の設計方法、半導体装置設計システム及びコンピュータプログラム |