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 PDFInfo
- 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
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
本發明係有關一種電子設計自動化(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 right。 In 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圖,搜尋點Si分別與交叉點r 2、r 3所定義的可行區域會碰到擺置區塊b 5,因此該些區域必須捨棄。此外,包含於大區域內的小區域也必須予以捨棄。繼續參閱第七C圖,搜尋點Si分別與交叉點r 4、r 5所定義的較小區域包含於搜尋點Si與交叉點r 6所定義的較大區域內,因此捨棄較小區域。藉此,得到搜尋點Si分別與交叉點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)
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)
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)
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)
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 |
-
2016
- 2016-12-20 TW TW105142317A patent/TWI612435B/en active
Patent Citations (4)
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)
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 |