(57)【特許請求の範囲】
【請求項１】
回路ブロック毎に分割してテストが行えるように前記回路ブロックを選択するデコーダ回路を含むテスト回路が付加された論理回路におけるテスト回路の検証方法であって、
前記回路ブロックの接続情報、前記回路ブロックの端子属性情報、および前記回路ブロックのテストモード設定情報を読み込んだ後、通常の動作と分割テストを行う動作とを切換えるためのテスト信号値および前記回路ブロックを選択するための信号値を前記デコーダ回路の外部端子に設定する第１のステップと、
前記設定された信号値を前記テスト回路内で論理値伝搬させる第２のステップと、
選択されたテスト対象の回路ブロックの、入力端子についてはバックワード、出力端子についてはフォワード、双方向端子についてはフォワードおよびバックワードでパストレースすることによって、前記論理回路の外部端子から前記選択されたテスト対象の回路ブロックの入力端子に対して入力信号値を制御することが可能であるか、また前記選択されたテスト対象の回路ブロックの出力端子に対して出力信号値を観測することが可能であるかを検証する第３のステップと、
を備えていることを特徴とするテスト回路の検証方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、集積回路装置のテスト回路を検証するテスト回路の検証方法に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
従来のバウンダリスキャンセルの構成を図９に示す。このバウンダリスキャンセルはマルチプレクサ１，８と、Ｄタイプフリップフロップ６，７とを備えている。次にこのバウンダリスキャンセルの構成と動作を説明する。
【０００３】
通常のモードで動作させる際には、テストモード信号を“０”に制御することによって、マルチプレクサ８を通して入力端子ＩＮから出力端子ＯＵＴにデータをそのまま出力することができる。集積回路チップの外部端子にこのようなバウンダリスキャンセルを置いた場合、なんら外部端子の状態に影響を与えないようにすることができる。また、他のバウンダリスキャンセルのデータを出力端子ＯＵＴに出力する際には、テストモード信号を“１”に制御することによって、マルチプレクサ８を通してＤタイプフリップフロップ７から出力端子ＯＵＴにデータを入力端子ＩＮからのデータの代わりに印加することができる。さらに、入力端子ＩＮの状態を観測する際には、シフトモード信号を“０”に制御することによって、マルチプレクサ１を通して入力端子ＩＮからのデータをＤタイプフリップフロップ６のＤ端子に加え、さらに、シフトクロック信号にクロックパルスを印加することによって、そのデータをＤタイプフリップフロップ６に取り込むことができる。バウンダリスキャンセルへのデータ設定と観測については、マルチプレクサ１とＤタイプフリップフロップ６で構成されるシフトレジスタ段を他のバウンダリスキャンセルとシフトレジスタ接続させることにより、シフトレジスタ動作で行うことができる。
【０００４】
図９に示す従来のバウンダリスキャンセルは２個のマルチプレクサ１，８と、Ｄタイプのマスタースレーブフリップフロップ（ダブルラッチ）６，７から構成されている。そしてＤタイプフリップフロップ６，７はＣＭＯＳのトランスファゲートとインバータで構成するとすれば、各々最低でも１８個のトランジスタが必要であり、素子数が多いという問題があった。なお、Ｄタイプフリップフロップ７はアップデート用のフリップフロップであり、Ｄタイプシングルラッチに置換えることが可能であるがこのＤタイプシングルラッチは最低でも１０個のトランジスタが必要であり、なお素子数が多いという問題がある。
【０００５】
次にテスト回路の従来の検証方法について説明する。
【０００６】
大規模、複雑化する論理回路において、スキャンデザインと呼ばれる設計手法は、高い故障検出率を持つテストパターンを自動生成するために非常に効果的な手法である。図１０はスキャンデザイン回路の構成図である。スキャンデザインは、順序回路を構成するフリップフロップの状態を外部端子から自由に設定したり観測したりするための回路（図１０においてはフリップフロップ７５1 ，７５2 ，…７５n を直列接続した回路）を付加し、通常の動作モードと、スキャン用フリップフロップをシフトレジスタとして動作させテストデータを設定したり読み出したりするモードをもち、スキャン用フリップフロップに設定されたテストデータおよび外部端子に設定されたテストデータにより組み合わせ回路を動作させ、その出力をスキャン用フリップフロップおよび外部端子で観測するようにした方式である。スキャンデザインされた論理回路のテスト回路の検証に対しては、従来種々の方式が考えられており、これらの検証方式は接続チェック、パストレースによってループのチェック、同期／非同期のチェック、スキャンパスが正常に接続されているかのチェックを行うものである。これらの検証方式は、スキャンデザインによりテスト容易化された論理回路が対象であって、従来は分割テストによりテスト容易化された論理回路に対するテスト回路の検証方法はなかった。
【０００７】
このため、従来は人手により検証作業を行っており、検証に要する時間が非常に大きなものとなるとともに回路ミスを完全に防ぐことができないという問題があった。
【０００８】
本発明は上記事情を考慮してなされたものであって、複数に分割された回路ブロック毎に動作試験を行うことが可能なテスト回路の検証を可及的に短時間で行うことができるテスト回路の検証方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
【００１０】
また本発明によるテスト回路の検証方法は、
回路ブロック毎に分割してテストが行えるように前記回路ブロックを選択するデコーダ回路を含むテスト回路が付加された論理回路におけるテスト回路の検証方法であって、
前記回路ブロックの接続情報、前記回路ブロックの端子属性情報、および前記回路ブロックのテストモード設定情報を読み込んだ後、通常の動作と分割テストを行う動作とを切換えるためのテスト信号値および前記回路ブロックを選択するための信号値を前記デコーダ回路の外部端子に設定する第１のステップと、
前記設定された信号値を前記テスト回路内で論理値伝搬させる第２のステップと、
選択されたテスト対象の回路ブロックの、入力端子についてはバックワード、出力端子についてはフォワード、双方向端子についてはフォワードおよびバックワードでパストレースすることによって、前記論理回路の外部端子から前記選択されたテスト対象の回路ブロックの入力端子に対して入力信号値を制御することが可能であるか、また前記選択されたテスト対象の回路ブロックの出力端子に対して出力信号値を観測することが可能であるかを検証する第３のステップと、
を備えていることを特徴とする。
【００１１】
【作用】
【００１２】
また上述のように構成された本発明のテスト回路の検証方法によれば、第１のステップによってテスト信号値および回路ブロックを選択するための信号値がデコーダ回路の外部端子に設定され、この設定された信号値をテスト回路内で論理値伝搬した場合のパスの活性化の条件が第２のステップによって決定され、設定された信号値を論理値伝搬することにより回路ブロックの入力端子に対しては入力信号値を制御することが可能であるか、また出力端子に対しては出力信号値を観測することが可能であるかが第３のステップによって検証される。これにより、テスト回路のミスを容易に検出することが可能となり、設計期間の大幅な短縮を図ることができる。
【００１３】
以上のように図１に示す参考例のバウンダリスキャンセルは、バウンダリスキャンセルに要求される機能を実現している。
【００１４】
よく知られているようにＤタイプシングルラッチは１０個のトランジスタで構成することが可能であり、ダイナミック型ゲートをトランスファゲート１個すなわちトランジスタ２個で実現するとすれば、図１に示す参考例においては、シフト動作を行わせるのに合計１２個のトランジスタで済むことになり、従来シフト動作を行わせるＤタイプフリップフロップ６を実現するのに１８個のトランジスタが必要であった場合に比べて素子数を削減することができる。
【００１５】
なお、ダイナミック型ゲート３はトランスファゲートなどのようにダイナミックにデータを保持できれば良く、実現方法はトランスファゲートに限定されるものではない。
【００１６】
また、上記参考例においては、アップデート用のフリップフロップとしてＤタイプシングルラッチを使用したがＤタイプのマスタースレーブフリップフロップを使用しても良い。
【００１７】
次に本発明によるテスト回路の検証方法の一実施例を図２乃至図８を参照して説明する。この実施例の具体的な処理手順を図２のフローチャートに示す。
【００１８】
図２において、１１ａは複数の回路ブロック間の接続関係を示す回路接続情報であり、１１ｂはその各々の回路ブロックの端子の属性（入力端子、出力端子、双方向端子）を示す端子属性情報、１１ｃは各々の回路ブロックを分割してテストするために必要なテストモード設定情報である。ここで、端子属性情報１１ｂとテストモード設定情報１１ｃについて、詳しく説明する。端子属性情報１１ｂの例を図３（ａ）に示し、テストモード設定情報１１ｃの例を図３（ｂ）に示す。そして各情報は回路ブロックがＡ，Ｂ，Ｃの３つある場合について示している。図３（ａ）においては、各々の回路ブロック（回路ブロックＡ，Ｂ，Ｃ）毎に、端子の属性が、入力端子、出力端子または双方向端子であるかを、それぞれＩＮＰＵＴ、ＯＵＴＰＵＴ、ＩＮ／ＯＵＴで示しており、回路ブロックＡの場合、入力端子はＡＩ１，ＡＩ２、出力端子はＡＯ１，ＡＯ２、更に双方向端子はＡＩＯ１，ＡＩＯ２である。また図３（ｂ）においては、回路ブロックＡ，Ｂ，Ｃのそれぞれについて、各々の回路ブロックをテストモードに設定するための情報を示している。例えば回路ブロックＡをテストする場合、通常動作からテスト動作に切り換えるための信号値の情報（ＴＥＳＴ＝１）、テスト対象回路ブロックを選択するための信号値の情報（ＡＩＮ＝０，ＢＩＮ＝０）、回路ブロックの双方向端子の入出力を切り換えるためのコントロール信号値の情報（ＣＩＮ＝０，１）を設定することを示している。図３（ｂ）においては、外部端子のみをテストモード設定に用いているが、内部端子をテストモード設定情報１１ｃに用いても構わない。回路ブロックの双方向端子の入出力を切り換えるためのコントロール信号について、図４を用いて更に説明する。図４において、回路ブロック２１のＡ端子が双方向端子であり、分割テスト時、双方向の外部端子Ｂで信号の入力制御と出力観測の両方を行うため、入力と出力を切り換える必要がある。その切り換えを行う外部端子がＣＩＮである。外部端子ＣＩＮに設定する信号値によって回路ブロック２１の双方向端子Ａの入出力を切り換えることができる。外部端子ＣＩＮに信号値“０”を設定した場合は（図４（ａ）参照）、回路ブロック２１の双方向端子Ａへ外部端子Ｂから信号を入力することが可能になり（外部端子Ｂから回路ブロック２１の双方向端子Ａへのパスが活性化される）、外部端子ＣＩＮに信号値“１”を設定した場合は（図４（ｂ）参照）、回路ブロック２１の双方向端子Ａから外部端子Ｂへ信号を出力することが可能になる（回路ブロック２１の双方向端子Ａから外部端子Ｂへのパスが活性化される）。この外部端子ＣＩＮに設定する情報が、回路ブロックの双方向端子の入出力を切り換えるためのコントロール信号値の情報であり、図３（ｂ）では、ＣＩＮ＝０，１で示している。なお、図４における２５は入力バッファである。
【００１９】
再び図２のフローチャートに戻る。設定情報の読み込み処理１２で、以上説明した回路接続情報１１ａ、端子属性情報１１ｂとテストモード設定情報１１ｃを読み込む。
【００２０】
設定情報の読み込み処理１２の後、テスト回路検証処理１３を行っていくが、図５と図６の論理回路を対象にして、テスト回路検証処理で行う処理を詳細に説明していく。図５は、回路ブロック毎に分割してテストが行えるように、テスト回路が付加された論理回路図である。図５における論理回路は、マルチプレクサを用いた論理回路で、本実施例のテスト回路検証方法が対象とする論理回路の一例である。マルチプレクサを用いた分割テストは一般的であるので詳細の説明は省略するが、図５における回路ブロックＡにおいて、マルチプレクサ３６は、回路ブロックＡの入力端子へ入力する信号を外部端子３９2 で制御するために、またマルチプレクサ３２，３４，３７は、回路ブロックＡの出力端子から出力する信号を外部端子４０1 ，４０2 で観測するために付加している。マルチプレクサ３２は二つの入力信号をコントロール端子ＴＳＴＢによって選択し、マルチプレクサ３４，３６はコントロール端子ＴＳＴＡによって選択し、マルチプレクサ３７はコントロール端子ＴＳＴＣによって選択する。したがって分割テストを行うためには、このコントロール端子の論理値を決定する必要がある。決定されたコントロール端子の論理値は、分割テストにおいて、回路ブロック端子から外部端子までの経路（パス）を活性化させるための条件値となる。図６は、回路ブロックを選択するためのデコーダ回路であり、図５におけるマルチプレクサのコントロール端子（ＴＳＴＡ，ＴＳＴＢ，ＴＳＴＣ）の論理値を決定させるためのテスト回路であり、デコーダ回路４５を用いている。図６において、ＴＥＳＴ，ＡＩＮとＢＩＮは、テストモード設定情報を設定するための外部端子であり、デコーダ回路４５を通して複数のマルチプレクサのコントロール端子（ＴＳＴＡ，ＴＳＴＢ，ＴＳＴＣ）をコントロールしている。
【００２１】
以下、テスト回路検証処理１３について順に説明していく。テスト回路検証処理１３には、まずテスト対象とする回路ブロックを選択し、その選択した回路ブロックのテストモード設定情報を、指定した外部端子または内部端子に設定する処理を実行する。この処理が図２におけるテストモード設定処理１４である。テスト対象の回路ブロックの選択は、全ての回路ブロックを順に選択できればどのように行っても構わないが、本実施例においては、テストモード設定情報１１ｃで記した順番に従い選択する。図３（ｂ）がテストモード設定情報１１ｃであるとすれば、テスト対象として最初に選択される回路ブロックは、図５における回路ブロックＡであり、次が回路ブロックＢ、その次が回路ブロックＣである。図６の外部端子ＴＥＳＴ，ＡＩＮ，ＢＩＮに、図３（ｂ）における回路ブロックＡのテストモード設定情報を指定すると、外部端子ＴＥＳＴに１、ＡＩＮに“０”、ＢＩＮに“０”を、それぞれ設定することになる。また、テストモード設定情報１１ｃには、回路ブロックの双方向端子に対して、入出力を切り換えるための信号値情報が含まれており、この信号値情報の設定も併せてテストモード設定処理１４で実行する。ただし、入力に切り換えるための信号値の設定と、出力に切り換えるための信号値の設定があるため、テストモード設定処理１４を、２回実行する。この２つの設定を、以下それぞれ入力モード設定、出力モード設定と呼ぶことにする。
【００２２】
次に、テストモード設定処理１４において外部端子または内部端子に設定したテストモード設定情報１１ｃを、回路内部へ伝搬させていく論理値伝搬処理１５を実行する。テストモード設定処理１４で、回路ブロックＡをテスト対象とする場合に、図６においてそれぞれＴＥＳＴ＝１，ＡＩＮ＝０，ＢＩＮ＝０と設定した。論理値伝搬処理１５では、外部端子ＴＥＳＴ，ＡＩＮ，ＢＩＮに設定した論理値を順に伝搬させていく処理を行う。
【００２３】
外部端子ＴＥＳＴに設定された論理値は入力バッファ４３1 を介してデコーダ回路４５内のアンド回路４８1 ，４８2 ，４８3 に送られる。また外部端子ＡＩＮに設定された論理値は入力バッファ４３2 を介してデコーダ回路４５内のインバータ回路４６1 に送られ、更にアンド回路４８1 および４８3 に送られるとともにデコーダ回路４５のインバータ回路４７1 を介してアンド回路４８2 に送られる。また外部端子ＢＩＮに設定された論理値は入力バッファ４３3 を介してデコーダ回路４５のインバータ回路４６2 に送られ、更にアンド回路４８1 および４８2 に送られるとともにデコーダ回路４５のインバータ回路４７2 を介してアンド回路４８3 に送られる。そして、アンド回路４８1 の出力はコントロール端子ＴＳＴＡに、アンド回路４８2 の出力はコントロール端子ＴＳＴＢに、アンド回路４８3 の出力はコントロール端子ＴＳＴＣに送られる。上述の設定された論理値を伝搬させると、回路ブロックＡをテストする場合にはＴＳＴＡ＝１，ＴＳＴＢ＝０，ＴＳＴＣ＝０となる。
【００２４】
論理値伝搬処理１５を行った後、テスト対象の回路ブロックに対して、回路ブロックの入力端子から外部端子までのパス、回路ブロックの出力端子から外部端子までのパス、回路ブロックの双方向端子から外部端子までのパスの全てが活性化され、入力信号または出力信号を制御または観測できるかどうかをチェックする経路探索（パストレースともいう）処理１６を行う。図５において、マルチプレクサのコントロール端子（ＴＳＴＡ，ＴＳＴＢ，ＴＳＴＣ）の論理値が全て正しく伝搬し、テスト対象の回路ブロックの端子から外部端子までのパスが全て活性化していれば、テスト回路は正常であると判断できる。マルチプレクサのコントロール端子に正しい論理値が伝搬し、回路ブロックの端子と外部端子間のパスが活性化しているかどうかを調べるために、テスト対象の回路ブロックにおける全端子を一端子づつパストレースしてチェックしていく。図５に示す論理回路において、回路ブロックＡをテスト対象とする場合についてパストレース処理１６の説明を行う。回路ブロックＡにおいて、端子は全部で６端子であり、ＡＩ１，ＡＩ２が入力端子、ＡＯ１，ＡＯ２が出力端子、ＡＩＯ１，ＡＩＯ２が双方向端子である。パストレース処理１６は、入力端子、出力端子、双方向端子の属性によって処理の方法が違うので、属性毎に処理方法を以下説明する。
【００２５】
まず入力端子のパストレース処理について説明する。端子名ＡＩ１を例にパストレースする。ＡＩ１の端子に関する接続回路を抜きだした論理回路が図７である。図７（ａ）は、マルチプレクサのコントロール端子（ＴＳＴＡ）の論理値が“１”である場合の論理値伝搬状況を示したものである。Ｘの信号値は不定を表す。また図７（ｂ）は、マルチプレクサのコントロール端子（ＴＳＴＡ）の論理値が“０”である場合の論理値伝搬状況を示したものである。まず図７（ａ）の場合でパストレース処理を説明する。回路ブロックＡの端子ＡＩ１からのパスは、ＴＳＴＡ＝１であるので、マルチプレクサ回路３６のナンド回路３６ｄ→ナンド回路３６ａ→外部端子３９2 のパスが活性化され、外部端子３９2 から回路ブロックへの入力信号を制御することが可能となる。しかし、図７（ｂ）のようにマルチプレクサ回路３６のコントロール端子の論理値が、図７（ａ）とは逆のＴＳＴＡ＝０であった場合、マルチプレクサ回路３６のナンド回路３６ｄ→ナンド回路３６ｃ→回路ブロックＣのパスとなり、外部端子からの制御が行えない。よってこの場合は、テスト回路のミスとなる。入力端子におけるパストレース処理は、回路ブロックの入力端子から信号の流れとは逆にパスを順に探索していき、図７（ａ）における回路ブロックＡのＡＩ１端子のように、パスが外部端子まで活性化するかどうかをチェックする処理であるので、バックワードのパストレース処理となる。なお、図７において５０は入力バッファである。
【００２６】
次に、回路ブロックの出力端子のパストレース処理について説明する。図５における回路ブロックＡのＡＯ１端子を例にパストレースする。ＡＯ１の端子に関する接続回路を抜きだした論理回路が図８である。図８（ａ）は、マルチプレクサのコントロール端子（ＴＳＴＣ）の論理値が“０”である場合の論理値伝搬状況を示したものであり、また図８（ｂ）は、マルチプレクサのコントロール端子（ＴＳＴＣ）の論理値が“１”である場合の論理値伝搬状況を示したものである。まず図８（ａ）の場合でパストレース処理を説明する。回路ブロックＡの端子ＡＯ１からのパスはＴＳＴＣ＝０であるので、マルチプレクサ回路３７のナンド回路３７ｃ→ナンド回路３７ｄ→外部端子４０2 のパスが活性化され、外部端子４０2 で回路ブロックからの出力信号を観測することが可能となる。しかし、図８（ｂ）のようにマルチプレクサのコントロール端子の論理値が、図８（ａ）とは逆のＴＳＴＣ＝１であった場合、マルチプレクサ回路３７のナンド回路３７ｃから先へ進めないため、パストレース処理はここでストップしてしまい外部端子での観測が行えない。よってこの場合は、テスト回路のミスとなる。出力端子におけるパストレース処理は、回路ブロックの出力端子から信号の流れに沿ってパスを順に探索していき、図８（ａ）における回路ブロックＡのＡＯ１端子のようにパスが外部端子まで活性化するかどうかをチェックする処理であるので、フォワードのパストレース処理となる。なお、図８において５１は出力バッファである。
【００２７】
最後に回路ブロックの双方向端子のパストレース処理について説明する。双方向端子は、入力端子で行うバックワードのパストレース処理と、出力端子で行うフォワードのパストレース処理の両方を行うことになる（双方向端子は、入力端子としての機能と、出力端子としての機能をもつ端子であるため）。ただし、バックワードのパストレース処理の前には入力モードの設定処理、フォワードのパストレース処理の前には出力モードの設定処理を予め行ってから実行する。バックワードのパストレース処理とフォワードのパストレース処理の方法は、前記説明の処理方法と同様である。
【００２８】
以上、説明してきたパストレース処理１６を回路ブロックの全端子について順に実行し、テスト回路にミスがないかを検証する。
【００２９】
一つのテスト対象回路ブロックについてテスト回路検証処理が終了したら、次のテスト対象回路ブロックを選択し、全ての回路ブロックに対して、テスト回路検証処理を繰り返し実行する。
【００３０】
全ての回路ブロックに対してテスト回路検証処理が終了したら、最後にテスト回路検証結果を情報として出力する結果出力処理１８を実行する（図２参照）。結果出力処理１８は、テスト回路のミスがどの回路ブロックのどの端子で起こっているか、またどこの場所で起こっているか等を示す検証結果情報１９を出力する。
【００３１】
以上図２における処理フローに従い処理を実行することで、回路ブロック毎に分割してテストが行えるようにテスト回路を付加した論理回路に対してのテスト回路検証が可能となる。
【００３２】
【発明の効果】
また本発明のテスト回路の検証方法によれば、挿入されたテスト回路のミスを容易に検出することが可能となるため、設計期間の大幅な短縮を図かることができる。
【図面の簡単な説明】
【図１】バウンダリスキャンセルの一参考例の構成を示すブロック図。
【図２】本発明によるテスト回路の検証方法の具体的な手順を示すフローチャート。
【図３】本発明にかかる端子属性情報およびテストモード設定情報の具体例を説明する説明図。
【図４】コントロール信号によって回路ブロック双方向端子の入出力が切換えられることを説明する論理回路図。
【図５】本発明によってテストされる論理回路の一例を示すブロック図。
【図６】テスト対象の回路ブロックを選択するためのデコーダの回路図。
【図７】バックワードのパストレース処理を説明するための論理回路図。
【図８】フォワードのパストレース処理を説明するための論理回路図。
【図９】従来のバウンダリスキャンセルの構成を示すブロック図。
【図１０】従来のスキャンデザイン回路の構成を示す模式図。
【符号の説明】
１  マルチプレクサ
２  Ｄタイプシングルラッチ
３  ダイナミックゲート
４  Ｄタイプシングルラッチ
８  マルチプレクサ
【図１】
0003695768.tif 000002
【図２】
0003695768.tif 000003
【図３】
0003695768.tif 000004
【図４】
0003695768.tif 000005
【図５】
0003695768.tif 000006
【図６】
0003695768.tif 000007
【図７】
0003695768.tif 000008
【図８】
0003695768.tif 000009
【図９】
0003695768.tif 000010
【図１０】
0003695768.tif 000011