(57)【特許請求の範囲】
【請求項１】
チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、
前記ブロック内のセル配置を実行する第２の工程と、
前記第２の工程を実行する前の前記ブロックの外形を変更することなく、前記ブロックの境界上であって、前記第２の工程によって配置されたセルのうちの前記ブロックピンに接続されるセルにより近い位置に前記ブロックピンの位置を変更する第３の工程と、
を含むことを特徴とするブロックピンの位置決定方法。
【請求項２】
チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、
前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割する第２の工程と、
前記入出力ブロック内のセル配置を実行する第３の工程と、
前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更する第４の工程と、
前記内部ブロック内のセル配置を実行する第５の工程と、
を含むことを特徴とするブロックピンの位置決定方法。
【請求項３】
前記第４の工程の後、前記入出力ブロック内の論理回路を変更して、前記ブロックピンと前記内部ブロックとの間の遅延タイミングを調整する第５の工程と、
前記第３の工程による入出力ブロックのセル配置における前記第５の工程により変更された部分を修正する第６の工程と、
をさらに含むことを特徴とする請求項２に記載のブロックピンの位置決定方法。
【請求項４】
前記第５の工程は、接続されるブロックの各ブロックピン間の配線遅延調整をさらに行い、接続される他のブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整することを特徴とする請求項３に記載のブロックピンの位置決定方法。
【請求項５】
前記第５の工程は、接続されるブロックの各ブロックピン間の配線遅延と、接続される他のブロックの入出力ブロックの遅延調整とをさらに行い、接続される他のブロックの内部ブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整することを特徴とする請求項３に記載のブロックピンの位置決定方法。
【請求項６】
前記第２の工程によって分割される入出力ブロックは、前記ブロックピンと前記内部ブロックの入出力端であるフリップフロップ回路との間の入出力ロジック回路であることを特徴とする請求項２〜５のいずれか一つに記載のブロックピンの位置決定方法。
【請求項７】
チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、
前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割する第２の工程と、
前記入出力ブロック内のセル配置を実行する第３の工程と、
前記第３の工程によって配置されたセルの位置に対応して前記ブロックピンの位置を変更する第４の工程と、
前記内部ブロック内のセル配置を実行する第５の工程と、
を含むことを特徴とするブロックピンの位置決定方法。
【請求項８】
請求項１〜７に記載されたいずれかの方法をコンピュータに実行させるプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、チップ内に複数のブロックが埋め込まれた大規模集積回路を生成するに際し、各ブロック間を接続するブロックピンの位置の決定およびこれに伴う最適処理を行うことができるブロックピンの位置決定方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体に関するものである。
【０００２】
【従来の技術】
従来から、階層フロアプランナ手法を用いて、複数のブロックを配置し、各ブロック間の領域に配置されるブロックピン間を接続することによってＡＳＩＣなどの大規模集積回路を生成している。
【０００３】
ここで、図１３に示すフローチャートを参照して、従来の階層フロアプランナによるブロックピンの位置決定処理手順について説明する。図１３において、まず、階層フロアプランナは、大規模集積回路を構成する複数のブロックを作成し、この作成した各ブロックを半導体チップ上に配置する（ステップＳ１０１）。その後、半導体チップ上における、この配置された各ブロックの位置関係をもとに、各ブロックのブロックピン位置を決定する（ステップＳ１０２）。ブロックピン位置が決定されると、その後、各ブロック内部のセル配置を実行する（ステップＳ１０３）。このセル配置が完了した後、半導体チップ上における各ブロックピン間の配線を行い（ステップＳ１０４）、本処理を終了する。すなわち、従来の階層フロアプランナでは、決定されたブロックピン位置を用いて、各ブロックのレイアウトおよび各ブロック間の配線を自動的に行うようにしている。
【０００４】
【発明が解決しようとする課題】
しかしながら、上述した従来の階層フロアプランナでは、半導体チップ上の各ブロックの位置が適切でない場合には、各ブロック間の配線が冗長になってしまい、配線容量によって予期しないタイミングエラーが発生する場合があるという問題点があった。
【０００５】
たとえば、各ブロック内のレイアウトは通常、完成していないので、各ブロックピン位置を決定する場合、各ブロック間の位置関係および接続関係のみをもとに、このブロックピン位置を決定しているが、実際に各ブロック内のレイアウトを実行した場合、各ブロック間の位置関係および接続関係のみによって各ブロックピン位置を決定するため、必ずしも、この各ブロックピン位置の近くに、この各ブロックピンを接続するセルが配置されているとは限らない。各ブロックピン位置の近くに、この各ブロックピンを接続するセルが配置されていない場合、各ブロック間の配線は冗長なものとなる。
【０００６】
この発明は上記に鑑みてなされたもので、各ブロックピン位置が、各ブロックピンを接続セルに近傍に配置されることを保証し、予期しないタイミングエラーの発生を未然に防止することができるブロックピンの位置決定方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体を得ることを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかるブロックピンの位置決定方法は、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、前記ブロック内のセル配置を実行する第２の工程と、前記第２の工程を実行する前の前記ブロックの外形を変更することなく、前記ブロックの境界上であって、前記第２の工程によって配置されたセルのうちの前記ブロックピンに接続されるセルにより近い位置に前記ブロックピンの位置を変更する第３の工程と、を含むことを特徴とする。
【０００８】
この発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記ブロック内のセル配置を実行し、第３の工程によって、前記第２の工程を実行する前の前記ブロックの外形を変更することなく、前記ブロックの境界上であって、前記第２の工程によって配置されたセルのうちの前記ブロックピンに接続されるセルにより近い位置に前記ブロックピンの位置を変更し、常にブロックピンと、このブロックピンが接続されるセルとの距離が短くなるようにしている。
【０００９】
つぎの発明にかかるブロックピンの位置決定方法は、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割する第２の工程と、前記入出力ブロック内のセル配置を実行する第３の工程と、前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更する第４の工程と、前記内部ブロック内のセル配置を実行する第５の工程と、を含むことを特徴とする。
【００１０】
この発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割し、第３の工程によって、前記入出力ブロック内のセル配置を実行し、第４の工程によって、前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更し、第５の工程によって、前記内部ブロック内のセル配置を実行するようにしている。
【００１１】
つぎの発明にかかるブロックピンの位置決定方法は、上記の発明において、前記第４の工程の後、前記入出力ブロック内の論理回路を変更して、前記ブロックピンと前記内部ブロックとの間の遅延タイミングを調整する第５の工程と、前記第３の工程による入出力ブロックのセル配置における前記第５の工程により変更された部分を修正する第６の工程と、をさらに含むことを特徴とする。
【００１２】
この発明によれば、第５の工程によって、前記第４の工程の後、前記入出力ブロック内の論理回路を変更して、前記ブロックピンと前記内部ブロックとの間の遅延タイミングを調整し、第６の工程によって、前記第３の工程による入出力ブロックのセル配置における前記第５の工程により変更された部分を修正し、ブロックピンと、このブロックピンが接続されるセルとの距離が短くなるようにするとともに、入出力ブロック内の遅延タイミングを最適調整するようにしている。
【００１３】
つぎの発明にかかるブロックピンの位置決定方法は、上記の発明において、前記第５の工程は、接続されるブロックの各ブロックピン間の配線遅延調整をさらに行い、接続される他のブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整することを特徴とする。
【００１４】
この発明によれば、前記第５の工程が、接続されるブロックの各ブロックピン間の配線遅延調整をさらに行い、接続される他のブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整するようにしている。
【００１５】
つぎの発明にかかるブロックピンの位置決定方法は、上記の発明において、前記第５の工程は、接続されるブロックの各ブロックピン間の配線遅延と、接続される他のブロックの入出力ブロックの遅延調整とをさらに行い、接続される他のブロックの内部ブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整することを特徴とする。
【００１６】
この発明によれば、前記第５の工程が、接続されるブロックの各ブロックピン間の配線遅延と、接続される他のブロックの入出力ブロックの遅延調整とをさらに行い、接続される他のブロックの内部ブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整するようにしている。
【００１７】
つぎの発明にかかるブロックピンの位置決定方法は、上記の発明において、前記第２の工程によって分割される入出力ブロックは、前記ブロックピンと前記内部ブロックの入出力端であるフリップフロップ回路との間の入出力ロジック回路であることを特徴とする。
【００１８】
この発明によれば、前記第２の工程によって分割される入出力ブロックを、前記ブロックピンと前記内部ブロックの入出力端であるフリップフロップ回路との間の入出力ロジック回路とし、適切な入出力ブロックとして分割している。
【００１９】
つぎの発明にかかるブロックピンの位置決定方法は、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定する第１の工程と、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割する第２の工程と、前記入出力ブロック内のセル配置を実行する第３の工程と、前記第３の工程によって配置されたセルの位置に対応して前記ブロックピンの位置を変更する第４の工程と、前記内部ブロック内のセル配置を実行する第５の工程と、を含むことを特徴とする。
この発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割し、第３の工程によって、前記入出力ブロック内のセル配置を実行し、第４の工程によって、前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更し、第５の工程によって、前記内部ブロック内のセル配置を実行するようにしている。
つぎの発明にかかる記憶媒体は、上記の発明に記載されたいずれかの方法をコンピュータに実行させるプログラムを記録したことを特徴とする。
【００２０】
この発明によれば、上記の発明に記載されたいずれかの方法をコンピュータに実行させるプログラムを記録したことで、そのプログラムが機械読み取り可能となり、当該方法の動作をコンピュータによって実現することができる。
【００２１】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるブロックピンの位置決定方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体の好適な実施の形態を詳細に説明する。
【００２２】
実施の形態１．
図１は、この発明の実施の形態１であるブロックピンの位置決定方法を示すフローチャートである。図１において、まず、大規模集積回路の設計を自動支援するソフトウェアである階層フロアプランナは、半導体チップ上に配置すべきブロックの位置を決定する（ステップＳ１１）。たとえば、図２では、半導体チップ１上に２つのブロックＡ，Ｂを配置し、ブロックＡは、半導体チップ１上の左上に配置され、ブロックＢは、半導体チップ１上の右下に配置される。
【００２３】
その後、階層フロアプランナは、配置された各ブロックＡ，Ｂのブロックピン位置を、各ブロックＡ，Ｂの配置関係および接続関係をもとに仮決定する（ステップＳ１２）。たとえば、図２に示すように、ブロックＡ，Ｂの各重心を直線で結び、この直線と各ブロックＡ，Ｂとの交点１１，１２をブロックピン位置として仮決定する。
【００２４】
この各ブロックピン位置の仮決定が終了すると、階層フロアプランナは、各ブロック内のセル配置（レイアウト）を行う（ステップＳ１３）。その後、階層フロアプランナは、仮決定された各ブロックピン位置の各ブロックピンと接続関係をもつブロック内のセルの近傍に各ブロックピンを移動することによって、各ブロックピン位置を最適位置に設定し（ステップＳ１４）、本処理を終了する。たとえば、図３に示すように、ブロックＢに対して仮決定された仮ブロックピン１２の位置は、このブロックピン１２と接続関係をもつセル２０に最も近いブロックＢの周囲上に最終ブロックピン１２’として位置変更される。
【００２５】
なお、図２に示すように仮決定されたブロックピン位置とすると、一般に、ブロック内には、多数のセルが配置され、また各セル間、セルとブロックピンとの間を結ぶ配線が多数あるため、セルとブロックピンとの距離が長い程、他の配線が障害となり、迂回回線が生じやすくなる。これに対し、ブロックピン間の配線は、ブロック内部の配線に比較して、配線数が少ないため、迂回回線が生じにくく、予期した通りの配線が自動生成される可能性が高い。
【００２６】
この実施の形態１では、迂回回線が生じやすいブロック内におけるブロックピンとこれに接続されるセルとの配線距離を常に短くすることができるので、ブロック内において冗長配線が生じにくくなり、予期しないタイミングエラーの発生を抑えることができる。
【００２７】
実施の形態２．
つぎに、この発明の実施の形態２について説明する。上述した実施の形態１では、各ブロックピンに接続されるセルに近づけて各ブロックピン位置を最適化するようにしていたが、この実施の形態２では、予めブロックピンに関連する入出力ロジック回路である入出力ブロックと、入出力ブロック以外の内部ブロックとに分割して各ブロックピン位置の最適化にかかる時間を短縮するようにしている。
【００２８】
図４は、この発明の実施の形態２であるブロックピンの位置決定方法を示すフローチャートである。図４において、まず、大規模集積回路の設計を自動支援するソフトウェアである階層フロアプランナは、ステップＳ１１と同様に、半導体チップ上に配置すべきブロックの位置を決定する（ステップＳ２１）。その後、階層フロアプランナは、ステップＳ１２と同様に、配置された各ブロックのブロックピン位置を、各ブロックの配置関係および接続関係をもとに仮決定する（ステップＳ２２）。
【００２９】
その後、階層フロアプランナは、各ブロックの内部を、各ブロックピンに関連する入出力ロジック回路である入出力ブロックと、この入出力ブロック以外の内部ブロックとに分割する（ステップＳ２３）。たとえば、図５に示すように、ブロックＢ内のロジックを、ブロックピンに関連する入出力ブロックＢ１，Ｂ３と、入出力ブロックＢ１，Ｂ３以外の内部ブロックＢ２とに分割する。すなわち、ブロックピンに関連するセル群である入出力ブロックＢ１，Ｂ３と、このセル群以外のセル群である内部ブロックＢ２とに分割する。ここで、この場合、入出力ブロックＢ１，Ｂ３は、ブロックＢの周囲に配置される。
【００３０】
その後、階層フロアプランナは、分割された入出力ブロックＢ１，Ｂ３内のセル配置を行う（ステップＳ２４）。その後、階層フロアプランナは、ステップＳ１４と同様に、ステップＳ２２によって仮決定された各ブロックピン位置を最適位置に変更する（ステップＳ２５）。さらに、階層フロアプランナは、入出力ブロックＢ１，Ｂ３以外の内部ブロックＢ２の各セル配置を行って（ステップＳ２６）、本処理を終了する。
【００３１】
この実施の形態２によれば、ブロックを入出力ブロックと内部ブロックとに分割し、入出力ブロック内のセルと各ブロックピンとの間においてブロックピン位置の最適化処理を行えばよいので、ブロックピン位置の最適化処理にかかる時間を短縮することができる。
【００３２】
実施の形態３．
つぎに、この発明の実施の形態３について説明する。上述した実施の形態２では、各ブロックピンに接続されるセルを有する入出力ブロックとそれ以外のセルを有する内部ブロックとに分割して各ブロックピン位置の最適化を行うようにしていたが、この実施の形態３では、さらに入出力ブロック内の遅延タイミングをも最適調整するようにしている。
【００３３】
図６は、この発明の実施の形態３であるブロックピンの位置決定方法を示すフローチャートである。図６において、まず、大規模集積回路の設計を自動支援するソフトウェアである階層フロアプランナは、ステップＳ２１と同様に、半導体チップ上に配置すべきブロックの位置を決定する（ステップＳ３１）。その後、階層フロアプランナは、ステップＳ２２と同様に、配置された各ブロックのブロックピン位置を、各ブロックの配置関係および接続関係をもとに仮決定する（ステップＳ３２）。
【００３４】
その後、階層フロアプランナは、各ブロックの内部を、各ブロックピンに関連する入出力ロジック回路である入出力ブロックと、この入出力ブロック以外の内部ブロックとに分割する（ステップＳ３３）。ただし、実施の形態２におけるステップＳ２３では、各ブロックピン位置を決定するだけのために、入出力ブロックと内部ブロックとの分割を行っていたが、この実施の形態３におけるステップＳ３３では、後述する入出力ブロックの遅延タイミングの最適化に適するように、入出力ブロックと内部ブロックとを分割する。
【００３５】
その後、ステップＳ２４と同様に、分割された入出力ブロック内のセル配置を行う（ステップＳ３４）。さらに、ステップＳ２５と同様に、階層フロアプランナは、ステップＳ３２によって仮決定された各ブロックピン位置を最適位置に変更する（ステップＳ３５）。その後、階層フロアプランナは、入出力ブロック内のロジックを変更して、ブロックピンと内部ブロックとの間の遅延タイミングを最適調整する最適化合成を行う（ステップＳ３６）。さらに、階層フロアプランナは、ステップＳ３４によって配置された入出力ブロックのセル配置と、ステップＳ３６によって配置変更された入出力ブロックのセル配置とを比較し、変更部分がある場合には、入出力ブロック内の変更部分の修正を行う（ステップＳ３７）。その後、入出力ブロック以外の内部ブロックのセル配置を行い（ステップＳ３８）、本処理を終了する。
【００３６】
ここで、入出力ブロックの遅延タイミングについて、図７および図８を参照して説明する。図７において、フリップフロップ回路３１，３２との間には、中間ロジック回路３３が介在する。この中間ロジック回路３３は、たとえば、入出力ブロックに相当する。また、フリップフロップ回路３１は、他のブロック内のフリップフロップ回路に相当し、フリップフロップ回路３２は、自ブロック内のフリップフロップ回路に相当する。
【００３７】
図８において、フリップフロップ回路３１は、クロックＣＫの立ち上がりで、Ｄピンによって取り込んだデータをＱピンに出力する。この場合、フリップフロップ回路３１の出力データは、次のクロックＣＫの立ち上がりがフリップフロップ回路３２のＴピンに入力されるまでに、フリップフロップ回路３２によって受け取られなければならない。すなわち、クロックＣＫの１周期の間にフリップフロップ回路３１の出力データが次段のフリップフロップ回路３２に到達するようにしなければならない。すなわち、期間ｔ１を調整する必要がある。
【００３８】
そこで、図９に示すように、ブロックＢを入出力ブロックＢ１，Ｂ３と内部ロジックＢ２とに分割する場合、内部ブロックＢ２内のフリップフロップ回路Ｂ２−１，Ｂ２−３を、入出力ブロックＢ１，Ｂ３と内部ブロックとの間の境界として決定する。すなわち、内部ブロックＢ２から、入出力ブロックＢ１，Ｂ３の遅延タイミング調整を行う境界としてのフリップフロップ回路Ｂ２−１，Ｂ２−３を分離して抽出し、内部ロジック回路Ｂ２−２と分離する。
【００３９】
その後、階層フロアプランナは、ステップＳ３６において、ブロックピン３４とフリップフロップ回路Ｂ２−１との間の遅延タイミングおよびブロックピン３５とフリップフロップ回路Ｂ２−３との間の遅延タイミングを最適調整する。この最適調整は、たとえば、バッファなどのセルを入出力ブロックＢ１，Ｂ３内に挿入することによって行うことができる。
【００４０】
この実施の形態３では、ブロックピンに関連する入出力ブロックＢ１，Ｂ３をブロックＢから抜き出し、各ブロックピン位置の最適化と入出力ブロックの遅延タイミングの最適調整を行うようにしているので、一層遅延タイミングエラーの少ない大規模集積回路のレイアウト設計を行うことができる。
【００４１】
実施の形態４．
つぎに、この発明の実施の形態４について説明する。上述した実施の形態３では、各ブロック内の入出力ブロックにおいて遅延タイミングの最適調整を行うようにしていたが、この実施の形態４では、各ブロック間の配線および他のブロックを含めて遅延タイミングの最適調整を行うようにしている。
【００４２】
図１０は、この発明の実施の形態３であるブロックピンの位置決定方法を示すフローチャートである。図１０において、この実施の形態４におけるブロックピンの位置決定方法の処理手順は、実施の形態３におけるステップＳ３６に代えて、各ブロックピン間の配線遅延をも考慮して遅延タイミングの最適調整を行うステップＳ４６としている。その他のステップＳ４１〜Ｓ４５，Ｓ４７，Ｓ４８は、それぞれステップＳ３１〜Ｓ３５，Ｓ３７，Ｓ３８に対応する。
【００４３】
ステップＳ４６では、図１１に示すように自ブロックＢと他のブロックＡとの各ブロックピン４３，４２間を接続するブロック間配線４１の配線遅延を考慮して、入出力ブロックＢ１の遅延タイミングを最適調整している。すなわち、ブロックピン４２からフリップフロップ回路Ｂ２−１までの間のおける遅延タイミングを最適調整している。
【００４４】
また、図１２に示すように、自ブロックＢと他のブロックＡとの各ブロックピン５３，５２間を接続するブロック間配線５１と、他のブロックＡのフリップフロップ回路Ａ２−３とブロックピン５２との間の入出力ブロックＡ３とを考慮し、フリップフロップ回路Ａ２−３からフリップフロップ回路Ｂ２−１までの遅延タイミングを最適調整するようにしてもよい。
【００４５】
この実施の形態４によれば、自ブロックＢ内の入出力ブロックＢ１の遅延タイミングの最適調整とせず、各ブロックピン間の配線遅延、あるいは各ブロックピン間の配線遅延および他のブロックＡ内の入出力ブロックＡ３の遅延タイミングの遅延調整を行うことによって、一層、最適な遅延タイミングの調整を行うことができる。
【００４６】
なお、上述した実施の形態１〜４では、階層フロアプランナによって、ブロックピンの位置決定処理を行うようにしているが、この処理方法は、コンピュータが実行するプログラムとして、コンピュータ読み取り可能な記録媒体に記録させておくことによって実現することができる。
【００４７】
【発明の効果】
以上説明したように、この発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記ブロック内のセル配置を実行し、第３の工程によって、前記第２の工程を実行する前の前記ブロックの外形を変更することなく、前記ブロックの境界上であって、前記第２の工程によって配置されたセルのうちの前記ブロックピンに接続されるセルにより近い位置に前記ブロックピンの位置を変更し、常にブロックピンと、このブロックピンが接続されるセルとの距離が短くなるようにしているので、ブロック内において冗長配線が生じにくくなり、予期しないタイミングエラーの発生を抑えることができるという効果を奏する。
【００４８】
つぎの発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割し、第３の工程によって、前記入出力ブロック内のセル配置を実行し、第４の工程によって、前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更し、第５の工程によって、前記内部ブロック内のセル配置を実行するようにしているので、ブロックピンの最適化にかかる時間を短縮することができるという効果を奏する。
【００４９】
つぎの発明によれば、第５の工程によって、前記第４の工程の後、前記入出力ブロック内の論理回路を変更して、前記ブロックピンと前記内部ブロックとの間の遅延タイミングを調整し、第６の工程によって、前記第３の工程による入出力ブロックのセル配置における前記第５の工程により変更された部分を修正し、ブロックピンと、このブロックピンが接続されるセルとの距離が短くなるようにするとともに、入出力ブロック内の遅延タイミングを最適調整するようにしているので、一層、予期しないタイミングエラーの発生を抑えることができるという効果を奏する。
【００５０】
つぎの発明によれば、前記第５の工程が、接続されるブロックの各ブロックピン間の配線遅延調整をさらに行い、接続される他のブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整するようにしているので、一層、予期しないタイミングエラーの発生を抑えることができるという効果を奏する。
【００５１】
つぎの発明によれば、前記第５の工程が、接続されるブロックの各ブロックピン間の配線遅延と、接続される他のブロックの入出力ブロックの遅延調整とをさらに行い、接続される他のブロックの内部ブロックと自ブロックの内部ブロックとの間の遅延タイミングを調整するようにしているので、一層、予期しないタイミングエラーの発生を抑えることができるという効果を奏する。
【００５２】
つぎの発明によれば、前記第２の工程によって分割される入出力ブロックを、前記ブロックピンと前記内部ブロックの入出力端であるフリップフロップ回路との間の入出力ロジック回路とし、適切な入出力ブロックとして分割しているので、予期しないタイミングエラーの発生を確実に抑えることができるという効果を奏する。
つぎの発明によれば、第１の工程によって、チップ上に配置されるブロックのブロック位置を決定した後、該ブロック位置に対応して当該ブロックのブロックピンの位置を仮決定し、第２の工程によって、前記第１の工程の後、前記ブロックの内部を、前記ブロックピンの入出力ロジック回路に関連するセルからなる入出力ブロックとその他の内部ブロックとに分割し、第３の工程によって、前記入出力ブロック内のセル配置を実行し、第４の工程によって、前記第３の工程によって配置されたセルにより近い位置に前記ブロックピンの位置を変更し、第５の工程によって、前記内部ブロック内のセル配置を実行するようにしているので、ブロックピンの最適化にかかる時間を短縮することができるという効果を奏する。
【００５３】
つぎの発明によれば、上記の発明に記載されたいずれかの方法をコンピュータに実行させるプログラムを記録したことで、そのプログラムが機械読み取り可能となり、当該方法の動作をコンピュータによって実現することができるという効果を奏する。
【図面の簡単な説明】
【図１】  この発明の実施の形態１であるブロックピンの位置決定方法を示すフローチャートである。
【図２】  半導体チップ上における各ブロックの配置関係および仮ブロックピン位置を示す図である。
【図３】  ブロックピン位置の最適化の一例を示す図である。
【図４】  この発明の実施の形態２であるブロックピンの位置決定方法を示すフローチャートである。
【図５】  この発明の実施の形態２におけるブロック分割の一例を示す図である。
【図６】  この発明の実施の形態３であるブロックピンの位置決定方法を示すフローチャートである。
【図７】  遅延タイミングを説明する説明図である。
【図８】  遅延タイミング調整を説明するタイミングチャートである。
【図９】  この発明の実施の形態３であるブロック分割の一例を示す図である。
【図１０】  この発明の実施の形態４であるブロックピンの位置決定方法を示すフローチャートである。
【図１１】  この発明の実施の形態４による遅延タイミング調整の一例を示す図である。
【図１２】  この発明の実施の形態４による遅延タイミング調整の一例を示す図である。
【図１３】  従来のブロックピンの位置決定方法を示すフローチャートである。
【符号の説明】
１  半導体チップ、１１，１２，１２’，３４，３５  ブロックピン、２０  セル、３１，３２，Ｂ２−１，Ｂ２−３  フリップフロップ回路、４１，５１  ブロック間配線、Ａ，Ｂ  ブロック、Ｂ１，Ｂ３  入出力ブロック、Ｂ２  内部ブロック、Ｂ２−２  内部ロジック回路
【図１】
0004690527.tif 000002
【図２】
0004690527.tif 000003
【図３】
0004690527.tif 000004
【図４】
0004690527.tif 000005
【図５】
0004690527.tif 000006
【図６】
0004690527.tif 000007
【図７】
0004690527.tif 000008
【図８】
0004690527.tif 000009
【図９】
0004690527.tif 000010
【図１０】
0004690527.tif 000011
【図１１】
0004690527.tif 000012
【図１２】
0004690527.tif 000013
【図１３】
0004690527.tif 000014