(57)【要約】【課題】  階層構造を維持したまま、効率的に故障ノードを検出できるＲＴＬ論理回路を提供する。【解決手段】  フリップフロップにスキャンチェーンを挿入し、シフトレジスタ化し、フリップフロップ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで回路故障を検出するテスト方法が用いられると共に、階層構造および固定ノードを持つＲＴＬ(Resister Transfer Level)論理回路において、多ビット疑似乱数を発生する疑似乱数発生器と、前記疑似乱数発生器から出力された乱数値を前記各階層の固定ノードに選択的に供給するセレクタ手段と、を有する構成となっている。【選択図】  図１
2005331297.tif 000002
【特許請求の範囲】
【請求項１】
フリップフロップにスキャンチェーンを挿入し、シフトレジスタ化し、フリップフロップ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで回路故障を検出するテスト方法が用いられると共に、階層構造および固定ノードを持つＲＴＬ(Resister Transfer Level)論理回路であって、
多ビット疑似乱数を発生する疑似乱数発生器と、前記疑似乱数発生器から出力された乱数値を前記各階層の固定ノードに選択的に供給するセレクタ手段と、を有することを特徴とするＲＴＬ論理回路。
【請求項２】
前記セレクタ手段に選択指示信号を出力すると共に前記疑似乱数発生器に対し初期値あるいは中間値を設定する制御装置を有することを特徴とする請求項１に記載のＲＴＬ論理回路。
【請求項３】
前記セレクタ手段が、スキャンテスト時に、前記疑似乱数発生器の出力とメモリなどのスキャンテスト時不定となる出力とをセレクトして前記各階層の固定ノードに供給することを特徴とする請求項１に記載のＲＴＬ論理回路。
【請求項４】
請求項１に記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路。
【請求項５】
請求項２に記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路。
【請求項６】
請求項３に記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、フリップフロップ（以下ＦＦ）にスキャンチェーンを挿入し、シフトレジスタ化し、ＦＦ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで、回路故障を検出するテスト方法が用いられるResister Transfer Level（ＲＴＬ）論理回路に関し、特に、階層構造を維持したまま、効率的に故障ノードを検出できるＲＴＬ論理回路に関するものである。
【背景技術】
【０００２】
昨今の大規模集積回路設計においては、Resister Transfer Level（ＲＴＬ）で論理設計される場合が多い。ＲＴＬではデータを保持する順序回路と、データを処理する組み合わせ回路を、論理的に記述することが可能であり、順序回路を同期クロックで駆動させることにより、順序回路間のデータ送受信の制御性が向上し、大規模、かつ高速な集積回路を構築することが可能となっている。また、ＲＴＬでは階層構造をもたせることが可能な点から、機能的にまとまっているものを１つのモジュールとして設計し、それを別階層のモジュールから呼び出すことにより、可視性の高い集積回路を設計することが容易となる。
ＲＴＬで記述された論理回路は、論理合成と呼ばれるステップで、論理回路からゲート記述レベルのネットリストに変換され、等価性およびタイミング収束性を確認した後に、物理的なレイアウト構造に変換される。このようにして作成されたレイアウトパターンをシリコン基板の上に注入し焼き付けすることで集積回路は完成される。
完成された集積回路は、パッケージ化され出荷テストが実施されるが、集積回路の大規模化に伴い、通常の機能テストに用いるテストパターンのみでは、製造工程での不純物混入などによる論理回路故障をすべて検出することは現実的には不可能である。
そこで、順序回路に用いられるＦＦに、スキャンチェーンと呼ばれる故障検出のための回路を挿入し、テストモード時にはそれらのＦＦをシフトレジスタ化（スキャンＦＦ化）し、ＦＦ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで、回路故障を検出するテスト方法が用いられている。
なお、先行技術としては、特開２００２−３２４１０１公報には、故障検出不能ノードが、冗長部分であるか、そうでないかを判別し、冗長であった場合に、全検出ノードから、冗長部分を除く故障検出率を算出する方法および装置について開示されている。
【特許文献１】特開２００２−３２４１０１公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術には、以下のような問題点があった。
ここで、前述のようにＲＴＬで記述された論理回路は、機能モジュールにまとめることが容易であることから、過去に設計したモジュールを再度利用したり、外部からモジュールマクロを導入したりすることが一般的となっている。この際、集積回路Ａで用いた機能を集積回路Ｂで用いない場合、その機能の有効・無効を表すイネーブル端子や、該機能で使われるバス入力端子などを、フローティング状態を防止するために“Ｈ”、あるいは“Ｌ”に固定化することが多い（以降“固定ノード”と呼ぶ）（図７参照）。
また、論理合成の際には、デバッグ性を考慮して階層構造を保ったまま論理合成を実施することがある。この場合、論理合成後のネットリストに固定ノードが残ってしまう。このままスキャンチェーンを挿入した場合、固定ノードからスキャンＦＦまでの組み合わせ回路のうち、固定ノードによって、検出不可能なノード（未検出ノード）が発生し故障検出率低下の原因となる（図８参照）。
また、メモリなどのマクロセルではスキャンチェーンを挿入できないために、出力ノードが不定となり、スキャンＦＦまでの故障ノードが同様に検出できない問題があった。
この問題を防ぐために、テストモードイネーブル信号をセレクト信号とするセレクタを用いて、テストモード時には、適当なスキャンＦＦからの出力を選択して固定ノードに入力する方法（図９参照）や、論理合成時にすべての階層を崩し、固定ノードそのものをなくし、冗長性のないネットリストに変換した上でスキャンチェーンを挿入する方法などがとられる。
しかしながら、前者の場合、人手の作業になるために、別々のスキャンＦＦを選択したり、固定ノードの数に対してスキャンＦＦが少ない場合、別階層から信号を接続したり手間が必要である問題点があった。
そして、後者の場合、階層がなくなることで、ネットリストレベルでのシミュレーションで不具合が発生した場合、ＲＴＬとの比較が困難であることからデバッグが難しい問題点があった。
また、テスト時間はコストの削減に直接的に関連することから、効率的に故障ノードの検出を実施できるように検討することが重要であるが従来技術には有効な対策がなかった。
本発明は、上記問題を解決するためになされたもので、階層構造を維持したまま、効率的に故障ノードを検出できるＲＴＬ論理回路を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上述の目的を達成するために、請求項１記載の発明は、フリップフロップにスキャンチェーンを挿入し、シフトレジスタ化し、フリップフロップ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで回路故障を検出するテスト方法が用いられると共に、階層構造および固定ノードを持つＲＴＬ（Resister Transfer Level）論理回路において、多ビット疑似乱数を発生する疑似乱数発生器と、前記疑似乱数発生器から出力された乱数値を前記各階層の固定ノードに選択的に供給するセレクタ手段と、を有することを特徴とする。
また、請求項２記載の発明は、請求項１記載のＲＴＬ論理回路において、前記セレクタ手段に選択指示信号を出力すると共に前記疑似乱数発生器に対し初期値あるいは中間値を設定する制御装置を有することを特徴とする。
また、請求項３記載の発明は、請求項１記載のＲＴＬ論理回路において、前記セレクタ手段が、スキャンテスト時に、前記疑似乱数発生器の出力とメモリなどのスキャンテスト時不定となる出力とをセレクトして前記各階層の固定ノードに供給することを特徴とする。
また、請求項４記載の発明は、請求項１記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路を特徴とする。
また、請求項５記載の発明は、請求項２記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路を特徴とする。
また、請求項６記載の発明は、請求項３記載のＲＴＬ論理回路と同等の構造を持つゲート記述回路を特徴とする。
【発明の効果】
【０００５】
本発明によれば、多ビット疑似乱数を発生する疑似乱数発生器から出力された乱数値を各階層の固定ノードに選択的に接続する構造とすることにより、ＲＴＬの論理階層を維持したまま、スキャンテストモード時における故障検出率を向上することが可能となる。
また、本発明によれば、疑似乱数発生器に対し、初期値あるいは中間値を設定できるような制御装置を持つので、未検出ノードを早く検出することが可能である（テスト時間が削減できる）。
また、本発明によれば、疑似乱数発生器の出力と、メモリなどのスキャンテスト時不定となる出力とをスキャンテスト時にセレクトして前記各階層の固定ノードに供給することにより、マクロセルの不定出力の伝搬を防ぎ、故障検出率を向上することが可能となる。
また、本発明によれば、多ビット疑似乱数を発生する疑似乱数発生器から出力された乱数値を、各階層の固定ノードに接続する構造をもつゲート記述回路を得ることにより、スキャンテストモード時における故障検出率を向上することが可能となる。
また、本発明によれば、疑似乱数発生器に対し、初期値あるいは中間値を設定できるような制御装置を持つゲート記述回路を得ることにより、未検出ノードを早く検出することが可能となる（テスト時間が削減できる）。
また、本発明によれば、疑似乱数発生器の出力と、メモリなどのスキャンテスト時不定となる出力をスキャンテスト時にセレクトさせるゲート記述回路を得ることにより、マクロセルの不定出力の伝搬を防ぎ、故障検出率を向上することが可能となる。
【発明を実施するための最良の形態】
【０００６】
以下に添付の図を参照してこの発明の実施形態を詳細に説明する。
【実施例】
【０００７】
図１は、本発明によるResister Transfer Level（ＲＴＬ）論理回路の一実施形態の概略図である。
図１に示すように、このＲＴＬ論理回路は、フリップフロップ（以下ＦＦ）にスキャンチェーンを挿入し、シフトレジスタ化し、ＦＦ間の組み合わせ回路から出力される値をスキャンチェーンから出力することで、回路故障を検出するテスト方法が用いられるものであり、多ビット出力を持つ疑似乱数発生器１と、固定ノード２をもつ機能モジュール３を有する階層構造を持つ論理回路５と、上記テストモードを設定する信号をセレクト制御信号として、ノーマルモード時に接続されるべき通常の信号と疑似乱数発生器１よりの多ビット信号を選択して固定ノード２に出力するセレクタ７と、セレクタ７に選択指示信号を出力すると共に、疑似乱数発生器１に初期値を設定するための制御装置９とを有している。図３は、制御装置９が、テストモード時に設定される初期値設定レジスタ１１（あるいはワイヤ）からなる第２実施形態を示している。
【０００８】
次に、図１に示したＲＴＬ論理回路の製造過程について図２を参照して説明する。図２は、図１に示したＲＴＬ論理回路の製造過程のフローチャートである。
まず、設計仕様が決定されると（ステップ１０１）、その機能仕様に基づき、論理設計が行われる（ステップ１０３）。そして、階層化およびインスタンス化として、必要な機能や開発効率性に応じて既存モジュールを階層的に呼び出して（インスタンス化）接続する（ステップ１０５、１０７）。
次に、機能的には必要のない外部入力端子である固定ノード２に対して、スキャンテストモード時に設定される初期値設定レジスタ１１（あるいはワイヤ）をセレクト制御信号とするセレクタ７の出力を接続し、ＴＰＯ（あるいはその下）階層のセレクタ７の入力には多ビット出力を持つ疑似乱数発生器１を接続する（ステップ１０９）。すなわち、セレクタ７のＡ０入力端子に、ノーマルモード時に接続されるべき信号を入力し、もう一方のＡ１入力端子には、乱数発生器１から出力される１ｂｉｔ信号を入力する。このときテストモード時に設定される初期値設定レジスタ１１の代わりに、スキャンに用いられるイネーブル信号を用いることも可能である。また、乱数発生器については、完全な乱数では故障検出時に利用する期待値が生成できないために、疑似乱数を発生するものとする。この疑似乱数発生器の種類についての制限は特にない。
なお、疑似乱数発生器１をできるだけ上階層におくことで、設計が簡略されるが、特に大規模集積回路の場合、大きくブロック分けした階層毎に擬似乱数発生器を置いてもよい。
次に、機能検証が完了した論理回路に対し、論理合成を実施する（ステップ１１１）。この時、ＲＴＬ設計時に導入された階層を崩しても、本発明による故障検出率向上手法は有効であるが、階層を崩さずに論理合成を実施した方が、回路のデバッグ容易性を保ちながら故障検出を向上するという本発明の目的を発揮することができる。
そして、論理合成を実施したゲート記述回路（ネットリスト）に対し、スキャンチェーンを挿入し、フリップフロップをシフトレジスタ化（スキャンフリップフロップ化）し（ステップ１１３）、故障検出シミュレーションを行い（ステップ１１５）、設計完了してチップの製造が行われる。
次に、出荷検査時において、スキャンテストが実施される（ステップ１１９）。すなわち、テストモード時には、チップ外部端子（スキャンイン端子）からテストパターンを入力し、テストクロックを駆動させることによって、各スキャンフリップフロップに記憶される値をシフトし、外部端子（スキャンアウト端子）から順次観測する。それにより、チップ内部の縮退故障が検出される。この時、乱数発生器１からの１ｂｉｔ信号が固定ノード２に入力するようにセレクタ７が切り替えられる。これにより、マクロセルの不定出力の伝搬を防ぎ、故障検出率を向上することが可能となる。
【０００９】
次に、図３および図４を参照して本発明の第２実施形態について説明する。図３は、本発明によるＲＴＬ論理回路の第２実施形態の概略図である。図４は、図１に示したＲＴＬ論理回路の製造過程の第２実施形態のフローチャートである。
図２に示すＲＴＬ論理回路の製造過程を実施した場合、疑似乱数の発生パターンは単一であるために、発生するパターンによっては、未検出ノードを検出するためにテストパターンを長くする必要があり、テストコストの増加など問題が発生する。
そこで、この第２実施形態では、図３に示すように、疑似乱数の発生パターンを変更できるように、疑似乱数発生器１に初期値を設定できるような初期値設定レジスタ１１を付け加えている。
この第２実施形態では、図４に示すように、ステップ１１３においてスキャンツリーを挿入後、故障検出シミュレーションにより未検出ノードを抽出し、解析により、初期値設定レジスタ１１を固定ノードを意図する値に設定する（ステップ１２１）。他の構成・動作は前記第１実施形態と同様である。
次に、図５を参照して本発明の第３実施形態について説明する。図５は、本発明によるＲＴＬ論理回路の第３実施形態の概略図である。
図５に示すように、この第３実施形態では、一部の階層のマクロモジュール３に対して、疑似乱数発生器１の出力を、メモリモジュール１３よりのスキャンテストモード時不定（信号が正負不明である状態）の出力とセレクトさせて入力するようにしている。他の構成・動作は前記第１実施形態と同様である。
【００１０】
次に、図６を参照して本発明の第４実施形態について説明する。図６は、図１に示したＲＴＬ論理回路の製造過程の第４および第５実施形態のフローチャートである。
図２に示す第１実施形態の疑似乱数発生器１およびセレクタ７の挿入処理は、論理合成処理１１１の後のネットリストに対して実施してもよい。そこで、この第４実施形態では、図６のステップ１２３において、スキャン挿入後の故障検出シミュレーションの結果、目標とする故障検出率に到達しない場合に、論理合成後のネットリストに疑似乱数発生器１およびセレクタ７を挿入することで、実施工期を短縮することを可能としている。
さらに、第５実施形態として、図６のステップ１２５において、スキャンツリーを挿入後、故障検出シミュレーションにより未検出ノードを抽出し、解析により、初期値設定レジスタ１１を固定ノードを意図する値に設定するようにしている。
また、第６実施形態として、図５に示したメモリモジュール１３、論理合成後のネットリストに対して実施してもよい。スキャン挿入後の故障検出シミュレーションの結果、目標とする故障検出率に到達しない場合に、論理合成後のネットリストに疑似乱数発生器１、セレクタ７、およびメモリモジュール１３を挿入することで、実施工期を短縮することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明によるResister Transfer Level（ＲＴＬ）論理回路の一実施形態の概略図である。
【図２】図１に示したＲＴＬ論理回路の製造過程のフローチャートである。
【図３】本発明によるＲＴＬ論理回路の第２実施形態の概略図である。
【図４】図１に示したＲＴＬ論理回路の製造過程の第２実施形態のフローチャートである。
【図５】本発明によるＲＴＬ論理回路の第３実施形態の概略図である。
【図６】図１に示したＲＴＬ論理回路の製造過程の第４および第５実施形態のフローチャートである。
【図７】論理回路における階層構造例および各階層のインスタンス化における固定ノード例を示す図である。
【図８】固定ノードを持つインスタンス中の未検出ノード例を示す図である。
【図９】未検出ノードによる故障検出率低下に対する従来の対処例を示す図である。
【符号の説明】
【００１２】
１…疑似乱数発生器、２…固定ノード、３…マクロモジュール、５…論理回路、７…セレクタ、９…制御装置、１１…初期値設定レジスタ、１３…メモリモジュール
【図１】
2005331297.tif 000003
【図２】
2005331297.tif 000004
【図３】
2005331297.tif 000005
【図４】
2005331297.tif 000006
【図５】
2005331297.tif 000007
【図６】
2005331297.tif 000008
【図７】
2005331297.tif 000009
【図８】
2005331297.tif 000010
【図９】
2005331297.tif 000011