TWI612435B - Method of macro placement and a non-transitory computer readable medium thereof - Google Patents

Method of macro placement and a non-transitory computer readable medium thereof Download PDF

Info

Publication number
TWI612435B
TWI612435B TW105142317A TW105142317A TWI612435B TW I612435 B TWI612435 B TW I612435B TW 105142317 A TW105142317 A TW 105142317A TW 105142317 A TW105142317 A TW 105142317A TW I612435 B TWI612435 B TW I612435B
Authority
TW
Taiwan
Prior art keywords
area
placement
sub
macro circuit
macro
Prior art date
Application number
TW105142317A
Other languages
Chinese (zh)
Other versions
TW201824036A (en
Inventor
林家民
彭德偉
陳發大
黃嘉慶
Original Assignee
財團法人成大研究發展基金會
奇景光電股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人成大研究發展基金會, 奇景光電股份有限公司 filed Critical 財團法人成大研究發展基金會
Priority to TW105142317A priority Critical patent/TWI612435B/en
Application granted granted Critical
Publication of TWI612435B publication Critical patent/TWI612435B/en
Publication of TW201824036A publication Critical patent/TW201824036A/en

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一種巨集電路的擺置方法,包含分割半導體晶片的整個區域為複數子區域;決定子區域的複數可動巨集電路的擺置順序;對於一可動巨集電路,擷取子區域內複數擺置區塊的搜尋點;決定搜尋點相關的可行區域;擺置可動巨集電路於可行區域內;評估合法成本函數;及決定合法成本函數的值是否小於預設臨界值。A method for placing a macro circuit includes dividing a whole region of a semiconductor wafer into a plurality of sub-regions; determining a placement order of the plurality of movable macro circuits of the sub-region; and for a movable macro circuit, capturing a plurality of sub-regions The search point of the block; determine the feasible area related to the search point; place the movable macro circuit in the feasible area; evaluate the legal cost function; and determine whether the value of the legal cost function is less than the preset threshold.

Description

巨集電路的擺置方法及其非暫態電腦可讀取媒體Macro circuit arrangement method and non-transient computer readable medium

本發明係有關一種電子設計自動化(EDA),特別是關於一種巨集電路(macro)的擺置方法。The present invention relates to an electronic design automation (EDA), and more particularly to a method of placing a macro.

電子設計自動化(EDA)為設計積體電路的工具之一。晶片設計者使用電子設計自動化工具以設計及分析半導體晶片。擺置(placement)為電子設計自動化當中的一個必要步驟,用以分派各種電路元件(例如巨集電路)於晶片區域當中。為確保效能要求,擺置器(placer)必須對一些準則(criteria)(例如總線長、時序、擁擠度、功率及擺置執行時間)作最佳化。Electronic Design Automation (EDA) is one of the tools for designing integrated circuits. Wafer designers use electronic design automation tools to design and analyze semiconductor wafers. Placement is a necessary step in the automation of electronic design to dispatch various circuit components (such as macrocircuits) in the wafer area. To ensure performance requirements, placers must optimize criteria such as bus length, timing, congestion, power, and placement execution time.

傳統電子設計自動化擺置方法無法有效處理浮動(floating)預先擺置(preplaced)巨集電路,其未相鄰於晶片邊緣或者無法藉由預先擺置巨集電路而連接至晶片邊緣。此外,傳統電子設計自動化擺置方法無法處理大量(例如超過十個)巨集電路。當存在有許多預先擺置巨集電路或/且浮動預先擺置巨集電路時,巨集電路擺置問題將變得更嚴重。Conventional electronic design automated placement methods are incapable of effectively processing floating pre-placed macro circuits that are not adjacent to the wafer edge or that cannot be connected to the wafer edge by pre-positioning the macro circuit. In addition, traditional electronic design automation placement methods cannot handle large (eg, more than ten) macro circuits. When there are many pre-arranged macro circuits or / and floating pre-arranged macro circuits, the macro circuit placement problem will become more serious.

鑑於傳統電子設計自動化擺置方法無法有效執行,因此亟需提出一種新穎的巨集電路合法器(legalizer),其可有效處理浮動預先擺置巨集電路及大量預先擺置巨集電路。In view of the fact that the traditional electronic design automation placement method can not be effectively implemented, it is urgent to propose a novel macro circuit legalizer, which can effectively handle the floating pre-arranged macro circuit and a large number of pre-arranged macro circuits.

鑑於上述,本發明實施例的目的之一在於提出一種巨集電路的擺置方法及巨集電路合法器,有效適用於大型設計的巨集電路擺置且能降低執行時間。In view of the above, one of the objects of the embodiments of the present invention is to provide a method for placing a macro circuit and a macro circuit legal device, which are effectively applicable to a large-scale circuit arrangement of a large design and can reduce execution time.

根據本發明實施例,巨集電路的擺置方法包含分割半導體晶片的整個區域為複數子區域;決定子區域的複數可動巨集電路的擺置順序;對於一可動巨集電路,擷取子區域內複數擺置區塊的搜尋點;決定搜尋點相關的可行區域;擺置可動巨集電路於可行區域內;評估合法成本函數;及決定合法成本函數的值是否小於預設臨界值。According to an embodiment of the present invention, a method for placing a macro circuit includes dividing a whole region of a semiconductor wafer into a plurality of sub-regions; determining a placement order of the plurality of movable macro circuits of the sub-region; and extracting a sub-region for a movable macro circuit The search point of the inner complex number block; determining the feasible area related to the search point; placing the movable macro circuit in the feasible area; evaluating the legal cost function; and determining whether the value of the legal cost function is less than a preset threshold.

第一A圖顯示本發明實施例之巨集電路的擺置方法100的流程圖。本實施例之巨集電路的擺置方法(以下簡稱擺置方法)100可適用於巨集電路擺置器或巨集電路合法器,用以分派巨集電路於晶片上,用以避免巨集電路之間的重疊。本實施例之擺置方法100可使用電腦來執行,其受控於非暫態(non-transitory)電腦可讀取媒體內的程式指令。FIG. 1A is a flow chart showing a method 100 of placing a macro circuit according to an embodiment of the present invention. The method for placing a macro circuit of the present embodiment (hereinafter referred to as the placement method) 100 can be applied to a macro circuit arrangement or a macro circuit legal device for dispatching a macro circuit on a chip to avoid macros. The overlap between the circuits. The method 100 of the present embodiment can be performed using a computer controlled by program instructions within a non-transitory computer readable medium.

於步驟11,於半導體晶片的整個區域,以一或多個擺置障礙物(placement blockage)取代一或多個擺置區塊(placed block)。若不存在擺置區塊,則不進行取代。第二A圖例示半導體晶片的區域(以下簡稱區域)200,其包含有擺置區塊,例如浮動擺置區塊201或非浮動擺置區塊202。第二B圖例示加入擺置障礙物203以覆蓋擺置區塊。擺置障礙物203一般為矩形。將擺置障礙物203結合再分割為非重疊的(矩形)障礙物。第二C圖顯示擺置障礙物203經結合與分割後的區域200。值得注意的是,擺置區塊(例如擺置區塊204)不一定會被擺置障礙物203覆蓋,因此該些擺置區塊不會被擺置障礙物203取代。In step 11, one or more placed blocks are replaced by one or more placement blocks in the entire area of the semiconductor wafer. If there is no placed block, it will not be replaced. The second A diagram illustrates an area of a semiconductor wafer (hereinafter referred to as an area) 200 including a placement block such as a floating placement block 201 or a non-floating placement block 202. The second B diagram illustrates the addition of the placement obstacle 203 to cover the placement block. The placement obstacle 203 is generally rectangular. The placement obstacle 203 is combined and subdivided into non-overlapping (rectangular) obstacles. The second C-picture shows the area 200 in which the placement obstacle 203 is joined and divided. It should be noted that the placement blocks (eg, the placement block 204) are not necessarily covered by the placement obstacle 203, and thus the placement blocks are not replaced by the placement obstacle 203.

接下來,於步驟12,將半導體晶片的整個區域分割為複數子區域(sub-region)。第三A圖及第三B圖分別例示分割前與分割後之擺置區塊(斜線所示)及可動(movable)區塊(非斜線所示)的整個區域200。在本實施例中,可根據以下文獻所揭示的利用限制(utilization constraint)以執行分割:標題“MAPLE: Multilevel Adaptive PLacEment for Mixed-Size Designs”,Myung-Chul Kim等人,刊物“Proceedings of the 2012 ACM international symposium on International Symposium on Physical Design”,頁193-200。本實施例分別根據次區域、次區域的空區域及次區域的可動巨集電路的重心以執行分割。一般來說,分割次區域的大小可互異,如第三B圖所例示。擺置方法100的後續步驟係針對分割子區域來進行。其他分割子區域的處理可根據相同的擺置方法100來進行。Next, in step 12, the entire area of the semiconductor wafer is divided into a plurality of sub-regions. The third A diagram and the third B diagram illustrate the entire region 200 of the pre- and post-segment placement blocks (shown by oblique lines) and the movable blocks (not shown by oblique lines), respectively. In this embodiment, the partitioning can be performed according to the utilization constraint disclosed in the following document: title "MAPLE: Multilevel Adaptive PLacEment for Mixed-Size Designs", Myung-Chul Kim et al., publication "Proceedings of the 2012" ACM international symposium on International Symposium on Physical Design", pp. 193-200. In this embodiment, the segmentation is performed according to the center of gravity of the movable region circuit of the sub-region, the sub-region, and the sub-region. In general, the size of the segmentation sub-regions may be different, as illustrated in Figure 3B. The subsequent steps of the placement method 100 are performed for segmenting sub-regions. The processing of the other divided sub-areas can be performed according to the same placement method 100.

於步驟13,於子區域建構格子圖(grid graph)以記錄可行的擺置位置。在一實施例中,如果格子被擺置區塊所覆蓋,則相應格子的值為“1”,否則其值為“0”。第四A圖例示含有四個擺置區塊(斜線所示)的子區域41。第四B圖顯示第四A圖之子區域41的相應格子圖,其中被擺置區塊覆蓋的格子(斜線所示)的值為“1”,未被擺置區塊覆蓋的格子(非斜線所示)的值為“0”。In step 13, a grid graph is constructed in the sub-region to record a feasible placement position. In an embodiment, if the grid is covered by the placement block, the value of the corresponding grid is "1", otherwise the value is "0". The fourth A diagram illustrates a sub-area 41 having four placement blocks (shown by oblique lines). The fourth B-picture shows a corresponding trellis diagram of the sub-area 41 of the fourth A-picture, in which the value of the lattice (shown by the oblique line) covered by the placed block is "1", and the grid not covered by the placed block (non-slashed) The value shown is "0".

於步驟14,決定複數可動巨集電路的擺置(packing)順序。第五圖例示於第四A圖之子區域41內決定四個可動巨集電路m 1、m 2、m 3、m 4的擺置順序。在本實施例中,根據擺置成本函數(packing cost function)的計算值以排序(sort)可動巨集電路,因而決定其擺置順序。在一例子中,可動巨集電路的擺置順序係根據其面積、位置及長寬比(aspect ratio)來決定的。在此例子中,可動巨集電路m i的擺置成本函數可表示為: cost(m i)= αa i+ β l i+ γt i其中a i為巨集電路m i的面積, l i為巨集電路m i的初始位置與子區域之左下點之間距離的倒數,t­ i為巨集電路m i的長寬比,α、β、γ為相應權重。 In step 14, the packing sequence of the plurality of movable macro circuits is determined. The fifth diagram is exemplified in the sub-area 41 of the fourth A diagram to determine the arrangement order of the four movable macro circuits m 1 , m 2 , m 3 , and m 4 . In the present embodiment, the movable macro circuit is sorted according to the calculated value of the packing cost function, and thus the arrangement order is determined. In one example, the placement order of the movable macrocircuit is determined by its area, position, and aspect ratio. In this example, the placement cost function of the movable macro circuit m i can be expressed as: cost(m i )= αa i + β l i + γt i where a i is the area of the macro circuit m i , l i is The reciprocal of the distance between the initial position of the macro circuit m i and the lower left point of the sub-region, t i is the aspect ratio of the macro circuit m i , and α, β, γ are corresponding weights.

在本實施例中,將左下點作為子區域的原點。當一個點於水平方向作正向(例如向右)移動時,其x座標變大;當點於垂直方向作正向(例如向上)移動時,其y座標變大。具較大擺置成本函數的計算值的可動巨集電路將優先予以處理。以第五圖為例,巨集電路m 1、m 2、m 3、m 4的擺置順序為Q={m 2, m 3, m 1, m 4}。因此,後續步驟(例如步驟15~17)將依據擺置順序Q而依序執行。 In the present embodiment, the lower left point is taken as the origin of the sub-area. When a point moves in the positive direction (for example, to the right) in the horizontal direction, its x coordinate becomes larger; when the point moves in the vertical direction (for example, upward), its y coordinate becomes larger. The movable macro circuit with the calculated value of the larger placement cost function will be processed first. Taking the fifth figure as an example, the arrangement order of the macro circuits m 1 , m 2 , m 3 , and m 4 is Q={m 2 , m 3 , m 1 , m 4 }. Therefore, the subsequent steps (for example, steps 15 to 17) will be sequentially executed in accordance with the placement order Q.

於步驟15,擷取所有擺置區塊的搜尋點。在本說明書中,所謂搜尋點係指可動巨集電路的可能擺置位置。在本實施例中,對於每一擺置區塊,擷取擺置區塊的相對二點,且擷取該相對二點的投影點。詳而言之,對於每一擺置區塊,擷取四搜尋點S 1、S 2、S 3、S 4如下: S 1:擺置區塊的左上點; S 2:S 1於相鄰左擺置區塊之邊緣或子區域之左邊緣的投影; S 3:擺置區塊的右下點;及 S 4:S 3於相鄰下擺置區塊之邊緣或子區域之下邊緣的投影。 In step 15, the search points of all the placed blocks are retrieved. In the present specification, the so-called search point refers to a possible placement position of the movable macro circuit. In this embodiment, for each of the placed blocks, the relative two points of the placed block are captured, and the projected points of the opposite two points are extracted. In detail, for each placement block, four search points S 1 , S 2 , S 3 , and S 4 are taken as follows: S 1 : the upper left point of the placed block; S 2 : S 1 adjacent Projection of the edge of the left-handed block or the left edge of the sub-area; S 3 : the lower right point of the placed block; and S 4 : S 3 at the edge of the adjacent lower-arranged block or the lower edge of the sub-area projection.

接著,依從下而上及由左至右的順序,排序所有擺置區塊的擷取搜尋點。第六A圖例示擺置區塊61所擷取的搜尋點。第六B圖顯示第六A圖所有擺置區塊經排序(且重排號碼)後的搜尋點。Then, in the order of bottom-up and left-to-right, the search points of all the placed blocks are sorted. The sixth A diagram illustrates the search points captured by the placement block 61. Figure 6B shows the search points after all the placed blocks of Figure 6A have been sorted (and rearranged).

於步驟16,決定搜尋點相關的可行區域,使得巨集電路可擺置於所決定的可行區域。第一B圖顯示第一A圖之步驟16的詳細流程圖,其步驟的執行順序可作調整。例如,步驟161可於步驟162之前、之後或同時執行。In step 16, the feasible area associated with the search point is determined such that the macro circuit can be placed in the determined feasible area. The first B diagram shows a detailed flow chart of step 16 of the first A diagram, the order of execution of which steps can be adjusted. For example, step 161 can be performed before, after, or at the same time as step 162.

於步驟161,建構至少一水平掃描(sweeping)線,其通過每一擺置區塊的底(或第一)邊緣且水平通過子區域。類似的情形,建構至少一垂直掃描線,其通過每一擺置區塊的左(或第二)邊緣且垂直通過子區域。第七A圖例示水平掃描線71與垂直掃描線72於包含有六個擺置區塊b 1~b 6的區域內。 In step 161, at least one horizontal sweeping line is constructed that passes through the bottom (or first) edge of each of the tiles and horizontally passes through the sub-regions. In a similar situation, at least one vertical scan line is constructed that passes through the left (or second) edge of each tile and passes vertically through the sub-region. The seventh A diagram illustrates the horizontal scanning line 71 and the vertical scanning line 72 in a region including six placement blocks b 1 to b 6 .

於步驟162,給定一搜尋點,將其作垂直正向(例如向上)移動直到碰到擺置區塊為止,此時搜尋點的y座標(連同其x座標)作為一頂(或第一)點。若未碰到任何擺置區塊,則子區域的頂邊緣的y座標(連同其x座標)作為頂點。類似的情形,將搜尋點作水平正向(例如向右)移動直到碰到擺置區塊為止,此時搜尋點的x座標(連同其y座標)作為一右(或第二)點。若未碰到任何擺置區塊,則子區域的右邊緣的x座標(連同其y座標)作為右點。頂點與右點為相對二點,其定義最大(矩形)區域,於後續步驟中以決定該搜尋點相關的可行區域。第七B圖顯示第七A圖之搜尋點S i相關的頂點P top與右點P rightIn step 162, a search point is given, and it is vertically forward (for example, up) until it hits the placement block. At this time, the y coordinate of the search point (along with its x coordinate) is used as a top (or first). )point. If no placement block is encountered, the y coordinate of the top edge of the sub-region (along with its x coordinate) acts as a vertex. In a similar situation, the search point is moved horizontally forward (eg, to the right) until it hits the placed block, at which point the x coordinate of the search point (along with its y coordinate) acts as a right (or second) point. If no placement block is encountered, the x coordinate of the right edge of the sub-region (along with its y coordinate) is used as the right point. The vertex and the right point are relative points, which define the largest (rectangular) area, which is determined in subsequent steps to determine the feasible area associated with the search point. B shows the points of view of a seventh S VII A of FIG related i P top right vertex point P right.

於步驟163,於頂點與右點所定義的最大區域內,得到水平掃描線與垂直掃描線的交叉點(但排除與搜尋點具相同y座標或x座標者)。第七C圖顯示第七B圖的頂點與右點所定義的最大區域內的交叉點r 1~r 6。在本實施例中,依從上而下且由左至右的順序以排序該些交叉點。 In step 163, the intersection of the horizontal scan line and the vertical scan line is obtained in the largest area defined by the vertex and the right point (but the same y coordinate or x coordinate as the search point is excluded). The seventh C-picture shows the intersections r 1 to r 6 in the maximum area defined by the vertices of the seventh B-picture and the right point. In the present embodiment, the intersections are ordered in a top-down and left-to-right order.

於步驟164,決定搜尋點與交叉點所定義的可行區域,其不能碰到擺置區塊。繼續參閱第七C圖,搜尋點S­i分別與交叉點r 2、r 3所定義的可行區域會碰到擺置區塊b 5,因此該些區域必須捨棄。此外,包含於大區域內的小區域也必須予以捨棄。繼續參閱第七C圖,搜尋點S­i分別與交叉點r 4、r 5所定義的較小區域包含於搜尋點S­i與交叉點r 6所定義的較大區域內,因此捨棄較小區域。藉此,得到搜尋點S­i分別與交叉點r 1、r 6所定義者作為可行區域。 In step 164, the feasible area defined by the search point and the intersection is determined, and the touched block cannot be touched. Continuing to refer to the seventh C diagram, the search point Si and the feasible area defined by the intersections r 2 and r 3 respectively encounter the placement block b 5 , so the areas must be discarded. In addition, small areas included in large areas must also be discarded. Continuing to refer to the seventh C map, the search area Si and the smaller area defined by the intersections r 4 and r 5 are respectively included in the larger area defined by the search point Si and the intersection r 6 , thus discarding the smaller area. Thereby, the search point Si and the intersections r 1 and r 6 are respectively defined as feasible regions.

回到第一A圖,於步驟17,將巨集電路擺置於步驟16所決定的可行區域內。第八A圖例示於可行區域81內擺置巨集電路。巨集電路的寬度或/且高度可適度予以加長,使得擺置巨集電路後不會產生狹窄通道,藉以減少其他巨集電路的不必要搜尋。第八B圖例示於可行區域f j內擺置巨集電路m i(其寬度為W i)並加長其寬度為W(f j)。 Returning to the first A picture, in step 17, the macro circuit is placed in the feasible area determined in step 16. The eighth A diagram illustrates the placement of a macro circuit in the feasible area 81. The width or/and height of the macro circuit can be lengthened to make it unnecessary to create a narrow channel after the macro circuit is placed, thereby reducing unnecessary searching of other macro circuits. The eighth B diagram illustrates that the macro circuit m i (having a width W i ) is placed in the feasible region f j and its width is lengthened by W(f j ).

對於每一巨集電路,重複執行上述步驟15~17。當所有巨集電路都已擺置(步驟18),流程進入步驟19以決定所作擺置是否可行。如果所作擺置不可行,則流程回到步驟14,否則流程進入步驟20。於步驟20,評估合法成本函數(legalizing cost function)。在本實施例中,合法成本函數可表示如下: cost(s)= θO + μD + ωT + δC + εW 其中O為二巨集電路之間的重疊總面積,D為巨集電路的總位移,T為子區域內的擺置區塊的總厚度,C為無效空間(deadspace),W為半周圍線長(HPWL),θ、μ、ω、δ、ε為相應權重。Repeat steps 15 through 17 above for each macro circuit. When all of the macro circuits have been placed (step 18), the flow proceeds to step 19 to determine if the placement is feasible. If the placement is not feasible, the flow returns to step 14, otherwise the flow proceeds to step 20. At step 20, a legalizing cost function is evaluated. In this embodiment, the legal cost function can be expressed as follows: cost(s)= θO + μD + ωT + δC + εW where O is the total area of overlap between the two macro circuits, and D is the total displacement of the macro circuit. T is the total thickness of the placement block in the sub-area, C is the dead space, W is the semi-circumference line length (HPWL), and θ, μ, ω, δ, ε are the corresponding weights.

第九A圖例示擺置巨集電路m 1~m 4於第五圖的子區域內的一種作法。在此例子中,產生了無效空間。第九B圖例示擺置巨集電路m 1~m 4於第五圖的子區域內的另一種作法。在此例子中,擺置巨集電路m 1~m 4的厚度小於第九A圖的擺置巨集電路m 1~m 4的厚度,且沒有產生無效空間。 The ninth A diagram illustrates a method of placing the macro circuits m 1 to m 4 in the sub-area of the fifth figure. In this example, an invalid space is generated. The ninth B diagram illustrates another method of placing the macro circuits m 1 to m 4 in the sub-area of the fifth figure. In this example, the thickness of the macro circuit arrangements and m is less than 1 ~ m 4 m thickness 9th A circuit arrangements and macro FIG 1 ~ m 4, and no dead space.

接著,於步驟21,決定合法成本函數的值是否小於預設臨界值。如果為是,則得到最佳合法化並停止流程,否則流程回至步驟13。Next, in step 21, it is determined whether the value of the legal cost function is less than a preset threshold. If yes, the best legalization is obtained and the process is stopped, otherwise the process returns to step 13.

以上所述僅為本發明之較佳實施例而已,並非用以限定本發明之申請專利範圍;凡其它未脫離發明所揭示之精神下所完成之等效改變或修飾,均應包含在下述之申請專利範圍內。The above description is only the preferred embodiment of the present invention, and is not intended to limit the scope of the present invention; all other equivalent changes or modifications which are not departing from the spirit of the invention should be included in the following Within the scope of the patent application.

100‧‧‧巨集電路的擺置方法100‧‧‧Magic circuit placement method

11‧‧‧以擺置障礙物取代擺置區塊11‧‧‧Replace the placement block with obstacles

12‧‧‧將區域分割為子區域12‧‧‧Division of the area into sub-areas

13‧‧‧建構格子圖13‧‧‧Building a grid map

14‧‧‧決定擺置順序14‧‧‧Determining the placement order

15‧‧‧擷取搜尋點15‧‧‧Select search points

16‧‧‧決定可行區域16‧‧‧Determining a viable area

161‧‧‧建構水平與垂直掃描線161‧‧‧Build horizontal and vertical scan lines

162‧‧‧決定頂點與右點162‧‧‧Determining the apex and the right point

163‧‧‧得到交叉點163‧‧‧Get the intersection

164‧‧‧決定可行區域164‧‧‧Determining a viable area

17‧‧‧擺置巨集電路於可行區域內17‧‧‧ Place the giant circuit in the feasible area

18‧‧‧所有巨集電路已擺置18‧‧‧All macro circuits have been placed

19‧‧‧擺置為可行19‧‧‧ Placed as feasible

20‧‧‧評估合法成本函數20‧‧‧Assessing the legal cost function

21‧‧‧合法成本函數小於臨界值21‧‧‧ legal cost function is less than the critical value

200‧‧‧半導體晶片的區域200‧‧‧Semiconductor wafer area

201‧‧‧浮動擺置區塊201‧‧‧ Floating Placement Block

202‧‧‧非浮動擺置區塊202‧‧‧Non-floating placement block

203‧‧‧擺置障礙物203‧‧‧ Place obstacles

204‧‧‧擺置區塊204‧‧‧ Placement block

41‧‧‧子區域41‧‧‧Sub-area

61‧‧‧擺置區塊61‧‧‧ Placement block

71‧‧‧水平掃描線71‧‧‧ horizontal scanning line

72‧‧‧垂直掃描線72‧‧‧Vertical scan line

81‧‧‧可行區域81‧‧‧ Feasible area

m1~m4‧‧‧可動巨集電路m 1 ~m 4 ‧‧‧ movable macro circuit

S1~S6‧‧‧搜尋點S 1 ~S 6 ‧‧‧ Search points

Si‧‧‧搜尋點S i ‧‧‧ search point

b1~b6‧‧‧擺置區塊b 1 ~b 6 ‧‧‧ Placement block

Ptop‧‧‧頂點P top ‧‧‧ apex

Pright‧‧‧右點P right ‧‧‧right point

r1~r6‧‧‧交叉點r 1 ~r 6 ‧‧‧ intersection

x1~x5‧‧‧x座標x 1 ~x 5 ‧‧‧x coordinates

y1~y2‧‧‧y座標y 1 ~y 2 ‧‧‧y coordinates

fj‧‧‧可行區域f j ‧‧‧ viable area

mi‧‧‧巨集電路m i ‧‧‧Giant circuit

wi‧‧‧寬度w i ‧‧‧width

m(fj)‧‧‧寬度m(f j )‧‧‧Width

第一A圖顯示本發明實施例之巨集電路的擺置方法的流程圖。 第一B圖顯示第一A圖之步驟16的詳細流程圖。 第二A圖例示包含有擺置區塊的半導體晶片的區域。 第二B圖例示加入擺置障礙物以覆蓋擺置區塊。 第二C圖顯示擺置障礙物經結合與分割後的區域。 第三A圖及第三B圖分別例示分割前與分割後之擺置區塊即可動區塊的整個區域。 第四A圖例示含有四個擺置區塊的子區域。 第四B圖顯示第四A圖之子區域的相應格子圖。 第五圖例示於第四A圖之子區域內決定四個可動巨集電路的擺置順序。 第六A圖例示一擺置區塊所擷取的搜尋點。 第六B圖顯示第六A圖所有擺置區塊經排序(且重排號碼)後的搜尋點。 第七A圖例示水平掃描線與垂直掃描線於包含有六個擺置區塊的區域內。 第七B圖顯示第七A圖之搜尋點相關的頂點與右點。 第七C圖顯示第七B圖的頂點與右點所定義的最大區域內的交叉點。 第八A圖例示一可行區域。 第八B圖例示於可行區域內擺置巨集電路並加長其寬度。 第九A圖例示擺置巨集電路於第五圖的子區域內的一種作法。 第九B圖例示擺置巨集電路於第五圖的子區域內的另一種作法。FIG. 1A is a flow chart showing a method of placing a macro circuit according to an embodiment of the present invention. The first B diagram shows a detailed flow chart of step 16 of the first A diagram. The second A diagram illustrates an area of a semiconductor wafer including a placement block. The second B diagram illustrates the inclusion of an obstacle to cover the placed block. The second C-picture shows the area where the placed obstacle is combined and divided. The third A picture and the third B picture respectively illustrate the entire area of the moving block before and after the splitting. The fourth A diagram illustrates a sub-area having four placed blocks. The fourth B-picture shows the corresponding trellis diagram of the sub-area of the fourth A-picture. The fifth figure illustrates the arrangement order of the four movable macro circuits in the sub-area of the fourth A picture. Figure 6A illustrates a search point captured by a placement block. Figure 6B shows the search points after all the placed blocks of Figure 6A have been sorted (and rearranged). Figure 7A illustrates a horizontal scan line and a vertical scan line in an area containing six placed blocks. Figure 7B shows the vertices and right points associated with the search point of Figure 7A. The seventh C-picture shows the intersection of the apex of the seventh B-picture and the maximum area defined by the right point. Figure 8A illustrates a possible area. Figure 8B illustrates the placement of a macro circuit in a feasible area and lengthening its width. Figure 9A illustrates a method of placing a macro circuit in a sub-area of the fifth figure. The ninth B diagram illustrates another way of placing the macro circuit in the sub-area of the fifth figure.

100‧‧‧巨集電路的擺置方法 100‧‧‧Magic circuit placement method

11‧‧‧以擺置障礙物取代擺置區塊 11‧‧‧Replace the placement block with obstacles

12‧‧‧將區域分割為子區域 12‧‧‧Division of the area into sub-areas

13‧‧‧建構格子圖 13‧‧‧Building a grid map

14‧‧‧決定擺置順序 14‧‧‧Determining the placement order

15‧‧‧擷取搜尋點 15‧‧‧Select search points

16‧‧‧決定可行區域 16‧‧‧Determining a viable area

17‧‧‧擺置巨集電路於可行區域內 17‧‧‧ Place the giant circuit in the feasible area

18‧‧‧所有巨集電路已擺置 18‧‧‧All macro circuits have been placed

19‧‧‧擺置為可行 19‧‧‧ Placed as feasible

20‧‧‧評估合法成本函數 20‧‧‧Assessing the legal cost function

21‧‧‧合法成本函數小於臨界值 21‧‧‧ legal cost function is less than the critical value

Claims (16)

一種巨集電路的擺置方法,包含:分割半導體晶片的整個區域為複數子區域;決定該子區域的複數可動巨集電路的擺置順序;對於一可動巨集電路,擷取該子區域內複數擺置區塊的搜尋點;決定該搜尋點相關的可行區域;擺置該可動巨集電路於該可行區域內;評估合法成本函數;及決定該合法成本函數的值是否小於預設臨界值;其中該些可動巨集電路的擺置順序係根據其面積、位置及長寬比經排序而決定。 A method for placing a macro circuit includes: dividing an entire area of the semiconductor wafer into a plurality of sub-areas; determining a placement order of the plurality of movable macro circuits of the sub-area; and extracting a sub-area for a movable macro circuit a search point of the plurality of blocks; determining a feasible area associated with the search point; placing the movable macro circuit in the feasible area; evaluating a legal cost function; and determining whether the value of the legal cost function is less than a preset threshold The placement order of the movable macro circuits is determined according to the order, the position and the aspect ratio of the movable macro circuits. 根據申請專利範圍第1項所述巨集電路的擺置方法,其中該些可動巨集電路的擺置順序係根據擺置成本函數的計算值經排序而決定,該擺置成本函數表示為:cost(mi)=α ail i+γ ti其中ai為巨集電路mi的面積,l i為巨集電路mi的初始位置與該子區域之左下點之間距離的倒數,ti為巨集電路mi的長寬比,α、β、γ為相應權重。 According to the method of placing a macro circuit according to claim 1, wherein the arrangement order of the movable macro circuits is determined according to a calculated value of a placement cost function, and the placement cost function is expressed as: Cost(m i )=α a il i +γ t i where a i is the area of the macro circuit m i , and l i is the distance between the initial position of the macro circuit m i and the lower left point of the sub-area The reciprocal, t i is the aspect ratio of the macro circuit m i , and α, β, γ are the corresponding weights. 根據申請專利範圍第1項所述巨集電路的擺置方法,對於每一擺置區塊,擷取該擺置區塊的相對二點,且擷取該相對二點的投影點。 According to the method for placing the macro circuit according to the first aspect of the patent application, for each of the placement blocks, the relative two points of the placement block are captured, and the projection points of the relative two points are extracted. 根據申請專利範圍第3項所述巨集電路的擺置方法,其中該擺置區塊的四擷取搜尋點S1、S2、S3、S4如下:S1:該擺置區塊的左上點;S2:S1於相鄰左擺置區塊之邊緣或子區域之左邊緣的投影;S3:該擺置區塊的右下點;及S4:S3於相鄰下擺置區塊之邊緣或子區域之下邊緣的投影。 According to the method for placing a macro circuit according to claim 3, wherein the search points S 1 , S 2 , S 3 , and S 4 of the placement block are as follows: S 1 : the placement block The upper left point; S 2 : S 1 is the projection of the edge of the adjacent left-handed block or the left edge of the sub-area; S 3 : the lower right point of the placed block; and S 4 : S 3 adjacent The projection of the edge of the sub-block or the lower edge of the sub-area. 根據申請專利範圍第4項所述巨集電路的擺置方法,其中該擺置區塊的該些擷取搜尋點依從下而上及由左至右的順序予以排序。 The method for placing a macro circuit according to claim 4, wherein the search points of the placement block are sorted in a bottom-up and left-to-right order. 根據申請專利範圍第1項所述巨集電路的擺置方法,其中決定該可行區域的步驟包含:建構至少一水平掃描線,其通過每一擺置區塊的第一邊緣且水平通過該子區域;建構至少一垂直掃描線,其通過每一擺置區塊的第二邊緣且垂直通過該子區域;垂直正向移動該搜尋點直到碰到擺置區塊為止,因而產生第一點;水平正向移動該搜尋點直到碰到擺置區塊為止,因而產生第二點;於該第一點與該第二點所定義的區域內,得到該些水平掃描線與該些垂直掃描線的交叉點;及決定該搜尋點與該些交叉點所定義的可行區域,其不能碰到擺置區塊。 The method of placing a macro circuit according to claim 1, wherein the step of determining the feasible region comprises: constructing at least one horizontal scan line, passing each of the first edges of the block and horizontally passing the sub- Constructing at least one vertical scan line passing through the second edge of each of the blocks and vertically passing through the sub-area; vertically moving the search point until it hits the placed block, thereby generating a first point; Moving the search point horizontally until it hits the placement block, thereby generating a second point; and obtaining the horizontal scan lines and the vertical scan lines in the area defined by the first point and the second point The intersection; and the feasible area defined by the search point and the intersections, which cannot touch the placement block. 根據申請專利範圍第6項所述巨集電路的擺置方法,更包含一步驟,依從上而下且由左至右的順序以排序該些交叉點。 According to the method of placing the macro circuit described in claim 6, the method further includes a step of sorting the intersections in a top-down and left-to-right order. 根據申請專利範圍第6項所述巨集電路的擺置方法,其中該搜尋點與一交叉點所定義的較小區域包含於該搜尋點與另一交叉點所定義的較大區域內,則捨棄該較小區域。 According to the method for placing a macro circuit according to claim 6, wherein the search area and a small area defined by one intersection are included in a larger area defined by the search point and another intersection, Discard this smaller area. 根據申請專利範圍第1項所述巨集電路的擺置方法,於擺置該可動巨集電路於該可行區域後,加長該可動巨集電路的寬度或高度,以避免產生狹窄通道。 According to the method for placing a macro circuit according to the first aspect of the patent application, after the movable macro circuit is placed in the feasible area, the width or height of the movable macro circuit is lengthened to avoid a narrow channel. 根據申請專利範圍第1項所述巨集電路的擺置方法,其中該合法成本函數表示如下:cost(s)=θ O+μ D+ω 7T+δ C+ε W其中O為二可動巨集電路之間的重疊總面積,D為該些可動巨集電路的總位移,T為該子區域內擺置的該些可動巨集電路的總厚度,C為無效空間,W為半周圍線長,θ、μ、ω、δ、ε為相應權重。 According to the method of placing a macro circuit according to claim 1, wherein the legal cost function is expressed as follows: cost(s)=θ O+μ D+ω 7T+δ C+ε W where O is a two-moving giant The total area of overlap between the collector circuits, D is the total displacement of the movable macro circuits, T is the total thickness of the movable macro circuits placed in the sub-area, C is the ineffective space, and W is the semi-circumference line Long, θ, μ, ω, δ, ε are the corresponding weights. 根據申請專利範圍第1項所述巨集電路的擺置方法,於決定該擺置順序之前,更包含一步驟,於該子區域內建構格子圖,以記錄可行的擺置位置。 According to the method for placing the macro circuit according to the first aspect of the patent application, before determining the placement order, a step is further included, and a grid map is constructed in the sub-area to record a feasible placement position. 一種非暫態電腦可讀取媒體,包含程式指令以控制電腦以執行以下步驟:分割半導體晶片的整個區域為複數子區域;決定該子區域的複數可動巨集電路的擺置順序;對於一可動巨集電路,擷取該子區域內複數擺置區塊的搜尋點; 決定該搜尋點相關的可行區域;擺置該可動巨集電路於該可行區域內;評估合法成本函數;及決定該合法成本函數的值是否小於預設臨界值;其中該些可動巨集電路的擺置順序係根據其面積、位置及長寬比經排序而決定。 A non-transitory computer readable medium, comprising program instructions to control a computer to perform the steps of: dividing an entire area of the semiconductor wafer into a plurality of sub-areas; determining a placement order of the plurality of movable macro circuits of the sub-area; a macro circuit that captures a search point of a plurality of blocks in the sub-area; Determining a feasible area related to the search point; placing the movable macro circuit in the feasible area; evaluating a legal cost function; and determining whether the value of the legal cost function is less than a preset threshold; wherein the movable macro circuit The placement order is determined by the order of its area, position and aspect ratio. 根據申請專利範圍第12項所述之非暫態電腦可讀取媒體,對於每一擺置區塊,擷取該擺置區塊的相對二點,且擷取該相對二點的投影點。 According to the non-transitory computer readable medium of claim 12, for each of the placement blocks, the relative two points of the placement block are captured, and the projection points of the relative two points are extracted. 根據申請專利範圍第12項所述之非暫態電腦可讀取媒體,其中決定該可行區域的步驟包含:建構至少一水平掃描線,其通過每一擺置區塊的第一邊緣且水平通過該子區域;建構至少一垂直掃描線,其通過每一擺置區塊的第二邊緣且垂直通過該子區域;垂直正向移動該搜尋點直到碰到擺置區塊為止,因而產生第一點;水平正向移動該搜尋點直到碰到擺置區塊為止,因而產生第二點;於該第一點與該第二點所定義的區域內,得到該些水平掃描線與該些垂直掃描線的交叉點;及決定該搜尋點與該些交叉點所定義的可行區域,其不能碰到擺置區塊。 The non-transitory computer readable medium of claim 12, wherein the determining the feasible area comprises: constructing at least one horizontal scan line that passes through the first edge of each of the blocks and passes horizontally The sub-area; constructing at least one vertical scan line, passing each of the second edges of the block and vertically passing through the sub-area; vertically moving the search point until the frame is touched, thereby generating the first Pointing; moving the search point horizontally until it hits the placement block, thereby generating a second point; in the area defined by the first point and the second point, obtaining the horizontal scan lines and the vertical points The intersection of the scan lines; and the feasible area defined by the search point and the intersections, which cannot touch the placement block. 根據申請專利範圍第12項所述之非暫態電腦可讀取媒體,於擺置該可動巨集電路於該可行區域後,加長該可動巨集電路的寬度或高度,以避免產生狹窄通道。 According to the non-transitory computer readable medium of claim 12, after the movable macro circuit is placed in the feasible area, the width or height of the movable macro circuit is lengthened to avoid a narrow channel. 根據申請專利範圍第12項所述之非暫態電腦可讀取媒體,於決定該擺置順序之前,更包含一步驟,於該子區域內建構格子圖,以記錄可行的擺置位置。According to the non-transitory computer readable medium described in claim 12, before determining the placement order, a step is further included, and a grid map is constructed in the sub-area to record a feasible placement position.
TW105142317A 2016-12-20 2016-12-20 Method of macro placement and a non-transitory computer readable medium thereof TWI612435B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW105142317A TWI612435B (en) 2016-12-20 2016-12-20 Method of macro placement and a non-transitory computer readable medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105142317A TWI612435B (en) 2016-12-20 2016-12-20 Method of macro placement and a non-transitory computer readable medium thereof

Publications (2)

Publication Number Publication Date
TWI612435B true TWI612435B (en) 2018-01-21
TW201824036A TW201824036A (en) 2018-07-01

Family

ID=61728431

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105142317A TWI612435B (en) 2016-12-20 2016-12-20 Method of macro placement and a non-transitory computer readable medium thereof

Country Status (1)

Country Link
TW (1) TWI612435B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI717727B (en) * 2019-05-07 2021-02-01 財團法人成大研究發展基金會 Method of placing macro cells

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220366116A1 (en) * 2021-05-14 2022-11-17 Mediatek Inc. Integrated circuit with compact layout arrangement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201017458A (en) * 2008-10-21 2010-05-01 Advanced Risc Mach Ltd Modifying integrated circuit layout
TW201019152A (en) * 2008-09-30 2010-05-16 Cadence Design Systems Inc Method, system, and computer program product for implementing a compact manufacturing model in electronic design automation
US20140075404A1 (en) * 2012-09-13 2014-03-13 Taiwan Semiconductor Manufacturing Company Limited Group bounding box region-constrained placement for integrated circuit design
TW201520802A (en) * 2013-09-03 2015-06-01 Synopsys Taiwan Co Ltd A knowledge-based analog layout generator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201019152A (en) * 2008-09-30 2010-05-16 Cadence Design Systems Inc Method, system, and computer program product for implementing a compact manufacturing model in electronic design automation
TW201017458A (en) * 2008-10-21 2010-05-01 Advanced Risc Mach Ltd Modifying integrated circuit layout
US20140075404A1 (en) * 2012-09-13 2014-03-13 Taiwan Semiconductor Manufacturing Company Limited Group bounding box region-constrained placement for integrated circuit design
TW201520802A (en) * 2013-09-03 2015-06-01 Synopsys Taiwan Co Ltd A knowledge-based analog layout generator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI717727B (en) * 2019-05-07 2021-02-01 財團法人成大研究發展基金會 Method of placing macro cells

Also Published As

Publication number Publication date
TW201824036A (en) 2018-07-01

Similar Documents

Publication Publication Date Title
US8887116B2 (en) Flexible pattern-oriented 3D profile for advanced process nodes
US8726214B2 (en) Floorplanning method for an analog integrated circuit layout
CN102419663B (en) A kind of infrared touch screen multi-point recognition method and system
CN105574524B (en) Based on dialogue and divide the mirror cartoon image template recognition method and system that joint identifies
CN102693334B (en) Based on the dynamic component recognition methods of CAD electronic drawing
TWI612435B (en) Method of macro placement and a non-transitory computer readable medium thereof
JP2007188488A (en) Method of packing-based macro placement and semiconductor chip using the same
US20050166169A1 (en) Method for legalizing the placement of cells in an integrated circuit layout
CN109163722A (en) A kind of anthropomorphic robot paths planning method and device
CN102364480A (en) Method and system for extracting parasitic parameters
Zhang et al. Parasitic-aware optimization and retargeting of analog layouts: A symbolic-template approach
US20180150583A1 (en) Method of macro placement and a non-transitory computer readable medium thereof
US8352890B2 (en) Method for reading polygon data into an integrated circuit router
CN101675437A (en) Semiconductor layout scanning method and system
CN117876461A (en) BIN data structure-based distributed key area extraction method
US7831947B2 (en) Semiconductor layout design apparatus, semiconductor layout design method and computer readable medium
Xu et al. Analog placement constraint extraction and exploration with the application to layout retargeting
CN102339329A (en) Physical layout segmentation method
US9639648B2 (en) Goal-based cell partitioning in the presence of obstacles
Roman et al. From 3D Surveying Data to Bim to Bem: The Incube Dataset
Reda et al. Effective linear programming based placement methods
CN110941940A (en) 3D winding method, storage device and system based on collision detection
Lee et al. Minimizing Critical Area on Gridless Wire Ordering, Sizing and Spacing.
CN102760177A (en) Method for automatically extracting pattern topological relation from layout pattern
CN113569518B (en) Set jointed board identification method for PCB engineering files and application thereof