(57)【特許請求の範囲】
【請求項１】
通常動作モードにおいて、入力オペランド及び入力オペコードを入力され、前記入力オペコードにより指定される所定処理を行い、出力オペランド及び出力オペコードの少なくともいずれか一方を出力する集積回路にスキャン手法を適用する集積回路の設計方法であって、
スキャンモードが設定された場合、前記入力オペコードにより指定される前記所定処理に係わらず、予め固定された、前記所定処理より簡易な処理を前記入力オペランドに行い、
前記処理を行い得られた結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力することを特徴とする集積回路の設計方法。
【請求項２】
通常動作モードにおいて、入力オペランド及び入力オペコードを入力され、前記入力オペコードにより指定される所定処理を行い、出力オペランド及び出力オペコードの少なくともいずれか一方を出力する集積回路にスキャン手法が適用された集積回路であって、
前記集積回路は前記所定処理を行う手段に加えて、
スキャンモードを設定するスキャンモード設定手段と、
前記スキャンモード設定手段により前記スキャンモードが設定された場合、前記入力オペコードにより指定される前記所定処理に係わらず、予め固定された、前記所定処理より簡易な処理を前記入力オペランドに行う処理手段と、
前記処理手段が前記処理を行い得られた結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力する手段とをさらに備えることを特徴とする集積回路。
【請求項３】
前記集積回路は演算器であり、
前記スキャンモード設定手段は、スキャンモード設定信号を入力されるスキャンモード設定信号入力端子であり、
前記処理手段は、前記スキャンモード設定信号が入力されると、固定された前記処理を前記入力オペランドに行うものであり、
前記出力手段は、前記処理手段が処理した結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力するものであることを特徴とする請求項２記載の集積回路。
【請求項４】
前記集積回路は書込及び読出可能なメモリであり、
通常動作において、前記入力オペランドは書込データであり、前記入力オペコードはアドレスと、書込又は読出を指定する制御信号とを含み、前記出力オペランドは読出データであり、
前記スキャンモード設定手段は、スキャンモード設定信号を入力されるスキャンモード設定信号入力端子であり、
前記処理手段は、前記スキャンモード設定信号が入力されると、前記制御信号に基づいて、前記入力オペランド又は前記入力オペランドのいずれかを選択してバイパスするものであり、
前記出力手段は、前記処理手段がバイパスしたものを前記出力オペランドとして出力するものであることを特徴とする請求項２記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は集積回路及びその設計方法であって、特にスキャン手法を用いて集積回路を設計する方法及びその方法を用いて設計された集積回路に関する。
【０００２】
【従来の技術】
近年、スタンダードセル（以下、ＳＣという）を用いて論理合成／自動配置配線を行い所望の回路を実現することが行われている。これは、一定の機能を有するＳＣを予めライブラリに登録しておき、仕様が決定されそのロジック構成が機能記述言語で記述された所望の回路を複数のＳＣを組み合わせて論理合成を行ってネットリストを作成し、このリストを用いて自動配置配線を行うことで、回路パターンを実現するという手法である。
【０００３】
この手法は、機能記述言語で記述した機能を回路パターンまで自動生成することが可能であるため、設計の期間短縮及び設計自由度の向上に有効である。よって、ＳＣを用いた論理合成/自動配置配線の手法は、ＡＳＩＣ（Application Specific IC）に限らず、高性能なカスタム設計を必要とするマイクロプロセッサにも部分的に応用されている。
【０００４】
さらにこの手法は、テスト容易化のためスキャン手法を適用することにより、製品出荷時におけるテストパターンをＡＴＰＧ（Auto Test Pattern Generator ）を用いて自動生成することが可能であり、高い故障検出率を実現することができる。
【０００５】
ここでスキャン手法とは、回路をフリップフロップ（以下、Ｆ／Ｆという）から成る順序回路とＦ／Ｆを含まない論理回路から成る組み合わせ回路とに大別し、Ｆ／Ｆを直列に接続して１つのシフトレジスタとし、外部から所望の値を入力して組み合わせ回路に伝搬して動作させ、動作結果をシフトレジスタから順次取り出して検査する手法である。スキャンＦ／Ｆの間に挟まれた論理回路は、その部分だけ規模の小さい回路として切り出して検査対象とすることができる。よって、ＡＴＰＧを用いて故障検出可能な入力の組み合わせを容易に解析することが可能となる。
【０００６】
ところが、メモリや高速演算器等のように特定の固定された機能を有する回路においては、ＳＣの組み合わせにより実現するのではなく、人手により回路及びレイアウト設計を行うことで、素子面積の最小化及び動作の高速化を達成させる手法が用いられている。このような回路は、ＭＢ（Macro Block）として予め設 計しておいたもの、あるいは他社からＩＰ（Intellectual Property）として購 入したものを用いる場合が多い。
【０００７】
このようなＭＢ又はＩＰはそれ単体で装置として用いられるのではなく、その周囲に用途に応じた回路を配置して組み合わせた状態で用いられる。しかし、ＭＢ又はＩＰの周囲にどのような回路が配置されるかは設計時点において不明である。そこで、通常はＭＢ又はＩＰ単体で故障検出が可能なように、回路内部にスキャンＦ／ＦやＢＩＳＴ（Build-In Self Test）といったテスト容易化設計が行われている。
【０００８】
よって、ＳＣを用いて論理合成／自動配置配線を行った回路はスキャン手法によりテスト容易化が可能であり、またＭＢ又はＩＰ単体はテスト手法が確立されているのでテストの容易化が可能である。
【０００９】
【発明が解決しようとする課題】
しかし、ＳＣにより合成した回路とＭＢ又はＩＰとを組み合わせた従来の装置には、次のような問題があった。
【００１０】
図６に示されたように、ＳＣを組み合わせたＳＣブロックＳＣＢ２と、ＭＢ又はＩＰから成るカスタムブロックＣＢ２とが配置されている。ＳＣブロックＳＣＢ２内において、Ｆ／Ｆがスキャン接続されており、装置外部に設けられたスキャン入力端子ＳＩＴから所望のデータの入力設定及びテスト結果の出力が可能である。また、カスタムブロックＣＢ２内のテストは、設計時に確立された手法に従って実施することができる。
【００１１】
ところが、カスタムブロックＣＢ２と組み合わせたことにより、ＳＣブロックＳＣＢ２内にはスキャン設計によって故障検出が可能な領域ＡＲ２と、可能でない領域ＡＲ３とが存在する。この領域ＡＲ３は、カスタムブロックＣＢ２とＳＣブロックＳＣＢ２との境界領域に相当し、スキャンにより入力の制御及び出力の観測をトレースすることができないため、故障検出が不可能である。
【００１２】
図６に示されたように、カスタムブロックＣＢ２内に含まれるＦ／Ｆを用いてスキャン設計を行う手法も考えられる。ところが、このような設計を行うとカスタムブロックＣＢ２の面積が増大し、また動作周波数の低下も招くこととなりやすい。このため、カスタムブロックＣＢ２を用いる意義が失われることとなる。
【００１３】
本発明は上記事情に鑑み、スキャン手法を用いることが可能なＳＣブロックと、ＭＢ又はＩＰから成るカスタムブロックとを組み合わせた場合のブロック間の境界領域のテストを容易化することが可能な集積回路の設計方法及びこの手法を用いて設計された集積回路を提供することを目的とする。
【００１５】
【課題を解決するための手段】
本発明の集積回路の設計方法は、通常動作モードにおいて、入力オペランド及び入力オペコードを入力され、前記入力オペコードにより指定される所定処理を行い、出力オペランド及び出力オペコードの少なくともいずれか一方を出力する集積回路にスキャン手法を適用する集積回路の設計方法であって、
スキャンモードが設定された場合、前記入力オペコードにより指定される前記所定処理に係わらず、予め固定された、前記所定処理より簡易な処理を前記入力オペランドに行い、
前記処理を行い得られた結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力することを特徴とする。
【００１７】
また本発明の集積回路は、通常動作モードにおいて、入力オペランド及び入力オペコードを入力され、前記入力オペコードにより指定される所定処理を行い、出力オペランド及び出力オペコードの少なくともいずれか一方を出力する集積回路にスキャン手法が適用された集積回路であって、
前記集積回路は前記所定処理を行う手段に加えて、
スキャンモードを設定するスキャンモード設定手段と、
前記スキャンモード設定手段により前記スキャンモードが設定された場合、前記入力オペコードにより指定される前記所定処理に係わらず、予め固定された、前記所定処理より簡易な処理を前記入力オペランドに行う処理手段と、
前記処理手段が前記処理を行い得られた結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力する手段とをさらに備えることを特徴とする。
【００１８】
ここで、前記集積回路は演算器であってもよく、この場合は前記スキャンモード設定手段は、スキャンモード設定信号を入力されるスキャンモード設定信号入力端子であり、前記処理手段は、前記スキャンモード設定信号が入力されると、固定された前記処理を前記入力オペランドに行うものであり、前記出力手段は、前記処理手段が処理した結果を、前記出力オペランド及び出力オペコードの少なくともいずれか一方として出力するものであってもよい。
【００１９】
あるいは、前記集積回路は書込及び読出可能なメモリであってもよく、この場合は通常動作において前記入力オペランドは書込データであり、前記入力オペコードはアドレスと、書込又は読出を指定する制御信号とを含み、前記出力オペランドは読出データであり、前記スキャンモード設定手段は、スキャンモード設定信号を入力されるスキャンモード設定信号入力端子であり、前記処理手段は、前記スキャンモード設定信号が入力されると、前記制御信号に基づいて、前記入力オペランド又は前記入力オペランドのいずれかを選択してバイパスするものであり、前記出力手段は、前記処理手段がバイパスしたものを前記出力オペランドとして出力するものであってもよい。
【００２０】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を参照して説明する。
【００２１】
本実施の形態は、スキャン設計が行われたＳＣブロックと、ＩＰ又はＭＢから成るカスタムブロックとを組み合わせた集積回路におけるテスト容易化を図る設計方法及びこの方法により設計された集積回路に適用されるものであり、集積回路の構成を図１に示す。
【００２２】
設計方法としては、カスタムブロックＣＢ１内に、通常動作モードからスキャンモードに切り替えを行うスキャンモード設定信号入力端子を新規に設ける。そして、スキャンモード設定信号がこの端子に入力された場合、カスタムブロックＣＢ１に入力された信号を、通常動作よりも簡易な論理動作を行って出力させるバイパス経路を、カスタムブロックＣＢ１に付加する。
【００２３】
これにより、カスタムブロックＣＢ１がスキャンモードでは単純な論理構成を有する機能ブロックに置き換わる。このため、ＳＣブロックＳＣＢ１に対してＡＴＰＧを用いてテストパターンの自動生成を行う時に、カスタムブロックＣＢ１とＳＣブロックＳＣＢ１とを併せて行うことが可能となる。この結果、従来はスキャンにより故障検出が不可能であったブロック間の境界領域（図６における領域ＡＲ３）の故障検出が可能となり、回路全体の故障検出率を向上させることができる。
【００２４】
ここで、スキャンモードで動作する構成の一例としては、例えば図１に示されたように、ＳＣブロックＳＣＢ１からカスタムブロックＣＢ１への二つの入力経路Ｌ１１及びＬ１２が排他的論理和（以下、ＥＸＯＲという  ）ゲートＥＸに接続されており、その出力が出力経路Ｌ１３よりＳＣブロックＳＣＢ１に入力される。スキャンモードでは、カスタムブロックＣＢ１に入力された信号に対してこのような簡易な論理演算を行ってその出力をＳＣブロックＳＣＢ１に戻す。これにより、カスタムブロックＣＢ１に残っている過去の履歴に影響されることなく、入力データに直接対応した出力を取り出して観測することが可能となる。よって、ＡＴＰＧによりテストパターンを自動生成しテストを容易することができる。
【００２５】
次に、カスタムブロックＣＢ１に付加されるスキャンモードの概念を一般化したものについて、図２を用いて説明する。
【００２６】
通常動作において、演算の対象となるｎ（ｎは１以上の整数）個の入力データを入力オペランドＩＮＤ１〜ＩＮＤｎ、演算の種類を指定するｐ（ｐは１以上の整数）個の入力データを入力オペコードＩＮＣ１〜ＩＮＣｐとする。入力オペランドＩＮＤ１〜ＩＮＤｎに対し、入力オペコードＩＮＣ１〜ＩＮＣｐにより指定された演算が行われる。これにより、演算結果としてｍ（ｍは１以上の整数）個のデータが出力オペランドＯＵＴＤ１〜ＯＵＴＤｍ（ｍは１以上の整数）として出力され、さらに演算フラグ等を示すｑ（ｑは１以上の整数）個の出力オペコードが出力される。
【００２７】
上記通常動作に対し、スキャンモード設定信号ＳＭＳが入力されると、入力オペコードＩＮＣ１〜ＩＮＣｎで指定される演算の種類が無視され、スキャンモード専用の予め固定された演算に切り替わる。この演算内容は任意に設定することができるが、上記ＥＸ−ＯＲ演算のように通常動作と同等あるいはより簡易な論理動作であり、且つ高い故障検出率が可能な演算であることが望ましい。
【００２８】
カスタムブロックＣＢ１の具体的な例として、演算器に対する設計方法及びその構成について図３を用いて説明する。演算器ＡＬＵに、二つの入力オペランドＩＮＤＡ及びＩＮＤＢが入力される。演算オペコードＯＯＣが入力されて演算の種類が指定され、演算を行った結果が出力オペランドＯＵＴＤとして出力され、キャリー発生等の演算結果を示すフラグが演算フラグＯＦとして出力される。
【００２９】
このような一般的に用いられている演算器ＡＬＵに、スキャンモードに設定するスキャンモード設定信号ＳＭＳを入力する端子と、この信号ＳＭＳが入力されたときに演算オペコードＯＯＣを無視して固定された演算を行う手段と、この固定演算を行った結果を出力オペランドＯＵＴＤとして出力する手段と、この演算結果を示す演算フラグＯＦを出力する手段とを付加する。
【００３０】
通常動作では、演算オペコードＯＯＣにより指定される演算には例えば算術演算の加算、減算、乗算、除算や、論理演算のＡＮＤ，ＯＲ，ＥＸＯＲ等の複数種類の演算が含まれる。これに対し、スキャンモードに設定されたときは、例えば論理演算のＥＸＯＲ等の一種類の演算に固定される。一般には演算器ＡＬＵにＥＸＯＲの演算手段が含まれているので、新たに付加することなく流用することができる。
【００３１】
また、演算フラグＯＦの生成に関しても、スキャンモードでは演算オペコードＯＯＣに対して圧縮回路ＣＣを用いて出力データのビット数を減らして演算フラグＯＦを出力する。例えば、演算オペコードＯＯＣが３ビットで構成されている場合、４ビットの入力を圧縮回路ＣＣに入力してＥＸＯＲ等の演算を行い、１ビットの演算フラグＯＦを出力する。
【００３２】
スキャンモードにおける固定演算として上述したようにＥＸＯＲを用いる場合は、二つの入力オペランドＩＮＤＡ及びＩＮＤＢの入力から演算に至る経路の故障検出が可能である。
【００３３】
これに対し、入力オペランドＩＮＤＢの値にかかわらず「１」に固定し、入力オペランドＩＮＤＡと「１」とを乗算する演算を用いることも考えられる。この場合は演算内容はより簡易なものとなるが、入力オペランドＩＮＤＢの入力経路における故障検出を行うことはできない。
【００３４】
カスタムブロックＣＢ１の他の具体的な例として、書込及び読出が可能なメモリに対する設計方法及びその構成について、図４を用いて説明する。メモリＭＣＡに、入力オペコードとしてアドレスＡＤ、読出又は書込を指定するリードライト信号Ｒ／Ｗ、動作を活性化させるイネーブル信号ＥＮＣが入力され、書込データとして入力オペランドＩＮＤが入力される。そして、書込が指定されたときは、アドレスＡＤにより指定されたアドレスに書込データが書き込まれ、読出が指定されたときは、アドレスＡＤにより選択されたアドレスに書き込まれているデータが出力オペランドＯＵＴＤとして読み出される。
【００３５】
上記構成を有する通常のメモリに対し、スキャンモードに設定するスキャンモード設定信号ＳＭＳを入力する端子と、この信号ＳＭＳが入力されるとアドレスＡＤを無視してアドレスを「０」番地に固定する手段と、入力オペランドＩＮＤとして入力された書き込みデータをバイパスして出力オペランドＯＵＴＤとして出力する手段とを付加する。
【００３６】
これにより、スキャンモード設定信号ＳＭＳが入力されると、アドレスＡＤの如何にかかわらず、またこれまでに書き込まれているデータの履歴とは無関係に、入力オペランドＩＮＤが出力オペランドＯＵＴＤとして出力される。よって過去のデータに影響されることなく入出力関係が単純化され、故障検出が可能となる。
【００３７】
また、入力オペランドＩＮＤのみならず、入力されたアドレスＡＤを出力オペランドＯＵＴＤとして出力することにより、アドレスＡＤの入力経路の故障検出も可能である。この場合は、入力オペランドＩＮＤとアドレスＡＤとのいずれか一方を切り換えて出力する制御手段が必要となるが、例えばリードライト信号Ｒ／Ｗを制御用に用いてもよい。
【００３８】
このように、本実施の形態に従ってメモリにスキャンモードの構成を付加することにより、入力と出力との論理関係を単純化しＡＴＰＧによるテストパターンの自動生成が可能となる。
【００３９】
上記演算器ＡＬＵやメモリＭＣＡでは、出力オペランドが存在する。しかし、カスタムブロックＣＢには必ずしも出力オペランドが存在せず、演算フラグのみが存在する場合もあり、このようなものに対しても本実施の形態に従いスキャンモードを付加することも可能である。
【００４０】
この場合の一例として一致検出器を図５に示す。少なくとも二つの入力オペランドＩＮＤＡとＩＮＤＢとが一致検出器ＤＴに入力され、例えばＥＸＯＲ演算等により一致又は不一致が判断される。演算結果は、演算フラグＯＦとして出力される。
【００４１】
このような一致検出器ＤＴに、本実施の形態に従って同等又はスキャンモード設定信号ＳＭＳを入力する手段と、この信号が入力された場合により単純化された演算を行う手段と、その演算結果を出力する手段とを付加する。これにより、スキャンモード設定信号が入力されると、入力オペランドＩＮＤＡとＩＮＤＢとの間で所定の演算が行われ、演算フラグＯＦとして出力される。演算内容としては、通常動作と同様にＥＸＯＲ演算を行ってもよい。あるいは、一方の入力オペランドＩＮＤＡのみを使用し、他の入力オペランドＩＮＤＢはその値にかかわらず例えば「１」の値に固定して演算を行ってもよい。
【００４２】
上述したように、本実施の形態に従ってスキャンモードを付加する設計を行ったカスタムブロックＣＢ１をＳＣブロックＳＣＢ１と組み合わせることで、カスタムブロックＣＢ１の入出力の論理関係が単純化されるので、両ブロック間の境界領域においてもスキャン手法を用いて故障検出が可能となる。これにより、詳細な回路仕様を設計者が認識することなく、ＡＴＰＧを用いて自動的にテストパターンを発生させることができる。
【００４３】
また、本実施の形態による設計方法に従ってスキャンモードを付加させる場合、カスタムブロックに通常備わっている制御系を利用して固定された単純な論理演算により出力を行うという最小限の機能を付加することにより実現が可能である。よって、スキャンモードの付加がもたらず回路規模への増大や動作速度の低下といった影響を最小限に抑えることができる。
【００４４】
上述した実施の形態は一例であり、本発明を限定するものではない。例えば、カスタムブロックとして図３、図４に示された演算器ＡＬＵやメモリＭＣＡの構成は一例であり、これに限定されず様々な変形が可能である。
【００４５】
【発明の効果】
以上説明したように、本発明の集積回路の設計方法及びこの方法により設計された集積回路によれば、スキャンモードにおける入出力の論理が通常動作より簡易化されることにより、ＡＴＰＧ等を用いてテストパターンを自動的に発生しテストを容易化することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態による集積回路の構成を示したブロック図。
【図２】同集積回路に含まれるカスタムブロックの構成を示したブロック図。
【図３】同カスタムブロックの一例として演算器の構成を示したブロック図。
【図４】同カスタムブロックの一例としてメモリの構成を示したブロック図。
【図５】同カスタムブロックの一例として一致検出器の構成を示したブロック図。
【図６】従来の集積回路の構成を示したブロック図。
【符号の説明】
ＳＣＢ１  スタンダードセルブロック
ＣＢ１  カスタムブロック
Ｆ／Ｆ  スキャンフリップフロップ
ＳＩＴ  外部入出力端子
ＡＲ１  領域（スキャン設計により故障検出可能な領域）
ＩＮＤ１〜ＩＮＤｎ、ＩＮＤＡ、ＩＮＤＢ、ＩＮＤ  入力オペランド
ＯＵＴＤ１〜ＯＵＴＤｍ、ＯＵＴＤ  出力オペランド
ＩＮＣ１〜ＩＮＣｐ  入力オペコード
ＯＵＴＣ１〜ＯＵＴｑ  出力オペコード
ＳＭＳ  スキャンモード設定信号
ＯＯＣ  演算オぺコード
ＯＦ  演算フラグ
ＣＣ  圧縮回路
ＡＤ  アドレス
Ｒ／Ｗ  リードライト信号
ＥＮＣ  イネーブル信号
ＤＴ  一致検出器
【図１】
0003677422.tif 000002
【図２】
0003677422.tif 000003
【図３】
0003677422.tif 000004
【図４】
0003677422.tif 000005
【図５】
0003677422.tif 000006
【図６】
0003677422.tif 000007