JP2010204749A - Layout support program, layout support device, and layout support method - Google Patents
Layout support program, layout support device, and layout support method Download PDFInfo
- Publication number
- JP2010204749A JP2010204749A JP2009047043A JP2009047043A JP2010204749A JP 2010204749 A JP2010204749 A JP 2010204749A JP 2009047043 A JP2009047043 A JP 2009047043A JP 2009047043 A JP2009047043 A JP 2009047043A JP 2010204749 A JP2010204749 A JP 2010204749A
- Authority
- JP
- Japan
- Prior art keywords
- cell
- additional
- target cell
- layout
- area
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】レイアウト済みのセルのタイミング関係を崩すことなく所望のセルを追加配置可能なレイアウトを行う。
【解決手段】あらたなセル(追加セル)を追加する際に、配置可能な空き領域が無い場合には、レイアウト済みのセルの中から、最も信号伝搬のタイミングに影響しないセルを、あらたなセルを配置するための空き領域を用意するための移動対象セルとして選択する。選択されたセルを移動させた空き領域にあらたなセルを配置することによって、追加セルの挿入に伴うタイミング調整を不要もしくは必要最低限に留めることができる。
【選択図】図1A layout capable of additionally arranging desired cells without losing the timing relationship of the laid-out cells is provided.
When a new cell (additional cell) is added and there is no vacant space that can be arranged, a cell that has the least influence on the signal propagation timing is selected from the laid out cells. The cell is selected as a movement target cell for preparing a free area for placing the. By arranging a new cell in the empty area to which the selected cell has been moved, the timing adjustment associated with the insertion of the additional cell can be unnecessary or kept to the minimum necessary.
[Selection] Figure 1
Description
この発明は、ポストレイアウトECO(Engineering Change Ordering)処理におけるレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法に関する。 The present invention relates to a layout support program, a layout support apparatus, and a layout support method in post-layout ECO (Engineering Change Ordering) processing.
従来より、すでに各セルが所定のタイミングを保つようにレイアウトされた半導体回路に対して、回路機能を拡張するために、あらたなセルを追加するポストレイアウトECO処理が提案されている。ポストレイアウトECO処理では、レイアウト済みの各セルに対する信号伝搬までのタイミングの余裕値を参照して、あらたなセルを挿入可能な領域を抽出する技術が開示されている(たとえば、下記特許文献1参照。)。 Conventionally, a post-layout ECO process for adding a new cell has been proposed in order to expand the circuit function of a semiconductor circuit already laid out so that each cell maintains a predetermined timing. In the post-layout ECO process, a technique for extracting a region where a new cell can be inserted by referring to a timing margin until signal propagation for each laid-out cell is disclosed (for example, see Patent Document 1 below). .)
しかしながら、上述したような従来技術の場合、あらたなセルを挿入可能な領域が無い場合には、レイアウトされた各セルのタイミングを保持できないことがある。たとえば、あらたなセルを挿入するために、レイアウト済みのセルのうち、いずれかのセルを移動させて空き領域を用意しなければならない。 However, in the case of the prior art as described above, if there is no area where a new cell can be inserted, the timing of each laid out cell may not be maintained. For example, in order to insert a new cell, one of the laid-out cells must be moved to prepare an empty area.
このとき、移動させるセルによっては、論理変更に関係のないセル同士のタイミングを崩してしまうことがあった。一旦、レイアウト済みのセルのタイミングが崩れてしまうと、各セルに対して再度タイミング調整が必要になり、調整処理のために多大な負荷と時間を費やしてしまうという問題があった。 At this time, depending on the cell to be moved, the timing of cells not related to the logic change may be lost. Once the layout timing of a cell has collapsed, timing adjustment is required for each cell again, and there is a problem that a great load and time are consumed for the adjustment processing.
この発明は、上述した従来技術による問題点を解消するため、レイアウト済みのセルのタイミング関係を崩すことなく所望のセルを追加配置することができるレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法を提供することを目的とする。 The present invention provides a layout support program, a layout support apparatus, and a layout support method capable of additionally arranging desired cells without destroying the timing relationship of the laid-out cells in order to solve the above-described problems caused by the prior art. The purpose is to do.
上述した課題を解決し、目的を達成するため、このレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法は、コンピュータが、半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する処理と、前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける処理と、前記追加セルを配置可能な空き領域があるか否かを判断する処理と、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と、前記優先度情報とに基づいて移動対象セルを抽出する処理と、抽出された移動対象セルを配置可能な空き領域を探索する処理と、空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる処理と、前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する処理と、追加セルが配置された前記半導体回路のレイアウト情報を出力する処理と、を含むことを要件とする。 In order to solve the above-described problems and achieve the object, the layout support program, the layout support apparatus, and the layout support method are configured so that a computer includes layout information indicating an arrangement state of a cell group constituting a semiconductor circuit, and the cell group. Processing for obtaining priority information set in accordance with the type of cell included, processing for receiving information on an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information, and , A process for determining whether or not there is a free area in which the additional cell can be arranged, and when it is determined that there is no free area in which the additional cell can be arranged, the distance from the arbitrary cell, and the priority A process of extracting a movement target cell based on the information, a process of searching a free area where the extracted movement target cell can be arranged, and a free area are searched, The process of moving the movement target cell to the empty area, the process of arranging the additional cell at the position where the movement target cell moved to the empty area is arranged, and the semiconductor circuit in which the additional cell is arranged And a process of outputting the layout information of the above.
このレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法によれば、追加セルを配置可能な空き領域が無い場合には、タイミングに影響を与える可能性の低いセルを抽出して、他の空き領域に移動させることによって、追加セルを対象セルの近傍に配置したレイアウトを実現することができる。 According to the layout support program, the layout support apparatus, and the layout support method, when there is no free area in which an additional cell can be arranged, a cell having a low possibility of affecting the timing is extracted and used as another free area. By moving it, it is possible to realize a layout in which additional cells are arranged in the vicinity of the target cell.
本発明にかかるレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法によれば、レイアウト済みのセルのタイミング関係を崩すことなく所望のセルを追加配置することができるという効果を奏する。 According to the layout support program, the layout support apparatus, and the layout support method according to the present invention, there is an effect that a desired cell can be additionally arranged without destroying the timing relationship between the laid-out cells.
以下に添付図面を参照して、このレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法の好適な実施の形態を詳細に説明する。このレイアウト支援プログラム、レイアウト支援装置およびレイアウト支援方法では、あらたなセルを追加する際に、配置可能な空き領域が無い場合には、レイアウト済みのセルの中から、最も信号伝搬のタイミングに影響しないセルを、あらたなセルを配置するための空き領域を用意するための移動対象セルとして選択する。選択されたセルを移動させた空き領域にあらたなセルを配置することによって、追加セルの挿入に伴うタイミング調整を不要もしくは必要最低限に留めることができる。そこで、以下には上述した処理を実現するためのレイアウト支援処理について説明する。 Exemplary embodiments of the layout support program, the layout support apparatus, and the layout support method will be described below in detail with reference to the accompanying drawings. In this layout support program, layout support apparatus, and layout support method, when a new cell is added, if there is no vacant space that can be arranged, the timing of signal propagation is not affected most among the laid out cells. The cell is selected as a movement target cell for preparing an empty area for arranging a new cell. By arranging a new cell in the empty area to which the selected cell has been moved, the timing adjustment associated with the insertion of the additional cell can be unnecessary or kept to the minimum necessary. Therefore, a layout support process for realizing the above process will be described below.
(レイアウト支援処理の概要)
まず、本実施の形態にかかるレイアウト支援処理の概要について説明する。図1は、本実施の形態にかかるレイアウト支援処理の概要を示す説明図である。図1のように、レイアウト例Aのように複数のセル群が配置された半導体回路において、対象セルの近傍に追加セルを挿入して機能を拡張しなければならないとする。
(Outline of layout support processing)
First, an outline of the layout support process according to the present embodiment will be described. FIG. 1 is an explanatory diagram showing an outline of layout support processing according to the present embodiment. As shown in FIG. 1, in a semiconductor circuit in which a plurality of cell groups are arranged as in layout example A, it is assumed that the function must be expanded by inserting additional cells near the target cell.
まず、対象セルから所定の範囲内に(たとえば、図1の領域R)追加セルを挿入できる空き領域があるか否かを判断する。ここで、空き領域があると判断されれば、その空き領域に追加セルを挿入すればよい。しかしながら図1のレイアウト例Aの場合、追加セルを挿入できる空き領域は存在しない。 First, it is determined whether or not there is a free area in which an additional cell can be inserted within a predetermined range from the target cell (for example, area R in FIG. 1). Here, if it is determined that there is a free area, an additional cell may be inserted into the free area. However, in the case of layout example A in FIG. 1, there is no empty area into which additional cells can be inserted.
そこで、つぎに領域R内に配置されているセルの優先度を参照する。優先度とは、追加セルを挿入するために空き領域を用意しなければならない場合に、優先的に移動させる度合いを示した値である。図1のレイアウト例Aでは、優先度1〜4の設定が施されており、優先度の値が小さいセルを優先的に移動させるセルと判断する。ここで優先的に移動させるセルとは、移動によってタイミングへ及ぼす影響が小さいセルである。したがって、タイミングへ及ぼす影響が小さいほど優先度の値が小さく、タイミングへ及ぼす影響が大きいほど優先度の値が大きく設定されている。したがって、優先度はセルの種類に応じて設定されている。 Then, the priority of the cell arrange | positioned in the area | region R is referred next. The priority is a value indicating the degree of priority when the empty area has to be prepared in order to insert an additional cell. In the layout example A of FIG. 1, priority levels 1 to 4 are set, and a cell having a low priority value is determined as a cell to be moved with priority. Here, the cell that is preferentially moved is a cell that has a small influence on timing due to movement. Therefore, the priority value is set smaller as the influence on the timing is smaller, and the priority value is set larger as the influence on the timing is larger. Therefore, the priority is set according to the cell type.
そして、レイアウト例Aの場合には、対象セルの上段に優先度1のセルが隣接している。したがって、レイアウト例Bのように、優先度1のセルを移動対象セルとして、隣接する空き領域へ移動させる。その後、優先度1のセルの移動によって生じた空き領域に追加セルを配置することによって、追加セルを追加した再配置レイアウトが生成される。 In the case of layout example A, a cell with priority 1 is adjacent to the upper stage of the target cell. Therefore, as in layout example B, the cell with priority 1 is moved to the adjacent empty area as the movement target cell. Thereafter, an additional cell is arranged in an empty area generated by the movement of the cell having the priority 1 to generate a rearrangement layout in which the additional cell is added.
このように本実施の形態では、優先度に基づいて、セル群の中から移動によるタイミングへの影響が最も少ないセルを選択する。そして、選択されたセルの移動によって生じた空き領域に追加セルを配置することによって半導体回路の機能を拡張することができる。以下、上述したレイアウト支援処理を実現するための具体的な構成について説明する。 As described above, in the present embodiment, a cell having the least influence on timing due to movement is selected from the cell group based on the priority. Then, the function of the semiconductor circuit can be expanded by arranging an additional cell in an empty area generated by the movement of the selected cell. Hereinafter, a specific configuration for realizing the layout support process described above will be described.
(レイアウト支援装置のハードウェア構成)
図2は、実施の形態にかかるレイアウト支援装置のハードウェア構成を示すブロック図である。図2において、レイアウト支援装置100は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、磁気ディスクドライブ204と、磁気ディスク205と、通信I/F(Interface)206と、入力デバイス207と、出力デバイス208と、を備えている。また、各構成部はバス210によってそれぞれ接続されている。
(Hardware configuration of layout support device)
FIG. 2 is a block diagram of a hardware configuration of the layout support apparatus according to the embodiment. In FIG. 2, a
ここで、CPU201は、レイアウト支援装置100の全体の制御を司る。ROM202は、ブートプログラムや、本実施の形態にかかるレイアウト支援処理を実現するレイアウト支援プログラムなどの各種プログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータの更新/参照を制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。なお、図2のハードウェア構成では、磁気ディスク205を用いているが、光ディスクや、フラッシュメモリなど他の記録媒体を利用してもよい。
Here, the
通信I/F206は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク(NET)209に接続され、このネットワーク209を介して他のレイアウト支援装置100に接続される。そして、通信I/F206は、ネットワーク209と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F206の構成例としては、たとえばモデムやLANアダプタなどを採用することができる。
The communication I / F 206 is connected to a network (NET) 209 such as a LAN (Local Area Network), a WAN (Wide Area Network), and the Internet through a communication line, and is connected to another
入力デバイス207は、レイアウト支援装置100に対しての外部からの入力を受け付ける。入力デバイス207としては、具体的には、キーボード、マウスなどが挙げられる。
The
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。 In the case of a keyboard, for example, keys for inputting letters, numbers, various instructions and the like are provided, and data is input. Moreover, a touch panel type input pad or a numeric keypad may be used. In the case of a mouse, for example, the cursor is moved, a range is selected, or a window is moved or the size is changed. Further, a trackball or a joystick may be used as long as they have the same function as a pointing device.
出力デバイス208は、レイアウト支援装置100が取得したレイアウト情報や、レイアウト支援処理によって生成されたレイアウト情報を出力する。出力デバイス208としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
The
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。 In the case of a display, for example, data such as a cursor, an icon or a tool box, a document, an image, and function information is displayed. Further, a CRT, a TFT liquid crystal display, a plasma display, or the like can be employed as this display. In the case of a printer, for example, image data and document data are printed. Further, a laser printer or an ink jet printer can be employed.
(レイアウト支援装置の機能的構成)
つぎに、レイアウト支援装置100の機能的構成について説明する。図3は、レイアウト支援装置の機能的構成を示すブロック図である。レイアウト支援装置100は、取得部301と、受付部302と、判断部303と、抽出部304と、探索部305と、移動部306と、再配置部307と、出力部308と、を含む構成である。この制御部となる機能(取得部301〜出力部308)は、具体的には、たとえば、図2に示したROM202、RAM203、磁気ディスク205などの記憶領域に記憶されたレイアウト支援プログラムをCPU201に実行させることにより、または、通信I/F206により、その機能を実現する。
(Functional configuration of layout support device)
Next, a functional configuration of the
取得部301は、半導体回路を構成するセル群の配置状態を表すレイアウト情報101と、セル群に含まれるセルの種類に応じて設定された優先度情報102とを取得する機能を有する。具体的には、レイアウト情報101とは、処理対象となる半導体回路を構成するセル群がそれぞれ、どのような種類のセルであり、たとえばROW上にどのような間隔で配置されているかを表す情報である。
The
ここで、図4は、レイアウト支援対象となる半導体回路の一例を示す回路図である。図4のように、半導体回路400は、3つのFF(Flip Flop)回路1,9,10と、2つのインバータ回路2,3と、4つのバッファ回路4,5,6,7と、1つのAND回路8と、1つのOR回路12と、1つのクロックドライバ11とを備えている。
Here, FIG. 4 is a circuit diagram showing an example of a semiconductor circuit which is a layout support target. As shown in FIG. 4, the
そして、図5は、図4に示した半導体回路の各セルのレイアウト情報を示す説明図である。レイアウト支援装置100が、半導体回路400のレイアウト支援をおこなう場合、取得部301は、図5の示したレイアウト情報500を取得して、後段の処理に利用させる。なお、本実施の形態では、以下レイアウト情報500を用いてレイアウト支援処理を説明する。
FIG. 5 is an explanatory diagram showing layout information of each cell of the semiconductor circuit shown in FIG. When the
また、図6は、セルの種類に応じた優先度を示す説明図である。取得部301では、上述したレイアウト情報500とともに、半導体回路400を構成する各セルの種類に応じて設定された優先度が取得される。図6に示すように、半導体回路400を構成するセルの場合、優先度1:インバータ(インバータ回路2,3)→優先度2:バッファ(バッファ回路4,5,6,7)→優先度3:論理素子(AND回路8、OR回路12)→優先度4:クロックドライバ(クロックドライバ11)→優先度5:記憶素子(FF回路1,9,10)の順番で優先度が設定されている。これらの優先度は、入出力が少ないセルほど、他のセルのタイミングへの影響が少ないものとして設定している。また、記録素子は複数のセルのタイミングに影響する可能性が高いため、最も移動させたくないセルとして優先度を最低値に設定している。
FIG. 6 is an explanatory diagram showing priorities according to cell types. In the
なお、本実施の形態では、値が低いほど優先度が高いと判断されるように設定しているが(優先度1>優先度5)、優先度値の取り扱いについては適宜設定することができる。そして、取得部301によって取得されたレイアウト情報101および優先度情報102は、RAM203、磁気ディスク205などの記憶領域に記憶される。
In this embodiment, the lower the value, the higher the priority is determined (priority 1> priority 5). However, the handling of the priority value can be set as appropriate. . The
図3の説明に戻り、続いて受付部302は、レイアウト情報101に含まれるセル群の中の任意のセルに対応して配置させる追加セル情報103を受け付ける。追加セル情報103には、レイアウト情報500によって表されたセル群の中のいずれのセルに対応したどのような種類のセルであるか設定されている。具体的には、レイアウト情報500によって表されたセル群の中のFF回路1に対応したバッファ回路であるというような設定がなされている。なお、受付部302によって受付けられた追加セル情報103は、RAM203、磁気ディスク205などの記憶領域に記憶される。
Returning to the description of FIG. 3, the receiving
判断部303は、受付部302によって受け付けた追加セル情報103を参照して、レイアウト情報500内に追加セルを配置可能な空き領域があるか否かを判断する機能を有する。このとき、空き領域の有無を判断する対象領域は、レイアウト情報500全体でもよいし、対象セルを基準とした所定範囲内であってもよい。特に、対象セルと追加セルとの信号伝搬時間が短く余裕がない場合には、対象セルと追加セルとのタイミングを崩さないような範囲内に空き領域があるか否かを判断しなければならない。なお、判断部303による判断結果は、RAM203、磁気ディスク205などの記憶領域に記憶される。
The determining
抽出部304は、判断部303によって、追加セルを配置可能な空き領域がないと判断された場合に、対象セルからの距離と、優先度情報102とに基づいて移動対象セルを抽出する機能を有する。移動対象セルとは、追加セルを配置するための空き領域を確保するために、移動させるセルである。したがって、対象セルの近くに配置されており、なおかつ、優先度が高く設定されているセルが移動対象セルとして抽出される。なお、抽出部304による抽出結果は、RAM203、磁気ディスク205などの記憶領域に記憶される。また、判断部303によって、追加セルを配置可能な空き領域があると判断された場合には、この空き領域に追加セルを配置すればよい。
The
探索部305は、抽出部304によって抽出された移動対象セルを配置可能な空き領域を探索する機能を有する。ここでも、探索部305による空き領域の探索範囲は、レイアウト情報500によって表される全域としてもよいし、移動対象セルの種類に応じて適宜設定してもよい。探索範囲の設定例としては、1)抽出部304によって抽出された移動対象セルから所定の範囲内を対象として、移動対象セルを配置可能な空き領域を探索する。2)移動対象セルを配置可能な空き領域が探索されなかった場合、空き領域が探索されるまで、所定の範囲を特定のサイズごとに拡大する。3)移動対象セルの前段に接続されたセルからの伝搬時間に比例した範囲の中から移動対象セルを配置可能な空き領域を探索するなどの例が挙げられる。
The
移動部306は、探索部305によって空き領域が探索された場合、移動対象セルを探索された空き領域に移動させる機能を有する。なお、ここで説明する移動の処理対象は、レイアウト情報101である。すなわち、実際に移動対象セルを移動させるのではなく、レイアウト情報101の設定値の変更に過ぎない。したがって、移動部306によって、レイアウト情報101に設定された移動対象セルの配置位置のアドレスは、探索された空き領域のアドレスに変更される。なお、移動部306によって移動対象セルが移動されたレイアウト情報101は、RAM203、磁気ディスク205などの記憶領域に記憶される。
The moving
また、上述した抽出部304では同一の条件を満たすセルが複数存在する場合(たとえば、対象セルからの距離もセルの種類も同じセルなど)がある。このような場合には、抽出部304によって複数の移動対象セルが抽出されてしまうため、移動部306では、これら複数の移動対象セルを比較して、特定の条件を満たすセルを移動対象セルとして移動させる。
In addition, in the
たとえば、移動部306は、抽出部304によって抽出された複数の移動対象セルのうち、最も入出力数が少ないセルを他のセルのタイミングに影響を与える可能性の低いセルとして空き領域に移動させる。なお、入出力数は、各セルのファインアウトを参照することによって確認できる。
For example, the moving
また、移動部306は、抽出部304によって抽出された複数の移動対象セルのうち、接続された他のセルへの駆動電流が大きいセルを他のセルのタイミングに影響を与える可能性の低いセルとして空き領域に移動させてもよい。なお、他のセルへの駆動電流の大小は、各セルのドライブ能力を参照することによって確認できる。
In addition, the moving
また、移動部306は、抽出部304によって抽出された複数の移動対象セルのうち、前段に接続されたセルからの信号伝搬時間が最も長いセルを他のセルのタイミングに影響を与える可能性の低いセルとして空き領域に移動させてもよい。なお、前段に接続されたセルからの信号伝搬時間は、各セルのパスのタイミングの余裕値(スラック)を参照することによって確認できる。
In addition, the moving
つぎに、再配置部307は、移動部306によって空き領域に移動された移動対象セルが配置されていた位置に、追加セルを配置する。なお、上述した移動部306の処理と同様に、再配置の処理対象は、レイアウト情報101である。したがって、再配置部307によって、レイアウト情報101に替わって、追加セル情報103を含んだあらたなレイアウト情報104が生成される。なお、再配置部307によって生成されたレイアウト情報104は、RAM203、磁気ディスク205などの記憶領域に記憶される。
Next, the
また、上述した探索部305によって空き領域が探索されなかった場合、抽出部304によって、再度、移動対象セルからの距離と、優先度情報102とに基づいてあらたな移動対象セルを抽出してもよい。この抽出処理によってあらたな移動対象セルが抽出された場合、探索部305は、このあらたな移動対象セルを配置可能な空き領域を探索する。そして、探索部305によって空き領域が探索された後、移動部306によって探索された空き領域にあらたな移動対象セルを移動させる。
If the
上述の処理によって、あらたな移動対象セルが配置されていた領域は、抽出部304によって最初に抽出された移動対象セルを移動するため空き領域として提供される。そして、移動部306は、あらたな移動対象セルを空き領域に移動させた後、最初に抽出された移動対象セルをあらたな移動対象セルが配置されていた位置に移動させることができる。すなわち、最初に抽出された移動対象セルは、玉突きのように、あらたな移動対象セルを押し出して配置領域を入れ替える。この入れ替えによって生じた空き領域が追加セルの再配置領域として確保される。
By the above-described processing, the area where the new movement target cell is arranged is provided as a free area to move the movement target cell first extracted by the
最後に出力部308は、再配置部307によって追加セルが配置された半導体回路400のレイアウト情報104を出力する機能を有する。出力形式としては、たとえば、出力デバイス208のディスプレイへの表示、プリンタへの印刷出力、通信I/F206による外部装置への送信がある。また、RAM203、磁気ディスク205などの記憶領域に記憶されてもよい。
Finally, the
このように、本実施の形態にかかるレイアウト支援処理では、ポストレイアウトECO処理によって、追加セルを挿入する際に、空き領域が無い場合であっても、他のセルのタイミングへの影響が最小になるように追加セルを挿入することができる。具体的には、各セルに設定された優先度や入出力条件に基づいて抽出した他のセルのタイミングへの影響が最も少ないセルを移動して、追加セルを挿入するための空き領域を確保することができる。したがって、レイアウト済みのセルのタイミング関係を崩すことなく追加セルを挿入したレイアウトを生成することができる。 As described above, in the layout support processing according to the present embodiment, when additional cells are inserted by post-layout ECO processing, the influence on the timing of other cells is minimized even when there is no free area. Additional cells can be inserted as follows. Specifically, move the cell that has the least effect on the timing of other cells extracted based on the priority and input / output conditions set for each cell, and secure free space to insert additional cells. can do. Therefore, it is possible to generate a layout in which additional cells are inserted without breaking the timing relationship between the laid-out cells.
つぎに、上述したレイアウト支援処理の具体的な4種類の実施の形態(実施の形態1〜実施の形態4)について説明する。 Next, four specific embodiments (Embodiments 1 to 4) of the layout support process described above will be described.
(実施の形態1)
実施の形態1は、図6にて説明した優先度に基づいて、移動による他のセルのタイミングへの影響が小さいセルを移動対象セルとして抽出して、追加セルを配置する領域を確保する。この移動対象セルの抽出処理は、本実施の形態の最も基本となる処理である。なお、後述する実施の形態2〜実施の形態4も、実施の形態1にて説明する移動対象セルの抽出処理に、抽出処理の精度や効率を上げるための処理を追加した構成になっている。
(Embodiment 1)
In the first embodiment, based on the priority described with reference to FIG. 6, a cell having a small influence on the timing of other cells due to movement is extracted as a movement target cell, and an area for arranging an additional cell is secured. This movement target cell extraction processing is the most basic processing of the present embodiment. Note that
ここで、まず、従来の追加セルの挿入例について説明する。図7は、追加セルをオーバーラップして配置する手順を示す説明図である。図7では、レイアウト情報500において、対象セルであるFF回路1に対応した追加セルを挿入する処理を示している。FF回路1と、バッファ回路7との間の領域710に追加セル(バッファ)が追加される。このとき、領域710は、追加セルの面積よりも小さいため、追加セルは、FF回路1とオーバーラップしている(STEP1)。
Here, first, a conventional example of inserting additional cells will be described. FIG. 7 is an explanatory diagram showing a procedure for arranging additional cells in an overlapping manner. FIG. 7 shows processing for inserting an additional cell corresponding to the FF circuit 1 that is the target cell in the
その後、追加セルとFF回路1とのオーバーラップを解消するために、まず、FF回路1を右に移動する。すると、この移動によって今度はFF回路1と、後段に配置されたFF回路9との間の領域720がオーバーラップしてしまう(STEP2)。
Thereafter, in order to eliminate the overlap between the additional cell and the FF circuit 1, first, the FF circuit 1 is moved to the right. Then, due to this movement, the
したがって、今度はFF回路1とFF回路9とのオーバーラップを解消するために、FF回路9を右の領域730に移動する(STEP3)。このように、STEP1〜STEP3の処理によって、一見問題なく追加セルが挿入されたようにみえるが、実際には、FF回路1とFF回路9とが移動したため、多数のセルのタイミングに影響を与えてしまっている可能性が高い。一般的にFF回路のクロック信号端子に接続されているクロック信号伝搬時の遅延値が変化してしまうクロック信号の遅延値の変化は、クロック信号が伝搬されるすべてのFF回路に影響を与えてしまうため、多くのタイミングポイントにおいてタイミングエラーの発生を招いてしまう。
Therefore, in order to eliminate the overlap between the FF circuit 1 and the
そこで、本実施の形態1では、他のセルのタイミングに影響を及ぼさないセルを抽出して、効率的に追加セルを挿入する。図8は、実施の形態1におけるレイアウト支援処理を用いた追加セルの配置を示す説明図である。図8でも、図7と同様に、対象セルであるFF回路1に対応した追加セルを挿入する処理を示している。 Therefore, in the first embodiment, cells that do not affect the timing of other cells are extracted, and additional cells are efficiently inserted. FIG. 8 is an explanatory diagram showing the arrangement of additional cells using the layout support process in the first embodiment. FIG. 8 also shows processing for inserting an additional cell corresponding to the FF circuit 1 that is the target cell, as in FIG.
レイアウト情報500では、FF回路1の近傍に追加セルを挿入する空き領域がないため、優先度に基づいて、バッファ回路4を移動対象セル810として抽出する(STEP1)。つぎに、移動対象セル810が、近傍の空き領域820に移動されたため、バッファ回路4が配置されていた領域が空き領域となる(STEP2)。したがって、空き領域830に追加セルが挿入され、あたらしいレイアウトとなる(STEP3)。
In the
図8にて説明した処理の場合、図7の処理とは異なり、バッファ回路4が移動されているため、このセルに関して他のセルへのタイミングの影響を考慮すればよい。しかしながら、バッファ回路4は、レイアウト情報500に配置されたセルのうち、最も他のセルのタイミングへの影響が少ないため、たとえ、他のセルへのタイミングに何らかの影響を与えていたとしても、必要最低限のタイミング調整のみ行なえばよい。
In the case of the process described with reference to FIG. 8, since the
つぎに、上述した実施の形態1におけるレイアウト支援処理の手順について説明する。図9は、実施の形態1におけるレイアウト支援処理の手順を示すフローチャートである。図9のフローチャートにおいて、まず、対象FF回路1に隣接するセルのうち最も優先度が高いインバータを抽出し(ステップS901)、このステップS901によってインバータが抽出されたか否かを判断する(ステップS902)。 Next, the procedure of the layout support process in the first embodiment will be described. FIG. 9 is a flowchart illustrating a procedure of layout support processing according to the first embodiment. In the flowchart of FIG. 9, first, the inverter having the highest priority is extracted from the cells adjacent to the target FF circuit 1 (step S901), and it is determined whether or not the inverter is extracted in step S901 (step S902). .
上述のステップS902において、インバータが抽出された場合(ステップS902:Yes)、抽出されたインバータを移動することによって追加セルを配置できるか否かを判断する(ステップS903)。このステップS903によって、インバータの移動によって追加セルを配置できると判断された場合は(ステップS903:Yes)、インバータを移動して(ステップS904)、移動後の空き領域に追加セルを配置して(ステップS915)、一連の処理を終了する。 In the above-described step S902, when an inverter is extracted (step S902: Yes), it is determined whether or not an additional cell can be arranged by moving the extracted inverter (step S903). If it is determined in step S903 that an additional cell can be arranged by moving the inverter (step S903: Yes), the inverter is moved (step S904), and the additional cell is arranged in the free space after the movement ( Step S915), a series of processing ends.
一方、インバータが抽出されなかった場合(ステップS902:No)または、インバータを移動しても追加セルを配置できないと判断された場合は(ステップS903:No)、続いて、対象FF回路1に隣接するセルのうち2番目に優先度が高いバッファを抽出する(ステップS905)。そして、このステップS905によってバッファが抽出されたか否かを判断する(ステップS906)。 On the other hand, when the inverter is not extracted (step S902: No), or when it is determined that the additional cell cannot be arranged even if the inverter is moved (step S903: No), the adjacent FF circuit 1 is adjacent. A buffer having the second highest priority among the cells to be extracted is extracted (step S905). Then, it is determined whether or not a buffer has been extracted in step S905 (step S906).
上述のステップS906において、バッファが抽出された場合(ステップS906:Yes)、抽出されたバッファを移動することによって追加セルを配置できるか否かを判断する(ステップS907)。そして、ステップS906において、バッファが抽出されなかった場合(ステップS906:No)、または、ステップS907において、追加セルを配置できないと判断された場合(ステップS907:No)、3番目に優先度が高い論理素子を移動して(ステップS908)、移動後の空き領域に追加セルを配置して(ステップS915)、一連の処理を終了する。 If a buffer is extracted in step S906 described above (step S906: Yes), it is determined whether an additional cell can be arranged by moving the extracted buffer (step S907). If no buffer is extracted in step S906 (step S906: No), or if it is determined in step S907 that an additional cell cannot be arranged (step S907: No), the third highest priority is given. The logic element is moved (step S908), an additional cell is arranged in the free space after the movement (step S915), and the series of processes is terminated.
一方、ステップS907において、追加セルを配置できると判断された場合(ステップS907:Yes)、さらに各バッファのファインアウトを確認する(ステップS909)。そして、他のセルへの影響が小さいファインアウト1対1のバッファが複数あるか否かを判断する(ステップS910)。このステップS910において、ファインアウト1対1のバッファが1つのみと判断された場合(ステップS910:No)、このバッファを移動して(ステップS911)、移動後の空き領域に追加セルを配置して(ステップS915)、一連の処理を終了する。 On the other hand, when it is determined in step S907 that an additional cell can be arranged (step S907: Yes), the fine-out of each buffer is further confirmed (step S909). Then, it is determined whether or not there are a plurality of fine-out one-to-one buffers that have little influence on other cells (step S910). If it is determined in this step S910 that there is only one fine-out one-to-one buffer (step S910: No), this buffer is moved (step S911), and an additional cell is placed in the free space after the movement. (Step S915), and a series of processing ends.
一方、ステップS910において、ファインアウト1対1のバッファが複数あると判断された場合(ステップS910:Yes)、さらに、他のセルへの影響が小さいバッファを抽出するため、対象FFに影響しないバッファの中にドライブ能力が高いバッファがあるか否かを判断する(ステップS912)。このステップS912におけるドライブ能力の高低は、基準値以上か未満かに基づいて判断される。 On the other hand, if it is determined in step S910 that there are a plurality of fine-out one-to-one buffers (step S910: Yes), a buffer that does not affect the target FF is extracted in order to extract a buffer that has little effect on other cells. It is determined whether or not there is a buffer having a high drive capability (step S912). The level of drive capability in step S912 is determined based on whether it is greater than or less than a reference value.
したがって、このステップS912において、ドライブ能力が高いバッファがあると判断された場合(ステップS912:Yes)、このドライブ能力の高いバッファを移動して(ステップS913)、移動後の空き領域に追加セルを配置して(ステップS915)、一連の処理を終了する。 Therefore, if it is determined in step S912 that there is a buffer with high drive capability (step S912: Yes), the buffer with high drive capability is moved (step S913), and an additional cell is moved to the free area after the move. Arrange (step S915), and a series of processing ends.
そして、このステップS912において、ドライブ能力が高いバッファがないと判断された場合(ステップS912:No)、タイミング余裕値の高いセルを移動して(ステップS914)、移動後の空き領域に追加セルを配置して(ステップS915)、一連の処理を終了する。タイミング余裕値(スラック)とは、セルに接続されたパスからの信号伝搬を受付けるタイミングの猶予時間を表す値であり。500psecなど実際の猶予時間によって表現される。 If it is determined in step S912 that there is no buffer with high drive capability (step S912: No), a cell with a high timing margin value is moved (step S914), and an additional cell is moved to the free area after movement. Arrange (step S915), and a series of processing ends. The timing margin value (slack) is a value representing a grace period of timing for accepting signal propagation from a path connected to a cell. It is expressed by an actual grace time such as 500 psec.
このように、実施の形態1では、優先度や、バッファの条件に基づいて移動対象セルを抽出して、追加セルの挿入先に設定する。この処理によって、従来の挿入処理と異なり、オーバーラップの発生を防ぐことが可能となり、クロック信号伝搬に関する遅延時間の変化を抑えることができる。したがって、論理変更部分以外のタイミング違反の発生を抑制することができる。 As described above, in the first embodiment, the movement target cell is extracted based on the priority and the buffer condition, and is set as the insertion destination of the additional cell. By this process, unlike the conventional insertion process, it is possible to prevent the occurrence of overlap, and it is possible to suppress a change in delay time related to clock signal propagation. Therefore, it is possible to suppress the occurrence of timing violations other than the logic change portion.
(実施の形態2)
実施の形態2では、実施の形態1のレイアウト支援処理の中で、移動対象セルを抽出する際に、抽出対象領域を限定し、抽出結果に応じて抽出対象領域を段階的に拡大することによって効率的に移動対象セルを抽出することができる。
(Embodiment 2)
In the second embodiment, when extracting the movement target cell in the layout support process of the first embodiment, the extraction target area is limited, and the extraction target area is expanded stepwise according to the extraction result. It is possible to efficiently extract a movement target cell.
図10は、実施の形態2におけるレイアウト支援処理を用いた追加セルの配置を示す説明図である。図10のように、実施の形態2では、移動対象セルを抽出する際には、まず、第一セル選択領域を対象とする。そして、第一セル選択領域の中から移動対象セルが抽出されなかった場合、より領域を拡大した第二セル選択領域の中から移動対象セルを抽出する。 FIG. 10 is an explanatory diagram showing the arrangement of additional cells using the layout support process in the second embodiment. As shown in FIG. 10, in the second embodiment, when a movement target cell is extracted, first, the first cell selection region is targeted. And when a movement object cell is not extracted from the 1st cell selection area | region, a movement object cell is extracted from the 2nd cell selection area | region which expanded the area | region more.
つぎに、上述した実施の形態2におけるレイアウト支援処理の手順について説明する。図11は、実施の形態2におけるレイアウト支援処理の手順を示すフローチャートである。図11のフローチャートにおいて、まず、追加セルの挿入を受付けると、移動対象セルの選択領域を作成する(ステップS1101)。移動対象セルの選択領域とは、図10に示したような第一セル選択領域や第二セル選択領域を意味する。また、ステップS1101の処理において、どの程度のサイズの選択領域を作成するかは、任意に設定することができる。 Next, the procedure of the layout support process in the second embodiment will be described. FIG. 11 is a flowchart showing a procedure of layout support processing in the second embodiment. In the flowchart of FIG. 11, first, when insertion of an additional cell is accepted, a selection area of a movement target cell is created (step S1101). The selection area of the movement target cell means a first cell selection area or a second cell selection area as shown in FIG. In addition, in the process of step S1101, the size of the selection area to be created can be arbitrarily set.
つぎに、上述の選択領域に追加セルの挿入領域が有るか否かを判断する(ステップS1102)。すなわち、第一セル選択領域内に移動対象セルを挿入可能な空き領域が有るか否かを判断している。このステップS1102において、追加セルの挿入領域が有ると判断された場合(ステップS1102:Yes)、挿入領域に、追加セルを挿入して(ステップS1106)、一連の処理を終了する。 Next, it is determined whether or not there is an additional cell insertion area in the selected area (step S1102). That is, it is determined whether or not there is a free area in which the cell to be moved can be inserted in the first cell selection area. If it is determined in step S1102 that there is an additional cell insertion area (step S1102: Yes), the additional cell is inserted in the insertion area (step S1106), and the series of processing ends.
一方、ステップS1102において、追加セルの挿入領域が無いと判断された場合(ステップS1102:No)、追加セルの挿入先を確保するために、選択領域の中から移動対象セルを選択する(ステップS1103)。そして、選択された移動対象セルのタイミング余裕値(スラック)が基準値よりも大きいか否かを判断する(ステップS1104)。 On the other hand, if it is determined in step S1102 that there is no additional cell insertion area (step S1102: No), a movement target cell is selected from the selection area in order to secure the insertion destination of the additional cell (step S1103). ). And it is judged whether the timing margin value (slack) of the selected movement object cell is larger than a reference value (step S1104).
ステップS1104において、タイミング余裕値(スラック)が基準値よりも大きいと判断された場合(ステップS1104:Yes)、選択領域を移動して(ステップS1105)、あらたな選択領域にて追加セルの挿入領域が有るか否かを判断する(ステップS1102)。ステップS1105の選択領域を移動とは、たとえば、図10の例では、第一セル選択領域から第二セル選択領域への移動を意味する。 In step S1104, when it is determined that the timing margin value (slack) is larger than the reference value (step S1104: Yes), the selection area is moved (step S1105), and the additional cell insertion area is newly set in the selection area. It is determined whether or not there is (step S1102). Moving the selection area in step S1105 means, for example, movement from the first cell selection area to the second cell selection area in the example of FIG.
一方、ステップS1104において、タイミング余裕値(スラック)が基準値に満たないと判断された場合(ステップS1104:No)、ステップS1101によって作成された選択領域の中から移動対象セルを選択する。すなわち、移動対象セルのタイミング余裕値の値が小さいため、選択領域を広げるとタイミングに影響を及ぼしてしまう。したがって、ステップS1103に戻って最初に作成した選択領域内で最適な移動対象セルを選択する。 On the other hand, when it is determined in step S1104 that the timing margin value (slack) does not satisfy the reference value (step S1104: No), the movement target cell is selected from the selection region created in step S1101. That is, since the timing margin value of the movement target cell is small, expanding the selection area affects the timing. Therefore, the process returns to step S1103 to select the optimum movement target cell in the selection area created first.
このように、実施の形態2では、移動対象セルを特定の領域に絞って探索する。移動対象セルが探索されなかった場合には、探索範囲をタイミング余裕値に基づいた制限範囲まで、段階的に拡大していく。したがって、必要最低限の領域から探索を開始するため、効率的な探索が可能となる。 As described above, in the second embodiment, the search is performed by narrowing down the movement target cell to a specific area. When the movement target cell is not searched, the search range is expanded step by step to the limit range based on the timing margin value. Therefore, since the search is started from the minimum necessary area, an efficient search is possible.
(実施の形態3)
実施の形態3では、移動対象セルを特定の領域に絞って探索する際に、上述したタイミング余裕値(スラック)から移動可能な距離を算出し、算出されたエリア内に対して空き領域があるか否かを判断する。
(Embodiment 3)
In the third embodiment, when searching for a movement target cell by narrowing down to a specific area, a movable distance is calculated from the above-described timing margin value (slack), and there is an empty area within the calculated area. Determine whether or not.
図12は、実施の形態3におけるレイアウト支援処理を用いた追加セルの配置を示す説明図である。たとえば、対象セルがインバータ2の場合、インバータ2のタイミング余裕値からマンハッタン長ベースの遅延や、ワイヤ・ロード(Wire Load)モデルを用いて移動可能な距離を算出する。したがって、インバータ2の場合、円1210が移動可能な範囲となり、円1210内で移動対象セルを探索する。同様に、インバータ3の場合も、タイミング余裕値から求まった移動可能な範囲は円1220となる。そして、この範囲内で移動対象セルを探索する。
FIG. 12 is an explanatory diagram showing the arrangement of additional cells using the layout support process in the third embodiment. For example, when the target cell is the
図13は、実施の形態3におけるレイアウト支援処理の手順を示すフローチャートである。図13のフローチャートにおいて、追加セルの挿入を受付けると、移動対象セルの選択領域を作成する(ステップS1301)。移動対象セルの選択領域とは、図12に示したような円1210や円1220を意味する。また、ステップS1301の処理において、どの程度のサイズの選択領域を作成するかは、任意に設定することができる。
FIG. 13 is a flowchart showing a procedure of layout support processing in the third embodiment. In the flowchart of FIG. 13, when insertion of an additional cell is accepted, a selection area of a movement target cell is created (step S1301). The selection area of the movement target cell means a
つぎに、上述の選択領域に追加セルの挿入領域が有るか否かを判断する(ステップS1302)。すなわち、円1210内に移動対象セルを挿入可能な空き領域が有るか否かを判断している。このステップS1302において、追加セルの挿入領域が有ると判断された場合(ステップS1302:Yes)、挿入領域に、追加セルを挿入して(ステップS1308)、一連の処理を終了する。
Next, it is determined whether or not there is an additional cell insertion area in the selected area (step S1302). That is, it is determined whether or not there is a free area in the
一方、ステップS1302において、追加セルの挿入領域が無いと判断された場合(ステップS1302:No)、追加セルの挿入先を確保するために、選択領域の中から移動対象セルを選択する(ステップS1303)。そして、選択された移動対象セルのタイミング余裕値(スラック)を確認して(ステップS1304)、移動可能領域を算出する(ステップS1305)。 On the other hand, if it is determined in step S1302 that there is no additional cell insertion area (step S1302: No), a movement target cell is selected from the selection area in order to secure the insertion destination of the additional cell (step S1303). ). Then, the timing margin value (slack) of the selected movement target cell is confirmed (step S1304), and a movable area is calculated (step S1305).
そして、算出された移動可能領域にて移動対象セルの挿入領域nが有るか否かを判断する(ステップS1306)。ステップS1306において追加セルの挿入領域nが有ると判断された場合(ステップS1306:Yes)、ステップS1303に戻り、移動対象セルの挿入領域nが無くなったと判断されるまで、ステップS1303から1306の処理を繰り返す。一方、ステップS1306において、移動対象セルの挿入領域nが無くなったと判断されると(ステップS1306:No)、移動対象セルを移動させ(ステップS1307)、ステップS1302の処理に戻る。 Then, it is determined whether or not there is an insertion area n of the movement target cell in the calculated movable area (step S1306). If it is determined in step S1306 that there is an additional cell insertion area n (step S1306: Yes), the process returns to step S1303, and the processes from step S1303 to 1306 are performed until it is determined that there is no longer the insertion area n of the movement target cell. repeat. On the other hand, when it is determined in step S1306 that the insertion area n of the movement target cell has disappeared (step S1306: No), the movement target cell is moved (step S1307), and the process returns to step S1302.
このように、実施の形態3では、タイミング余裕値に基づいて、移動可能な距離を算出して得られた範囲内で、移動対象セルを選択するため、タイミングの遅延が発生しないセルのみを移動対象セルとして選択することができる。 As described above, in the third embodiment, since a moving target cell is selected within a range obtained by calculating a movable distance based on a timing margin value, only a cell that does not cause a timing delay is moved. It can be selected as a target cell.
(実施の形態4)
実施の形態4は、移動対象セルを挿入する空き領域が探索されなかった場合に、まず、移動対象セルを挿入するための空き領域を用意する。そして、用意された空き領域に、移動対象セルを挿入し、移動対象セルが配置されていた領域に、追加セルを挿入する。すなわち、順番に空き領域を用意して、セルを移動させていく。
(Embodiment 4)
In the fourth embodiment, when a free area for inserting a movement target cell is not searched, first, a free area for inserting the movement target cell is prepared. Then, the movement target cell is inserted into the prepared empty area, and the additional cell is inserted into the area where the movement target cell is arranged. That is, empty areas are prepared in order and the cells are moved.
図14は、実施の形態4におけるレイアウト支援処理を用いた追加セルの配置を示す説明図である。図14では、まずインバータ回路3が移動対象セルとして選択されたが、インバータ回路3の選択可能範囲1410にはインバータ回路3を挿入可能な空き領域がない。そこで、インバータ回路3を対象セルとして、移動対象セルを選択する。すると、移動対象セルとしてFF回路9が選択される。したがって、FF回路9が選択可能範囲1420の空き領域に移動されると、FF回路9の空き領域にインバータ回路3を挿入して、追加セルを挿入可能な空き領域が確保される。
FIG. 14 is an explanatory diagram showing the arrangement of additional cells using the layout support process in the fourth embodiment. In FIG. 14, the
このように、実施の形態4では、玉突きのように、あらたな移動対象セルを押し出して配置領域を入れ替える。この入れ替えによって生じた空き領域が追加セルの再配置領域として確保される。 As described above, in the fourth embodiment, a new movement target cell is pushed out and the arrangement area is replaced like a ball hit. An empty area generated by this replacement is secured as a rearrangement area for the additional cells.
以上説明したように、本実施の形態によれば、追加セルを配置可能な空き領域が無い場合には、タイミングに影響を与える可能性の低いセルを抽出して、他の空き領域に移動させることによって、追加セルを対象セルの近傍に配置したレイアウトを実現することができる。したがって、レイアウト済みのセルのタイミング関係を崩すことなく所望のセルを追加配置することができ、レイアウト設計者の処理負担を大幅に軽減することができる。 As described above, according to the present embodiment, when there is no free space in which an additional cell can be placed, a cell having a low possibility of affecting the timing is extracted and moved to another free space. Thus, it is possible to realize a layout in which the additional cells are arranged in the vicinity of the target cell. Therefore, a desired cell can be additionally arranged without destroying the timing relationship between the laid-out cells, and the processing load on the layout designer can be greatly reduced.
なお、本実施の形態で説明したレイアウト支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、このプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。 The layout support method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM, an MO, and a DVD, and is executed by being read from the recording medium by the computer. Further, this program may be a medium that can be distributed via a network such as the Internet.
上述した実施の形態に関し、さらに以下の付記を開示する。 The following additional notes are disclosed with respect to the embodiment described above.
(付記1)コンピュータを、
半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する取得手段、
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付手段、
前記追加セルを配置可能な空き領域があるか否かを判断する判断手段、
前記判断手段によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出手段、
前記抽出手段によって抽出された移動対象セルを配置可能な空き領域を探索する探索手段、
前記探索手段によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動手段、
前記移動手段によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置手段、
前記再配置手段によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力手段、
として機能させることを特徴とするレイアウト支援プログラム。
(Appendix 1) Computer
Obtaining means for obtaining layout information representing an arrangement state of a cell group constituting a semiconductor circuit and priority information set in accordance with a type of a cell included in the cell group;
Receiving means for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
Determining means for determining whether or not there is a free area in which the additional cell can be placed;
An extraction means for extracting a movement target cell based on the distance from the arbitrary cell and the priority information when it is determined by the determination means that there is no free area in which the additional cell can be placed;
Search means for searching for a free area in which the movement target cell extracted by the extraction means can be placed,
Moving means for moving the movement target cell to the free area when a free area is searched by the search means;
Relocation means for arranging the additional cell at a position where the movement target cell moved to the empty area by the movement means has been arranged;
Output means for outputting layout information of the semiconductor circuit in which additional cells are arranged by the relocation means;
A layout support program characterized by functioning as
(付記2)前記移動手段は、前記抽出手段によって複数の移動対象セルが抽出された場合、当該複数の移動対象セルのうち、最も入出力数が少ないセルを前記空き領域に移動させることを特徴とする付記1に記載のレイアウト支援プログラム。 (Supplementary note 2) When a plurality of movement target cells are extracted by the extraction unit, the movement unit moves a cell having the smallest number of input / outputs to the empty area among the plurality of movement target cells. The layout support program according to Supplementary Note 1.
(付記3)前記移動手段は、前記抽出手段によって複数の移動対象セルが抽出された場合、当該複数の移動対象セルのうち、他のセルへの駆動電流が大きいセルを前記空き領域に移動させることを特徴とする付記1または2に記載のレイアウト支援プログラム。
(Supplementary Note 3) When a plurality of movement target cells are extracted by the extraction unit, the moving unit moves, among the plurality of movement target cells, a cell having a large driving current to another cell to the empty area. The layout support program according to
(付記4)前記移動手段は、前記抽出手段によって複数の移動対象セルが抽出された場合、当該複数の移動対象セルのうち、前段に接続されたセルからの信号伝搬時間が最も長いセルを前記空き領域に移動させることを特徴とする付記1〜3のいずれか一つに記載のレイアウト支援プログラム。 (Supplementary Note 4) When a plurality of movement target cells are extracted by the extraction unit, the movement unit selects a cell having the longest signal propagation time from the cell connected to the previous stage among the plurality of movement target cells. The layout support program according to any one of appendices 1 to 3, wherein the layout support program is moved to an empty area.
(付記5)前記探索手段は、前記抽出手段によって抽出された移動対象セルから所定の範囲内を対象に当該移動対象セルを配置可能な空き領域を探索することを特徴とする付記1〜4のいずれか一つに記載のレイアウト支援プログラム。 (Additional remark 5) The said search means searches the empty area | region which can arrange | position the said movement object cell for the inside of the predetermined range from the movement object cell extracted by the said extraction means. The layout support program according to any one of the above.
(付記6)前記探索手段は、前記移動対象セルを配置可能な空き領域が探索されなかった場合、当該空き領域が探索されるまで、前記所定の範囲を特定のサイズごとに拡大することを特徴とする付記5に記載のレイアウト支援プログラム。
(Additional remark 6) When the search means does not search for a free area in which the cell to be moved can be arranged, the search means expands the predetermined range for each specific size until the free area is searched. The layout support program according to
(付記7)前記探索手段は、前記移動対象セルの前段に接続されたセルからの伝搬時間に比例した範囲の中から前記移動対象セルを配置可能な空き領域を探索することを特徴とする付記1〜5のいずれか一つに記載のレイアウト支援プログラム。 (Additional remark 7) The said search means searches the empty area | region which can arrange | position the said movement object cell from the range proportional to the propagation time from the cell connected to the front | former stage of the said movement object cell, The additional characteristic characterized by the above-mentioned. The layout support program according to any one of 1 to 5.
(付記8)前記抽出手段は、前記探索手段によって空き領域が探索されなかった場合、さらに、前記抽出された移動対象セルからの距離と、前記優先度情報とに基づいてあらたな移動対象セルを抽出し、
前記探索手段は、前記抽出手段によって抽出されたあらたな移動対象セルを配置可能な空き領域を探索し、
前記移動手段は、前記探索手段によって前記あらたな移動対象セルを配置可能な空き領域が探索された場合、前記あらたな移動対象セルを前記空き領域に移動させ、前記移動対象セルを前記あらたな移動対象セルが配置されていた位置に移動させることを特徴とする付記5〜7のいずれか一つに記載のレイアウト支援プログラム。
(Supplementary Note 8) When the search unit does not search for a free area, the extraction unit further determines a new cell to be moved based on the distance from the extracted cell to be moved and the priority information. Extract and
The search means searches for a free area in which a new cell to be moved extracted by the extraction means can be placed,
The moving means moves the new moving target cell to the empty area when the searching means searches for a free area where the new moving target cell can be arranged, and moves the moving target cell to the new movement. The layout support program according to any one of
(付記9)半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する取得手段と、
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付手段と、
前記追加セルを配置可能な空き領域があるか否かを判断する判断手段と、
前記判断手段によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出手段と、
前記抽出手段によって抽出された移動対象セルを配置可能な空き領域を探索する探索手段と、
前記探索手段によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動手段と、
前記移動手段によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置手段と、
前記再配置手段によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力手段と、
を備えることを特徴とするレイアウト支援装置。
(Supplementary Note 9) Acquisition means for acquiring layout information indicating an arrangement state of a cell group constituting a semiconductor circuit, and priority information set according to a type of a cell included in the cell group;
Receiving means for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
Determining means for determining whether there is a free area in which the additional cell can be placed;
An extraction means for extracting a movement target cell based on the distance from the arbitrary cell and the priority information when it is determined by the determination means that there is no free area in which the additional cell can be arranged;
Search means for searching for a free area where the movement target cell extracted by the extraction means can be arranged;
When a free area is searched by the search means, moving means for moving the movement target cell to the free area;
Relocation means for arranging the additional cell at a position where the movement target cell moved to the empty area by the movement means is arranged;
Output means for outputting layout information of the semiconductor circuit in which additional cells are arranged by the rearrangement means;
A layout support apparatus comprising:
(付記10)コンピュータが、
半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する取得工程と、
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付工程と、
前記追加セルを配置可能な空き領域があるか否かを判断する判断工程と、
前記判断工程によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出工程と、
前記抽出工程によって抽出された移動対象セルを配置可能な空き領域を探索する探索工程と、
前記探索工程によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動工程と、
前記移動工程によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置工程と、
前記再配置工程によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力工程と、
を実行することを特徴とするレイアウト支援方法。
(Supplementary note 10)
An acquisition step of acquiring layout information representing an arrangement state of a cell group constituting a semiconductor circuit, and priority information set according to a type of a cell included in the cell group,
An accepting step for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
A determination step of determining whether there is a free area in which the additional cell can be placed;
When it is determined by the determination step that there is no free space in which the additional cell can be arranged, an extraction step of extracting a movement target cell based on the distance from the arbitrary cell and the priority information;
A search step for searching for a free area where the movement target cell extracted by the extraction step can be arranged;
When an empty area is searched by the search step, a movement step of moving the movement target cell to the empty area;
A rearrangement step of arranging the additional cell at a position where the movement target cell moved to the empty area by the movement step is arranged;
An output step of outputting layout information of the semiconductor circuit in which additional cells are arranged by the rearrangement step;
A layout support method characterized by executing
100 レイアウト支援装置
101 レイアウト情報
102 優先度情報
103 追加セル情報
104 レイアウト情報(追加セルを含む)
301 取得部
302 受付部
303 判断部
304 抽出部
305 探索部
306 移動部
307 再配置部
308 出力部
DESCRIPTION OF
301 Acquiring
Claims (7)
半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する取得手段、
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付手段、
前記追加セルを配置可能な空き領域があるか否かを判断する判断手段、
前記判断手段によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出手段、
前記抽出手段によって抽出された移動対象セルを配置可能な空き領域を探索する探索手段、
前記探索手段によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動手段、
前記移動手段によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置手段、
前記再配置手段によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力手段、
として機能させることを特徴とするレイアウト支援プログラム。 Computer
Obtaining means for obtaining layout information representing an arrangement state of a cell group constituting a semiconductor circuit and priority information set in accordance with a type of a cell included in the cell group;
Receiving means for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
Determining means for determining whether or not there is a free area in which the additional cell can be placed;
An extraction means for extracting a movement target cell based on the distance from the arbitrary cell and the priority information when it is determined by the determination means that there is no free area in which the additional cell can be placed;
Search means for searching for a free area in which the movement target cell extracted by the extraction means can be placed,
Moving means for moving the movement target cell to the free area when a free area is searched by the search means;
Relocation means for arranging the additional cell at a position where the movement target cell moved to the empty area by the movement means has been arranged;
Output means for outputting layout information of the semiconductor circuit in which additional cells are arranged by the relocation means;
A layout support program characterized by functioning as
前記探索手段は、前記抽出手段によって抽出されたあらたな移動対象セルを配置可能な空き領域を探索し、
前記移動手段は、前記探索手段によって前記あらたな移動対象セルを配置可能な空き領域が探索された場合、前記あらたな移動対象セルを前記空き領域に移動させ、前記移動対象セルを前記あらたな移動対象セルが配置されていた位置に移動させることを特徴とする請求項2〜4のいずれか一つに記載のレイアウト支援プログラム。 If the search means does not search for an empty area, the extraction means further extracts a new movement target cell based on the distance from the extracted movement target cell and the priority information,
The search means searches for a free area in which a new cell to be moved extracted by the extraction means can be placed,
The moving means moves the new moving target cell to the empty area when the searching means searches for a free area where the new moving target cell can be arranged, and moves the moving target cell to the new movement. The layout support program according to any one of claims 2 to 4, wherein the program is moved to a position where the target cell has been arranged.
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付手段と、
前記追加セルを配置可能な空き領域があるか否かを判断する判断手段と、
前記判断手段によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出手段と、
前記抽出手段によって抽出された移動対象セルを配置可能な空き領域を探索する探索手段と、
前記探索手段によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動手段と、
前記移動手段によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置手段と、
前記再配置手段によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力手段と、
を備えることを特徴とするレイアウト支援装置。 Obtaining means for obtaining layout information representing an arrangement state of a cell group constituting a semiconductor circuit, and priority information set in accordance with a type of a cell included in the cell group;
Receiving means for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
Determining means for determining whether there is a free area in which the additional cell can be placed;
An extraction means for extracting a movement target cell based on the distance from the arbitrary cell and the priority information when it is determined by the determination means that there is no free area in which the additional cell can be arranged;
Search means for searching for a free area where the movement target cell extracted by the extraction means can be arranged;
When a free area is searched by the search means, moving means for moving the movement target cell to the free area;
Relocation means for arranging the additional cell at a position where the movement target cell moved to the empty area by the movement means is arranged;
Output means for outputting layout information of the semiconductor circuit in which additional cells are arranged by the rearrangement means;
A layout support apparatus comprising:
半導体回路を構成するセル群の配置状態を表すレイアウト情報と、前記セル群に含まれるセルの種類に応じて設定された優先度情報と、を取得する取得工程と、
前記レイアウト情報に含まれるセル群の中の任意のセルに対応して配置させる追加セルの情報を受け付ける受付工程と、
前記追加セルを配置可能な空き領域があるか否かを判断する判断工程と、
前記判断工程によって、前記追加セルを配置可能な空き領域がないと判断された場合、前記任意のセルからの距離と前記優先度情報とに基づいて、移動対象セルを抽出する抽出工程と、
前記抽出工程によって抽出された移動対象セルを配置可能な空き領域を探索する探索工程と、
前記探索工程によって空き領域が探索された場合、前記移動対象セルを前記空き領域に移動させる移動工程と、
前記移動工程によって前記空き領域に移動された移動対象セルが配置されていた位置に、前記追加セルを配置する再配置工程と、
前記再配置工程によって追加セルが配置された前記半導体回路のレイアウト情報を出力する出力工程と、
を実行することを特徴とするレイアウト支援方法。 Computer
An acquisition step of acquiring layout information representing an arrangement state of a cell group constituting a semiconductor circuit, and priority information set according to a type of a cell included in the cell group,
An accepting step for receiving information of an additional cell to be arranged corresponding to an arbitrary cell in the cell group included in the layout information;
A determination step of determining whether there is a free area in which the additional cell can be placed;
When it is determined by the determination step that there is no free space in which the additional cell can be arranged, an extraction step of extracting a movement target cell based on the distance from the arbitrary cell and the priority information;
A search step for searching for a free area where the movement target cell extracted by the extraction step can be arranged;
When an empty area is searched by the search step, a movement step of moving the movement target cell to the empty area;
A rearrangement step of arranging the additional cell at a position where the movement target cell moved to the empty area by the movement step is arranged;
An output step of outputting layout information of the semiconductor circuit in which additional cells are arranged by the rearrangement step;
A layout support method characterized by executing
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009047043A JP2010204749A (en) | 2009-02-27 | 2009-02-27 | Layout support program, layout support device, and layout support method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2009047043A JP2010204749A (en) | 2009-02-27 | 2009-02-27 | Layout support program, layout support device, and layout support method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2010204749A true JP2010204749A (en) | 2010-09-16 |
Family
ID=42966195
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009047043A Pending JP2010204749A (en) | 2009-02-27 | 2009-02-27 | Layout support program, layout support device, and layout support method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2010204749A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109376384A (en) * | 2018-09-14 | 2019-02-22 | 深圳市紫光同创电子有限公司 | A kind of FPGA resource layout method and device |
-
2009
- 2009-02-27 JP JP2009047043A patent/JP2010204749A/en active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109376384A (en) * | 2018-09-14 | 2019-02-22 | 深圳市紫光同创电子有限公司 | A kind of FPGA resource layout method and device |
| CN109376384B (en) * | 2018-09-14 | 2023-02-28 | 深圳市紫光同创电子有限公司 | FPGA resource layout method and device |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2011242821A (en) | Information processing apparatus and method, and program | |
| JP4769687B2 (en) | Timing verification method, timing verification apparatus, and timing verification program | |
| JP2010066787A (en) | Verification support program, verification support device and verification support method | |
| US20050251776A1 (en) | Integrated circuit design system | |
| JP2010204749A (en) | Layout support program, layout support device, and layout support method | |
| US7911466B2 (en) | Method and apparatus for editing timing diagram, and computer product | |
| KR100864177B1 (en) | Apparatus and method for inputting Hangul | |
| JP2012203653A (en) | Information terminal, display control method, and display control program | |
| JP5640790B2 (en) | Verification support program, verification support apparatus, and verification support method | |
| JP5263393B2 (en) | Design support method, design support apparatus, and design support program | |
| US20080209368A1 (en) | Layout design method, layout design apparatus, and computer product | |
| JP6221275B2 (en) | Character input program and character input device | |
| JP6233064B2 (en) | Input device, input method, and input program | |
| US7634750B2 (en) | Logic diagram display method, program, and apparatus | |
| JP4759419B2 (en) | Delay analysis program, recording medium, delay analysis method, and delay analysis apparatus | |
| JP5212218B2 (en) | Design support program, design support apparatus, and design support method | |
| US20170257521A1 (en) | Electronic apparatus and display method of electronic apparatus | |
| US11501475B2 (en) | Graphical representation of electronic circuit operation | |
| JP5263066B2 (en) | Design support program, design support apparatus, and design support method | |
| JP2013097646A (en) | Information processor and information processing method | |
| JP2011164924A (en) | Program and information processing apparatus | |
| JP5825409B2 (en) | Verification support program, verification support apparatus, and verification support method | |
| JP2016200896A (en) | Character input method, device and program | |
| JP2015210694A (en) | Authoring device, method, and program | |
| JP2015210703A (en) | Cad device, cell and layout method |