減小集成電路的版圖面積的方法
【技術領域】
[0001]本發明涉及半導體技術領域,尤其涉及一種減小IC(Integrated Circuit,集成電路)的版圖面積(layout area)的方法,例如涉及一種通過優化通道布線(channelrouting)和重塑劃分區(partit1n re-shaping)來減小IC的版圖面積的方法。
【背景技術】
[0002]近年來,IC(例如 LSI (Larger scale integrated circuit,大規模集成電路))的發展過程中通常利用CAD (Computer Assisted Design,計算機輔助設計)。根據這種基于CAD的發展過程,使用所謂的HDL(Hardware Descript1n Language,硬件描述語言)來定義抽象電路數據,該抽象電路數據對應開發的IC功能,并且該定義的電路用于形成安裝于芯片上的具體電路結構。
[0003]在制造(或實現)IC芯片之前,首要考慮IC芯片的布圖規劃(floor plane)和版圖面積,以便于確定每片IC芯片的裸芯片尺寸(die size) ο 一般而言,裸芯片尺寸將影響IC芯片的制造成本。因此,希望優化IC芯片的布圖規劃,以減小IC芯片的版圖面積。
【發明內容】
[0004]有鑒于此,本發明實施例提供了一種減小集成電路的版圖面積的方法。
[0005]本發明提供了一種減小集成電路的版圖面積的方法,包括:
[0006]得到并顯示所述集成電路的初始的布圖規劃,其中所述初始的布圖規劃包括:多個劃分區和多個通道;
[0007]得到第一塊,所述第一塊位于特定范圍內,所述特定范圍含所述多個劃分區中的至少一個劃分區與所述多個通道中的至少一個通道之間的邊界,其中所述第一塊的塊屬性能夠改變,從而使得所述第一塊能夠在屬于所述至少一個劃分區和屬于所述至少一個通道之間改變;
[0008]根據所述劃分區、所述通道和所述通道的布線密度,得到所述集成電路的版圖區域中的特定區域路徑;以及
[0009]根據所述特定區域路徑,改變所述第一塊的塊屬性,從而重塑所述劃分區并對所述通道進行重新布線。
[0010]其中,在得到所述第一塊之前,所述方法還包括:
[0011]根據所述劃分區和所述通道,得到所述初始的布圖規劃的具有固定的塊屬性的第二塊和邊緣,其中邊緣用于模擬相鄰第二塊之間的關系,所述第二塊屬于所述劃分區或所述通道。
[0012]其中,所述根據所述特定區域路徑,改變所述第一塊的塊屬性,包括:
[0013]改變所述第一塊的塊屬性,以將所述第一塊由屬于所述至少一個通道改變為屬于所述至少一個劃分區,從而沿特定方向擴寬所述至少一個劃分區;以及對所述至少一個通道進行重新布線,以避免所述至少一個通道的布線穿過所述第一塊;以及
[0014]改變所述第一塊的塊屬性,以將所述第一塊由屬于所述至少一個劃分區改變為屬于所述至少一個通道,從而沿所述特定方向收窄所述至少一個劃分區;以及對所述至少一個通道進行重新布線,以增加穿過所述第一塊的布線;
[0015]其中,所述特定方向正交于所述至少一個劃分區和所述至少一個通道之間的邊界線。
[0016]其中,所述特定范圍的中心線為所述至少一個劃分區和所述至少一個通道之間的邊界線。
[0017]其中,所述方法進一步包括:對所述劃分區之間的所述通道進行布線,以得到每個通道的所述布線密度。
[0018]其中,所述根據所述劃分區、所述通道和所述通道的布線密度,得到所述集成電路的版圖區域的特定區域路徑,包括:
[0019]根據所述劃分區、所述通道和所述布線密度,得到所述版圖區域中的多條區域路徑的路徑長度;以及
[0020]得到所述多條區域路徑中具有最大路徑長度的所述特定區域路徑。
[0021]其中,每條區域路徑的路徑長度等于該區域路徑經過的通道長度乘以對應的布線密度之積加上該區域路徑經過的劃分區的長度。
[0022]其中,所述最大路徑長度大于所述集成電路的芯片尺寸。
[0023]其中,所述方法進一步包括:
[0024]根據所述重塑的劃分區,顯示最終的布圖規劃;
[0025]所述根據所述特定區域路徑,改變所述第一塊的塊屬性,包括:
[0026]根據所述通道和所述通道的布線密度,計算所述通道的彈性空間;
[0027]根據所述特定區域路徑和所述彈性空間,改變所述第一塊的塊屬性。
[0028]其中,所述方法進一步包括:
[0029]根據所述劃分區和所述通道之間的邊界,建立水平約束圖和垂直約束圖,從而確定是否改變所述第一塊的塊屬性。
[0030]其中,所述劃分區包括:至少一個具有固定形狀的硬劃分區和多個具有可移動性和可變形性的軟劃分區,其中所述至少一個劃分區為所述多個軟劃分區之一。
[0031]本發明提供了一種減小集成電路的版圖面積的方法,包括:
[0032]得到并顯示所述集成電路的初始的布圖規劃,其中所述初始的布圖規劃包括:多個劃分區和多個通道;
[0033]經由第一塊對所述劃分區之間的通道進行布線,從而得到每個通道的布線密度;
[0034]根據所述劃分區、所述通道和所述通道的布線密度,得到所述集成電路的版圖區域中的特定區域路徑;
[0035]根據所述通道和所述通道的布線密度,得到每個通道的彈性空間;
[0036]根據所述彈性空間以及所述特定區域路徑,通過使用第二塊來重塑所述劃分區,并對所述通道進行重新布線,其中所述第二塊在特定范圍內,所述特定范圍含所述多個劃分區中的至少一個劃分區和所述多個通道中的至少一個通道之間的邊界;以及
[0037]根據所述重塑的劃分區,顯示最終的布圖規劃;
[0038]其中,第一塊屬于所述劃分區或者所述通道,并且具有固定的塊屬性;
[0039]其中,第二塊的塊屬性能夠改變,從而使得所述第二塊能夠在屬于所述至少一個劃分區和屬于所述至少一個通道之間改變。
[0040]其中,根據所述彈性空間以及所述特定區域路徑,通過使用第二塊來重塑所述劃分區,并對所述通道進行重新布線,包括:
[0041]改變所述第二塊的塊屬性,以將所述第二塊由屬于所述至少一個通道改變為屬于所述至少一個劃分區,從而沿特定方向擴寬所述至少一個劃分區;并對所述至少一個通道進行重新布線,以避免所述至少一個通道的布線穿過所述第二塊;以及
[0042]改變所述第二塊的塊屬性,以將所述第二塊由屬于所述至少一個劃分區改變為屬于所述至少一個通道,從而沿特定方向收窄所述至少一個劃分區;并對所述至少一個通道進行重新布線,以增加穿過所述第二塊的布線;
[0043]其中,所述特定方向正交于所述至少一個劃分區和所述至少一個通道之間的邊界線。
[0044]其中,所述特定范圍的中心線為所述至少一個劃分區和所述至少一個通道之間的邊界線。
[0045]其中,根據所述劃分區、所述通道和所述通道的布線密度,得到所述集成電路的版圖區域中的特定區域路徑,包括:
[0046]根據所述劃分區、所述通道和所述布線密度,得到所述版圖區域中的多條區域路徑的路徑長度;以及
[0047]得到所述多條區域路徑中具有最大路徑長度的所述特定區域路徑。
[0048]其中,每條區域路徑的路徑長度等于該區域路徑經過的通道長度乘以對應的布線密度之積加上該區域路徑經過的劃分區的長度。
[0049]其中,所述最大路徑長度超過所述集成電路的芯