(57)【要約】  【構成】  ２つのクロックのうちいずれか一方のクロックを選択する２入力セレクタと２入力セレクタによって選択されたクロックに同期して動作する同期式Ｄフリップフロップとからなる複数の複合回路を含むＬＳＩの設計を支援するＥＷＳ１０は、複合回路を１つのセルとして、その属性情報をあらかじめＨＤＤ１６のライブラリ１６ａに記憶しておく。複合回路を含むＬＳＩが設計されるとき、ＨＤＤ１６に記憶された属性情報に基づいて複合回路を配置する。そして、配置された複合回路間のクロックスキューが許容範囲内であるか否かを判別し、判別結果に応じて異なるメッセージを出力する。    【効果】  複合回路を１つのセルとして、その属性情報をセルライブラリにあらかじめ記憶しておくことにより、各複合回路間のクロックスキューを容易に許容範囲内に収めることができる。【選択図】  図１
2005275645.tif 000002
【特許請求の範囲】
【請求項１】
複数のクロックの中から特定のクロックを選択するセレクタと前記セレクタによって選択されたクロックに同期して動作する回路とからなる複数の複合回路を含むＬＳＩの設計を支援する半導体設計支援装置において、
前記複合回路の属性を示す属性情報を記憶する記憶手段、
前記記憶手段に記憶された前記属性情報に基づいて前記複合回路を配置する配置手段、
配置された前記複合回路間のクロックスキューが許容範囲内であるか否かを判別する第１判別手段、および
前記第１判別手段による判別結果に応じて異なるメッセージを出力する第１出力手段を備えることを特徴とする、半導体設計支援装置。
【請求項２】
前記複合回路は、フリップフロップを含む、請求項１記載の半導体設計支援装置。
【請求項３】
前記複合回路は、メモリを含む、請求項１または２記載の半導体設計支援装置。
【請求項４】
配置された前記複合回路間のデータのタイミングずれが許容範囲内であるか否かを判別する第２判別手段、および
前記第２判別手段による判別結果に応じて異なるメッセージを出力する第２出力手段をさらに含む、請求項１ないし３のいずれかに記載の半導体設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体設計支援装置に関し、特にたとえばＬＳＩを設計する半導体設計支援装置に適用され、複数のクロックの中から特定のクロックを選択するセレクタと選択されたクロックに同期して動作する回路とからなる複数の複合回路を含むＬＳＩの設計を支援する、半導体設計支援装置に関する。
【背景技術】
【０００２】
従来のこの種の半導体設計支援装置の一例が、特許文献１に開示されている。この従来技術では、ＨＤＤ内のセルライブラリに、ＬＳＩを構成するセルごとに作成されたセル情報および性能情報が登録されている。半導体設計支援装置は、セルライブラリから必要なセルのセル情報および性能情報を読み出し、読み出したセル情報および性能情報に基づいて論理設計、回路設計、レイアウト設計の順に設計を行うことによって、マスクの製作に必要なレイアウト図を作成する。
【特許文献１】特開２００１−２４３２６２号公報［Ｇ０６Ｆ  １７／５０、１／１０］
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、複数のクロックの中からセレクト信号に応じてクロックを選択するセレクタと、セレクタにより選択されたクロックが入力されることによって動作するフリップフロップからなる複数の回路を含むＬＳＩの設計では次のような問題がある。すなわち、クロック発生回路から各フリップフロップの入力端子までの配線抵抗、配線容量などに起因するフリップフロップ間でのクロックの伝搬時間差（クロックスキュー）を低減するため、まずクロック発生回路から各セレクタまでの配線について、クロックツリーシンセシス（ＣＴＳ）を行ってクロックスキューが許容範囲内に収まるようにする。次に、各セレクタから各フリップフロップまでの配線について、ＣＴＳを行ってクロックスキューが許容範囲内に収まるようにするというように、セレクタの前後でＣＴＳを行わなければならないという問題がある。
【０００４】
また、複数のクロックのうち、あるクロックについてＣＴＳを行うことによりクロックスキューを許容範囲内に収めることができても、別のクロックではクロックスキューが許容範囲を超える場合があるという問題がある。すなわち、いずれのクロックも、セレクタとフリップフロップとの間は同じ配線を伝搬するので、あるクロックについて最適なＣＴＳが、別のクロックについては最適なＣＴＳとならない場合がある。
【０００５】
それゆえに、この発明の主たる目的は、複数のクロックの中から特定のクロックを選択するセレクタと、選択されたクロックによって動作する回路とからなる複合回路間のクロックスキューを容易に許容範囲内に収めることができる、半導体設計支援装置を提供することである。
【課題を解決するための手段】
【０００６】
請求項１の発明は、複数のクロックの中から特定のクロックを選択するセレクタとセレクタによって選択されたクロックに同期して動作する回路とからなる複数の複合回路を含むＬＳＩの設計を支援する半導体設計支援装置において、複合回路の属性を示す属性情報を記憶する記憶手段、記憶手段に記憶された属性情報に基づいて複合回路を配置する配置手段、配置された複合回路間のクロックスキューが許容範囲内であるか否かを判別する第１判別手段、および第１判別手段による判別結果に応じて異なるメッセージを出力する第１出力手段を備えることを特徴とする、半導体設計支援装置である。
【０００７】
請求項１の発明によれば、複数のクロックの中から特定のクロックを選択するセレクタとセレクタによって選択されたクロックに同期して動作する回路とからなる複数の複合回路を含むＬＳＩを設計するとき、あらかじめ記憶手段にセレクタとクロックに同期して動作する回路とを接続した複合回路を１つのセルとして、その属性情報を記憶手段に記憶させておく。そして、複合回路を含むＬＳＩを設計するとき、記憶手段に記憶された属性情報に基づいて複合回路を配置する。次に、配置された複合回路間のクロックスキューが許容範囲内であるか否かを第１判別手段によって判別し、第１判別手段による判別結果に応じて異なるメッセージを出力する。
【０００８】
複合回路を１つのセルとするセルの属性情報が記憶手段に記憶されているので、複合回路内でクロックスキューを調整する必要がない。したがって、複合回路間でクロックスキューが許容範囲に収まるように調整するだけでよい。また、複合回路内ではクロックスキューを調整する必要がないので、複合回路内で異なるクロックに対する矛盾が生じることもない。
【０００９】
請求項２の発明は、請求項１に従属し、複合回路はフリップフロップを含む、半導体設計支援装置である。このため、各複合回路に含まれるフリップフロップのデータセットアップ違反およびデータホールド違反を防止することができる。
【００１０】
請求項３の発明は、請求項１または２に従属し、複合回路はメモリを含む、半導体設計支援装置である。このため、複合回路に含まれる各メモリ間の書き込み／読み出し動作を揃えることができる。
【００１１】
請求項４の発明は、請求項１ないし３のいずれかに従属し、配置された複合回路間のデータのタイミングずれが許容範囲内であるか否かを判別する第２判別手段、および第２判別手段による判別結果に応じて異なるメッセージを出力する第２出力手段をさらに含む、半導体設計支援装置である。このため、データについても各複合回路間のタイミングのずれを許容範囲内に収めることができる。
【発明の効果】
【００１２】
この発明によれば、複数のクロックの中から特定のクロックを選択するセレクタと、選択されたクロックに同期して動作する回路とからなる複合回路を１つのセルとして扱い、その属性情報をセルライブラリにあらかじめ登録しておくことにより、各複合回路間のクロックスキューを容易に許容範囲内に収めることができる。
【００１３】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００１４】
図１を参照して、この発明のＥＷＳ（Engineering Work Station）１０は、ＣＰＵ１２を含む。ＣＰＵ１２には、ディスプレイ１４、ＨＤＤ１６、キーボード１８、マウス２０およびパターンジェネレータ２２が接続されている。ＨＤＤ１６にはセルライブラリ１６ａが格納されており、セルライブラリ１６ａには後述するように設計に必要な各種の情報が登録されている。ＣＰＵ１２は、セルライブラリ１６ａから必要な情報を読み出し、読み出した情報に基づいてＬＳＩを設計する。そして、ＣＰＵ１２はＬＳＩのレイアウト図を作成した後、ＬＳＩの製造に必要なマスクを製作するために、作成したレイアウト図をパターンジェネレータ２２に出力する。また、オペレータは、設計に必要な情報やＣＰＵに対する命令をキーボード１８およびマウス２０を使用して入力し、回路図、レイアウト図などの作成された図面をディスプレイ１４に表示させて確認することができる。
【００１５】
次に、ＨＤＤ１６に格納されているセルライブラリ１６ａについて説明する。セルライブラリ１６ａには、ＬＳＩの設計に必要な各種セルのセル情報および性能情報が登録されている。これらの情報は、ＬＳＩの設計開始前にあらかじめ作成され、セルライブラリ１６ａに登録されている。
【００１６】
セル情報には、ＬＳＩを構成する各種の論理演算子（ＡＮＤ、ＯＲ、ＮＡＮＤなど）、インバータなどの基本的なセルの回路情報だけでなく、フリップフロップ、ＳＲＡＭ、乗算器などのマクロセルと呼ばれる規模の大きなセルの回路情報も含まれている。さらに、セル情報には、複数のクロックの中からセレクト信号に基づいて特定のクロックを選択するセレクタと、選択されたクロックに同期して動作するフリップフロップ、ＳＲＡＭなどからなる複合回路のセルも登録されている。
【００１７】
具体的には、セレクタとしては、クロックの入力端子数が２入力、３入力、４入力・・・であって、入力されたクロックの中からセレクト信号に基づいて特定のクロックを選択する各種のセレクタが含まれる。また、クロックに同期して動作する回路の例としては、フリップフロップ、およびＳＲＡＭ、ＤＲＡＭなどのメモリが含まれる。クロックに同期して動作するフリップフロップとしては、同期式ＲＳフリップフロップ、同期式ＪＫフリップフロップ、同期式Ｄフリップフロップなどが含まれ、ＳＲＡＭとしては、記憶容量およびアクセスタイムの異なる複数のＳＲＡＭが含まれる。すなわち、セレクタの入力端子数および、セレクタと組み合わせて使用するフリップフロップ、メモリの種類の組み合わせに対応した多数の複合回路のセルがあらかじめ作成されて、セルライブラリ１６ａに登録されている。
【００１８】
一方、性能情報には、セルごとに、入力された信号が出力されるまでの時間である遅延情報、セットアップ／ホールドタイムに関するタイミング情報、レイアウト時の面積に関する面積情報などの各種情報が含まれている。特に遅延情報には、入力された信号の波形なまりの程度に応じた遅延情報、出力端子に接続される容量成分に基づく遅延情報などが含まれる。
【００１９】
図２〜図４を参照して、２種類のクロックのいずれかを切り換えて出力する２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄとをそれぞれ組み合わされた複合回路３２ａ〜３２ｄを含むＬＳＩ３０の設計方法を説明する。なお、ここではクロック配線についてのみ図示し、データ配線についての図示は省略する。
【００２０】
まず、図２に示すように、セルライブラリ１６ａから、クロック発振回路３８、４０を構成するために必要なセル、および複合回路３２ａ〜３２ｄのセルについて、そのセル情報および性能情報を読み出す。次に、クロック発振回路３８，４０を構成するために必要なセルおよび複合回路３２ａ〜３２ｄのセルについて、読み出したセル情報および性能情報に基づき、論理設計、回路設計、レイアウト設計の順に設計して、クロック発振回路３８，４０および複合回路３２ａ〜３２ｄの配置を決めるとともに、クロック発振回路３８，４０および複合回路３２ａ〜３２ｄ内のトランジスタなどの素子のパターンレイアウトも行う。なお、各複合回路３２ａ〜３２ｄ内の２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄとはそれぞれあらかじめ接続されている。
【００２１】
次に、図３に示すように、クロック発生回路３８，４０の出力端子と、複合回路３２ａ〜３２ｄの入力端子すなわち２入力セレクタ３６ａ〜３６ｄの入力端子との間に必要な数のクロックバッファを配置して、クロック発生回路３８、４０から複合回路３２ａ〜３２ｄの入力端子までのクロックスキューが許容範囲内であるか否かをシミュレーションにより判別する。その結果、クロックスキューが許容範囲を超えているときは、クロック発生回路３８，４０と複合回路３２ａ〜３２ｄとの間にクロックバッファを必要な数だけ配置し、再びシミュレーションを行う。このようにして、クロックスキューを許容範囲内に収めるために必要なクロックバッファ４２ａ〜４２ｆの配置が決められる。ここで、クロックスキューを許容範囲内に収めるのは、同期式Ｄフリップフロップ３４ａ〜３４ｄ間の正常な同期動作が阻害されて、データセットアップ違反およびデータホールド違反が発生することを防止するためである。
【００２２】
そして、図４に示すように、クロック発生回路３８，４０の出力端子と複合回路のクロック入力端子とをクロックバッファ４２ａ〜４２ｆを介して配線により接続する。配線が完了すると、クロックスキューが許容範囲内であるか否かをシミュレーションにより最終的に判別する。その結果、クロックスキューが許容可能範囲を超えている場合は、クロックバッファ４２ａ〜４２ｆの配置などクロックスキューに影響を与える事項について再度検討する。一方、クロックスキューが許容可能範囲内に収まっていると、さらにデータ配線が行われて、ＬＳＩ３０のレイアウト図が作成される。作成されたレイアウト図はパターンジェネレータ２２に出力され、マスクが製作される。
【００２３】
この結果、クロック発生回路３８，４０からそれぞれ出力されたクロックＡおよびクロックＢは、複合回路３２ａ〜３２ｄを構成する２入力セレクタ３６ａ〜３６ｄの入力端子に与えられる。このとき、クロック発生回路３８、４０から２入力セレクタ３６ａ〜３６ｄまでのクロックスキューは、許容範囲内に収まるように調整されている。２入力セレクタ３６ａ〜３６ｄは、与えられたセレクト信号によりクロックＡおよびクロックＢのいずれか一方を同期式Ｄフリップフロップ３４ａ〜３４ｄに出力する。このとき、すべての複合回路３２ａ〜３２ｄにおいて、２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄとの距離は一定である。したがって、ＣＴＳは、クロック発生回路３８，４０と２入力セレクタ３６ａ〜３６ｄの入力端子との間だけでそれぞれ実行すればよい。また、複合回路３２ａ〜３２ｄ内でＣＴＳを実行する必要がないので、異なるクロックによって、２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄとの間でクロックバッファの配置に関する矛盾が生じることもない。
【００２４】
次に、図２〜図４に示したＬＳＩ３０の設計処理手順について、図５のフロー図を参照して説明する。ＥＷＳ１０によるＬＳＩ３０の設計に着手する前に、あらかじめ設計に必要なセル情報および性能情報を作成し、セルライブラリ１６ａに登録しておく。また、設計を開始するＬＳＩ３０について、具体的な用途、価格、目標性能、内蔵機能、従来品種との互換性などの要素について一つ一つ実現の可能性について吟味し、要素間の整合性を考慮しつつ外部仕様としてまとめておく。
【００２５】
ステップＳ１では、あらかじめまとめておいた外部仕様を実現するために、機能設計を行う。機能設計では、まず主要ハードウエアとともに制御の考え方とデータの流れとを表現した機能ブロック図を作成する。次に、作成した機能ブロック図に基づいて、ハードウエア記述言語（ＨＤＬ）により全機能を詳細に記述した詳細機能記述を作成し、作成した詳細機能記述を機能シミュレータにかけて機能検証を行う。この結果、機能ブロック間の関係と機能ブロック内部の動作が決められる。
【００２６】
ステップＳ３では、論理設計を行う。論理設計では、作成された機能ブロック図、および詳細機能記述をもとに、機能ブロック図を具体的なハードウエアに変換する。具体的には、詳細機能記述から機能ブロック図に相当するハードウエアは、２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄであることがわかるので、セルライブラリ１６ａに登録されているセル情報から２入力セレクタ３６ａ〜３６ｄと同期式Ｄフリップフロップ３４ａ〜３４ｄとが接続された複合回路３２ａ〜３２ｄのセルを読み出して、ロジック図（ネットリスト）を作成する。
【００２７】
ステップＳ５では、回路設計を行う。回路設計では、ネットリストに表された論理を具体化する。具体的には、複合回路３２ａ〜３２ｄ内の２入力セレクタ３６ａ〜３６ｄおよび同期式Ｄフリップフロップ３４ａ〜３４ｄなどをトランジスタ回路レベルに置き換えた回路図を作成する。このとき、ライブラリの性能情報とステップＳ１で作成された詳細機能記述とに基づいてトランジスタなどの素子のサイズを最適化する。ステップＳ７では、作成された回路図に基づいてトランジスタなどの構成要素をパターンに置き換えたパターン図を作成する、レイアウト設計を行う。
【００２８】
ステップＳ９では、セルライブラリ１６ａの性能情報に含まれる面積情報、ＬＳＩ３０の製造プロセスによる制約（デザインルール）などを参考にして、２個のクロック発振回路３８，４０と４個の複合回路３２ａ〜３２ｄの配置を決める。また、クロック発振回路３８、４０および複合回路３２ａ〜３２ｄを構成するトランジスタなどの素子のパターンレイアウトも決める。
【００２９】
ステップＳ１１で、複合回路３２ａ〜３２ｄによって処理されるデータのタイミングずれが許容範囲内であるか否かをシミュレーションにより判別し、ステップＳ１３で、その結果をディスプレイ１４に表示する。すなわち、データのタイミングずれが許容範囲を超えている場合には、ＬＳＩ３０のどの部分でどれだけのタイミングずれが発生したかを示す情報がディスプレイ１４に表示される。また、すべての部分でデータのタイミングずれが許容範囲内に収まっている場合には、タイミングずれが生じた部分がないことがディスプレイ１４に表示される。
【００３０】
ステップＳ１５では、オペレータが、ディスプレイ１４に表示された結果を見てキーボード１８のデータＯＫキー１８ａを押下したか否かを判定する。その結果、ＮＯと判定した場合、すなわちキーボード１８のデータＮＧキー１８ｂが押下されたと判定した場合は、ステップＳ１７で、オペレータによりデータのタイミング調整が行われ、キーボード１８のデータ調整終了キー１８ｅが押下されるまで待機し、データ調整終了キー１８ｅが押下されるとステップＳ１１に戻る。なお、データのタイミング調整は、オペレータがトランジスタのサイズを見直したり、複合回路３２ａ〜３２ｄのセル配置を見直したりすることによって行われる。一方、ステップＳ１５でＹＥＳと判定した場合、すなわちデータＯＫキー１８ａが押下されたと判定した場合は、ステップＳ１９に進む。
【００３１】
ステップＳ１９では、ＣＴＳを実行する。具体的には、クロック発生回路３８、４０と複合回路３２ａ〜３２ｄとの間に必要な数のクロックバッファ４２ａ〜４２ｆを配置する。なお、クロックバッファ４２ａ〜４２ｆはクロックスキューに応じて最適なものを使用してもよく、また設計を簡略化するために同じものを使用してもよい。
【００３２】
ステップＳ２１では、クロック発生回路３８から複合回路３２ａ〜３２ｄまでのクロックスキュー、およびクロック発生回路４０から複合回路３２ａ〜３２ｄまでのクロックスキューが許容範囲内であるか否かをシミュレーションにより判別する。ステップＳ２３では、シミュレーションの結果をディスプレイ１４に表示する。すなわち、クロックの遅延が許容範囲を超えている場合は、ＬＳＩ３０のどの部分でどれだけの遅延が発生したかを示す情報がディスプレイ１４に表示される。一方、すべての部分でクロックの遅延が許容範囲内に収まっている場合には、クロックの遅延が発生した部分がないことが表示される。
【００３３】
ステップＳ２５では、オペレータが、ディスプレイ１４に表示された結果を見てキーボード１８のクロックＯＫキー１８ｃを押下したか否かを判定する。その結果、ＮＯと判定した場合、すなわちキーボード１８のクロックＮＧキー１８ｄが押下されたと判定した場合は、ステップＳ２７で、オペレータによりクロックスキューの調整が行われ、キーボード１８のクロック調整終了キー１８ｆが押下されるまで待機し、クロック調整終了キー１８ｆが押下されるとステップＳ２１に戻る。なお、クロックスキューの調整は、オペレータがクロックバッファ４２ａ〜４２ｆの配置を見直したり、複合回路３２ａ〜３２ｄのセル配置を見直したり、トランジスタのサイズを見直したりすることによって行われる。一方、ステップＳ２５でＹＥＳと判定した場合、すなわちクロックＯＫキー１８ｃが押下されたと判定した場合は、ステップＳ２９に進む。
【００３４】
ステップＳ２９では、再び複合回路によって処理されるデータのタイミングが許容範囲内であるか否かをシミュレーションにより判別し、ステップＳ３１でその結果をディスプレイ１４に表示する。すなわち、データのタイミングずれが許容範囲を超えている場合には、ＬＳＩ３０のどの部分でどれだけのずれが発生したかを示す情報がディスプレイ１４に表示される。また、すべての部分でデータのタイミングずれが許容範囲内に収まっている場合には、タイミングずれが生じた部分がないことがディスプレイ１４に表示される。
【００３５】
ステップＳ３３では、オペレータが、ディスプレイ１４に表示された結果を見てデータＯＫキー１８ａを押下したか否かを判定する。その結果、ＮＯと判定した場合、すなわちデータＮＧキー１８ｂが押下されたと判定した場合は、ステップＳ３５で、オペレータによりデータのタイミング調整が行われ、データ調整終了キー１８ｅが押下されるまで待機し、データ調整終了キー１８ｅが押下されるとステップＳ２９に戻る。なお、データのタイミング調整は、オペレータがトランジスタのサイズを見直したり、複合回路３２ａ〜３２ｄのセル配置を見直したりすることによって行われる。一方、ステップＳ３３でＹＥＳと判定した場合、すなわちデータＯＫキー１８ａが押下されたと判定した場合は、ステップＳ３７に進む。
【００３６】
ステップＳ３７では、複合回路３２ａ〜３２ｄ間のデータ配線、およびクロック発振回路と複合回路３２ａ〜３２ｄとの間のクロック配線を行う。このとき、クロック配線上にはステップＳ１３で必要とされたクロックバッファ４２ａ〜４２ｆが配置される。
【００３７】
ステップＳ３９では、クロック発生回路３８から複合回路３２ａ〜３２ｄまでのクロックスキュー、およびクロック発生回路４０から複合回路３２ａ〜３２ｄまでのクロックスキューが許容範囲内に入っているか否かをシミュレーションにより最終的に判別する。ステップＳ４１では、シミュレーションの結果をディスプレイ１４に表示する。すなわち、クロックの遅延が許容範囲を超えている場合には、ＬＳＩ３０のどの部分でどれだけの遅延が発生したかを示す情報がディスプレイ１４に表示される。一方、すべての部分でクロックの遅延が許容範囲内に収まっている場合には、クロックの遅延が発生した部分がないことがディスプレイ１４に表示される。
【００３８】
ステップＳ４３では、オペレータが、ディスプレイ１４に表示された結果を見てクロックＯＫキー１８ｃを押下したか否かを判定する。その結果、ＮＯと判定した場合、すなわちクロックＮＧキー１８ｄが押下された場合は、ステップＳ４５で、オペレータによりクロックのタイミング調整が行われ、クロック調整終了キー１８ｆが押下されるまで待機し、クロック調整終了キー１８ｆが押下されるとＳ３９に戻る。なお、クロックスキューの調整は、オペレータがクロック配線を見直したり、クロックバッファ４２ａ〜４２ｆの配置を見直したり、複合回路３２ａ〜３２ｄのセル配置を見直したり、トランジスタのサイズを見直したりすることによって行われる。一方、ステップＳ４３でＹＥＳと判定した場合、すなわちクロックＯＫキー１８ｃが押下されたと判定した場合は、ステップＳ４７に進む。
【００３９】
ステップＳ４７では、複合回路３２ａ〜３２ｄによって処理されるデータのタイミングずれが許容範囲内であるか否かをシミュレーションにより最終的に判別する。そして、ステップＳ４９でその結果をディスプレイ１４に表示する。すなわち、データのタイミングずれが許容範囲を超えている場合には、ＬＳＩ３０のどの部分でどれだけのずれが発生したかを示す情報がディスプレイ１４に表示される。また、すべての部分でデータのタイミングずれが許容範囲内に収まっている場合には、タイミングずれが生じた部分がないことが表示される。
【００４０】
ステップＳ５１では、オペレータが、ディスプレイ１４に表示された結果を見てデータＯＫキー１８ａを押下したか否かを判定する。その結果、ＮＯと判定した場合、すなわちデータＮＧキー１８ｂが押下されたと判定した場合は、ステップＳ５３で、オペレータによりデータのタイミング調整が行われ、データ調整終了キー１８ｅが押下されるまで待機し、データ調整終了キー１８ｅが押下されるとステップＳ４７に戻る。なお、データのタイミング調整は、オペレータがデータ配線を見直したり、複合回路３２ａ〜３２ｄのセル配置を見直したり、トランジスタなどのサイズを見直したりすることによって行われる。一方、ステップＳ５１でＹＥＳと判断した場合、すなわちデータＯＫキー１８ａが押下されたと判定した場合は、ＬＳＩの設計を終了する。
【００４１】
以上の説明から分かるように、２つのクロックのうちいずれか一方のクロックを選択する２入力セレクタ３６ａ〜３６ｄと、２入力セレクタ３６ａ〜３６ｄによって選択されたクロックに同期して動作する同期式Ｄフリップフロップとからなる複数の複合回路３２ａ〜３２ｄを含むＬＳＩ３０を設計するとき、複合回路３２ａ〜３２ｄを１つのセルとしたセル情報および性能情報を作成して、あらかじめＨＤＤ１６のセルライブラリ１６ａに登録しておく。複合回路３２ａ〜３２ｄを含むＬＳＩ３０を設計するとき、セルライブラリ１６ａから読み出したセル情報および性能情報に基づいて複合回路３２ａ〜３２ｄを配置する。そして、配置された複合回路３２ａ〜３２ｄ間のクロックスキューが許容範囲内か否かを判別し、クロックスキューが許容範囲を超えるときには許容範囲内に収まるまでクロックスキューを低減する。
【００４２】
２つのクロックのうちいずれか一方のクロックを選択する２入力セレクタ３６ａ〜３６ｄと、同期式Ｄフリップフロップ３４ａ〜３４ｄとからなる複合回路３２ａ〜３２ｄを１つのセルとし、セルの属性情報をセルライブラリ１６ａに登録するので、複合回路３２ａ〜３２ｄ内でＣＴＳを実行する必要がない。また、複合回路３２ａ〜３２ｄ内には、クロックバッファが配置されないので、異なるクロックに対するクロックバッファの配置に関して矛盾が生じることもない。
【００４３】
なお、上述の実施例では、クロックに同期して動作する回路として同期式Ｄフリップフロップ３４ａ〜３４ｄを例に挙げて説明したが、ＳＲＡＭ、ＤＲＡＭなどのメモリ、クロックドライバであってもよい。ＳＲＡＭ，ＤＲＡＭなどのメモリの場合、複合回路に含まれる各メモリ間の書き込み／読み出し動作を揃えることができる。
【図面の簡単な説明】
【００４４】
【図１】この発明の一実施例の構成を示す図解図である。
【図２】図１実施例の半導体設計支援装置を用いて設計するＬＳＩのレイアウトの一部を示す図解図である。
【図３】図１実施例の半導体設計支援装置を用いて設計するＬＳＩのレイアウトの他の一部を示す図解図である。
【図４】図１実施例の半導体設計支援装置を用いて設計するＬＳＩのレイアウトのその他の一部を示す図解図である。
【図５】図１実施例の半導体設計支援装置の動作の一部を示すフロー図である。
【図６】図１実施例の半導体設計支援装置の動作の他の一部を示すフロー図である。
【符号の説明】
【００４５】
１０…半導体設計支援装置
１２…ＣＰＵ
１６…ＨＤＤ
１６ａ…セルライブラリ
１８ｃ…クロックＯＫキー
１８ｄ…クロックＮＧキー
１８ｆ…クロック調整終了キー
３２ａ〜３２ｄ…複合回路
３４ａ〜３４ｄ…同期式Ｄフリップフロップ
３６ａ〜３６ｄ…２入力セレクタ
【図１】
2005275645.tif 000003
【図２】
2005275645.tif 000004
【図３】
2005275645.tif 000005
【図４】
2005275645.tif 000006
【図５】
2005275645.tif 000007
【図６】
2005275645.tif 000008