(57)【特許請求の範囲】
【請求項１】
第１乃至第３の回路に対して第１のテストを行うテスト回路であって、
前記第１の回路の出力及びスキャンイン信号を入力し、パラレルの態様の第１の出力及びスキャン信号たる第２の出力を選択的に出力する第１のスキャンパスと、
前記第１のスキャンパスの前記第１の出力を入力する入力端群及び出力端群を有する第４の回路と、
前記第１のスキャンパスの前記第１の出力と、前記第４の回路の出力とを選択的に前記第２の回路に出力する選択手段と、
前記第１のスキャンパスの第２の出力と、前記第２の回路の出力と、前記第４の回路の出力とを入力し、これら３者の何れか一つを選択的に前記第３の回路に出力する第２のスキャンパスと
を備え、
前記第４の回路に対して第２のテストをも行うテスト回路。
【請求項２】
前記第２のスキャンパスはデータ圧縮機能を有する、請求項１記載のテスト回路。
【請求項３】
前記第２のスキャンパスは、前記第４の回路の出力を選択的に前記第３の回路に与える場合にＭＩＳＲ回路を構成する、請求項２記載のテスト回路。
【請求項４】
前記第２のスキャンパスは
前記第２の回路の出力に対してビット毎に設けられ、前記データ圧縮機能を発揮するデータ圧縮回路からなり、
前記データ圧縮回路の各々は
前記第２の回路の出力を受ける通常入力端と、前記スキャン信号が伝搬するスキャン入力端と、出力端とを含むスキャンフリップフロップと、
前記スキャンフリップフロップの前記スキャン入力端に接続された出力端と、前記出力端に選択的に接続される第１及び第２の入力端とを含むセレクタと、
前記セレクタの前記第１の入力端に出力する論理回路と
を有し、
前記論理回路の各々は、自身に対応する前記スキャンフリップフロップの出力を保持するループを、前記セレクタと共に形成し、前記第２のテストの結果が不良であれば前記スキャンフリップフロップに所定の論理を与え、
前記スキャン信号は前記セレクタの前記第２の入力端を伝搬する、請求項２記載のテスト回路。
【請求項５】
第１乃至第５の回路に対して第１のテストを行うテスト回路であって、
前記第１の回路の出力及びスキャンイン信号を入力し、パラレルの態様の第１の出力及びスキャン信号たる第２の出力を選択的に出力し、前記第１の出力は前記第２の回路に入力する第１のスキャンパスと、
前記第１のスキャンパスの前記第１の出力と、前記第２の回路の出力とを選択的に前記第５の回路に出力する選択手段と、
前記第１のスキャンパスの第２の出力と、前記第３の回路の出力と、前記第５の回路の出力とを入力し、これら３者の何れか一つを選択的に前記第４の回路に出力する第２のスキャンパスと
を備え、
前記第５の回路に対して第２のテストをも行うテスト回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はスキャンパス、特に非同期ＲＡＭコア及びロジック回路の周辺に設けられるスキャンパスに関する。
【０００２】
【従来の技術】
図１６は、３つのロジック部８１〜８３を含むロジック領域８０、およびロジック領域８０によって囲まれた非同期式のＲＡＭコア９１に対して、スキャンパス１〜３を設けるスキャンテスト方式を用いたテスト手法を行うための構成を示すブロック図である。スキャンテスト方式では、チップの内部に存在するフリップフロップ（ＦＦ）をスキャンフリップフロップ（ＳＦＦ）に置換し、スキャンパスを構成する。
【０００３】
例えば図１６では、シリアルのスキャンイン信号ＳＩ１を用いてスキャンパス１〜３へと順次テストデータを入力し、テスト実行後にはシリアルのスキャンアウト信号ＳＯとしてテスト結果を出力する。スキャンパス１，２はＲＡＭコア９１と共にＲＡＭブロック９２を構成している。
【０００４】
図１７は、ＲＡＭブロック９２の詳細を示す回路図である。スキャンパス１はスキャンフリップフロップ１０〜１２によって、スキャンパス２はスキャンフリップフロップ２０〜２２及びセレクタ２０３，２１３，２２３によって、それぞれ構成されている。スキャンフリップフロップ１０〜１２，２０〜２２はいずれも制御信号の値が“０”／“１”を採るに従って、それぞれ出力端に接続される“０”入力端及び“１”入力端とを有するセレクタと、このセレクタの出力に接続されたフリップフロップとから構成されている。
【０００５】
図１８はスキャンフリップフロップ１０の構成を例示する回路図である。スキャンフリップフロップ１０はセレクタ１０１及びフリップフロップ１０２によって構成されているが、他のスキャンフリップフロップも同様に構成できる。図１７においては全てのスキャンフリップフロップ１０〜１２，２０〜２２の制御信号としてシフトモード信号ＳＭが与えられる。
【０００６】
通常の動作時においては、シフトモード信号ＳＭは“０”に設定され、スキャンフリップフロップ１０〜１２及びスキャンフリップフロップ２０〜２２は全て通常のフリップフロップとして、それぞれＲＡＭコア９１の入力側及び出力側において機能することになる。
【０００７】
但し、出力側のスキャンパス２において、スキャンフリップフロップ２０〜２２が実質的に機能する場合としない場合がある。これはスキャンフリップフロップ２０〜２２とＲＡＭコア９１の出力とを選択的に出力するセレクタ２０３，２１３，２２３の機能に依存する。即ち、セレクタ２０３，２１３，２２３の制御信号として与えられるテストモード信号ＴＥＳＴが値“１”／“０”を採るのに対応して、ＲＡＭブロック９２はその読み出し動作が同期式／非同期式となる。ここで「同期」とは、フリップフロップの動作等において当然必要となる、図示されないクロックに対して「同期」することを意味する。
【０００８】
ロジック領域８０に対するテスト動作（ロジックテスト）においてはシフトモード信号ＳＭ及びテストモード信号ＴＥＳＴを“１”にすることにより、スキャンイン信号ＳＩはスキャンフリップフロップ１０〜１２，２０〜２２を順次シフトし（スキャンモード）、テストデータがスキャンフリップフロップ２０〜２２に格納される。
【０００９】
このテストデータはロジック部８２へと入力される。スキャンパス１はロジック部８１の出力（テスト結果）を受けるので、スキャンフリップフロップ１０〜１２にはこのテスト結果が格納される。
【００１０】
【発明が解決しようとする課題】
このように、ロジックテストにおいてはスキャンフリップフロップ１０〜１２，２０〜２２のいずれもが用いられる。しかし、ＲＡＭブロック９２の機能として、書き込み動作が同期式であっても、読み出し動作が非同期式であることが要求される場合、通常動作時ではスキャンパス２０〜２２が実質的に機能しない。またＲＡＭコア９１のみのテストを行いたいときにはスキャンパス３を使用する必要がない。このためスキャンフリップフロップ２０〜２２若しくはスキャンパス３がエリアオーバーヘッドとなり、面積の利用効率が低いという問題点があった。
【００１１】
本発明は係る問題点を解決するためになされたもので、面積の利用効率の高いスキャンパスの構成を提供することを目的としている。
【００１２】
【課題を解決するための手段】
この発明のうち請求項１にかかるものは、第１乃至第３の回路に対して第１のテストを行うテスト回路である。そして前記第１の回路の出力及びスキャンイン信号を入力し、パラレルの態様の第１の出力及びスキャン信号たる第２の出力を選択的に出力する第１のスキャンパスと、前記第１のスキャンパスの前記第１の出力を入力する入力端群及び出力端群を有する第４の回路と、前記第１のスキャンパスの前記第１の出力と、前記第４の回路の出力とを選択的に前記第２の回路に出力する選択手段と、前記第１のスキャンパスの第２の出力と、前記第２の回路の出力と、前記第４の回路の出力とを入力し、これら３者の何れか一つを選択的に前記第３の回路に出力する第２のスキャンパスとを備える。しかも、前記第４の回路に対して第２のテストをも行う。
【００１３】
この発明のうち請求項２にかかるものは、請求項１記載のテスト回路であって、前記第２のスキャンパスはデータ圧縮機能を有する。
【００１４】
この発明のうち請求項３にかかるものは、請求項２記載のテスト回路であって、前記第２のスキャンパスは、前記第４の回路の出力を選択的に前記第３の回路に与える場合にＭＩＳＲ回路を構成する。
【００１５】
この発明のうち請求項４にかかるものは、請求項３記載のテスト回路であって、前記第２のスキャンパスは前記第２の回路の出力に対してビット毎に設けられ、前記データ圧縮機能を発揮するデータ圧縮回路からなり、前記データ圧縮回路の各々は前記第２の回路の出力を受ける通常入力端と、前記スキャン信号が伝搬するスキャン入力端と、出力端とを含むスキャンフリップフロップと、前記スキャンフリップフロップの前記スキャン入力端に接続された出力端と、前記出力端に選択的に接続される第１及び第２の入力端とを含むセレクタと、前記セレクタの前記第１の入力端に出力する論理回路とを有する。そして前記論理回路の各々は、自身に対応する前記スキャンフリップフロップの出力を保持するループを、前記セレクタと共に形成し、前記第２のテストの結果が不良であれば前記スキャンフリップフロップに所定の論理を与え、前記スキャン信号は前記セレクタの前記第２の入力端を伝搬する。
【００１６】
この発明のうち請求項５にかかるものは、第１乃至第５の回路に対して第１のテストを行い、第５の回路に対しては更に第２のテストをも行うテスト回路である。そして前記第１の回路の出力及びスキャンイン信号を入力し、パラレルの態様の第１の出力及びスキャン信号たる第２の出力を選択的に出力し、前記第１の出力は前記第２の回路に入力する第１のスキャンパスと、前記第１のスキャンパスの前記第１の出力と、前記第２の回路の出力とを選択的に前記第５の回路に出力する選択手段と、前記第１のスキャンパスの第２の出力と、前記第３の回路の出力と、前記第５の回路の出力とを入力し、これら３者の何れか一つを選択的に前記第４の回路に出力する第２のスキャンパスとを備える。
【００１７】
【発明の実施の形態】
実施の形態１．
図１は本発明の実施の形態１の基本的な考え方を示すブロック図である。スキャンパス１はロジック領域８０のロジック部８１の出力と、スキャンイン信号ＳＩ１とを入力し、制御信号たるシフトモード信号ＳＭの制御を受ける。
【００１８】
スキャンパス１の出力のうちスキャン信号ＳＩ３ではない方は、ＲＡＭコア９１の入力端ＤＩ０〜ＤＩ２へと入力する。
【００１９】
従来の技術において示されたスキャンパス２の代わりに、セレクタ４０〜４２が設けられている。これらの“１”入力端にはそれぞれＲＡＭコア９１の入力端ＤＩ０〜ＤＩ２が、“０”入力端にはそれぞれＲＡＭコア９１の出力端ＤＯ０〜ＤＯ２が、接続されている。セレクタ４０〜４２の出力はロジック部８２に入力する。セレクタ群４０〜４２はいずれもロジックテスト信号ＬＯＧＴＥＳＴの制御を受け、その値が“０”か“１”かによって、ロジック部８２に与えられるのがスキャンパス１の出力のうちのスキャン信号ＳＩ３ではない方なのか、ＲＡＭコア９１の出力なのかが決定される。
【００２０】
スキャンパス３ａは従来の技術のスキャンパス３に対応した位置に配せられており、ロジック部８２とロジック部８３との間に介在し、スキャンパス１と直列に接続されている。スキャンパス３ａは、それぞれが３つの入力Ａ，Ｂ，Ｃを選択的に１つ出力するセレクタ３００〜３０２と、フリップフロップ３１０〜３１２からなる。セレクタ３００〜３０２はいずれもＲＡＭテスト信号ＲＡＭＴＥＳＴと、シフトモード信号ＳＭの両方の制御を受ける。入力Ａにはシフトされるべきスキャン信号が与えられる。また入力Ｂにはロジック部８２の出力が与えられる。そして、入力ＣにはＲＡＭコア９１の出力が与えられる。
【００２１】
図２は本発明の実施の形態１の具体的構成を示すブロック図である。図１で示されたセレクタ３００〜３０２はそれぞれがＲＡＭテスト信号ＲＡＭＴＥＳＴとシフトモード信号ＳＭとを制御信号とする２入力１出力のセレクタの対で構成することができる。そして図１８に例示されるように、２入力１出力のセレクタとフリップフロップの対はスキャンフリップフロップを構成するので、結局セレクタ３００とフリップフロップ３１０の組み合わせは、ＲＡＭテスト信号ＲＡＭＴＥＳＴで制御されるセレクタ３２０と、シフトモード信号ＳＭで制御されるスキャンフリップフロップ３３０との組み合わせで実現することができる。同様にしてセレクタ３０１，３０２とフリップフロップ３１１，３１２との組み合わせは、セレクタ３２１，３２２とスキャンフリップフロップ３３１，３３２との組み合わせで構成することができる。
【００２２】
スキャンフリップフロップ３３０〜３３２の“１”入力端はスキャン信号が伝搬するスキャン入力端であり、“０”入力端はスキャンフリップフロップ３３０〜３３２が通常のフリップフロップとして機能する場合の入力を受ける通常入力端である。
【００２３】
図２に示された構成は以下の３つのモードで動作する。
▲１▼通常モード；
このモードにおいては、ロジックテスト信号ＬＯＧＴＥＳＴ、ＲＡＭテスト信号ＲＡＭＴＥＳＴ及びシフトモード信号ＳＭを“０”に設定する。シフトモード信号ＳＭを“０”に設定するので、スキャンパス１を構成するスキャンフリップフロップ１０〜１２が有するフリップフロップ（図１７及び図１８参照。例えばフリップフロップ１０２）はＲＡＭコア９１へと同期式に入力を与える。また、ロジックテスト信号ＬＯＧＴＥＳＴが“０”であるのでセレクタ４０〜４２はＲＡＭコア９１の出力をロジック部８２に非同期式に与える。即ち、ＲＡＭコア９１に対する書き込み動作が同期式であり、読み出し動作が非同期式である。
【００２４】
そしてＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”であるのでセレクタ３２０〜３２２はロジック部８２の出力をスキャンフリップフロップ３３０〜３３２に伝達し、シフトモード信号ＳＭが“０”であるのでスキャンフリップフロップ３３０〜３３２はロジック部８２とロジック部８３との間に介在する通常のフリップフロップとして機能する。従って、従来の技術において行われる通常動作と同じ動作が、しかもそれぞれ同期式／非同期式の、書き込み動作及び読み出し動作が本実施の形態においても実現される。
【００２５】
▲２▼ロジックテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”に、ロジックテスト信号ＬＯＧＴＥＳＴが“１”に設定される。ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”であるのでセレクタ３２０〜３２２はロジック部８２の出力をスキャンフリップフロップ３３０〜３３２に伝達する。また、ロジックテスト信号ＬＯＧＴＥＳＴが“１”に設定されるので、スキャンパス１の出力の内、スキャン信号ＳＩ３でない方は、ＲＡＭコア９１を回避してロジック部８２へと与えられる。
【００２６】
図３はこのモードにおける、図２の回路の等価回路を示すブロック図である。ロジック部８１，８２の間、及びロジック部８２，８３の間には、いずれもシフトモード信号ＳＭで制御されるスキャンパス１，３ａがそれぞれ設けられており、両者が直列に接続されて１本のスキャンパスを構築している。従ってＲＡＭコア９１を初期化する必要がなく、テストパターン数を削減したロジックテストを行うことができる。
【００２７】
▲３▼ＲＡＭテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“１”に、ロジックテスト信号ＬＯＧＴＥＳＴが“０”に設定される。従ってセレクタ４０〜４２，３２０〜３２２は、ＲＡＭコア９１の出力をロジック部８２を回避して、スキャンフリップフロップ３３０〜３３２に伝達する。
【００２８】
図４はこのモードにおける、図２の回路の等価回路を示すブロック図である。直列に接続されたスキャンパス１，３ａがＲＡＭコア９１を囲んでいるので、ＲＡＭテストのみを行うことができる。
【００２９】
以上に述べたように、本実施の形態によれば、ロジックテストにおけるロジック部８２，８３の間に介在するスキャンパスとして、ＲＡＭテストにおいてＲＡＭコア９１の出力側に設けられるスキャンパスとして、いずれも同一のスキャンパス３ａを用いることができ、従来の技術において設けられていたスキャンパス２を必要としない。そして通常動作においては書き込み動作及び読み出し動作がそれぞれ同期式／非同期式で行われる。
【００３０】
ロジックテスト信号ＬＯＧＴＥＳＴによって制御されるセレクタ４０〜４２は従来の技術におけるスキャンパス２と置換されるが、図１７を参照してわかるように、スキャンフリップフロップ２０〜２２の分だけ本実施の形態の方が構成要素が少なくて済む。従って、エリアオーバーヘッドを小さくし、面積の利用効率を悪化させることなくＲＡＭコアのみのテストを行うことができる。
【００３１】
図１、図２に示された回路において、スキャンパス１，３ａの間に別途に新たなスキャンパスが挿入されていても、またスキャンパス１とスキャンパス３ａの接続順序が入れ替わっても、スキャン信号が伝達されるので問題はない。
【００３２】
実施の形態２．
図５は本発明の実施の形態２を示すブロック図である。図１を用いて実施の形態１で説明された回路に対し、セレクタ４０〜４２がその“０”入力端を自身の出力端に接続し、スキャンパス３ａをスキャンパス３ｂで置換した構成を有している。
【００３３】
スキャンパス３ｂはロジック部８２の出力のビット毎に、ＡＮＤゲートＡｉ，ＥＸＯＲゲートＸｉ、スキャンフリップフロップ３３ｉを備えている（ｉ＝０，１，２）。更にＥＸＯＲゲートＸ３及びセレクタ６をも備えている。そしてＡＮＤゲートＡ０〜Ａ２の第１の入力端にはいずれもＲＡＭテスト信号ＲＡＭＴＥＳＴが与えられる。またＡＮＤゲートＡ０〜Ａ２の出力端はそれぞれＸＯＲゲートＸ０〜Ｘ２の第１の入力端に接続される。ＡＮＤゲートＡ０〜Ａ２の第２の入力端にはＲＡＭコア９１の出力がビット毎に与えられる。
【００３４】
ＸＯＲゲートＸ０の第２の入力端にはセレクタ６の出力が与えられる。また、ＸＯＲゲートＸ１，Ｘ２の第２の入力端にはそれぞれスキャンフリップフロップ３３０，３３１の出力が与えられる。セレクタ６の“０”入力端にはスキャンパス１からスキャン信号ＳＩ３が、“１”入力端にはＸＯＲゲートＸ３の出力が、それぞれ与えられる。ＸＯＲゲートＸ３にはスキャンフリップフロップ３３１，３３２の出力が与えられる。
【００３５】
スキャンフリップフロップ３３０〜３３２の“０”入力端にはロジック部８２の出力がビット毎に、“１”入力端にはＸＯＲゲートＸ０〜Ｘ２の出力が、それぞれ与えられる。
【００３６】
図６は、本実施の形態の変形を示すブロック図であり、実施の形態１と同様に、ＲＡＭコア９１とロジック部８２との間にセレクタ４０〜４２を介在させたものである。図６において、ロジックテスト信号ＬＯＧＴＥＳＴを“０”に設定した場合が、図５に相当するといえる。
【００３７】
図５、図６に示された構成は以下の３つのモードで動作する。
▲１▼通常モード；
このモードにおいては、シフトモード信号ＳＭを“０”に設定する。図６に示された構成においては更にロジックテスト信号ＬＯＧＴＥＳＴも“０”に設定して図５と構成が等価となる。
【００３８】
シフトモード信号ＳＭを“０”に設定するので、スキャンパス１はＲＡＭコア９１へと同期式に入力を与える。また、シフトモード信号ＳＭが“０”であるので、スキャンフリップフロップ３３０〜３３２はロジック部８２の出力を受け、ロジック部８３へと出力する通常のフリップフロップとして機能する。スキャンフリップフロップ３３０〜３３２の“１”入力端に与えられるデータはこのモードに寄与しないので、ＲＡＭテスト信号ＲＡＭＴＥＳＴはその値が問われない（Ｄｏｎ’ｔ  Ｃａｒｅ）。
【００３９】
以上のようにして、従来の技術において行われる通常動作と同じ動作が、しかも書き込み動作及び読み出し動作がそれぞれ同期式／非同期式で、本実施の形態においても実現される。
【００４０】
▲２▼ロジックテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”に設定される。まず図５に示された構成から説明する。
【００４１】
図７は図５に示された構成においてＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”に設定された場合の等価回路を示すブロック図である。ＡＮＤゲートＡ０〜Ａ２はその第２の入力端に与えられたデータに拘らずに“０”を出力するので、ＥＸＯＲゲートＸ０〜Ｘ２はその第２の入力端に与えられたデータを出力する。
【００４２】
セレクタ６は、その“０”入力端に与えられるスキャン信号ＳＩ３を出力するので、スキャンフリップフロップ３３０の“１”入力端にこれが与えられることになる。スキャンフリップフロップ３３１，３３２の出力に依存してＥＸＯＲゲートＸ３の出力は異なるが、これはセレクタ６の“１”入力端に与えられるので、このモードには寄与しない。
【００４３】
このようにして、スキャンパス１、ＲＡＭコア９１、ロジック部８２、スキャンパス３ｂ、ロジック部８３という順に並列のデータが伝搬し、ロジックテストが行われる。
【００４４】
一方、図６に示された本実施の形態の変形においてはロジックテスト信号ＬＯＧＴＥＳＴが“１”に設定される。よってスキャンパス１の出力の内、スキャン信号ＳＩ３でない方は、ＲＡＭコア９１を回避してロジック部８２へと与えられる。
【００４５】
従って、図５に示された構成と比較して、ロジックテストにおいてＲＡＭコア９１を初期化する必要がなく、ロジックテストのテストパターン数を削減することができるという利点が付加される。
【００４６】
▲３▼ＲＡＭテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴ及びシフトモード信号ＳＭが“１”に設定される。シフトモード信号ＳＭが“１”に設定されるので、ロジック部８２の出力はこのモードに寄与しない。従って、ロジック部８２に与えられるデータもこのモードに寄与しないため、図６の場合にはロジックテスト信号ＬＯＧＴＥＳＴの値は問われない。
【００４７】
図８はこのモードにおける、図５及び図６の回路の等価回路を示すブロック図である。実施の形態１と同様にＲＡＭコア９１を直列に接続されたスキャンパス１，３ｂが囲んでいるので、ＲＡＭテストのみを行うことができる。
【００４８】
セレクタ６はＥＸＯＲゲートＸ３の出力をＥＸＯＲゲートＸ０の第２の入力端に与える。また、ＡＮＤゲートＡ０〜Ａ２はそれぞれがその第２の入力端に与えられたデータを出力するので、ＥＸＯＲゲートＸ０〜Ｘ２の第１の入力端にはＲＡＭコア９１の出力が与えられることになる。従って、ＸＯＲゲートＸ０〜Ｘ３及びスキャンフリップフロップ３３０〜３３２は多入力データ圧縮回路としてよく用いられている多入力シグニチャレジスタ（ＭＩＳＲ：Multi Input Signature Register）回路を構成することになる。ＲＡＭコア９１から出力されたＲＡＭテストの結果はこのＭＩＳＲ回路に取り込まれて圧縮される。
【００４９】
簡単にＲＡＭテストの実行手順を示すと以下のようになる。まずあらかじめ、▲１▼ＲＡＭコア９１の全アドレスに対してスキャンパス１からテストデータを書き込む。また▲２▼スキャンフリップフロップ３３０〜３３２の記憶する内容を”０”に初期化しておく。これは図５及び図６に示された状態で、ＲＡＭテスト信号ＲＡＭＴＥＳＴ及びスキャン信号ＳＩ３を“０”に設定することで実現できる。
【００５０】
次にＲＡＭＴＥＳＴ＝“１”として図８に示された回路を得て、▲３▼ＲＡＭコア９１の全アドレスに対してＲＡＭテストの結果であるデータの読み出しを行う。このデータはＭＩＳＲ回路を構成しているスキャンパス３ｂにおいて圧縮される。そして▲４▼ＲＡＭＴＥＳＴ＝“０”に再度設定し、スキャンパス３ｂに保持されているテスト結果をスキャンアウト信号ＳＯとしてシフトアウトする。
【００５１】
このスキャンアウト信号ＳＯの内容と、テストデータに対してあらかじめシミュレーションによって得られているテスト結果と比較する（シグニチャ解析）ことにより、ＲＡＭコア９１の故障を検出することができる。
【００５２】
このように、ＲＡＭコア９１の出力を取り込むスキャンパス３ｂにデータ圧縮機能を備えるので、実施の形態１ではＲＡＭテストにおいてアドレス毎にテスト結果をシフトアウトする必要があったが、本実施の形態では全アドレスに対してテストを行った後に、テスト結果をシフトすることとなる。従って、本実施の形態においても実施の形態１と同様に、スキャンフリップフロップ２０〜２２の分だけ構成要素が少なくて済むという効果に加え、更にテスト時間を短縮することができるという効果がある。
【００５３】
実施の形態３．
図９は本発明の実施の形態３を示すブロック図である。図１を用いて実施の形態１で説明された回路に対し、セレクタ４０〜４２がその“０”入力端を自身の出力端に接続し、スキャンパス３ａをスキャンパス３ｃで置換した構成を有している。
【００５４】
スキャンパス３ｃはロジック部８２の出力及びＲＡＭコア９１の出力を受けるデータ圧縮回路３４０〜３４２によって構成されている。これらはビット毎に設けられているため、テスト結果から故障箇所を特定することができる。
【００５５】
データ圧縮回路３４ｉはゲート群Ｑｉと、ロジック部８２の出力を受ける“０”入力端を有し、シフトモード信号ＳＭによって制御されるスキャンフリップフロップ３３ｉと、スキャンフリップフロップ３３ｉの“１”入力端に接続される出力端を有するセレクタ３２ｉとから構成されている。セレクタ３２０の“０”入力端にはスキャン信号ＳＩ３が、セレクタ３２１，３２２の“０”入力端にはそれぞれフリップフロップ３３０，３３１の出力が与えられる。
【００５６】
ゲート群Ｑｉはビット毎のＲＡＭコア９１の出力、期待信号ＥＸＰ、比較制御信号ＣＭＰ、フリップフロップ３３ｉの出力を入力し、セレクタ３２ｉの“１”入力端へと出力する。
【００５７】
また、セレクタ３２ｉは実施の形態１においてはＲＡＭテスト信号ＲＡＭＴＥＳＴによって動作が制御されていたが、本実施の形態においてはホールド信号ＨＬＤによって動作が制御される。
【００５８】
図１０はデータ圧縮回路３４０の詳細、特にゲート群Ｑ０の詳細を示す回路図である。他のデータ圧縮回路３４１，３４２についても同様の構成がなされる。かかる構成は例えば特開平８−９４７１８号公報の図１１において開示されている。
【００５９】
ゲート群ＱｉはそれぞれＸＯＲゲートＸ１ｉ、ＮＡＮＤゲートＮ１ｉ及びＡＮＤゲートＡ１ｉから構成されている。ＸＯＲゲートＸ１ｉの一対の入力端にはＲＡＭコア９１の出力及び期待信号ＥＸＰが与えられる。ＮＡＮＤゲートＮ１ｉの一対の入力端にはＸＯＲゲートＸ１ｉの出力及び比較制御信号ＣＭＰが与えられる。そしてＡＮＤゲートＡ１ｉの一対の入力端にはＮＡＮＤゲートＮ１ｉの出力及びスキャンフリップフロップ３３ｉの出力が与えられ、ＡＮＤゲートＡ１ｉはセレクタ３２ｉの“１”入力端へと出力する。
【００６０】
図１１は、本実施の形態の変形を示すブロック図であり、実施の形態１と同様に、ＲＡＭコア９１とロジック部８２との間にセレクタ４０〜４２を介在させたものである。図１１において、ロジックテスト信号ＬＯＧＴＥＳＴを“０”に設定した場合が、図９に相当するといえる。
【００６１】
図９、図１１に示された構成は以下の３つのモードで動作する。
▲１▼通常モード；
このモードにおいては、シフトモード信号ＳＭを“０”に設定する。図１１に示された構成においては更にロジックテスト信号ＬＯＧＴＥＳＴも“０”に設定して図９と構成が等価となる。
【００６２】
シフトモード信号ＳＭが“０”であるのでスキャンパス１はＲＡＭコア９１へと同期式に書き込みを行う。またスキャンフリップフロップ３３０〜３３２はロジック部８２の出力を受け、ロジック部８３へと出力する通常のフリップフロップとして機能する。スキャンフリップフロップ３３０〜３３２の“１”入力端に与えられるデータはこのモードに寄与しないので、ホールド信号ＨＬＤはその値を問わない。
【００６３】
以上のようにして、従来の技術において行われる通常動作と同じ動作が、しかも書き込み動作及び読み出し動作がそれぞれ同期式／非同期式で、本実施の形態においても実現される。
【００６４】
▲２▼ロジックテストモード；
このモードにおいてはホールド信号ＨＬＤが“０”に設定される。まず図９に示された構成から説明する。セレクタ３２０〜３２２とフリップフロップ３３０〜３３２とが交互に直列に接続されたパスが形成され、図７に示された構成と等価な構成が得られ、実施の形態２のロジックテストモードで説明された動作が本実施の形態でも実現される。
【００６５】
一方、図１１に示された本実施の形態の変形においては更にロジックテスト信号ＬＯＧＴＥＳＴが“１”に設定される。よってスキャンパス１の出力の内、スキャン信号ＳＩ３でない方は、ＲＡＭコア９１を回避してロジック部８２へと与えられる。
【００６６】
従って、図９に示された構成と比較して、ロジックテストにおいてＲＡＭコア９１を初期化する必要がなく、ロジックテストのテストパターン数を削減することができるという利点が付加される。
【００６７】
▲３▼ＲＡＭテストモード；
このモードにおいては、シフトモード信号ＳＭが“１”に設定される。よってロジック部８２の出力はこのモードに寄与しない。従って、ロジック部８２に与えれるデータもこのモードに寄与せず、図１１の場合にはロジックテスト信号ＬＯＧＴＥＳＴの値は問われないため、図９及び図１１のいずれの構成も、ＲＡＭテストモードにおける等価的な構成は図１２に示されるようになる。
【００６８】
例えばＲＡＭの全アドレスに”０”を書き込んだ後、全アドレスから“０”を読み出すテストの具体的手順を以下に簡単に示す。まず▲１▼ホールド信号ＨＬＤを“０”に設定してセレクタ３２０〜３２２とフリップフロップ３３０〜３３２とが交互に直列に接続されたパスを形成する。ここでスキャンイン信号ＳＩ１を例えば“１”に設定し、フリップフロップ３３０〜３３２を全て“１”に初期設定する。次に▲２▼ホールド信号ＨＬＤを“１”に設定して、ＡＮＤゲートＡ１ｉ、セレクタ３２ｉ、フリップフロップ３３ｉでループを形成する。このとき比較制御信号ＣＭＰを“０”に設定しておくことでＮＡＮＤゲートＮ１ｉは常に“１”を出力し、スキャンフリップフロップ３３ｉの記憶する論理“１”がホールドされる。その一方、スキャン信号ＳＩ１として“０”を与え、ＲＡＭコア９１の全てのアドレスに“０”を書き込む。そして▲３▼ホールド信号ＨＬＤを“１”に設定したまま、比較制御信号ＣＭＰを“１”にする。このときまでに期待信号ＥＸＰには期待値“０”を与えておき、ＲＡＭコア９１の読み出し動作を行う。
【００６９】
例えばＲＡＭコア９１の出力端ＤＯ０に関してみれば、ここに読み出されたデータはＸＯＲゲートＸ１０において期待値と比較され、両者が同一か否かが判断される。その結果はＮＡＮＤゲートＮ１０によって反転されてＡＮＤゲートＡ１０へと与えられる。読み出されたデータが期待値“０”と等しければＡＮＤゲートＡ０はスキャンフリップフロップ３３０に記憶されたデータと同じ論理“１”をセレクタ３２０に与えるので、スキャンフリップフロップ３３０の値は“１”のままである。
【００７０】
一方、読み出されたデータが期待値と異なればＡＮＤゲートＡ１０は常に“０”を出力するので、一旦出力端ＤＯ０において故障が発見されれば、スキャンフリップフロップ３３０にはその後“０”が記憶され続けることとなる。他の出力端ＤＯ１，ＤＯ２に関しても同様である。
【００７１】
ついで▲４▼ホールド信号ＨＬＤを“０”に、比較制御信号ＣＭＰを“０”にすることにより、テスト実行時にスキャンフリップフロップ３３０〜３３２に格納された値がその論理を保ちつつ、スキャンアウト信号ＳＯとしてシフトされて得られる。そして正常ビットに関しては“１”が、故障ビットに対しては“０”が検出される。
【００７２】
本実施の形態は実施の形態２と類似してデータ圧縮機能を備える。更にテスト結果がビット毎に圧縮されるので、故障箇所を特定することができるという効果が付加される。
【００７３】
実施の形態４．
実施の形態１ないし実施の形態３に示された構成は、ＲＡＭコア９１に対する書き込み及びＲＡＭコア９１からの読み出しのいずれもが非同期式で行われる場合にも適用することができる。
【００７４】
図１３は本発明の実施の形態４を示すブロック図である。ロジック領域８０はロジック部８１〜８４を備えており、スキャンパス１はロジック部８１，８４の間に、ＲＡＭコア９１はロジック部８４，８２の間に、そしてスキャンパス３ｃはロジック部８２，８３の間にそれぞれ介在している。
【００７５】
スキャンパス１はロジック部８１の出力及びスキャンイン信号ＳＩ１を受け、ロジック部８４へビット毎の出力を、スキャン信号を伝達させる場合にはスキャン信号ＳＩ３を、それぞれ出力する。
【００７６】
セレクタ４０〜４２のそれぞれはロジック部８４の出力を“０”入力端で受け、スキャンパス１の出力の内、スキャン信号ＳＩ３でない方を“１”入力端で受ける。セレクタ４０〜４２の出力は、ＲＡＭコア９１への入力として機能する。セレクタ４０〜４２はＲＡＭテスト信号ＲＡＭＴＥＳＴによって制御される。
【００７７】
スキャンパス３ａの構成は既に実施の形態１において図１を用いて説明されたものと同一である。スキャンパス３ａはセレクタ３００〜３０２の制御を行うためのＲＡＭテスト信号ＲＡＭＴＥＳＴ及びシフトモード信号ＳＭ、スキャン信号ＳＩ３の他、ロジック部８２の出力、ＲＡＭコア９１の出力を受ける。ＲＡＭコア９１の出力は、ロジック部８２の入力としても機能する。
【００７８】
図１３に示された構成は、実施の形態１と同様、以下の３つのモードで動作する。
▲１▼通常モード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴを“０”にし、セレクタ４０〜４２がロジック部８４の出力をＲＡＭコア９１の入力として伝達する。また、セレクタ３００〜３０２がその入力Ｂ（ロジック部８２の出力が与えられる）を出力するように設定される。スキャンパス３ａが図２に示された構造を有するのであれば、シフトモード信号ＳＭを“０”に設定する。
【００７９】
この場合には、ロジック部８４とＲＡＭコア９１の間にフリップフロップが介在しないので、その書き込み動作は非同期式である。一方、ＲＡＭコア９１の出力はフリップフロップを介することなくロジック部８２に与えられるのでその読み出し動作も非同期式となる。フリップフロップ３１０〜３１２はロジック部８２，８３の間に介在する。
【００８０】
▲２▼ロジックテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”に、またセレクタ３００〜３０２がシフトモード信号ＳＭの値が“１”／“０”を採るのに従って、その入力Ａ（スキャン信号が伝達される），Ｂを出力するように設定される。
【００８１】
この場合には、ロジック部８１，８４の間にはスキャンパス１が、ロジック部８４，８２の間にはＲＡＭコア９１が、ロジック部８２，８３の間にはスキャンフリップフロップが、それぞれ介在することになる。よってシフトモード信号ＳＭの値を制御することにより、スキャンイン信号ＳＩ１を用いてテストデータを伝達させ、テスト結果をシフトアウト信号ＳＯから得ることができる。
【００８２】
▲３▼ＲＡＭテストモード；
このモードにおいては、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“１”に設定され、ロジック部８４を介することなくセレクタ４０〜４２がスキャンパス１からの出力をＲＡＭコア９１の入力として伝達する。またセレクタ３００〜３０２はその入力Ｃ（ＲＡＭ９１の出力が与えられる）を出力するように設定されるので、スキャンパス３ａとＲＡＭコア９１との間にはロジック部８２を介したデータのやりとりはない。
【００８３】
このようにしてＲＡＭコア９１はその入力側にスキャンパス１からテストデータが与えられ、その出力側からフリップフロップ３１０〜３１２にテスト結果を与えるので、ＲＡＭコア９１のみをスキャンパス１，３ａを用いてテストすることができる。
【００８４】
以上のように本実施の形態によれば、ＲＡＭコア９１に対する書き込み／読み出し動作の何れもが非同期式である場合においても、実施の形態１と同様の効果を得ることができる。
【００８５】
勿論、スキャンパス３ｂ，３ｃを用いることにより、実施の形態２及び実施の形態３と同様の効果を得ることもできる。
【００８６】
実施の形態５．
図１４は本発明の実施の形態５を示すブロック図であり、図１におけるスキャンパス３ａをスキャンパス３へと一般化して表記している。また、スキャンパス１がスキャンパス１ｄに置換されている。
【００８７】
図１５はスキャンパス１ｄの構成を示すブロック図である。スキャンパス１ｄはスキャンフリップフロップ（例えば図１７に示されたスキャンフリップフロップ１０〜１２）の直列接続からなる通常のスキャンパス１ｅと、ＲＡＭテストに用いられるテストデータのパターンを発生するデータパターン発生回路１０９と、セレクタ１１０〜１１２を備えている。
【００８８】
スキャンパス１ｅにはロジック部８１の出力の他、スキャンイン信号ＳＩ１及びシフトモード信号ＳＭが入力され、ビット毎の出力をセレクタ１１０〜１１２の“０”入力端に、またスキャン信号ＳＩ３を出力する。データパターン発生回路１０９にはＲＡＭテスト信号ＲＡＭＴＥＳＴ及びシフトイン信号ＳＩ１が入力され、ビット毎にテストデータをセレクタ１１０〜１１２の“１”入力端に出力する。
【００８９】
ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”の場合には、セレクタ１１０〜１１２の機能によって実施の形態１と同様の機能を有する。一方、ＲＡＭテスト信号ＲＡＭＴＥＳＴが“１”の場合、即ちＲＡＭテストが実行される場合においては、データパターン発生回路１０９の出力がＲＡＭコア９１に与えられる（ＲＡＭテスト時においてはロジックテスト信号ＬＯＧＴＥＳＴが“０”に設定されるので、セレクタ４０〜４２はセレクタ１１０〜１１２の出力を他へ伝達しない）。
【００９０】
データパターン発生回路１０９の好例として、ＬＦＳＲ（Ｌｉｎｅａｒ  Ｆｅｅｄｂａｃｋ  Ｓｈｉｆｔ  Ｒｅｇｉｓｔｅｒ）回路を用いれば、エリアオーバーヘッドが小さいという利点がある。データパターン発生回路１０９はＲＡＭテスト信号ＲＡＭＴＥＳＴの値が“１”を採ることによってアクティブとなり、スキャンイン信号ＳＩ１はＬＦＳＲ回路の初期値設定に用いることができる。
【００９１】
以上のように本実施の形態によれば、実施の形態１で得られる効果に加えて、ＲＡＭテストに好適なテストデータをＲＡＭテスト時にスキャンパス１ｄから与えることができるという効果がある。
【００９２】
勿論、スキャンパス３は、実施の形態２及び実施の形態３に示されるように、テスト結果を圧縮する回路を備えていてもよい。
【００９３】
その他の変形．
上記数々の実施の形態において、種々の変形が可能である。例えばＲＡＭコア９１自体は非同期式で書き込み／読み出しがなされるとして説明されてきたが、ＲＡＭコア９１の自体の書き込み／読み出しが同期設計されていても本発明を適用することができる。
【００９４】
特にすでにハードマクロ化された同期式のＲＡＭに対して、
ｉ）ＲＡＭ内部にテスト回路を付加したり、ｉｉ）ＲＡＭをスキャンパスで囲み、通常動作時はこれらのスキャンパスをバイパスする必要がない。従って、ＲＡＭの再設計、所要の面積の増加を回避してテスト容易化が実現できるために本発明の効果は特に大きい。
【００９５】
また各実施の形態において示されたＲＡＭコア９１をロジック回路に置換してもよい。そのロジック回路は一つの論理ブロックとして扱うことができ、テストパターンがすでにライブラリ化されている場合に特に効果が大きい。
【００９６】
上記数々の実施の形態では、通常のデータとスキャン信号とを入力とするセレクタと、セレクタの出力を入力とするフリップフロップで構成されたスキャンフリップフロップで説明した（図１８）。
【００９７】
例えば、通常のデータとスキャン信号とを入力とし、通常動作用のクロックとスキャンクロックを備えたスキャンフリップフロップに置き換えても上記数々の実施の形態の効果は変わらない。
【００９８】
例えば、レベル・センシティブ・スキャン・デザイン（ＬＳＳＤ）に用いられるシフトレジスタラッチに置き換えても上記数々の実施の形態の効果は変わらない。
【００９９】
【発明の効果】
この発明のうち請求項１にかかるテスト回路においては、▲１▼選択手段が第４の回路の出力を選択的に第２の回路に出力し、第２のスキャンパスが第２の回路の出力を選択的に第３の回路に出力する場合には、第１の回路、第１のスキャンパス、第４の回路、第２の回路、第２のスキャンパス、第３の回路がこの順に接続される。よって第４の回路の入力／出力はそれぞれ同期式／非同期式で行われる。
【０１００】
また、▲２▼選択手段が第１のスキャンパスの第１の出力を選択的に第２の回路に出力し、第２のスキャンパスが第１のスキャンパスの第２の出力と、第２の回路の出力との一方を選択的に第３の回路に与える場合には、第１の回路、第１のスキャンパス、第２の回路、第２のスキャンパス、第３の回路がこの順に接続されて第１のテストが行われる。
【０１０１】
更に、▲３▼第２のスキャンパスが第４の回路の出力を第３の回路に出力する場合には、選択手段の動作に拘らず、第４の回路は第１及び第２のスキャンパスによって囲まれる。よって第４の回路に対する第２のテストを第２の回路が介在することなく行うことができる。
【０１０２】
第１及び第２のテストの何れをも行わない場合には第４の回路の入力／出力はそれぞれ同期式／非同期式で行われる。そして第１及び第２のテストのいずれを行う場合にも第２のスキャンパスが兼用して用いられるので、エリアオーバーヘッドを抑制しつつもこれら２種の動作を行うことができる。しかも第１のテストを行う際には第４の回路は介在しないので、第１乃至第３の回路に対する第１のテストにおいて第４の回路の初期化は必要ない。
【０１０３】
この発明のうち請求項２にかかるテスト回路によれば、第４の回路に対する第２のテストにおいて、第４の回路に複数種の入力が与えられ、これに対する出力を調べる場合であっても、入力の種類毎にテスト結果を第２のスキャンパスにおいてシフトアウトさせる必要はない。複数種の全ての入力に対して第２のテストを行った後でテスト結果をシフトアウトさせればよいので、テスト時間を短縮することができるという効果が付加される。
【０１０４】
この発明のうち請求項３にかかるテスト回路によれば、第４の回路に対する第２のテストが行われる際に、ＭＩＳＲ回路によってテスト結果の圧縮が行われるので、シグニチャ解析によって第４の回路の良否を判断することができる。
【０１０５】
この発明のうち請求項４にかかるテスト回路によれば、第４の回路の出力のビット毎に、第２のテストの結果に一旦不良が存在すれば、論理回路によってスキャンフリップフロップに所定の論理が固定されるので、不良が存在したことが記憶される。従って、圧縮されたテスト結果の良否を得ることができる。
【０１０６】
この発明のうち請求項５にかかるテスト回路においては、(1)選択手段が第２の回路の出力を選択的に第５の回路に出力し、第２のスキャンパスが第３の回路の出力を選択的に第４の回路に出力する場合には、第１の回路、第１のスキャンパス、第２の回路、第５の回路、第３の回路、第２のスキャンパス、第４の回路がこの順に接続される。よって第５の回路の入力／出力はいずれも非同期式で行われる。
【０１０７】
また、(2)選択手段が第２の回路の出力を選択的に第５の回路に出力し、第２のスキャンパスが第１のスキャンパスの第２の出力と、第３の回路の出力との一方を選択的に第４の回路に与える場合には、第１の回路、第１のスキャンパス、第２の回路、第５の回路、第３の回路、第２のスキャンパス、第４の回路がこの順に接続されて第１のテストが行われる。
【０１０８】
更に、(3)選択手段が第１のスキャンパスの第１の出力を第５の回路に出力し、第２のスキャンパスが第５の回路の出力を第４の回路に出力する場合には、第５の回路は第１及び第２のスキャンパスによって囲まれる。よって第５の回路に対する第２のテストを第２及び第４の回路が介在することなく行うことができる。
【０１０９】
第１及び第２のテストの何れをも行わない場合には第５の回路の入力／出力はいずれも非同期式で行われる。そして第１及び第２のテストのいずれを行う場合にも第２のスキャンパスが兼用して用いられるので、エリアオーバーヘッドを抑制しつつもこれら２種の動作を行うことができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の基本的な考え方を示すブロック図である。
【図２】本発明の実施の形態１の具体的構成を示すブロック図である。
【図３】ロジックテストモードにおける、図２の回路の等価回路を示すブロック図である。
【図４】ＲＡＭテストモードにおける、図２の回路の等価回路を示すブロック図である。
【図５】本発明の実施の形態２を示すブロック図である。
【図６】本発明の実施の形態２の変形を示すブロック図である。
【図７】ＲＡＭテスト信号ＲＡＭＴＥＳＴが“０”の場合における、図５の回路の等価回路を示すブロック図である。
【図８】ＲＡＭテストモードにおける、図５及び図６の回路の等価回路を示すブロック図である。
【図９】本発明の実施の形態３を示すブロック図である。
【図１０】ゲート群Ｑ０の詳細を示す回路図である。
【図１１】本発明の実施の形態３の変形を示すブロック図である。
【図１２】ＲＡＭテストモードにおける、図９及び図１１の回路の等価回路を示すブロック図である。
【図１３】本発明の実施の形態４を示すブロック図である。
【図１４】本発明の実施の形態５を示すブロック図である。
【図１５】スキャンパス１ｄの構成を示すブロック図である。
【図１６】従来の技術を示すブロック図である。
【図１７】ＲＡＭブロック９２の詳細を示す回路図である。
【図１８】スキャンフリップフロップ１０の構成を示す回路図である。
【符号の説明】
ＤＩ０〜ＤＩ２  入力端、ＤＯ０〜ＤＯ２  出力端、４０〜４２，３２０〜３２２  セレクタ、１，３，３ａ，３ｂ，３ｃ  スキャンパス、３４０〜３４２  データ圧縮回路、３３０〜３３２  スキャンフリップフロップ、Ｑ０〜Ｑ２  ゲート群、８１〜８４  ロジック部、９１  ＲＡＭコア、ＳＩ１  スキャンイン信号、ＳＩ３  スキャン信号。
【図１】
0003614993.tif 000002
【図２】
0003614993.tif 000003
【図３】
0003614993.tif 000004
【図４】
0003614993.tif 000005
【図５】
0003614993.tif 000006
【図６】
0003614993.tif 000007
【図７】
0003614993.tif 000008
【図８】
0003614993.tif 000009
【図９】
0003614993.tif 000010
【図１０】
0003614993.tif 000011
【図１１】
0003614993.tif 000012
【図１２】
0003614993.tif 000013
【図１３】
0003614993.tif 000014
【図１４】
0003614993.tif 000015
【図１５】
0003614993.tif 000016
【図１６】
0003614993.tif 000017
【図１７】
0003614993.tif 000018
【図１８】
0003614993.tif 000019