JP2011210189A - Method for designing of semiconductor device, program, and design support apparatus - Google Patents
Method for designing of semiconductor device, program, and design support apparatus Download PDFInfo
- Publication number
- JP2011210189A JP2011210189A JP2010079724A JP2010079724A JP2011210189A JP 2011210189 A JP2011210189 A JP 2011210189A JP 2010079724 A JP2010079724 A JP 2010079724A JP 2010079724 A JP2010079724 A JP 2010079724A JP 2011210189 A JP2011210189 A JP 2011210189A
- Authority
- JP
- Japan
- Prior art keywords
- bulk
- design support
- bulks
- support apparatus
- unit 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.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
半導体装置の設計方法、プログラム、及び設計支援装置に関する。 The present invention relates to a semiconductor device design method, a program, and a design support apparatus.
従来、短期間でユーザの要望に応じたチップを提供するために、ゲートアレイ等の半導体装置が用いられている。ゲートアレイは、複数の素子(例えばトランジスタ)を含むバルク(Bulk)を格子状に形成したマスタ基板に、配線を形成することによりチップとして提供される。 2. Description of the Related Art Conventionally, a semiconductor device such as a gate array has been used to provide a chip that meets a user's request in a short period of time. The gate array is provided as a chip by forming wiring on a master substrate in which a bulk including a plurality of elements (for example, transistors) is formed in a lattice shape.
回路を構成するセル(例えばAND回路)は、バルクの構成に応じて、1又は複数のバルクにより構成される。例えば、4個のトランジスタを含むバルクの場合、アンド回路は1個のバルクを用いて形成される。しかし、フリップフロップ回路等のように、構成するトランジスタの数が多いセルは、複数のバルクを用いて形成される。 A cell (for example, an AND circuit) constituting a circuit is configured by one or a plurality of bulks depending on the bulk configuration. For example, in the case of a bulk including four transistors, the AND circuit is formed using one bulk. However, a cell having a large number of transistors, such as a flip-flop circuit, is formed using a plurality of bulks.
このため、複数種類のバルクを基板上に形成することが提案されている。例えば、図20(a)に示すように、4個のトランジスタを含む第1のバルク(図中,「A」と表記)と、8個のトランジスタを含む第2のバルク(図中,「B」と表記)とを基板上に形成する。第2のバルクの面積は、2個の第1のバルクの面積よりも小さい。これは、第2のバルクについて、バルクに含まれるトランジスタ同士を分離する必要がないためである。つまり、図20(b)示すように、1種類のバルク(図では第1のバルクA)を用いたゲートアレイに比して、複数種類のバルクを用いたゲートアレイの方が、セルサイズを小さくすることができる。 For this reason, it has been proposed to form a plurality of types of bulk on a substrate. For example, as shown in FIG. 20A, a first bulk including four transistors (denoted as “A” in the figure) and a second bulk including eight transistors (in the figure, “B” On the substrate. The area of the second bulk is smaller than the area of the two first bulks. This is because it is not necessary to separate the transistors included in the second bulk. That is, as shown in FIG. 20B, the cell size of the gate array using a plurality of types of bulk is smaller than that of the gate array using one type of bulk (first bulk A in the figure). Can be small.
ゲートアレイに形成するためのセル(ゲートアレイセル)は、使用するバルクに応じて設計される。つまり、図20(a)に示すゲートアレイの場合、セルは、第1のバルクAと第2のバルクBとの少なくとも一方を用いて定義される。このため、セルの配置に自由度が少なくなる。例えば、第1のバルクAと第2のバルクBをそれぞれ1個使用するセルは、第1のバルクAと第2のバルクBとが隣接する場所にしか配置できない。 A cell (gate array cell) to be formed in the gate array is designed according to the bulk to be used. That is, in the case of the gate array shown in FIG. 20A, a cell is defined using at least one of the first bulk A and the second bulk B. For this reason, the degree of freedom in arranging the cells is reduced. For example, a cell using one each of the first bulk A and the second bulk B can be arranged only at a place where the first bulk A and the second bulk B are adjacent to each other.
このため、特定の列に対してセルが集中して配置されることになる。すると、セルに接続される配線も集中することになり、信号配線の収束性、即ち全ての信号配線を接続することができにくくなる場合がある。このように、チップサイズを縮小する妨げとなっていた。 For this reason, cells are concentrated on a specific column. Then, wirings connected to the cells are also concentrated, and there are cases where it is difficult to connect all the signal wirings, that is, the convergence of the signal wirings. Thus, it has been an obstacle to reducing the chip size.
本発明の一観点によれば、所定の機能を有するユニットセルに用いられるバルクの並び順に対する制約情報に従って複数種類のバルクを配置した列を生成する工程と、前記列に前記ユニットセルを配置する工程と、前記バルクの種類毎に使用情報を生成し、前記使用情報に基づいて、複数種類の前記バルクの配置の均等性を判定する工程と、を含む。 According to one aspect of the present invention, a step of generating a column in which a plurality of types of bulks are arranged according to constraint information on a bulk arrangement order used for unit cells having a predetermined function, and the unit cells are arranged in the columns. And a step of generating usage information for each type of the bulk and determining the uniformity of arrangement of the plurality of types of the bulk based on the usage information.
本発明の一観点によれば、チップサイズの縮小を図ることができる。 According to one aspect of the present invention, the chip size can be reduced.
以下、一実施形態を図面に従って説明する。
図1に示すように、設計支援装置11は、例えば一般的な設計支援装置(CAD:Computer Aided Design )であり、中央処理装置(以下、CPUという)12、メモリ13、記憶装置14、表示装置15、入力装置16、及び、ドライブ装置17により構成され、それらはバス18を介して相互に接続されている。この設計支援装置11は、半導体装置に形成するユニットセルを作成するデータ作成装置として機能する。また、設計支援装置11は、ユニットセルを用いて半導体装置に形成するパターンを作成するデータ作成装置として機能する。
Hereinafter, an embodiment will be described with reference to the drawings.
As shown in FIG. 1, the
CPU12は、メモリ13を利用してプログラムを実行し、半導体装置の設計等の必要な処理を実現する。メモリ13には、各種処理を提供するために必要なプログラムとデータが格納され、メモリ13としては、通常、キャッシュ・メモリ、システム・メモリおよびディスプレイ・メモリを含む。
The
表示装置15は、パターン表示、パラメータ入力画面等の表示に用いられ、これにはCRT,LCD,PDP等が用いられる。入力装置16は、ユーザからの要求や指示,パターン,パラメータの入力に用いられ、これにはキーボードおよびマウス装置(図示せず)等が用いられる。設計支援装置11は、ライブラリに基づくユニットセルのパターン(図形)、バルクの配列状態、検証結果、等を表示装置15に表示させることもできる。
The
記憶装置14は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置を含む。この記憶装置14には、半導体装置(半導体集積回路装置)を設計するためのプログラムデータを含むファイルが格納され、CPU12は、入力装置16による指示に応答しているプログラムをメモリ13へ転送し、それを実行する。
The
この設計支援装置11において、記憶装置14には図3〜5に示すファイルが格納される。これらのファイルには、半導体装置を製造するために用いられる各種データ、図3〜図5に示す各処理においてCPU12が作成する各種データが格納される。尚、各ファイルに格納されるデータについては後述する。設計支援装置11は、記憶装置14のファイルに格納されたデータを読み出し、そのデータに基づいて、半導体装置の設計データ(例えばレイアウトデータ)を作成する。そして、設計支援装置11は、作成したデータを含むファイルを記憶装置14に格納する。
In the
CPU12が実行するプログラムデータは、記録媒体19にて提供される。ドライブ装置17は、記録媒体19を駆動し、その記憶内容にアクセスする。CPU12は、ドライブ装置17を介して記録媒体19からプログラムデータを読み出し、それを記憶装置14にインストールする。
Program data executed by the
記録媒体19としては、磁気テープ(MT)、メモリカード、フレキシブルディスク、光ディスク(CD-ROM,DVD-ROM,… )、光磁気ディスク(MO,MD,…)等、任意のコンピュータ読み取り可能な記録媒体を使用することができる。この記録媒体19に、上述のプログラム,データを格納しておき、必要に応じて、メモリ13にロードして使用することもできる。
As the
尚、記録媒体19には、通信媒体を介してアップロード又はダウンロードされたプログラムデータを記録した媒体、ディスク装置を含む。更に、コンピュータによって直接実行可能なプログラムを記録した記録媒体だけでなく、いったん他の記録媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記録媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記録媒体も含む。
The
次に、設計処理の概要を図2に従って説明する。
ステップ21(ユニットセル作成工程)において、設計支援装置11は、チップに搭載するユニットセルが使用するバルク及びその並びを決定し、ユニットセルのレイアウトデータを生成する。
Next, an outline of the design process will be described with reference to FIG.
In step 21 (unit cell creation step), the
ステップ22(チップレイアウト工程)において、設計支援装置11は、ユニットセルのバルクに応じて、チップ上の列、及び列を構成するバルクの並びを決定する。そして、設計支援装置11は、ユニットセルを配置し、チップのレイアウトデータを生成する。
In step 22 (chip layout process), the
ステップ22は、ステップ22a〜22cのサブステップを含む。
ステップ22a(バルク領域設定)において、設計支援装置11は、バルク情報と半導体装置の論理情報に基づいて、列(バルク領域)を設定する。バルク情報は、ステップ21において設定したユニットセルが使用するバルク、バルクの並び順に対する制限情報を含む。論理情報は例えばチップに形成する回路のネットリストである。設計支援装置11は、バルク情報と論理情報とに基づいて、列に形成するバルクの種類、数、並び順を設定する。
In
ステップ22b(セル配置)において、設計支援装置11は、ステップ22aにおいて生成した列にユニットセルを配置する。次に、ステップ22c(バルク使用状況検証)において、設計支援装置11は、チップ上の列について、バルクの列使用率をバルクの種類毎に算出する。そして、設計支援装置11は、算出した列使用率に基づいて、バルクの使用状況が均等か不均等かを判定し、不均等の場合にステップ22bに戻ってセル配置を変更する。
In step 22b (cell arrangement), the
一方、設計支援装置11は、バルクの使用状況を均等と判定した場合、ステップ23に移行する。そして、ステップ23(配線工程)において、設計支援装置11は、配置したセルに対する信号配線の配置データを生成する。
On the other hand, when the
次に、ユニットセル作成処理を図3に従って説明する。
ステップ41(作成セル検討)において、設計支援装置11は、ファイル31から読み出したターゲットアプリケーションの情報と、ファイル32から読み出したプロセスルールに従って、作成するユニットセルの種類を検討する。ターゲットアプリケーション31には、ユーザが要求する半導体装置(チップ)の使用目的(アプリケーション)の情報が含まれる。アプリケーションは、例えば、デジタルスチルカメラ、プリンタ等の用途を示す情報である。作成するユニットセルは、例えば、論理積回路(AND回路),否定論理積回路(NAND回路),フリップフロップ回路(FF回路)、等の論理回路の種別、駆動能力(出力電流量)等の電気的特性が異なるバッファ回路やインバータ回路、等である。
Next, the unit cell creation process will be described with reference to FIG.
In step 41 (examination of creation cell), the
半導体装置の用途(アプリケーション)により、必要とするセルの種類(論理回路や電気的特性)が異なる。このため、設計支援装置11は、ターゲットアプリケーションの情報に基づいて、作成するセルの種類を検討する。
Depending on the application (application) of the semiconductor device, the required cell type (logic circuit and electrical characteristics) varies. Therefore, the
次に、ステップ42(レイアウト見積もり)において、設計支援装置11は、ステップ41の検討結果と、プロセスルール32に基づいて、バルクの形状を検討する。プロセスルール32には、チップを作成する製造工程における製造ルール(例えば、180nm,90nm等の線幅、配線間隔、等)が含まれる。設計支援装置11は、作成するユニットセルに対して、セルの面積を最も小さくするために、必要とするバルクの形状(バルクの構造)を見積る。
Next, in step 42 (layout estimation), the
例えば、設計支援装置11は、レイアウトが最も小さなバルク形状のセル(例えばスタンダードセル)のレイアウトを基準とする。そして、設計支援装置11は、作成するユニットセルに必要なバルクの種類及び数を洗い出す。
For example, the
次に、ステップ43(バルク種類検討)において、設計支援装置11は、ステップ42において洗い出したバルクの情報に基づいて、作成するバルクの種類の数を設定する。
ユニットセルを配置する観点では、バルクの種類が少ないほど配置の自由度が高くなり、バルク配置の均等性を良くすることができる。一方、ユニットセルのサイズ(面積)の観点では、バルクの種類が少ないと、セルサイズが大きくなり、チップサイズの増大を招く。このため、設計支援装置11は、バルク種類の組合せが異なる組合せ例を複数記憶し、洗い出したバルクの種類から、組合せ例を選択する。その組合せ例を以下に示す。
Next, in step 43 (Bulk type examination), the
From the viewpoint of arranging unit cells, the fewer the types of bulk, the higher the degree of freedom of arrangement, and the uniformity of the bulk arrangement can be improved. On the other hand, from the viewpoint of unit cell size (area), if the number of types of bulk is small, the cell size increases and the chip size increases. For this reason, the
第1の案(A案)は、2種類のバルクを含む。これらのバルクは、図13(a)に示すように、4個のトランジスタを含むバルク(以下、4Trバルク)B1Aと、図13(b)に示す8個のトランジスタを含むバルク(以下、8Trバルク)B1Bである。第2の案(B案)は、2種類のバルクを含む。これらのバルクは、図14(a)に示す6個のトランジスタを含むバルク(以下、6Trバルク)B2Aと、8TrバルクB2Bである。 The first plan (plan A) includes two types of bulk. As shown in FIG. 13A, these bulks include a bulk including four transistors (hereinafter referred to as 4Tr bulk) B1A and a bulk including eight transistors illustrated in FIG. 13B (hereinafter referred to as 8Tr bulk). ) B1B. The second plan (B plan) includes two types of bulk. These bulks are a bulk (hereinafter referred to as a 6Tr bulk) B2A including six transistors shown in FIG. 14A and an 8Tr bulk B2B.
設計支援装置11は、ターゲットアプリケーションの情報に基づいて、セル使用頻度からバルクの種類を判定する。そして、設計支援装置11は、バルクの使用状況に基づいて、各案についてセルの面積を算出する。例えば、図15に示すように、ターゲットアプリケーションがデジタルスチルカメラの場合、上記第1の案(A案)ではセルエリアが3平方μmとなり、上記第2の案(B案)では3.5平方μmとなる。従って、設計支援装置11は、デジタルスチルカメラに使用する半導体装置について、第1の案(A案)を採用する。また、ターゲットアプリケーションがプリンタの場合、上記第1の案(A案)ではセルエリアが3.2平方μmとなり、上記第2の案(B案)では2.8平方μmとなる。従って、設計支援装置11は、プリンタに使用する半導体装置について、第2の案(B案)を採用する。
The
次に、設計支援装置11は、採用したバルク種類の案に基づいて、バルクの使用状況を算出する。例えば、図16に示すように、デジタルスチルカメラの場合、4Trバルクと、8Trバルクの使用状況の割合は、50%:50%となる。また、プリンタの場合、6Trバルクと、8Trバルクの使用状況の割合は、40%:60%となる。
Next, the
次に、ステップ44(各セルのバルク割り振り)において、設計支援装置11は、作成する各ユニットセルに対して、利用するバルクを決定する。
例えば、1つのユニットセルがNAND回路の場合、このセルを4Trバルクのみを用いてレイアウトした方が良いか、8Trバルクのみを用いてレイアウトした方が良いかを、検討する。
Next, in step 44 (bulk allocation of each cell), the
For example, when one unit cell is a NAND circuit, it is examined whether it is better to lay out this cell using only 4Tr bulk or only 8Tr bulk.
ステップ45(チップサイズ見積り)において、設計支援装置11は、設定したバルクの種類、バルクを割り振るセルの種類及び数に基づいて、バルクを搭載するチップの概略サイズを見積る。例えば、設計支援装置11は、ネットリストから各ユニットセルの数を算出し、その算出結果から各バルクの使用数を算出する。そして、設計支援装置11は、バルクの数にバスクの面積を乗算し、各バルクの総面積の和に、チップにおいてバルク以外に必要とする要素(I/Oセルやパッド)の面積を加算した結果を、チップの概略サイズとする。
In step 45 (chip size estimation), the
ステップ46(チップサイズ検証)において、設計支援装置11は、ステップ45において見積もったチップのサイズが妥当か否かを判定する。設計支援装置11は、ターゲットとするチップのサイズと、ステップ45において見積もった概略サイズとを比較し、予定した数及び種類のバルクがチップに搭載可能であるか否かを判定する。そして、設計支援装置11は、搭載可能であると判定した場合には次のステップ47に移行する。一方、設計支援装置11は、搭載不可能であると判定した場合には、ステップ43又はステップ44に移行する。移行するステップは、例えば、サイズの比較結果に応じて設定される。例えば、ターゲットのサイズと見積もった概略サイズとの差が大きい場合にはステップ43へ移行し、差が小さい場合にはステップ44へ移行する。
In step 46 (chip size verification), the
ステップ47(レイアウト)において、設計支援装置11は、設定した各バルクを用いてユニットセルのレイアウトデータを作成し、その作成したレイアウトデータをユニットセルライブラリ(Unit Cell ライブラリと表記)33に格納する。ユニットセルのレイアウトデータは、ユニットセルを形成するために必要とするバルクの種類及び個数を含む。また、ユニットセルのレイアウトデータは、バルク内にあってゲート間を接続する配線のデータ、複数のバルクを用いて形成されたユニットセルにおいてバルク間を接続する配線のデータを含む。
In step 47 (layout), the
また、設計支援装置11は、作成したユニットセルのレイアウトに基づいて、バルクの並び順制約の情報を作成し、その情報をファイル34に格納する。並び順制約は、使用するバルクの種類、及び使用するバルクの並び順の定義情報である。例えば、1つのセルをチップ上に形成するためには、1つのバルクBと、2つのバルクAを必要とし、それらのバルクは「BAA」の順番で並べられていなければセルを形成することができない。また、別のセルをチップ上に形成するためには、それぞれ1つのバルクA,Bを必要とし、それらのバルクは「AB」の順番で並べられていなければセルを形成することができない。これらの場合、設計支援装置11は、各セルのバルクの並びを並び順制約として抽出し、それらの情報をファイル34に格納する。
In addition, the
次に、チップレイアウト作成処理を図4,図5に従って説明する。
図4に示すステップ61(セル種類解析)において、設計支援装置11は、タイミング制約51、ネットリスト52、ユニットセル(Unit Cell )ライブラリ33を読み込む。タイミング制約51は、タイミングを考慮した配置処理時に参照されるデータであり、回路のクロック情報、マルチパス、フォールトパス等が記述されている。ネットリスト52は、端子やユニットセル等の回路要素の接続関係を示すデータである。設計支援装置11は、読み込んだデータに基づいて、半導体装置(チップ)に搭載するユニットセルの種類を解析する。
Next, the chip layout creation process will be described with reference to FIGS.
In step 61 (cell type analysis) shown in FIG. 4, the
次に、ステップ62(バルク種毎の個数算出)において、設計支援装置11は、ステップ61において解析したセル種類に基づいて、チップ上にユニットセルを形成するために必要なバルクの個数を算出する。更に、設計支援装置11は、算出したバルクの個数に基づいて、列(ROW)に配列するバルクの個数を算出する。
Next, in step 62 (calculation of the number of each bulk type), the
ネットリストには、ネットリストに含まれるユニットセルに対して、配線により伝達される信号のタイミングを調整するために必要なセル(クロックバッファ、バッファ、インバータ、等)は含まれていない。また、上記のタイミングの調整や、半導体装置の特性(例えば消費電力)などを調整するために、ユニットセルを同じ論理構成であって電気的特性が異なるユニットセルに交換する場合がある。このような場合を想定し、列に含まれるバルクの数に対して、ネットリストに従って使用するバルクの数の比率(ロウ使用率)が設定される。設計支援装置11は、このロウ使用率に従って、ロウを構成するバルクの数を、バルクの種類毎に算出する。
The net list does not include cells (clock buffer, buffer, inverter, etc.) necessary for adjusting the timing of signals transmitted by wiring with respect to the unit cells included in the net list. In some cases, the unit cell is replaced with a unit cell having the same logical configuration and different electrical characteristics in order to adjust the timing and the characteristics (for example, power consumption) of the semiconductor device. Assuming such a case, the ratio (row usage rate) of the number of bulks used according to the netlist is set with respect to the number of bulks included in the column. The
次に、ステップ63(ROW生成)において、設計支援装置11は、ユニットセルバルク並び順制約34に基づいて、列に対するバルクの配列を決定する。設計支援装置11は、制約34に応じた数のバルクを、その制約に従って配置する。例えば、2種類のバルク(バルクAとバルクB)を同数配置する場合、図17(a)に示すように、各種類のバルクをまとめて配置することが考えられる。しかし、このように配置すると、バルクAを使用するセル、バルクBを使用するセルが隣接して配置されることになる、つまり、同様な特性のセルが集中して配置されることとなる。このため、設計支援装置11は、並び順制約34に従って、図17(b)に示すように、バルクAとバルクBを交互に配置する。このように配置することで、セルが集中配置されるのを防ぐことができる。
Next, in step 63 (ROW generation), the
そして、設計支援装置11は、並び順制約34を満足し、バルクが残った場合、つまり制約34を満足するバルクの個数が、ステップ62において算出したバルクの個数よりも少ない場合、その差の数のバルクを均等に配置する。設計支援装置11は、例えば図18に示すように、制約に従って、バルクBとバルクAを「BAA」の並びで配置した後、それぞれ同数のバルクBとバルクAを配置する。
Then, the
なお、チップ上にメモリ(RAM:Random Access Memory)を形成することもできる。この場合、ユニットセルの種類としてRAMセルを用意する。そして、設計支援装置11は、図3にステップ42においてバルク形状のレイアウトを見積もり、ラムバルク並び順制約(G/A RAM Bulk並び順制約と表記)53に基づいてバルクを配置する。
A memory (RAM: Random Access Memory) can be formed on the chip. In this case, a RAM cell is prepared as a unit cell type. Then, the
次に、ステップ64(バルク数判定)において、設計支援装置11は、ステップ63において生成した列(ROW)について、列に含まれるバルクの個数をバルクの種類毎に検証する。なお、後の工程においてセルが追加される可能性がある。追加されるセルの個数は、過去の半導体装置の設計において追加されたセルの個数を元に設定される。このため、設計支援装置11は、追加されるセルの個数を考慮したロウ使用率を設定、若しくはアプリケーションに応じた値をテーブルから読み出し、その比率に基づいて検証を行う。なお、ロウ使用率をユーザが設定し、その比率ベースで検証するようにしてもよい。設計支援装置11は、バルク数が足りているか否かを判定し、足りている(OK)場合には次のステップに移行し、足りていない(NG)場合にはステップ63に戻ってロウの再作成を行う。
Next, in step 64 (bulk number determination), the
ステップ65(並び順制約判定)において、設計支援装置11は、ステップ63において生成した列(ROW)について、列に含まれるバルクの配列が、全てのユニットセルを配置可能な配列か否かを検証する。そして、設計支援装置11は、配置可能(OK)と判定した場合には次のステップに移行し、配置不可能(NG)と判定した場合にはステップ63に戻ってロウの再作成を行う。
In step 65 (arrangement order constraint determination), the
次に、ステップ66(セル配置)において、設計支援装置11は、生成した列に対してユニットセルを配置する。
次に、ステップ67(バルク使用状況検証)において、設計支援装置11は、制御値54に基づいて、バルクの配置が均等か否かを判定する。制御値54は、検証サイズ、均等値を含む。検証サイズは、1回の検証処理において、検証の対象とするバルクが含まれる範囲(検証エリア)を示す値である。均等値は、検証サイズに含まれる各種のバルクの使用率の差に対する許容値である。
Next, in step 66 (cell arrangement), the
Next, in step 67 (bulk usage status verification), the
設計支援装置11は、検証エリアに含まれるバルクの個数(総数)と、検証エリア内において使用されたバルクの個数(使用数)を、各バルクの種類毎にカウントする。設計支援装置11は、使用率、すなわち総数に対する使用数の比率を、バルクの種類毎に算出する。そして、設計支援装置11は、各種のバルクの使用率の差を算出し、その差の値と均等値とを比較する。設計支援装置11は、使用率の差が均等値以下の場合に、配置が均等である(OK)と判定し、次のステップに移行する。一方、使用率の差が均等値より大きい場合、設計支援装置11は、配置が均等ではない(NG)と判定し、ステップ66に移行する。つまり、設計支援装置11は、バルクの配置が均等である(OK)と判定するまでステップ66の処理を繰り返し実行する。
The
図5に示すステップ68(クロックツリー生成:CTS:Clock Tree Synthesis)において、設計支援装置11は、ネットリスト52に基づいて、クロックツリー、すなわちユニットセルにクロック信号を供給する経路(パス)を形成する。クロックツリーは、パス中に含まれるクロックバッファと、セル間を接続する配線を含む。設計支援装置11は、クロックバッファの配置情報(座標値)と、配線の配置情報(配線層、配線位置)を生成する。
In step 68 (clock tree generation: CTS) shown in FIG. 5, the
次に、ステップ69(バルク使用状況検証)において、設計支援装置11は、制御値54に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置11は、配置が均等ではない(NG)と判定したばあいにステップ70に移行し、配置が均等である(OK)と判定した場合にステップ71に移行する。
Next, in step 69 (bulk usage status verification), the
ステップ70(均等配置)において、設計支援装置11は、バルクの配置が均等となるように、セルの配置位置を変更する。例えば、設計支援装置11は、バルクの使用率が高いエリアのユニットセルを、バルクの使用率が低いエリアに移動させる。
In step 70 (equal layout), the
使用するバルクが異なるユニットセルは、ユニットセルのサイズや、配線を接続するためにセルに形成される端子の数が異なる。バルクの使用率を均一化することは、そのブロック(エリア)に含まれるユニットセルの密度や、端子の数の均一化につながる。ユニットセルの密度が低くなると、その分、チップサイズの縮小を図ることや、セル間等を接続する配線を形成し易くする。また、端子の数を均一化することにより、配線の集中を防止して、未結線配線の発生を抑制し、設計時間の短縮を図ることができる。 Unit cells having different bulks to be used differ in the size of the unit cell and the number of terminals formed in the cell for connecting wiring. Making the bulk usage rate uniform leads to uniform density of unit cells and the number of terminals included in the block (area). When the density of the unit cells is reduced, the chip size is reduced correspondingly, and the wiring connecting the cells is easily formed. Further, by making the number of terminals uniform, concentration of wiring can be prevented, generation of unconnected wiring can be suppressed, and design time can be shortened.
ステップ71(電源電圧検証:IR−DROP検証)において、設計支援装置11は、配置したセルの情報に基づいて、電源配線におけるチップ内部の電位降下を検証する。例えば、設計支援装置11は、シミュレーション(電源配線による抵抗網解析)により、チップ内部の電圧降下を算出する。そして、設計支援装置11は、算出した電圧降下により、各セルに供給される電源電圧値を算出する。そして、設計支援装置11は、算出した電源電圧値が動作保証範囲内か否かを判定する。設計支援装置11は、電源電圧値が動作保証範囲内であるときに検証OK(適合)と判定し、電源電圧値が範囲外であるときに検証NG(不適合)と判定する。
In step 71 (power supply voltage verification: IR-DROP verification), the
次に、ステップ72(検証判定)において、設計支援装置11は、ステップ71における検証結果がOKかNGかを判定する。そして、設計支援装置11は、検証結果がOKであるときにはステップ75に移行し、検証結果がNGであるときにはステップ73に移行する。
Next, in step 72 (verification determination), the
ステップ73(セル再配置)において、設計支援装置11は、セルの再配置を行う。
次に、ステップ74(バルク使用状況検証)において、設計支援装置11は、制御値54に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置11は、配置が均等である(OK)と判定した場合にステップ75に移行し、配置が均等ではない(NG)と判定したばあいにステップ73に移行する。つまり、設計支援装置11は、バルクの配置が均等である(OK)と判定するまでステップ73の処理を繰り返し実行する。
In step 73 (cell rearrangement), the
Next, in step 74 (bulk usage status verification), the
なお、クロックツリーに含まれるクロックバッファは、入力信号(クロック信号)に応答して出力信号を変更するため、他の論理回路を構成するセルに比べて動作が多く、消費電力が高い。設計支援装置11は、バルクの配置が均等となる、未使用又は使用したバルクの数が、各検証エリア、バルクの種類に対して、均等となるように、ユニットセルを配置する。従って、クロックバッファも分散して配置されるため、チップにおいて、消費電力の分布が集中しにくくなる。
Note that the clock buffer included in the clock tree changes an output signal in response to an input signal (clock signal), and thus operates more than a cell constituting another logic circuit and consumes high power. The
消費電力が高いセルが集中して配置されると、その配置された領域における電源電圧降下が、他の領域におけるそれよりも大きくなるため、ステップ72の検証において、電圧降下が規定よりも大きくなる場合がある。しかし、設計支援装置11はクロックバッファ等を均等配置するため、電圧降下が大きいセルが集中して配置されなくなり、NGと判定されにくくなる。このことは、設計時間を短縮させる要因となり、設計期間の短縮、コスト低減に寄与する。
When cells with high power consumption are arranged in a concentrated manner, the power supply voltage drop in the arranged region becomes larger than that in other regions, and therefore the voltage drop becomes larger than specified in the verification in
次に、ステップ75(信号配線)において、設計支援装置11は、ネットリスト52に基づいて、回路要素を接続する信号配線の情報を生成する。そして、設計支援装置11は、ユニットセルや配線を含むチップのレイアウトデータ(図示略)を記憶装置14に記憶する。
Next, in step 75 (signal wiring), the
次に、ステップ76(タイミング検証)において、設計支援装置11は、チップに形成する配線について、タイミング検証を行う。設計支援装置11は、ユニットセルや配線の電気的特性、配線長などに基づいてタイミング解析(例えば、静的タイミング解析)を行い、その解析結果に基づいて、タイミングエラーの原因(クロック・スキュー、グリッチ、等)の有無を検証する。
Next, in step 76 (timing verification), the
次に、ステップ77(検証判定)において、設計支援装置11は、検証結果に基づいて、タイミングエラーの原因が存在しない(OK)の場合に処理を終了する。一方、検証結果に基づいて、タイミングエラーの原因が存在する(NG)の場合、設計支援装置11はステップ78に移行する。
Next, in step 77 (verification determination), the
ステップ78(セル挿入)において、設計支援装置11は、タイミングエラーを解消するように、挿入するユニットセル(例えばバッファ)の選択と、ユニットセルを挿入する箇所(ネット)を設定する。そして、ステップ79(セル再配置)において、設計支援装置11は、ステップ78において設定したユニットセルを、該当する列に挿入する。そして、設計支援装置11は、ユニットセルや配線を含むチップのレイアウトデータ(図示略)を記憶装置14に記憶する。
In step 78 (cell insertion), the
次に、ステップ80(バルク使用状況検証)において、設計支援装置11は、制御値54に基づいて、バルクの配置が均等か否かを判定する。そして、設計支援装置11は、配置が均等である(OK)と判定した場合に処理を終了する。一方、配置が均等ではない(NG)と判定した場合、設計支援装置11は、ステップ79に移行する。つまり、設計支援装置11は、バルクの配置が均等である(OK)と判定するまでステップ79の処理を繰り返し実行する。
Next, in step 80 (bulk usage status verification), the
次に、バルクのレイアウト例を用いて上記の処理を説明する。
図6(a)には、単一のバルク(図中「A」と表記)を用いたチップレイアウトの一部が示されている。このチップの場合、ROW(列)は、1種類のバルクAにより構成される。このようにバルクが形成されたチップには、バルクAを用いたユニットセルが配置される。
Next, the above processing will be described using a bulk layout example.
FIG. 6A shows a part of a chip layout using a single bulk (indicated as “A” in the figure). In the case of this chip, the ROW (column) is composed of one type of bulk A. A unit cell using the bulk A is arranged on the chip in which the bulk is formed in this way.
図6(b)には、2つのバルク(図中「A」「B」と表記)を用いたチップレイアウトの一部が示されている。このチップの場合、ROW(列)は、1個のバルクBと2個のバルクAの割合で構成されている。このように、バルクが形成されたチップには、バルクAを用いたユニットセル、バルクBを用いたユニットセル、バルクA及びバルクBを用いたユニットセルが配置される。 FIG. 6B shows a part of a chip layout using two bulks (indicated as “A” and “B” in the figure). In the case of this chip, ROW (column) is composed of a ratio of one bulk B and two bulk A. Thus, on the chip in which the bulk is formed, a unit cell using the bulk A, a unit cell using the bulk B, and a unit cell using the bulk A and the bulk B are arranged.
図1に示す設計支援装置11は、チップに形成するバルクに従ってユニットセルを配置する。そして、設計支援装置11は、列に含まれるバルクに対して配置したセルが使用するバルクの比率をロウ使用率として、各バルクの種類毎に算出する。
The
例えば、図7(a)に示すように、チップに形成される各列R1は、バルクAとバルクBを含む。尚、図7(a)は、検証エリアK1に含まれる列R1及びバルクA,Bを示している。 For example, as shown in FIG. 7A, each row R1 formed in the chip includes a bulk A and a bulk B. FIG. 7A shows the row R1 and the bulks A and B included in the verification area K1.
設計支援装置11は、図7(a)に示す列に対して、図7(b)に示すように、セルを配置する。なお、図7(b)において、ハッチングによりユニットセルを配置したバルクを示している。
The
そして、設計支援装置11は、各バルクにおける列使用率を算出する。図7(b)において、検証エリアK1内には、16個のバルクAが含まれ、5個のバルクAに対してユニットセルが配置されている。従って、バルクAに対する列使用率は、31.25%(=5/16×100)となる。一方、検証エリアK1内には、8個のバルクBが含まれ、3個のバルクBに対してユニットセルが配置されている。従って、バルクBに対する列使用率は、37.5%(=3/8×100)となる。
Then, the
次に、設計支援装置11は、バルクAの列使用率と、バルクBの列使用率とを比較する。そして、設計支援装置11は、その比較結果に基づいて、ユニットセルを変更する。設計支援装置11は、ユニットセルの変更として、ユニットセルの配置位置を変更する。例えば、設計支援装置11は、各バルクの列使用率の相対的な差(絶対値)と所定のしきい値とを比較し、列使用率の差がしきい値よりも大きいときに、ユニットセルを変更し、列使用率の差がしきい値以下のときにはユニットセルを変更しない。しきい値は、例えば、列に含まれるバルクの種類、各バルクの個数に応じて設定される。
Next, the
例えば、しきい値を5%とすると、図7(b)において、バルクAの列使用率とバルクBの列使用率の差が6.25%であるため、設計支援装置11は、ユニットセルを変更する。例えば、バルクAを使用するユニットセルのうちの1つと、バルクBを使用するユニットセルのうちの1つを、この検証エリアK1から他の場所へ移動させる。これにより、バルクAの列使用率と、バルクBの列使用率との均一化を図る。 For example, if the threshold is 5%, in FIG. 7B, the difference between the column usage rate of bulk A and the column usage rate of bulk B is 6.25%. To change. For example, one of the unit cells using the bulk A and one of the unit cells using the bulk B are moved from the verification area K1 to another location. Thereby, the column usage rate of the bulk A and the column usage rate of the bulk B are made uniform.
尚、列使用率の上限値を設定し、各バルクの列使用率が上限値を超えるときに、列使用率の均一化を図るようにしてもよい。各バルクの使用率が上限値よりも小さい場合、検証エリア内には使用可能な多くのバルクが含まれている。従って、各バルクの列使用率を均一化しなくても、各バルクを使用するユニットセルを自由に配置することができるからである。 Note that an upper limit value of the column usage rate may be set, and the column usage rate may be made uniform when the column usage rate of each bulk exceeds the upper limit value. When the usage rate of each bulk is smaller than the upper limit value, a lot of usable bulks are included in the verification area. Therefore, the unit cells using each bulk can be freely arranged without making the column usage rate of each bulk uniform.
次に、ユニットセルの調整について説明する。
今、一例として、図8(a)に示すように、バルクAとバルクBを使用してユニットセルが配置されている。図において、使用されたバルクAを右下がりのハッチングにて示し、使用されたバルクBを左下がりのハッチングにて示す。ハッチングが無いバルクは未使用である。この場合、バルクAの列使用率とバルクBの列使用率は、それぞれ56.25%,50%である。
Next, adjustment of the unit cell will be described.
As an example, unit cells are arranged using bulk A and bulk B as shown in FIG. In the figure, the used bulk A is indicated by a right-down hatching, and the used bulk B is indicated by a left-down hatching. Bulk without hatching is unused. In this case, the column usage rate for bulk A and the column usage rate for bulk B are 56.25% and 50%, respectively.
上記のエリア内に、例えば、4個のバッファセルを挿入する。1個のバッファセルは、4個のトランジスタにより構成される。上記したように、バルクAは4個のトランジスタを含み、バルクBは8個のトランジスタを含む。従って、図8(c)に示すように、バルクAのみを使用して4個のバッファセル91を挿入することが可能である。しかし、このようにバッファセルを挿入すると、バルクAの列使用率が81.25%となり、バルクAの列使用率が局所的に増加することになる。
For example, four buffer cells are inserted into the above area. One buffer cell is composed of four transistors. As described above, bulk A includes four transistors and bulk B includes eight transistors. Therefore, as shown in FIG. 8C, it is possible to insert four
このため、設計支援装置11は、バルクが異なるユニットセルを選択する。例えば、設計支援装置11は、挿入する4個のバッファセルのうち、図8(b)に示すように、バルクAを使用する2個のバッファセル91を選択するとともに、バルクBを使用する2個のバッファセル92を選択する。すると、バルクAの列使用率とバルクBの列使用率は、それぞれ68.75%,75%となる。このように、図8(c)に示すレイアウトに比して、図8(b)に示すレイアウトは、バルクの列使用率が均一化されている。
For this reason, the
なお、バルクBを使用するバッファセルは、バルクAを使用するバッファセルの駆動能力の1.5倍の駆動能力を持つ。つまり、設計支援装置11は、挿入するユニットセルの電気的特性の変更を許容することにより、バルクの列使用率を均一化することができる。
Note that the buffer cell using the bulk B has a driving capability 1.5 times that of the buffer cell using the bulk A. That is, the
また、別の例として、図9(a)に示すように、バルクAとバルクBを使用してユニットセルが配置されている。この場合、バルクAの列使用率とバルクBの列使用率は、それぞれ43.75%,50%である。 As another example, unit cells are arranged using bulk A and bulk B as shown in FIG. In this case, the column usage rate for bulk A and the column usage rate for bulk B are 43.75% and 50%, respectively.
上記のエリア内に、例えば、3個のバッファセルを挿入する。1個のバッファセルは、隣接する2つのバルクAを使用するように定義されている。この場合、図9(c)に示すように、2個のバッファセル93しか挿入することができない。
For example, three buffer cells are inserted into the above area. One buffer cell is defined to use two adjacent bulk As. In this case, as shown in FIG. 9C, only two
これに対し、ユニットセルライブラリ33(図3参照)には、2個のバルクAを使用するバッファセルと同じ電気的特性を有し、1個のバルクBを使用するバッファセルが定義されている。このため、設計支援装置11は、挿入するユニットセルの種類を変更する。つまり、図9(b)に示すように、バルクBを使用するバッファセル(ユニットセル)94を配置する。すると、バルクAの列使用率とバルクBの列使用率は、それぞれ68.75%,62.5%となる。このように、同じ電気的特性を有し、使用するバルクが互いに異なる2種類のバッファセル93,94を作成してユニットセルライブラリ33に登録しておくことにより、挿入するすべてのバッファセル93,94をエリア内に配置することができる。また、定義された2種類のバッファセルを用いることにより、バルクの列使用率を均一化することができる。
On the other hand, in the unit cell library 33 (see FIG. 3), a buffer cell having the same electrical characteristics as a buffer cell using two bulk A and using one bulk B is defined. . For this reason, the
次に、単一のバルクで構成したチップにおけるセル配置と、複数種類のバルクで構成したチップにおけるセル配置について説明する。
複数種類のバルクにより構成されるユニットセルは、使用するバルクの配列に応じて、配置位置に制約を受ける。例えば、図10(a)に示すように、バルクBとバルクAをそれぞれ1つ使用するユニットセル101の場合、図中に黒丸で示す点を基準点として列R2に配置される。
Next, cell arrangement in a chip constituted by a single bulk and cell arrangement in a chip constituted by a plurality of types of bulk will be described.
A unit cell composed of a plurality of types of bulks is restricted in arrangement position depending on the arrangement of bulks to be used. For example, as shown in FIG. 10A, in the case of the
一方、図10(b)に示すように、1種類のバルクにより構成されるユニットセル102は、図中に黒丸で示す点を基準点として列R3に配列される、つまり、バルクの配列ピッチで配置の基準点を設定することができるため、配置の自由度が複数種類のバルクを用いた場合に比して高い。
On the other hand, as shown in FIG. 10B, the
しかし、複数種類のバルクにより構成されたユニットセルは、単一種類のバルクにより構成されたユニットセルよりも、セル面積が小さくなる。従って、単位面積あたりのセル数が、単一種類のバルクを形成したチップよりも多くなる、すなわち集積度が高くなる。そして、複数種類のバルクにより構成されるユニットは、単一種類のバルクにより構成されるユニットセルのレイアウトを利用して作成することが可能である。従って、ユニットセルをいちから作成する場合に比して、設計にかかる時間が短い、すなわち開発コストをかけることなくユニットセルを作成することができる。また、チップ上のバルクは、制約にしたがって規則的に配列(レイアウト)される。このため、ユニットセルの電気的特性のばらつきを抑えることができる。 However, a unit cell constituted by a plurality of types of bulk has a smaller cell area than a unit cell constituted by a single type of bulk. Therefore, the number of cells per unit area is larger than that of a chip on which a single type of bulk is formed, that is, the degree of integration is increased. A unit composed of a plurality of types of bulks can be created using a unit cell layout composed of a single type of bulk. Therefore, compared with the case where the unit cell is created from the beginning, the time required for the design is short, that is, the unit cell can be created without incurring development costs. Further, the bulk on the chip is regularly arranged (laid out) according to the constraints. For this reason, the dispersion | variation in the electrical property of a unit cell can be suppressed.
複数種類のバルクを用いた場合、バルクの種類に応じて回路を分けることができる。ユニットセルは、例えば、AND回路やNAND回路等の組合回路と、フリップフロップ回路やラッチ回路等の順序回路とに分けられる。一般的に、組合回路と順序回路は、図11に示すように、セル面積については組合せ回路が順序回路よりも小さく、端子密度については組合せ回路が順序回路よりも高い。そして、組合せ回路をバルクAを用いて構成し、順序回路をバルクBを用いて形成される。端子密度が高い回路は、その端子に接続される配線の数が多いため、その回路の周辺に配線の混雑を招く。 When multiple types of bulk are used, the circuit can be divided according to the type of bulk. The unit cell is divided into, for example, a combinational circuit such as an AND circuit or a NAND circuit and a sequential circuit such as a flip-flop circuit or a latch circuit. In general, in the combinational circuit and the sequential circuit, as shown in FIG. 11, the combinational circuit is smaller than the sequential circuit in terms of cell area, and the combinational circuit is higher than the sequential circuit in terms of terminal density. The combinational circuit is configured using the bulk A, and the sequential circuit is formed using the bulk B. Since a circuit with a high terminal density has a large number of wirings connected to the terminals, the wiring is congested around the circuit.
しかし、設計支援装置11は、制約にしたがうものの、複数種類のバルクを均等的に配置する。したがって、端子密度が高いセルが集中されにくくなるため、配線の混雑を低減することが可能となる。また、クロックバッファのように、消費電力が大きいユニットセルは、分散して配置されることになるため、エリア毎の消費電力のバラツキが抑えられることになる。この結果、特定箇所での電圧降下が発生しにくくなる。
However, the
次に、ユニットセルとチップの列について説明する。
設計支援装置11は、図3に示すフローチャートに従って、ユニットセルと並び順制約を生成する。そして、設計支援装置11は、並び順制約に従ってチップの列にバルクを配置し、ユニットセルを配置する。
Next, a column of unit cells and chips will be described.
The
チップに形成するユニットセルは、チップを使用する目的(アプリケーション)や、チップに形成する回路(ネットリスト)に応じて設定される。上記したように、アプリケーションに応じて回路が設計され、ネットリストが生成される従って、アプリケーションの情報や、ネットリストにより、使用するバルク、各種類のバルクの個数の割合を判断することができる。これにより、チップの列に形成するバルクの割合を設定することができる。そして、ユニットセルのレイアウト、つまりバルクの並び順により、列におけるバルクの並び順序を設定することができる。 The unit cell formed on the chip is set according to the purpose (application) of using the chip and the circuit (net list) formed on the chip. As described above, a circuit is designed according to an application, and a net list is generated. Therefore, the bulk to be used and the ratio of the number of each type of bulk can be determined from the application information and the net list. Thereby, the ratio of the bulk formed in the chip row can be set. Then, the arrangement order of the bulk in the column can be set by the layout of the unit cells, that is, the arrangement order of the bulk.
従って、図12(a)に示すように、バルクAの個数がバルクBの個数よりも多く設定された列や、図12(b)に示すように、バルクAの個数がバルクBの個数よりも少なく設定された列等が形成される。そして、バルクAとバルクBの並び順序が設定される。例えば、バルクBとバルクAをそれぞれ1個含むユニットセルの場合、このユニットセルを図12(a)に示す列では3個配置することができる。しかし、図12(b)に示す列では2個、図17(a)に示す列では1個しか配置することができない。 Accordingly, as shown in FIG. 12A, a column in which the number of bulk A is set larger than the number of bulk B, or the number of bulk A is larger than the number of bulk B as shown in FIG. A row or the like set with a minimum number is formed. Then, the arrangement order of bulk A and bulk B is set. For example, in the case of unit cells each including one bulk B and one bulk A, three unit cells can be arranged in the column shown in FIG. However, only two in the column shown in FIG. 12B and one in the column shown in FIG. 17A can be arranged.
このように、ユニットセルを構成するバルクの種類及び配列と、チップ上の列を構成するバルクの比率及び配列とを対応させることにより、ユニットセルを確実に配置すること、使用するバルクを均一化すること、ユニットセルの面積を縮小してチップのサイズを縮小することができる。 In this way, by associating the types and arrangement of the bulks that make up the unit cells with the proportions and arrangements of the bulks that make up the columns on the chip, the unit cells can be reliably arranged and the bulk used can be made uniform. In addition, the size of the chip can be reduced by reducing the area of the unit cell.
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)設計支援装置11は、作成したユニットセルに応じて、複数種類のバルクを配置した列(バルク領域)を設定し(ステップ22a)し、列にユニットセルを配置する(ステップ22b)。設計支援装置11は、列におけるバルクの使用情報をバルクの周類毎に生成し、その使用情報に基づいてバルクの使用状況を検証する(ステップ22c)。そして、設計支援装置11は、バルクの配置が均等ではない場合にユニットセルの配置を変更するようにした。
As described above, according to the present embodiment, the following effects can be obtained.
(1) The
ユニットセルを複数種類のバルクにより構成することで、ユニットセルのサイズを、単一のバルクを用いたユニットセルに比して小さくすることができる。また、ユニットセルが使用するバルクに応じて列を生成することにより、ユニットセルを効率よく列に配置することができる。この結果、ユニットセルの集積度が上がるため、チップサイズの縮小を図ることができる。 By configuring the unit cell with a plurality of types of bulk, the size of the unit cell can be made smaller than that of a unit cell using a single bulk. Further, by generating a column according to the bulk used by the unit cell, the unit cell can be efficiently arranged in the column. As a result, the integration density of the unit cells is increased, so that the chip size can be reduced.
(2)設計支援装置11は、列におけるバルクの列使用率をバルクの種類毎に算出し、各種類のバルクの列使用率が均一となるように、ユニットセルの配置位置を変更するようにした。その結果、クロックツリーの生成やタイミング検証結果に応じて追加するユニットセルを配置することが可能となる。このため、チップサイズを増大させる必要がなく、見積もったサイズのチップにより形成する、つまりチップサイズの縮小を図ることができる。また、ユニットセルが配置できずにチップ全体の配置をやり直す等の手戻りの発生が無くなるため、設計期間の短縮を図ることができる。
(2) The
(3)設計支援装置11は、ターゲットアプリケーション31に基づいて、ユニットセルのレイアウトデータを生成し、レイアウトデータを含むユニットセルライブラリ33と、ユニットセルに使用されるバルクに対する並び順制約34とを生成する。このように、ターゲットとするアプリケーションに応じたユニットセルを作成することにより、ターゲットアプリケーションに対応してチップのサイズを縮小することが可能となる。
(3) The
尚、上記実施形態は、以下の態様で実施してもよい。
・上記実施形態において、ユニットセルを変更して使用するバルクの均等化を図るようにしてもよい。その場合の処理を図19に示す。
In addition, you may implement the said embodiment in the following aspects.
-In the said embodiment, you may make it aim at equalization of the bulk used by changing a unit cell. The process in that case is shown in FIG.
設計支援装置11は、ステップ111において、ユニットセルを概略配置する。概略配置は、ユニットセルが含まれるブロック(例えば検証エリア)を決定する処理である。
次に、ステップ112において、設計支援装置11は、制御値54に従ってバルクの配置が均等か否かを判定する。これにより、設計支援装置11は、ブロックにおける配置混雑度を確認する。そして、設計支援装置11は、配置が均等ではない(図中NG)の場合にステップ113に移行し、配置が均等である(図中OK)場合にステップ114に移行する。
In step 111, the
Next, in
ステップ113において、設計支援装置11は、セルを変更する。設計支援装置11は、列使用率の大きいバルクを使用するユニットセルを、列使用率が小さいバルクを使用するユニットセルに変更する。このとき、設計支援装置11は、以下の何れかの方法により、セルを変更する。
In
1.駆動能力及び使用するバルクが異なるユニットセルに変更する。
2.駆動能力が同じで使用するバルクが異なるユニットセルに変更する。
例えば、バルクAを使用するバッファ回路を、同じ電気的特性を有しバルクBを使用するバッファ回路に変更する。また、バルクAを使用するインバータ回路を、バルクBを使用し入力端子の1つを除いてHレベルに固定された入力端子を有するナンド回路に変更する。そして、設計支援装置11は、ステップ111に移行する。
1. Change to a unit cell with different driving capacity and bulk to be used.
2. Change to a unit cell with the same drive capability but different bulk.
For example, a buffer circuit that uses bulk A is changed to a buffer circuit that has the same electrical characteristics and uses bulk B. Further, the inverter circuit that uses the bulk A is changed to a NAND circuit that uses the bulk B and has an input terminal fixed at the H level except for one of the input terminals. Then, the
このように、設計支援装置11は、バルクの配置を均等にするまで、ステップ111〜113の処理を繰り返す。そして、バルクの配置が均等になると、設計支援装置11はステップ114に移行する。
As described above, the
ステップ114において、設計支援装置11は、セルの詳細配置を行う。詳細配置は、ブロックに含まれるユニットセルの配置位置を決定する処理である。設計支援装置11は、各ユニットセルの配置位置を決定する。
In step 114, the
・上記実施形態において、設計支援装置11がユニットセルを配置する際に、バルクの列使用率を考慮しながら配置することで、バルク使用状況検証のステップを省略することが可能となる。
In the above-described embodiment, when the
11 設計支援装置
31 ターゲットアプリケーション
32 プロセスルール
33 ユニットセルライブラリ
34 バルク並び順制約
51 タイミング制約
52 ネットリスト
54 制御値(検証サイズ、均等値)
A,B バルク
11
A, B bulk
Claims (8)
前記列に前記ユニットセルを配置する工程と、
前記バルクの種類毎に使用情報を生成し、前記使用情報に基づいて、複数種類の前記バルクの配置の均等性を判定する工程と、
を含むことを特徴とする半導体装置の設計方法。 Generating a column in which a plurality of types of bulks are arranged according to constraint information on the order of bulks used for unit cells having a predetermined function;
Arranging the unit cells in the row;
Generating usage information for each type of the bulk, and determining the uniformity of the arrangement of the plurality of types of the bulk based on the usage information;
A method for designing a semiconductor device, comprising:
ターゲットアプリケーションに基づいて作成するユニットセルを検討する工程と、
前記ユニットセルの検討結果に基づきレイアウト見積もりを行う工程と、
前記作成するユニットセルに使用するバルクの種類と数を、前記ユニットセルのサイズが小さくなるように設定する工程と、
前記ユニットセルにバルクを割り振る工程と、
前記バルクの種類と数に基づいて半導体装置のチップサイズを見積る工程と、
前記ユニットセルのレイアウトデータを生成し、前記レイアウトデータを含むライブラリと、前記ユニットセルに使用されるバルクに対する並び順制約とを生成する工程と、
を含むことを特徴とする請求項1又は2記載の半導体装置の設計方法。 Additional steps to consider the unit cell to be created based on the target application,
A step of performing layout estimation based on the result of examination of the unit cell;
Setting the type and number of bulk used for the unit cell to be created so that the size of the unit cell is reduced;
Allocating bulk to the unit cells;
Estimating the chip size of the semiconductor device based on the type and number of the bulk; and
Generating layout data of the unit cell, generating a library including the layout data, and an arrangement order constraint for a bulk used for the unit cell;
The method of designing a semiconductor device according to claim 1, wherein:
前記ユニットセルの種類に基づいて、必要なバルクの個数をバルクの種類毎に算出する工程と、
前記並び順制約と、算出した前記バルクの個数に従って、複数種類のバルクを配置した列を生成する工程と、
を含むことを特徴とする請求項1〜3のうちの何れか一項に記載の半導体装置の設計方法。 A step of setting a necessary unit cell type based on a net list of a semiconductor device;
Based on the type of unit cell, calculating the required number of bulk for each type of bulk,
Generating a row in which a plurality of types of bulks are arranged according to the arrangement order constraint and the calculated number of bulks;
The method for designing a semiconductor device according to any one of claims 1 to 3, further comprising:
ことを特徴とする請求項1〜4のうちの何れか一項に記載の半導体装置の設計方法。 The number of bulks included in the verification area and the number of bulks where the unit cells are arranged are calculated for each type of the bulk, and the number of bulks where the unit cells are arranged relative to the number of bulks included in the verification area Calculating the ratio of the number as the column usage of the bulk and comparing the column usage of each type to determine the uniformity of the arrangement of the bulk,
The method for designing a semiconductor device according to claim 1, wherein:
前記ユニットセルを配置する工程は、
前記ユニットセルの概略配置を行う工程と、
前記バルクの均等性を判定する工程と、
前記判定結果に応じて、前記バルクが均等に配置されていない場合に、ユニットセルを変更する工程と、
前記判定結果に応じて、前記バルクが均等に配置されている場合に、前記ユニットセルの詳細配置を行う工程と、
を含むことを特徴とする請求項1〜5のうちの何れか一項に記載の半導体装置の設計方法。 Appendix The step of arranging the unit cell includes:
Performing a schematic arrangement of the unit cells;
Determining the bulk uniformity;
According to the determination result, when the bulk is not evenly arranged, changing the unit cell;
According to the determination result, when the bulk is arranged uniformly, the step of performing the detailed arrangement of the unit cells;
The method for designing a semiconductor device according to claim 1, comprising:
所定の機能を有するユニットセルに用いられるバルクの並び順に対する制約情報に従って複数種類のバルクを配置した列を生成する工程と、
前記列に前記ユニットセルを配置する工程と、
前記バルクの種類毎に使用情報を生成し、前記使用情報に基づいて、複数種類の前記バルクの配置の均等性を判定する工程と、
を含むことを特徴とするプログラム。 A program executed by a design support device for generating layout data of a semiconductor device,
Generating a column in which a plurality of types of bulks are arranged according to constraint information on the order of bulks used for unit cells having a predetermined function;
Arranging the unit cells in the row;
Generating usage information for each type of the bulk, and determining the uniformity of the arrangement of the plurality of types of the bulk based on the usage information;
The program characterized by including.
所定の機能を有するユニットセルに用いられるバルクの並び順に対する制約情報に従って複数種類のバルクを配置した列を生成する工程と、
前記列に前記ユニットセルを配置する工程と、
前記バルクの種類毎に使用情報を生成し、前記使用情報に基づいて、複数種類の前記バルクの配置の均等性を判定する工程と、
を実行することを特徴とする設計支援装置。 A design support apparatus for generating layout data of a semiconductor device,
Generating a column in which a plurality of types of bulks are arranged according to constraint information on the order of bulks used for unit cells having a predetermined function;
Arranging the unit cells in the row;
Generating usage information for each type of the bulk, and determining the uniformity of the arrangement of the plurality of types of the bulk based on the usage information;
A design support apparatus characterized by executing
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010079724A JP5531723B2 (en) | 2010-03-30 | 2010-03-30 | Semiconductor device design method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010079724A JP5531723B2 (en) | 2010-03-30 | 2010-03-30 | Semiconductor device design method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011210189A true JP2011210189A (en) | 2011-10-20 |
JP5531723B2 JP5531723B2 (en) | 2014-06-25 |
Family
ID=44941138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010079724A Expired - Fee Related JP5531723B2 (en) | 2010-03-30 | 2010-03-30 | Semiconductor device design method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5531723B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013239069A (en) * | 2012-05-16 | 2013-11-28 | Denso Corp | Method of designing semiconductor integrated circuit and design device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015070112A (en) * | 2013-09-30 | 2015-04-13 | 光俊 菅原 | Design method of da converter to be incorporated in lsi |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0325953A (en) * | 1989-06-23 | 1991-02-04 | Toshiba Corp | Automatic floor plan arithmetic unit |
JPH03211875A (en) * | 1990-01-17 | 1991-09-17 | Fujitsu Ltd | Automatically disposing method for semiconductor integrated circuit |
JPH05267624A (en) * | 1992-03-17 | 1993-10-15 | Nec Ic Microcomput Syst Ltd | Semiconductor integrated circuit device |
JPH06177750A (en) * | 1992-12-01 | 1994-06-24 | Kawasaki Steel Corp | Logic synthesizer for gate array |
JPH09185641A (en) * | 1995-12-27 | 1997-07-15 | Yamaha Corp | Arrangement design method for standard cell |
JPH10116970A (en) * | 1996-10-15 | 1998-05-06 | Matsushita Electron Corp | Method for automatically designing layout of master slice |
JP2006156929A (en) * | 2004-04-19 | 2006-06-15 | Fujitsu Ltd | Semiconductor integrated circuit and designing method therefor |
-
2010
- 2010-03-30 JP JP2010079724A patent/JP5531723B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0325953A (en) * | 1989-06-23 | 1991-02-04 | Toshiba Corp | Automatic floor plan arithmetic unit |
JPH03211875A (en) * | 1990-01-17 | 1991-09-17 | Fujitsu Ltd | Automatically disposing method for semiconductor integrated circuit |
JPH05267624A (en) * | 1992-03-17 | 1993-10-15 | Nec Ic Microcomput Syst Ltd | Semiconductor integrated circuit device |
JPH06177750A (en) * | 1992-12-01 | 1994-06-24 | Kawasaki Steel Corp | Logic synthesizer for gate array |
JPH09185641A (en) * | 1995-12-27 | 1997-07-15 | Yamaha Corp | Arrangement design method for standard cell |
JPH10116970A (en) * | 1996-10-15 | 1998-05-06 | Matsushita Electron Corp | Method for automatically designing layout of master slice |
JP2006156929A (en) * | 2004-04-19 | 2006-06-15 | Fujitsu Ltd | Semiconductor integrated circuit and designing method therefor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013239069A (en) * | 2012-05-16 | 2013-11-28 | Denso Corp | Method of designing semiconductor integrated circuit and design device |
Also Published As
Publication number | Publication date |
---|---|
JP5531723B2 (en) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8694934B2 (en) | Method and apparatus for multi-die thermal analysis | |
US9767240B2 (en) | Temperature-aware integrated circuit design methods and systems | |
US9740815B2 (en) | Electromigration-aware integrated circuit design methods and systems | |
CN107066681A (en) | The computer implemented method of integrated circuit and manufacture integrated circuit | |
US7454724B2 (en) | Method and apparatus distribution power suply pad of semiconductor integrated circuit | |
US11030383B2 (en) | Integrated device and method of forming the same | |
CN104981805A (en) | Automatic clock tree routing rule generation | |
CN107403024A (en) | The analysis method and computer-readable recording medium of IC voltage drop and electromigration | |
CN112100971A (en) | Method for constructing hierarchical clock tree for integrated circuit | |
Kahng et al. | PROBE: A placement, routing, back-end-of-line measurement utility | |
US20130290914A1 (en) | Methods and Apparatus for Floorplanning and Routing Co-Design | |
JP5531723B2 (en) | Semiconductor device design method and program | |
Lu et al. | Clock mesh synthesis with gated local trees and activity driven register clustering | |
Kabir et al. | Holistic Chiplet–Package Co-Optimization for Agile Custom 2.5-D Design | |
TW202129529A (en) | Integrated circuit layout | |
JP4053767B2 (en) | Power supply wiring design method, power supply wiring design apparatus, recording medium, and program | |
US9177090B1 (en) | In-hierarchy circuit analysis and modification for circuit instances | |
Stringfellow et al. | Decoupling capacitance estimation, implementation, and verification: A practical approach for deep submicron SoCs | |
US11816407B1 (en) | Automatic channel identification of high-bandwidth memory channels for auto-routing | |
JP2004178501A (en) | Design method of and design device for semiconductor integrated circuit device | |
JP4824785B2 (en) | Core size estimation method, chip size estimation method and design apparatus | |
EP4152201A1 (en) | Systems and methods for circuit design dependent programmable maximum junction temperatures | |
Chu | ABOUT THIS CHAPTER | |
JP3705737B2 (en) | Semiconductor integrated circuit layout method | |
US9026475B2 (en) | Area trim service business method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130806 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131002 |
|
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: 20140325 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140407 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5531723 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |