(57)【特許請求の範囲】
【請求項１】
同期回路にタイミング信号を供給するためのタイミングツリー経路に複数の出力ゲート回路が配置された半導体集積回路の前記出力ゲート回路に対する配置配線処理を行なう半導体集積回路の配置配線方法であって、
前記半導体集積回路は、非同期信号パスの故障検出経路に伝達された単数又は複数の非同期信号に基づいて半導体集積回路の非同期信号パスの故障を検出するための故障検出用サンプル信号を生成し、生成された故障検出用サンプル信号をスキャンパスのスキャンラッチに与えて外部に読出し可能とするテスト機能を有し、
前記出力ゲート回路はタイミング信号の出力制御のために入力した出力イネーブル信号を前記非同期信号パスの故障検出経路に伝達するテスト端子を有し、
前記配置配線処理は、コンピュータ装置を用いて、前記出力ゲート回路が出力するタイミング信号のスキューを許容範囲に収めるために前記出力ゲート回路の多重化又は統合を行うかを判定し、且つその判定結果に従って前記出力ゲート回路の多重化又は統合を行う処理を含み、
前記統合を行う処理は、前記統合によって廃止する出力ゲート回路に代えて、当該出力ゲート回路の出力イネーブル信号の入力端子から前記テスト端子までを接続する回路要素を配置する処理を含み、
前記多重化を行う処理は、多重化によって追加する出力ゲート回路の前記テスト端子に新たなスキャンラッチを割り当てる処理を含む、半導体集積回路の配置配線方法。
【請求項２】
前記統合を行う処理は、統合によって廃止する出力ゲート回路の出力に接続する同期回路を、統合によって残される出力ゲート回路の出力につなぎ変える処理を含む、請求項１記載の半導体集積回路の配置配線方法。
【請求項３】
前記多重化する処理は、多重化前の出力ゲート回路の出力に接続する同期回路の一部を、多重化によって追加された出力ゲート回路の出力につなぎ変える処理を含む、請求項２記載の半導体集積回路の配置配線方法。
【請求項４】
前記回路要素を配置する処理は、配線を配置する処理、及び必要に応じて遅延時間を確保するバッファ回路を配置する処理である、請求項３記載の半導体集積回路の配置配線方法。
【請求項５】
前記新たなスキャンラッチを割り当てて接続する処理は、予め用意されている予備スキャンラッチがあるときは当該予備スキャンラッチを割り当て、予備スキャンラッチがないときは新たに追加したスキャンラッチを割り当てる処理である、請求項４記載の半導体集積回路の配置配線方法。
【請求項６】
前記同期回路はクロック同期回路、前記タイミング信号はクロック信号、前記タイミングツリー経路はクロックツリー経路、前記出力ゲート回路はクロックゲート回路である、請求項１記載の半導体集積回路の配置配線方法。
【請求項７】
コンピュータ装置を用いて実行することにより、同期回路にタイミング信号を供給するためのタイミングツリー経路に複数の出力ゲート回路が配置された半導体集積回路の前記出力ゲート回路に対する配置配線処理を支援する、半導体集積回路の配置配線支援プログラムであって、
前記半導体集積回路は、非同期信号パスの故障検出経路に伝達された単数又は複数の非同期信号に基づいて半導体集積回路の非同期信号パスの故障を検出するための故障検出用サンプル信号を生成し、生成された故障検出用サンプル信号をスキャンパスのスキャンラッチに与えて外部に読出し可能とするテスト機能を有し、
前記出力ゲート回路はタイミング信号の出力制御のために入力した出力イネーブル信号を前記非同期信号パスの故障検出経路に伝達するテスト端子を有し、
前記配置配線処理は、コンピュータ装置を用いて、前記出力ゲート回路が出力するタイミング信号のスキューを許容範囲に収めるために前記出力ゲート回路の多重化又は統合を行うかを判定し、且つその判定結果に従って前記出力ゲート回路の多重化又は統合を行う処理を含み、
前記統合を行う処理は、前記統合によって廃止する出力ゲート回路に代えて、当該出力ゲート回路の出力イネーブル信号の入力端子から前記テスト端子までを接続する回路要素を配置する処理を含み、
前記多重化を行う処理は、多重化によって追加する出力ゲート回路の前記テスト端子に新たなスキャンラッチを割り当てる処理を含む、半導体集積回路の配置配線支援プログラム。
【請求項８】
前記統合を行う処理は、統合によって廃止する出力ゲート回路の出力に接続する同期回路を、統合によって残される出力ゲート回路の出力につなぎ変える処理を含む、請求項７記載の半導体集積回路の配置配線支援プログラム。
【請求項９】
前記多重化する処理は、多重化前の出力ゲート回路の出力に接続する同期回路の一部を、多重化によって追加された出力ゲート回路の出力につなぎ変える処理を含む、請求項８記載の半導体集積回路の配置配線支援プログラム。
【請求項１０】
前記回路要素を配置する処理は、配線を配置する処理、及び必要に応じて遅延時間を確保するバッファ回路を配置する処理である、請求項９記載の半導体集積回路の配置配線支援プログラム。
【請求項１１】
前記新たなスキャンラッチを割り当てて接続する処理は、予め用意されている予備スキャンラッチがあるときは当該予備スキャンラッチを割り当て、予備スキャンラッチがないときは新たに追加したスキャンラッチを割り当てる処理である、請求項１０記載の半導体集積回路の配置配線支援プログラム。
【請求項１２】
前記同期回路はクロック同期回路、前記タイミング信号はクロック信号、前記タイミングツリー経路はクロックツリー経路、前記出力ゲート回路はクロックゲート回路である、請求項７記載の配置配線支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期回路（例えばクロック同期回路）にタイミング信号（例えばクロック信号）を供給するためのタイミングツリー経路（例えばクロックツリー経路）に複数の出力ゲート回路（例えばクロックゲート回路）が配置された半導体集積回路の前記ゲート回路に対する配置配線処理を行なう配置配線方法、更には、コンピュータ装置を用いて実行することによりその配置配線処理を支援する配置配線支援プログラムに関し、例えばＥＷＳ（エンジニアリング・ワーク・ステーション）を用いるＤＡ（デザイン・オートメーション）ツールに適用して有効な技術に関する。
【背景技術】
【０００２】
クロック同期回路にクロック信号を供給するためのクロックツリー経路に複数のクロックゲート回路を配置し、クロックゲート回路のクロック出力動作を選択的に抑制することにより、動作が停止するクロック同期回路による電力消費を低減することができる。クロックツリー経路にクロックゲート回路を介在させた場合には、クロック同期回路のタイミング検証ではクロック同期回路による遅延を考慮しなければならない。特許文献１にはクロックゲート回路に相当するクロックゲーティングセルのクロック入力端子とクロックイネーブル信号端子との間のセットアップ条件を遅延予測情報に基づいて計算する技術について記載される。特許文献２にはクロックゲート回路に相当するゲーテッドクロックセルが具備すべきタイミングの解析を静的タイミング解析ツールを用いて行うことができるようにゲーテッドクロックセルにタイミング解析レジスタを接続した技術が記載される。
【０００３】
【特許文献１】特開２００６−２０１８２５号公報
【特許文献２】特開２００７−４６９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
非同期信号の伝達経路に対する故障検出を行うＢＩＳＴ（ビルト・イン・セルフ・テスト）回路を備えている場合、クロックゲート回路のクロックイネーブル信号の伝達経路も前記ＢＩＳＴによる故障検出の対象に加えることが望ましいと考えられる。即ち、前記クロックゲート回路はクロック出力制御のために入力したクロックイネーブル信号を前記非同期信号パスの故障検出経路に伝達するテスト端子を有する。非同期信号パスの故障検出経路に伝達された複数の非同期信号は例えば対応する排他的論理和ゲート（ＥＸＯＲ）に入力されて故障検出用サンプル信号に変換され、変換された故障検出用サンプル信号はスキャンパスのスキャンラッチを介して外部に読出し可能とされる。
【０００５】
夫々の前記クロックゲート回路から出力されるクロック信号のクロックスキューは許容範囲収められなければならない。このため、クロックゲート回路のクロック出力端子に共通接続されるクロック同期回路の数が多過ぎるクロックゲート回路に対しては、当該クロックゲート回路を複数個に多重化して、１個当たりのクロックゲート回路の駆動負荷を小さくすることが必要になる。逆に、クロックゲート回路のクロック出力端子に共通接続されるクロック同期回路の数が少な過ぎるクロックゲート回路に対しては、そのような複数のクロックゲート回路を統合して、１個当たりのクロックゲート回路の駆動負荷を大きくすることが必要になる。
【０００６】
しかしながら、クロックゲート回路の多重化又は統合を行う場合には、統合によって廃止されたクロックゲート回路のテスト端子が接続していた信号線がフローティングとなり、対応する故障検出サンプル信号による故障検出論理を維持することができなくなる。多重化によって追加されたクロックゲート回路のテスト端子をフローティングのままにすれば故障検出率が低下し、他の排他的論理和ゲートなどに無理に接続すれば故障検出の等価性を維持する事ができなくなる。多重化によって追加されたクロックゲート回路のテスト端子を多重化前のクロックゲート回路のテスト端子と同じ接続先に接続した場合には、多重化に係る複数のクロックゲート回路まで非同期信号パスの故障を認識できなくなり、故障検出率が低下する。それら問題点はクロック信号の伝播経路に限らず、ツリー回路を介して伝播されるタイミング信号全般に広くあてはまる事柄である。
【０００７】
本発明の目的は、クロックゲート回路等の出力ゲート回路の多重化及び統合によって非同期信号パスにおける故障検出率が低下せず且つ故障検出論理に変更を生じさせない半導体集積回路の配置配線方法を提供することにある。
【０００８】
本発明の別の目的は、クロックゲート回路等の出力ゲート回路の多重化及び統合によって非同期信号パスにおける故障検出率が低下せず且つ故障検出論理に変更を生じさせない配置配線方法を容易に実現可能することができる配置配線支援プログラムを提供することにある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、クロックツリー経路に複数のクロックゲート回路を配置したとき、クロックゲート回路が出力するクロック信号のスキューを許容範囲に収めるためにクロックゲート回路の多重化又は統合を行うかを判定する。統合を行うときは、前記統合によって廃止するクロックゲート回路に代えて、当該クロックゲート回路のクロックイネーブル信号の入力端子を故障検出経路まで接続する回路要素を配置する。前記多重化を行うときは、多重化によって追加するクロックゲート回路に新たなスキャンラッチを割り当てて接続する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、出力ゲート回路の多重化及び統合によっても非同期信号パスにおける故障検出率が低下せず且つ故障検出論理に変更を生じさせないようにすることができる。
【００１４】
出力ゲート回路の多重化及び統合によって非同期信号パスにおける故障検出率が低下せず且つ故障検出論理に変更を生じさせない配置配線方法を容易に実現可能することができる。
【発明を実施するための最良の形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕半導体集積回路（１）の配置配線方法は、同期回路（例えばクロック同期回路ＳＱＮＣ）にタイミング信号（例えばクロック信号ＣＬＫＪ）を供給するためのタイミングツリー経路（例えばクロックツリー経路）に複数の出力ゲート回路（例えばクロックゲート回路ＣＧＣ）が配置された半導体集積回路の前記クロックゲート回路に対する配置配線処理を行なう方法である。前記半導体集積回路は、非同期信号パスの故障検出経路に伝達された単数又は複数の非同期信号に基づいて半導体集積回路の非同期信号パスの故障を検出するための故障検出用サンプル信号を生成し、生成された故障検出用サンプル信号をスキャンパスのスキャンラッチ（ＳＬＡＴ）に与えて外部に読出し可能とするテスト機能を有する。前記クロックゲート回路はクロック出力制御のために入力したクロックイネーブル信号（ＣＥＮ）を前記非同期信号パスの故障検出経路に伝達するテスト端子（Ｔｓｃｎ）を有する。この配置配線方法において、前記配置配線処理は、コンピュータ装置を用いて、クロックゲート回路が出力するクロック信号のスキューを許容範囲に収めるためにクロックゲート回路の多重化又は統合を行うかを判定し、且つその判定結果に従ってクロックゲート回路の多重化又は統合を行う処理を含む。前記統合を行う処理は、前記統合によって廃止するクロックゲート回路（ＣＧＣ２）に代えて、当該クロックゲート回路のクロックイネーブル信号の入力端子から前記テスト端子までを接続する回路要素（３）を配置する処理を含む。前記多重化を行う処理は、多重化によって追加するクロックゲート回路の前記テスト端子にスキャンラッチを割り当てる処理を含む。
【００１７】
上記した手段によれば、前記統合によって廃止するクロックゲート回路に代えて、当該クロックゲート回路のクロックイネーブル信号の入力端子から前記テスト端子までを接続する回路要素を配置するから、統合によって廃止されたクロックゲート回路のテスト端子が接続されていた信号線がフローティングにならず、対応する故障検出サンプル信号による故障検出論理を維持することができる。また、多重化によって追加するクロックゲート回路の前記テスト端子に新たなスキャンラッチを割り当てて接続するから、多重化によって追加されたクロックゲート回路のテスト端子はフローティングのままにされず故障検出率は低下しない。多重化されたクロックゲート回路のテスト端子を多重化前のクロックゲート回路のテスト端子と同じ接続先に接続することもないので、多重化に係る複数のクロックゲート回路までの非同期信号パスに生ずる故障を認識できなくならず、この点において故障検出率の低下を抑制することができる。
【００１８】
前記統合を行う処理は、例えば、統合によって廃止するクロックゲート回路の出力に接続するクロック同期回路を、統合によって残されるクロックゲート回路の出力につなぎ変える処理を含む。
【００１９】
前記多重化する処理は、例えば、多重化前のクロックゲート回路の出力に接続するクロック同期回路の一部を、多重化によって追加されたクロックゲート回路の出力につなぎ変える処理を含む。
【００２０】
前記回路要素を配置する処理は、例えば、配線を配置する処理、及び必要に応じて遅延時間を確保するバッファ回路（ＢＵＦ）を配置する処理である。
【００２１】
前記スキャンラッチを割り当てて接続する処理は、予め用意されている予備スキャンラッチがあるときは当該予備スキャンラッチを割り当て、予備スキャンラッチがないときは新たに追加したスキャンラッチを割り当てる処理である。配置配線の結果に従ってテスト設計のやり直しを極力少なくしようとする場合には予備スキャンラッチを用意するのが通例であり、前者はこれを考慮したものである。さらに、予め配置された予備のスキャンラッチを流用することによりスキャンパスの構成変更を伴わず、テストコストを上昇させない。
【００２２】
〔２〕半導体集積回路の配置配線支援プログラムは、コンピュータ装置を用いて実行することにより、同期回路（例えばクロック同期回路）にタイミング信号（例えばクロック信号）を供給するためのタイミングツリー経路（例えばクロックツリー経路）に複数の出力ゲート回路（例えばクロックゲート回路）が配置された半導体集積回路の前記クロックゲート回路に対する配置配線処理を支援するためのものである。前記半導体集積回路は、非同期信号パスの故障検出経路に伝達された単数又は複数の非同期信号に基づいて半導体集積回路の非同期信号パスの故障を検出するための故障検出用サンプル信号を生成し、生成された故障検出用サンプル信号をスキャンパスのスキャンラッチに与えて外部に読出し可能とするテスト機能を有する。前記クロックゲート回路はクロック出力制御のために入力したクロックイネーブル信号を前記非同期信号パスの故障検出経路に伝達するテスト端子を有する。この配置配線支援プログラムにおいて、前記配置配線処理は、コンピュータ装置を用いて、クロックゲート回路が出力するクロック信号のスキューを許容範囲に収めるためにクロックゲート回路の多重化又は統合を行うかを判定し、且つその判定結果に従ってクロックゲート回路の多重化又は統合を行う処理を含む。前記統合を行う処理は、前記統合によって廃止するクロックゲート回路に代えて、当該クロックゲート回路のクロックイネーブル信号の入力端子から前記テスト端子までを接続する回路要素を配置する処理を含む。前記多重化を行う処理は、多重化によって追加するクロックゲート回路の前記テスト端子にスキャンラッチを割り当てる処理を含む。
【００２３】
この配置配線支援プログラムをコンピュータ装置で実行することにより、クロックゲート回路の多重化及び統合によって非同期信号パスにおける故障検出率が低下せず且つ故障検出論理に変更を生じさせない配置配線方法を容易に実現可能することができる。
【００２４】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００２５】
《半導体集積回路のクロックツリー回路》
図３には半導体集積回路のクロックツリー回路が例示される。半導体集積回路１はクロックパルスジェネレータ（ＣＰＧ）２を有する。クロックツリー回路はクロックパルスジェネレータ２で生成されるクロック信号をクロック同期回路ＳＱＮＣに伝達するクロック経路を構成する。同図に示されたクロックツリー回路は、クロックパルスジェネレータ２で生成されるクロック信号を伝達する代表的に示されたクロック伝達経路ＣＫ＿ＰＡＳ１〜ＣＫ＿ＰＡＳ４を有し、その途中には代表的に示されたクロックゲート回路ＣＧＣ１〜ＣＧＣ６を有し、クロックゲート回路ＣＧＣ１〜ＣＧＣ６から出力されるクロック信号は対応するクロック同期回路ＳＱＮＣに供給される。ＣＫ＿ＰＡＳ１〜ＣＫ＿ＰＡＳ４に代表されるクロック伝達経路の途中には図示を省略するクロックバッファが配置される。ＣＧＣ１〜ＣＧＣ６に代表されるクロックゲート回路は対応する複数のクロック同期回路ＳＱＮＣに対するクロックの供給を選択可能する回路セルであり、動作を休止しているクロック同期回路へのクロック供給を停止することによって低消費電力を実現する。
【００２６】
ここでは複数のクロック同期回路ＳＱＮＣは相互に同期動作される同期回路である。したがって、クロックツリー回路によってクロック同期回路ＳＱＮＣに供給されるクロック信号のクロックスキュー（位相ずれ）は所定の許容範囲内に収まらなければならない。ラッチ回路やフリップフロップが配置されたデータ伝達系のセットアップおよびホールドタイミング等を満足するためである。クロック同期回路ＳＱＮＣは対応するクロック信号によって同期動作されるラッチ回路やフリップフロップを有する。
【００２７】
半導体集積回路１のレイアウト設計では、クロックツリー回路におけるクロックゲート回路の配置を変更しなければならない場合がある。論理設計に従って自動レイアウトを行ったとき、一つのクロックゲート回路によるクロック同期回路の駆動負荷に許容範囲を超える差が生じている場合があるからである。例えば、半導体集積回路１の第１レイアウトＬＹＯＴ１では、クロックゲート回路ＣＧＣ１、ＣＧＣ２が２個のクロック同期回路ＳＱＮＣを駆動するとき、クロックゲート回路ＣＧＣ３は８個のクロック同期回路ＳＱＮＣを駆動しなければならない。ここでは説明を簡単にするために便宜上、個々のクロック同期回路ＦＦのクロック入力負荷は等しいものとして説明する。
【００２８】
上記アンバランスを解消するためにレイアウトツールを用いてクロックゲート回路の多重化又は統合を行う。図３の第２レイアウトＬＹＯＴ２は第1レイアウトＲＹＯＴ１に対してクロックゲート回路の多重化及び統合を行った結果を示す。第２レイアウトＬＹＯＴ２においては、クロックゲート回路ＣＧＣ２はクロックゲート回路ＣＧＣ１に統合され、クロックゲート回路ＣＧＣ３はクロックゲート回路３とクロックゲート回路ＣＧＣ３＿ｍに多重化されている。統合されたクロックゲート回路ＣＧＣ１、多重化されたクロックゲート回路ＣＧＣ３，ＣＧＣ３＿ｍは、夫々４個のクロック同期回路を駆動するようにされる。
【００２９】
図４にはクロックゲート回路と非同期信号の故障検出経路が例示される。ＣＧＣ１〜ＣＧＣ６を代表するクロックゲート回路ＣＧＣにはクロック信号ＣＬＫと共に、クロック出力制御のためのクロックイネーブル信号ＣＥＮ及びテスト信号ＳＭＣが供給され、オアゲートＯＲ１、ラッチ回路ＬＡＴ１、アンドゲートＡＮＤ１を有する。クロックイネーブル信号ＣＥＮとテスト信号ＳＭＣの論理和信号がクロック信号ＣＬＫに同期してラッチ回路ＬＡＴ１にラッチされ、ラッチされた値が論理値１のとき、クロック信号ＣＬＫがアンドゲートＡＮＤ１からクロック信号ＧＣＬＫとして出力される。クロックイネーブル信号ＣＥＮとテスト信号ＳＭＣのイネーブルレベルは共に論理値１である。クロックゲート回路ＣＧＣは入力したクロックイネーブル信号ＣＥＮを非同期信号パスの故障検出経路に出力するテスト端子Ｔｓｃｎを有する。テスト端子Ｔｓｃｎの出力信号（テスト出力信号）にはＯＢＳの参照符号が付されている。
【００３０】
非同期信号パスとはイネーブル信号やストローブ信号のような非同期信号の信号経路を意味し、例えば図４の場合にはクロックイネーブル信号ＣＥＮがオアゲートＯＲ１の入力端子に伝達される信号経路である。非同期信号パスの故障検出経路として、例えばアンドゲートＡＮＤ２，ＡＮＤ３及び排他的論理和ゲートＥＸＯＲ１を有する。アンドゲートＡＮＤ２，ＡＮＤ３にはその他の非同期信号が入力され、アンドゲートＡＮＤ１，ＡＮＤの出力を受ける排他的論理和ゲートＥＸＯＲ１は入力信号に応じた論理の故障検出用サンプル信号ＳＭＰＬを生成する。図４にはスキャンパスＳＰＡＳに含まれるスキャンラッチＳＬＡＴ１，ＳＬＡＴ２が代表的に示される。故障検出用サンプル信号ＳＭＰＬは半導体集積回路１のＢＩＳＴ（ビルト・イン・セルフ・テスト）動作においてスキャンクロックＳＣＬＫに同期してスキャンラッチＳＬＡＴ１にラッチされて、シフト転送される。故障検出経路は複数のテスト出力信号を入力するアンドゲート及び排他的論理和ゲートによる構成に限定されず、その他の論理回路であってもよいし、単なる信号配線であってもよい。複数のテスト出力信号を入力する論理回路を用いるのは、複数のテスト出力信号の状態を１本の故障検出用サンプル信号に集約するためである。
【００３１】
《クロックゲート回路の統合（デクローン）》
図３に基づいて説明したクロックゲート回路の統合（ＤＣＬＮ：デクローン）及び多重化（ＣＬＮ：クローン）の処理のうち、先ずクロックゲート回路の統合処理について説明する。
【００３２】
図１にはクロックゲート回路の統合処理方法が例示される。図１ではクロックゲート回路ＣＧＣ２をクロックゲート回路ＣＧＣ１に統合する場合を例示する。統合前においては、クロックゲート回路ＣＧＣ１の故障検出経路には図４で説明したのと同様にアンドゲートＡＮＤｉ、ＡＮＤｉ＋１と排他的論理和ゲートＥＸＯＲｉが例示される。排他的論理和ゲートＥＸＯＲｉの出力はスキャンパスのスキャンラッチＳＬＡＴｉに接続される。クロックゲート回路ＣＧＣ２の故障検出経路には図４で説明したのと同様にアンドゲートＡＮＤｊと排他的論理和ゲートＥＸＯＲｊが例示される。排他的論理和ゲートＥＸＯＲｊの出力はスキャンパスのスキャンラッチＳＬＡＴｊに接続される。スキャンラッチＳＬＡＴｉとＳＬＡＴｊは直列に接続される。
【００３３】
統合処理はエンジニアリング・ワーク・ステーション等のコンピュータ装置に配置配線支援プログラムを実行させることによって行われる。先ず、当初の配置配線処理でクロックツリー回路に配置された複数のクロックゲート回路に対して統合処理の対象とするか否かが判定される（Ｓ１）。例えば、クロックツリー回路においてそれぞれのクロックゲート回路から出力されるクロック信号のクロックスキューを許容範囲に収めるために、クロックスキューが許容範囲の下限よりも小さなクロックゲート回路、即ち、クロック位相の進みが大き過ぎるクロックゲート回路を統合対象とする。そのような判定は当該クロック信号ＯＢＳのスキューが許容値の下限閾値よりも小さいか否かの判別によって行われる。ここではクロックゲート回路ＣＧＣ１とＣＧＣ２が統合対象として指定されるものとする。
【００３４】
統合対象のクロックゲート回路のうち統合によって削除される方のクロックゲート回路ＣＧＣ２に接続するクロック同期回路２を、統合によって残される方のクロックゲート回路ＣＧＣ１のクロック信号ＧＣＬＫの出力端子に繋ぎ変える処理が行なわれる（Ｓ２）。この後、クロックゲート回路ＣＧＣ２がクロックツリー回路から削除され（Ｓ３）、さらに削除されたクロックゲート回路ＣＧＣ２に代えて、当該クロックゲート回路ＣＧＣ２のクロックイネーブル信号の入力端子からそのテスト端子Ｔｓｃｎまでを接続する回路要素３を配置する処理が行なわれる（Ｓ４）。前記回路要素３を配置する処理Ｓ４は、配線を配置する処理、及び必要に応じて遅延時間を確保するバッファ回路を配置する処理である。図１の例では回路要素として配線およびバッファＢＵＦが配置される。バッファＢＵＤＦの遅延時間は廃止したクロックゲート回路ＣＧＣ２内におけるクロックイネーブル信号ＣＥＮの伝播遅延時間とされる。
【００３５】
図５には図１による前記統合処理の前の状態と後の状態が示される。ＢＦＲ＿ＤＣＬＮは統合処理の前の状態を示し、ＡＦＴ＿ＤＣＬＮは統合処理の後の状態を示す。統合によって廃止されたクロックゲート回路ＣＧＣ２のもとの位置には配線とバッファＢＵＦからなる回路要素３が配置される。図６には回路要素３による代替を行わない場合の統合前の状態ＢＦＲ＿ＤＣＬＮと統合後の状態ＡＦＴ＿ＤＣＬＮｆｌｔが示される。回路要素３による代替を行わない場合には図６に示されるように、廃止されたクロックゲート回路ＣＧＣ２のクロック信号ＧＣＬＫの出力端子がもともと接続されていたアンドゲートＡＮＤｊの入力Ｔｊがフローティングにされる。そうすると、図６の状態ＡＦＴ＿ＤＣＬＮｆｌｔにおける排他的論理和ゲートＥＸＯＲｊから出力される故障検出用サンプル信号ＳＭＰＬの生成論理は、図５の状態ＡＦＴ＿ＤＣＬＮにおける排他的論理和ゲートＥＸＯＲｊから出力される故障検出用サンプル信号ＳＭＰＬの生成論理とは一致しなくなり、排他的論理和ゲートＥＸＯＲｊからの故障検出論論理を維持できなくなる。これにより、スキャンパスを介してサンプリングできるテストデータが相違することになるので、非同期信号に対するテストのためのテストプログラム若しくはテスト評価プログラムの修正や変更が必要になり、テスト設計コストの上昇要因になる。図５の状態ＡＦＴ＿ＤＣＬＮのように回路要素３を挿入していれば、テストプログラム若しくはテスト評価プログラムの修正や変更を全く要しない。
【００３６】
図７には統合の別の例が示される。ここではクロックゲート回路ＣＧＣ１Ａにクロックゲート回路ＣＧＣ２Ａを統合している。このとき、４で示される故障検出経路に配置されたアンドゲートＡＮＤｎ及び排他的論理和ゲートＥＸＯＲｎが縮退され、単なる配線に置き換えられている。縮退できるか否かはアンドゲートＡＮＤｎ及び排他的論理和ゲートＥＸＯＲｎに入力されるその他の信号によって決定され、排他的論理和ゲートＥＸＯＲｎの出力がクロックイネーブル信号ＣＥＮと同じになる論理構成であれば、縮退可能となる。ようするに、アンドゲートＡＮＤｎ及び排他的論理和ゲートＥＸＯＲｎはもともと不要であったものであり、これを統合時に判定してお[る]くということである。結果として、統合後、クロックゲート回路ＣＧＣ４を代替する回路要素３のバッファＢＵＦの出力は対応するスキャンラッチＳＬＡＴｎのデータ入力端子に直接接続されている。
【００３７】
図８には統合処理によりクロックゲート回路を代替する回路要素の別の例が示される。例えば統合処理による統合結果の一つの例を図８の（Ａ）とする。これは図７のクロックゲート回路ＣＧＣ２Ａをクロックゲート回路ＣＧＣ１Ａに統合した結果に対応される。統合処理においては更に、（Ｂ）に例示されるようにバッファＢＵＦを省略すること、（Ｃ）に例示されるようにバッファＢＵＦに代えて論理ゲート例えばアンドゲートＡＮＤｘを介在されることが可能である。（Ｂ）の例は必要な遅延時間を配線遅延でまかなうことができる場合を意味する。（Ｃ）は図７のアンドゲートＡＮＤｍの他方の入力端子にテスト信号ＳＭＣが供給されていたとするとき、当該アンドゲートＡＮＤｎを残して前記縮退可能が可能な場合を意味し、そのとき、バッファによる遅延がアンドゲートＡＮＤｎの動作遅延に匹敵するので当該バッファＢＵＦは省略されている。
【００３８】
《クロックゲート回路の多重化（クローン）》
図２にはクロックゲート回路の多重化処理方法が例示される。図２ではクロックゲート回路ＣＧＣ３をクロックゲート回路ＣＧＣ３とＣＧＣ＿ｍに多重化する場合を例示する。多重化前においては、クロックゲート回路ＣＧＣ３の故障検出経路には図４で説明したのと同様にアンドゲートＡＮＤｋと排他的論理和ゲートＥＸＯＲｋが例示される。排他的論理和ゲートＥＸＯＲｋの出力はスキャンパスのスキャンラッチＳＬＡＴｋに接続される。
【００３９】
多重化処理はエンジニアリング・ワーク・ステーション等のコンピュータ装置に配置配線支援プログラムを実行させることによって行われる。先ず、当初の配置配線処理でクロックツリー回路に配置された複数のクロックゲート回路に対して多重化処理の対象とするか否かが判定される（Ｓ１１）。例えば、クロックツリー回路においてそれぞれのクロックゲート回路から出力されるクロック信号のクロックスキューを許容範囲に収めるために、クロックスキューが許容範囲の上限よりも大きなクロックゲート回路、即ち、クロック位相の遅れが大き過ぎるクロックゲート回路を追加処理の対象とする。そのような判定は当該クロック信号ＧＣＬＫのスキューが許容値の上限閾値よりも大きいか否かの判別によって行われる。ここではクロックゲート回路ＣＧＣ３が多重化処理の対象として指定されるものとする。
【００４０】
次に、多重化によって追加されるクロックゲート回路に流用可能な予備のスキャンラッチが既にレイアウトされているか否かを判別する（Ｓ１２）。ＢＩＳＴのためのスキャンパスの構成変更を極力抑制することによってテストコストの低減を企図する場合には予め予備のスキャンラッチを多数配置することが一般的に行われている。そのような予備スキャンラッチがあればこれを流用することができる。予備スキャンラッチにはクロックゲート回路ＣＧＣ３のクロックイネーブル信号経路の伝播遅延時間に相当するバッファＢＵＦｓｐｒが付随されている。予備スキャンラッチが無ければ、多重化によって追加されるクロックゲート回路に接続するためのスキャンラッチとバッファＢＵＦｓｐｒをレイアウトに追加する（Ｓ１３）。図２においてＳＬＡＴｋ＋１は予め配置され或いは追加されたスキャンラッチを意味する。この後、バッファＢＵＦｓｐｒを新たなクロックゲート回路ＣＧＣ３＿ｍに置換する（Ｓ１４）。そして、多重化前にクロックゲート回路ＣＧＣ３からクロック信号ＧＣＬＫを受ける４個の同期回路ＳＱＮＣの内、２個の動機回路ＳＱＮＣをクロックゲート回路ＣＧＣ３＿ｍのクロック信号ＧＣＬＫの出力端子に繋ぎ変える（Ｓ１５）。バッファＢＵＦｓｐｒは多重化によって追加するクロックゲート回路の種、要するに、クローンの種、として位置付けられる。
【００４１】
図９には図２による多重化処理の前の状態と後の状態が示される。ＢＦＲ＿ＣＬＮは多重化処理の前の状態を示し、ＡＦＴ＿ＣＬＮは多重化処理の後の状態を示す。この例では予めレイアウトされている予備のスキャンラッチを多重化に際して用いている。多重化によって追加されたクロックゲート回路ＣＧＣ３＿ｍにはスキャンラッチＳＬＡＴ[３＿ｍ] ｋ＋１が割り当てられている。多重化によって追加されたクロックゲート回路にスキャンラッチの割り当てを行わない場合には、図１０の状態ＡＦＴ＿ＣＬＮｆｌｔに示されるように、多重化によって追加されたクロックゲート回路ＣＧＣ３＿ｍのテスト端子Ｔｓｃａｎはフローティングにされる。そうすると、多重化されたクロックゲート回路ＣＧＣ３＿ｍ中のクロックイネーブル信号ＣＥＮの伝達パスにおける故障検出を行うことができない。図９の状態ＡＦＴ＿ＣＬＮで示されるようにスキャンラッチＳＬＡＴｋ＋１の割り当てが行われていれば、テストプログラム若しくはテスト評価プログラムの修正や変更を全く要せず、故障検出率は低下しない。さらに、予め配置された予備のスキャンラッチを流用することによりスキャンパスの構成変更を伴わず、テストコストを上昇させない。しかも、多重化によって追加されたクロックゲート回路ＣＧＣ３＿ｍのテスト端子Ｔｓｃｎを多重化前のクロックゲート回路ＣＧＣ３のテスト端子Ｔｓｃｎと同じ接続先に接続することもないので、多重化に係る複数のクロックゲート回路までの非同期信号パスに生ずる故障を認識できなくなることもない、この点において故障検出率の低下を抑制することができる。要するに、同じ信号が同じ排他的論理和ゲートに入力されたとすると、当該信号の論理値が期待値に反しても排他的論理和ゲートの出力からそれを判別することはできないからである。
【００４２】
図１１には多重化の別の例が示される。多重化によって追加されたクロックゲート回路に割り当てられる新たなスキャンラッチは上述の予備のスキャンラッチ又は新設のスキャンラッチに限定されない。図１１に例示されるように、その他の非同期信号の故障検出経路に配置されているゲート回路ＧＡＴ回路の入力端子に結合することも可能であり、既存のスキャンラッチＳＬＡＴｘが割り当てられることになる。
【００４３】
《レイアウト設計フロー》
図１２には半導体集積回路の全体的なレイアウト設計の処理フローが例示される。レイアウト設計は、フロアプランの作成（Ｓ２１）、フロアプランに従った配置の前の最適化（Ｓ２２）、最適化後の配置処理（Ｓ２３）、配置後の最適化（Ｓ２４）、クロックツリーの生成処理（Ｓ２５）、クロックツリー生成後の最適化（Ｓ２６）、配置された回路要素の配線処理（Ｓ２７）、及び配線後の最適化処理（Ｓ２８）によって行われる。
【００４４】
前記クロックツリーの生成処理（Ｓ２５）は図１及び図２で説明した統合処理及び多重化処理を含んでいる。双方の処理はステップＳ３１〜Ｓ３６に集約することができる。ステップＳ３１ではクロックツリーにおいてクロック信号のスキュー値が許容範囲を満足しているかが判定され、これは図１のステップＳ１と図２のステップＳ１１に対応される。クロック信号位相の進み過ぎに係るクロックゲート回路に対してはデクローンのためのクロックゲート回路の統合を行う（Ｓ３６）。この処理は図1のＳ２〜Ｓ４に対応される。クロック信号位相の遅れ過ぎに係るクロックゲート回路に対しては、先ずクローンの種があるかを判定し（Ｓ３２）、無ければクローンの種を追加して（Ｓ３３）クローンのためのクロックゲート回路の多重化を行い（Ｓ３４）、種があればそれを利用してクローンのためのクロックゲート回路の多重化を行う（Ｓ３４）。
【００４５】
ステップＳ３２は図２のステップＳ１２に対応され、Ｓ３３は図２のＳ１３に対応され、Ｓ３４は図２のＳ１４に対応される。この後、クロックツリーの再構成並びに冗長論理の削除を行い（Ｓ３５）、ステップＳ３１に戻って別のクロックゲート回路に対して判定を行う。
【００４６】
上記クロックツリー生成処理等を実現する配置配線支援処理プログラムはＥＷＳ等のコンピュータ装置のメモリ又は補助記憶装置にロードされ、コンピュータ装置がこれを実行する。そのような配置配線支援処理プログラムは配置配線ツールとして用いられる。
【００４７】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４８】
例えばクロック同期回路の構成や非同期信号パスの故障検経路に論理構成は図３に限定されず適宜変更可能である。また、統合化処理で挿入する回路要素は、配線、バッファ、アンドゲートに限定されず適宜変更可能である。また、前記クロック同期回路は同期回路に、前記クロック信号はタイミング信号に、前記クロックツリー経路はタイミングツリー経路に、前記クロックゲート回路は出力ゲート回路に、夫々拡張可能である。要するに本発明はクロック伝達系に関して適されるだけでなく、その他のタイミング信号の伝達系にも適用することができる。
【図面の簡単な説明】
【００４９】
【図１】クロックゲート回路の統合処理方法を例示する説明図である。
【図２】クロックゲート回路の多重化処理方法を例示する説明図である。
【図３】半導体集積回路のクロックツリー回路を例示する説明図である。
【図４】クロックゲート回路と非同期信号の故障検出経路を例示する論理回路図である。
【図５】図１による前記統合処理の前の状態と後の状態を示す論理回路図である。
【図６】回路要素による代替を行わない場合の統合前の状態ＢＦＲ＿ＤＣＬＮと統合後の状態ＡＦＴ＿ＤＣＬＮｆｌｔを示す論理回路図である。
【図７】統合の別の例が示す論理回路図である。
【図８】統合処理によりクロックゲート回路を代替する回路要素の別の例を示す論理回路図である。
【図９】図２による多重化処理の前の状態と後の状態を例示する論理回路図である。
【図１０】多重化によって追加されたクロックゲート回路にスキャンラッチの割り当てを行わない場合の多重化後の状態ＡＦＴ＿ＣＬＣｆｌｔを示す論理回路図である。
【図１１】多重化の別の例を示す論理回路図である。
【図１２】半導体集積回路の全体的なレイアウト設計の処理フローを例示するフローチャートである。
【符号の説明】
【００５０】
１  半導体集積回路
２  クロックパルスジェネレータ（ＣＰＧ）
ＳＱＮＣ  クロック同期回路
ＣＫ＿ＰＡＳ１〜ＣＫ＿ＰＡＳ４  クロック伝達経路
ＣＧＣ１〜ＣＧＣ６  クロックゲート回路
ＣＧＣ３＿ｍ  多重化によって追加されたクロックゲート回路
ＣＬＫ  クロック信号
ＣＥＮ  クロックイネーブル信号
ＳＭＣ  テスト信号
Ｔｓｃｎ  テスト端子
ＯＢＳ  テスト端子Ｔｓｃｎの出力信号（テスト出力信号）
ＡＭＰＬ  故障検出用サンプル信号
ＳＬＡＴ１，ＳＬＡＴ２  スキャンラッチ
ＳＣＬＫ  スキャンクロック
３  回路要素
ＢＵＦ  バッファ
【図１】
0005002352.tif 000002
【図２】
0005002352.tif 000003
【図３】
0005002352.tif 000004
【図４】
0005002352.tif 000005
【図５】
0005002352.tif 000006
【図６】
0005002352.tif 000007
【図７】
0005002352.tif 000008
【図８】
0005002352.tif 000009
【図９】
0005002352.tif 000010
【図１０】
0005002352.tif 000011
【図１１】
0005002352.tif 000012
【図１２】
0005002352.tif 000013