(57)【要約】【課題】スキャンテスト時において、製品を動作させるときに、その経路に故障が発生するか否かを検証すること。【解決手段】回路設計支援装置１は、回路設計支援プログラムにより、第１の格納手段２と、第２の格納手段３と、回路配置手段４として機能する。第１の格納手段２は、複数の順序回路を備える回路設計情報（例えば、ネットリスト）を格納する。第２の格納手段３は、回路設計情報の、故障検出用のクロック（スキャンクロック）を挿入することによりタイミング制約違反となる条件を有する順序回路間の情報を格納する。回路配置手段４は、回路設計情報の第２の格納手段３により格納された情報の順序回路間に、この順序回路間の先端の順序回路に入力される信号と、この先端の順序回路が出力する信号の論理が変化しない場合のみ、先端の順序回路の出力信号を後段の順序回路に出力する回路を仮想的に配置する。【選択図】図１
2010181984.tif 000002
【特許請求の範囲】
【請求項１】
非同期クロックで動作する順序回路間の故障を検出する回路設計支援プログラムにおいて、
コンピュータを、
複数の順序回路を備える回路設計情報を格納する第１の格納手段、
前記回路設計情報の、故障検出用のクロックを挿入することによりタイミング制約違反となる条件を有する前記順序回路間の情報を格納する第２の格納手段、
前記回路設計情報の前記第２の格納手段により格納された情報の前記順序回路間に、前記順序回路間の先端の順序回路に入力される信号と前記先端の順序回路が出力する信号の論理が変化しない場合のみ前記先端の順序回路の出力信号を後段の順序回路に出力する回路を仮想的に配置する回路配置手段、
として機能させることを特徴とする回路設計支援プログラム。
【請求項２】
前記コンピュータを、さらに、前記回路配置手段により配置された回路を含む前記回路設計情報からテストパターンを生成するテストパターン生成手段として機能させることを特徴とする請求項１記載の回路設計支援プログラム。
【請求項３】
前記テストパターン生成手段は、さらに、前記回路設計情報に含まれる論理回路毎に、故障が検出されたか否かを示す情報を生成し、
前記コンピュータを、さらに、生成された前記情報のうち、仮想的に配置した前記回路に関する前記論理回路を削除する削除手段として機能させることを特徴とする請求項２記載の回路設計支援プログラム。
【請求項４】
仮想的に配置した前記回路は、前記順序回路間の先端の順序回路に入力される信号と前記先端の順序回路が出力する信号の論理が変化する条件では前記後段の順序回路に不定の論理を出力することを特徴とする請求項１記載の回路設計支援プログラム。
【請求項５】
前記第１の格納手段に格納されている回路設計情報は、故障検出用のクロックを挿入することによりタイミング制約違反となる条件以外のタイミング制約条件を満たしていることを特徴とする請求項１記載の回路設計支援プログラム。
【請求項６】
非同期クロックで動作する順序回路間の故障を検出する回路設計支援装置において、
複数の順序回路を備える回路設計情報を格納する第１の格納部と、
前記回路設計情報の、故障検出用のクロックを挿入することによりタイミング制約違反となる条件を有する前記順序回路間の情報を格納する第２の格納部と、
前記回路設計情報の前記第２の格納部により格納された情報の前記順序回路間に、前記順序回路間の先端の順序回路に入力される信号と前記先端の順序回路が出力する信号の論理が変化しない場合のみ前記先端の順序回路の出力信号を後段の順序回路に出力する回路を仮想的に配置する回路配置部と、
を有することを特徴とする回路設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計支援プログラムおよび回路設計支援装置に関する。
【背景技術】
【０００２】
近年、ＬＳＩ（Large Scale Integration）に搭載できるゲート数が増え、ＬＳＩ内部のクロックも複数化・複雑化している。
このため、製造工程で物理的な欠陥が発生していないことを確認するために、出荷前のテストが一般的に行われている。具体的には、例えば、回路設計情報にスキャン（Scan）デザインを行って、ＡＴＰＧ（Auto Test Pattern Generation）処理によってテストパターンを生成することにより、内部ノードの故障検出を行う。
【０００３】
スキャンデザインにおいては、フリップフロップ（順序回路）を動作させるクロック入力端子が必要である。できれば、製品を動作させるときに使用するクロック入力端子と同じクロック入力端子を使用したいが、最近のデザインでは、ＰＬＬ（Phase Lock Loop）の出力信号や、分周信号をクロックとして使うケースが多く存在する。その場合、スキャンテスト用に、別途、スキャンクロック入力端子が必要となる。
【０００４】
図１０は、スキャンテスト用にスキャンクロック入力端子を配置した例を示す図である。
図１０に示す回路９０は、クロックＣＬＫを入力する入力端子９１からＰＬＬ回路９２に入力されたクロックＣＬＫが、分周回路９３、９４によって分周され、ＤフリップフロップＦＦ９１〜ＦＦ９４に供給される。
【０００５】
この回路９０において、スキャンテスト時には、スキャンクロックＳＣＡＮ＿ＣＫ１を挿入する入力端子９５およびスキャンクロックＳＣＡＮ＿ＣＫ２を挿入する入力端子９６がスキャンテスト用に設けられる。
【０００６】
また、分周回路９３、９４の後段には、それぞれ、これらスキャンクロックＳＣＡＮ＿ＣＫ１を選択するセレクタ９７およびスキャンクロックＳＣＡＮ＿ＣＫ２を選択するセレクタ９８がスキャンテスト用に設けられる。
【０００７】
デザインの中で、スキャンクロック入力端子の数が多くなると、生成されるテストパターンの数が多くなり、テスト時間も長くなる。そのため、スキャン設計時は、クロックをまとめることを行っている。よって、「製品を動作させるときのクロック」が「スキャンテスト時のクロック」に一致しない場合がある。
【０００８】
また、生成されるテストパターンの数を減らすために、複数のスキャンクロック端子を１つのグループとして、同期扱いにするケースもある。この場合、本来、非同期だったクロック間のパスでも、スキャンテスト時のみ同期の扱いとなる。
【０００９】
製品を動作させるときのクロック経路とスキャンテスト時のクロック経路とが異なる場合、製品を動作させるときはタイミングエラーが無くても、スキャンテスト時にホールドタイミングエラーが発生することがある。
【００１０】
ホールドタイミングエラーが発生する要因の一つとして、セットアップタイムマージンが確保できないことが挙げられる。セットアップタイムマージンが確保できなければ、その経路を故障検出の対象外（以下、「ＮＯＡＴＧ」と言う）に指定することが行われている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００２−１３１３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、経路をＮＯＡＴＧに指定してしまうと、その経路間の故障検出ができない。このため、スキャンテスト時において、製品を動作させるときに、その経路に故障が発生するか否かを検証することができないという問題があった。
【００１３】
本発明はこのような点に鑑みてなされたものであり、スキャンテスト時において、製品を動作させるときに、その経路に故障が発生するか否かを検証することができる回路設計支援プログラムおよび回路設計支援装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、非同期クロックで動作する順序回路間の故障を検出する回路設計支援プログラムが提供される。この回路設計支援プログラムは、コンピュータを、第１の格納手段、第２の格納手段および回路配置手段として機能させる。
【００１５】
第１の格納手段は、複数の順序回路を備える回路設計情報を格納する。
第２の格納手段は、回路設計情報の、故障検出用のクロックを挿入することによりタイミング制約違反となる条件を有する順序回路間の情報を格納する。
【００１６】
回路配置手段は、回路設計情報の第２の格納手段により格納された情報の順序回路間に、この順序回路間の先端の順序回路に入力される信号とこの先端の順序回路が出力する信号の論理が変化しない場合のみ先端の順序回路の出力信号を後段の順序回路に出力する回路を仮想的に配置する。
【００１７】
このような回路設計支援プログラムによれば、回路配置手段により、第１の格納手段によって格納されている回路設計情報の、第２の格納手段により格納された情報の順序回路間に、この順序回路間の先端の順序回路に入力される信号とこの先端の順序回路が出力する信号の論理が変化しない場合のみ先端の順序回路の出力信号を後段の順序回路に出力する回路が仮想的に配置される。
【発明の効果】
【００１８】
開示の回路設計支援プログラムによれば、タイミング制約違反とならない条件で、故障検出が可能なテストパターン生成が可能となる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態の回路設計支援装置の概要を示す図である。
【図２】回路設計支援装置のハードウェア構成例を示す図である。
【図３】回路設計支援装置の機能を示すブロック図である。
【図４】ＡＴＰＧ処理部の機能を示すブロック図である。
【図５】回路設計支援装置の処理を示すフローチャートである。
【図６】ＡＴＰＧ処理を示すフローチャートである。
【図７】ＡＴＰＧ処理の具体例を示す図である。
【図８】ネットリスト修正回路を配置した回路を示す図である。
【図９】故障表の一例を示す図である。
【図１０】スキャンテスト用にスキャンクロック入力端子を配置した例を示す図である。
【発明を実施するための形態】
【００２０】
以下、実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態の回路設計支援装置の概要について説明し、その後、実施の形態をより具体的に説明する。
【００２１】
図１は、実施の形態の回路設計支援装置の概要を示す図である。
回路設計支援装置（コンピュータ）１は、非同期クロックで動作する順序回路間の故障を検出する回路設計支援プログラムを実行可能な装置である。
【００２２】
回路設計支援装置１は、回路設計支援プログラムにより、第１の格納手段２と、第２の格納手段３と、回路配置手段４として機能する。
第１の格納手段２は、複数の順序回路を備える回路設計情報（例えば、ネットリスト）を格納する。
【００２３】
図１では、回路設計情報の一例として、システムクロック＃１が入力されるＤフリップフロップＦＦ１の入力側に、セレクタ７が挿入されている。また、システムクロック＃２が入力されるＤフリップフロップＦＦ２の入力側に、セレクタ８が挿入されている。これを故障検出用信号で故障検出用クロックに切り替えられるようにすることで、スキャン・デザインルールを満足させる回路構成を形成している。
【００２４】
また、ＤフリップフロップＦＦ１とＤフリップフロップＦＦ２との間には、組み合わせ回路（内部にレジスタ／フリップフロップをもたない回路）５が設けられている。
第２の格納手段３は、回路設計情報の、故障検出用のクロック（スキャンクロック）を挿入することによりタイミング制約違反となる条件を有する順序回路間の情報を格納する。
【００２５】
図１では、一例として、故障検出用クロックを挿入することによりタイミング制約違反となる条件を有するＤフリップフロップＦＦ１とＤフリップフロップＦＦ２に、これらフリップフロップ間に配置された組み合わせ回路５が関連づけられて格納されている。
【００２６】
回路配置手段４は、回路設計情報の第２の格納手段３により格納された情報の順序回路間に、この順序回路間の先端の順序回路に入力される信号と、この先端の順序回路が出力する信号の論理が変化しない場合のみ、先端の順序回路の出力信号を後段の順序回路に出力する回路を仮想的に配置する。
【００２７】
図１では、ＤフリップフロップＦＦ１に入力される信号とＤフリップフロップＦＦ１が出力する信号の論理が変化しない場合のみ、ＤフリップフロップＦＦ１の出力信号をＤフリップフロップＦＦ２に出力する回路６が配置されている。
【００２８】
このような回路設計支援装置１によれば、ＤフリップフロップＦＦ１に入力される信号とＤフリップフロップＦＦ１が出力する信号の論理が変化しない場合のみ、ＤフリップフロップＦＦ１の出力信号をＤフリップフロップＦＦ２に出力するようにした。すなわち、ＤフリップフロップＦＦ１、ＦＦ２間がタイミング制約違反とならない場合のみ、ＤフリップフロップＦＦ１の出力信号をＤフリップフロップＦＦ２に出力するようにした。これにより、タイミング制約違反とならない場合に、故障検出可能な回路情報を提供することができる。
【００２９】
また、回路６は、ＤフリップフロップＦＦ１に入力される信号とＤフリップフロップＦＦ１が出力する信号の論理が変化する場合は、後段の順序回路に不定の論理を出力するのが好ましい。これにより、故障検出の対象外としなくてもよいので、ＤフリップフロップＦＦ１とＤフリップフロップＦＦ２との間の故障検出可能な回路情報を提供することができる。
【００３０】
以下、実施の形態をより具体的に説明する。
図２は、回路設計支援装置のハードウェア構成例を示す図である。
回路設計支援装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、外部補助記憶装置１０６および通信インタフェース１０７が接続されている。
【００３１】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１０３内には、プログラムファイルが格納される。
【００３２】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号を、バス１０８を介してＣＰＵ１０１に送信する。
【００３３】
外部補助記憶装置１０６は、記録媒体に書き込まれた情報を読み取ったり、記録媒体に情報を書き込んだりする。外部補助記憶装置１０６で読み書きが可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００３４】
通信インタフェース１０７は、ネットワーク３０に接続されている。通信インタフェース１０７は、ネットワーク３０を介して、他のコンピュータとの間でデータの送受信を行う。
【００３５】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、このようなハードウェア構成のシステムにおいて回路設計支援を行うために、回路設計支援装置１００内には、以下のような機能が設けられる。
【００３６】
図３は、回路設計支援装置の機能を示すブロック図である。
回路設計支援装置１００は、ネットリスト格納部１１０と、ＤＦＴ（Design For Test）挿入部１２０と、レイアウト処理実行部１３０と、タイミング制約格納部１４０と、ＳＤＦ（Standard Delay Format）格納部１５０と、タイミング解析部１６０と、スキャンＰＩＰＯ（Primary In Primary Out）モードタイミング制約格納部１７０と、エラーリスト格納部１８０と、ＡＴＰＧ（Automatic Test Pattern Generator）処理部１９０と、故障表格納部２００と、テストパターン格納部２１０と、シミュレーション実行部２２０とを有している。
【００３７】
ネットリスト格納部１１０は、電子回路（例えば、製品となる電子回路）のネットリストを格納している。このネットリストは、回路設計支援装置１００が備える各部によって参照され、処理が施され、更新される。
【００３８】
ＤＦＴ挿入部１２０は、ネットリスト格納部１１０に格納されているネットリストに、テストパターン用のデザインを挿入する。具体的には、ネットリストのフリップフロップを、スキャンフリップフロップに置き換えてスキャンチェーンを作成したり、スキャンテスト用のクロックを設定したりする。これにより、新たなネットリストが作成される。ＤＦＴ挿入部１２０は、作成された新たなネットリストをネットリスト格納部１１０に格納する。
【００３９】
レイアウト処理実行部１３０は、タイミング制約格納部１４０に格納されたタイミング制約情報に基づいて、ネットリスト格納部１１０に格納されているネットリストに、レイアウト処理を実行する。具体的には、配置・配線をしたり、クロックツリーを挿入したり、タイミングの最適化等を行う。
【００４０】
タイミング制約情報としては、例えば、製品動作時のタイミング制約や、スキャンシフト時のタイミング制約等が挙げられる。なお、スキャンＰＩＰＯモードのタイミング制約情報は、ここには含まれていない。
【００４１】
これにより、新たなネットリストとＳＤＦ情報（遅延情報）とが作成される。レイアウト処理実行部１３０は、作成された新たなネットリストをネットリスト格納部１１０に格納する。また、作成されたＳＤＦ情報をＳＤＦ格納部１５０に格納する。
【００４２】
タイミング解析部１６０は、タイミング制約格納部１４０に格納されたタイミング制約情報と、ＳＤＦ格納部１５０に格納されたＳＤＦ情報とネットリスト格納部１１０に格納されたネットリストを参照する。そして、ネットリスト格納部１１０に格納されているネットリストの静的なタイミング（セットアップタイミング、ホールドタイミング等）を解析し、タイミングエラーの有無を判断する。
【００４３】
そして、タイミングエラーが存在しなければ、スキャンＰＩＰＯモードタイミング制約格納部１７０に格納されているスキャンＰＩＰＯモードタイミング制約情報を参照する。そして、スキャンＰＩＰＯモードタイミング制約情報に違反しているホールドタイミングのリスト（エラーリスト）を生成し、エラーリスト格納部１８０に格納する。
【００４４】
このエラーリストには、例えば、スタート側（先端側）のフリップフロップとエンド側のフリップフロップと、これらフリップフロップ間に配置された組み合わせ回路とが記載されている。
【００４５】
ＡＴＰＧ処理部１９０は、ネットリスト格納部１１０に格納されているネットリストとエラーリスト格納部１８０にされたエラーリストとに基づいて、テストパターンおよび故障表を生成する。ここで、テストパターンは、故障信号を外部出力端子に伝搬させるパターンである。
【００４６】
そして、生成した故障表を故障表格納部２００に格納する。また、生成したテストパターンをテストパターン格納部２１０に格納する。
シミュレーション実行部２２０は、ネットリスト格納部１１０に格納されているネットリストとテストパターン格納部２１０に格納されているテストパターンとに基づいて、シミュレーションを実行する。
【００４７】
次に、ＡＴＰＧ処理部１９０の機能を詳しく説明する。
図４は、ＡＴＰＧ処理部の機能を示すブロック図である。
ＡＴＰＧ処理部１９０は、ネットリスト修正部１９１と、ＡＴＰＧ用ネットリスト格納部１９２と、ＡＴＰＧ処理実行部１９３と、故障表一時格納部１９４と、補正処理実行部１９５とを有している。
【００４８】
ネットリスト修正部１９１は、ネットリスト格納部１１０に格納されているネットリストとエラーリスト格納部１８０に格納されているエラーリストとに基づいてネットリストを修正し、ＡＴＰＧ用ネットリスト格納部１９２に格納する。なお、修正方法については、後に詳述する。
【００４９】
ＡＴＰＧ処理実行部１９３は、ＡＴＰＧ用ネットリスト格納部１９２に格納されたネットリストに基づいてＡＴＰＧ処理を実行し、対象とする一つの故障を活性化させるテストパターンと故障表とを生成する。
【００５０】
ここで、故障を活性化させるとは、対象とする故障が存在するときと存在しないときで、その故障が存在する信号線の値が異なる値になるようにさせることをいう。
そして、生成したテストパターンをテストパターン格納部２１０に格納し、生成した故障表を故障表一時格納部１９４に格納する。
【００５１】
この故障表には、ネットリストに含まれる論理回路毎に、故障が検出されたか否かを示す情報が格納されている。
補正処理実行部１９５は、故障表一時格納部１９４に格納された故障表から、ネットリスト修正部１９１によって修正されたネットリストを元のネットリストに補正し、故障表格納部２００に格納する。
【００５２】
次に、回路設計支援装置１００の処理を説明する。
図５は、回路設計支援装置の処理を示すフローチャートである。
まず、ＤＦＴ挿入部１２０が、ネットリスト格納部１１０に格納されているネットリストに基づいて、ＤＦＴを挿入する（ステップＳ１）。そして、ＤＦＴを挿入したネットリストをネットリスト格納部１１０に格納する。
【００５３】
次に、レイアウト処理実行部１３０が、ネットリスト格納部１１０に格納されているネットリストに対し、レイアウト処理を実行する（ステップＳ２）。そして、レイアウト処理により生成されたネットリストをネットリスト格納部１１０に格納する。また、レイアウト処理により生成されたＳＤＦ情報をＳＤＦ格納部１５０に格納する。
【００５４】
次に、タイミング解析部１６０が、タイミング制約格納部１４０に格納されているタイミング制約条件に基づいて、ネットリスト格納部１１０に格納されているネットリストのタイミングを解析する（ステップＳ３）。
【００５５】
タイミングを解析した結果、タイミングエラーが存在するか否かを判断する（ステップＳ４）。
タイミングエラーが存在する場合（ステップＳ４のＹｅｓ）、ステップＳ２に移行し、ステップＳ２以降の処理を引き続き行う。
【００５６】
一方、タイミングエラーが存在しない場合、すなわち、スキャンＰＩＰＯモードのタイミング制約条件以外のタイミング制約条件をクリアした場合（ステップＳ４のＮｏ）、スキャンＰＩＰＯモードタイミング制約格納部１７０に格納されているタイミング制約条件に基づいて、ネットリスト格納部１１０に格納されているネットリストのタイミングを解析する（ステップＳ５）。そして、得られたエラーリストをエラーリスト格納部１８０に格納する。
【００５７】
次に、ＡＴＰＧ処理部１９０が、エラーリスト格納部１８０に格納されているエラーリストに基づいて、ネットリスト格納部１１０に格納されているネットリストに対し、ＡＴＰＧ処理を実行する（ステップＳ６）。そして、得られたテストパターンをテストパターン格納部２１０に格納し、得られた故障表を故障表格納部２００に格納する。
【００５８】
次に、シミュレーション実行部２２０が、テストパターン格納部２１０に格納されているテストパターンを用いてシミュレーションを実行する（ステップＳ７）。
以上で回路設計支援装置１００の処理の説明を終了する。
【００５９】
次に、ステップＳ６のＡＴＰＧ処理について詳しく説明する。
図６は、ＡＴＰＧ処理を示すフローチャートである。
まず、ネットリスト修正部１９１が、ネットリスト格納部１１０に格納されたネットリストとエラーリスト格納部１８０に格納されたエラーリストとに基づいてネットリストを修正し、ＡＴＰＧ用ネットリスト格納部１９２に格納する（ステップＳ１１）。
【００６０】
次に、ＡＴＰＧ処理実行部１９３が、ＡＴＰＧ用ネットリスト格納部１９２に格納されたネットリストに基づいてＡＴＰＧ処理を実行し、テストパターンと故障表とを作成する。そして、作成したテストパターンをテストパターン格納部２１０に格納し、作成した故障表を故障表一時格納部１９４に格納する（ステップＳ１２）。
【００６１】
次に、補正処理実行部１９５が、故障表一時格納部１９４に格納された故障表から、ネットリスト修正部１９１によって修正されたネットリストを元のネットリストに補正し、故障表格納部２００に格納する（ステップＳ１３）。
【００６２】
次に、ＡＴＰＧ処理の具体例を説明する。
図７は、ＡＴＰＧ処理の具体例を示す図である。
図７に示す回路１０は、レイアウト処理実行部１３０によって、レイアウト処理が行われたネットリストが有している回路情報により実現される回路であって、スキャンＰＩＰＯモード以外のタイミング制約を満たした回路である。
【００６３】
この回路１０は、スタート側のフリップフロップＦＦ１１と、エンド側のフリップフロップＦＦ１２と、組み合わせ回路１１、１２とを有している。
組み合わせ回路１１は、フリップフロップＦＦ１１に信号を出力する。また、フリップフロップＦＦ１１の出力信号を受け取る場合もある。
【００６４】
組み合わせ回路１２は、フリップフロップＦＦ１１の出力信号を受け取る。また、フリップフロップＦＦ１２に信号を出力する。
この回路１０には、ＤＦＴ挿入部１２０によって挿入されたセレクタ１３とセレクタ１４とスキャンテスト信号出力回路１５とスキャンフリップフロップ１６とが設けられている。
【００６５】
セレクタ１３は、スキャンテスト時にシステムクロック＃１とスキャンクロックとのいずれか一方を選択してフリップフロップＦＦ１１に出力する。また、セレクタ１４は、システムクロック＃２とスキャンクロックとのいずれか一方を選択してフリップフロップＦＦ１２に出力する。
【００６６】
スキャンテスト信号出力回路１５は、セレクタ１３およびセレクタ１４にスキャンテスト用のセレクト信号を出力する。スキャンテスト信号出力回路１５が出力するセレクト信号は、スキャンテスト時に論理「１」または論理「０」の固定値となる信号である。
【００６７】
さらに、フリップフロップＦＦ１１の出力信号は、スキャン・パスによってスキャンフリップフロップ１６に導かれる。
この回路１０において、スキャンテストを行った結果、スタート側のフリップフロップＦＦ１１とエンド側のフリップフロップＦＦ１２には、スキャンテスト時のみ、ホールドタイミング違反が発生するものとする。
【００６８】
ネットリスト修正部１９１は、この回路１０のスタート側のフリップフロップＦＦ１１とエンド側のフリップフロップＦＦ１２を抽出する。
そして、抽出したフリップフロップＦＦ１１とエンド側のフリップフロップＦＦ１２との間に、ネットリスト修正回路を配置する。
【００６９】
なお、同一クロックドメインに戻るパス（図７では、フリップフロップＦＦ１１から組み合わせ回路１１に至るパス）に関しては、製品動作時の動作と同じになるため、ホールドタイミング違反は発生しないように設計される。
【００７０】
また、異なるクロック間でもホールドタイミング違反が発生しなければ、ネットリスト修正回路を追加する必要はない。
図８は、ネットリスト修正回路を配置した回路を示す図である。
【００７１】
回路１０ａは、回路１０に対しネットリスト修正回路２０が配置された回路である。この回路１０ａは、フリップフロップＦＦ１１と組み合わせ回路１２との接続が切り離され、フリップフロップＦＦ１１の出力側は、ネットリスト修正回路２０を介して組み合わせ回路１２の入力側に接続されている。
【００７２】
ネットリスト修正回路２０は、論理「Ｘ」を発生する論理Ｘ発生回路２１と、ＸＯＲ回路２２と、セレクタ２３とを有している。
ＸＯＲ回路２２の一方の入力端子は、フリップフロップＦＦ１１の入力端子に接続され、他方の入力端子は、フリップフロップＦＦ１１の出力端子に接続されている。
【００７３】
セレクタ２３は、ＸＯＲ回路２２が出力した信号の論理によって、論理Ｘ発生回路２１の出力信号とフリップフロップＦＦ１１の出力信号のいずれか一方を選択する。そして、選択された信号を組み合わせ回路１２に出力する。
【００７４】
具体的には、ＸＯＲ回路２２が出力した信号の論理が「０」であれば、フリップフロップＦＦ１１の出力信号を選択し、出力した信号の論理が「１」であれば、論理Ｘ発生回路２１の出力信号を選択する。
【００７５】
この結果、ネットリスト修正回路２０は、フリップフロップＦＦ１１のＤ端子に入力される信号の論理と、Ｑ端子から出力する信号の論理とが一致する場合に、Ｑ端子から出力する信号を組み合わせ回路１２に出力する。
【００７６】
換言すれば、フリップフロップＦＦ１１からフリップフロップＦＦ１２へのパスで、ホールドタイミング違反となる条件（フリップフロップＦＦ１１のＱが変化する条件）では、組み合わせ回路１２に不定（Ｘ）を出力する。一方、ホールドタイミング違反とならない条件（フリップフロップＦＦ１１のＱが変化しない条件）では、フリップフロップＦＦ１１の出力信号と同じ論理の信号を組み合わせ回路１２に出力する。
【００７７】
これにより、タイミング制約違反とならない条件では、故障検出可能な回路情報を提供することができる。
また、タイミング制約違反となる条件であっても、故障検出の対象外指定をしなくてもよいので、フリップフロップＦＦ１１とフリップフロップＦＦ１２との間の故障を検出することができる。
【００７８】
ＡＴＰＧ処理実行部１９３は、この回路を読み込んで、フリップフロップＦＦ１１からフリップフロップＦＦ１２の故障を検出できるテストパターン生成を行う。
なお、論理Ｘ発生回路２１の構成は、図示のものに限定されない。
【００７９】
次に、ステップＳ１３の処理の具体例を説明する。
図９は、故障表の一例を示す図である。
故障表一時格納部１９４に格納された（補正前の）故障表１９４ａには、ネットリスト格納部１１０に格納されている全ての回路データの識別情報（例えば、論理回路のインスタンス名）と、その論理回路の入出力端子名毎のスキャンテストのテスト結果が記載されている。
【００８０】
以下、フリップフロップＦＦ１１のインスタンス名が「ＡＡＡＡ」であるものとする。また、ネットリスト修正回路２０のインスタンス名が「ＤＵＭＭＹ１」であるものとする。また、セレクタ２３のインスタンス名が「ＭＵＸ」であるものとする。また、ＸＯＲ回路２２のインスタンス名が「ＥＯＲ」であるものとする。また、論理Ｘ発生回路２１のＤフリップフロップのインスタンス名が「ＦＦ」であるものとする。
【００８１】
図９では、フリップフロップＦＦ１１のＤ端子、ＣＫ端子、Ｑ端子に入出力される信号の論理毎に、故障を検出した（detected）ことを示す「○」、または、故障を検出していない（undetected）ことを示す「×」が設定されている。
【００８２】
また、ネットリスト修正回路２０のセレクタ２３のＡ端子、Ｂ端子、Ｓ端子に入力される信号の論理毎に、故障を検出したことを示す「○」、または、故障を検出していないことを示す「×」が設定されている。ＸＯＲ回路２２のＡ端子、Ｂ端子に入力される信号の論理毎に、故障を検出したことを示す「○」、または、故障を検出していないことを示す「×」が設定されている。また、論理Ｘ発生回路２１の「ＦＦ」のＤ端子、ＣＫ端子、Ｑ端子の故障が、検出不可能な故障（undetectable）を示す「△」が設定されている。
【００８３】
補正処理においては、補正処理実行部１９５が、故障表１９４ａのネットリスト修正回路２０に対応する部分、すなわち、インスタンス名が「ＤＵＭＭＹ１」の欄を削除する補正を行う。
【００８４】
これにより、仮想的に配置したネットリスト修正回路２０の情報が、故障表１９４ａから除外されるため、故障表格納部２００に格納される故障表は、製品の故障率を示す情報となる。
【００８５】
以上述べたように、回路設計支援装置１００によれば、ＡＴＰＧ処理時に、ネットリスト修正回路２０を仮想的に配置し、この回路を付加したテストパターンを用いてスキャンテストを行うようにした。すなわち、スキャンテスト時にのみ（製品には実装されない）回路を追加してスキャンテストを行うようにした。これにより、製品に不要な回路が実装されないため、製品のゲート数および消費電力の増大を抑制することができる。
【００８６】
また、システム動作モード時とＳＣＡＮテストモード時とで、クロック経路が異なり、両方のタイミングを満足できない場合、これまでは、そのパスは故障検出対象外指定（ＮＯＡＴＧ）が必要だったが、回路設計支援装置１００によれば、このような指定が不要になり、そのパスの故障検出が可能になる。その結果、故障検出率向上による品質の向上を図ることができる。
【００８７】
また、例えば、タイミング解析処理で、故障検出用のクロックを挿入することにより発生するタイミング制約違反が解消されるまで繰り返しタイミング解析を行う場合に比べ、その処理を省略することができるため、開発期間を短縮することができる。
【００８８】
また、仮想的に追加したネットリスト修正回路２０は実存しないため、故障表１９４ａからネットリスト修正回路２０を削除して、故障表格納部２００に格納するようにした。故障表格納部２００に格納された故障表を用いて故障検出率を求めることで、容易に製品の故障検出率を得ることができる。
【００８９】
なお、回路設計支援装置１００が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、ＡＴＰＧ処理までを行ってテストパターンを生成しておき、他の装置が、そのテストパターンを用いてシミュレーションを行うようにしてもよい。
【００９０】
以上、本発明の回路設計支援プログラムおよび回路設計支援装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００９１】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、回路設計支援装置１００が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ＨＤＤ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／ＲＷ等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ等が挙げられる。
【００９２】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９３】
回路設計支援プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【００９４】
１、１００  回路設計支援装置
２  第１の格納手段
３  第２の格納手段
４  回路配置手段
５、１１、１２  組み合わせ回路
６  回路
７、８、１３、１４、２３  セレクタ
１０、１０ａ  回路
１５  スキャンテスト信号出力回路
１６  スキャンフリップフロップ
２０  ネットリスト修正回路
２１  論理Ｘ発生回路
２２  ＸＯＲ回路
１１０  ネットリスト格納部
１２０  ＤＦＴ挿入部
１３０  レイアウト処理実行部
１４０  タイミング制約格納部
１５０  ＳＤＦ格納部
１６０  タイミング解析部
１７０  スキャンＰＩＰＯモードタイミング制約格納部
１８０  エラーリスト格納部
１９０  ＡＴＰＧ処理部
１９１  ネットリスト修正部
１９２  ＡＴＰＧ用ネットリスト格納部
１９３  ＡＴＰＧ処理実行部
１９４  故障表一時格納部
１９４ａ  故障表
１９５  補正処理実行部
２００  故障表格納部
２１０  テストパターン格納部
２２０  シミュレーション実行部
ＦＦ１、ＦＦ２  Ｄフリップフロップ
ＦＦ１１、ＦＦ１２  フリップフロップ
【図１】
2010181984.tif 000003
【図２】
2010181984.tif 000004
【図３】
2010181984.tif 000005
【図４】
2010181984.tif 000006
【図５】
2010181984.tif 000007
【図６】
2010181984.tif 000008
【図７】
2010181984.tif 000009
【図８】
2010181984.tif 000010
【図９】
2010181984.tif 000011
【図１０】
2010181984.tif 000012