半導体設計装置、半導体設計方法及びプログラム
【課題】信号の重要度を考慮に入れたセルの自動配置を行うアルゴリズムは存在しない。従って、重要配線が不必要に長くなる場合がある。重要配線が長くなると、重要配線を伝達する信号を劣化させる原因となり得る。そのため、信号の重要度を考慮に入れたセルの自動配置を行うことで、重要度の高い信号の品質を維持する半導体装置を設計できる半導体設計装置、が望まれる。
【解決手段】半導体設計装置は、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、配線情報抽出部が抽出した重要配線及びセル接続数に応じて、複数のセルの配置を決定するセル自動配置部と、を備えている。
【解決手段】半導体設計装置は、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、配線情報抽出部が抽出した重要配線及びセル接続数に応じて、複数のセルの配置を決定するセル自動配置部と、を備えている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体設計装置、半導体設計方法及びプログラムに関する。特に、セルを自動配置する半導体設計装置、半導体設計方法及びプログラムに関する。
【背景技術】
【0002】
半導体装置のレイアウト設計において、セル(インバータ等の半導体素子)の自動配置が行われる。その際、予め指定された配置順に従ってセルを配置し、配置したセル間を接続する場合が多い。その際、設計者の経験に基づいて手動でセルの配置順を指定する場合もあるが、回路図上のセル相互の位置関係から自動的に配置順が指定される場合もある。
【0003】
一方、セル間を接続する配線を伝達する信号には、特に重要視される信号が含まれる。このような信号は、外来ノイズに対して高い耐性を持つことが必要であり、レイアウト設計の段階から信号の品質が維持できるように留意する必要がある。
【0004】
ここで、特許文献1において、スタンダードセルを用いた自動回路設計において、予め回路図情報に付与されたセルの配置順序に応じて、セルを自動配置することが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−277245号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【0007】
上述のように、セル間を接続する配線であって、半導体装置の設計上、重要視される信号を伝達する配線が存在する。ここで、このような重要な信号を伝達する配線を重要配線と定める。重要配線は、寄生抵抗や寄生容量を考慮すれば、極力短いことが望まれる。しかし、回路図上のセル相互の位置関係から自動的にセルの配置順が定まってしまえば、重要配線が必要以上に長くなる恐れがある。また、設計者が手動でセルの配置順を指定する設計手法では、設計対象となっている半導体装置の規模によっては限界がある。
【0008】
図2は、セル内部の配線の一例を示す図である。図2に示すセルには、電源が配線される電源領域PA01及びPA02と、セル間の配線に使用される接続配線領域CAと、が含まれている。接続配線領域CAに配線される配線には、重要配線CP01と、重要配線以外の配線である通常配線NP01と、レイアウト配線LP01が含まれる。なお、レイアウト配線はセルの外部に配線されることもある(レイアウト配線LP02)。
【0009】
ここで、セルの自動配置を行う際に、重要配線CP01や通常配線NP01を考慮しなければ、重要配線CP01が不必要に長くなる恐れがある。
【0010】
図3は、自動配置されたセル間の配線の一例を示す図である。なお、図3は、重要配線CP01以外の配線を省略して記載している。図3には、5つのセルC01〜C05が配置されている。図3において、セルC01とセル05を接続する配線を、重要配線CP01とする。重要配線CP01は、セルC01のA点からセルC05のB点までを接続する配線である。
【0011】
図4は、図3のセルC01とセル05の配置位置を入れ替えた図である。図4から明らかなとおり、セルC01とセル05を入れ替えれば、重要配線CP01は短くなる。このように、セルの配置位置(配置順序)を考慮すれば、重要配線CP01を短くすることが可能である。しかし、重要配線を考慮に入れたセルの自動配置を行うアルゴリズムは存在せず、重要配線が不必要に長くなる場合がある。重要配線が長くなると、寄生容量や寄生抵抗が増加し、重要配線を伝達する信号を劣化させる原因となり得る。
【課題を解決するための手段】
【0012】
本発明の第1の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、前記配線情報抽出部が抽出した重要配線及びセル接続数に応じて、前記複数のセルの配置を決定するセル自動配置部と、を備える半導体設計装置が提供される。
【0013】
本発明の第2の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の工程と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の工程と、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の工程と、前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の工程と、を含む半導体設計方法が提供される。
【0014】
本発明の第3の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の処理と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の処理と、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の処理と、前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の処理と、をコンピュータに実行させることで、前記コンピュータを半導体設計装置として動作させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0015】
本発明の各視点によれば、信号の重要度を考慮に入れたセルの自動配置を行うことで、重要度の高い信号の品質を維持する半導体装置を設計できる半導体設計装置、が提供される。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態の概要を説明するための図である。
【図2】セル内部の配線の一例を示す図である。
【図3】自動配置されたセル間の配線の一例を示す図である。
【図4】図3のセルC01とセル05の配置位置を入れ替えた図である。
【図5】本発明の第1の実施形態に係る半導体設計装置1の内部構成の一例を示す図である。
【図6】半導体設計装置1の動作の一例を示すフローチャートである。
【図7】半導体装置の回路図の一例を示す図である。
【図8】図7に含まれる信号配線と接続先のセルをまとめた図である。
【図9】各信号配線が接続するセルの数に基づいて行ったグループ分けの一例を示す図である。
【図10】各信号配線の仮配置候補を検討順に並べた図である。
【図11】仮配置データの一例を示す図である。
【図12】再配置した後の仮配置データの一例を示す図である。
【図13】図7に含まれるセルを配置した際の重要配線を模式的に示す図である。
【図14】図7に含まれるセルを半導体設計装置1で配置した際の重要配線を模式的に示す図である。
【発明を実施するための形態】
【0017】
初めに、図1を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0018】
上述のように、信号の重要度を考慮に入れたセルの自動配置を行うアルゴリズムは存在せず、重要配線が不必要に長くなる場合がある。重要配線が長くなると、重要配線を伝達する信号を劣化させる原因となり得る。そのため、信号の重要度を考慮に入れたセルの自動配置を行うことで、重要度の高い信号の品質を維持する半導体装置を設計できる半導体設計装置、が望まれる。
【0019】
そこで、一例として図1に示す半導体設計装置を提供する。図1に示す半導体設計装置は、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部100と、配線情報抽出部100が抽出した重要配線及びセル接続数に応じて、複数のセルの配置を決定するセル自動配置部200と、を備えている。
【0020】
配線情報抽出部100は、回路図やネットリストから重要配線及び信号配線毎にセル接続数を抽出する。この抽出した重要配線及びセル接続数に基づいて、セル自動配置部200はセルの自動配置を行う。具体的には、抽出した重要配線がより短くなるような配置を選択し、セルの自動配置を行う。例えば、図1に示すセル間の信号配線において、セル1とセル3を接続する配線を重要配線とする。重要配線を考慮しなければ、セル1、セル2、セル3の順序で配置されてしまう。しかし、そのような順序であると、セル1とセル3が隣接しておらず、重要配線が長くなるのは必然である。そこで、重要配線により接続されるセル1とセル3を優先して配置することで、重要配線を短くする。その結果、重要配線を伝達する信号の品質を向上させることができる。また、信号配線毎のセル接続数を考慮することで、重要配線だけではなく、通常配線も含めた配線を短くすることができる。
【0021】
本発明において下記の形態が可能である。
【0022】
[形態1]上記第1の視点に係る半導体装置のとおりである。
【0023】
[形態2]前記セル自動配置部は、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成した後、前記複数の仮配置候補から予め定めた検討順規則により選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定することが好ましい。
【0024】
[形態3]前記仮配置候補規則は、伝達する信号の入出力の関係に基づき、前記複数のセルの配置を定めると共に、信号を受け付けるセルは相互に配置の入れ替えができることを定めることが好ましい。
【0025】
[形態4]前記検討順規則は、それぞれの信号配線についての前記重要配線情報の有無及び前記セル接続数と、に基づいて仮配置候補を選択することを定めることが好ましい。
【0026】
[形態5]前記合成規則は、前記仮配置候補に含まれるセルの数が3以上の場合、又は、前記仮配置候補に対応する信号配線が前記重要配線情報を持つ場合には、前記仮配置データに対して、前記選択された仮配置候補を変更せず合成することを定めることが好ましい。
【0027】
[形態6]前記セル自動配置部は、前記仮配置データと前記選択された仮配置候補との合成が終了した仮配置データに対し、前記複数の仮配置候補が前記仮配置候補規則に適合しているか否かを検証し、前記仮配置候補規則に適合していない仮配置候補が含まれている場合には、前記合成が終了した仮配置データを修正することが好ましい。
【0028】
[形態7]上記第2の視点に係る半導体設計方法のとおりである。
【0029】
[形態8]上記第3の視点に係るプログラムのとおりである。
【0030】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【0031】
[第1の実施形態]
本発明の第1の実施形態について、図面を用いてより詳細に説明する。
【0032】
図5は、本実施形態に係る半導体設計装置1の内部構成の一例を示す図である。なお、図5には、簡単のため、本実施形態に係る半導体設計装置1の実施に関係するモジュールのみを記載する。
【0033】
半導体設計装置1は、制御部10と、メモリ20と、記憶部30と、操作部40と、表示部50から構成されている。
【0034】
制御部10は、半導体設計装置1に含まれる各部の制御を行う。制御部10は、重要配線の抽出を行う配線情報抽出部101と、セルの自動配置を行うセル自動配置部102を含んでいる。制御部10の動作は後述する。なお、制御部10は、CPU(Central Processing Unit)上で動作するプログラムによって実現し得る。
【0035】
メモリ20は、制御部10における一時的な記憶領域として用いられる。記憶部30は、回路図やネットリスト等の情報を記憶する。操作部40は、半導体設計装置1を使用するユーザ(設計者)の操作を受け付ける。ユーザの操作に必要な情報は、表示部50に表示する。
【0036】
次に、半導体設計装置1の動作について説明する。
【0037】
図6は、半導体設計装置1の動作の一例を示すフローチャートである。
【0038】
ステップS01において、記憶部30から回路図を読み込み、読み込んだ回路図に含まれる配線に対して重要配線に関する情報を付加する。なお、重要配線に関する情報の付加は設計者の経験等に基づいて行われる。
【0039】
ステップS02において、配線情報抽出部101は、回路図に含まれるセルの間を接続する信号配線及び重要配線を抽出する。
【0040】
ステップS03において、セル自動配置部102は、接続するセルの数に基づいて、抽出した信号配線のグループ分けを行う。抽出した信号配線のグループ分けの際に、信号配線のそれぞれに接続されるセルをどのような順序で組み合わせるかを仮決定する。この仮決定に基づいて生成されて組み合わせを仮配置候補と呼ぶ。さらに、仮配置候補を決定するルールを仮配置候補規則と呼ぶ。なお、本ステップ以降の動作主体は、全てセル自動配置部102である。
【0041】
ステップS04では、ステップS03で生成した仮配置候補から、予め定めたルールに従って、ステップS05以降の検討を行う仮配置候補を選択する。ここで、ステップS05以降の検討を行う仮配置候補を選択する際のルールを検討順規則と呼ぶ。
【0042】
ステップS05では、検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在するか否か確認する。仮配置データとは、ステップS04において選択された仮配置候補を仮に(一時的に)組み合わせたデータである。検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在すれば、ステップS06に遷移する。仮配置データに含まれるセルと同じセルが存在しなければ、ステップS07に遷移する。
【0043】
ステップS06では、検討中の仮配置候補を仮配置データに合成して(マージして)、新たな仮配置データを生成する。
【0044】
ステップS07では、検討中の仮配置候補を仮配置データに追加する。
【0045】
ステップS08では、全てのセルについて、仮配置が終了したか否かを確認する。全てのセルについて仮配置が終了していれば、ステップS09に遷移する。全てのセルについて仮配置が終了していなければ、ステップS04に遷移し、新たな仮配置候補を選択し、処理を継続する。
【0046】
ステップS09では、ステップS10以降の処理を行う仮配置候補を選択する。
【0047】
ステップS10では、全てのセルが仮配置された仮配置データにおいて、各仮配置候補それぞれが、上述の仮配置候補規則に適合しているか否かを再度、確認する。選択された仮配置候補が、仮配置候補規則に適合していれば、ステップS11に遷移する。選択された仮配置候補が、仮配置候補規則に適合していなければ、ステップS12に遷移する。
【0048】
ステップS11では、全ての仮配置候補について、仮配置候補規則の再確認を行ったか否かを確認する。全ての仮配置候補について、仮配置候補規則の再確認をしていれば、処理を終了する。全ての組み合わせについて、仮配置候補規則の再確認していなければ、ステップS09に遷移し、処理を継続する。
【0049】
ステップS12では、仮配置候補規則に適合するように、各セルの配置を修正する。
【0050】
上述の各処理は、コンピュータにセル自動配置用のプログラムを実行させることで実現されるようにしても良い。また、コンピュータとサーバを、ネットワークを介して接続し、サーバに接続された記憶媒体にセル自動配置用のプログラムを格納する。さらに、記憶媒体に格納されたセル自動配置用のプログラムは、ネットワークを介してコンピュータによって実行され、セルの自動配置を行っても良い。
【0051】
次に、具体的なデータを用いて、図6に示すフローチャートの動作を説明する。
【0052】
図7は、半導体装置の回路図の一例を示す図である。図7には、13個のセルC11〜C23が含まれている。以後、セルC11をセルA、セルC12をセルB、・・・、セルC23をセルMとして説明する。
【0053】
各セルの間は信号配線によって接続されている。信号配線の中で、重要配線については、回路図上において太線で表記する。太線で表記することで、重要配線と通常配線を区別する。図7においても、重要配線を太線で表記している。若しくは、信号配線の名称に規則性を持たせ、重要配線と通常配線を区別しても良い。
【0054】
図8は、図7に含まれる信号配線と接続先のセルをまとめた図である。例えば、信号配線SL01は、セルAとセルGを接続する信号配線であり、かつ、信号配線SL01は設計者により重要配線に指定されている。一方、信号配線SL16は、セルE、セルD、セルF及びセルKを接続する信号配線であるが、重要配線には指定されていない。
【0055】
ステップS02では、配線情報抽出部101が、信号配線及び重要配線に関する情報を抽出する。より具体的には、図8に相当する情報(データ)を回路図等から抽出する。
【0056】
ステップS03では、各信号配線が接続するセルの数に基づいて、各信号配線のグループ分けを行う。図9は、各信号配線が接続するセルの数に基づいて行ったグループ分けの一例を示す図である。グループG01は、接続するセルの数が4個のグループである。グループG01には、信号配線SL16が含まれている。グループG02は、接続するセルの数が3個のグループである。グループG02には、信号配線SL09、信号配線SL10、信号配線SL14が含まれている。グループG03は、接続するセルの数が2個のグループである。
【0057】
上述のように、グループ分けした各信号配線が接続するセルについての仮配置(仮配置候補)を定めるのが、仮配置候補規則である。仮配置候補規則は、以下のような内容を含んでいる。
【0058】
第1に、信号の出力源となるセルは、信号を受ける側のセルの左側に配置するというルールである。第2に、同じ信号を受け付けるセルが複数存在する場合には、各セル間で配置を入れ替えることが可能であるというルールである。なお、回路図において、各セルの入力ノードが存在する側を左側、出力ノードが存在する側を右側とする。
【0059】
例えば、信号配線SL16の仮配置候補は、セルEが信号の出力源となるので、左側に配置する。セルD、セルF及びセルKについてはセルEの右側であれば、いずれの配置でも良い。図9では、セルD、セルF及びセルKの順で仮配置候補が生成されたものとする。また、上述の第2のルールに基づくと、セルD、セルF及びセルKの各配置は相互に入れ替え可能である。なお、以後の説明において、記号「→」は信号が左側のセルから右側のセルに出力されることを意味し、記号「−」は各セルが、並列に信号を受け付けることを意味する。
【0060】
ステップS04では、検討順規則に従って、複数の仮配置候補から1つの仮配置候補を選択する(検討の対象とする)。検討順規則は、以下のような内容を含んでいる。
【0061】
第1に、重要配線情報を持つ仮配置候補を、重要配線情報を持たない仮配置候補に優先して検討するというルールである。第2に、接続先のセルの数が多い仮配置候補を優先して検討するというルールである。
【0062】
例えば、図9のグループG02に含まれる信号配線SL09及びSL10の仮配置候補を他の信号配線の仮配置候補に優先して検討する。信号配線SL09及びSL10の仮配置候補に続いて、信号配線SL01〜SL05の仮配置候補を検討する。上述の第1のルールを適用し、これらの信号配線の仮配置候補を他の信号配線の仮配置候補に優先させるためである。次に、上述の第2のルールを適用する。重要配線情報を持つ仮配置候補以外で、接続先のセルが多いのは信号配線SL16の仮配置候補である。従って、信号配線SL16の仮配置候補の検討を開始し、次に、信号配線SL14の仮配置候補を検討する。
【0063】
図10は、各信号配線の仮配置候補を検討順に並べた図である。なお、重要配線情報の有無及び接続先のセルの数が同じ場合には、いずれの信号配線の仮配置候補の検討を優先させても構わない。例えば、図10において、検討順1と検討順2、又は、検討順10及び検討順11、等を入れ替えることが可能である。さらに、重要配線情報の有無及び接続先のセルが重複する組み合わせは、統合する(例えば、図10の検討順3及び4)。
【0064】
ステップS05〜S08では、検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在するか否か確認しつつ、仮配置データを生成する。
【0065】
最初に、ステップS04において、検討順1の仮配置候補(L→B−H)が選択される。ここで、検討順1よりも先に検討が行われる仮配置候補は存在しないので、仮配置データも存在しない。従って、ステップS06を実行する(ステップS05、Yes分岐)。ステップS06では、既に存在する仮配置データと検討中の仮配置候補を合成する。
【0066】
合成の方法は、合成規則に従う。合成規則は、セルの接続数が多い仮配置候補や重要配線を含む仮配置候補を合成する場合には、仮配置候補規則を優先し、既に存在する仮配置データを変更せずに、左右にセルを追加するというルールである。なお、接続数が多い仮配置候補とは、接続先のセルとして3個以上のセルを含む仮配置候補である。
【0067】
ここでは、検討順1よりも先に検討が行われる仮配置候補は存在しないので、検討順1の仮配置候補(L→B−H)がそのまま仮配置データとなる。
【0068】
図11は、仮配置データの一例を示す図である。図11(a)は、検討順1の検討が終わった時点での仮配置データである。
【0069】
全てのセルについて仮配置が終了していないので(ステップS08、No分岐)、ステップS04に戻り、検討順2の仮配置候補(M→B−H)が検討中の仮配置候補に選択される。検討順2を検討している時点での仮配置データ(図11(a))には、検討中の仮配置候補に含まれるセルB、セルHが存在する。従って、ステップS06を実行する(ステップS05、Yes分岐)。本ステップでは、仮配置データ(L→B−H)と検討中の仮配置候補(M→B−H)を合成する。
【0070】
この場合には、仮配置データ(L→B−H)と検討中の仮配置候補(M→B−H)のいずれもが、重要配線情報を含むので、図11(b)が合成後の仮配置データとなる。図11(b)に示す仮配置データは、既に存在する仮配置データ(L→B−H)において、セルLとセルB及びHが分離されてしまうが、検討中の仮配置候補(M→B−H)の配置を優先させている。なお、仮配置データ(L→B−H)の配置を優先させ、(M−L→B−H)を新たな仮配置データとすることも可能である。
【0071】
次に、検討順3の仮配置候補(A→G)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(b))には、検討中の仮配置候補(A→G)に含まれるセルA及びGは存在しない。従って、ステップS07を実行する(ステップS05、No分岐)。ステップS07では、検討中の仮配置候補をそのまま、仮配置データとする。即ち、図11(c)に示すように、既に存在する仮配置データと合成せず、新たな仮配置データとして作成する。
【0072】
ここで、仮配置候補(A−G)は、重要配線情報を含むので、隣接して配置される(信号配線が最短となるように配置される)。なお、セルA及びセルGは、共に信号を受け付けるセルであるので、図11(c)に示すような(A−G)の配置順でなく、(G−A)の配置順であっても良い(仮配置候補規則の第2のルール)。
【0073】
次に、検討順4の仮配置候補(C→I)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(c))には、検討中の仮配置候補(C→I)に含まれるセルC及びIは存在しない。従って、検討中の仮配置候補をそのまま、仮配置データとする(ステップS07)。その際の、仮配置データを図11(d)に示す。
【0074】
次に、検討順5の仮配置候補(E→D−F−K)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(d))には、検討中の仮配置候補(E→D−F−K)に含まれるセルE、セルD、セルF及びセルKは存在しない。従って、検討中の仮配置候補をそのまま、仮配置データとする(ステップS07)。その際の、仮配置データを図11(e)に示す。
【0075】
次に、検討順6の仮配置候補(I→F−J)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(e))には、検討中の仮配置候補(I→F−J)に含まれるセルI及びFが存在する。従って、セルI及びFを含む仮配置データを合成する。ここでは、セルIを含む仮配置データ(C−I)とセルFを含む仮配置データ(E→D−F−K)を合成する。その際、仮配置候補規則に従って、仮配置データ(C−I)と仮配置データ(E→D−F−K)が合成される。つまり、セルIを含む仮配置データ(C−I)が、仮配置データ(E→D−F−K)の左側に配置される。さらに、合成規則に従って、セルJが仮配置データ(E→D−F−K)の右側に追加される。その際の、仮配置データを図11(f)に示す。
【0076】
以降、同様に、検討順7〜13の仮配置候補の検討が行われる。検討順7の検討によって、仮配置データ(A−G)と仮配置データ(L−M→B−H)を合成して、図11(g)が得られる。検討順8の検討では、仮配置データに変更はない。検討順9の検討によって、仮配置データ(A−G−L−M→B−H)と、仮配置データ(C−I−E→D−F−K−J)を合成して、図11(h)が得られる。
【0077】
ここで、検討順9の検討が終わった時点で、全てのセルの仮配置が完了する(ステップS08、Yes分岐)。即ち、図11(h)が、ステップS08を終了した時点での仮配置データとなる。
【0078】
ステップS09〜S11では、仮配置データに対して、図9に示す各信号配線の仮配置候補が、仮配置候補規則に適合しているか再確認する。その際、接続先のセルが多く含まれる仮配置候補を優先して、再確認する。より具体的には、図9のグループG01、G02、G03のそれぞれのグループに含まれる仮配置候補の順に再確認する。
【0079】
初めに、グループG01に含まれる仮配置候補(E→D−F−K)について、仮配置データが仮配置候補規則に適合しているか確認する。この場合、図12(h)の仮配置データを確認すると、信号の出力源となるセルEが、セルD、セルF及びセルKよりも左側に存在するので、再確認の結果、問題はないとされる(ステップS10、Yes分岐)。同様に、グループG02に含まれる仮配置候補(L→B−H)についても、セルLがセルB及びセルHよりも、左側に存在するため、問題はない。
【0080】
しかし、グループG03に含まれる仮配置候補(J→K)は、仮配置候補規則に適合しない(ステップS11、No分岐)。この場合には、ステップS12で、仮配置データの修正が行われる。図11(h)に示す仮配置データは、セルKがセルJの左側に存在している。しかし、セルJが信号の出力源となるセルであるので、セルJはセルKの左側に存在しなければならない。従って、これらのセルを入れ替える。
【0081】
図12は、再配置した後の仮配置データの一例を示す図である。図12(a)が、セルKとセルJを入れ替えた後の仮配置データである。なお、グループG03に含まれる仮配置候補(B→C)のセルBは、セルCの左側に配置されているので、このままの配置でも問題はない。しかし、セルBとセルHは、配置(B−H)、又は、配置(H−B)のいずれも可能であるので、セルBとセルHの配置を入れ替える。セルBとセルHの配置を入れ替え、セルBとセルCが隣接した方がより良いためである。セルBとセルHの配置を入れ替えた結果が、図12(b)である。
【0082】
なお、半導体設計装置1の動作の説明に際し、セルの基本構成はセルの左側に入力ノード、右側に出力ノードを備えるものとした。そのため、信号の出力源となるセルを左側に配置し、信号を受け付けるセルを右側に配置するという仮配置候補規則を規定した。しかし、左右の反転が可能なセルが存在すれば、そのようなセルの情報を管理し、仮配置候補規則を変更することも可能である。即ち、信号の出力源となるセルを、信号を受け付けるセルの右側に配置することも可能である。
【0083】
以上のように、本実施形態に係る半導体設計装置1は、回路図(又は、ネットリスト)から信号配線を抽出し、重要な信号を伝達する重要配線と信号配線に接続されているセルの数に応じて、セルの配置を自動的に決定する。その結果、重要配線の距離を短くすることができる。
【0084】
図13は、図7に含まれるセルを配置した際の重要配線を模式的に示す図である。図13では、自動配置された各セルと、重要配線に限り記載している。図13の配置例では、セルの配置の際に重要配線及び信号配線に接続されているセルの数を考慮していない。図7の信号のフローを考えると、セルA、セルB、セルC、セルE及びセルFで1つのグループを形成していると捉え、他のセルで別のグループを形成していると捉えることができる。その結果、図13に示すような順序で各セルが自動配置される。
【0085】
図14は、図7に含まれるセルを本実施形態に係る半導体設計装置1で配置した際の重要配線を模式的に示す図である。上述のように、半導体設計装置1は、重要配線及び信号配線に接続されているセルの数に応じて、セルを自動配置する。図13と図14を比較すれば、半導体設計装置1の行うセルの自動配置の方が、重要配線が大幅に短いことが分かる。その結果、重要配線を伝達する信号の品質を向上させることができる。
【0086】
さらに、各セルが最適に配置されているため、それぞれのセルの接続配線領域CA(図2参照)に含まれる信号配線が短くなる。その結果、接続配線領域CAには、他の信号配線を配線する余裕が生まれ、セルの外部に配線されているレイアウト配線LP02を接続配線領域CAに含めることが可能になる。セルの接続配線領域CAにレイアウト配線LP02を含めることができれば、半導体装置のチップサイズを縮小することができる。チップサイズの縮小は、半導体装置のコスト低減に寄与する。さらに、接続配線領域CAが縮小すれば、図3及び図4のY方向の配線を短くすることもできる。
【0087】
また、接続配線領域CAに余裕が生まれれば、電源領域PA01及びPA02を拡げることができる。電源配線が太くなることで、各セルに安定した電源供給が可能になり、半導体装置全体の品質向上に寄与する。
【0088】
なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0089】
1 半導体設計装置
10 制御部
20 メモリ
30 記憶部
40 操作部
50 表示部
100、101 配線情報抽出部
102、200 セル自動配置部
C01〜C05、C11〜C23 セル
CA 接続配線領域
PA01、PA02 電源領域
【技術分野】
【0001】
本発明は、半導体設計装置、半導体設計方法及びプログラムに関する。特に、セルを自動配置する半導体設計装置、半導体設計方法及びプログラムに関する。
【背景技術】
【0002】
半導体装置のレイアウト設計において、セル(インバータ等の半導体素子)の自動配置が行われる。その際、予め指定された配置順に従ってセルを配置し、配置したセル間を接続する場合が多い。その際、設計者の経験に基づいて手動でセルの配置順を指定する場合もあるが、回路図上のセル相互の位置関係から自動的に配置順が指定される場合もある。
【0003】
一方、セル間を接続する配線を伝達する信号には、特に重要視される信号が含まれる。このような信号は、外来ノイズに対して高い耐性を持つことが必要であり、レイアウト設計の段階から信号の品質が維持できるように留意する必要がある。
【0004】
ここで、特許文献1において、スタンダードセルを用いた自動回路設計において、予め回路図情報に付与されたセルの配置順序に応じて、セルを自動配置することが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2009−277245号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【0007】
上述のように、セル間を接続する配線であって、半導体装置の設計上、重要視される信号を伝達する配線が存在する。ここで、このような重要な信号を伝達する配線を重要配線と定める。重要配線は、寄生抵抗や寄生容量を考慮すれば、極力短いことが望まれる。しかし、回路図上のセル相互の位置関係から自動的にセルの配置順が定まってしまえば、重要配線が必要以上に長くなる恐れがある。また、設計者が手動でセルの配置順を指定する設計手法では、設計対象となっている半導体装置の規模によっては限界がある。
【0008】
図2は、セル内部の配線の一例を示す図である。図2に示すセルには、電源が配線される電源領域PA01及びPA02と、セル間の配線に使用される接続配線領域CAと、が含まれている。接続配線領域CAに配線される配線には、重要配線CP01と、重要配線以外の配線である通常配線NP01と、レイアウト配線LP01が含まれる。なお、レイアウト配線はセルの外部に配線されることもある(レイアウト配線LP02)。
【0009】
ここで、セルの自動配置を行う際に、重要配線CP01や通常配線NP01を考慮しなければ、重要配線CP01が不必要に長くなる恐れがある。
【0010】
図3は、自動配置されたセル間の配線の一例を示す図である。なお、図3は、重要配線CP01以外の配線を省略して記載している。図3には、5つのセルC01〜C05が配置されている。図3において、セルC01とセル05を接続する配線を、重要配線CP01とする。重要配線CP01は、セルC01のA点からセルC05のB点までを接続する配線である。
【0011】
図4は、図3のセルC01とセル05の配置位置を入れ替えた図である。図4から明らかなとおり、セルC01とセル05を入れ替えれば、重要配線CP01は短くなる。このように、セルの配置位置(配置順序)を考慮すれば、重要配線CP01を短くすることが可能である。しかし、重要配線を考慮に入れたセルの自動配置を行うアルゴリズムは存在せず、重要配線が不必要に長くなる場合がある。重要配線が長くなると、寄生容量や寄生抵抗が増加し、重要配線を伝達する信号を劣化させる原因となり得る。
【課題を解決するための手段】
【0012】
本発明の第1の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、前記配線情報抽出部が抽出した重要配線及びセル接続数に応じて、前記複数のセルの配置を決定するセル自動配置部と、を備える半導体設計装置が提供される。
【0013】
本発明の第2の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の工程と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の工程と、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の工程と、前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の工程と、を含む半導体設計方法が提供される。
【0014】
本発明の第3の視点によれば、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の処理と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の処理と、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の処理と、前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の処理と、をコンピュータに実行させることで、前記コンピュータを半導体設計装置として動作させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0015】
本発明の各視点によれば、信号の重要度を考慮に入れたセルの自動配置を行うことで、重要度の高い信号の品質を維持する半導体装置を設計できる半導体設計装置、が提供される。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態の概要を説明するための図である。
【図2】セル内部の配線の一例を示す図である。
【図3】自動配置されたセル間の配線の一例を示す図である。
【図4】図3のセルC01とセル05の配置位置を入れ替えた図である。
【図5】本発明の第1の実施形態に係る半導体設計装置1の内部構成の一例を示す図である。
【図6】半導体設計装置1の動作の一例を示すフローチャートである。
【図7】半導体装置の回路図の一例を示す図である。
【図8】図7に含まれる信号配線と接続先のセルをまとめた図である。
【図9】各信号配線が接続するセルの数に基づいて行ったグループ分けの一例を示す図である。
【図10】各信号配線の仮配置候補を検討順に並べた図である。
【図11】仮配置データの一例を示す図である。
【図12】再配置した後の仮配置データの一例を示す図である。
【図13】図7に含まれるセルを配置した際の重要配線を模式的に示す図である。
【図14】図7に含まれるセルを半導体設計装置1で配置した際の重要配線を模式的に示す図である。
【発明を実施するための形態】
【0017】
初めに、図1を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【0018】
上述のように、信号の重要度を考慮に入れたセルの自動配置を行うアルゴリズムは存在せず、重要配線が不必要に長くなる場合がある。重要配線が長くなると、重要配線を伝達する信号を劣化させる原因となり得る。そのため、信号の重要度を考慮に入れたセルの自動配置を行うことで、重要度の高い信号の品質を維持する半導体装置を設計できる半導体設計装置、が望まれる。
【0019】
そこで、一例として図1に示す半導体設計装置を提供する。図1に示す半導体設計装置は、半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部100と、配線情報抽出部100が抽出した重要配線及びセル接続数に応じて、複数のセルの配置を決定するセル自動配置部200と、を備えている。
【0020】
配線情報抽出部100は、回路図やネットリストから重要配線及び信号配線毎にセル接続数を抽出する。この抽出した重要配線及びセル接続数に基づいて、セル自動配置部200はセルの自動配置を行う。具体的には、抽出した重要配線がより短くなるような配置を選択し、セルの自動配置を行う。例えば、図1に示すセル間の信号配線において、セル1とセル3を接続する配線を重要配線とする。重要配線を考慮しなければ、セル1、セル2、セル3の順序で配置されてしまう。しかし、そのような順序であると、セル1とセル3が隣接しておらず、重要配線が長くなるのは必然である。そこで、重要配線により接続されるセル1とセル3を優先して配置することで、重要配線を短くする。その結果、重要配線を伝達する信号の品質を向上させることができる。また、信号配線毎のセル接続数を考慮することで、重要配線だけではなく、通常配線も含めた配線を短くすることができる。
【0021】
本発明において下記の形態が可能である。
【0022】
[形態1]上記第1の視点に係る半導体装置のとおりである。
【0023】
[形態2]前記セル自動配置部は、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成した後、前記複数の仮配置候補から予め定めた検討順規則により選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定することが好ましい。
【0024】
[形態3]前記仮配置候補規則は、伝達する信号の入出力の関係に基づき、前記複数のセルの配置を定めると共に、信号を受け付けるセルは相互に配置の入れ替えができることを定めることが好ましい。
【0025】
[形態4]前記検討順規則は、それぞれの信号配線についての前記重要配線情報の有無及び前記セル接続数と、に基づいて仮配置候補を選択することを定めることが好ましい。
【0026】
[形態5]前記合成規則は、前記仮配置候補に含まれるセルの数が3以上の場合、又は、前記仮配置候補に対応する信号配線が前記重要配線情報を持つ場合には、前記仮配置データに対して、前記選択された仮配置候補を変更せず合成することを定めることが好ましい。
【0027】
[形態6]前記セル自動配置部は、前記仮配置データと前記選択された仮配置候補との合成が終了した仮配置データに対し、前記複数の仮配置候補が前記仮配置候補規則に適合しているか否かを検証し、前記仮配置候補規則に適合していない仮配置候補が含まれている場合には、前記合成が終了した仮配置データを修正することが好ましい。
【0028】
[形態7]上記第2の視点に係る半導体設計方法のとおりである。
【0029】
[形態8]上記第3の視点に係るプログラムのとおりである。
【0030】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【0031】
[第1の実施形態]
本発明の第1の実施形態について、図面を用いてより詳細に説明する。
【0032】
図5は、本実施形態に係る半導体設計装置1の内部構成の一例を示す図である。なお、図5には、簡単のため、本実施形態に係る半導体設計装置1の実施に関係するモジュールのみを記載する。
【0033】
半導体設計装置1は、制御部10と、メモリ20と、記憶部30と、操作部40と、表示部50から構成されている。
【0034】
制御部10は、半導体設計装置1に含まれる各部の制御を行う。制御部10は、重要配線の抽出を行う配線情報抽出部101と、セルの自動配置を行うセル自動配置部102を含んでいる。制御部10の動作は後述する。なお、制御部10は、CPU(Central Processing Unit)上で動作するプログラムによって実現し得る。
【0035】
メモリ20は、制御部10における一時的な記憶領域として用いられる。記憶部30は、回路図やネットリスト等の情報を記憶する。操作部40は、半導体設計装置1を使用するユーザ(設計者)の操作を受け付ける。ユーザの操作に必要な情報は、表示部50に表示する。
【0036】
次に、半導体設計装置1の動作について説明する。
【0037】
図6は、半導体設計装置1の動作の一例を示すフローチャートである。
【0038】
ステップS01において、記憶部30から回路図を読み込み、読み込んだ回路図に含まれる配線に対して重要配線に関する情報を付加する。なお、重要配線に関する情報の付加は設計者の経験等に基づいて行われる。
【0039】
ステップS02において、配線情報抽出部101は、回路図に含まれるセルの間を接続する信号配線及び重要配線を抽出する。
【0040】
ステップS03において、セル自動配置部102は、接続するセルの数に基づいて、抽出した信号配線のグループ分けを行う。抽出した信号配線のグループ分けの際に、信号配線のそれぞれに接続されるセルをどのような順序で組み合わせるかを仮決定する。この仮決定に基づいて生成されて組み合わせを仮配置候補と呼ぶ。さらに、仮配置候補を決定するルールを仮配置候補規則と呼ぶ。なお、本ステップ以降の動作主体は、全てセル自動配置部102である。
【0041】
ステップS04では、ステップS03で生成した仮配置候補から、予め定めたルールに従って、ステップS05以降の検討を行う仮配置候補を選択する。ここで、ステップS05以降の検討を行う仮配置候補を選択する際のルールを検討順規則と呼ぶ。
【0042】
ステップS05では、検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在するか否か確認する。仮配置データとは、ステップS04において選択された仮配置候補を仮に(一時的に)組み合わせたデータである。検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在すれば、ステップS06に遷移する。仮配置データに含まれるセルと同じセルが存在しなければ、ステップS07に遷移する。
【0043】
ステップS06では、検討中の仮配置候補を仮配置データに合成して(マージして)、新たな仮配置データを生成する。
【0044】
ステップS07では、検討中の仮配置候補を仮配置データに追加する。
【0045】
ステップS08では、全てのセルについて、仮配置が終了したか否かを確認する。全てのセルについて仮配置が終了していれば、ステップS09に遷移する。全てのセルについて仮配置が終了していなければ、ステップS04に遷移し、新たな仮配置候補を選択し、処理を継続する。
【0046】
ステップS09では、ステップS10以降の処理を行う仮配置候補を選択する。
【0047】
ステップS10では、全てのセルが仮配置された仮配置データにおいて、各仮配置候補それぞれが、上述の仮配置候補規則に適合しているか否かを再度、確認する。選択された仮配置候補が、仮配置候補規則に適合していれば、ステップS11に遷移する。選択された仮配置候補が、仮配置候補規則に適合していなければ、ステップS12に遷移する。
【0048】
ステップS11では、全ての仮配置候補について、仮配置候補規則の再確認を行ったか否かを確認する。全ての仮配置候補について、仮配置候補規則の再確認をしていれば、処理を終了する。全ての組み合わせについて、仮配置候補規則の再確認していなければ、ステップS09に遷移し、処理を継続する。
【0049】
ステップS12では、仮配置候補規則に適合するように、各セルの配置を修正する。
【0050】
上述の各処理は、コンピュータにセル自動配置用のプログラムを実行させることで実現されるようにしても良い。また、コンピュータとサーバを、ネットワークを介して接続し、サーバに接続された記憶媒体にセル自動配置用のプログラムを格納する。さらに、記憶媒体に格納されたセル自動配置用のプログラムは、ネットワークを介してコンピュータによって実行され、セルの自動配置を行っても良い。
【0051】
次に、具体的なデータを用いて、図6に示すフローチャートの動作を説明する。
【0052】
図7は、半導体装置の回路図の一例を示す図である。図7には、13個のセルC11〜C23が含まれている。以後、セルC11をセルA、セルC12をセルB、・・・、セルC23をセルMとして説明する。
【0053】
各セルの間は信号配線によって接続されている。信号配線の中で、重要配線については、回路図上において太線で表記する。太線で表記することで、重要配線と通常配線を区別する。図7においても、重要配線を太線で表記している。若しくは、信号配線の名称に規則性を持たせ、重要配線と通常配線を区別しても良い。
【0054】
図8は、図7に含まれる信号配線と接続先のセルをまとめた図である。例えば、信号配線SL01は、セルAとセルGを接続する信号配線であり、かつ、信号配線SL01は設計者により重要配線に指定されている。一方、信号配線SL16は、セルE、セルD、セルF及びセルKを接続する信号配線であるが、重要配線には指定されていない。
【0055】
ステップS02では、配線情報抽出部101が、信号配線及び重要配線に関する情報を抽出する。より具体的には、図8に相当する情報(データ)を回路図等から抽出する。
【0056】
ステップS03では、各信号配線が接続するセルの数に基づいて、各信号配線のグループ分けを行う。図9は、各信号配線が接続するセルの数に基づいて行ったグループ分けの一例を示す図である。グループG01は、接続するセルの数が4個のグループである。グループG01には、信号配線SL16が含まれている。グループG02は、接続するセルの数が3個のグループである。グループG02には、信号配線SL09、信号配線SL10、信号配線SL14が含まれている。グループG03は、接続するセルの数が2個のグループである。
【0057】
上述のように、グループ分けした各信号配線が接続するセルについての仮配置(仮配置候補)を定めるのが、仮配置候補規則である。仮配置候補規則は、以下のような内容を含んでいる。
【0058】
第1に、信号の出力源となるセルは、信号を受ける側のセルの左側に配置するというルールである。第2に、同じ信号を受け付けるセルが複数存在する場合には、各セル間で配置を入れ替えることが可能であるというルールである。なお、回路図において、各セルの入力ノードが存在する側を左側、出力ノードが存在する側を右側とする。
【0059】
例えば、信号配線SL16の仮配置候補は、セルEが信号の出力源となるので、左側に配置する。セルD、セルF及びセルKについてはセルEの右側であれば、いずれの配置でも良い。図9では、セルD、セルF及びセルKの順で仮配置候補が生成されたものとする。また、上述の第2のルールに基づくと、セルD、セルF及びセルKの各配置は相互に入れ替え可能である。なお、以後の説明において、記号「→」は信号が左側のセルから右側のセルに出力されることを意味し、記号「−」は各セルが、並列に信号を受け付けることを意味する。
【0060】
ステップS04では、検討順規則に従って、複数の仮配置候補から1つの仮配置候補を選択する(検討の対象とする)。検討順規則は、以下のような内容を含んでいる。
【0061】
第1に、重要配線情報を持つ仮配置候補を、重要配線情報を持たない仮配置候補に優先して検討するというルールである。第2に、接続先のセルの数が多い仮配置候補を優先して検討するというルールである。
【0062】
例えば、図9のグループG02に含まれる信号配線SL09及びSL10の仮配置候補を他の信号配線の仮配置候補に優先して検討する。信号配線SL09及びSL10の仮配置候補に続いて、信号配線SL01〜SL05の仮配置候補を検討する。上述の第1のルールを適用し、これらの信号配線の仮配置候補を他の信号配線の仮配置候補に優先させるためである。次に、上述の第2のルールを適用する。重要配線情報を持つ仮配置候補以外で、接続先のセルが多いのは信号配線SL16の仮配置候補である。従って、信号配線SL16の仮配置候補の検討を開始し、次に、信号配線SL14の仮配置候補を検討する。
【0063】
図10は、各信号配線の仮配置候補を検討順に並べた図である。なお、重要配線情報の有無及び接続先のセルの数が同じ場合には、いずれの信号配線の仮配置候補の検討を優先させても構わない。例えば、図10において、検討順1と検討順2、又は、検討順10及び検討順11、等を入れ替えることが可能である。さらに、重要配線情報の有無及び接続先のセルが重複する組み合わせは、統合する(例えば、図10の検討順3及び4)。
【0064】
ステップS05〜S08では、検討中の仮配置候補の中に、仮配置データに含まれるセルと同じセルが存在するか否か確認しつつ、仮配置データを生成する。
【0065】
最初に、ステップS04において、検討順1の仮配置候補(L→B−H)が選択される。ここで、検討順1よりも先に検討が行われる仮配置候補は存在しないので、仮配置データも存在しない。従って、ステップS06を実行する(ステップS05、Yes分岐)。ステップS06では、既に存在する仮配置データと検討中の仮配置候補を合成する。
【0066】
合成の方法は、合成規則に従う。合成規則は、セルの接続数が多い仮配置候補や重要配線を含む仮配置候補を合成する場合には、仮配置候補規則を優先し、既に存在する仮配置データを変更せずに、左右にセルを追加するというルールである。なお、接続数が多い仮配置候補とは、接続先のセルとして3個以上のセルを含む仮配置候補である。
【0067】
ここでは、検討順1よりも先に検討が行われる仮配置候補は存在しないので、検討順1の仮配置候補(L→B−H)がそのまま仮配置データとなる。
【0068】
図11は、仮配置データの一例を示す図である。図11(a)は、検討順1の検討が終わった時点での仮配置データである。
【0069】
全てのセルについて仮配置が終了していないので(ステップS08、No分岐)、ステップS04に戻り、検討順2の仮配置候補(M→B−H)が検討中の仮配置候補に選択される。検討順2を検討している時点での仮配置データ(図11(a))には、検討中の仮配置候補に含まれるセルB、セルHが存在する。従って、ステップS06を実行する(ステップS05、Yes分岐)。本ステップでは、仮配置データ(L→B−H)と検討中の仮配置候補(M→B−H)を合成する。
【0070】
この場合には、仮配置データ(L→B−H)と検討中の仮配置候補(M→B−H)のいずれもが、重要配線情報を含むので、図11(b)が合成後の仮配置データとなる。図11(b)に示す仮配置データは、既に存在する仮配置データ(L→B−H)において、セルLとセルB及びHが分離されてしまうが、検討中の仮配置候補(M→B−H)の配置を優先させている。なお、仮配置データ(L→B−H)の配置を優先させ、(M−L→B−H)を新たな仮配置データとすることも可能である。
【0071】
次に、検討順3の仮配置候補(A→G)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(b))には、検討中の仮配置候補(A→G)に含まれるセルA及びGは存在しない。従って、ステップS07を実行する(ステップS05、No分岐)。ステップS07では、検討中の仮配置候補をそのまま、仮配置データとする。即ち、図11(c)に示すように、既に存在する仮配置データと合成せず、新たな仮配置データとして作成する。
【0072】
ここで、仮配置候補(A−G)は、重要配線情報を含むので、隣接して配置される(信号配線が最短となるように配置される)。なお、セルA及びセルGは、共に信号を受け付けるセルであるので、図11(c)に示すような(A−G)の配置順でなく、(G−A)の配置順であっても良い(仮配置候補規則の第2のルール)。
【0073】
次に、検討順4の仮配置候補(C→I)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(c))には、検討中の仮配置候補(C→I)に含まれるセルC及びIは存在しない。従って、検討中の仮配置候補をそのまま、仮配置データとする(ステップS07)。その際の、仮配置データを図11(d)に示す。
【0074】
次に、検討順5の仮配置候補(E→D−F−K)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(d))には、検討中の仮配置候補(E→D−F−K)に含まれるセルE、セルD、セルF及びセルKは存在しない。従って、検討中の仮配置候補をそのまま、仮配置データとする(ステップS07)。その際の、仮配置データを図11(e)に示す。
【0075】
次に、検討順6の仮配置候補(I→F−J)が検討中の仮配置候補に選択される(ステップS04)。仮配置データ(図11(e))には、検討中の仮配置候補(I→F−J)に含まれるセルI及びFが存在する。従って、セルI及びFを含む仮配置データを合成する。ここでは、セルIを含む仮配置データ(C−I)とセルFを含む仮配置データ(E→D−F−K)を合成する。その際、仮配置候補規則に従って、仮配置データ(C−I)と仮配置データ(E→D−F−K)が合成される。つまり、セルIを含む仮配置データ(C−I)が、仮配置データ(E→D−F−K)の左側に配置される。さらに、合成規則に従って、セルJが仮配置データ(E→D−F−K)の右側に追加される。その際の、仮配置データを図11(f)に示す。
【0076】
以降、同様に、検討順7〜13の仮配置候補の検討が行われる。検討順7の検討によって、仮配置データ(A−G)と仮配置データ(L−M→B−H)を合成して、図11(g)が得られる。検討順8の検討では、仮配置データに変更はない。検討順9の検討によって、仮配置データ(A−G−L−M→B−H)と、仮配置データ(C−I−E→D−F−K−J)を合成して、図11(h)が得られる。
【0077】
ここで、検討順9の検討が終わった時点で、全てのセルの仮配置が完了する(ステップS08、Yes分岐)。即ち、図11(h)が、ステップS08を終了した時点での仮配置データとなる。
【0078】
ステップS09〜S11では、仮配置データに対して、図9に示す各信号配線の仮配置候補が、仮配置候補規則に適合しているか再確認する。その際、接続先のセルが多く含まれる仮配置候補を優先して、再確認する。より具体的には、図9のグループG01、G02、G03のそれぞれのグループに含まれる仮配置候補の順に再確認する。
【0079】
初めに、グループG01に含まれる仮配置候補(E→D−F−K)について、仮配置データが仮配置候補規則に適合しているか確認する。この場合、図12(h)の仮配置データを確認すると、信号の出力源となるセルEが、セルD、セルF及びセルKよりも左側に存在するので、再確認の結果、問題はないとされる(ステップS10、Yes分岐)。同様に、グループG02に含まれる仮配置候補(L→B−H)についても、セルLがセルB及びセルHよりも、左側に存在するため、問題はない。
【0080】
しかし、グループG03に含まれる仮配置候補(J→K)は、仮配置候補規則に適合しない(ステップS11、No分岐)。この場合には、ステップS12で、仮配置データの修正が行われる。図11(h)に示す仮配置データは、セルKがセルJの左側に存在している。しかし、セルJが信号の出力源となるセルであるので、セルJはセルKの左側に存在しなければならない。従って、これらのセルを入れ替える。
【0081】
図12は、再配置した後の仮配置データの一例を示す図である。図12(a)が、セルKとセルJを入れ替えた後の仮配置データである。なお、グループG03に含まれる仮配置候補(B→C)のセルBは、セルCの左側に配置されているので、このままの配置でも問題はない。しかし、セルBとセルHは、配置(B−H)、又は、配置(H−B)のいずれも可能であるので、セルBとセルHの配置を入れ替える。セルBとセルHの配置を入れ替え、セルBとセルCが隣接した方がより良いためである。セルBとセルHの配置を入れ替えた結果が、図12(b)である。
【0082】
なお、半導体設計装置1の動作の説明に際し、セルの基本構成はセルの左側に入力ノード、右側に出力ノードを備えるものとした。そのため、信号の出力源となるセルを左側に配置し、信号を受け付けるセルを右側に配置するという仮配置候補規則を規定した。しかし、左右の反転が可能なセルが存在すれば、そのようなセルの情報を管理し、仮配置候補規則を変更することも可能である。即ち、信号の出力源となるセルを、信号を受け付けるセルの右側に配置することも可能である。
【0083】
以上のように、本実施形態に係る半導体設計装置1は、回路図(又は、ネットリスト)から信号配線を抽出し、重要な信号を伝達する重要配線と信号配線に接続されているセルの数に応じて、セルの配置を自動的に決定する。その結果、重要配線の距離を短くすることができる。
【0084】
図13は、図7に含まれるセルを配置した際の重要配線を模式的に示す図である。図13では、自動配置された各セルと、重要配線に限り記載している。図13の配置例では、セルの配置の際に重要配線及び信号配線に接続されているセルの数を考慮していない。図7の信号のフローを考えると、セルA、セルB、セルC、セルE及びセルFで1つのグループを形成していると捉え、他のセルで別のグループを形成していると捉えることができる。その結果、図13に示すような順序で各セルが自動配置される。
【0085】
図14は、図7に含まれるセルを本実施形態に係る半導体設計装置1で配置した際の重要配線を模式的に示す図である。上述のように、半導体設計装置1は、重要配線及び信号配線に接続されているセルの数に応じて、セルを自動配置する。図13と図14を比較すれば、半導体設計装置1の行うセルの自動配置の方が、重要配線が大幅に短いことが分かる。その結果、重要配線を伝達する信号の品質を向上させることができる。
【0086】
さらに、各セルが最適に配置されているため、それぞれのセルの接続配線領域CA(図2参照)に含まれる信号配線が短くなる。その結果、接続配線領域CAには、他の信号配線を配線する余裕が生まれ、セルの外部に配線されているレイアウト配線LP02を接続配線領域CAに含めることが可能になる。セルの接続配線領域CAにレイアウト配線LP02を含めることができれば、半導体装置のチップサイズを縮小することができる。チップサイズの縮小は、半導体装置のコスト低減に寄与する。さらに、接続配線領域CAが縮小すれば、図3及び図4のY方向の配線を短くすることもできる。
【0087】
また、接続配線領域CAに余裕が生まれれば、電源領域PA01及びPA02を拡げることができる。電源配線が太くなることで、各セルに安定した電源供給が可能になり、半導体装置全体の品質向上に寄与する。
【0088】
なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【0089】
1 半導体設計装置
10 制御部
20 メモリ
30 記憶部
40 操作部
50 表示部
100、101 配線情報抽出部
102、200 セル自動配置部
C01〜C05、C11〜C23 セル
CA 接続配線領域
PA01、PA02 電源領域
【特許請求の範囲】
【請求項1】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、
前記配線情報抽出部が抽出した重要配線及びセル接続数に応じて、前記複数のセルの配置を決定するセル自動配置部と、
を備えることを特徴とする半導体設計装置。
【請求項2】
前記セル自動配置部は、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成した後、
前記複数の仮配置候補から予め定めた検討順規則により選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する請求項1の半導体設計装置。
【請求項3】
前記仮配置候補規則は、伝達する信号の入出力の関係に基づき、前記複数のセルの配置を定めると共に、信号を受け付けるセルは相互に配置の入れ替えができることを定める請求項2の半導体設計装置。
【請求項4】
前記検討順規則は、それぞれの信号配線についての前記重要配線情報の有無及び前記セル接続数と、に基づいて仮配置候補を選択することを定める請求項2又は3の半導体設計装置。
【請求項5】
前記合成規則は、前記仮配置候補に含まれるセルの数が3以上の場合、又は、前記仮配置候補に対応する信号配線が前記重要配線情報を持つ場合には、前記仮配置データに対して、前記選択された仮配置候補を変更せず合成することを定める請求項2乃至4のいずれか一に記載の半導体設計装置。
【請求項6】
前記セル自動配置部は、前記仮配置データと前記選択された仮配置候補との合成が終了した仮配置データに対し、前記複数の仮配置候補が前記仮配置候補規則に適合しているか否かを検証し、前記仮配置候補規則に適合していない仮配置候補が含まれている場合には、前記合成が終了した仮配置データを修正する請求項2乃至5のいずれか一に記載の半導体設計装置。
【請求項7】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の工程と、
前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の工程と、
前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の工程と、
前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の工程と、
を含むことを特徴とする半導体設計方法。
【請求項8】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の処理と、
前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の処理と、
前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の処理と、
前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の処理と、
をコンピュータに実行させることで、前記コンピュータを半導体設計装置として動作させるプログラム。
【請求項1】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線と、前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数と、を抽出する配線情報抽出部と、
前記配線情報抽出部が抽出した重要配線及びセル接続数に応じて、前記複数のセルの配置を決定するセル自動配置部と、
を備えることを特徴とする半導体設計装置。
【請求項2】
前記セル自動配置部は、前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成した後、
前記複数の仮配置候補から予め定めた検討順規則により選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する請求項1の半導体設計装置。
【請求項3】
前記仮配置候補規則は、伝達する信号の入出力の関係に基づき、前記複数のセルの配置を定めると共に、信号を受け付けるセルは相互に配置の入れ替えができることを定める請求項2の半導体設計装置。
【請求項4】
前記検討順規則は、それぞれの信号配線についての前記重要配線情報の有無及び前記セル接続数と、に基づいて仮配置候補を選択することを定める請求項2又は3の半導体設計装置。
【請求項5】
前記合成規則は、前記仮配置候補に含まれるセルの数が3以上の場合、又は、前記仮配置候補に対応する信号配線が前記重要配線情報を持つ場合には、前記仮配置データに対して、前記選択された仮配置候補を変更せず合成することを定める請求項2乃至4のいずれか一に記載の半導体設計装置。
【請求項6】
前記セル自動配置部は、前記仮配置データと前記選択された仮配置候補との合成が終了した仮配置データに対し、前記複数の仮配置候補が前記仮配置候補規則に適合しているか否かを検証し、前記仮配置候補規則に適合していない仮配置候補が含まれている場合には、前記合成が終了した仮配置データを修正する請求項2乃至5のいずれか一に記載の半導体設計装置。
【請求項7】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の工程と、
前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の工程と、
前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の工程と、
前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の工程と、
を含むことを特徴とする半導体設計方法。
【請求項8】
半導体装置に含まれる複数のセルを接続する複数の信号配線から、伝達する信号が重要であることを示す重要配線情報が付された重要配線を抽出する第1の処理と、
前記複数の信号配線のそれぞれに接続されているセルの数を示すセル接続数を抽出する第2の処理と、
前記複数の信号配線のそれぞれに接続される複数のセルを、予め定めた仮配置候補規則に基づいて配置した仮配置候補を、それぞれの信号配線毎に生成する第3の処理と、
前記複数の仮配置候補から、前記重要配線と前記セル接続数とに基づいて選択された仮配置候補と、セルを一時的に配置した仮配置データと、を合成規則に基づいて合成することを繰り返すことで、前記複数のセルの配置を決定する第4の処理と、
をコンピュータに実行させることで、前記コンピュータを半導体設計装置として動作させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2013−84207(P2013−84207A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2011−225005(P2011−225005)
【出願日】平成23年10月12日(2011.10.12)
【出願人】(500174247)エルピーダメモリ株式会社 (2,599)
【Fターム(参考)】
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願日】平成23年10月12日(2011.10.12)
【出願人】(500174247)エルピーダメモリ株式会社 (2,599)
【Fターム(参考)】
[ Back to top ]