(57)【特許請求の範囲】
【請求項１】
所定の機能を備え、この機能を使用するための外部端子を備えるハードマクロを有する半導体装置であって、
前記ハードマクロは、当該ハードマクロの機能とは独立した少なくとも１つのバッファを含み、このバッファの入力端子および出力端子は、前記ハードマクロの機能を使用するための外部端子とは独立した前記ハードマクロの外部端子として形成されていることを特徴とする半導体装置。
【請求項２】
前記少なくとも１つのバッファの入力端子および出力端子が、前記ハードマクロの周辺を通過する配線に接続され、該配線を駆動するリピータとして使用されることを特徴とする請求項１記載の半導体装置。
【請求項３】
請求項１に記載のハードマクロを生成する手段と、このハードマクロを含む請求項１に記載の半導体装置のネットリストを生成する手段と、生成された前記ネットリストを用いて前記半導体装置のレイアウトの配置配線を行い、レイアウトパターンを生成する手段と、
レイアウト後の前記レイアウトパターンの配置配線情報に基づいて、前記半導体装置の動作タイミングを解析する手段、前記ハードマクロの周辺を通過し、なおかつ、前記動作タイミングにエラーのある配線を検出する手段、および、前記ハードマクロ内に含まれているバッファの位置を検出し、前記配線の動作タイミングが最適となるバッファを検出する手段と、
検出された前記バッファを介して前記配線の接続をやり直すように、前記ネットリストを更新する手段、および、前記レイアウトパターンを修正する手段とを有することを特徴とする半導体設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、設計期間の短縮が可能な半導体装置および半導体設計装置に関するものである。
【０００２】
【従来の技術】
現在では、半導体装置の大規模化とともに、ＲＡＭやＲＯＭ等のハードマクロを搭載するものも多い。しかし、半導体チップ内でのハードマクロの占有面積が大きくなると、このハードマクロを横切って接続すべき配線が長くなり、その遅延時間が問題となる。例えば、図２に示すように、ハードマクロ２２以外の論理回路等のプリミティブセル２４から、半導体装置２０の外部端子となるＩ／Ｏセル２６までの配線２８は非常に長くなる場合がある。
【０００３】
これに対し、従来より、配線２８の途中、すなわち、ハードマクロ２２が配置されている領域間に、配線２８を駆動するための中継点として通常のバッファ（リピータ）を追加することにより配線遅延の削減が図られている。
【０００４】
この場合、従来の半導体装置では、図３に示すように、ハードマクロ２２が配置されている領域間に、自動配置配線ツールでの認識が可能な論理回路の配置列（一般的に、ＲＯＷ（ロウ）と呼ばれる）３０を新たに設け、あるいは、あらかじめ設けておき、この配置列３０内に必要数の追加バッファ３２を配置し、さらに、これらの追加バッファ３２に電源を供給するための電源ラインＶＤＤやグランドラインＶＳＳを接続して、配線の接続をやり直していた。
【０００５】
しかしながら、このような新たな配置列領域を設けたり、追加バッファへの電源供給のための配線を接続するという作業は、特に、ＡＳＩＣ（用途限定ＩＣ）等の短いＴＡＴ（設計期間）が要求される設計形態では大きな弊害となる。また、ハードマクロの配置によっては配置列を設けることができなかったり、もしくは、配置列を設けることができたとしても、動作タイミング上の問題でハードマクロの配置を変更しなければならない場合もある。
【０００６】
これに対して、あらかじめ配置列をハードマクロの周辺に設けておくことは可能である。しかし、ハードマクロの種類や配置等に応じて配置列の構成も変わるため、これに応じて作業工数も増大する。また、ハードマクロの配置を変更することになると、その影響を考慮に入れて配置列も再度設計し直さなければならないため、ハードマクロを使用する従来の半導体装置では、設計工数が増大するという問題があった。
【０００７】
【発明が解決しようとする課題】
本発明の目的は、前記従来技術に基づく問題点をかえりみて、ハードマクロを使用していても、その設計期間を短縮することができる半導体装置および半導体設計装置を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するために、本発明は、所定の機能を備え、この機能を使用するための外部端子を備えるハードマクロを有する半導体装置であって、
前記ハードマクロは、当該ハードマクロの機能とは独立した少なくとも１つのバッファを含み、このバッファの入力端子および出力端子は、前記ハードマクロの機能を使用するための外部端子とは独立した前記ハードマクロの外部端子として形成されていることを特徴とする半導体装置を提供するものである。
ここで、前記少なくとも１つのバッファの入力端子および出力端子が、前記ハードマクロの周辺を通過する配線に接続され、該配線を駆動するリピータとして使用されることが好ましい。
尚、ここにおいてハードマクロの外部端子とは、半導体装置内の当該ハードマクロ以外の回路やＩ／Ｏセル等へ接続するための端子を意味する。
【０００９】
また、本発明は、上記に記載のハードマクロを生成する手段と、このハードマクロを含む上記に記載の半導体装置のネットリストを生成する手段と、生成された前記ネットリストを用いて前記半導体装置のレイアウトの配置配線を行い、レイアウトパターンを生成する手段と、
レイアウト後の前記レイアウトパターンの配置配線情報に基づいて、前記半導体装置の動作タイミングを解析する手段、前記ハードマクロの周辺を通過し、なおかつ、前記動作タイミングにエラーのある配線を検出する手段、および、前記ハードマクロ内に含まれているバッファの位置を検出し、前記配線の動作タイミングが最適となるバッファを検出する手段と、
検出された前記バッファを介して前記配線の接続をやり直すように、前記ネットリストを更新する手段、および、前記レイアウトパターンを修正する手段とを有することを特徴とする半導体設計装置を提供するものである。
【００１０】
【発明の実施の形態】
以下に、添付の図面に示す好適実施例に基づいて、本発明の半導体装置および半導体設計装置を詳細に説明する。
【００１１】
図１は、本発明の半導体装置の一実施例の概念図である。
図示例の半導体装置１０は、例えばＲＡＭやＲＯＭ等のように、所定の機能を備え、かつ、その機能を使用するための外部端子を備えるハードマクロ１２を有する。このハードマクロ１２は、半導体設計装置の１つであるジェネレータによって、例えばそのサイズや縦横比等をパラメータとして入力することにより、これに対応するレイアウトパターンが自動生成される。
【００１２】
同図に示すように、ハードマクロ１２は、その機能とは完全に独立した複数のバッファ１４を備えており、各々のバッファ１４の入力端子および出力端子は、ハードマクロ１２本来の機能を使用するための外部端子とは全く独立したハードマクロ１２の外部端子として形成されている。すなわち、ハードマクロ１２には、ハードマクロ１２本来の機能を使用するための外部端子と、バッファ１４を使用するための外部端子とが各々独立に設けられている。
【００１３】
本発明の半導体装置１０は、ハードマクロ１２の内部に、ハードマクロ１２本来の機能とは独立したバッファ１４が組み込まれている。このため、バッファ１４を配線駆動用のリピータとして使用することにより、レイアウト設計の完了後、動作タイミングの検証段階で初めて検出することができる、ハードマクロ１２の周辺を通過する配線１６に発生する配線遅延エラーを短時間で解決し、半導体装置１０の設計期間を短縮することができる。
【００１４】
なお、本発明の半導体装置に搭載されるハードマクロは、ジェネレータによって自動生成されるものに限定されず、例えばＣＰＵコアやアナログ回路等のカスタム設計のハードマクロ、階層配置配線手法における階層マクロであってもよい。また、リピータとなるバッファは、ハードマクロ１２の上を配線が通過できないのであれば、ハードマクロ１２の周辺部に配置するのが好ましいが、ハードマクロ１２の上を配線が通過できるのであれば、任意の位置に配置してもよい。
【００１５】
次に、本発明の半導体設計装置について説明する。
本発明の半導体設計装置は、基本的に、例えばワークステーション等のようなハードウェア上で動作するＣＡＤツール等のソフトウェアプログラムである。しかし、本発明の半導体設計装置は、具体的なハードウェア構成やソフトウェアプログラムに何ら限定されるものではなく、以下に述べる本発明の半導体設計装置の動作を実現する他の手段を使用しても実現可能である。
【００１６】
以下、本発明の半導体設計装置を使用して、本発明の半導体装置を設計する場合の手順について説明する。
【００１７】
まず、ステップ１として、前述のジェネレータを使用して、ＲＡＭ等の必要とするハードマクロを生成する。
そして、ステップ２として、ハードマクロ以外の論理設計を合わせて行って半導体装置全体のネットリストを作成する。そして、このネットリストを用いて、自動配置配線ツールを使用して半導体装置のレイアウトの配置配線を行い、ネットリストに対応するレイアウトパターンを生成する。
【００１８】
レイアウトの終了後、ステップ３として、ハードマクロの半導体チップ上での配置情報と、ハードマクロ自体の外部端子の情報とから、ハードマクロ内に組み込まれているバッファの位置、すなわち、各々のバッファに対応してハードマクロに形成されている外部端子の位置を抽出してそれを記憶する。
一方、ステップ４として、レイアウトパターンの配置配線情報から、ハードマクロの周辺を通過する配線を抽出して記憶する。
【００１９】
その後、ステップ５として、レイアウトパターンの配置配線情報から、ＲＣ（抵抗成分および容量成分）の情報を抽出して、それに基づいて遅延計算を行い、その遅延計算に基づいて動作タイミングを解析する。
その結果、ステップ６として、エラーを起こしている配線の中に、ステップ４で記憶しているハードマクロの周辺を通過する配線が含まれているかどうかを検索し、該当する配線を選択する。
【００２０】
そして、ステップ７として、ステップ３で記憶しているハードマクロの中のリピータとして使えるバッファの内、ステップ６のタイミングエラーを起こしている配線の経路に一番近いものが利用可能であると判断して、その中で最適になるものをリピータとして採用する。この時、必ずしも１つの配線に対して１つのバッファを使用するというわけではなく、必要に応じて必要な個数のバッファを使用してもよい。なお、使用しないバッファの入力端子は、グランドまたは電源に接続しておく。
【００２１】
続いて、ステップ８として、ステップ７で採用したバッファを介してエラーのある配線を接続し直すようにネットリスト情報を更新する。そして、この更新後のネットリスト情報と同じようにレイアウト上の配線もやり直す。
最後に、ステップ９として、前述のようにして修正可能な配線以外の配線に関しては、従来通り既存の配置列にバッファを配置し、これをリピータとして使用することにより修正する。
【００２２】
なお、上記実施例では、ハードマクロの上を配線が通過できないものとして、ハードマクロの周辺部にバッファを配置しているが、本発明はこれに限定されず、配線層の多層化に伴ってハードマクロの上を配線が通過できる場合には、ハードマクロの任意の位置にバッファを配置してもよい。この場合、バッファの外部端子も、一辺からこれに対向する他辺に形成したり、１つのバッファに対して複数の外部端子を設けるなど、必要に応じて適宜変更してもよい。
【００２３】
本発明の半導体装置および半導体設計装置は、基本的に以上のようなものである。
以上、本発明の半導体装置および半導体設計装置について詳細に説明したが、本発明は上記実施例に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【００２４】
【発明の効果】
以上詳細に説明した様に、本発明の半導体装置は、その本来の機能とは独立したバッファを含み、その機能を使用するための本来の外部端子とは独立したバッファ用の外部端子を備えるハードマクロを搭載するものである。
また、本発明の半導体設計装置は、本発明の半導体装置のネットリストからレイアウトパターンを生成し、レイアウト後のレイアウトパターンの配置配線情報に基づいて、半導体装置の動作タイミングを解析し、ハードマクロの周辺を通過する配線の中から、動作タイミングにエラーのある配線を検出し、ハードマクロ内に含まれているバッファの中から、配線の動作タイミングが最適となるバッファを検出し、このバッファを介して配線の接続をやり直すように、ネットリストを更新し、レイアウトパターンを修正するものである。
したがって、本発明の半導体装置および半導体設計装置によれば、比較的大きいレイアウト面積を占有するハードマクロを搭載する場合であっても、ハードマクロを横切って接続すべき配線の配線遅延エラーを短時間で解決し、設計期間を大幅に短縮することができる。また、本発明の半導体装置および半導体設計装置によれば、ハードマクロの内部にリピータとなるバッファを搭載しているため、たとえハードマクロの配置をやり直した場合であっても、これに対応するその後の処理を短時間で行うことができる。
【図面の簡単な説明】
【図１】  本発明の半導体装置の一実施例の概念図である。
【図２】  半導体装置の一例の概念図である。
【図３】  配置列の一例の概念図である。
【符号の説明】
１０  半導体装置
１２  ハードマクロ
１４  バッファ
１６，２８  配線
２０  半導体装置
２２  ハードマクロ
２４  プリミティブセル
２６  Ｉ／Ｏセル
３０  配置列
３２  バッファ
ＶＤＤ  電源ライン
ＶＳＳ  グランドライン
【図１】
0003925679.tif 000002
【図２】
0003925679.tif 000003
【図３】
0003925679.tif 000004