(57)【要約】【課題】  回路設計者の手間及び時間を浪費し半導体集積回路の開発期間短縮化並びに開発費の低減という課題を解消する。【解決手段】  所定の信号伝搬時間の前段同期回路のセルと、前段同期回路と同等の信号伝搬時間の後段同期回路のセルと、前段同期回路と後段同期回路との間に配置する論理回路のセルとを複数自動配置し、セル相互間を電気的に自動配線接続する自動配置配線工程Ｓ２８と、自動配置配線工程Ｓ２８を経た複数のセルを有する半導体集積回路の信号伝搬タイミングを検証するタイミング検証工程Ｓ２９と、タイミング検証工程Ｓ２９により得た信号伝搬タイミングのクリティカルパスに基づいて信号伝搬タイミングを調節するタイミング調節工程Ｓ３０と、クリティカルパスを抽出した際に、後段同期回路が前段同期回路の同期方式と異なる同期回路に置換し、後段同期回路を前段同期回路より短い信号伝搬時間の同期回路にする同期回路置換工程Ｓ３２と、を備える。【選択図】        図１
2005149313.tif 000002
【特許請求の範囲】
【請求項１】
所定の信号伝搬時間の前段同期回路のセルと、該前段同期回路と同等の信号伝搬時間の後段同期回路のセルと、該前段同期回路と後段同期回路との間に配置する論理回路のセルとを複数自動配置し、該セル相互間を電気的に自動配線接続する自動配置配線工程と、
前記自動配置配線工程を経た複数のセルを有する半導体集積回路の信号伝搬タイミングを検証するタイミング検証工程と、
前記タイミング検証工程により得た信号伝搬タイミングのクリティカルパスに基づいて該信号伝搬タイミングを調節するタイミング調節工程と、
前記クリティカルパスを抽出した際に、前記後段同期回路が前段同期回路の同期方式と異なる同期回路に置換し、前記後段同期回路を前記前段同期回路より短い信号伝搬時間の同期回路とする同期回路置換工程と、
を含むことを特徴とする半導体集積回路の設計方法。
【請求項２】
前記後段同期回路は、前記前段同期回路の同期方式がマスタースレーブ方式である場合に、同期方式をパルス駆動方式に置換されることを特徴とする請求項１に記載の半導体集積回路の設計方法。
【請求項３】
前記前段同期回路の近傍に前記後段同期回路を配置することを特徴とする請求項１又は請求項２に記載の半導体集積回路の設計方法。
【請求項４】
前記半導体集積回路は、スタンダードセルで構成し前記セルの面積および電気接続用端子の位置が略同一のパルス駆動方式のフリップフロップ回路とマスタースレーブ方式のフリップフロップ回路を含む請求項１乃至請求項３の何れか１項に記載の半導体集積回路の設計方法。
【請求項５】
所定のセル面積を有するマスタースレーブ方式のフリップフロップ回路の近傍に該マスタースレーブ方式のフリップフロップ回路と略同一のセル面積を有するパルス駆動方式のフリップフロップ回路を配置するフリップフロップ混在領域と、
前記マスタースレーブ方式のフリップフロップ回路へクロック信号を供給するマスタークロック発生回路と、
を備えることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムを用いた半導体集積回路の設計方法及び半導体集積回路に関するものである。
【背景技術】
【０００２】
従来の半導体集積回路の設計方法は、例えば、図１２のフローチャートに示すように、先ず、ロジックの論理合成工程Ｓ１を処理し、論理合成したセルの配置を決定するフロアプラン工程Ｓ２を処理する。
【０００３】
引き続き、セルとセル、セルとボンディングパッド間の電気的配線経路を自動的に決定する自動配置配線工程Ｓ３を経て、コンピュータ上で論理合成された半導体集積回路のタイミング検証工程Ｓ４を実行し、マニュアルにより回路間のタイミング調節工程処理Ｓ５を実行する。
【０００４】
さらに、セルの位置やセル間の配線を微調整する自動配置配線工程Ｓ６を処理した後に、再度のタイミング検証工程Ｓ７により半導体集積回路がタイミング特性を満たすか否かを判定していた。
【０００５】
この図１２の設計フローでは、半導体集積回路の論理設計工程以降に、フロアプラン工程Ｓ２や、自動配置配線工程Ｓ３の制約条件の見直しを実施したり、クロック信号の出力側にバッファ回路を挿入したり、ゲート長サイズの見直しをしたり、クリティカルパスの回路毎に低閾値トランジスタへ置換するという手法が採用されていた。
【０００６】
また、従来の半導体集積回路のクリティカルパス設計方法は、予めセットアップ時間の異なるフリップフロップ回路を複数作成し、前段と後段のフリップフロップ回路間のパス毎に余裕時間を算出し、余裕時間が最小のパスの後段のフリップフロップ回路のセットアップ時間を求める。
【０００７】
この求めたセットアップ時間よりも小さなセットアップ時間を持つフリップフロップ回路で後段のフリップフロップ回路を置換して、半導体集積回路のレイアウト面積を増やすことなく、クリティカルパスの余裕時間を増大させていた（例えば、特許文献１参照。）。
【特許文献１】特開平１０−３１３０５７号公報（第５頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したフロアプラン工程Ｓ２、自動配置配線工程Ｓ３時の制約条件の見直しを実行する際に、適切な制約条件が見つからずに制約条件の見直し又はフロアプラン工程Ｓ２の試行錯誤を繰り返す場合があり、回路設計者の手間及び時間を浪費し半導体集積回路の開発期間短縮化並びに開発費の低減という課題を解消することが困難であった。
【０００９】
また、従来のフリップフロップ回路で構成したレジスタ回路は、ホールド対策としてマスタスレーブ方式のフリップフロップ回路を前段同期回路に採用し、クロックの立下りエッジに同期して前段のフリップフロップ回路の出力を変化させる。
【００１０】
後段のフリップフロップ回路は、前段の同期回路の出力データが変化した後でデータを取込んでいたので、前段フリップフロップ回路のセットアップ時間にホールド時間を加えた信号伝搬時間を確保する必要があり、半導体集積回路の高速動作が困難であった。
【００１１】
さらに、セットアップ時間が短いパルス駆動方式のフリップフロップ回路を直列接続したレジスタ回路では、所謂データの突き抜け現象を防止するためにデータの出力端子側に多数の遅延回路を設けるため、セル面積及び消費電力の増加を招いていた。
【００１２】
従来は、このタイミング調節段階で検出されたクリティカルパスを修正するために、「フロアプラン処理」や、「配置配線設計時の制約条件の見直し」を実行するか、破線矢印で示すようにタイミング検証処理Ｓ４をやり直していた。
【００１３】
また、自動配置配線処理Ｓ３でクリティカルパスを生成する回路へバッファ回路を挿入、または、バッファ回路のセルサイズの見直しや、クリティカルパスを生成する回路を構成するトランジスタ素子を現在の閾値より低い低閾値トランジスタ素子へ置き換えていた。
【００１４】
さらに、この煩雑な修正作業を繰り返して再び設計データを生成し記憶装置に記憶してから、タイミング検証処理Ｓ４をやり直していた。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の第１の特徴は、例えば、所定の信号伝搬時間の前段同期回路のセルと、前段同期回路と同等の信号伝搬時間の後段同期回路のセルと、前段同期回路と後段同期回路との間に配置する論理回路のセルとを複数自動配置し、セル相互間を電気的に自動配線接続する自動配置配線工程と、自動配置配線工程を経た複数のセルを有する半導体集積回路の信号伝搬タイミングを検証するタイミング検証工程と、タイミング検証工程により得た信号伝搬タイミングのクリティカルパスに基づいて信号伝搬タイミングを調節するタイミング調節工程と、クリティカルパスを抽出した際に、後段同期回路が前段同期回路の同期方式と異なる同期回路に置換し、後段同期回路を前段同期回路より短い信号伝搬時間の同期回路とする同期回路置換工程と、を含む備える半導体集積回路の設計方法であることを要旨とする。
【００１６】
本発明の第２の特徴は、例えば、所定のセル面積を有するマスタースレーブ方式のフリップフロップ回路の近傍にマスタースレーブ方式のフリップフロップ回路のセル面積と略同一のセル面積を有するパルス駆動方式のフリップフロップ回路を配置するフリップフロップ混在領域と、マスタースレーブ方式のフリップフロップ回路へクロック信号を供給するマスタークロック発生回路と、を備える半導体集積回路であることを要旨とする。
【発明の効果】
【００１７】
本発明の半導体集積回路によれば、半導体集積回路全体の高速動作を図ることができるという、格別な効果を奏する。
【００１８】
また、本発明の半導体集積回路の設計方法によれば、前段と後段の同期回路間でデータの突抜けを防止ながら、半導体集積回路全体の高速動作を図ることができるという、格別な効果を奏する。
【発明を実施するための最良の形態】
【００１９】
本発明の実施の形態に係る半導体集積回路の設計方法は、例えば、所定の信号伝搬時間の前段同期回路と後段同期回路と、これら同期回路の間に配置された論理回路とを相互に電気的に接続した複数のセルを有する半導体集積回路の信号伝搬タイミングを検証し、タイミング検証結果により得た信号伝搬タイミングのクリティカルパスに基づいて信号伝搬タイミング（例えば、クロック周波数又は位相差の増減）を調節するタイミング調節工程と、クリティカルパスを抽出した際に、後段同期回路を前段同期回路より短い信号伝搬時間の同期回路に置換するので、高速動作の半導体集積回路を遅延回路の配置配線を含めたフロアプランを再実行することなく短期間に設計することができる。
【００２０】
また本発明の実施の形態に係る半導体集積回路は、所定の信号伝搬時間の前段同期回路及び後段同期回路と、前段同期回路と後段同期回路との間に配置する論理回路のセルと、同一基板上に配置した複数の前段同期回路と後段同期回路と論理回路のセル相互間を電気的に接続する複数の配線と、後段同期回路の信号伝搬時間による信号伝搬タイミングのクリティカルパスを生じる後段同期回路を特定し、所定の信号伝搬時間より短い信号伝搬時間の同期回路に置換したので、高速動作を維持しながら消費電力並びにチップ面積の増大を抑えることができる。
【００２１】
図１は、本発明の第１の実施の形態としての半導体集積回路の設計方法を示す流れ図である。先ず、半導体集積回路設計の大幅な変更を伴う可能性が高いフロアプラン処理ステップＳ２７（以下、ステップを「Ｓ」と略記する）と、論理合成処理Ｓ２６を実行し、自動配置配線処理Ｓ２８上の制約条件の見直しを決定する。
【００２２】
本実施の形態の自動配置配線処理Ｓ２８上の制約条件は、例えば、セル相互間を電気的に接続する配線の線幅や、配線の間隔（又は、線間スペースと称する場合もある）や、配線の線長（例えば、前段回路のコンタクト領域から後段回路のコンタクト領域までの距離）の条件があり、論理合成したセル全体の最大消費電力の条件もある。
【００２３】
また、配線の線長が所定長を超えると自動的にセルとセルの間にバッファ回路を配置するように複数の制約を規定する。このように制約条件を予め精査し、半導体集積回路の高速化や低消費電力化が図れるという利点がある。
【００２４】
各種セルには、同期回路としてのマスタースレーブ方式のフリップフロップ回路やパルス駆動方式（又はパルス駆動型）のフリップフロップ回路（又は、ラッチ回路と称する場合もある）やマルチプレクサ回路やデマルチプレクサ回路などに適用させることができる。
【００２５】
また、論理機能を有する順序回路としてのＡＮＤ回路やＯＲ回路や排他的ＯＲ回路などや、信号伝搬タイミングを調整する遅延回路が予め不図示のコンピュータデータベース内に用意され、論理合成処理Ｓ２６を実行して半導体集積回路を設計することができる。
【００２６】
このセルを用いた設計は、カスタム仕様の大規模集積回路の設計と比較した場合、回路設計の手間や期間を激減させることができ、標準的なセルを任意に選択し組み合わせるスタンダードセル方式が、短期間で且つ高速動作の安定性の高い半導体集積回路を提供することができる。
【００２７】
自動配置配線処理Ｓ２８は、論理合成された複数のセルをフロアプラン処理Ｓ２７により決定したレイアウト位置に配置し、セルとセルの間を電気的に接続する配線レイアウトを決定し、半導体集積回路の第１次設計データを生成する。
【００２８】
この第１次設計データは、不図示の記憶装置に記憶される。この第１次設計データの中の同期回路としてのフリップフロップ回路は全て所定の信号伝搬時間に統一し、回路設計を簡略化させることができる。
【００２９】
例えば、論理値「１」と論理値「０」のデューティ比が１対１のクロック信号に同期するマスタースレーブ方式のフリップフロップ回路を用いることができ、目標とする最大動作周波数で動作し、消費電力対セル面積のバランスが予め検証されている。
【００３０】
したがって、半導体集積回路全体に占めるフリップフロップ回路のセル面積の総和が数十パーセントに達してもチップ全体の最大定格消費電力の制約を受けない程度のセル面積及び消費電力仕様を満たしている。
【００３１】
引き続き、半導体集積回路のタイミング検証処理Ｓ２９に移行し、上述した記憶装置から第１次設計データを読出し、コンピュータ上で全ての論理回路や同期回路が所定のクロック周波数で動作するか否かを検証する。
【００３２】
例えば、１ＧＨｚを下回らない検証用のクロック信号を同期回路としてのフリップフロップ回路やラッチ回路に入力し、データの転送が正しく行われているかベリファイ機能により検証することができる。
【００３３】
また、前段同期回路と後段同期回路との間に位置する全てのパスを検証しクリティカルパスか否かも判定するように構成されている。
【００３４】
なお、半導体集積回路設計データのバグなどにより、極めて稀にタイミング検証処理Ｓ２９で不適合値のベリファイ結果が出力されたときは、破線矢印で示すように再度フロアプラン処理Ｓ２７へ戻りセル配置を再構成することができる。
【００３５】
このタイミング検証処理Ｓ２９により適合値のベリファイ結果が得られた場合は次のタイミング調節処理Ｓ３０へ移行する。この半導体集積回路は目的とする電気的仕様（標準スペック）を満足するが、クリティカルパスと判定された回路の高速動作保証をするのが困難である。
【００３６】
次のタイミング調節処理Ｓ３０は、例えば、相互に位相差を有するマスタークロック信号とディレイクロック信号を発生させ、前段同期回路にマスタークロック信号を入力し、後段同期回路にディレイクロック信号を入力しベリファイ機能により回路の高速動作を調節する。
【００３７】
この場合、マスタークロック信号とディレイクロック信号の位相差（例えば、０度から９０度位相角）がどの程度まで許容されるか、位相差を調節してクリティカルパスの高速動作を検出し、不図示の記憶装置にクリティカルパス情報（例えば、セルデータ）を記憶することができる。
【００３８】
なお、タイミング調節処理Ｓ３０では、セル間の全てのパスについてタイミング調整をせずに、タイミング検証処理Ｓ２９によりクリティカルパスと判定された回路に対してタイミング調整をするため、設計効率が向上し設計期間（例えば、コンピュータのランタイム）を短くすることができる。
【００３９】
ここで、本実施の形態のクリティカルパスとは、クロック信号により制御される同期回路間でデータの突き抜け現象が生じ易い経路が該当し、前段の同期回路と後段の同期回路との間に論理機能を有する順序回路がないシフトレジスタ回路がある。
【００４０】
また、前段の同期回路と後段の同期回路との間にセットアップ時間を変更する遅延回路の信号伝搬時間が短過ぎる回路や、遅延回路の数が少なく後段のフリップフロップ回路のセットアップ時間を確保できない回路などもクリティカルパスである。
【００４１】
したがって、本実施の形態の半導体集積回路の設計では、クリティカルパスを有する回路のセットアップ時間をコンピュータ上で改善することにより、全ての同期回路がクロック信号に同期して前段同期回路から後段同期回路へデータを正確に転送し、半導体集積回路全体の高速化を図ると供に、その信頼性も向上させるという利点を有する。
【００４２】
また、タイミング調節処理Ｓ３０は、例えば、タイミング検証処理Ｓ２９で使用した検証用のクロック周波数を変化（増加）させクリティカルパスを検出し、不図示の記憶装置にクリティカルパス情報（例えば、セルデータ）を記憶することができる。
【００４３】
この場合も、タイミング調節処理Ｓ３０はセル間の全てのパスについてタイミング調整をせずに、タイミング検証処理Ｓ２９によりクリティカルパスと判定された回路に対してタイミング調整をするため、設計効率が向上し設計期間（例えば、コンピュータのランタイム）を短くすることができる。
【００４４】
本実施の形態では、回路設計の大幅な変更を伴う可能性の高いフロアプラン処理Ｓ２７や、自動配置配線処理Ｓ２８における「制約条件の見直し」を半導体集積回路の設計初期段階で決定し、タイミング調節処理Ｓ３０においてクリティカルパスの動作保証を判定（又は検出）するように構成しているので、大幅な回路設計のやり直しを未然に回避することができる。
【００４５】
また、タイミング調節処理Ｓ３０において半導体集積回路の中からクリティカルパスが検出されない場合は、設計フローは自動配置配線（微調整）処理Ｓ３３に移行し、セルの配置配線の微調整が不要と判定処理され、第１次設計データに基づき半導体集積回路の設計が完了し、最短期間の設計で半導体集積回路を提供することができる。
【００４６】
この半導体集積回路の第１次設計データに基づき、例えばホトリソグラフィ処理に使用されるレチクル（マスク）設計データを生成したり、電子ビーム露光装置の制御データを生成することができる。
【００４７】
また、低閾値トランジスタに置換処理した場合は、閾値の異なるトランジスタ素子の製造プロセスデータを生成する。勿論、第１次設計データに基づくテストデータを生成し、ウエハのプローブ検査用データや完成した半導体装置の出荷検査用データを生成することもできる。
【００４８】
一方、タイミング調節処理Ｓ３０により検出されたクリティカルパスを記憶装置から読み出して抽出するクリティカルパス抽出処理Ｓ３１を経て、クリティカルパスの後段に接続する同期回路セルのデータ入力端子にバッファ回路を挿入することができる。
【００４９】
このバッファ回路のサイズの見直しをするか、クリティカルパスの後段の同期回路を構成するスイチング手段としてのトランジスタ素子をＴＴＬ（トランジスタ・トランジスタ・ロジック）レベルの閾値若しくはＣＭＯＳ（コンプリメンタリ・メタルオキサイド・シリコン）レベルの閾値より低電位の低閾値トランジスタ素子へ置き換えることもできる。
【００５０】
また、クリティカルパスの後段の同期回路をマスタースレーブ方式のフリップフロップ回路からパルス駆動方式（パルス駆動型）のフリップフロップ回路へ変更するという複数のオプションの中から任意の同期回路置換処理Ｓ３２を実行することができる。
【００５１】
上述したクリティカルパス後段に接続する同期回路セルの中にバッファ回路の挿入工程や同期回路変更工程は任意な順番で繰り返し実行しても構わない。このようにクリティカルパス後段の同期回路を変更する同期回路置換処理Ｓ３２を経た半導体集積回路の第２次設計データを不図示の記憶装置に記憶するように構成する。
【００５２】
また、パルス駆動方式でないフリップフロップ回路（例えば、マスタースレーブ方式のフリップフロップ回路）からパルス駆動方式（駆動型）のフリップフロップ回路へ置換する同期回路置換処理Ｓ３２は、クリティカルパス後段の同期回路を構成する低閾値トランジスタへの置換処理と同様の手順で実行することができる。
【００５３】
先ず、タイミング調節処理Ｓ３０でクリティカルパスを検出し、クリティカルパス抽出処理Ｓ３１によりクリティカルパスを抽出する。このクリティカルパスに含まれるフリップフロップ回路をパルス駆動方式（又は「パルス駆動型」と称する場合もある）のフリップフロップ回路へ置換する同期回路置換処理Ｓ３２を実行する。
【００５４】
次に、半導体集積回路の第２次設計データを不図示の記憶装置に記憶し、自動配置配線（微調整）処理Ｓ３３へ移行し、セルの配置配線の微調整が必要な場合は適宜セルの配置や配線ルートを微調整する。
【００５５】
この場合、セルの配置や配線ルートを変更した半導体集積回路の第３次設計データは、不図示の記憶装置に記憶される。
【００５６】
引き続き、上述した記憶装置から第２次又は第３次設計データを読み出して、タイミング検証処理Ｓ３４により半導体集積回路のタイミング検証を実行し、半導体集積回路内の全ての同期回路がクロック信号に同期して正確なデータ信号を送受信をしているか否かを検証する。
【００５７】
本実施の形態では、半導体集積回路がタイミング検証処理Ｓ３４を１回で通過する確率を従来に比して格段に向上させることができ、しかも、論理合成処理Ｓ２６やフロアプラン処理Ｓ２７のような設計段階の上流工程まで戻る確率が激減するので、短期間に半導体集積回路を設計することができる。
【００５８】
上述した第１次設計データに含まれている所定の信号伝搬時間のフリップフロップ回路をこれより短い信号伝搬時間のフリップフロップ回路に置換した第２次又は第３次設計データの半導体集積回路は、タイミング検証処理Ｓ２９で使用した目標スペックと同等の検証用クロック信号の動作周波数に対して、約１０％若しくは十数％高い動作周波数を保証できる。
【００５９】
例えば、半導体集積回路の全論理中に含まれるフリップフロップ回路が占める総和に依存するが、動作周波数が高い回路の場合には全論理中に含まれるフリップフロップ回路の占める割合が増加する傾向にある。
【００６０】
したがって、パルス駆動方式のフリップフロップ回路へ置換処理するクリティカルパスの遅延改善効果は、現在の半導体製造プロセスや半導体集積回路の設計ルールに対応させると、１ＧＨｚ以上の動作周波数の半導体集積回路に関して、１０％程度かそれ以上の動作周波数を保証することができる。
【００６１】
特に、クリティカルパス後段の同期回路を高速同期回路に変更する同期回路置換処理Ｓ３２を備える設計フローは実用的な技術である。
【００６２】
また、パルス駆動方式のフリップフロップ回路は、パルス駆動方式でないフリップフロップ回路（例えば、マスタースレーブ方式）に比べて、ホールド時間が長く、遅延の短過ぎるパスに対して遅延回路を挿入する割合が多い場合がある。
【００６３】
本実施の形態のパルス駆動方式のフリップフロップ回路は、タイミング調節処理Ｓ３０により検出したクリティカルパス後段の同期回路に対して同期回路置換処理Ｓ３２を実行し、所定の遅延回路を挿入するので、同期回路の次段に遅延の短過ぎるパスが存在する確率が少なく、追加のホールド対策に対応する労力が少なくて済むという利点もある。
【００６４】
なお、上述したタイミング検証処理Ｓ３４を通過した時点の半導体集積回路の設計データである第２次設計データ若しくは第３次設計データは、上述した第１次設計データと同様に、レチクル設計データや、電子ビーム露光装置の制御データや、製造プロセスデータや、テストデータなどに利用できることは勿論である。
【００６５】
図２（ａ）は、本実施の形態に用いるパルス駆動方式のフリップフロップ回路のタイミングチャートである。不図示のクロック発生回路から出力されるマスタークロック１４は、予め決められた所定周期のパルス信号である。図示したパルス信号は論理値「１」の期間と論理値「０」の期間が略同一のデューティ比１対１のマスタークロック１４を構成している。
【００６６】
同期回路としてのマスタースレーブ方式のフリップフロップは、マスタークロック１４が論理値「０」の間、内部のマスターフリップフロップ回路のコントロールゲートが閉状態のため、入力信号を取り込まず、マスターフリップフロップ回路の出力端子もデータを保持している。
【００６７】
一方、スレーブフリップフロップ回路はコントロールゲートが開状態であるが、スレーブフリップフロップ回路がデータを保持しているのでスレーブフリップフロップ回路の出力端子はデータを出力している。
【００６８】
マスタークロック１４の論理値を「０」から「１」へ変化させるマスタークロック立上時１４ａでは、マスターフリップフロップ回路のコントロールゲートが開状態（ＯＦＦ）から閉状態（ＯＮ）に遷移し、入力端子の信号を取込む、マスターフリップフロップ回路の出力端子へ入力端子の信号を反映させることができる。
【００６９】
一方、スレーブフリップフロップ回路はコントロールゲートを閉状態（ＯＮ）から開状態（ＯＦＦ）へ遷移させ、スレーブフリップフロップ回路の出力端子のデータを保持し続けている。なお、マスタークロック１４は立上時１４ａに至る前にマスタフリップフロップ回路が入力端子のデータを取込む時間、すなわちセットアップ時間が開始されるまで論理値「０」を保持しなければならない。
【００７０】
引き続き、マスタークロック１４の論理値を「１」から「０」へ変化させるマスタークロック立下時１４ｂでは、この瞬間にマスターフリップフロップ回路のコントロールゲートが閉状態（ＯＮ）から開状態（ＯＦＦ）に遷移し、マスターフリップフロップ回路はデータ保持状態となる。
【００７１】
一方、スレーブフリップフロップ回路のコントロールゲートは開状態（ＯＦＦ）から閉状態（ＯＮ）へ遷移し、マスタフリップフロップ回路に保持されているデータを取込みスレーブフリップフロップ回路の出力端子に反映させることができる。すなわち、マスタースレーブ方式のフリップフロップ回路は、マスタークロック１４の立下時１４ｂに出力端子の論理値（データ）を変化させ、データの突抜け現象を未然に回避する。
【００７２】
これ以降のサイクルは、図示するようにマスタークロック１４の立上時１４ｃと立下時１４ｄのタイミングに同期させながら、前段に配置されたマスタースレーブ方式のフリップフロップ回路から後段に配置されたマスタースレーブ方式のフリップフロップ回路にデータを移動させることができる。
【００７３】
また、このマスタースレーブ方式のフリップフロップ回路と組合回路を合成して、例えば、同期式カウンタ回路や、レジスタ回路や、シフトレジスタ回路や、ユニバーサルレジスタ回路のような論理回路を複数のセルで実現することができる。
【００７４】
本実施の形態では、図２（ｂ）に示すように、さらに高速動作の半導体集積回路のために、パルス発生回路５４からパルスクロック１５を出力し、クリティカルパスの後段に接続するパルス駆動方式のフリップフロップ回路の同期動作を制御する。
【００７５】
パルス発生回路５４は、二入力ＡＮＤ回路１７の一方の入力端子にインバータ回路１６を通じて上述したマスタークロック１４を取込み、他方の入力端子に直接マスタークロック１４を取込むように構成することができる。
【００７６】
勿論本発明は、マスタークロック１４を入力端子に取込む構成に限定されず、マスタークロック１４を駆動する基本クロックに同期して入力信号を取込んでも構わない。
【００７７】
パルス発生回路５４は、マスタークロック１４の立上時１４ａの瞬間、ＡＮＤ回路１７の出力を変化させパルスクロック１５の論理状態を「０」から「１」へ遷移させる。この論理状態の遷移に応答して、パルス駆動方式のフリップフロップ回路は入力端子からデータを取込み内部で保持する。
【００７８】
このパルス駆動方式のフリップフロップ回路は、セットアップ時間が短く、回路の動作としては高速であるが、ホールド時間がマスタースレーブ方式のフリップフロップ回路に比して長いので、遅延回路を出力端子側に多数挿入して、いわゆるデータの突き抜け現象を防止している。
【００７９】
引き続き、インバータ回路１６の信号伝搬時間に相当する遅れた信号が他方の入力端子に現れ、所定の遅延時間の後、すなわちパルスクロック１５の立下時１５ｂのタイミングにＡＮＤ回路１７の出力を論理値「１」から「０」へ遷移させる。
【００８０】
すなわち、パルスクロック１５は、マスタークロック１４と比べて、論理値「１」の時間が極めて短いのに対して、論理値「０」の時間が長いクロック信号である。
【００８１】
引き続き、このパルスクロック１５は次の立上時１５ｃにマスタークロック１４の立上時１４ｃに同期して論理値「０」から「１」へ遷移し、インバータ回路１６とＡＮＤ回路１７の信号伝搬時間を加算した期間を経てパルスクロック１５の立下時１５ｄを制御している。
【００８２】
パルス発生回路５４から出力されるパルスクロック１５を不図示のパルス駆動方式のフリップフロップ回路のクロック端子へ入力し、前段同期回路の出力データを取込む。
【００８３】
また、本実施の形態で説明したパルス駆動方式のフリップフロック回路は所定周期で繰り返されるパルスクロック１５の立上時１５ａ、１５ｃに入力データを取込むように構成したが、同期式のラッチ回路を用いてもよい。
【００８４】
さらに好ましくはパルスクロック１５の立上時１５ａ、１５ｃに動作（例えば、パルスクロックが「１」で入力データを取込み、パルスクロックが「０」に遷移しても以前のデータを内部に保持）するＳＲフリップフロップ回路を用いるとよい。
【００８５】
なお、負論理で設計された論理回路では、パルスクロックの立下時に動作するＳＲフリップフロップ回路を用いても同様の利点がある。
【００８６】
パルス駆動方式のフリップフロップ回路は、パルス駆動方式でないフリップフロップ（例えば、マスタースレーブ方式）に比べフリップフロップ回路の構造が単純であるので、セル面積が小さくでき、消費電力も少なくすることができるという利点がある。
【００８７】
また、パルス発生回路５４を個別に配置若しくはセル内部に含めたとえしてもセル若しくは回路面積はパルス駆動方式でないフリップフロップ回路と略同等の面積で実現できる。
【００８８】
例えばマスタースレーブ方式のフリップフロップ回路のセルをパルス駆動方式のフリップフロップ回路とパルス発生回路５４を組み合わせたセルに置換した場合でもセルの配置やセル間の配線を修正する必要がないという利点がある。
【００８９】
しかしながら、パルス発生回路５４のクロック遷移（論理値の変化）の確率が高いので消費電力はマスタースレーブ方式のフリップフロップ回路に比して増大するため、本実施の形態では、図１に示したフロアプラン処理Ｓ２７により同期回路をマスタースレーブ方式のフリップフロップに統一し、タイミング検証処理Ｓ２９で全てのパスを検証する。
【００９０】
次に、クリティカルパスの可能性の高い回路に対してのみタイミング調節処理Ｓ３０を施す二段階のクリティカルパス抽出工程を採用するので、半導体集積回路の設計期間を全体的に短くすることができる。
【００９１】
しかも、消費電力を増大させるパルス駆動方式のフリップフロップ回路はクリティカルパス抽出処理Ｓ３１で抽出されたマスタースレーブ方式のフリップフロップ回路のセルに置き換えるため、半導体集積回路の消費電力増加を抑制することができるという利点がある。
【実施例１】
【００９２】
図３（ａ）のタイミングチャートを参照して、本発明の第１実施例の半導体集積回路の動作を説明する。また図３（ｂ）に示したクロック発生回路は、前段インバータ２３と後段インバータ２４を直列に接続し、前段インバータ２３の入力端子へ所定周期の基本クロック２２を印加する。
【００９３】
また、前段インバータ２３の入力端子から分岐して基本（図１の自動配置配線処理Ｓ２８による第１次設計データに含まれる同期回路）のフリップフロップ回路（例えば、マスタースレーブ方式のフリップフロップ回路）のクロック端子へ基本クロック２２を印加する。
【００９４】
この基本クロック２２は図３（ａ）に示すマスタークロック１８のように論理値「１」の期間と論理値「０」の期間が略同一のデューティ比１対１のパルス信号である。
【００９５】
一方、遅延回路としての前段インバータ２３及び後段インバータ２４を経てマスタークロック１８より位相が遅れて出力される遅延クロック２５は、上述した普通のフリップフロップ回路の下流に接続された普通の同期回路よりセットアップ時間の短い後段同期回路のクロック端子に印加する。
【００９６】
例えば、図１のタイミング調節処理Ｓ３０において、より好ましくはタイミング検証処理Ｓ３４で実行されるタイミング調節される後段同期回路の同期信号としての遅延クロック２５を使用することができる。この遅延クロック２５が後段同期回路のクロック端子へ入力（出現）する波形を図３（ａ）に示すように遅延クロック２１として例示する。
【００９７】
典型的には、前段同期回路のクロック信号より位相が遅くれたクロック信号を後段同期回路へ印加し、第１次設計データのマスタースレーブ方式のフリップフロップ回路をセットアップ時間の短いフリップフロップ回路（低閾値トランジスタ素子の同期回路）に置換（例えば、図１の同期回路置換処理Ｓ３２を参照）し、同期回路間のタイミングを調節することができる。
【００９８】
このように構成することで、前段同期回路と後段同期回路との間に存在するクリティカルパスから枝分かれをする他のパスで、タイミング調整によって生じる得るデータ突き抜けのような現象を未然に防止することができる。
【００９９】
前段同期回路から後段同期回路へのデータ転送時間は、マスタークロック１８の立上りエッジで前段同期回路が入力端子のデータを取入れ、マスタークロック１８の立下りエッジで前段同期回路の出力を確定（又は変化）させる。
【０１００】
引き続き、次のサイクルで後段同期回路へ印加する遅延クロック２１の立上りエッジまでのデータ転送サイクル１９を決定することができる。ここで、後段同期回路は遅延クロック２１の立上りエッジに応答してデータを取入れ保持するように制御するとよい。
【０１０１】
また、遅延クロック２１はマスタークロック１８より遅延して変化するので、前段同期回路と後段同期回路が同相のクロック信号を使用した場合に比して、データ転送サイクル１９が長くとれるという利点があり、この構成でも前段同期回路と後段同期回路との間に存在するクリティカルパスから枝分かれをする他のパスで、タイミング調整によって生じる得るデータ突き抜けのような現象を未然に防止することができる。
【０１０２】
ただし、後段同期回路の下流にマスタークロック１８に同期してデータを取込む同期回路を接続する場合は、次のデータ転送サイクル２０が、遅延クロック２１の立上りエッジに対して後続サイクルの同期回路のデータ取入れタイミングが短いため、クリティカルパスが連続している同期回路ではデータ突き抜け現象を抑え難い場合もある。
【０１０３】
これに対して、クリティカルパスの連続部分に対応させてクリティカルパスのみを専用に設計する場合は、回路設計に要する人員や時間が増大し非効率である。また、半導体集積回路の設計開始当初において、クリティカルパス専用に回路を設計する部分を予め選定する時間と手間が生じ、半導体集積回路の設計期間が長期化する場合もある。
【実施例２】
【０１０４】
図４（ａ）のタイミングチャートを参照して、本発明の第２実施例の半導体集積回路の動作を説明する。図４（ｂ）に示したクロック発生回路は、二入力ＡＮＤ回路３９の一方の入力端子へ所定周期のクロック（例えば、図４（ａ）のマスタークロック３７）をインバータ４０を介して入力し、このインバータ４０の入力側から分岐して他方の入力端子へマスタークロックを直接入力する順序回路である。
【０１０５】
このクロック発生回路は、論理値「０」のマスタークロック３７とインバータ４０から論理値「１」の信号を受けて論理値「０」の図４（ａ）に示すパルスクロック３８を出力している。
【０１０６】
次に、マスタークロック３７が立上るタイミング３７ａからマスタークロック３７が論理値「１」に遷移するまでのタイミング３７ｂの時点では、インバータ４０の出力が信号伝搬時間により論理値「１」から「０」へ変化するまで、二入力ＡＮＤ回路３９の両入力端子には論理値「１」を入力する。
【０１０７】
したがって、二入力ＡＮＤ回路３９の信号伝搬時間だけ論理値「０」を維持している。例えば、パルスクロック３８（図４（ａ）参照）はタイミング３８ａからタイミング３８ｂまでの期間に亘り論理値「０」を維持している。
【０１０８】
引き続き、クロック発生回路は、タイミング３８ｂを経てからパルスクロック３８を立上げ短いタイミング期間３８ｃだけ論理値「１」を出力し、所定時間（例えば、インバータ４０の信号伝搬時間）の経過によりインバータ４０の出力を論理値「１」から論理値「０」へ遷移させる。
【０１０９】
このインバータ４０の出力値の変化に応答してタイミング３８ｄの段階で二入力ＡＮＤ回路３９の出力が論理値「１」から論理値「０」へ変化する。
【０１１０】
本実施例は、マスタークロック３７を前段のマスタースレーブ方式のフリップフロップ回路のクロック端子へ入力し、パルスクロック３８を後段のパルス駆動方式のフリップフロップ回路のクロック端子へ入力するように構成する。
【０１１１】
マスタークロック３７のタイミング３７ａから所定期間はマスタースレーブ方式のフリップフロップ回路のセットアップ／ホールド時間３５に使用し、セットアップ／ホールド時間３５を経て出力端子側の論理回路（ロジック）の信号伝搬時間３６に使用する。
【０１１２】
マスタースレーブ方式のフリップフロップ回路は、マスタークロック３７の信号立下げタイミング３７ｃの時点での出力を変化（特定）させ、下流の論理回路へデータを受け渡すことができる。
【０１１３】
同様に、パルスクロック３８のタイミング３７ａから所定期間はパルス駆動方式のフリップフロップ回路のセットアップ時間に使用し、このセットアップ時間を経てから次段に位置するマスタースレーブ方式のフリップフロップ回路へデータを送出するか、又は論理回路（ロジック）の信号伝搬時間に使用する。
【０１１４】
本実施例では、後段同期回路のクロックタイミングを単にずらす場合に比べ、前段のサイクル時間を長くした分だけ、後段同期回路の遅延を短くしてタイミングを補償するため、後段同期回路の次段に位置するマスタースレーブ方式のフリップフロップ回路のサイクル時間を制約しない。
【０１１５】
また、クロック発生回路を構成するインバータ４０や二入力ＡＮＤ回路３９がクロックタイミング遅延手段として機能するため、遅延回路などの追加素子を挿入することなく、前段同期回路のサイクル時間を一定時間延長することが可能である。
【０１１６】
図５は、本発明の各実施例に用いる同期回路の回路図である。同期回路としてのマスタースレーブ方式のフリップフロップ回路やバッファ回路は、例えば、複数の相補型金属酸化物半導体（以下、単に「ＣＭＯＳ」と略記する）のスイチング素子を組み合わせて構成することができる。
【０１１７】
また、ＣＭＯＳの他にＰＭＯＳやＮＭＯＳやバイポーラやＢｉＣＭＯＳ（バイシーモス）などの多種類のトランジスタを用いても構わない。以下、ＣＭＯＳ回路を用いて説明する。
【０１１８】
図左下に示したバッファ回路は、Ｐ型トランジスタとＮ型トランジスタによりインバータ回路６８を構成し各トランジスタのゲートへ所定周期で論理値が変化する基準クロックを印加する。
【０１１９】
これらＰ型トランジスタとＮ型トランジスタのドレインを共通接続する中間節点から配線を導出する。この配線を後段のインバータ回路６９の各トランジスタのゲートへ接続すると供に、配線から分岐してクロック信号の補信号を出力させる。
【０１２０】
後段のインバータ回路６９のＰ型トランジスタとＮ型トランジスタのドレインを共通接続する中間節点から出力線を導出し、クロック信号を出力させる。
【０１２１】
図左側のスイッチング素子６１は、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置し、一対のＰ型トランジスタとＮ型トランジスタのゲートへデータを印加し、他のＰ型トランジスタのゲートへクロック信号を印加し、他のＮ型トランジスタのゲートへクロック信号の補信号を印加する。
【０１２２】
スイッチング素子６４は、スイッチング素子６１の中間節点と接続し、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置する。
【０１２３】
また、一対のＰ型トランジスタとＮ型トランジスタのゲートへスイッチング素子６１の中間節点の電位を印加し、他のＰ型トランジスタのゲートへクロック信号の補信号を印加し、他のＮ型トランジスタのゲートへクロック信号を印加する。
【０１２４】
マスターフリップフロップ回路は、スイッチング素子６１の中間節点と接続し、この中間節点の論理値を保持するインバータ６２とスイッチング素子６３で構成することができる。
【０１２５】
スイッチング素子６３は、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置する。
【０１２６】
一対のＰ型トランジスタとＮ型トランジスタのゲートへインバータ６２の出力電位を印加し、他のＰ型トランジスタのゲートへクロック信号の補信号を印加し、他のＮ型トランジスタのゲートへクロック信号を印加する。
【０１２７】
スレーブフリップフロップ回路は、スイッチング素子６４の中間節点と接続し、この中間節点の論理値を保持するインバータ６５とスイッチング素子６６で構成することができる。
【０１２８】
スイッチング素子６６は、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置する。
【０１２９】
一対のＰ型トランジスタとＮ型トランジスタのゲートへインバータ６５の出力電位を印加し、他のＰ型トランジスタのゲートへクロック信号を印加し、他のＮ型トランジスタのゲートへクロック信号の補信号を印加する。
【０１３０】
インバータ６５の出力は次段の出力バッファ回路としてのインバータ６７へ接続され、このインバータ６７がスレーブフリップフロップ回路に保持されている論理値の補信号を出力するように構成されている。
【０１３１】
マスタースレーブ方式のフリップフロップ回路は、バッファ回路を含めて合計２６個のトランジスタ素子で構成することができ、クロック信号の立上りエッジに応答してスイッチング素子６１の閉状態（ＯＮ）とマスターフリップフロップ回路のデータ取込み及びデータ保持状態を機能させる。
【０１３２】
また、クロック信号の立下りエッジに応答してスイッチング素子６１を開状態（ＯＦＦ）に遷移させ、スイッチング素子６４を閉状態（ＯＮ）へ遷移させ、スレーブフリップフロップ回路のデータ取込み及びデータ保持状態を機能させながら、スイッチング素子６６の中間節点の論理値の補信号をインバータ６７を通じて出力することができる。
【０１３３】
図６は、本発明の各実施例に用いる同期回路とパルスクロック発生回路の回路図である。同期回路としてのパルス駆動方式のフリップフロップ回路やパルスクロック発生回路は、上述の実施例と同様にＣＭＯＳのスイチング素子を組み合わせて構成することができる。
【０１３４】
図左下に示したパルスクロック発生回路は、インバータ回路を３段直列接続する遅延回路７５と、Ｐ型トランジスタ７７と２つのＮ型トランジスタを含むスイッチング素子７６と、このスイッチング素子７６の出力と電源電位（ＶＤＤ）にドレインを接続するＰ型トランジスタ７８と、スイッチング素子７６の出力信号を受信しパルスクロック信号を出力するインバータ７９とを備えている。
【０１３５】
このパルスクロック発生回路は、論理値「０」の基準クロックを遅延回路７５へ入力している段階では、遅延回路７５の出力に論理値「１」を出力している。この出力された論理値「１」をスイッチング素子７６の中段に位置するＮ型トランジスタのゲートへ印加し閉状態（ＯＮ）にする。このＮ型トランジスタのゲートと共通接続されたＰ型トランジスタ７８のゲートへ出力された論理値「１」を印加し開状態（ＯＦＦ）に維持させる。
【０１３６】
また、スイッチング素子７６のＰ型トランジスタ７７のゲートには論理値「０」の基準クロックが印加されているので、Ｐ型トランジスタ７７は閉状態（ＯＮ）であり、スイッチング素子７６の出力へ電源電位を接続しパルスクロックの論理値「１」の補信号である論理値「０」を出力させる。
【０１３７】
このスイッチング素子７６の出力にはインバータ７９が接続されているので、このインバータ７９の出力を論理値「０」に維持させることができる。
【０１３８】
引き続き、基準クロックが論理値「０」から論理値「１」へ遷移した瞬間、スイッチング素子７６のＰ型トランジスタ７７のゲートには論理値「１」の基準クロックが印加され、Ｐ型トランジスタ７７は開状態（ＯＦＦ）へ遷移する。
【０１３９】
次に、スイッチング素子７６の基準電位側に配置されたＮ型トランジスタのゲートに論理値「１」の基準クロックが印加するので、スイッチング素子７６の出力が電源電位から基準電位に変化するに伴い、スイッチング素子７６の出力に接続されたインバータ７９の出力を論理値「０」から論理値「１」へ変化させることができる。
【０１４０】
さらに所定時間が経過することにより、遅延回路７５に印加した基準クロックが三段直列接続のインバータ回路の信号伝搬時間を経て遅延回路７５から出力される。この遅延した出力信号の論理値は「０」であり、スイッチング素子７６の中段に位置するＮ型トランジスタを開状態（ＯＦＦ）へ変化させると供に、Ｐ型トランジスタ７８を開状態（ＯＦＦ）から閉状態（ＯＮ）へ変化させる。
【０１４１】
この時点で、パルスクロック発生回路は、Ｐ型トランジスタ７８を通じて電源電位をパルスクロックの論理値「０」の補信号である論理値「１」を出力させ、インバータ７９を通じて論理値「０」のパルスクロックを出力させることができる。
【０１４２】
次に図上段に示したパルス駆動方式のフリップフロップ回路は、２つのＰ型トランジスタと２つのＮ型トランジスタを有するスイッチング素子７１と、２つのＰ型トランジスタと２つのＮ型トランジスタを有するスイッチング素子７３とインバータ７２とを有するラッチ回路と、出力インバータ７４とを備えている。
【０１４３】
図左側のスイッチング素子７１は、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置し、一対のＰ型トランジスタとＮ型トランジスタのゲートへデータを印加し、他のＰ型トランジスタのゲートへパルスクロックの補信号を印加し、他のＮ型トランジスタのゲートへクロック信号を印加する。
【０１４４】
ラッチ回路は、スイッチング素子７１の中間節点と接続し、この中間節点の論理値を保持するインバータ７２とスイッチング素子７３で構成し、スイッチング素子７３は、電源電位（ＶＤＤ）と基準電位（ＧＮＤ）との間に、ＶＤＤ側からＧＮＤ側へ順に２つのＰ型トランジスタ、中間節点、２つのＮ型トランジスタを直列に配置する。
【０１４５】
一対のＰ型トランジスタとＮ型トランジスタのゲートへインバータ７２の出力電位を印加し、他のＰ型トランジスタのゲートへクロック信号を印加し、他のＮ型トランジスタのゲートへクロック信号の補信号を印加する。
【０１４６】
インバータ７２の入力は、スイッチング素子７１の中間節点と接続し、入力端子（Ｄａｔａ−ｉｎ）に到達したデータの補信号が印加され、この補信号はインバータ７２により論理値を反転され、上述のスイッチング素子７３へ入力される。
【０１４７】
スイッチング素子７３の中間節点は、インバータ７２の入力へ接続され、インバータ７２とスイッチング素子７３の組み合わせにより入力端子に到達したデータの補信号を保持することができる。
【０１４８】
なお、パルス駆動方式のフリップフロップ回路は、保持している補信号を出力インバータ７４へ入力し論理値を反転するので、出力端子の出力信号の論理値が取込んだ入力データと同じ論理値であることが理解することができる。
【０１４９】
パルス駆動方式のフリップフロップ回路は、パルスクロック発生回路を含めて合計２４個のトランジスタ素子で構成することができ、クロック信号の立上りエッジに応答してスイッチング素子７１の閉状態（ＯＮ）とラッチ回路のデータ取込み及びデータ保持状態を機能させるので、セットアップ時間が短い、言い換えれば信号伝搬時間の短いフリップフロップ回路として機能する。
【実施例３】
【０１５０】
図７（ａ）は、本発明の第３実施例による半導体集積回路の回路図である。また、図７（ｂ）は、この集積回路のタイミングチャートである。半導体集積回路は、データ入力（ＩＮ）からデータを取込むパルス駆動方式のフリップフロップ回路８２を備えている。
【０１５１】
図７（ａ）に示すように、半導体集積回路は、パルス駆動方式のフリップフロップ回路８２のＱ出力データを取込むパルス駆動方式のフリップフロップ回路８３と、このパルス駆動方式のフリップフロップ回路８３のＱ出力データを取込むパルス駆動方式のフリップフロップ回路８４とを備えている。
【０１５２】
また、このパルス駆動方式のフリップフロップ回路８４のＱ出力データを入力し所定の信号伝搬時間を経てデータ出力（ＯＵＴ）をする順序回路で構成するランダムロジック回路８５とを備えている。
【０１５３】
さらに、パルス生成回路８１の出力は、パルス駆動方式のフリップフロップ回路８２、フリップフロップ回路８３、フリップフロップ回路８４の夫々のクロック端子に共通接続することができる。
【０１５４】
さらにまた、パルス生成回路８１から出力する論理値「１」の期間が論理値「０」の期間より短いパルス信号に同期させ、パルス駆動方式のフリップフロップ回路８２に取込んたデータを、フリップフロップ回路８３、８４の順番に１サイクル毎に転送させることができる。
【０１５５】
図７（ａ）に示した、フリップフロップ回路８２とフリップフロップ回路８３との間や、フリップフロップ回路８３とフリップフロップ回路８４との間にはランダムロジック回路のような信号伝搬時間を有する論理回路が配置されていない。
【０１５６】
したがって、マスタースレーブ方式のフリップフロップ回路を使用するとデータのホールド時間内に入力データが確定していなければならない制約を満足できず、ホールド時間内に次のサイクル用のデータが入力端子に到達する場合がある。
【０１５７】
しかしながら、本実施例のようにセットアップ時間の短いフリップフロップ回路を半導体集積回路に適用するのでホールド対策が不要となる利点がある。
【０１５８】
フリップフロップ回路８３は、図７（ｂ）に示すように、交互に連続する複数のデータ変動期間８７、データ確定期間８８、データ変動期間８７−１、データ確定期間８８−１、データ変動期間８７−２、データ確定期間８８−２、データ変動期間８７−３のサイクルで動作し、フリップフロップ回路８２やフリップフロップ回路８４と同期してデータを転送する。
【０１５９】
フリップフロップ回路８３は、データ確定期間８８−１のサイクルでパルス生成回路８１から出力されるパルスクロックの立上りエッジに応答して、セットアップ時間に移行しデータを取込みホールド時間に移行してデータを保持し後段同期回路又は論理回路にデータを用意する。
【０１６０】
同期回路は、データ確定期間８８−１のサイクルでデータ入力端子に出現する第１データ８６−１を取込むように二本破線８９の右側まで次のサイクルの第２データ８６−２が出現しない信号伝搬時間のタイミングに設定している。
【０１６１】
しかしながら、クリティカルパスでは、データ確定期間８８−１の中で（例えば、二本破線８９の左側）にフリップフロップ回路８２のＱ出力データが変化して第２データ８６−２がフリップフロップ回路８３のデータ入力端子に到達しフリップフロップ回路８３へ取込まれるという不整合が生じる場合がある。
【０１６２】
なお、後続のデータ確定期間８８−２においてフリップフロップ回路８２のＱ出力データが変化すると次サイクルの第３データ８６−３がフリップフロップ回路８３へ取込まれるという不整合が生じる。
【０１６３】
本実施例は、例えば、図７（ｃ）に示すように、パルス駆動方式のフリップフロップ回路９１とパルス駆動方式のフリップフロップ回路９２との間に、インバータを２段直列接続した遅延回路９０を挿入してこのようなデータ不整合を回避している。
【０１６４】
また、図７（ｄ）のタイミングチャートで示すように、遅延回路９０を挿入前のパルス駆動方式のフリップフロップ回路９２のデータ入力端子に出現するデータの到達状態を示している。データ確定期間９５中に破線左側に示すデータがクリティカルパスを通過する。
【０１６５】
したがって、データ確定期間９５の最終段階（セットアップ／ホールド時間）で次のサイクルのデータ９３が誤ってフリップフロップ回路９２に取込まれるというデータの不整合が生じる場合がある。
【０１６６】
これに対して、遅延回路９０を挿入後のデータの到達状態は、破線と重なるデータがデータ確定期間９５に間に合うため、データ９４が取込まれるという不整合が生じないという利点がある。
【０１６７】
ただし、多数の遅延回路９０を挿入した場合、セルの消費電力が増加し、セル面積も増大するため、半導体集積回路全体において所定の使用規制を設ける必要がある。
【０１６８】
本実施例では、全てのセル間のパスについて遅延回路９０の挿入を検討するのではなく、タイミング検証処理により全てのパスを検証してから、タイミング調節の際に検証したパスの中のクリティカルパスに対して高速動作保証ができるか否かをタイミング調節処理によって判定する。
【０１６９】
引き続き、データの不整合が生じる可能性のあるクリティカルパスにのみ遅延回路９０を挿入するので、半導体集積回路の全体に占める遅延回路９０の総数を調整することができる。
【０１７０】
よって、セル面積やセルの消費電力が著しく増大する問題を容易に解消することができ、半導体集積回路の設計資源であるコンピュータシステムの稼動時間も節約し効率良く次の設計ステップへ移行でき半導体集積回路の設計期間を短縮することができる。
【実施例４】
【０１７１】
図８は、本発明の第４実施例による半導体集積回路のタイミングチャートである。図上段のマスタークロック９６は、所定周期で論理値を変化させるデューティ比が１対１のクロック信号である。
【０１７２】
また、図中段のデータ入力端子状態は、データ変動期間８７、データ確定期間８８、データ変動期間８７−１、データ確定期間８８−１、データ変動期間８７−２、データ確定期間８８−２、データ変動期間８７−３の各々のタイミングとデータ入力端子に到達しているデータの状態を示す。
【０１７３】
さらに、図下段のデータ出力端子状態は、例えば、図７のパルス駆動方式のフリップフロップ回路８３のＱ出力端子から出力される各サイクルの出力データ１０１、出力データ１０１−１、出力データ１０１−２を示している。
【０１７４】
パルス駆動方式のフリップフロップ回路は、マスタークロック９６の立上りエッジに応答して入力端子に到達しているデータを内部に取込み保持する。
【０１７５】
このパルス駆動方式のフリップフロップ回路は、第１次設計データにより統一して自動配置配線されたマスタースレーブ方式のフリップフロップ回路に比して、信号伝搬時間が短く、セットアップ時間が早く、及びホールド時間が長いので、クリティカルパスにおける前段フリップフロップ回路と後段フリップフロップ回路に対してデータの取り違え防止に有効に機能する。
【０１７６】
なお、本実施例では、セットアップ時間をマスタークロック９６の立上りエッジに対してデータ入力端子側にデータを用意するための時間として説明する。
【０１７７】
パルス駆動方式のフリップフロップ回路は、データ確定期間８８の開始を規定するマスタークロック９６の立上りエッジより前にデータ入力端子にデータが到達するセットアップ時間９７がコンピュータデータベースに記憶されている。
【０１７８】
また、マスタークロック９６の立上りエッジより後に取込んだデータを保持するホールド時間９８がコンピュータデータベースに記憶されている。
【０１７９】
さらに、マスタークロック９６の立上りエッジからＱ出力端子にデータが確定するまでのデータ遅延時間９９と、このデータ遅延時間９９にセットアップ時間９７を加算したフリップフロップ遅延時間１００がコンピュータデータベースに記憶され、回路の高速動作の仕様が決定される。
【０１８０】
すなわち、前段フリップフロップ回路のフリップフロップ遅延時間１００と、後段フリップフロップ回路のセットアップ時間との余裕時間によりクリティカルパスを検証し、タイミング調節処理によりクリティカルパスのデータ不整合を抽出して、不整合の生じるパスにのみ遅延回路を挿入するように設計データの微調整処理を実施することができる。
【実施例５】
【０１８１】
図９（ａ）は、本発明の第５実施例による半導体集積回路の回路図である。また、図９（ｂ）は、この半導体集積回路のタイミングチャートである。図９（ａ）に示す半導体集積回路は、データ入力端子からデータを取込むフリップフロップ回路８２と、このフリップフロップ回路８２のＱ出力データをランダムロジック回路８０を通して取込むフリップフロップ回路８３を備えている。
【０１８２】
また、このフリップフロップ回路８３のＱ出力データをランダムロジック回路８０−１を通して取込むフリップフロップ回路８４と、このフリップフロップ回路８４のＱ出力データが所定の信号伝搬時間を経てデータ出力をする順序回路を含むランダムロジック回路８０−２とを備えている。
【０１８３】
また、パルス生成回路８１の出力は、フリップフロップ回路８２、フリップフロップ回路８３、フリップフロップ回路８４の夫々のクロック端子に共通接続され、フリップフロップ回路８２に取込むデータを、フリップフロップ回路８３、フリップフロップ回路８４の順番に転送する。
【０１８４】
図９（ｂ）に示す第１段目の波形は、マスタークロックと、フリップフロップ回路の遅延時間と、ランダムロジック回路が使用できる時間との関係を示す。フリップフロップ回路８２はマスタークロックの立上りエッジに対してフリップフロップ遅延時間５６だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０はロジック遅延許容時間５７の間でＱ出力端子のデータをフリップフロップ回路８３のデータ入力端子へ伝搬する。
【０１８５】
フリップフロップ回路８３はマスタークロックの立上りエッジに対してフリップフロップ遅延時間５６−１だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−１はロジック遅延許容時間５７−１の間でＱ出力端子のデータをフリップフロップ回路８４のデータ入力端子へ伝搬する。
【０１８６】
フリップフロップ回路８４はマスタークロックの立上りエッジに対してフリップフロップ遅延時間５６−２だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−２はロジック遅延許容時間５７−２の間でＱ出力端子のデータを次段の回路へ伝搬する。
【０１８７】
また、フリップフロップ回路８３を低閾値トランジスタで構成するセットアップ時間の短いフリップフロップ回路に置換した場合は、図中のニ本破線５８の右側まで擬似的にマスタークロックの立上りエッジを遅く（図中右側にシフト）することができる。
【０１８８】
すなわち、ロジック遅延許容時間５７が延長されるが、次のロジック遅延許容時間５７−１が短縮化される。この場合、ランダムロジック回路８０−１の信号伝搬時間が長くなければ、ロジック遅延許容時間５７の延長はフリップフロップ回路８２とフリップフロップ回路８３との間で生じるクリティカルパスの不整合に有効に作用することが期待できる。
【０１８９】
図９（ｂ）に示す第２段目の波形は、マスタークロック９６と、遅延クロック１０３を独立してフリップフロップ回路へ供給する同期動作の関係を示す。
【０１９０】
フリップフロップ回路８２はマスタークロック９６の立上りエッジに対してフリップフロップ遅延時間５８だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０はロジック遅延許容時間５９の間でＱ出力端子のデータをフリップフロップ回路８３のデータ入力端子へ伝搬する。
【０１９１】
フリップフロップ回路８３はマスタークロック９６と独立した遅延クロック１０３の立上りエッジに対してフリップフロップ遅延時間５８−１だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−１はロジック遅延許容時間５９−１の間でＱ出力端子のデータをフリップフロップ回路８４のデータ入力端子へ伝搬する。
【０１９２】
フリップフロップ回路８４はマスタークロック９６の立上りエッジに対してフリップフロップ遅延時間５８−２だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−２はロジック遅延許容時間５９−２の間でＱ出力端子のデータを次段の回路へ伝搬する。
【０１９３】
このように構成すると、図中のニ本破線５８の右側まで遅延クロック１０３をマスタークロックの立上りエッジより遅く（図中右側にシフト）することができる。すなわち、ロジック遅延許容時間５９が延長されるが、次のロジック遅延許容時間５９−１が短縮化される。
【０１９４】
この場合、ランダムロジック回路８０−１の信号伝搬時間が著しく長くなければ、ロジック遅延許容時間５９の延長はフリップフロップ回路８２とフリップフロップ回路８３との間で生じるクリティカルパスの不整合に有効に作用することが期待できる。
【０１９５】
図９（ｂ）に示す第３段目の波形は、パルスクロックにより動作するパルス駆動方式のフリップフロップ回路８２、フリップフロップ回路８３、フリップフロップ回路８４を直列接続した場合の同期動作の関係を示す。
【０１９６】
フリップフロップ回路８２は、パルスクロックの立上りエッジに対してフリップフロップ遅延時間５８だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０はロジック遅延許容時間５９の間でＱ出力端子のデータをフリップフロップ回路８３のデータ入力端子へ伝搬する。
【０１９７】
フリップフロップ回路８３は、パルスクロックの立上りエッジに対してフリップフロップ遅延時間５８−１だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−１はロジック遅延許容時間１０４の間でＱ出力端子のデータをフリップフロップ回路８４のデータ入力端子へ伝搬する。
【０１９８】
フリップフロップ回路８４はパルスクロックの立上りエッジに対してフリップフロップ遅延時間５８−２だけ遅れて入力データをＱ出力端子へ出力し、次段のランダムロジック回路８０−２はロジック遅延許容時間５９−２の間でＱ出力端子のデータを次段の回路へ伝搬する。
【０１９９】
このように構成すると、パルス駆動方式のフリップフロップは、セットアップ時間が短く、信号伝搬時間が短く、フリップフロップ遅延時間５８、５８−１、５８−２が短いので、各段のロジック遅延許容時間５９、１０４、５９−２が長く取れるのでクリティカルパスの余裕度が増大し、データの不整合が生じる可能性を低減させることができる。
【実施例６】
【０２００】
図１０は、本発明の第６実施例に用いるフリップフロップ回路のブロック図である。図上段に示したフィードバックループ付きフリップフロップ回路４４は、マルチプレクサ回路４２の出力をＤ入力端子に接続し、Ｑ出力端子から分岐してマルチプレクサ回路４２の一方の入力へＱ出力データをフィードバックループ接続している。
【０２０１】
また、マルチプレクサ回路の他方の入力へデータを入力するように構成する。マルチプレクサに入力するホールド信号の論理値によりフィードバックループしたＱ出力データ又はデータの何れか一方を選択するように制御することができる。
【０２０２】
図下段に示したパルス駆動方式のフリップフロップ回路４８は、データをＤ入力端子へ接続し、Ｑ出力端子を次段の回路へ接続し、クロック入力端子へマルチプレクサ回路５０の出力を接続する。
【０２０３】
このマルチプレクサ回路５０は、一方の入力へパルスクロックを入力し、他方の入力へ論理値「０」を入力し、ホールド信号の論理値によりパルスクロック又は「０」の論理値の何れか一方を選択するように制御することができる。
【０２０４】
本実施例では、第１次設計データによるフィードバックループ付きフリップフロップ回路４４を含む半導体集積回路を仮設計し、全てのパスに対してタイミング検証処理を実行することができる。
【０２０５】
引き続きタイミング調節処理によりクロックタイミングのズレが生じるパスを抽出し、マルチプレクサ回路４２及びフィードバックループ付きフリップフロップ回路４４をマルチプレクサ回路５０及びパルス駆動方式のフリップフロップ回路４８へ置き換える置換処理を施してから、自動配置配線で回路配置と配線パターンを微調整する。
【０２０６】
このように構成することで、自己フィードバックループ付きフリップフロップ回路４４のデータパスに挿入したマルチプレクサによる信号伝搬時間の遅延増大を回避することができ、パルス駆動方式のフリップフロップ回路４８のクロック端子に接続するマルチプレクサ回路５０により、データパスの信号伝搬時間の遅延増大を回避することができる。
【０２０７】
また、パルス駆動方式のフリップフロップ回路４８は、クロックスキュー抑制の観点からフリップフロップ回路のデータ入出力の１サイクルの中で論理値「１」の期間が短い、又は非論理設計の場合は論理値「０」の期間が短いパルスクロックをマルチプレクサ回路５０を通じてクロック端子へ入力する。
【０２０８】
さらに、パルス駆動方式のフリップフロップ回路の動作を制御することで、クロックタイミングのズレによる動作不良を解消し、パルス駆動方式のフリップフロップ回路４８の信号伝搬時間だけで次段の回路へデータを渡すことができるという利点がある。
【０２０９】
この置換処理前のフリップフロップ回路に比して、データの入力端子側に設けたマルチプレクサ回路４２を設ける必要がないので、信号伝搬時間をより短くすることができ、セル面積や消費電力の増加を抑制できるという利点もある。
【０２１０】
図１０を参照して、フィードバックループ付きフリップフロップ回路４４とパルス駆動方式のフリップフロップ回路４８の動作を説明する。フリップフロップ回路４４は、クロック端子へデューティ比１対１の所定周期のクロック信号を印加して動作をする。
【０２１１】
制御信号としてのホールド信号が論理値「１」のときは、マルチプレクサ回路４２がフィードバックループしたＱ出力データを選択しフィードバックループ付きフリップフロップ回路４４の入力端子へ渡すことができ、１サイクル前のデータを繰返し入力することができる。
【０２１２】
一方、ホールド信号が論理値「０」の場合は、データを選択しフリップフロップ回路４４の入力端子へ渡すことができる。
【０２１３】
何れの場合も、ホールド信号が変化した時点からマルチプレクサ回路４２の信号伝搬時間が経過してからフリップフロップ回路４４の入力端子に所望のデータが届き、クロック信号の立上りエッジに同期してデータを受け渡すことができるが、マルチプレクサ回路４２の追加により回路全体の高速化には不向きな場合がある。
【０２１４】
また、パルス駆動方式のフリップフロップ回路４８では、マルチプレクサ回路５０に論理値「１」のホールド信号を入力している場合、論理値「０」信号を選択しパルス駆動方式のフリップフロップ回路４８のクロック端子へ伝達する。この場合、フリップフロップ回路４８はデータを入力から取込まないデータ保持状態（又は、出力信号不変状態）を維持する。
【０２１５】
一方、ホールド信号が論理値「０」の場合は、パルスクロックを選択しパルス信号をフリップフロップ回路４８のクロック端子へ渡すことができる。パルスクロックの立上りエッジに応答してフリップフロップ回路４８はデータを入力端子から受け取り内部にデータを保持しながら、Ｑ出力を変化させて次段の回路へデータを受け渡すことができる。
【実施例７】
【０２１６】
図１１は、本発明の第７実施例による半導体集積回路の回路配置図である。半導体集積回路としてのスタンダードセル１０８は、図左端部のスクライブライン１１７、図右端部のスクライブライン１１７ａ、図上部のスクライブライン１１７ｂ、及び不図示の下部のスクライブラインにより４方向を囲まれた領域に複数のセルとこれらセル間を接続する配線により構成する。
【０２１７】
スタンダードセル１０８は、例えば、マスタースレーブ方式のフリップフロップ回路１１１とフリップフロップ回路１１２、パルス駆動方式のフリップフロップ回路１１３、マスタースレーブ方式のフリップフロップ回路の近傍にパルス駆動方式のフリップフロップ回路を配置するフリップフロップ混在領域１１０を備える。
【０２１８】
また、これらフリップフロップ回路を駆動するクロック信号を供給するマスタークロック発生回路や、パルス駆動方式のフリップフロップ回路へ共通のパルスクロック信号を供給するパルス発生回路を図右側のロジック領域１１８に設けることができる。
【０２１９】
上述したマスタースレーブ方式のフリップフロップ回路１１１やフリップフロップ回路１１２は、図１の自動配置配線処理に使用された第１次設計データに含まれる同期回路として配置したものである。
【０２２０】
一方、パルス駆動方式のフリップフロップ回路１１３やフリップフロップ混在領域１１０に含まれるパルス駆動方式のフリップフロップ回路は、第２次設計データにより配置されたフリップフロップである。
【０２２１】
マスタースレーブ方式のフリップフロップ回路１１１とパルス駆動方式のフリップフロップ回路１１３とは、略同面積のセルで構成することができるので、フリップフロップ混在領域１１０に異なる同期方式のフリップフロップ回路が置換された場合でも略同一面積のセルに置換することができるため、セルのレイアウトを大幅に変更する必要がなく、効率的なスタンダードセルの設計を遂行することができる。
【０２２２】
すなわち、パルス駆動方式のフリップフロップ回路は、パルス駆動方式でないフリップフロップ回路（例えば、マスタースレーブ方式）に比べフリップフロップ回路の構造が単純であるので、セル面積が小さくでき、消費電力も少なくすることができる。
【０２２３】
また、セルに収納するトランジスタ素子の数が略同一レベルに収めることができるため、フリップフロップ混在領域を設けても回路設計の大幅な変更を必要としないという半導体集積回路の設計方法に利点がある。
【０２２４】
さらに、スタンダードセル１０８は、スクライブライン１１７、１１７ａ、１１７ｂなどの近傍に配置したボンディングパッド１１６、ボンディングパッド１１６ａ、ボンディングパッド１１６ｂを設け、外部との電気的接触又はウエハプローブテストを達成する。
【０２２５】
フリップフロップ混在領域１１０に配置されたフリップフロップ回路やフリップフロップ回路１１１、１１２、１１３は、配線１１４及びＩ／Ｏバッファ回路１１５と通してボンディングパッド１１６に接続される。
【０２２６】
ロジック領域１１８に配置された順序回路を含むランダムロジック回路やクロック発生回路は、配線１１４及びＩ／Ｏバッファを通じてボンディングパッド１１６ｂに接続される。不図示のランダムロジック回路や他の同期回路もＩ／Ｏバッファ１１５ａを通じてボンディングパッド１１６ａに接続し、外部との電気的接触又はウエハプローブテストを達成する。
【０２２７】
なお、本発明の各実施例に記載された、作用及び効果は、本発明から生じる最も好適な作用及び効果を列挙したに過ぎず、本発明による作用及び効果は、本発明の実施の形態に記載されたものに限定されるものではない。
【産業上の利用可能性】
【０２２８】
タイミング検証工程により全てのパスを検証してから、検証工程により得たクリティカルパスに基づいて信号伝搬タイミングを調節し、クリティカルパスを抽出した際に、後段同期回路を前段同期回路より短い信号伝搬時間の同期回路に置換することによって、半導体集積回路の消費電力が制限される用途やチップサイズが制限される用途に適用することができる。
【図面の簡単な説明】
【０２２９】
【図１】本発明の実施の形態の半導体集積回路の設計方法を示す流れ図。
【図２】本発明の実施の形態に用いる同期回路のタイミングチャート。
【図３】実施例１に用いる同期回路のタイミングチャート。
【図４】実施例２に用いる同期回路のタイミングチャート。
【図５】各実施例に用いる同期回路の回路図。
【図６】各実施例に用いる同期回路の回路図。
【図７】実施例３に用いる同期回路のタイミングチャート。
【図８】実施例４に用いる同期回路のタイミングチャート。
【図９】実施例５に用いる同期回路のタイミングチャート。
【図１０】実施例６に用いる同期回路のブロック図。
【図１１】実施例７に用いるスタンダードセルの模式的な平面図。
【図１２】従来の半導体集積回路の設計方法を示す流れ図。
【符号の説明】
【０２３０】
２３   前段インバータ
２４   後段インバータ
５０   マルチプレクサ回路
５４   パルス発生回路
８０   ランダムロジック回路
８１   パルス生成回路
８２、８３、８４  フリップフロップ回路
８５   ランダムロジック回路
９０   遅延回路
９１、９２  フリップフロップ回路
１１５ バッファ回路
１１７ スクライブライン
【図１】
2005149313.tif 000003
【図２】
2005149313.tif 000004
【図３】
2005149313.tif 000005
【図４】
2005149313.tif 000006
【図５】
2005149313.tif 000007
【図６】
2005149313.tif 000008
【図７】
2005149313.tif 000009
【図８】
2005149313.tif 000010
【図９】
2005149313.tif 000011
【図１０】
2005149313.tif 000012
【図１１】
2005149313.tif 000013
【図１２】
2005149313.tif 000014