(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される回路設計方法であって、
第１の階層の第１の回路ブロックに含まれる第１の試験回路モデルと、前記第１の回路ブロックを含む第２の階層の第２の回路ブロックに含まれる第２の試験回路モデルを、前記第１の階層内、前記第２の階層内及び前記第１の階層と前記第２の階層間でシリアル接続し、
前記第１の試験回路モデルを経由した第１の試験データか、前記第１の試験回路モデルを経由しない第２の試験データの何れかを選択して出力する第１の選択部を前記第１の回路ブロックに設け、前記第２の試験回路モデルを経由した第３の試験データか、前記第２の試験回路モデルを経由しない第４の試験データの何れかを選択して出力する第２の選択部を前記第２の回路ブロックに設けることを特徴とする回路設計方法。
【請求項２】
前記第２の回路ブロックの論理検証時に、論理検証済みの前記第１の回路ブロックを、前記第１の選択部以外の論理数を削減して前記第２の回路ブロックに組み込み、
論理数を削減した前記第１の回路ブロックに含まれる前記第１の選択部に前記第２の試験データを出力させて、前記第２の回路ブロックの論理検証を行うことを特徴とする請求項１記載の回路設計方法。
【請求項３】
前記第２の回路ブロックの論理検証時に、論理検証済みの前記第１の回路ブロックから、第１の試験対象回路モデル及び前記第１の試験回路モデルを削除して前記第２の回路ブロックに組み込み、
前記第１の試験対象回路モデル及び前記第１の試験回路モデルを削除した前記第１の回路ブロックに含まれる前記第１の選択部に、前記第２の試験データを出力させて、前記第２の回路ブロックの論理検証を行うことを特徴とする請求項１または２に記載の回路設計方法。
【請求項４】
同じクロックドメインの複数の試験対象回路モデルを試験する複数の、前記第１の試験回路モデルまたは前記第２の試験回路モデルを、複数本のパスでシリアル接続することを特徴とする請求項１乃至３の何れか一項に記載の回路設計方法。
【請求項５】
第１の階層の第１の回路ブロックに含まれる第１の試験回路モデルと、前記第１の回路ブロックを含む第２の階層の第２の回路ブロックに含まれる第２の試験回路モデルを、前記第１の階層内、前記第２の階層内及び前記第１の階層と前記第２の階層間でシリアル接続し、
前記第１の試験回路モデルを経由した第１の試験データか、前記第１の試験回路モデルを経由しない第２の試験データの何れかを選択して出力する第１の選択部を前記第１の回路ブロックに設け、前記第２の試験回路モデルを経由した第３の試験データか、前記第２の試験回路モデルを経由しない第４の試験データの何れかを選択して出力する第２の選択部を前記第２の回路ブロックに設ける処理をコンピュータに実行させるプログラム。
【請求項６】
第１の階層の第１の回路ブロックに含まれる第１の試験回路と、
前記第１の回路ブロックを含む第２の階層の第２の回路ブロックに含まれる第２の試験回路と、
前記第１の回路ブロックに設けられ、前記第１の試験回路を経由した第１の試験データか、前記第１の試験回路を経由しない第２の試験データの何れかを選択して出力する第１の選択部と、
前記第２の回路ブロックに設けられ、前記第２の試験回路を経由した第３の試験データか、前記第２の試験回路を経由しない第４の試験データの何れかを選択して出力する第２の選択部と、を有し、
前記第１の試験回路と前記第２の試験回路は、前記第１の階層内、前記第２の階層内及び前記第１の階層と前記第２の階層間でシリアル接続されている、
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計方法、プログラム及び半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路の大規模化、高集積化がますます進んでいる。そのため、半導体集積回路の回路設計時の論理検証の際に、チップ全体の回路データを用いると、シミュレーション実行時間が長くなり、コンピュータの使用メモリ容量も膨大なものとなる。
【０００３】
そこで従来、シミュレーション対象の回路を、特定の回路ブロックごとに分割して、階層設計することが行われている。これにより、一度に検証する回路データの量を減らすことができる。また、回路ブロックごとに、たとえば、異なる設計者が並列に設計及び検証を行うことで、設計効率を上げることができる。
【０００４】
階層設計では、階層ごとに各階層の回路ブロックに対応したネットリストを用いて、テスト回路設計、論理検証、レイアウト設計などが行われていく。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭６０−２３１１８７号公報
【特許文献２】特開平５−７２２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の階層設計では、下位の階層の回路ブロックを含む上位の階層の回路ブロックの論理検証の際、下位の階層の回路ブロックが論理検証済であっても、下位の階層に関するイベント（信号の変化）が発生する。これによりシミュレーション時間が長くなり、コンピュータの使用メモリ容量も増加してしまうという問題があった。
【課題を解決するための手段】
【０００７】
発明の一観点によれば、コンピュータによって実行される、以下のような回路設計方法が提供される。この回路設計方法では、階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設ける。
【発明の効果】
【０００８】
短時間で効率的に回路設計を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の回路設計方法の一例を示す図である。
【図２】下位階層の論理検証時の一例の様子を示す図である。
【図３】トップ階層の論理検証時の一例の様子を示す図である。
【図４】本実施の形態の回路設計方法を実行するコンピュータのハードウェア例を示す図である。
【図５】階層設計の一例の流れを示すフローチャートである。
【図６】本実施の形態の半導体集積回路の一例を示す図である。
【図７】検証用モデルの一例を示す図である。
【図８】下位階層の論理検証時の回路ブロックの一例を示す図である。
【図９】下位階層の検証用モデルが組み込まれたトップ階層の論理検証モデルの一例を示す図である。
【図１０】ＲＡＭが増加した場合の半導体集積回路の一例を示す図である。
【図１１】制御部とラッパー回路の一例を示す図である。
【図１２】２本のスキャンパスを有する半導体集積回路の一例を示す図である。
【図１３】トップ階層の論理検証時の論理検証モデルの一例を示す図である。
【図１４】下位階層の回路ブロックが更に下位階層の回路ブロックを含む場合の半導体集積回路の一例を示す図である。
【図１５】パワードメインが異なる回路ブロックが存在する場合の半導体集積回路の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の回路設計方法の一例を示す図である。
【００１１】
本実施の形態の回路設計方法は、図１に示されるようなコンピュータ１で行われる。
階層設計（ステップＳ１）では、論理合成によって得られたネットリストが、特定の複数の回路ブロックに分割されて、各階層の回路ブロックごとに設計が行われる。本実施の形態の回路設計方法では、図１に示されるような、テスト設計が行われる。
【００１２】
図１では、下位階層の回路ブロックとその回路ブロックを含むトップ階層（最上位の階層）による、２層の階層構造を持つ階層設計データを示している。下位階層の回路ブロックは、試験対象となる試験対象回路モデル２，３と、それらを試験する試験回路モデル４，５と、選択部６を有している。トップ階層の回路ブロックは、上記下位階層の回路ブロックを含むとともに、試験対象回路モデル７，８と、それらを試験する試験回路モデル９，１０と、選択部１１を有している。
【００１３】
ここで、試験回路モデル４，５，９，１０は、階層設計データの各階層内でシリアル接続されており、２つの階層間でも選択部１１を介してシリアル接続されている。
また、選択部６は、自身の階層の試験回路モデル４，５を経由した試験データ（試験回路モデル４，５の試験結果）か、自身の階層の試験回路モデル４，５を経由しない試験データの何れかを選択して出力する。選択部１１は、自身の階層の試験回路モデル９，１０を経由した試験データ（試験回路モデル９，１０の試験結果）か、自身の階層の試験回路モデル９，１０を経由しない試験データの何れかを選択して出力する。
【００１４】
なお、図１では、試験対象回路モデル２，３，７，８が階層ごと２つの例を示しているが、３つ以上であってもよい。また、図１では、下位階層の回路ブロックが１つの場合について示しているが、複数あってもよい。
【００１５】
上記のようなテスト設計を行うことで、以下に示すように、階層ごと独立に論理検証が行えるとともに、上位の階層の論理検証の際に、下位階層の論理数を削減しても、上位の階層の検証結果に影響を与えることがないため、シミュレーション時間を短縮できる。
【００１６】
図２は、下位階層の論理検証時の一例の様子を示す図である。
下位階層の論理検証時（ステップＳ２）、下位階層の回路ブロックの選択部６は、自身の階層の試験回路モデル４，５を経由した試験データ、すなわち、試験対象回路モデル２，３の試験結果を選択して出力する。これにより、図２に示されている下位階層の論理検証を独立に行うことができる。
【００１７】
図３は、トップ階層の論理検証時の一例の様子を示す図である。
トップ階層の論理検証時（ステップＳ３）には、トップ階層の回路ブロックの選択部１１は、自身の階層の試験回路モデル９，１０を経由した試験データ、すなわち、試験対象回路モデル７，８の試験結果を選択して出力する。また、下位階層の選択部６は、自身の階層の試験回路モデル４，５を経由しない試験データを選択して出力する。これにより、トップ階層での試験データ（試験結果）が、選択部６から出力され、トップ階層の論理検証を独立に行うことができる。
【００１８】
また、コンピュータ１は、トップ階層の論理検証時に組み込む論理検証済の下位階層の回路ブロックにおいて、選択部６以外の論理数を削減する。たとえば、図３に示すように、コンピュータ１は、論理検証済の下位階層の回路ブロックから、試験対象回路モデル２，３及び試験回路モデル４，５を削除して、論理数を削減する。
【００１９】
選択部６では、トップ階層からの試験データが選択されるので、下位階層の回路データから、試験対象回路モデル２，３及び試験回路モデル４，５を削除しても、トップ階層の検証結果に影響を与えない。論理数を削減することで、トップ階層の回路ブロックの論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ１の使用メモリ容量も削減することができる。
【００２０】
以下、第２の実施の形態として、回路設計方法をより詳細に説明する。
（第２の実施の形態）
図４は、本実施の形態の回路設計方法を実行するコンピュータのハードウェア例を示す図である。
【００２１】
コンピュータ２０は、ＣＰＵ（Central Processing Unit）２１によって装置全体が制御されている。ＣＰＵ２１には、バス２８を介してＲＡＭ（Random Access Memory）２２と複数の周辺機器が接続されている。
【００２２】
ＲＡＭ２２は、コンピュータ２０の主記憶装置として使用される。ＲＡＭ２２には、ＣＰＵ２１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２２には、ＣＰＵ２１による処理に使用する各種データが格納される。
【００２３】
バス２８に接続されている周辺機器としては、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）２３、グラフィック処理装置２４、入力インタフェース２５、光学ドライブ装置２６及び通信インタフェース２７がある。
【００２４】
ＨＤＤ２３は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。ＨＤＤ２３は、コンピュータ２０の二次記憶装置として使用される。ＨＤＤ２３には、ＯＳのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２５】
グラフィック処理装置２４には、モニタ２４ａが接続されている。グラフィック処理装置２４は、ＣＰＵ２１からの命令に従って、画像をモニタ２４ａの画面に表示させる。モニタ２４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた液晶表示装置などが挙げられる。
【００２６】
入力インタフェース２５には、キーボード２５ａとマウス２５ｂとが接続されている。入力インタフェース２５は、キーボード２５ａやマウス２５ｂから送られてくる信号をＣＰＵ２１に送信する。なお、マウス２５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどが挙げられる。
【００２７】
光学ドライブ装置２６は、レーザ光などを利用して、光ディスク２６ａに記録されたデータの読み取りを行う。光ディスク２６ａは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク２６ａには、Ｂｌｕ−ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などが挙げられる。
【００２８】
通信インタフェース２７は、ネットワーク２７ａに接続されている。通信インタフェース２７は、ネットワーク２７ａを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【００２９】
以上のようなハードウェアを有する１または複数のコンピュータ２０によって、本実施の形態の処理機能を実現することができる。
図５は、階層設計の一例の流れを示すフローチャートである。
【００３０】
図４に示したようなコンピュータ２０が、設計者からの指示により、たとえば、ＨＤＤ２３に格納された各種ＥＤＡ（Electronic Design Automation）ツールを実行することによって、図５に示すような処理が実行される。
【００３１】
論理合成によって得られたネットリスト３０に対して、設計者の指示のもと、または自動的にコンピュータ２０が特定の機能部分の回路ブロックごとに分割を行う（ステップＳ５）。図５では、ネットリスト３０が、トップ階層のネットリスト３１と、１つの下位階層のネットリスト３２に分割された例が示されているが、複数の下位階層のネットリストに分割するようにしてもよい。
【００３２】
続いて、下位階層のテスト設計（ステップＳ１０）と、トップ階層のテスト設計（ステップＳ２０）が行われる。
ここでは、一例として、以下のような、半導体集積回路を階層設計するものとする。
【００３３】
図６は、本実施の形態の半導体集積回路の一例を示す図である。
なお、以下では、試験対象の機能マクロとしてＲＡＭを示すが、これに限定されない。
図６に示す半導体集積回路４０において、下位階層の回路ブロックは、試験対象となるＲＡＭ４１，４２，４３、ラッパー回路４４，４５，４６、制御部４７，４８、階層制御回路４９を有している。
【００３４】
ラッパー回路４４〜４６と制御部４７，４８は、図１に示した試験回路モデル４，５の機能を有している。
ラッパー回路４４〜４６は、ＲＡＭ４１〜４３に対応して設けられ、あるテストパターンに対するＲＡＭ４１〜４３からの読み出し値と、そのテストパターンに対するＲＡＭ４１〜４３からの期待値（制御部４７，４８から供給される）との比較などを行う。
【００３５】
制御部４７，４８は、入力される試験データに基づき、ラッパー回路４４，４５，４６に供給する期待値の生成などを行い、ＲＡＭ４１〜４３の試験を制御する。
階層制御回路４９は、セレクタ４９ａ、フリップフロップ４９ｂ，４９ｃを有している。
【００３６】
セレクタ４９ａは、図１に示した選択部６の機能を有し、試験回路の機能をもつラッパー回路４４〜４６及び制御部４７，４８を経由した試験データか、これらを経由しない試験データの何れかを選択して出力する。フリップフロップ４９ｂは、端子６１から入力されるクロック信号に同期して選択信号をセレクタ４９ａに供給する。フリップフロップ４９ｃは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【００３７】
トップ階層の回路ブロックは、上記の下位階層の回路ブロックを含むとともに、試験対象となるＲＡＭ５０，５１，５２、ラッパー回路５３，５４，５５、制御部５６，５７、階層制御回路５８を有している。
【００３８】
ラッパー回路５３〜５５と制御部５６，５７は、図１に示した試験回路モデル９，１０の機能を有している。
ラッパー回路５３〜５５は、ＲＡＭ５０〜５２に対応して設けられ、あるテストパターンに対するＲＡＭ５０〜５２からの読み出し値と、そのテストパターンに対するＲＡＭ５０〜５２からの期待値（制御部５６，５７から供給される）との比較などを行う。
【００３９】
制御部５６，５７は、端子５９から入力される試験データに基づき、ラッパー回路５３，５４，５５に供給する期待値の生成などを行い、ＲＡＭ５０〜５２の試験を制御する。
階層制御回路５８は、セレクタ５８ａ、フリップフロップ５８ｂ，５８ｃを有している。
【００４０】
セレクタ５８ａは、図１に示した選択部１１の機能を有し、試験回路の機能をもつラッパー回路５３〜５５及び制御部５６，５７を経由した試験データか、これらを経由しない試験データの何れかを選択して出力する。
【００４１】
フリップフロップ５８ｂは、セレクタ５８ａに上記の何れの試験データを選択させるか指定するための端子６０から入力される選択信号を保持し、端子６１から入力されるクロック信号に同期して選択信号をセレクタ５８ａに供給する。フリップフロップ５８ｃは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【００４２】
また、トップ階層と下位階層で、試験回路の機能を有するラッパー回路４４〜４６，５３〜５５と、制御部４７，４８，５６，５７は、各階層内でシリアル接続されており、階層間でもセレクタ５８ａとフリップフロップ５８ｃを介してシリアル接続されている。
【００４３】
これにより、各試験回路へ、スター配線で試験データを送出する場合よりも配線の混雑度が低減される。
上記のような半導体集積回路４０を階層設計する場合、図５のフローチャートのステップＳ１０の下位階層のテスト設計では、まず、テスト合成が行われ、図６に示したような試験回路の機能を有した下位階層の回路ブロックが生成される（ステップＳ１１）。また、このとき、コンピュータ２０は、トップ階層での論理検証の際に用いる下位階層の回路ブロックとして、以下のような検証用モデル３３を生成する。
【００４４】
図７は、検証用モデルの一例を示す図である。
ここでは、図６に示した下位階層の回路ブロックの、ＲＡＭ４１〜４３、ラッパー回路４４〜４６、制御部４７，４８を削除して、階層制御回路４９を残した検証用モデル３３の例を示している。
【００４５】
なお、検証用モデル３３は、階層制御回路４９以外の全ての配線、論理などを削除するようにしてもよい。
下位階層のテスト設計では、次に、ＥＤＡツールの１つであるＡＴＰＧ（Automatic Test Pattern generator）によって、図６に示した下位階層の回路ブロックに対するテストパターンが自動生成される（ステップＳ１２）。
【００４６】
そして、コンピュータ２０は、生成されたテストパターンを用いて論理検証（仮配置シミュレーション）を行う（ステップＳ１３）。
図８は、下位階層の論理検証時の回路ブロックの一例を示す図である。
【００４７】
下位階層の論理検証時には、コンピュータ２０は、セレクタ４９ａが、ラッパー回路４４〜４６及び制御部４７，４８を経由した試験データを選択するような選択信号をフリップフロップ４９ｂに設定する。これにより、ＲＡＭ４１〜４３の試験結果がセレクタ４９ａから出力される。
【００４８】
一方、ステップＳ２０のトップ階層のテスト設計でもテスト合成が行われ、図６に示したような試験回路の機能を有したトップ階層の回路ブロックが生成される（ステップＳ２１）。このとき、下位階層の回路ブロックはブランク状態で生成される。
【００４９】
続いて、ＡＴＰＧによって、トップ階層の回路ブロックに対するテストパターンが自動生成される（ステップＳ２２）。
そして、コンピュータ２０は、生成されたテストパターンを用いてトップ階層の論理検証（仮配置シミュレーション）を行う（ステップＳ２３）。このとき、論理検証済の下位階層の検証用モデル３３が組み込まれて、論理検証が行われる。
【００５０】
図９は、下位階層の検証用モデルが組み込まれたトップ階層の論理検証モデルの一例を示す図である。
図９では、トップ階層に、図７に示した下位階層の検証用モデル３３を組み込んだ例が示されている。
【００５１】
トップ階層の論理検証時には、コンピュータ２０は、セレクタ５８ａが、ラッパー回路５３〜５５及び制御部５６，５７を経由した試験データを選択するような選択信号をフリップフロップ５８ｂに設定する。これにより、ＲＡＭ５０〜５２の試験結果がセレクタ５８ａから出力される。
【００５２】
また、コンピュータ２０は、組み込まれた検証用モデル３３の階層制御回路４９のフリップフロップ４９ｂに対しては、トップ階層のフリップフロップ５８ｃから出力される試験データ（ＲＡＭ５０〜５２の試験結果）を選択するような選択信号を設定する。これにより、トップ階層のＲＡＭ５０〜５２の試験結果がセレクタ４９ａから出力され、フリップフロップ４９ｃを介して、端子６２から出力される。
【００５３】
このようなトップ階層での論理検証では、図９に示すような階層間のパスｐ１や、試験結果が出力される端子６２に直接接続されるパスｐ２の接続状態などの検証も行うことができる。
【００５４】
以上のような、テスト設計が終わると、下位階層及びトップ階層のテスト設計で生成されたネットリスト３４，３５を用いて、下位階層、トップ階層それぞれのレイアウトが行われる（ステップＳ３０，Ｓ４０）。
【００５５】
レイアウトでは、各階層の回路ブロックごとに、フロアプラン（ステップＳ３１，Ｓ４１）、配置配線（ステップＳ３２，Ｓ４２）、最適化（ステップＳ３３，Ｓ４３）が行われ、ネットリスト３６，３７が生成される。
【００５６】
その後、ＡＴＰＧによる、それぞれの階層の回路ブロックに対するテストパターンの生成が行われ（ステップＳ５０，Ｓ６０）、論理検証（実配線シミュレーション）が行われる（ステップＳ５１，Ｓ６１）。
【００５７】
トップ階層での論理検証では、たとえば、ステップＳ２３での処理と同様に、論理数が削減された検証用モデル３３が適用される。
以上のような階層設計によれば、図７、図９に検証用モデル３３として示したように、トップ階層の論理検証時に組み込む論理検証済の下位階層の回路ブロックの論理数を削減している。トップ階層の論理検証時、セレクタ４９ａは、トップ階層からの試験データを選択するので、下位階層の回路ブロックから、ＲＡＭ４１〜４３、ラッパー回路４４〜４６、制御部４７，４８を削除しても、トップ階層の検証結果に影響を与えない。
【００５８】
論理数を削減することで、ステップＳ２３やステップＳ６１のトップ階層の論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ２０の使用メモリ容量も削減することができる。
【００５９】
ところで、たとえば、テスト設計後に、ある階層の回路ブロックにおいて、ＲＡＭなどの機能マクロを増加または減らしたいという要求がでてくる場合がある。
図１０は、ＲＡＭが増加した場合の半導体集積回路の一例を示す図である。
【００６０】
図１０では、図６に示した下位階層の回路ブロックにおいて、たとえば設計変更により、機能マクロであるＲＡＭが１つ増加した半導体集積回路４０ａが示されている。図６と同一の要素については同一符号を付している。下位階層の回路ブロックでは、増加したＲＡＭ７０に対応してラッパー回路７１、制御部７２が設けられている。
【００６１】
このように、機能マクロが増加または減少した場合でも、本実施の形態によれば、トップ階層の論理検証の値に影響を与えないので、トップ階層のテスト設計をやり直さなくて済み、回路設計の時間が増加することを防止でき、効率的な回路設計が行える。
【００６２】
以下、図６に示した半導体集積回路４０の各部の構成をより詳細に説明する。
（制御部とラッパー回路の詳細）
図１１は、制御部とラッパー回路の一例を示す図である。
【００６３】
図１１では、図６に示した制御部５６、ラッパー回路５３，５４の一例を示している。
ラッパー回路５３，５４は、期待値比較部５３ａ，５４ａ、フリップフロップ５３ｂ，５４ｂ、セレクタ５３ｃ，５４ｃを有している。
【００６４】
制御部５６は、制御回路５６ａ、パターン生成部５６ｂ、フリップフロップ５６ｃ、セレクタ５６ｄを有している。
制御回路５６ａと、２つのラッパー回路５３，５４の期待値比較部５３ａ，５４ａは、図１１に示すようにセレクタ５３ｃ，５４ｃを介してシリアル接続されており、スキャンパス構造をもっている。
【００６５】
制御回路５６ａは、入力される試験データをもとに、パターン生成部５６ｂに、あるテストパターンでＲＡＭ５０，５１から出力されると期待される値（期待値）を生成させ、期待値比較部５３ａに供給させる。なお、制御回路５６ａは、図示を省略しているが、セレクタ５３ｃ，５４ｃ，５６ｃへ選択信号を供給し、どのＲＡＭ５０，５１を試験するのか、ＲＡＭ５０，５１の試験せずに試験データをスルーさせるのかを選択する。
【００６６】
パターン生成部５６ｂは、制御回路５６ａから送出される情報をもとにテストパターンや期待値を生成する。
フリップフロップ５６ｃは、入力される試験データをクロック信号に同期してセレクタ５６ｄに供給する。セレクタ５６ｄは、ラッパー回路５４の出力信号か、フリップフロップ５６ｃに保持された試験データの何れかを、制御回路５６ａからの選択信号に応じて選択して出力する。
【００６７】
ラッパー回路５３の期待値比較部５３ａは、パターン生成部５６ｂから送出される期待値と、テストパターンに応じて読み出されるＲＡＭ５０からのリードデータとを比較し、比較結果を出力する。
【００６８】
フリップフロップ５３ｂは、クロック信号に同期して制御回路５６ａからの信号を保持し、セレクタ５３ｃに供給する。セレクタ５３ｃは、フリップフロップ５３ｂの出力信号か、期待値比較部５３ａでの比較結果の何れかを制御回路５６ａからの選択信号に応じて選択して出力する。
【００６９】
ラッパー回路５４の期待値比較部５４ａは、パターン生成部５６ｂから送出される期待値と、テストパターンに応じて読み出されるＲＡＭ５１からのリードデータとを比較し、比較結果を出力する。
【００７０】
フリップフロップ５４ｂは、クロック信号に同期してセレクタ５３ｃからの出力信号を保持し、セレクタ５４ｃに供給する。セレクタ５４ｃは、フリップフロップ５４ｂの出力信号か、期待値比較部５４ａでの比較結果の何れかを制御回路５６ａからの選択信号に応じて選択して出力し、制御部５６のセレクタ５６ｄに供給する。
【００７１】
なお、図１１では、各部に供給されるクロック信号については図示を省略している。また、制御回路５６ａには、ＲＡＭ５０に指定するアドレスを生成するアドレス生成部などが含まれるが図示を省略している。また、ラッパー回路５３，５４には、ＲＡＭ５０，５１に供給するデータ（テストパターンや通常動作時のライトデータやライトイネーブルなど）を選択するデータ選択部などが含まれるが図示を省略している。
【００７２】
（複数本のスキャンパスを有する半導体集積回路の一例）
ところで、前述の図６の例では、簡単のため、制御部４７，４８，５６，５７、ラッパー回路４４〜４６，５３〜５５のシリアル接続によるパス（スキャンパス）の本数を１本としているが、複数あってもよい。
【００７３】
図１２は、２本のスキャンパスを有する半導体集積回路の一例を示す図である。
図１２では、図６などで示したＲＡＭ、制御部及びラッパー回路を１つの回路ブロック（ｔｅｓｔ／ＲＡＭ）で示している。
【００７４】
半導体集積回路７０において、下位階層の回路ブロックはｔｅｓｔ／ＲＡＭ７１，７２，７３，７４，７５，７６，７７，７８，７９，８０，８１と、ＡＮＤ回路８２，８３，８４，８５，８６，８７と、ＯＲ回路８８，８９と、階層制御回路９０を有している。また、下位階層の回路ブロックの境界には端子９１，９２，９３，９４，９５，９６，９７，９８，９９が設けられている。
【００７５】
図１２に示す例では、ｔｅｓｔ／ＲＡＭ７１〜８１のうち、ｔｅｓｔ／ＲＡＭ７１と、ｔｅｓｔＲＡＭ７２〜７７のグループと、ｔｅｓｔ／ＲＡＭ７８〜８１のグループは、それぞれ異なるクロックドメイン、すなわち、異なるクロックで動作するものとしている。
【００７６】
ｔｅｓｔ／ＲＡＭ７２〜７４と、ｔｅｓｔ／ＲＡＭ７５〜７７と、ｔｅｓｔ／ＲＡＭ７８，７９と、ｔｅｓｔ／ＲＡＭ８０，８１はそれぞれシリアルに接続されている。
ＡＮＤ回路８２は、端子９１から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ７１からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路８３は、端子９１から入力されるクロックドメイン選択信号と、端子９４から入力される試験データとのＡＮＤ論理を出力する。
【００７７】
ＡＮＤ回路８４は、端子９２から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ７２〜７４の最後段のｔｅｓｔ／ＲＡＭ７４からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路８５は、端子９２から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ７５〜７７の最後段のｔｅｓｔ／ＲＡＭ７７からの出力信号とのＡＮＤ論理を出力する。
【００７８】
ＡＮＤ回路８６は、端子９３から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ７８，７９の最後段のｔｅｓｔ／ＲＡＭ７９からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路８７は、端子９３から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ８０，８１の最後段のｔｅｓｔ／ＲＡＭ８１からの出力信号とのＡＮＤ論理を出力する。
【００７９】
ＯＲ回路８８は、ＡＮＤ回路８２，８４，８６のＯＲ論理を出力する。ＯＲ回路８９は、ＡＮＤ回路８３，８５，８７のＯＲ論理を出力する。
階層制御回路９０は、セレクタ９０ａ，９０ｂ、フリップフロップ９０ｃ，９０ｄ，９０ｅを有している。
【００８０】
セレクタ９０ａは、端子９６からフリップフロップ９０ｃを介して供給される選択信号に応じてＯＲ回路８９からの出力信号か、端子９４から供給される試験データの何れかを選択して出力する。セレクタ９０ｂは、端子９６からフリップフロップ９０ｃを介して供給される選択信号に応じてＯＲ回路８８からの出力信号か、端子９５から供給される試験データの何れかを選択して出力する。
【００８１】
フリップフロップ９０ｃは、端子９６から供給される選択信号をクロック信号に同期して取り込み、セレクタ９０ａ，９０ｂに供給するとともに、端子９９から出力する。端子９９は別の下位階層の回路ブロックがある場合には、その回路ブロックに接続されるが、図１２に示す例ではオープンとしている。
【００８２】
フリップフロップ９０ｄは、クロック信号に同期してセレクタ９０ａからの出力信号を取り込み、端子９７から出力する。フリップフロップ９０ｄは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ９０ｅは、クロック信号に同期してセレクタ９０ｂからの出力信号を取り込み、端子９８から出力する。フリップフロップ９０ｅは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【００８３】
一方、トップ階層の回路ブロックは、ｔｅｓｔ／ＲＡＭ１００，１０１，１０２，１０３，１０４，１０５，１０６，１０７と、ＡＮＤ回路１０８，１０９，１１０，１１１と、ＯＲ回路１１２，１１３と、階層制御回路１１４を有している。さらに、トップ階層の回路ブロックは、ＴＡＰＣ（Test Access Port Controller）１１５とＭＴＣ（Memory Test Controller）１１６を有している。また、トップ階層の回路ブロックの境界には端子１１７，１１８，１１９，１２０，１２１，１２２，１２３が設けられている。
【００８４】
図１２に示す例では、ｔｅｓｔ／ＲＡＭ１００〜１０７のうち、ｔｅｓｔ／ＲＡＭ１００〜１０４のグループと、ｔｅｓｔ／ＲＡＭ１０５〜１０７のグループは、それぞれ異なるクロックドメイン、すなわち、異なるクロックで動作するものとしている。
【００８５】
ｔｅｓｔ／ＲＡＭ１００〜１０２と、ｔｅｓｔ／ＲＡＭ１０３〜１０４と、ｔｅｓｔ／ＲＡＭ１０５，１０６はそれぞれシリアルに接続されている。
ＡＮＤ回路１０８は、ＭＴＣ１１６から供給されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ１００〜１０２の最後段のｔｅｓｔ／ＲＡＭ１０２からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１０９は、ＭＴＣ１１６から供給されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ１０３，１０４の最後段のｔｅｓｔ／ＲＡＭ１０４からの出力信号とのＡＮＤ論理を出力する。
【００８６】
ＡＮＤ回路１１０は、ＭＴＣ１１６から供給されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ１０５，１０６の最後段のｔｅｓｔ／ＲＡＭ１０６からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１１１は、ＭＴＣ１１６から供給されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１０７からの出力信号とのＡＮＤ論理を出力する。
【００８７】
なお、ＭＴＣ１１６から供給されるクロックドメイン選択信号は、ＡＮＤ回路１０８，１０９で共通であり、ＡＮＤ回路１１０，１１１で共通である。
ＯＲ回路１１２は、ＡＮＤ回路１０８，１１０のＯＲ論理を出力する。ＯＲ回路１１３は、ＡＮＤ回路１０９，１１１のＯＲ論理を出力する。
【００８８】
階層制御回路１１４は、セレクタ１１４ａ，１１４ｂ、フリップフロップ１１４ｃ，１１４ｄ，１１４ｅを有している。
セレクタ１１４ａは、端子１１７からフリップフロップ１１４ｃを介して供給される選択信号に応じてＯＲ回路１１３からの出力信号か、端子１２０から供給される試験データの何れかを選択して出力する。セレクタ１１４ｂは、端子１１７からフリップフロップ１１４ｃを介して供給される選択信号に応じてＯＲ回路１１２からの出力信号か、端子１２１から供給される試験データの何れかを選択して出力する。
【００８９】
フリップフロップ１１４ｃは、端子１１７から供給される選択信号を、端子１１９から供給されるクロック信号に同期して取り込み、セレクタ１１４ａ，１１４ｂに供給するとともに、下位階層の回路ブロックの端子９６に供給する。
【００９０】
フリップフロップ１１４ｄは、端子１１９から供給されるクロック信号に同期してセレクタ１１４ａからの出力信号を取り込み、下位階層の回路ブロックの端子９４に供給する。フリップフロップ１１４ｄは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ１１４ｅは、端子１１９から供給されるクロック信号に同期してセレクタ１１４ｂからの出力信号を取り込み、下位階層の回路ブロックの端子９５に供給する。フリップフロップ１１４ｅは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【００９１】
ＴＡＰＣ１１５は、端子１１７〜１１９から入力される信号をもとに、半導体集積回路７０の試験を制御する。
ＭＴＣ１１６は、ＴＡＰＣ１１５の制御のもと、３種のクロックドメインに対応した３種のクロックドメイン選択信号を出力する。図１２に示す例では、あるクロックドメインに対応したクロックドメイン選択信号が“１”のときそのクロックドメインが選択され、“０”のときは選択されない。
【００９２】
端子１１７には、セレクタ９０ａ，９０ｂ，１１４ａ，１１４ｂへの選択信号が入力される。端子１１７は、ＴＤＩ（Test Data Input）と呼ばれることもある。端子１１８には、ＴＡＰＣ１１５へのテストモード選択信号が入力される。端子１１８は、ＴＭＳ（Test Mode Select input）と呼ばれることもある。端子１１９には、クロック信号が入力される。端子１１９は、ＴＣＫ（Test Clock Input）と呼ばれることもある。端子１２０には、１本目のスキャンパス用の試験データが入力される。端子１２１には、２本目のスキャンパス用の試験データが入力される。
【００９３】
半導体集積回路７０の製造後の試験において、端子１１７〜１２１には、たとえば、試験装置（テスタ）が接続され、上記各種の信号が入力される。半導体集積回路７０のコンピュータ２０上でのテスト設計の際には、たとえば、これらの端子１１７〜１２１に上記各種の信号が設定され、論理検証が行われる。
【００９４】
端子１２２は、下位階層の回路ブロックの端子９８に接続され、ここから１本目のスキャンパスによる試験結果が出力される。端子１２３は、下位階層の回路ブロックの端子９８に接続され、ここから２本目のスキャンパスによる試験結果が出力される。
【００９５】
上記のような半導体集積回路７０の製造後において、同じクロックドメインのｔｅｓｔ／ＲＡＭ７２〜７７の試験を行う場合について説明する。
ＭＴＣ１１６は、ＴＡＰＣ１１５の制御のもと、ＡＮＤ回路８４，８５に供給するクロックドメイン選択信号を“１”として、その他のＡＮＤ回路８２，８３，８６，８７，１０８〜１１１に供給するクロックドメイン選択信号を“０”とする。
【００９６】
また、端子１１７には、セレクタ１１４ａ，１１４ｂが端子１２０，１２１から入力される試験データを選択し、セレクタ９０ａ，９０ｂがＯＲ回路８８，８９の出力信号を選択するような選択信号が供給される。たとえば、選択信号が“１”の場合は自身の階層の試験結果を選択し、選択信号が“０”の場合は、自身の階層の試験結果を選択しない、とした場合、フリップフロップ１１４ｃには“０”、フリップフロップ９０ｃには、“１”が設定される。
【００９７】
これにより、端子１２０，１２１から入力される試験データは、トップ階層の階層制御回路１１４を介して、下位階層の端子９４，９５に入力される。そして、シリアル接続されるｔｅｓｔ／ＲＡＭ７２〜７４と、ｔｅｓｔ／ＲＡＭ７５〜７７で、各試験データによる試験が行われ、その結果がＡＮＤ回路８４，８５に入力される。
【００９８】
ＡＮＤ回路８４，８５に入力されるクロックドメイン選択信号は、“１”となっているので、ＡＮＤ回路８４，８５からは、ｔｅｓｔ／ＲＡＭ７２〜７４と、ｔｅｓｔ／ＲＡＭ７５〜７７の試験結果に応じた値が出力される。
【００９９】
ＯＲ回路８８には、ＡＮＤ回路８４からの出力信号のほか、ＡＮＤ回路８２，８６からの出力信号も入力されているが、ＡＮＤ回路８２，８６の出力信号は“０”で固定されている。そのため、ＯＲ回路８８は、ＡＮＤ回路８４の出力信号に応じた値、すなわち、ｔｅｓｔ／ＲＡＭ７２〜７４の試験結果に応じた値を出力する。
【０１００】
一方、ＯＲ回路８９には、ＡＮＤ回路８５からの出力信号のほか、ＡＮＤ回路８３，８７からの出力信号も入力されているが、ＡＮＤ回路８３，８７の出力信号は“０”で固定されている。そのため、ＯＲ回路８９は、ＡＮＤ回路８５の出力信号に応じた値、すなわち、ｔｅｓｔ／ＲＡＭ７５〜７７の試験結果に応じた値を出力する。
【０１０１】
セレクタ９０ａ，９０ｂは、自身の階層の試験結果を出力するように設定されているため、セレクタ９０ａはｔｅｓｔ／ＲＡＭ７５〜７７の試験結果を出力し、セレクタ９０ｂはｔｅｓｔ／ＲＡＭ７２〜７４の試験結果を出力する。セレクタ９０ａ，９０ｂから出力される試験結果は、フリップフロップ９０ｄ，９０ｅ、端子９７，９８を経由して、端子１２２，１２３から出力される。
【０１０２】
このような半導体集積回路７０では、同じクロックドメインのｔｅｓｔ／ＲＡＭをシリアル接続することで、配線が混雑してレイアウトの妨げとなることを防止できる。また、スキャンパスを、各クロックドメインで２つに分割しているため、１本のチェーン長が長くなることを防止できる。なお、分割数は、３つ以上の構造をとることも可能である。その場合は、さらに１本のチェーン長が長くなることを防止できる。
【０１０３】
以上のような半導体集積回路７０をコンピュータ２０上で設計するには、図５で示したような階層設計が行われる。階層設計における下位階層の回路ブロックのテスト設計時には、図１２の端子９１〜９６に各種信号が設定され、上記のような試験が行われる。
【０１０４】
トップ階層のテスト設計における論理検証時には、たとえば、以下のような検証用モデルが適用される。
図１３は、トップ階層の論理検証時の論理検証モデルの一例を示す図である。
【０１０５】
ここでは、図１２に示した下位階層の回路ブロックの、ｔｅｓｔ／ＲＡＭ７１〜８１を削除した検証用モデル１３０をトップ階層の回路ブロックに組み込んだ例を示している。
なお、検証用モデル１３０は、階層制御回路９０以外の全ての配線、論理などを削除するようにしてもよい。
【０１０６】
トップ階層の回路ブロックの論理検証において、同じクロックドメインのｔｅｓｔ／ＲＡＭ１００〜１０４の試験を行う場合について説明する。
ＭＴＣ１１６は、ＴＡＰＣ１１５の制御のもと、ＡＮＤ回路１０８，１０９に供給するクロックドメイン選択信号を“１”として、ＡＮＤ回路１１０，１１１に供給するクロックドメイン選択信号を“０”とする。
【０１０７】
また、端子１１７に、セレクタ１１４ａ，１１４ｂがＯＲ回路１１２，１１３の出力信号を選択し、セレクタ９０ａ，９０ｂが端子９４，９５から入力される試験データを選択するような選択信号を設定する。たとえば、選択信号が“１”の場合は自身の階層の試験結果を選択し、選択信号が“０”の場合は、自身の階層の試験結果を選択しない、とした場合、フリップフロップ１１４ｃには“１”、フリップフロップ９０ｃには、“０”が設定される。
【０１０８】
端子１２０，１２１に試験データが設定されると、シリアル接続されるｔｅｓｔ／ＲＡＭ１００〜１０２と、ｔｅｓｔ／ＲＡＭ１０３，１０４で、各試験データによる試験が行われ、その結果がＡＮＤ回路１０８，１０９に入力される。
【０１０９】
ＡＮＤ回路１０８，１０９に入力されるクロックドメイン選択信号は、“１”となっているので、ＡＮＤ回路１０８，１０９からは、ｔｅｓｔ／ＲＡＭ１００〜１０２と、ｔｅｓｔ／ＲＡＭ１０３，１０４の試験結果に応じた値が出力される。
【０１１０】
ＯＲ回路１１２には、ＡＮＤ回路１０８からの出力信号のほか、ＡＮＤ回路１１０からの出力信号も入力されているが、ＡＮＤ回路１１０の出力信号は“０”で固定されている。そのため、ＯＲ回路１１２は、ＡＮＤ回路１０８の出力信号に応じた値、すなわち、ｔｅｓｔ／ＲＡＭ１００〜１０２の試験結果に応じた値を出力する。
【０１１１】
一方、ＯＲ回路１１３には、ＡＮＤ回路１０９からの出力信号のほか、ＡＮＤ回路１１１からの出力信号も入力されているが、ＡＮＤ回路１１１の出力信号は“０”で固定されている。そのため、ＯＲ回路１１３は、ＡＮＤ回路１０９の出力信号に応じた値、すなわち、ｔｅｓｔ／ＲＡＭ１０３，１０４の試験結果に応じた値を出力する。
【０１１２】
セレクタ１１４ａ，１１４ｂは、自身の階層の試験結果を出力するように設定されているため、セレクタ１１４ａはｔｅｓｔ／ＲＡＭ１０３，１０４の試験結果を出力し、セレクタ１１４ｂはｔｅｓｔ／ＲＡＭ１００〜１０２の試験結果を出力する。セレクタ１１４ａ，１１４ｂから出力される試験結果は、フリップフロップ１１４ｄ，１１４ｅを介して下位階層の検証用モデル１３０の端子９４，９５に入力される。
【０１１３】
下位階層の検証用モデル１３０の階層制御回路９０のセレクタ９０ａ，９０ｂは、端子９４，９５からの試験データを選択するように設定されている。そのため、ｔｅｓｔ／ＲＡＭ１０３，１０４、ｔｅｓｔ／ＲＡＭ１００〜１０２の試験結果はそれぞれ、フリップフロップ９０ｄ，９０ｅと、端子９７，９８を介して、端子１２２，１２３から出力される。
【０１１４】
以上のように、トップ階層の検証の際に、下位階層の回路ブロックの論理数を削減することで、トップ階層の論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ２０の使用メモリ容量も削減することができる。
【０１１５】
（変形例１）
図１４は、下位階層の回路ブロックが更に下位階層の回路ブロックを含む場合の半導体集積回路の一例を示す図である。
【０１１６】
図１４の半導体集積回路７０ａにおいて、図１２、図１３に示したトップ階層の回路ブロックについては図示を省略している。また、図１２に示した下位階層の回路ブロックの要素に対応する要素については同一符号を付している。
【０１１７】
半導体集積回路７０ａにおいて、図１２に示した下位階層の回路ブロック内に設けられる下位階層の回路ブロックは、ｔｅｓｔ／ＲＡＭ１４１，１４２，１４３，１４４，１４５と、ＡＮＤ回路１４６，１４７，１４８，１４９と、ＯＲ回路１５０，１５１と、階層制御回路１５２を有している。この階層の回路ブロックの境界には端子１５３，１５４，１５５，１５６，１５７，１５８，１５９，１６０が設けられている。
【０１１８】
図１４に示す例では、ｔｅｓｔ／ＲＡＭ１４１〜１４５のうち、ｔｅｓｔ／ＲＡＭ１４１，１４２のグループは、ｔｅｓｔ／ＲＡＭ７１と同じクロックドメインである。ｔｅｓｔ／ＲＡＭ１４３〜１４５のグループは、ｔｅｓｔ／ＲＡＭ７２〜７７と同じクロックドメインである。
【０１１９】
ＡＮＤ回路１４６は、端子１５３から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１４１からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１４７は、端子１５３から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１４２からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１４８は、端子１５４から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ１４３，１４４の最後段のｔｅｓｔ／ＲＡＭ１４４からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１４９は、端子１５４から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１４５からの出力信号とのＡＮＤ論理を出力する。
【０１２０】
ＯＲ回路１５０は、ＡＮＤ回路１４６，１４８のＯＲ論理を出力する。ＯＲ回路１５１は、ＡＮＤ回路１４７，１４９のＯＲ論理を出力する。
階層制御回路１５２は、セレクタ１５２ａ，１５２ｂ、フリップフロップ１５２ｃ，１５２ｄ，１５２ｅを有している。
【０１２１】
セレクタ１５２ａは、端子１５７からフリップフロップ１５２ｃを介して供給される選択信号に応じてＯＲ回路１５１からの出力信号か、端子１５５から供給される試験データの何れかを選択して出力する。セレクタ１５２ｂは、端子１５７からフリップフロップ１５２ｃを介して供給される選択信号に応じてＯＲ回路１５０からの出力信号か、端子１５６から供給される試験データの何れかを選択して出力する。
【０１２２】
フリップフロップ１５２ｃは、端子１５７から供給される選択信号を、クロック信号に同期して取り込み、セレクタ１５２ａ，１５２ｂに供給するとともに、端子１５８に供給する。なお、端子１５８は上位の下位階層の回路ブロックの端子１６１に接続されている。
【０１２３】
フリップフロップ１５２ｄは、クロック信号に同期してセレクタ１５２ａからの出力信号を取り込み、端子１６０に供給する。フリップフロップ１５２ｄは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ１５２ｅは、クロック信号に同期してセレクタ１５２ｂからの出力信号を取り込み、端子１５９に供給する。フリップフロップ１５２ｅは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【０１２４】
なお、端子１５９，１６０は、それぞれ上位の下位階層の回路ブロックの端子１６２，１６３に接続されている。ここでは図示を省略しているが、端子１６２，１６３は、それぞれ、図１２に示したトップ階層の回路ブロックの端子１２２，１２３に接続されている。
【０１２５】
このような半導体集積回路７０ａの製造後の試験において、ｔｅｓｔ／ＲＡＭ７２〜７７，１４３〜１４５のクロックドメインの試験を行う場合について説明する。
ｔｅｓｔ／ＲＡＭ７２〜７７の試験時の動作については前述しているので省略する。
【０１２６】
ｔｅｓｔ／ＲＡＭ７２〜７７を介した試験データは、セレクタ９０ａ，９０ｂ、フリップフロップ９０ｄ，９０ｅを介して、端子１５５，１５６に入力される。
ｔｅｓｔ／ＲＡＭ１４３〜１４５のクロックドメインの試験を行う場合、ＡＮＤ回路１４６，１４７の出力信号は“０”に固定されるため、ＯＲ回路１５０，１５１からは、ＡＮＤ回路１４８，１４９の出力信号に応じた値が出力される。すなわち、ＯＲ回路１５０，１５１からは、ｔｅｓｔ／ＲＡＭ１４３〜１４５での試験結果に応じた値が出力される。
【０１２７】
ｔｅｓｔ／ＲＡＭ１４３〜１４５における試験を行う場合、セレクタ１５２ａ，１５２ｂは、この階層の試験結果を出力するように設定されるので、セレクタ１５２ａからは、ｔｅｓｔ／ＲＡＭ１４５での試験結果に応じた値が出力される。また、セレクタ１５２ｂからは、ｔｅｓｔ／ＲＡＭ１４３，１４４での試験結果に応じた値が出力される。
【０１２８】
セレクタ１５２ａ，１５２ｂから出力される試験結果は、それぞれフリップフロップ１５２ｄ，１５２ｅ，端子１５９，１６０，１６２，１６３を介して、図１２に示したトップ階層の端子１２２，１２３から出力される。
【０１２９】
このような半導体集積回路７０ａを、たとえば、コンピュータ２０で設計する際には、図１４の上位の下位階層の回路ブロックと、その回路ブロックに含まれる下位の階層の回路ブロックを別々に設計することができる。
【０１３０】
また、上位の下位階層の回路ブロックの論理検証を行う際、この階層を前述のトップ階層とみて、この階層に組み込まれる下位階層の回路ブロックにおいて、ｔｅｓｔ／ＲＡＭ１４１〜１４５などを削除することによって論理数を削減してもよい。これにより、論理検証時のシミュレーション時間を短縮することができ、短時間で効率的な回路設計が行えるようになる。また、コンピュータ２０の使用メモリ容量も削減することができる。
【０１３１】
（変形例２）
図１５は、パワードメインが異なる回路ブロックが存在する場合の半導体集積回路の一例を示す図である。
【０１３２】
半導体集積回路７０ｂは、パワードメインＰＤ１とパワードメインＰＤ２の下位階層の回路ブロックが存在し、パワードメインＰＤ１の下位階層の回路ブロックと、パワードメインＰＤ２の下位階層の回路ブロックでは、異なる電源制御が行われる。トップ階層の回路ブロックについては図示を省略しているが、パワードメインＰＤ１としており、パワードメインＰＤ１の下位階層の回路ブロックとの間で、図１２に示したようなスキャンパスが形成されている。また、図１５において、図１２に示した下位階層の回路ブロックの要素に対応する要素については同一符号を付している。
【０１３３】
パワードメインＰＤ２の下位階層の回路ブロックは、ｔｅｓｔ／ＲＡＭ１７１，１７２，１７３，１７４，１７５と、ＡＮＤ回路１７６，１７７，１７８，１７９と、ＯＲ回路１８０，１８１と、階層制御回路１８２を有している。この階層の回路ブロックの境界には端子１８３，１８４，１８５，１８６，１８７，１８８，１８９，１９０，１９１が設けられている。
【０１３４】
図１５に示す例では、ｔｅｓｔ／ＲＡＭ１７１〜１７５のうち、ｔｅｓｔ／ＲＡＭ１７１，１７２のグループが同じクロックドメインであり、ｔｅｓｔ／ＲＡＭ１７３〜１７５のグループが同じクロックドメインである。
【０１３５】
ＡＮＤ回路１７６は、端子１８３から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１７１からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１７７は、端子１８３から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１７２からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１７８は、端子１８４から入力されるクロックドメイン選択信号と、シリアルに接続されたｔｅｓｔ／ＲＡＭ１７３，１７４の最後段のｔｅｓｔ／ＲＡＭ１７４からの出力信号とのＡＮＤ論理を出力する。ＡＮＤ回路１７９は、端子１８４から入力されるクロックドメイン選択信号と、ｔｅｓｔ／ＲＡＭ１７５からの出力信号とのＡＮＤ論理を出力する。
【０１３６】
ＯＲ回路１８０は、ＡＮＤ回路１７６，１７８のＯＲ論理を出力する。ＯＲ回路１８１は、ＡＮＤ回路１７７，１７９のＯＲ論理を出力する。
階層制御回路１８２は、セレクタ１８２ａ，１８２ｂ、フリップフロップ１８２ｃ，１８２ｄ，１８２ｅを有している。
【０１３７】
セレクタ１８２ａは、端子１８８からフリップフロップ１８２ｃを介して供給される選択信号に応じてＯＲ回路１８１からの出力信号か、端子１８５から供給される試験データの何れかを選択して出力する。セレクタ１８２ｂは、端子１８８からフリップフロップ１８２ｃを介して供給される選択信号に応じてＯＲ回路１８０からの出力信号か、端子１８６から供給される試験データの何れかを選択して出力する。
【０１３８】
端子１８５，１８６は、トップ階層の回路ブロックの端子１２０，１２１に直接接続されている。
フリップフロップ１８２ｃは、端子１８８から供給される選択信号を、端子１８７から供給されるクロック信号に同期して取り込み、セレクタ１８２ａ，１８２ｂに供給するとともに、端子１８９に供給する。なお、端子１８７は、トップ階層の回路ブロックの端子１１９に直接接続されており、端子１８８は、トップ階層の回路ブロックの端子１１７に直接接続されている。
【０１３９】
フリップフロップ１８２ｄは、クロック信号に同期してセレクタ１８２ａからの出力信号を取り込み、端子１９１に供給する。フリップフロップ１８２ｄは、階層間のタイミング調整を容易化するものであるが、なくてもよい。フリップフロップ１８２ｅは、クロック信号に同期してセレクタ１８２ｂからの出力信号を取り込み、端子１９０に供給する。フリップフロップ１８２ｅは、階層間のタイミング調整を容易化するものであるが、なくてもよい。
【０１４０】
また、このような半導体集積回路７０ｂでは、トップ階層の回路ブロックにＰＭＵ（Power Management Unit）１９２と、セレクタ１９３，１９４を有している。
ＰＭＵ１９２は、ＴＡＰＣ１１５の制御のもと、セレクタ１９３，１９４に、パワードメインＰＤ１，ＰＤ２のどちらからの試験結果を出力させるか指定する選択信号を供給する。
【０１４１】
セレクタ１９３は、パワードメインＰＤ１の下位階層の回路ブロックのフリップフロップ９０ｅからの出力信号か、パワードメインＰＤ２の下位階層の回路ブロックのフリップフロップ１８２ｅの出力信号の何れかを選択信号に応じて選択する。そして、セレクタ１９３は、選択した出力信号を端子１２２から出力する。
【０１４２】
セレクタ１９４は、パワードメインＰＤ１の下位階層の回路ブロックのフリップフロップ９０ｄからの出力信号か、パワードメインＰＤ２の下位階層の回路ブロックのフリップフロップ１８２ｄの出力信号の何れかを選択信号に応じて選択する。そして、セレクタ１９４は、選択した出力信号を端子１２３から出力する。
【０１４３】
たとえば、パワードメインＰＤ１での試験結果を出力する場合には、セレクタ１９３，１９４において、フリップフロップ９０ｄ，９０ｅからの出力信号が選択される。パワードメインＰＤ２での試験結果を出力する場合には、セレクタ１９３，１９４において、フリップフロップ１８２ｄ，１８２ｅからの出力信号が選択される。
【０１４４】
上記のような半導体集積回路７０ｂでは、異なるパワードメインの回路ブロックでは異なるスキャンパスとして、セレクタ１９３，１９４により、どのパワードメインにおける試験結果を出力するか、選択できるようにしている。
【０１４５】
このように、異なるパワードメインの回路ブロックがある場合でも、セレクタ１９３，１９４などを追加することによって、図１２に示した半導体集積回路７０と同様の効果を得ることができる。
【０１４６】
なお、本実施の形態の回路設計方法は、前述のように、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１４７】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４８】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４９】
以上、実施の形態に基づき、本発明の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
【０１５０】
（付記１）  コンピュータによって実行される回路設計方法であって、
階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設けることを特徴とする回路設計方法。
【０１５１】
（付記２）  第１の階層の回路ブロックを含む第２の階層の回路ブロックの論理検証時に、論理検証済みの前記第１の階層の回路ブロックを、前記選択部以外の論理数を削減して前記第２の階層の回路ブロックに組み込み、
論理数を削減した前記第１の階層の回路ブロックに含まれる前記選択部に前記第１の階層の前記試験回路モデルを経由しない試験データを出力させて、前記第２の階層の回路ブロックの論理検証を行うことを特徴とする付記１記載の回路設計方法。
【０１５２】
（付記３）  第１の階層の回路ブロックを含む第２の階層の回路ブロックの論理検証時に、論理検証済みの前記第１の階層の回路ブロックから、試験対象回路モデル及び前記試験回路モデルを削除して前記第２の階層の回路ブロックに組み込み、
前記試験対象回路モデル及び前記試験回路モデルを削除した前記第１の階層の回路ブロックに含まれる前記選択部に、前記試験回路モデルを経由しない試験データを出力させて、前記第２の階層の回路ブロックの論理検証を行うことを特徴とする付記１または２に記載の回路設計方法。
【０１５３】
（付記４）  同じクロックドメインの複数の試験対象回路モデルを試験する複数の前記試験回路モデルを、複数本のパスでシリアル接続することを特徴とする付記１乃至３の何れか一項に記載の回路設計方法。
【０１５４】
（付記５）  前記試験回路モデルは、スキャンパス構造をもつことを特徴とする付記１乃至４の何れか一項に記載の回路設計方法。
（付記６）  階層設計データの各階層の回路ブロックに含まれる試験回路モデルを、階層内及び階層間でシリアル接続し、
自身の階層の前記試験回路モデルを経由した試験データか、前記自身の階層の前記試験回路モデルを経由しない試験データの何れかを選択して出力する選択部を各階層に設ける処理をコンピュータに実行させるプログラム。
【０１５５】
（付記７）  階層設計された各階層の回路ブロックに設けられ、階層内及び階層間でシリアル接続された複数の試験回路と、
前記各階層の回路ブロックに設けられ、自身の階層の前記試験回路を経由した試験データか、前記自身の階層の前記試験回路を経由しない試験データの何れかを選択して出力する選択部と、
を有することを特徴とする半導体集積回路。
【０１５６】
（付記８）  同じクロックドメインの複数の試験対象回路を試験する複数の前記試験回路は、複数本のパスでシリアル接続されていることを特徴とする付記７記載の半導体集積回路。
【０１５７】
（付記９）  前記試験回路は、スキャンパス構造をもつことを特徴とする付記７または８に記載の半導体集積回路。
【符号の説明】
【０１５８】
１  コンピュータ
２，３，７，８  試験対象回路モデル
４，５，９，１０  試験回路モデル
６，１１  選択部
【図１】
0005668457.tif 000002
【図２】
0005668457.tif 000003
【図３】
0005668457.tif 000004
【図４】
0005668457.tif 000005
【図５】
0005668457.tif 000006
【図６】
0005668457.tif 000007
【図７】
0005668457.tif 000008
【図８】
0005668457.tif 000009
【図９】
0005668457.tif 000010
【図１０】
0005668457.tif 000011
【図１１】
0005668457.tif 000012
【図１２】
0005668457.tif 000013
【図１３】
0005668457.tif 000014
【図１４】
0005668457.tif 000015
【図１５】
0005668457.tif 000016