JP4778339B2 - Automatic placement method, apparatus, and program - Google Patents

Automatic placement method, apparatus, and program Download PDF

Info

Publication number
JP4778339B2
JP4778339B2 JP2006081702A JP2006081702A JP4778339B2 JP 4778339 B2 JP4778339 B2 JP 4778339B2 JP 2006081702 A JP2006081702 A JP 2006081702A JP 2006081702 A JP2006081702 A JP 2006081702A JP 4778339 B2 JP4778339 B2 JP 4778339B2
Authority
JP
Japan
Prior art keywords
cell
input side
adjustment
net
side cell
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.)
Expired - Fee Related
Application number
JP2006081702A
Other languages
Japanese (ja)
Other versions
JP2007257373A (en
Inventor
一之 小杉
聖子 大崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006081702A priority Critical patent/JP4778339B2/en
Publication of JP2007257373A publication Critical patent/JP2007257373A/en
Application granted granted Critical
Publication of JP4778339B2 publication Critical patent/JP4778339B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するための技術に関する。   The present invention automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net in which a timing error has occurred in a net connecting cells of the designed electronic circuit. Related to technology.

現在では、電子回路の設計はCADを用いて行われるのが普通である。CADでは、電子回路の機能的、或いは論理的な単位となる素子、或いは部品は基本素子(セル)としてライブラリに登録させている。このことから、論理設計は、基本的に、ライブラリに登録されたセルのなかで必要なセルを選択し、その選択したセル同士を接続させることで行われる。セル同士の接続は、それらがそれぞれ持つピンとピンを結ぶことで行われる。   At present, electronic circuits are usually designed using CAD. In CAD, elements or components that are functional or logical units of an electronic circuit are registered in a library as basic elements (cells). For this reason, logical design is basically performed by selecting necessary cells from the cells registered in the library and connecting the selected cells. The cells are connected by connecting the pins of each cell.

電子回路の設計では、デザインの比較的に小さな変更が行われる。そのようなデザイン変更はECO(engineering change orders)と呼ばれる。そのECOは、セル間を接続するネットで発生したタイミングエラー(信号を取り込むタイミングが早すぎるか否か確認するホールドタイムチェックでのエラー)の修正のために行われることが多い。その修正は普通、ネット上に信号を遅延させる調整用セル(通常はバッファ)を追加することで行われる。そのような調整用セルの追加では、既存のデザインからはそれが挿入された箇所の配線のみが変更されることになる。   In the design of electronic circuits, relatively small changes in the design are made. Such design changes are called ECO (engineering change orders). The ECO is often performed to correct a timing error (an error in a hold time check for checking whether or not a signal capturing timing is too early) generated in a net connecting cells. The correction is usually done by adding an adjustment cell (usually a buffer) that delays the signal on the net. When such an adjustment cell is added, only the wiring where the cell is inserted is changed from the existing design.

図1は、ECOが行われる場合の一般的な設計処理の流れを説明する図である。ここで図1を参照して、その設計処理の一般的な流れについて具体的に説明する。
ステップS1の論理合成では、ハードウェア記述言語で表現したRTL(register transfer level)記述、真理値表、状態遷移記述、(特定の半導体製造技術に依存しない)論理式などを入力して、最適なゲート・レベル論理回路(ネットリスト)が自動生成される。ステップS2のレイアウト処理では、ネットリストを読み込み、セルの配置の決定や配線の配置といったことが行われ、デザインが確定される。そのデザインを表すデータは配置配線データベースに格納される。このときにセルはインスタンス化される。
FIG. 1 is a diagram illustrating a general design process flow when ECO is performed. Here, the general flow of the design process will be specifically described with reference to FIG.
In the logic synthesis in step S1, an RTL (register transfer level) description expressed in a hardware description language, a truth table, a state transition description, a logical expression (which does not depend on a specific semiconductor manufacturing technology), etc. A gate level logic circuit (net list) is automatically generated. In the layout process of step S2, the net list is read, cell placement determination and wiring placement are performed, and the design is finalized. Data representing the design is stored in a placement and routing database. At this time, the cell is instantiated.

ステップS3では、配置された配線の抵抗、容量の各値を算出する。ステップS4では、電子回路の遅延を計算で見積もり,見積もった遅延値を用いて、信号が伝搬していく時間差によって不具合(誤動作など)が生じるか否か確認するための静的タイミング解析(STA)を行う。ステップS5では、そのSTAによって見つかったタイミングエラー(ここではホールド・タイミングエラー)を発生させる配線(ネット)を示すパス(path)情報、及び実際の遅延を示すスラック(Slack)情報を出力する。ステップS6では、タイミングエラーを修正するためのタイミング調整を行い、その調整内容を示すECOリストD1が作成される。そのECOリストD1は、対象ネットを例えばインスタンス名とピン(端子)名で記述したものである。ECOはステップS2のレイアウト処理で行われる。   In step S3, each value of resistance and capacitance of the arranged wiring is calculated. In step S4, the delay of the electronic circuit is estimated by calculation, and using the estimated delay value, static timing analysis (STA) for confirming whether a malfunction (malfunction or the like) occurs due to a time difference in which the signal propagates. I do. In step S5, path information indicating a wiring (net) that generates a timing error (here, hold timing error) found by the STA, and slack information indicating an actual delay are output. In step S6, timing adjustment for correcting the timing error is performed, and an ECO list D1 indicating the adjustment content is created. The ECO list D1 describes the target net with, for example, an instance name and a pin (terminal) name. ECO is performed in the layout process of step S2.

タイミングエラーが発生しているネット上に調整用セルを挿入可能なエリアが存在しているとは限らない。他のセルや配線によってエリアが存在しない場合がある。このことから、特許文献1に記載された従来技術のように、配線上で調整用セルを配置可能な位置を探索して挿入位置(挿入ポイント)を決定することが行われている。しかし、その探索に要する負荷は重いのが実情である。その探索を行うべき配線の数が多くなると、負荷は非常に重くなり、膨大な処理時間が必要となる。また、探索を行っても挿入可能なエリアを探し出せるか否かは判らない。このようなことから、調整用セルを挿入可能なエリアの探索精度を維持させつつ、負荷を軽減させることが重要であると考えられる。   There is not always an area where an adjustment cell can be inserted on a net where a timing error has occurred. The area may not exist due to another cell or wiring. For this reason, as in the prior art described in Patent Document 1, a position where an adjustment cell can be arranged on a wiring is searched to determine an insertion position (insertion point). However, in reality, the load required for the search is heavy. If the number of wirings to be searched for increases, the load becomes very heavy and enormous processing time is required. In addition, it is not known whether or not an area where insertion can be performed can be found even after searching. For this reason, it is considered important to reduce the load while maintaining the search accuracy of the area where the adjustment cell can be inserted.

設計の対象となる電子回路の多くは、半導体チップ(基板)上に形成される半導体集積回路である。近年のディープサブミクロン半導体集積回路の設計では、回路の高集積化、高速化が進むにつれ、タイミングエラーを短TAT(ターンアラウンドタイム)で修正するのが困難になってきている。これは、タイミングエラーを修正するためのデザイン変更によって他のタイミングエラーを発生させることが起こりやすいためである。そのために、デザイン変更を再度、行うイタレーションを繰り返すことも多いのが実情である。このことから、調整用セルを挿入可能なエリアの探索では、その調整用セルの挿入によって生じる影響を考慮することも重要であると考えられる。
特開2001−168199号公報 特開2000−269347号公報
Many electronic circuits to be designed are semiconductor integrated circuits formed on a semiconductor chip (substrate). In recent designs of deep submicron semiconductor integrated circuits, it has become difficult to correct timing errors with a short TAT (turnaround time) as the circuit becomes more highly integrated and faster. This is because another timing error is likely to occur due to a design change for correcting the timing error. For this reason, it is often the case that iterations for design changes are repeated. For this reason, in the search for the area where the adjustment cell can be inserted, it is considered important to consider the influence caused by the insertion of the adjustment cell.
JP 2001-168199 A JP 2000-269347 A

本発明は、より軽い負荷で探索精度を維持した調整用セルの挿入可能なエリア(挿入ポイント)を探索するための技術を提供することを第1の目的とする。
また、本発明は、調整用セルの挿入によって生じる影響を考慮して、その調整用セルの挿入可能なエリア(挿入ポイント)を探索するための技術を提供することを第2の目的とする。
A first object of the present invention is to provide a technique for searching for an area (insertion point) in which an adjustment cell can be inserted while maintaining search accuracy with a lighter load.
In addition, a second object of the present invention is to provide a technique for searching for an area (insertion point) in which the adjustment cell can be inserted in consideration of the influence caused by the insertion of the adjustment cell.

本発明の第1〜第3の態様の自動配置方法は共に、設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するための方法であって、それぞれ以下のように調整用セルを挿入すべき位置の決定を行う。   Both the automatic placement methods of the first to third aspects of the present invention are inserted for timing adjustment on a target net in which a timing error has occurred in a net connecting cells of the designed electronic circuit. This is a method for automatically determining the position of the power adjustment cell, and the position where the adjustment cell is to be inserted is determined as follows.

第1の態様の自動配置方法では、電子回路が形成される基板を複数のエリアに分割して、該エリア毎に調整用セルを挿入できる余裕度を事前に評価し、対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に調整用セルを挿入可能か否か判定し、調整用セルを挿入可能と判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う。   In the automatic arrangement method according to the first aspect, the substrate on which the electronic circuit is formed is divided into a plurality of areas, and a margin for inserting the adjustment cell for each area is evaluated in advance, and the area where the target net exists Based on the margin evaluated in step 1, it is determined whether or not an adjustment cell can be inserted on the target net, and the adjustment cell should be inserted for the target net that is determined to be able to insert the adjustment cell. Determine the position.

第2の態様の自動配置方法では、対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方の近傍に調整用セルを挿入可能か否か確認すると共に、該一方の近傍に該調整用セルを挿入すべき状況か否か確認し、該確認によって、一方の近傍に調整用セルが挿入可能であり、且つ該調整用セルを挿入すべき状況であることが判明した場合に、該調整用セルを挿入すべき位置として該一方の近傍を選択し決定する。   In the automatic placement method of the second aspect, it is confirmed whether or not the adjustment cell can be inserted in the vicinity of at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal. , Confirming whether or not the adjustment cell should be inserted in the vicinity of the one, and by the confirmation, the adjustment cell can be inserted in the vicinity of the one and the adjustment cell should be inserted If it is found, the vicinity of the one is selected and determined as the position where the adjustment cell is to be inserted.

第3の態様の自動配置方法では、対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合に、該複数のネットセグメントをネットセグメントの長さによって分け、該ネットセグメントのなかで長さが長いネットセグメントを優先させる形で、調整用セルを挿入すべきネットセグメントを選択し決定する。   In the automatic placement method according to the third aspect, when the target net is formed of a plurality of layers and is composed of a plurality of net segments, the plurality of net segments are divided according to the length of the net segment, A net segment into which an adjustment cell is to be inserted is selected and determined in such a manner that a net segment having a long length is given priority among the segments.

本発明の自動配置装置は、設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するものであって、電子回路が形成される基板を複数のエリアに分割して、該エリア毎に調整用セルを挿入できる余裕度を事前に評価する評価手段と、対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に調整用セルを挿入可能か否か判定する判定手段と、調整用セルを挿入可能と判定手段が判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う配置決定手段と、を具備する。   The automatic placement apparatus of the present invention automatically positions the adjustment cell to be inserted for timing adjustment on the target net in which the timing error has occurred in the net connecting the cells of the designed electronic circuit. There is an evaluation means for dividing a substrate on which an electronic circuit is formed into a plurality of areas and evaluating a margin for inserting an adjustment cell for each area, and a target net. Based on the margin evaluated in the area, a determination unit that determines whether or not an adjustment cell can be inserted on the target net, and a target net that is determined by the determination unit that the adjustment cell can be inserted Arrangement determining means for determining a position where the adjustment cell is to be inserted.

本発明のプログラムは、設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するためにコンピュータに実行させるプログラムであって、電子回路が形成される基板を複数のエリアに分割して、該エリア毎に調整用セルを挿入できる余裕度を事前に評価する評価機能と、対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に調整用セルを挿入可能か否か判定する判定機能と、調整用セルを挿入可能と判定機能により判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う配置決定機能と、を実現させる。   The program of the present invention automatically determines the position of the adjustment cell to be inserted for timing adjustment on the target net where the timing error has occurred in the net connecting the cells of the designed electronic circuit. A program executed by a computer to divide a substrate on which an electronic circuit is formed into a plurality of areas, and an evaluation function that evaluates in advance the margin for inserting an adjustment cell for each area; Based on the margin evaluated in the area where the net exists, the determination function that determines whether or not the adjustment cell can be inserted on the target net, and the target net determined by the determination function that the adjustment cell can be inserted Thus, an arrangement determining function for determining a position where the adjustment cell is to be inserted is realized.

本発明では、電子回路が形成される基板を複数のエリアに分割して、エリア毎に調整用セルを挿入できる余裕度を事前に評価し、対象ネットが存在するエリアで評価した余裕度に基づいて、対象ネット上に調整用セルを挿入可能か否か判定することにより、調整用セルを挿入可能と判定した対象ネットのみを対象にして、調整用セルを挿入すべき位置の決定を行う。対象ネット上で挿入すべき位置を探す探索には負荷が重く、対象ネットの数が多くなれば負荷は極めて重くなり、膨大な処理時間が必要となる。しかし、比較的に軽い負荷で求められる余裕度によって、調整用セルの挿入可能な対象ネットを選別する(絞り込む)ようにした場合には、無駄な探索を行うことを回避できるようになる。この結果、調整用セルの挿入可能なエリア(挿入ポイント)の決定(探索)は、探索精度を維持しながらより軽い負荷で行えるようになる。   In the present invention, the substrate on which the electronic circuit is formed is divided into a plurality of areas, and a margin for inserting the adjustment cell for each area is evaluated in advance, and based on the margin evaluated in the area where the target net exists. Thus, by determining whether or not the adjustment cell can be inserted on the target net, the position where the adjustment cell is to be inserted is determined only for the target net for which it has been determined that the adjustment cell can be inserted. A search for searching for a position to be inserted on the target net has a heavy load. If the number of target nets increases, the load becomes extremely heavy, and an enormous processing time is required. However, if the target net into which the adjustment cell can be inserted is selected (restricted) based on the margin required with a relatively light load, it is possible to avoid performing a useless search. As a result, the area (insertion point) in which the adjustment cell can be inserted can be determined (searched) with a lighter load while maintaining the search accuracy.

本発明では、対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方の近傍に調整用セルを挿入可能か否か確認すると共に、該一方の近傍に該調整用セルを挿入すべき状況か否か確認し、その確認によって、一方の近傍に調整用セルが挿入可能であり、且つ該調整用セルを挿入すべき状況であることが判明した場合に、調整用セルを挿入すべき位置としてその一方の近傍を選択し決定する。出力側セル、或いは入力側セルの近傍に調整用セルを配置することにより、その配置(挿入)によって対象ネットに生じる抵抗値や容量値の変化を最小限に抑えることができる。その近傍への配置は、その配置を行うべき状況であった場合、つまりその配置によって別の不具合が生じない、その不具合が生じる可能性が小さい状況下で行うため、調整用セルの配置(挿入)によって生じる影響も最小限に抑えることができる。これらの結果、調整用セルの配置によって別のタイミングエラーを発生させるようなことはより確実に回避できるようになり、それによってイタレーションの発生も最小限に抑えられるようになる。   In the present invention, it is confirmed whether or not the adjustment cell can be inserted in the vicinity of at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal. When it is determined whether or not the adjustment cell should be inserted, and it is found that the adjustment cell can be inserted in the vicinity of one of the confirmation cells and the adjustment cell should be inserted Then, one of the neighbors is selected and determined as the position where the adjustment cell is to be inserted. By arranging the adjustment cell in the vicinity of the output side cell or the input side cell, it is possible to minimize changes in the resistance value and the capacitance value generated in the target net by the placement (insertion). Placement of the cell for adjustment (insertion) is performed in the vicinity where the placement is to be performed, that is, in a situation where the placement does not cause another failure and the possibility of the failure is small. ) Can also be minimized. As a result, it is possible to more reliably avoid the occurrence of another timing error due to the arrangement of the adjustment cells, thereby minimizing the occurrence of iteration.

本発明では、対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合に、該複数のネットセグメントをネットセグメントの長さによって分け、該ネットセグメントのなかで長さが長いネットセグメントを優先させる形で、調整用セルを挿入すべきネットセグメントを選択し決定する。調整用セルの挿入には或る程度のネットセグメントの長さが必要である。そのため、調整用セルを挿入可能なネットセグメントをより高速に探し出すことができる。   In the present invention, when the target net is formed of a plurality of layers by being formed in a plurality of layers, the plurality of net segments are divided according to the length of the net segment, and the length of the net segment is The net segment into which the adjustment cell is to be inserted is selected and determined in such a manner that the net segment having a longer length is prioritized. A certain net segment length is required to insert the adjustment cell. Therefore, it is possible to search for a net segment into which the adjustment cell can be inserted at higher speed.

以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図2は、本実施の形態による自動配置装置を搭載した自動レイアウト処理装置の構成を説明する図である。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 2 is a diagram for explaining the configuration of an automatic layout processing apparatus equipped with the automatic placement apparatus according to the present embodiment.

そのレイアウト処理装置は、図2に示すように、ユーザである設計者がデータ入力を行うための入力処理部31と、表示装置に表示させるべき情報を表示させるための表示制御部32と、自動レイアウト処理を実行する自動レイアウト処理部33と、タイミングエラーが発生した配線(ネット)上で調整用セルを挿入すべき位置の決定を自動的に行う自動配置処理部34と、各種データやプログラムを記憶可能な記憶部35と、を備えた構成となっている。   As shown in FIG. 2, the layout processing apparatus includes an input processing unit 31 for inputting data by a designer as a user, a display control unit 32 for displaying information to be displayed on the display device, an automatic An automatic layout processing unit 33 that executes layout processing, an automatic placement processing unit 34 that automatically determines a position where an adjustment cell should be inserted on a wiring (net) in which a timing error has occurred, and various data and programs And a storage unit 35 that can store the data.

自動レイアウト処理部54は、図1に示すステップS2〜S5の設計処理を行えるものである。入力処理部31を介して設計者が指示した設計処理を行う。ステップS2のレイアウト処理を実行することで確定したデザインのデータは配置配線データベース(DB)に格納される。そのDBは記憶部35上に構築されている。   The automatic layout processing unit 54 can perform the design process of steps S2 to S5 shown in FIG. A design process instructed by the designer via the input processing unit 31 is performed. The design data determined by executing the layout process in step S2 is stored in a placement and routing database (DB). The DB is constructed on the storage unit 35.

図3は、上記自動レイアウト処理装置として用いることが可能なコンピュータのハードウェア構成を説明する図である。図2についての詳細な説明の前に、自動レイアウト処理装置として用いることが可能なコンピュータの構成について具体的に説明する。   FIG. 3 is a diagram for explaining a hardware configuration of a computer that can be used as the automatic layout processing apparatus. Prior to the detailed description of FIG. 2, the configuration of a computer that can be used as an automatic layout processing apparatus will be specifically described.

図3に示すコンピュータは、CPU61、メモリ62、入力装置63、出力装置64、外部記憶装置65、媒体駆動装置66、及びネットワーク接続装置67を有し、これらがバス68によって互いに接続された構成となっている。同図に示す構成は一例であり、これに限定されるものではない。   The computer shown in FIG. 3 has a CPU 61, a memory 62, an input device 63, an output device 64, an external storage device 65, a medium drive device 66, and a network connection device 67, which are connected to each other by a bus 68. It has become. The configuration shown in the figure is an example, and the present invention is not limited to this.

CPU61は、当該コンピュータ全体を制御するものである。メモリ62は、プログラム実行、データ更新等の際に、外部記憶装置65(あるいは可搬型の記録媒体MD)に記憶されているプログラムあるいはデータを一時的に格納するRAM等のメモリである。CPU61は、プログラムをメモリ62に読み出して実行することにより、全体の制御を行う。   The CPU 61 controls the entire computer. The memory 62 is a memory such as a RAM that temporarily stores a program or data stored in the external storage device 65 (or the portable recording medium MD) during program execution, data update, or the like. The CPU 61 performs overall control by reading the program into the memory 62 and executing it.

入力装置63は、例えば、キーボード、マウス等の外部入力装置と接続可能なものか、或いはそれらを有するものである。そのような外部入力装置に対するユーザの操作を検出し、その検出結果をCPU61に通知する。   The input device 63 can be connected to or has an external input device such as a keyboard and a mouse, for example. The user's operation on such an external input device is detected, and the detection result is notified to the CPU 61.

出力装置64は、例えばディスプレイと接続可能なものか、或いはそれを有するものである。CPU61の制御によって送られてくるデータをディスプレイ上に出力させる。
ネットワーク接続装置67は、例えばLAN、或いはインターネット等の通信ネットワークを介して、他の装置と通信を行うためのものである。外部記憶装置65は、例えばハードディスク装置である。主に各種データやプログラムの保存に用いられる。
The output device 64 can be connected to, for example, a display, or has the same. The data sent under the control of the CPU 61 is output on the display.
The network connection device 67 is for communicating with other devices via a communication network such as a LAN or the Internet. The external storage device 65 is, for example, a hard disk device. Mainly used for storing various data and programs.

媒体駆動装置66は、光ディスクや光磁気ディスク等の可搬型の記録媒体MDにアクセスするものである。
図2に示す自動レイアウト処理装置は、CPU61が、例えば外部記憶装置65に格納されたプログラムをメモリ62に読み出して実行することで実現される。そのプログラムは、ネットワーク接続装置67が通信ネットワークを介して取得したもの、或いは媒体駆動装置66が記録媒体MDから読み出したものであっても良い。
The medium driving device 66 accesses a portable recording medium MD such as an optical disk or a magneto-optical disk.
The automatic layout processing device shown in FIG. 2 is realized by the CPU 61 reading out, for example, a program stored in the external storage device 65 to the memory 62 and executing it. The program may be acquired by the network connection device 67 via a communication network, or read by the medium driving device 66 from the recording medium MD.

図2に示す自動配置処理部34は、マップ作成部41、探索部42、及びリスト作成部43を備えている。それらは以下のような処理を行う。
電子回路を構成するセルが基板上に高密度に配置されるほど、空いたスペースは小さくなる。しかし、実装密度は一様であるとは限らない。これらのことに着目し、本実施の形態では、設計された電子回路が形成される基板を複数のエリアに分割し、エリア毎に調整用セルを挿入できる余裕度を事前に評価するようにしている。その評価を行うのがマップ作成部41である。その余裕度の評価は、エリア毎にセル、或いは配線が存在しない面積(空きスペース)が全体に占める割合を算出することで行っている。以降、その割合を「空きスペース率」(%)、その空きスペース率を求めるエリアを「ブロック」とそれぞれ呼ぶことにする。
The automatic arrangement processing unit 34 illustrated in FIG. 2 includes a map creation unit 41, a search unit 42, and a list creation unit 43. They perform the following processing.
The higher the density of the cells constituting the electronic circuit on the substrate, the smaller the vacant space. However, the mounting density is not always uniform. Focusing on these points, in the present embodiment, the substrate on which the designed electronic circuit is formed is divided into a plurality of areas, and the margin for inserting the adjustment cell for each area is evaluated in advance. Yes. The map creation unit 41 performs the evaluation. The evaluation of the margin is performed by calculating the ratio of the area (vacant space) where no cell or wiring exists for each area to the whole. Hereinafter, the ratio is referred to as “free space rate” (%), and the area for which the free space rate is obtained is referred to as “block”.

図6は、分割されたブロック、及びその空きスペース率を説明する図である。その図6では、各枠はそれぞれブロックを表し、そのブロックの空きスペース率は枠内の模様によって表している。ここでは、空きスペース率が0、つまり空きスペース無し、空きスペース率が50%未満(より正確には50>空きスペース率>0)、空きスペース率が50%以上の3種類に分けてブロックの空きスペース率を表している。   FIG. 6 is a diagram for explaining the divided blocks and their empty space ratios. In FIG. 6, each frame represents a block, and the empty space rate of the block is represented by a pattern in the frame. Here, the free space rate is 0, that is, there is no free space, the free space rate is less than 50% (more precisely, 50> free space rate> 0), and the free space rate is 50% or more. Represents the free space rate.

調整用セルは、他のセルに重ならないように配置しなければならない。セル間の接続はピンとピンを結ぶことで行われる。配線はそのピン間に配置される。このことから、本実施の形態では、ブロックへの分割はそれぞれがセルの1つのピンを含むように行っている(図12)。セルのピンについては以降「端子」とも呼ぶことにする。信号を出力する側の端子はソース(source)端子、その信号を入力する側の端子はシンク(sink)端子と呼ぶことにする。   The adjustment cell must be arranged so as not to overlap other cells. Connection between cells is made by connecting pins. The wiring is placed between the pins. Therefore, in this embodiment, the division into blocks is performed so that each includes one pin of the cell (FIG. 12). The cell pins are hereinafter also referred to as “terminals”. A terminal that outputs a signal is called a source terminal, and a terminal that inputs the signal is called a sink terminal.

図7は、空きスペースマップの記述方法を説明する図である。
各ブロックにはそれぞれセルが持つ1つのピン(端子)が存在している。このことから、空きスペースマップの記述では、セルを表すインスタンス名、及びそれが持つ1つのピンの名前をブロック識別用の情報として用いて、ブロック毎に空きスペース率を記述する方法を採用している。図7で1行目に記述された「TOP/CellA.IN 90%」では、「TOP/CellA」はインスタンス名、「IN」はピン名、「90%」は空きスペース率、をそれぞれ表している。
FIG. 7 is a diagram for explaining a description method of an empty space map.
Each block has one pin (terminal) that each cell has. Therefore, in the description of the free space map, a method of describing the free space rate for each block using the instance name representing the cell and the name of one pin of the cell as information for block identification is adopted. Yes. In “TOP / CellA.IN 90%” described in the first line in FIG. 7, “TOP / CellA” represents an instance name, “IN” represents a pin name, and “90%” represents an empty space rate. Yes.

配置配線DBには、セルに関する情報やその配置情報が格納されている。マップ作成部41はその配置配線DBを参照して、それぞれがセルの持つ1つのピンを含むように各ブロックの形状、及びその位置を決定し、空きスペース率を計算する。そのようにして空きスペースマップの作成を行う。   The placement and wiring DB stores information about cells and placement information thereof. The map creation unit 41 refers to the placement and routing DB, determines the shape and position of each block so as to include one pin of each cell, and calculates the free space rate. In this way, an empty space map is created.

探索部42は、タイミングエラーが発生した配線(ネット)毎に、調整用セルを挿入すべき位置(挿入ポイント)を探索する処理を行う。その探索は、対象ネットが存在するブロックの空きスペース率が予め定めた閾値より大きい場合にのみ行う。その閾値は、空きスペース率と、調整用セルの挿入可能なスペース(挿入ポイント)が実際に見つかる確率との関係を考慮して決定したものである。それにより、挿入ポイントを探し出せることが見込める場合にのみ、その挿入ポイントの探索を行う。   The search unit 42 performs a process of searching for a position (insertion point) where the adjustment cell is to be inserted for each wiring (net) in which a timing error has occurred. The search is performed only when the free space rate of the block in which the target net exists is larger than a predetermined threshold value. The threshold value is determined in consideration of the relationship between the empty space rate and the probability of actually finding a space (insertion point) in which an adjustment cell can be inserted. As a result, the insertion point is searched only when it can be expected to find the insertion point.

そのようにして、調整用セルを挿入すべき対象ネットのなかで可能性が期待できないものを除外し、その可能性が期待できる挿入ポイントのみに限定して探索を行う。そのような絞り込みを行うため、挿入ポイントの探索に要する負荷はより軽減させることができる。その絞り込みのための空きスペースマップの作成は、比較的に軽い負荷で行うことができる。このことから、対象ネットの全てで探索を行うような場合と比較すれば、全体的な負荷はより軽くすることができ、処理時間はより短縮させることができる。また、調整用セルを挿入可能な対象ネットでは挿入ポイントの探索を行うため、高い探索精度を維持させることができる。   In this way, the target nets into which adjustment cells are to be inserted are excluded from those that cannot be expected, and the search is limited to only the insertion points where the possibility can be expected. Since such narrowing is performed, the load required for searching for the insertion point can be further reduced. An empty space map for narrowing down can be created with a relatively light load. From this, the overall load can be further reduced and the processing time can be further reduced as compared with the case where the search is performed in all of the target nets. In addition, since the insertion point is searched in the target net into which the adjustment cell can be inserted, high search accuracy can be maintained.

挿入ポイントの探索は、以下のようなものを優先させる形で行う。図8〜図10を参照して具体的に説明する。
図8は、ネットの抵抗・容量を考慮した場合の調整用セルの理想的な挿入ポイントを説明する図である。
The search for the insertion point is performed with priority given to the following. This will be specifically described with reference to FIGS.
FIG. 8 is a diagram for explaining an ideal insertion point of the adjustment cell in consideration of the resistance / capacitance of the net.

最近では、ネットで生じる遅延値の計算(見積もり)はその抵抗・容量を考慮して行うようになっている(図1)。それら抵抗・容量の変化に伴ってネットで生じる遅延値も変化する。その遅延値の変化は再度、ECOを行うことになる可能性、つまりイタレーションの可能性を高くする。従って、調整用セルのネットへの挿入前後で生じる抵抗・容量の変化は最小限に抑えるのが望ましい。このことから本実施の形態では、調整用セル(buff)はソース端子、或いはシンク端子の何れかにできるだけ近づけて配置するようにしている。図8は、セルA、セルBを結ぶネットに調整用セルとして挿入するバッファ(buff)をセルAのソース端子に近づけて配置した場合の例を示している。そのように配置することにより、調整用セルとそれに近い側の端子を結ぶネットの抵抗・容量は殆ど無視できるものにすることができ、調整用セルとそれに遠い側の端子を結ぶネットの抵抗・容量は挿入前のネットのそれらとほぼ同じものとすることができる。   Recently, the calculation (estimation) of the delay value generated in the net is performed in consideration of the resistance and capacitance (FIG. 1). As the resistance and capacitance change, the delay value generated in the net also changes. The change in the delay value again increases the possibility of performing ECO, that is, the possibility of iteration. Therefore, it is desirable to minimize the change in resistance and capacitance that occurs before and after the adjustment cell is inserted into the net. Therefore, in this embodiment, the adjustment cell (buff) is arranged as close as possible to either the source terminal or the sink terminal. FIG. 8 shows an example in which a buffer (buff) to be inserted as an adjustment cell in a net connecting cell A and cell B is arranged close to the source terminal of cell A. By arranging in this way, the resistance / capacitance of the net connecting the adjustment cell and the terminal on the near side can be made almost negligible, and the resistance / capacity of the net connecting the adjustment cell and the terminal on the far side can be neglected. The capacity can be approximately the same as those of the net before insertion.

調整用セルを近傍に配置すべき端子は、状況に応じて選択するのが望ましい。その選択は、例えば以下のように行えば良い。
図9は、ソース端子を選択すべき状況を説明する図である。その図9では、3つの状況例1〜3を図9(a)〜(c)にそれぞれ示している。以降、ネットに信号を出力する側のセルは「ソース・セル」、その信号を入力する側のセルは「シンク・セル」とそれぞれ呼ぶことにする。
It is desirable to select the terminal where the adjustment cell should be placed in the vicinity according to the situation. The selection may be performed as follows, for example.
FIG. 9 is a diagram for explaining a situation in which a source terminal should be selected. In FIG. 9, three situation examples 1 to 3 are shown in FIGS. 9 (a) to 9 (c), respectively. Hereinafter, a cell that outputs a signal to the net is referred to as a “source cell”, and a cell that receives the signal is referred to as a “sink cell”.

調整用セルを挿入してのタイミング調整は、基本的にホールド・タイミングエラー(以下「ホールド・エラー」と略記)を修正するために行われる。図9(a)に示す状況例1は、ソース・セルから出力された信号を入力する複数のシンク・セルでホールド・エラーが発生し、且つソース・セル側に調整用セル(buffer)の挿入スペースがある場合のものである。そのような場合、ソース・セル側に調整用セルを配置することにより、複数のシンク・セルで発生していたホールド・エラーを全て解消させることができる。   The timing adjustment with the adjustment cell inserted is basically performed to correct a hold timing error (hereinafter abbreviated as “hold error”). In the situation example 1 shown in FIG. 9A, a hold error occurs in a plurality of sink cells to which signals output from the source cell are input, and an adjustment cell (buffer) is inserted on the source cell side. This is when there is space. In such a case, by arranging the adjustment cell on the source cell side, it is possible to eliminate all the hold errors that have occurred in the plurality of sink cells.

図9(b)に示す状況例2は、一つだけあるシンク・セルにホールド・エラーが発生したが、その近傍に挿入スペースが無い場合のものである。そのような場合、デザインの変更量を抑えるために、ソース・セル側に調整用セルを配置するのが望ましい。   Situation example 2 shown in FIG. 9B is a case where a hold error has occurred in only one sync cell, but there is no insertion space in the vicinity thereof. In such a case, it is desirable to arrange an adjustment cell on the source cell side in order to suppress a design change amount.

図9(c)に示す状況例3は、ホールド・エラーが発生したシンク・セルの近傍に他のネット(net B)が存在する場合のものである。そのような場合、シンク・セル側に調整用セルを挿入することによって、他のネットに重畳するクロストーク・ノイズ分を増大させる。そのノイズ分は、クロストーク遅延を発生させる原因となる。このことから、ソース・セル側に調整用セルを配置するのが望ましい。   Situation example 3 shown in FIG. 9C is a case where another net (net B) exists in the vicinity of the sync cell in which the hold error occurs. In such a case, the amount of crosstalk noise superimposed on another net is increased by inserting an adjustment cell on the sink cell side. The noise causes a crosstalk delay. Therefore, it is desirable to arrange the adjustment cell on the source cell side.

図10は、シンク端子を選択すべき状況を説明する図である。その図10では、4つの状況例1〜4を図10(a)〜(d)にそれぞれ示している。
図10(a)に示す状況例1は、ソース・セルから出力された信号を入力する複数のシンク・セルが存在し、その全てのシンク・セルでホールド・エラーのみが発生していない場合のものである。その場合、少なくとも1つのシンク・セルでホールド・エラーが発生し、それ以外のシンク・セルのなかにタイミングエラーが発生していないもの、或いはセットアップ・タイミングエラー(以降「セットアップ・エラー」と略記)が発生しているものが存在する。このため、ソース・セル側に調整用セルを配置すると、それ以外のシンク・セルに新たなタイミングエラーを発生させる、或いはタイミングエラーをより悪化させる、といった可能性がある。それにより、ホールド・エラーのみが発生したシンク・セル側に調整用セルを配置するのが望ましい。
FIG. 10 is a diagram for explaining a situation where a sync terminal should be selected. In FIG. 10, four situation examples 1 to 4 are shown in FIGS. 10 (a) to 10 (d), respectively.
The situation example 1 shown in FIG. 10A is a case where there are a plurality of sync cells to which a signal output from a source cell is input, and only a hold error has not occurred in all the sync cells. Is. In that case, a hold error occurs in at least one sync cell, and there is no timing error among the other sync cells, or a setup timing error (hereinafter abbreviated as “setup error”). There is something that has occurred. For this reason, if an adjustment cell is arranged on the source cell side, there is a possibility that a new timing error is generated in other sink cells or the timing error is further deteriorated. Accordingly, it is desirable to arrange the adjustment cell on the sink cell side where only the hold error has occurred.

図10(b)に示す状況例2は、一つだけあるシンク・セルにホールド・エラーが発生したが、ソース・セル側に挿入スペースが無い場合のものである。そのような場合、デザインの変更量を抑えるために、シンク・セル側に調整用セルを配置するのが望ましい。   Situation example 2 shown in FIG. 10B is a case where a hold error has occurred in only one sync cell, but there is no insertion space on the source cell side. In such a case, it is desirable to arrange an adjustment cell on the sink cell side in order to suppress a design change amount.

図10(c)に示す状況例3は、ホールド・エラーが発生したソース・セルの近傍に他のネット(net B)が存在する場合のものである。そのような場合、他のネットに重畳するクロストーク・ノイズ分の増大を回避させるために、シンク・セル側に調整用セルを配置するのが望ましい。 Situation example 3 shown in FIG. 10C is a case where another net (net B) exists in the vicinity of the source cell in which the hold error occurs. In such a case, it is desirable to arrange an adjustment cell on the sink cell side in order to avoid an increase in the amount of crosstalk noise superimposed on another net.

図10(d)に示す状況例4は、シンク・セルにホールド・エラーの他にスルーレート(slew rate)エラーが発生している場合のものである。そのスルーレート・エラーは、伝搬してきた信号の波形が動作を保証する形を保っているか否か確認する波形解析によって検出するエラーである。信号波形は伝搬中になまることから、調整用セルはシンク・セル側に配置するのが望ましい。そのように配置することにより、スルーレート・エラーを解消できる可能性がある。   Situation example 4 shown in FIG. 10D is a case where a slew rate error has occurred in the sync cell in addition to a hold error. The slew rate error is an error detected by waveform analysis for confirming whether or not the waveform of the propagated signal maintains a form that guarantees the operation. Since the signal waveform is lost during propagation, the adjustment cell is preferably arranged on the sink cell side. Such an arrangement may eliminate slew rate errors.

ネット(配線)は多層に渡って配置する場合がある。現在では、多層構造の基板を採用するのが普通なため、多くのネットは多層に渡って配置されているのが実情である。各層の部分であるネットセグメントの長さは、その周辺の状態を考慮して決定された可能性がある。周辺の状態を考慮して決定されたのであれば、長さが短いネットセグメントでは、調整用セルの挿入スペースが存在しない可能性が高いことになる。このことから本実施の形態では、対象ネットが多層に渡って配置されている場合、調整用セルの挿入ポイントを探索するネットセグメントは、長さが長いほうから行っている。それにより、より長いネットセグメントを優先させる形で調整用セルを挿入するようにしている。   A net (wiring) may be arranged in multiple layers. At present, it is common to use a substrate having a multilayer structure, and in reality, many nets are arranged in multiple layers. The length of the net segment that is a part of each layer may have been determined in consideration of the surrounding state. If it is determined in consideration of the surrounding state, there is a high possibility that there is no adjustment cell insertion space in a net segment with a short length. Therefore, in the present embodiment, when the target net is arranged in multiple layers, the net segment for searching for the insertion point of the adjustment cell is performed from the longest one. Thereby, the adjustment cell is inserted in such a manner that a longer net segment is prioritized.

探索部42は、上述したようにして、調整用セルの挿入ポイントの探索を行う。ネットセグメントの長さによる優先は、ソース端子、及びシンク端子のなかで調整用セルを配置するのが望ましい端子の近傍に挿入スペースが存在しない場合に採用するようにしている。それにより、デザイン変更をより小さくする、その変更による影響をより小さくする、といったことを重視している。   The search unit 42 searches for the insertion point of the adjustment cell as described above. The priority based on the length of the net segment is adopted when there is no insertion space in the vicinity of the terminal where it is desirable to arrange the adjustment cell among the source terminal and the sink terminal. As a result, the emphasis is on making design changes smaller and reducing the effects of those changes.

リスト作成部43は、探索部42が探索によって見つかった挿入ポイントに挿入すべき調整用セル、その挿入ポイントを示す情報を対象ネット毎にまとめたリストを作成する。そのリストは、例えば図11に示すようなものである。その情報としては、例えばソース端子と調整用セルを新たに結ぶネットの抵抗値、容量値を採用している。   The list creation unit 43 creates a list in which adjustment cells to be inserted at insertion points found by the search unit 42 and information indicating the insertion points are collected for each target net. The list is, for example, as shown in FIG. As the information, for example, a resistance value and a capacitance value of a net newly connecting the source terminal and the adjustment cell are adopted.

そのリストでは、対象ネットは図7に示す空きスペースマップと同様に、インスタンス名、及びそれが持つ1つの端子の名前で表している。「buff1(0mΩ,4pf)」は調整用セルの候補がバッファであり、そのバッファはソース端子と抵抗値、容量値がそれぞれ0mΩ、4pfのネットで接続させるべきであることを表している。「DontAdjust」は対象ネットに挿入ポイントが見つからなかったことを表している。絞り込みにより除外するか、或いは探索によって挿入ポイントが探し出せなかった対象ネットでは、それが記述される。   In the list, the target net is represented by an instance name and the name of one terminal that it has, similarly to the empty space map shown in FIG. “Buff1 (0 mΩ, 4 pf)” indicates that the adjustment cell candidate is a buffer, and that the buffer should be connected to the source terminal via a net having a resistance value and a capacitance value of 0 mΩ and 4 pf, respectively. “DontAdjust” indicates that no insertion point was found in the target net. In the target net that is excluded by narrowing down or the insertion point cannot be found by searching, it is described.

図4は、調整用セル自動配置処理のフローチャートである。次に図4を参照して、上記自動配置処理部34の動作について詳細に説明する。その配置処理は、タイミングエラーが発生した対象ネットに調整用セルを挿入すべき挿入ポイントを自動的に決定するために実行する処理の流れを示したものである。例えば図3に示すCPU61が外部記憶装置65に格納されたプログラムをメモリ62に読み出して実行することで実現される。   FIG. 4 is a flowchart of the adjustment cell automatic arrangement processing. Next, the operation of the automatic placement processing unit 34 will be described in detail with reference to FIG. The arrangement processing shows a flow of processing executed for automatically determining an insertion point at which the adjustment cell is to be inserted into the target net in which the timing error has occurred. For example, it is realized by the CPU 61 shown in FIG. 3 reading out the program stored in the external storage device 65 to the memory 62 and executing it.

先ず、ステップS11では、配置配線DBを参照して、空きスペースマップ(図7)を作成する。続くステップS12では、対象ネットが存在するブロックの空きスペース率が0%でないか否か判定する。本実施の形態では、上述したように、セルの1端子のみが存在すようにブロックへの分割を行っている。このことから、2つの空きスペース率が共に0%であった場合、判定はNOとなってステップS15に移行し、その対象ネット用の結果を格納した後、一連の処理を終了する。そうでない場合には、判定はYESとなってステップS13に移行する。ステップS12からステップS15に移行した場合には、対象ネットには「DontAdjust」が記述されることとなる(図11)。   First, in step S11, an empty space map (FIG. 7) is created with reference to the placement and routing DB. In subsequent step S12, it is determined whether or not the free space rate of the block in which the target net exists is not 0%. In the present embodiment, as described above, the division into blocks is performed so that only one terminal of the cell exists. For this reason, if the two free space ratios are both 0%, the determination is no, the process proceeds to step S15, the result for the target net is stored, and the series of processes is terminated. Otherwise, the determination is yes and the process moves to step S13. When the process proceeds from step S12 to step S15, “DontAdjust” is described in the target net (FIG. 11).

ステップS13では、2つの空きスペース率は共に閾値以下か否か判定する。その2つの空きスペース率が共に閾値以下であった場合、判定はYESとなってステップS14に移行し、対象ネットをタイミング調整対象から除外した後、ステップS15に移行する。それにより、ステップS14からステップS15に移行した場合にも、対象ネットには「DontAdjust」が記述されることとなる(図11)。一方、そうでない場合、つまり空きスペース率が閾値より大きい場合には、判定はNOとなってステップS16に移行し、調整用セルを挿入すべき挿入ポイントを探索するための挿入ポイント探索処理を実行した後、ステップS15に移行する。   In step S13, it is determined whether or not the two free space rates are both equal to or less than a threshold value. If the two free space ratios are both equal to or less than the threshold value, the determination is YES and the process proceeds to step S14. After the target net is excluded from the timing adjustment targets, the process proceeds to step S15. As a result, even when the process proceeds from step S14 to step S15, “DonAdjust” is described in the target net (FIG. 11). On the other hand, if this is not the case, that is, if the free space rate is greater than the threshold, the determination is no and the process moves to step S16, and an insertion point search process for searching for an insertion point at which the adjustment cell is to be inserted is executed. Then, the process proceeds to step S15.

上記ステップS12〜S16は、タイミング調整の対象となる対象ネット毎に、その対象ネットに応じて実行される。それにより、図11に示すようなリストが作成されることとなる。   The above steps S12 to S16 are executed for each target net that is a target of timing adjustment in accordance with the target net. As a result, a list as shown in FIG. 11 is created.

図5は、上記ステップS16として実行される挿入ポイント探索処理のフローチャートである。ここで図5を参照して、その探索処理について詳細に説明する。
先ず、ステップS21では、ネット(配線)をネットセグメントに分けて、その長さが長い順にソートする。続くステップS22では、ソートしたネットセグメントのなかから対象とする対象ネットセグメントを選択し、その全体に渡って挿入ポイントを探索する。その後に移行するステップS23では、探索した挿入ポイントは複数、存在するか否か判定する。既に探し出した挿入ポイントが存在する状態でステップS22の処理を実行した結果、新たに挿入ポイントが見つかった場合、判定はYESとなってステップS24に移行する。そうでない場合には、判定はNOとなってステップS25に移行する。
FIG. 5 is a flowchart of the insertion point search process executed as step S16. Here, the search process will be described in detail with reference to FIG.
First, in step S21, nets (wirings) are divided into net segments and sorted in descending order of length. In the subsequent step S22, the target net segment as a target is selected from the sorted net segments, and the insertion point is searched over the whole. In step S23, which moves to the subsequent step, it is determined whether or not there are a plurality of searched insertion points. If a new insertion point is found as a result of executing the process of step S22 in a state where there is an insertion point that has already been found, the determination is yes and the process moves to step S24. Otherwise, the determination is no and the process moves to step S25.

ステップS24では、対象ネットの状況に応じた優先度に従って挿入ポイントを選択する。その後に移行するステップS25では、抵抗値・容量値(RC)を計算すべき挿入ポイントが有るか否か判定する。挿入ポイントを初めて探し出した場合、或いはステップS24の処理を実行することで選択した挿入ポイントが新たに探し出したものであった場合、その挿入ポイントを示すRCを計算する必要があることから、判定はYESとなり、ステップS26でそのRCを計算した後、ステップS27に移行する。そうでない場合には、判定はNOとなり、次にそのステップS27の処理を実行する。   In step S24, an insertion point is selected according to the priority according to the status of the target net. In step S25, the process proceeds to step S25, in which it is determined whether there is an insertion point at which the resistance value / capacitance value (RC) is to be calculated. When the insertion point is found for the first time, or when the insertion point selected by executing the process of step S24 is newly found, it is necessary to calculate RC indicating the insertion point. After the answer is YES and the RC is calculated in step S26, the process proceeds to step S27. Otherwise, the determination is no and the process of step S27 is then executed.

ステップS27では、探索の対象となる他のネットセグメントが有るか否か判定する。上述したように、対象ネットの状況により、調整用セルの望ましい挿入ポイントは変化する。ネットセグメントの探索は長いものから行うようにしている。挿入ポイントが1つも見つかっていなければ、未探索のネットセグメントが有る間はそれを対象とした探索は続けなければならない。このようなことから、調整用セルの挿入がより望ましい未探索のネットセグメントが存在する場合、或いは未探索のネットセグメントが存在し、且つ挿入ポイントが見つかっていない場合、判定はYESとなってステップS22に戻り、対象としていないネットセグメントのなかで長さが最も長いネットセグメントを選択して挿入ポイントの探索を行う。それらの何れも該当しない場合には、判定はNOとなってステップS28に移行し、探索結果を出力した後、一連の処理を終了する。その探索結果として、探し出した挿入ポイントの有無、その挿入ポイントが有れば計算したRCなどが出力される。   In step S27, it is determined whether there is another net segment to be searched. As described above, the desired insertion point of the adjustment cell varies depending on the situation of the target net. The search for the net segment is performed from the longest. If no insertion point is found, the search for the unsearched net segment must be continued. Therefore, if there is an unsearched net segment for which adjustment cell insertion is more desirable, or if there is an unsearched net segment and no insertion point is found, the determination is YES and step Returning to S22, the net segment having the longest length among the net segments not targeted is selected to search for the insertion point. If none of them is applicable, the determination is no, the process proceeds to step S28, the search result is output, and the series of processes is terminated. As the search result, the presence / absence of the found insertion point, and the calculated RC if the insertion point exists are output.

このようにして本実施の形態では、対象ネットの状況に応じて、見つかった挿入ポイントのなかで最も望ましいものを選択するようにしている。それにより、デザイン変更をより小さくする、その変更による影響をより小さくする、ということを重視した挿入ポイントの決定を行うようにしている。   In this way, in the present embodiment, the most desirable one of the found insertion points is selected according to the status of the target net. Thus, the insertion point is determined with an emphasis on making the design change smaller and reducing the influence of the change.

なお、本実施の形態では、ブロックへの分割はセルの1端子のみが存在すよう行っているが、別の分割方法を採用しても良い。例えば予め定めた形状・大きさでブロックへの分割を行うようにしても良い。或いはネットで結ぶ各セルの各端子を含むように分割を行うようにしても良い。   In this embodiment, the division into blocks is performed so that only one terminal of the cell exists, but another division method may be employed. For example, the image may be divided into blocks with a predetermined shape and size. Or you may make it divide | segment so that each terminal of each cell connected with a net | network may be included.

調整用セルを挿入できる余裕度の評価は、空きスペース率を計算することで行っているが、別の指標を採用しても良い。その空きスペース率は、ブロック全体に示す空きスペース率であるが、調整用セルの配置が望ましい挿入スペースは、ネット上のセルに重ならないエリアである。ネット上でなくとも、元のネットの近傍であることが望ましい。これは、そのような場所に配置したとしても、対象ネットが接続される端子の裏側にのみ挿入可能なスペースがあり、そのスペースに調整用セルを配置するような場合と比較すれば、デザイン変更はより小さくなるからである。このことから、図12に示すように、端子のネットが接続された側に予め定めた大きさのエリア1201を想定し、そのエリア1201の空きスペース率を求めるようにしても良い。そのようにした場合には、より確実に調整用セルを配置可能な対象ネットを特定できるようになる。   The evaluation of the margin for inserting the adjustment cell is performed by calculating the empty space rate, but another index may be adopted. The empty space rate is the empty space rate shown in the entire block, but the insertion space where the adjustment cell is preferably arranged is an area that does not overlap the cell on the net. Even if it is not on the net, it is desirable to be in the vicinity of the original net. Even if it is arranged in such a place, there is a space that can be inserted only on the back side of the terminal to which the target net is connected, and the design change compared to the case where adjustment cells are arranged in that space Is smaller. Therefore, as shown in FIG. 12, an area 1201 having a predetermined size may be assumed on the side where the terminal net is connected, and the free space rate of the area 1201 may be obtained. In such a case, it becomes possible to identify the target net on which the adjustment cell can be placed more reliably.

そのエリア1201は、端子の座標を基点に、ネットに沿って離れる方向、或いはその方向と交差する2つの方向の何れかに動かすことにより、空きスペース率がより望ましい位置を探索するようにしても良い。そのようにした場合には、調整用セルを配置可能な対象ネットを更に確実に特定できるようになる。そのエリア1201の形状や大きさは固定としても良いが、設計者が任意に設定できるようにしても良い。   The area 1201 may be searched for a position where the free space ratio is more desirable by moving in the direction away from the net or the two directions intersecting the direction with the coordinates of the terminal as the base point. good. In such a case, the target net on which the adjustment cell can be arranged can be specified more reliably. The shape and size of the area 1201 may be fixed, but may be arbitrarily set by the designer.

(付記1)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するための方法であって、
前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎に前記調整用セルを挿入できる余裕度を事前に評価し、
前記対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に前記調整用セルを挿入可能か否か判定し、
前記調整用セルを挿入可能と判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う、
ことを特徴とする自動配置方法。
(Appendix 1)
This is a method for automatically determining the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
Dividing the substrate on which the electronic circuit is formed into a plurality of areas, and evaluating in advance the margin that the adjustment cell can be inserted for each area;
Based on the margin evaluated in the area where the target net exists, determine whether the adjustment cell can be inserted on the target net,
For the target net determined to be able to insert the adjustment cell, determination of the position where the adjustment cell is to be inserted,
An automatic placement method characterized by that.

(付記2)
前記調整用セルを挿入すべき位置の決定は、前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの一方の近傍を優先させる形で行う、
ことを特徴とする付記1記載の自動配置方法。
(Appendix 2)
Determination of the position where the adjustment cell is to be inserted is performed in the form of giving priority to one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal.
The automatic placement method according to supplementary note 1, wherein:

(付記3)
前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合、前記調整用セルを挿入すべき位置の決定は、該ネットセグメントのなかで長さが長いネットセグメントを優先させる形で行う、
ことを特徴とする付記1記載の自動配置方法。
(Appendix 3)
When the target net is formed of a plurality of net segments by being formed in a plurality of layers, the position where the adjustment cell is to be inserted is determined by selecting a net segment having a long length among the net segments. To give priority to,
The automatic placement method according to supplementary note 1, wherein:

(付記4)
前記複数のエリアへの分割は、各エリア内に、一つのセルが有する1つのピンを存在させる形で行う、
ことを特徴とする付記1記載の自動配置方法。
(Appendix 4)
The division into the plurality of areas is performed in such a manner that one pin of one cell exists in each area.
The automatic placement method according to supplementary note 1, wherein:

(付記5)
前記余裕度の評価は、前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方に着目して、該対象ネットが接続された側に限定して行う、
ことを特徴とする付記1記載の自動配置方法。
(Appendix 5)
The margin evaluation is limited to the side to which the target net is connected, focusing on at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal. Do,
The automatic placement method according to supplementary note 1, wherein:

(付記6)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するための方法であって、
前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方の近傍に前記調整用セルを挿入可能か否か確認すると共に、該一方の近傍に該調整用セルを挿入すべき状況か否か確認し、
前記確認によって、前記一方の近傍に前記調整用セルが挿入可能であり、且つ該調整用セルを挿入すべき状況であることが判明した場合に、該調整用セルを挿入すべき位置として該一方の近傍を選択し決定する、
ことを特徴とする自動配置方法。
(Appendix 6)
This is a method for automatically determining the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
It is confirmed whether or not the adjustment cell can be inserted in the vicinity of at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal, and the adjustment is made in the vicinity of the one Check if the cell should be inserted,
When it is determined by the confirmation that the adjustment cell can be inserted in the vicinity of the one and the adjustment cell is to be inserted, the adjustment cell is set as the position to be inserted. Select and determine the neighborhood of
An automatic placement method characterized by that.

(付記7)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するための方法であって、
前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合に、該複数のネットセグメントをネットセグメントの長さによって分け、
該ネットセグメントのなかで長さが長いネットセグメントを優先させる形で、前記調整用セルを挿入すべきネットセグメントを選択し決定する、
ことを特徴とする自動配置方法。
(Appendix 7)
This is a method for automatically determining the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
When the target net is formed of a plurality of layers by being formed in a plurality of layers, the plurality of net segments is divided according to the length of the net segment,
Selecting and determining a net segment in which the adjustment cell is to be inserted in a manner that prioritizes a net segment having a long length among the net segments;
An automatic placement method characterized by that.

(付記8)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する自動配置装置であって、
前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎に前記調整用セルを挿入できる余裕度を事前に評価する評価手段と、
前記対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に前記調整用セルを挿入可能か否か判定する判定手段と、
前記調整用セルを挿入可能と前記判定手段が判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う配置決定手段と、
を具備することを特徴とする自動配置装置。
(Appendix 8)
It is an automatic placement device that automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
An evaluation unit that divides a substrate on which the electronic circuit is formed into a plurality of areas, and evaluates in advance a margin for inserting the adjustment cell for each area;
Determining means for determining whether or not the adjustment cell can be inserted on the target net based on the margin evaluated in the area where the target net exists;
Placement determination means for determining a position where the adjustment cell should be inserted, targeting the target net determined by the determination means that the adjustment cell can be inserted;
An automatic placement apparatus comprising:

(付記9)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する自動配置装置であって、
前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方の近傍に前記調整用セルを挿入可能か否か確認すると共に、該一方の近傍に該調整用セルを挿入すべき状況か否か確認する確認手段と、
前記確認手段によって、前記一方の近傍に前記調整用セルが挿入可能であり、且つ該調整用セルを挿入すべき状況であることが判明した場合に、該調整用セルを挿入すべき位置として該一方の近傍を選択し決定する配置決定手段と、
を具備することを特徴とする自動配置装置。
(Appendix 9)
It is an automatic placement device that automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
It is confirmed whether or not the adjustment cell can be inserted in the vicinity of at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal, and the adjustment is made in the vicinity of the one A confirmation means for confirming whether or not a cell for insertion should be inserted,
When it is determined by the checking means that the adjustment cell can be inserted in the vicinity of the one and the adjustment cell is to be inserted, the adjustment cell is set as the position to be inserted. An arrangement determining means for selecting and determining one of the neighborhoods;
An automatic placement apparatus comprising:

(付記10)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する自動配置装置であって、
前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合に、該複数のネットセグメントをネットセグメントの長さによって分けるソート手段と、
前記ソート手段が長さで分けた前記ネットセグメントのなかで長さが長いネットセグメントを優先させる形で、前記調整用セルを挿入すべきネットセグメントを選択し決定する配置決定手段と、
を具備することを特徴とする自動配置装置。
(Appendix 10)
It is an automatic placement device that automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
When the target net is formed of a plurality of net segments by being formed in a plurality of layers, sorting means for dividing the plurality of net segments according to the length of the net segment;
Arrangement determining means for selecting and determining a net segment into which the adjustment cell is to be inserted, in a form that gives priority to a net segment having a long length among the net segments divided by the length by the sorting means;
An automatic placement apparatus comprising:

(付記11)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するためにコンピュータに実行させるプログラムであって、
前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎に前記調整用セルを挿入できる余裕度を事前に評価する評価機能と、
前記対象ネットが存在するエリアで評価した余裕度に基づいて、該対象ネット上に前記調整用セルを挿入可能か否か判定する判定機能と、
前記調整用セルを挿入可能と前記判定機能により判定した対象ネットを対象にして、該調整用セルを挿入すべき位置の決定を行う配置決定機能と、
を実現させるためのプログラム。
(Appendix 11)
Executed in a computer to automatically determine the position of the adjustment cell to be inserted for timing adjustment on the target net where the timing error has occurred in the net connecting the cells of the designed electronic circuit A program to
An evaluation function that divides the substrate on which the electronic circuit is formed into a plurality of areas, and evaluates in advance the margin that the adjustment cell can be inserted for each area;
A determination function for determining whether or not the adjustment cell can be inserted on the target net based on the margin evaluated in the area where the target net exists,
An arrangement determination function for determining the position where the adjustment cell should be inserted, targeting the target net determined by the determination function that the adjustment cell can be inserted;
A program to realize

(付記12)
前記配置決定機能による前記調整用セルを挿入すべき位置の決定は、前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの一方の近傍を優先させる形で行う、
ことを特徴とする付記11記載のプログラム。
(Appendix 12)
The determination of the position where the adjustment cell is to be inserted by the placement determination function is performed by giving priority to the vicinity of one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal. Do,
The program according to appendix 11, which is characterized by the above.

(付記13)
前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合、前記配置決定機能による前記調整用セルを挿入すべき位置の決定は、該ネットセグメントのなかで長さが長いネットセグメントを優先させる形で行う、
ことを特徴とする付記11記載のプログラム。
(Appendix 13)
When the target net is formed of a plurality of net segments by being formed in a plurality of layers, the determination of the position where the adjustment cell is to be inserted by the placement determination function is a length within the net segment. Is done in a way that prioritizes long net segments,
The program according to appendix 11, which is characterized by the above.

(付記14)
前記評価機能による前記複数のエリアへの分割は、各エリア内に、一つのセルが有する1つのピンを存在させる形で行う、
ことを特徴とする付記11記載のプログラム。
(Appendix 14)
The division into the plurality of areas by the evaluation function is performed in such a manner that one pin of one cell exists in each area.
The program according to appendix 11, which is characterized by the above.

(付記15)
前記評価機能による前記余裕度の評価は、前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方に着目して、該対象ネットが接続された側に限定して行う、
ことを特徴とする付記11記載のプログラム。
(Appendix 15)
The evaluation of the margin by the evaluation function is performed by paying attention to at least one of an output side cell that outputs a signal to the target net and an input side cell that inputs the signal. Limited to
The program according to appendix 11, which is characterized by the above.

(付記16)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するためにコンピュータに実行させるプログラムであって、
前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方の近傍に前記調整用セルを挿入可能か否か確認すると共に、該一方の近傍に該調整用セルを挿入すべき状況か否か確認する確認機能と、
前記確認機能によって、前記一方の近傍に前記調整用セルが挿入可能であり、且つ該調整用セルを挿入すべき状況であることが判明した場合に、該調整用セルを挿入すべき位置として該一方の近傍を選択し決定する配置決定機能と、
を実現させるためのプログラム。
(Appendix 16)
Executed in a computer to automatically determine the position of the adjustment cell to be inserted for timing adjustment on the target net where the timing error has occurred in the net connecting the cells of the designed electronic circuit A program to
It is confirmed whether or not the adjustment cell can be inserted in the vicinity of at least one of the output side cell that outputs a signal to the target net and the input side cell that inputs the signal, and the adjustment is made in the vicinity of the one A confirmation function for confirming whether or not a cell for insertion should be inserted,
When it is determined by the confirmation function that the adjustment cell can be inserted in the vicinity of the one and the adjustment cell is to be inserted, the adjustment cell is set as the position to be inserted. An arrangement determination function for selecting and determining one of the neighborhoods;
A program to realize

(付記17)
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定するためにコンピュータに実行させるプログラムであって、
前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合に、該複数のネットセグメントをネットセグメントの長さによって分けるソート機能と、
前記ソート機能により長さで分けた前記ネットセグメントのなかで長さが長いネットセグメントを優先させる形で、前記調整用セルを挿入すべきネットセグメントを選択し決定する配置決定機能と、
を実現させるためのプログラム。
(Appendix 17)
Executed in a computer to automatically determine the position of the adjustment cell to be inserted for timing adjustment on the target net where the timing error has occurred in the net connecting the cells of the designed electronic circuit A program to
When the target net is composed of a plurality of net segments by being formed in a plurality of layers, a sorting function that divides the plurality of net segments according to the length of the net segment;
An arrangement determining function for selecting and determining a net segment into which the adjustment cell is to be inserted, in a form in which a net segment having a long length is prioritized among the net segments divided by length by the sort function;
A program to realize

ECOが行われる場合の一般的な設計処理の流れを説明する図である。It is a figure explaining the flow of the general design process in case ECO is performed. 本実施の形態による自動配置装置を搭載した自動レイアウト処理装置の構成を説明する図である。It is a figure explaining the structure of the automatic layout processing apparatus carrying the automatic arrangement | positioning apparatus by this Embodiment. 本実施の形態による自動配置装置を搭載した自動レイアウト処理装置として用いることが可能なコンピュータのハードウェア構成を説明する図である。It is a figure explaining the hardware constitutions of the computer which can be used as an automatic layout processing apparatus carrying the automatic arrangement | positioning apparatus by this Embodiment. 調整用セル自動配置処理のフローチャートである。It is a flowchart of the cell arrangement | positioning process for adjustment automatically. 挿入ポイント探索処理のフローチャートである。It is a flowchart of an insertion point search process. 分割されたブロック、及びその空きスペース率を説明する図である。It is a figure explaining the divided | segmented block and its empty space rate. 空きスペースマップの記述方法を説明する図である。It is a figure explaining the description method of an empty space map. ネットの抵抗・容量を考慮した場合の調整用セルの理想的な挿入ポイントを説明する図である。It is a figure explaining the ideal insertion point of the cell for adjustment when the resistance and capacity of the net are taken into consideration. ソース端子を選択すべき状況を説明する図である。It is a figure explaining the condition which should select a source terminal. シンク端子を選択すべき状況を説明する図である。It is a figure explaining the condition which should select a sink terminal. 挿入ポイントの探索によって作成されるリストを説明する図である。It is a figure explaining the list created by search of an insertion point. 空きスペース率の他の求め方を説明する図である。It is a figure explaining the other method of calculating | requiring an empty space rate.

符号の説明Explanation of symbols

31 入力処理部
32 表示制御部
33 自動レイアウト処理部
34 自動配置処理部
35 記憶部
41 マップ作成部
42 探索部
43 リスト作成部
Reference Signs List 31 Input processing unit 32 Display control unit 33 Automatic layout processing unit 34 Automatic placement processing unit 35 Storage unit 41 Map creation unit 42 Search unit 43 List creation unit

Claims (5)

設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する自動配置装置における自動配置方法であって、
セルや配線の配置設計後、前記自動配置装置に備えられる評価手段が、前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎にセル、或いは配線が存在しない面積が全体を占める割合である空きスペース率を算出し、
前記自動配置装置に備えられる判定手段が、前記対象ネットが存在するエリアで算出した空きスペース率に基づいて、該対象ネット上に前記調整用セルを挿入可能か否かを判定し、
前記自動配置装置に備えられる配置決定手段が、前記調整用セルを挿入可能と判定した対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの一方の近傍に前記調整用セルを挿入するという該調整用セルを挿入すべき位置の決定を行うとともに、前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合、前記調整用セルを挿入すべきネットセグメントの決定を、前記複数のネットセグメントのなかで長さが長いネットセグメントを優先させる形で行い、前記調整用セルを挿入すべきと決定したネットセグメントにおいて前記調整用セルを挿入すべき位置の決定を行い、
前記調整用セルを挿入すべき位置を、
複数の前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースがある場合、前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルに前記調整用セルの挿入スペースが無い場合、及び前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルの近傍に他の入力側セルが存在する場合の何れかの場合には前記出力側セルの近傍に決定し、
複数の前記入力側セルのうちタイミングエラーが発生していない前記入力側セルが存在する場合、前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースが無い場合、前記出力側セルの近傍に他の入力側セルが存在する場合、及び前記入力側セルにタイミングエラー及びスルーレートエラーが発生している場合の何れかの場合には前記入力側セルの近傍に決定する、
ことを特徴とする自動配置方法。
Automatic in an automatic placement device that automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net where timing errors occur among the nets connecting the cells of the designed electronic circuit An arrangement method,
After the cell and wiring layout design, the evaluation means provided in the automatic placement apparatus divides the substrate on which the electronic circuit is formed into a plurality of areas, and the area where no cell or wiring exists in each area Calculate the percentage of free space that is a percentage of
The determination means provided in the automatic placement device determines whether or not the adjustment cell can be inserted on the target net based on the empty space rate calculated in the area where the target net exists,
The placement determining means provided in the automatic placement apparatus has the output side cell that outputs a signal to the target net that is determined to be able to insert the adjustment cell, and the input side cell that inputs the signal in the vicinity of one of the output side cells. When determining the position where the adjustment cell is to be inserted, that is, inserting the adjustment cell, and the target net is formed of a plurality of layers to form a plurality of net segments, the adjustment cell the determination of the net segment to be inserted to, are performed by the form to prioritize long net segment length among the plurality of net segments, the adjuster cell in a net segment was determined to be inserting the adjuster cell To determine where to insert
The position where the adjustment cell is to be inserted,
When a timing error occurs in a plurality of the input side cells and there is a space for inserting the adjustment cell in the output side cell, a timing error occurs in the input side cell, and the input side cell In the case where there is no space for insertion of the adjustment cell, and there is a timing error in the input side cell, and there is another input side cell in the vicinity of the input side cell, the output side Determined in the vicinity of the cell,
When there is an input side cell in which a timing error has not occurred among the plurality of input side cells, a timing error occurs in the input side cell, and there is a space for inserting the adjustment cell in the output side cell. If there is no other input side cell in the vicinity of the output side cell, or if a timing error or a slew rate error has occurred in the input side cell, the input side cell Determine in the neighborhood,
An automatic placement method characterized by that.
前記評価手段が、前記複数のエリアへの分割を、各エリア内に、一つのセルが有する1つのピンを存在させるように、各エリアの形状及び位置を決定する形で行う、
ことを特徴とする請求項1記載の自動配置方法。
The evaluation means performs the division into the plurality of areas by determining the shape and position of each area so that one pin of one cell exists in each area .
The automatic placement method according to claim 1, wherein:
前記評価手段が、前記空きスペース率の算出を、前記対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの少なくとも一方に着目して、該対象ネットが接続された側に限定して行う、
ことを特徴とする請求項1又は請求項2記載の自動配置方法。
The evaluation means calculates the empty space ratio by paying attention to at least one of an output side cell that outputs a signal to the target net and an input side cell that inputs the signal. Limited to the other side,
3. The automatic arrangement method according to claim 1, wherein the automatic arrangement method is performed.
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する自動配置装置であって、
セルや配線の配置設計後、前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎にセル、或いは配線が存在しない面積が全体を占める割合である空きスペース率を算出する評価手段と、
前記対象ネットが存在するエリアで算出した空きスペース率に基づいて、該対象ネット上に前記調整用セルを挿入可能か否か判定する判定手段と、
前記調整用セルを挿入可能と前記判定手段が判定した対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの一方の近傍に前記調整用セルを挿入するという該調整用セルを挿入すべき位置の決定を行うとともに、前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合、前記調整用セルを挿入すべきネットセグメントの決定を、前記複数のネットセグメントのなかで長さが長いネットセグメントを優先させる形で行い、前記調整用セルを挿入すべきと決定したネットセグメントにおいて前記調整用セルを挿入すべき位置の決定を行い、
前記調整用セルを挿入すべき位置を、
複数の前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースがある場合、前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルに前記調整用セルの挿入スペースが無い場合、及び前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルの近傍に他の入力側セルが存在する場合の何れかの場合には前記出力側セルの近傍に決定し、
複数の前記入力側セルのうちタイミングエラーが発生していない前記入力側セルが存在する場合、前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースが無い場合、前記出力側セルの近傍に他の入力側セルが存在する場合、及び前記入力側セルにタイミングエラー及びスルーレートエラーが発生している場合の何れかの場合には前記入力側セルの近傍に決定する配置決定手段と、
を具備することを特徴とする自動配置装置。
It is an automatic placement device that automatically determines the position of an adjustment cell to be inserted for timing adjustment on a target net where a timing error has occurred among the nets connecting the cells of the designed electronic circuit. And
After the cell and wiring layout design, the substrate on which the electronic circuit is formed is divided into a plurality of areas, and an empty space rate is calculated for each area, which is the ratio of the area where no cells or wirings exist. An evaluation means;
A determination means for determining whether or not the adjustment cell can be inserted on the target net based on an empty space rate calculated in an area where the target net exists;
The adjustment cell is inserted in the vicinity of one of an output side cell that outputs a signal to the target net determined by the determination means that the adjustment cell can be inserted, and an input side cell that inputs the signal. Determine the position where the adjustment cell is to be inserted, and if the target net is formed of a plurality of layers by forming the target net in a plurality of layers, determine the net segment where the adjustment cell is to be inserted and the decision are performed by the manner that is giving priority to long net segment length, to be inserted the adjuster cell in a net segment was determined to be inserting the adjuster cell position among the plurality of net segments Done
The position where the adjustment cell is to be inserted,
When a timing error occurs in a plurality of the input side cells and there is a space for inserting the adjustment cell in the output side cell, a timing error occurs in the input side cell, and the input side cell In the case where there is no space for insertion of the adjustment cell, and there is a timing error in the input side cell, and there is another input side cell in the vicinity of the input side cell, the output side Determined in the vicinity of the cell,
When there is an input side cell in which a timing error has not occurred among the plurality of input side cells, a timing error occurs in the input side cell, and there is a space for inserting the adjustment cell in the output side cell. If there is no other input side cell in the vicinity of the output side cell, or if a timing error or a slew rate error has occurred in the input side cell, the input side cell Arrangement determining means for determining in the vicinity ;
An automatic placement apparatus comprising:
設計された電子回路のセル間を接続するネットのなかでタイミングエラーが発生している対象ネット上にタイミング調整のために挿入すべき調整用セルの位置を自動的に決定する機能をコンピュータに実現させるプログラムであって、
セルや配線の配置設計後、前記電子回路が形成される基板を複数のエリアに分割して、該エリア毎にセル、或いは配線が存在しない面積が全体を占める割合である空きスペース率を算出する評価機能と、
前記対象ネットが存在するエリアで算出した空きスペース率に基づいて、該対象ネット上に前記調整用セルを挿入可能か否か判定する判定機能と、
前記調整用セルを挿入可能と前記判定機能により判定した対象ネットに信号を出力する出力側セル、及び該信号を入力する入力側セルのうちの一方の近傍に前記調整用セルを挿入するという該調整用セルを挿入すべき位置の決定を行うとともに、前記対象ネットが複数の層に形成されることで複数のネットセグメントから構成されている場合、前記調整用セルを挿入すべきネットセグメントの決定を、前記複数のネットセグメントのなかで長さが長いネットセグメントを優先させる形で行い、前記調整用セルを挿入すべきと決定したネットセグメントにおいて前記調整用セルを挿入すべき位置の決定を行い、
前記調整用セルを挿入すべき位置を、
複数の前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースがある場合、前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルに前記調整用セルの挿入スペースが無い場合、及び前記入力側セルにタイミングエラーが発生し、且つ、前記入力側セルの近傍に他の入力側セルが存在する場合の何れかの場合には前記出力側セルの近傍に決定し、
複数の前記入力側セルのうちタイミングエラーが発生していない前記入力側セルが存在する場合、前記入力側セルにタイミングエラーが発生し、且つ、前記出力側セルに前記調整用セルの挿入スペースが無い場合、前記出力側セルの近傍に他の入力側セルが存在する場合、及び前記入力側セルにタイミングエラー及びスルーレートエラーが発生している場合の何れかの場合には前記入力側セルの近傍に決定する配置決定機能と、
をコンピュータに実現させるためのプログラム。
The computer realizes the function of automatically determining the position of the adjustment cell to be inserted for timing adjustment on the target net where the timing error has occurred in the net connecting the cells of the designed electronic circuit. A program to
After the cell and wiring layout design, the substrate on which the electronic circuit is formed is divided into a plurality of areas, and an empty space rate is calculated for each area, which is the ratio of the area where no cells or wirings exist. Evaluation function,
A determination function for determining whether or not the adjustment cell can be inserted on the target net, based on an empty space rate calculated in an area where the target net exists;
The adjustment cell is inserted in the vicinity of one of an output side cell that outputs a signal to the target net determined by the determination function that the adjustment cell can be inserted, and an input side cell that inputs the signal. Determine the position where the adjustment cell is to be inserted, and if the target net is formed of a plurality of layers by forming the target net in a plurality of layers, determine the net segment where the adjustment cell is to be inserted and the decision are performed by the manner that is giving priority to long net segment length, to be inserted the adjuster cell in a net segment was determined to be inserting the adjuster cell position among the plurality of net segments Done
The position where the adjustment cell is to be inserted,
When a timing error occurs in a plurality of the input side cells and there is a space for inserting the adjustment cell in the output side cell, a timing error occurs in the input side cell, and the input side cell In the case where there is no space for insertion of the adjustment cell, and there is a timing error in the input side cell, and there is another input side cell in the vicinity of the input side cell, the output side Determined in the vicinity of the cell,
When there is an input side cell in which a timing error has not occurred among the plurality of input side cells, a timing error occurs in the input side cell, and there is a space for inserting the adjustment cell in the output side cell. If there is no other input side cell in the vicinity of the output side cell, or if a timing error or a slew rate error has occurred in the input side cell, the input side cell Placement determination function to determine in the vicinity ,
A program to make a computer realize.
JP2006081702A 2006-03-23 2006-03-23 Automatic placement method, apparatus, and program Expired - Fee Related JP4778339B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006081702A JP4778339B2 (en) 2006-03-23 2006-03-23 Automatic placement method, apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006081702A JP4778339B2 (en) 2006-03-23 2006-03-23 Automatic placement method, apparatus, and program

Publications (2)

Publication Number Publication Date
JP2007257373A JP2007257373A (en) 2007-10-04
JP4778339B2 true JP4778339B2 (en) 2011-09-21

Family

ID=38631542

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006081702A Expired - Fee Related JP4778339B2 (en) 2006-03-23 2006-03-23 Automatic placement method, apparatus, and program

Country Status (1)

Country Link
JP (1) JP4778339B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146047A (en) * 2008-12-16 2010-07-01 Renesas Electronics Corp Buffer circuit insertion method, buffer circuit insertion device, and buffer circuit insertion program

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3048471B2 (en) * 1992-09-08 2000-06-05 沖電気工業株式会社 Clock supply circuit and clock skew adjustment method
JP3262099B2 (en) * 1999-03-18 2002-03-04 日本電気株式会社 Buffer layout design apparatus and method
JP2001168199A (en) * 1999-12-10 2001-06-22 Nec Ic Microcomput Syst Ltd Automatic layout and wiring method for semiconductor device
JP2005258657A (en) * 2004-03-10 2005-09-22 Toshiba Corp Clock layout system and method
JP2006065669A (en) * 2004-08-27 2006-03-09 Renesas Technology Corp Automatic arrangement and wiring apparatus and program

Also Published As

Publication number Publication date
JP2007257373A (en) 2007-10-04

Similar Documents

Publication Publication Date Title
US7890909B2 (en) Automatic block composition tool for composing custom blocks having non-standard library cells in an integrated circuit design flow
US9003344B2 (en) Generating pattern-based estimated RC data with analysis of route information
US8423940B2 (en) Early noise detection and noise aware routing in circuit design
US20090013299A1 (en) Buffer insertion to reduce wirelength in vlsi circuits
WO2008106347A1 (en) System and method for sign-off timing closure of a vlsi chip
US7069528B2 (en) System and method for reducing timing violations due to crosstalk in an integrated circuit design
US8769470B2 (en) Timing closure in chip design
WO2002003261A1 (en) Method and system for hierarchical metal-end, enclosure and exposure checking
KR102416490B1 (en) Computer-implemented method and computing system for designing integrated circuit by considering process variations of wire
US9147030B2 (en) Multiple-instantiated-module (mim) aware pin assignment
US20060064653A1 (en) Automatic layout yield improvement tool for replacing vias with redundant vias through novel geotopological layout in post-layout optimization
US20140331196A1 (en) Analyzing sparse wiring areas of an integrated circuit design
US8881089B1 (en) Physical synthesis optimization with fast metric check
US8549448B2 (en) Delay optimization during circuit design at layout level
US8601425B2 (en) Solving congestion using net grouping
US7367005B2 (en) Method and apparatus for designing a layout, and computer product
US8015532B2 (en) Optimal timing-driven cloning under linear delay model
US9940422B2 (en) Methods for reducing congestion region in layout area of IC
US7168057B2 (en) Targeted optimization of buffer-tree logic
JP4778339B2 (en) Automatic placement method, apparatus, and program
US8336013B2 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations
JP2003281212A (en) Method, device and program for automatic arrangement and wiring
US8024681B2 (en) Hierarchical HDL processing method and non-transitory computer-readable storage medium
US9852259B2 (en) Area and/or power optimization through post-layout modification of integrated circuit (IC) design blocks
US9189583B2 (en) Look-up based buffer tree synthesis

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101228

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110628

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110701

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees