(57)【要約】【課題】  回路設計装置、回路設計方法、プログラムおよび回路装置を提供すること。【解決手段】  回路設計装置１１０は、スキャンチェーンを含む回路の設計データ１０２を読み込む読込手段１１２と、上記設計データ上で、スキャンチェーンを複数の組に分割し、複数の組各々に対し、該組の部分チェーンを経由するか迂回するかを選択する組選択回路を挿入する分割手段１２０と、上記設計データ上で、複数の組各々の前記部分チェーンを構成する複数の素子各々に対し、該素子を経由するか迂回するかを選択する素子選択回路を挿入する素子選択回路挿入手段１２４と、組選択回路挿入手段１２０および素子選択回路挿入手段１２４により処理された設計データを書き出す書出手段１２８とを含む。【選択図】  図２
2016128758.tif 000002
【特許請求の範囲】
【請求項１】
回路を設計するための回路設計装置であって、
スキャンチェーンを含む回路の設計データを読み込む読込手段と、
前記設計データ上で、前記スキャンチェーンを複数の組に分割し、前記複数の組各々に対し、該組の部分チェーンを経由するか迂回するかを選択する組選択回路を挿入する分割手段と、
前記設計データ上で、前記複数の組各々の前記部分チェーンを構成する複数の素子各々に対し、該素子を経由するか迂回するかを選択する素子選択回路を挿入する素子選択回路挿入手段と、
前記組選択回路挿入手段および前記素子選択回路挿入手段により処理された設計データを書き出す書出手段と
を含む、回路設計装置。
【請求項２】
前記設計データ上で、前記複数の組のうちの指定の組の部分チェーンがスキャン入力端子およびスキャン出力端子に接続された状態になるよう前記複数の組各々の前記組選択回路を制御する組選択制御回路を挿入する、組選択制御回路挿入手段をさらに含む、請求項１に記載の回路設計装置。
【請求項３】
前記設計データ上で、前記複数の素子のうちの指定の少なくとも１つの素子が迂回された状態になるよう前記複数の素子各々の前記素子選択回路を制御する素子選択制御回路を挿入する、素子選択制御回路挿入手段をさらに含む、請求項１または２に記載の回路設計装置。
【請求項４】
前記素子選択制御回路は、前記複数の組の間で共有される、請求項３に記載の回路設計装置。
【請求項５】
前記スキャンチェーンは、複数のフリップフロップ素子を含み、
前記組選択回路は、前記複数の組各々における最後のフリップフロップ素子の後段に接続されるマルチプレクサであり、
前記素子選択回路は、前記スキャンチェーンを構成する前記複数のフリップフロップ素子各々の後段に接続されるマルチプレクサである、
請求項１〜４のいずれか１項に記載の回路設計装置。
【請求項６】
回路を設計するための回路設計方法であって、コンピュータが、
スキャンチェーンを含む回路の設計データを読み込むステップと、
前記設計データに対し、前記スキャンチェーンを複数の組に分割し、前記複数の組各々に、該組の部分チェーンを経由するか迂回するかを選択する組選択回路を挿入するよう処理を施すステップと、
前記設計データに対し、前記複数の組各々の前記部分チェーンを構成する複数の素子各々に、該素子を経由するか迂回するかを選択する素子選択回路を挿入するよう処理を施すステップと、
前記組選択回路を挿入するよう処理を施すステップおよび前記素子選択回路を挿入するよう処理を施すステップで処理が施された設計データを書き出すステップと
を含む、回路設計方法。
【請求項７】
前記設計データに対し、前記複数の組のうちの指定の組の部分チェーンがスキャン入力端子およびスキャン出力端子に接続された状態になるよう前記複数の組各々の前記組選択回路を制御する組選択制御回路を挿入するよう処理を施すステップと、
前記設計データに対し、前記複数の素子のうちの指定の少なくとも１つの素子が迂回された状態になるよう前記複数の素子各々の前記素子選択回路を制御する素子選択制御回路を挿入するよう処理を施すステップと
をさらに含む、請求項６に記載の回路設計方法。
【請求項８】
回路を設計するための回路設計装置を実現するためのプログラムであって、コンピュータを、請求項１〜５のいずれか１項に記載の各手段として機能させるためのプログラム。
【請求項９】
複数の組に分割されたスキャンチェーンと、
前記スキャンチェーンから分割された前記複数の組各々の部分チェーンを経由するか迂回するかを選択するための前記複数の組各々の組選択回路と、
前記複数の組各々の前記部分チェーンを構成する複数の素子各々を経由するか迂回するかを選択するための前記複数の素子各々の素子選択回路と、
前記スキャンチェーンのスキャン入力端子と、
前記スキャンチェーンのスキャン出力端子と、
前記複数の組各々の前記組選択回路を制御するための組選択入力端子と、
前記複数の素子各々の前記素子選択回路を制御するための素子選択入力端子と
を含む、回路装置。
【請求項１０】
前記組選択入力端子と前記複数の組各々の前記組選択回路とに接続される組選択制御回路であって、前記複数の組のうちの指定の組の部分チェーンが前記スキャン入力端子および前記スキャン出力端子に接続された状態になるよう前記複数の組各々の前記組選択回路を制御する組選択制御回路と、
前記素子選択入力端子と前記複数の素子各々の前記素子選択回路とに接続される素子選択制御回路であって、前記複数の素子のうちの指定の少なくとも１つの素子が迂回された状態になるよう前記複数の素子の前記素子選択回路を制御する素子選択制御回路と
をさらに含む、請求項９に記載の回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路テスト技術に関し、より詳細には、回路設計装置、回路設計方法、プログラムおよび回路装置に関する。
【背景技術】
【０００２】
従来、半導体集積回路チップの製造後に故障をテストし、良品および不良品を選別する技術として、スキャン回路を用いたスキャン・テストが知られている。このスキャン・テストでは、回路中のフリップフロップをスキャン・フリップフロップに置き換えてスキャンチェーンを構成しておき、ＡＴＰＧ（Automatic Test Pattern Generator）によって自動生成したテストパターンを用いて、半導体テスタにてパスまたはフェイルを判定する。
【０００３】
上記スキャン・テストにおいて、スキャンチェーン上でのタイミングの未達や物理的な故障が原因でフェイルした場合は、そのチップが不良品であると判断可能である。しかしながら、従来技術では、チップのどの箇所で故障が生じているかを特定することができなかった。
【０００４】
頻度が小さい故障であれば、チップ毎にパスまたはフェイルを判定できれば、不良品を除外できるので充分であるが、普遍的に発生する故障であれば、故障箇所を特定してチップレイアウトを改定することが望まれる。そのような場合、ＳＴＡ（Static Timing Analysis）などの分析技術によりタイミングが厳しい箇所など故障箇所の見当を付けて、その箇所をＦＩＢ（Focused Ion Beam）加工やレイアウト改定により修正し、正常動作するか否かを確認することができる。しかしながら、この方法では、見当が外れた場合、試行錯誤とならざるを得ず、時間およびコストが増大してしまう点で充分なものではなかった。
【０００５】
スキャンチェーン上の故障に関連して、特開２００６−９０８３７号公報（特許文献１）が知られている。特許文献１には、チップ内のフリップフロップを所定の個数ごとにグループ化し、複数のグループを可変に接続しつつ、スキャン・テストを実施する構成が開示されている。
【０００６】
しかしながら、故障箇所をフリップフロップ単位で特定することができないため、結局試行錯誤で修正せざるを得ず、時間およびコストが増大してしまう点で充分なものではなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、スキャンチェーン上の特定の素子を迂回してテストすることが可能な回路を設計することができる回路設計装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するために、下記特徴を有する回路設計装置を提供する。回路設計装置は、スキャンチェーンを含む回路の設計データを読み込む読込手段と、上記設計データ上で、上記スキャンチェーンを複数の組に分割し、複数の組各々に対し、該組の部分チェーンを経由するか迂回するかを選択する組選択回路を挿入する分割手段と、上記設計データ上で、複数の組各々の部分チェーンを構成する複数の素子各々に対し、該素子を経由するか迂回するかを選択する素子選択回路を挿入する素子選択回路挿入手段と、上述した組選択回路挿入手段および素子選択回路挿入手段により処理された設計データを書き出す書出手段とを含む。
【発明の効果】
【０００９】
上記構成により、スキャンチェーン上の特定の素子を迂回してテストすることが可能な回路を設計することができる。
【図面の簡単な説明】
【００１０】
【図１】従来技術のスキャン回路を説明する図。
【図２】本実施形態による集積回路設計装置の機能ブロック図。
【図３】（Ａ）組内ＦＦ個数指定情報、（Ｂ）デコーダ回路入力信号情報および（Ｃ）セレクタ回路入力信号情報のデータ構造を例示する図。
【図４】本実施形態による集積回路設計装置が実行する集積回路設計方法を示すフローチャート。
【図５】本実施形態によるスキャンチェーン分割部およびデコーダ回路挿入部により構成される回路構成を示す概略図。
【図６】本実施形態によるデコーダ回路挿入部により挿入されるデコーダ回路の概要を説明する図。
【図７】本実施形態によるスキャンチェーン分割部およびデコーダ回路挿入部により構成される回路構成におけるテスト対象の組の切り替え動作を説明する図。
【図８】本実施形態によるＦＦ迂回回路挿入部およびセレクタ回路挿入部により構成される回路構成を示す概略図。
【図９】本実施形態によるＦＦ迂回回路挿入部およびセレクタ回路挿入部により構成される回路構成におけるテスト対象のＦＦ素子の切り替え動作を説明する図。
【図１０】本実施形態によるＦＦ迂回回路挿入部およびセレクタ回路挿入部により構成される回路構成におけるセレクタ回路の出力側接続構成を示す図。
【図１１】本実施形態による集積回路設計装置により構成される回路構成においてスキャンチェーン上の複数箇所故障時に対応する場合の動作を説明する図。
【図１２】本実施形態による集積回路設計装置により設計されたネットリストに基づく半導体集積回路に対する半導体テスト環境および半導体テスト方法を説明する概要図。
【図１３】本実施形態による回路設計装置が生成した回路設計データに基づく半導体集積回路におけるテスト時の動作を説明するタイミングチャート。
【図１４】本実施形態による回路設計装置が生成した回路設計データに基づく半導体集積回路における各組のテスト時の動作の詳細を説明するタイミングチャート。
【図１５】本実施形態による集積回路設計装置のハードウェア構成図。
【発明を実施するための形態】
【００１１】
以下、本実施形態について説明するが、実施形態は、以下に説明する実施形態に限定されるものではない。なお、説明する実施形態では、回路設計装置として、テスト可能な半導体集積回路を設計するための集積回路設計装置を一例として説明する。
【００１２】
まず、本実施形態による集積回路設計装置を説明する前に、従来技術のスキャン回路を用いたスキャン・テストについて説明する。図１は、従来技術のスキャン回路を説明する図である。
【００１３】
図１に示すように、従来技術のスキャン回路は、回路チップの入力端子および出力端子として、スキャン入力端子ＳＩＮと、スキャン出力端子ＳＯＵＴとを有している。スキャン入力端子ＳＩＮは、スキャンチェーンを構成する１つ目のフリップフロップ（以下、略してＦＦと参照する場合がある。）素子５０２−１の入力ピンＳＩに接続されている。１つ目のＦＦ素子５０２−１の出力ピンＱは、２つ目のＦＦ素子５０２−２の入力ピンＳＩに接続され、同様にして、チップ内の全てのＦＦ素子５０２が接続される。そして、最後のＦＦ素子５０２−ｍの出力ピンＱが、スキャン出力端子ＳＯＵＴに接続される。この複数のＦＦ素子５０２が数珠つなぎに接続された回路５００がスキャンチェーンと参照される。
【００１４】
このスキャンチェーンを利用することにより、以下の２つのことが可能となる。第１に、スキャン入力端子ＳＩＮから任意の信号を次々に入力してシフトさせて行くことによって、チップ内のスキャンチェーンを構成する全てのＦＦ素子５０２に対し、任意の値を設定することができる。第２に、チップ内の全てのＦＦ素子の値をシフトさせて行くことによって、スキャン出力端子ＳＯＵＴで、チップ内のスキャンチェーンを構成する全てのＦＦ素子５０２の値を確認することができる。上述した特性を利用することにより、スキャンチェーンを用いて故障検出を行うことが可能となる。
【００１５】
しかしながら、仮にスキャンチェーンを構成するあるＦＦ素子（図１では５０２−ｎ）で故障が発生してしまうと、以下の不具合を発生させる。すなわち、スキャン入力端子ＳＩＮからの信号が故障箇所で寸断され、それより後ろのＦＦ素子（図１では５０２−（ｎ＋１）〜５０２−ｍ）に対し、任意の値を設定することができなくなる。同時に、故障箇所の前のＦＦ素子（図１では５０２−１〜５０２−（ｎ−１））の値は、故障箇所で寸断され、スキャン出力端子ＳＯＵＴで観測することができなくなる。このため、従来技術のスキャン回路では、実際に何個目のＦＦ素子が故障しているかを判別することができない。
【００１６】
上述したように、頻度が小さい故障であれば、不良品を除外できるので充分であるが、普遍的に発生する故障であれば、故障箇所を特定してチップレイアウトを改定することが望ましい。しかしながら、図１に示すような従来技術のスキャン回路では、故障箇所をＦＦ素子単位で特定することができないので、改定作業は試行錯誤とならざるを得ず、時間およびコストが増大してしまう。
【００１７】
そこで、本実施形態による集積回路設計装置は、スキャンチェーンを含む回路の設計データ上で、スキャンチェーンを複数の組に分割し、複数の組各々に対し、該組の部分チェーンを経由するか迂回するかを選択する組選択回路を挿入する。集積回路設計装置は、設計データ上で、さらに、複数の組各々の部分チェーンを構成する複数の素子各々に対し、該素子を経由するか迂回するかを選択する素子選択回路を挿入する。これにより、スキャンチェーン上の指定の素子を迂回してテストすることが可能な回路を効率的に設計することを可能とし、ひいては、修正にかかる工期の短縮およびコストの低減を図る。
【００１８】
以下、図２〜図１１を参照しながら、本実施形態による集積回路設計装置、および、集積回路設計装置が実行する集積回路設計方法について、より詳細に説明する。
【００１９】
図２は、本実施形態による集積回路設計装置１１０の機能ブロック１００を示す図である。図２に示すように、集積回路設計装置１１０は、ネットリスト読込部１１２と、組内ＦＦ個数指定情報読込部１１４と、デコーダ回路入力信号情報読込部１１６と、セレクタ回路入力信号情報読込部１１８とを含み構成される。本実施形態による集積回路設計装置１１０では、その入力情報として、入力ネットリスト１０２と、組内ＦＦ個数指定情報１０４と、デコーダ回路入力信号情報１０６と、セレクタ回路入力信号情報１０８とが準備され、集積回路設計装置１１０に入力される。読込部１１２〜１１８は、それぞれ、これらの情報を読み込む。図３（Ａ）〜図３（Ｃ）は、組内ＦＦ個数指定情報１０４、デコーダ回路入力信号情報１０６およびセレクタ回路入力信号情報１０８のデータ構造を例示する。
【００２０】
ネットリスト読込部１１２が読み込む入力ネットリスト１０２は、半導体集積回路におけるセルやマクロセル間の接続情報を含む設計データである。説明する実施形態では、入力ネットリスト１０２は、オリジナルの回路のネットリストに対し、事前に従来技術の手法によりスキャンチェーンを挿入する処理が施された後のネットリストである。しかしながら、これに限定されるものではなく、他の実施形態では、ネットリスト読込部１１２は、オリジナルの回路のネットリストを読み込んでもよい。この場合は、読み込んだオリジナルの回路のネットリストに対し、集積回路設計装置１１０が、スキャンチェーンを挿入する処理を施し、以降の処理で使用するネットリストを準備する。
【００２１】
組内ＦＦ個数指定情報読込部１１４が読み込む組内ＦＦ個数指定情報１０４は、スキャンチェーンを構成するＦＦ素子を何個ずつの組に分割するかを指定する情報である。組内ＦＦ個数指定情報１０４のフォーマットは、図３（Ａ）に例示される。図３（Ａ）に示す例では、スキャンチェーンをＦＦ素子１０個ずつの組に分けることが指定されている。
【００２２】
デコーダ回路入力信号情報読込部１１６が読み込むデコーダ回路入力信号情報１０６は、後述するデコーダ回路への入力信号を割り当てる回路チップの入力端子の名称を指定する情報である。デコーダ回路入力信号情報１０６のフォーマットは、図３（Ｂ）に例示される。図３（Ｂ）に示す例では、ＤＥＣＩＮ１、ＤＥＣＩＮ２およびＤＥＣＩＮ３という名称の回路チップの入力端子をデコーダ回路の入力に割り当てて使用することが指定されている。
【００２３】
セレクタ回路入力信号情報読込部１１８が読み込むセレクタ回路入力信号情報１０８は、後述するセレクタ回路への入力信号を割り当てる回路チップの入力端子の名称を指定する情報である。セレクタ回路入力信号情報１０８のフォーマットは、図３（Ｃ）に例示される。図３（Ｃ）に示す例では、ＳＥＬＩＮ１〜ＳＥＬＩＮ１０の名称の回路チップの入力端子をセレクタ回路の入力に割り当てて使用することが指定されている。
【００２４】
本実施形態による集積回路設計装置１１０は、読込部１１４〜１１８がそれぞれ読み込んだ情報に基づいて、ネットリスト読込部１１２が読み込んだネットリストに対して処理を行うために、さらに、処理部１２０〜１２８を含み構成される。集積回路設計装置１１０は、より具体的には、スキャンチェーン分割部１２０と、デコーダ回路挿入部１２２と、ＦＦ迂回回路挿入部１２４と、セレクタ回路挿入部１２６と、ネットリスト書出部１２８とを含み構成される。
【００２５】
スキャンチェーン分割部１２０は、ネットリスト読込部１１２で読み込んだネットリスト上で、組内ＦＦ個数指定情報読込部１１４により指定された個数のＦＦ素子毎に、スキャンチェーンを複数の組に分割する。スキャンチェーン分割部１２０は、ネットリスト上で、分割された複数の組各々に対し、該組の部分チェーンを経由するか迂回するかを選択するための組選択回路を挿入する。スキャンチェーン分割部１２０は、本実施形態における分割手段を構成する。
【００２６】
デコーダ回路挿入部１２２は、スキャンチェーン分割部１２０で処理後のネットリスト上で、デコーダ回路入力信号情報読込部１１６により指定された入力端子が割り振られたデコーダ回路を挿入する。デコーダ回路挿入部１２２は、本実施形態における組選択制御回路挿入手段を構成する。挿入されるデコーダ回路は、分割された複数の組のうちの指定の組の部分チェーンがスキャン入力端子ＳＩＮおよびスキャン出力端子ＳＯＵＴに接続された状態になるよう複数の組各々の組選択回路を制御する、本実施形態における組選択制御回路である。
【００２７】
スキャンチェーン分割部１２０およびデコーダ回路挿入部１２２の詳細については、図４〜図７を参照しながら後述する。
【００２８】
ＦＦ迂回回路挿入部１２４は、デコーダ回路挿入部１２２で処理後のネットリスト上で、複数の組各々の部分チェーンを構成する複数のＦＦ素子各々に対し、該ＦＦ素子を経由するか迂回するかを選択するための素子選択回路を挿入する。ＦＦ迂回回路挿入部１２４は、本実施形態における素子選択回路挿入手段を構成する。
【００２９】
セレクタ回路挿入部１２６は、ＦＦ迂回回路挿入部１２４で処理後のネットリスト上で、セレクタ回路入力信号情報読込部１１８により指定された入力端子が割り振られたセレクタ回路を挿入する。セレクタ回路挿入部１２６は、本実施形態における素子選択制御回路挿入手段を構成する。挿入されるセレクタ回路は、複数のＦＦ素子のうちの指定の少なくとも１つのＦＦ素子が迂回された状態になるよう複数のＦＦ素子各々の素子選択回路を制御する、本実施形態における素子選択制御回路を構成する。セレクタ回路は、好ましい実施形態では、上述した複数の組の間で共有される。
【００３０】
ＦＦ迂回回路挿入部１２４およびセレクタ回路挿入部１２６の詳細については、図４および図８〜図１１を参照しながら後述する。
【００３１】
ネットリスト書出部１２８は、上述した処理部１２０〜１２６で処理されたネットリストを、出力ネットリスト１３０として書き出す書出手段である。以降、出力ネットリスト１３０に基づいて、半導体集積回路が製造されることになる。
【００３２】
以下、図４〜図１１を参照しながら、集積回路設計装置１１０の動作および設計される回路構成について、より詳細に説明する。図４は、本実施形態による集積回路設計装置１１０が実行する集積回路設計方法を示すフローチャートである。図４に示す処理は、入力ネットリスト１０２などの入力情報が準備され、ユーザにより入力情報を指定した回路設計処理の開始が指示されたことに応答して、ステップＳ１００から開始される。
【００３３】
ステップＳ１０１では、集積回路設計装置１１０は、ネットリスト読込部１１２、組内ＦＦ個数指定情報読込部１１４、デコーダ回路入力信号情報読込部１１６およびセレクタ回路入力信号情報読込部１１８により、スキャンチェーン挿入済みの入力ネットリスト１０２、組内ＦＦ個数指定情報１０４、デコーダ回路入力信号情報１０６およびセレクタ回路入力信号情報１０８を読み込む。
【００３４】
ステップＳ１０２では、集積回路設計装置１１０は、スキャンチェーン分割部１２０により、読み出した入力ネットリスト１０２に対し、組内ＦＦ個数指定情報１０４で指定された通りの個数のＦＦ素子毎にスキャンチェーンを分割するよう処理を施す。スキャンチェーン分割部１２０は、さらに、組における最後のＦＦ素子の後段に、組選択回路としてマルチプレクサを挿入し、各組の部分チェーンを通過するパスおよび迂回するパスをそれぞれマルチプレクサに入力するよう処理を施す。
【００３５】
図５は、本実施形態によるスキャンチェーン分割部１２０およびデコーダ回路挿入部１２２により構成される回路構成を示す概略図である。図５に示すように、スキャンチェーンは、組内ＦＦ個数指定情報１０４により指定された個数毎に、例えば、ＦＦ素子２１０〜２１９を含む第１組、ＦＦ素子２２０〜２２９を含む第２組、・・・、ＦＦ素子２３０〜２３９を含む第ｍ組のように組分け分割される。各組の最後のＦＦ素子２１９，２２９，…，２３９の後段には、マルチプレクサ２４１〜２４９が挿入されており、各組を構成している部分チェーンを通るパスと、この部分チェーンを迂回するパスのどちらかを選択可能な回路構成とされている。
【００３６】
再び図４を参照すると、ステップＳ１０３では、集積回路設計装置１１０は、デコーダ回路挿入部１２２により、上記処理したネットリストに対し、デコーダ回路を挿入するよう処理を施す。デコーダ回路挿入部１２２は、さらに、デコーダ回路の出力信号を各組のマルチプレクサの選択制御に接続し、デコーダ回路の入力をデコーダ回路入力信号情報で指定された入力端子と接続するよう処理を施す。
【００３７】
再び図５を参照すると、回路構成にはデコーダ回路２５０が追加されており、合計ｍ組各々のマルチプレクサ２４１〜２４９の選択制御信号とデコーダ回路２５０の出力信号ｄｅｃｏｕｔ１〜ｄｅｃｏｕｔｍとがそれぞれ接続されている。デコーダ回路２５０の入力信号は、デコーダ回路入力信号情報１０６により指定された回路チップの入力端子ＤＥＣＩＮ１〜ＤＥＣＩＮｎに接続されている。
【００３８】
図５に示すような回路構成では、デコーダ回路２５０への入力信号を制御することによって、任意のマルチプレクサの選択制御信号の値を１に設定することができる。そして、そのマルチプレクサの前段の組の部分チェーンだけがスキャン入力端子ＳＩＮからスキャン出力端子ＳＯＵＴまでのスキャンチェーンに繋がった状態が実現される。
【００３９】
デコーダ回路２５０は、一般的な回路であるため、詳細な説明は割愛するが、図６を参照して概要を説明する。図６に示す例では、３つの入力端子ＤＥＣＩＮ１〜ＤＥＣＩＮ３の状態によって、８本の出力信号ｄｅｃｏｕｔ１〜ｄｅｃｏｕｔ８のいずれか１つの値が１となり、その他の出力信号の値が０となるよう構成されている。このデコーダ回路の特性を利用して、回路チップの入力端子ＤＥＣＩＮ１〜ＤＥＣＩＮ３への入力信号を制御することによって、８組のうちの任意の１つの組のマルチプレクサの選択制御信号のみを１とする制御回路を実現することができる。
【００４０】
デコーダ回路の構成は、入力情報に基づいて一意に決定される。出力信号の本数は、挿入したマルチプレクサの数、つまり分割した組の数だけ必要となる。このため、出力信号の本数は、入力ネットリスト１０２におけるスキャンチェーンを構成するＦＦの個数および組内ＦＦ個数指定情報１０４で指定される組内ＦＦ個数によって決定される。
【００４１】
入力信号の本数は、出力信号の本数に基づいて決定される。例えば、スキャンチェーンが８組に分割される場合は、２進数で８つ以上の値を実現できる最小の桁数、つまり３つの入力信号となる。デコーダ回路自体は、上述したデコーダ回路入力信号情報１０６と、上述した入力信号および出力信号の本数とによって決定される。
【００４２】
図７は、本実施形態によるスキャンチェーン分割部１２０およびデコーダ回路挿入部１２２により構成される回路構成におけるテスト対象の組の切り替え動作を説明する図である。
【００４３】
図７に沿って説明すると、図７（Ａ）では、第１組の後段のマルチプレクサの選択制御信号のみが１となっている。そして、スキャン入力端子ＳＩＮから第１組の部分チェーンを経由して、第２組から最終組までの部分チェーンを迂回してスキャン出力端子ＳＯＵＴに抜けるスキャンチェーンが成立している。これに対して、図７（Ｂ）では、第２組の後段のマルチプレクサの選択制御信号のみが１となっており、第２組の部分チェーンのみがスキャン入力端子ＳＩＮおよびスキャン出力端子ＳＯＵＴに接続された状態となっている。同様に、図７（Ｃ）では、最終の第ｍ組の部分チェーンのみがスキャン入力端子ＳＩＮおよびスキャン出力端子ＳＯＵＴに接続された状態となっている。
【００４４】
このように、本実施形態による集積回路設計装置１１０により設計される回路は、スキャンチェーン上の指定した任意の組の部分チェーンだけをスキャン端子ＳＩＮ，ＳＯＵＴに繋がった状態にすることができる仕組みを持つことを特徴としている。
【００４５】
ここで、再び図４を参照する。ステップＳ１０４では、集積回路設計装置１１０は、ＦＦ迂回回路挿入部１２４により、上記処理したネットリストに対し、各ＦＦ素子のマクロセルを、後段に素子選択回路としてマルチプレクサを有するマクロセルで置き換えるよう処理を施す。ＦＦ迂回回路挿入部１２４は、さらに、各ＦＦ素子を通過するパスおよび迂回するパスを後段のマルチプレクサに入力するよう処理する。
【００４６】
図８は、本実施形態によるＦＦ迂回回路挿入部１２４およびセレクタ回路挿入部１２６により構成される回路構成を示す概略図である。なお、図８に示す回路構成は、図５に示す回路構成における１つの組を拡大したものに相当する。
【００４７】
図８に示すように、置き換え後のマクロセル３１０〜３１９では、ＦＦ素子３２０〜３２９の後段にマルチプレクサ３３０〜３３９が設けられている。各々のＦＦ素子の後段にマルチプレクサを追加することにより、各々のＦＦ素子を通るパスと、各々のＦＦ素子を迂回するパスのどちらかを選択できる回路構成とされている。なお、図８では、マルチプレクサ（例えば３３０）が前段のＦＦ素子（例えば３２０）と合体して１つのスキャン回路用のマクロセル３１０が構成されるものとして説明しているが、必ずしも合体させる必要はなく、別々のセルのままで構成されることを妨げない。
【００４８】
再び図４を参照すると、ステップＳ１０５では、集積回路設計装置１１０は、セレクタ回路挿入部１２６により、上記処理したネットリストに対し、セレクタ回路を挿入するよう処理を施す。セレクタ回路挿入部１２６は、さらに、挿入したセレクタ回路の出力信号を各マルチプレクサ３３０〜３３９の選択制御信号に接続し、その入力信号をセレクタ回路入力信号情報で指定された回路チップの入力端子に接続するよう処理を施す。
【００４９】
再び図８を参照すると、回路構成にはセレクタ回路３５０が追加されており、合計ｐ個のマクロセル３１０〜３１９のマルチプレクサ３３０〜３３９各々の選択制御信号とセレクタ回路３５０の出力信号ｓｅｌｏｕｔ１〜ｓｅｌｏｕｔｐとが接続されている。セレクタ回路３５０への入力信号は、セレクタ回路入力信号情報１０８により設定された回路チップの入力端子ＳＥＬＩＮ１〜ＳＥＬＩＮｐに接続されている。
【００５０】
図８に示すような回路を実装することにより、セレクタ回路３５０への入力信号を制御し、合計ｐ個のうちの任意のマクロセルのマルチプレクサの選択制御信号の値を１に設定する。これにより、そのマルチプレクサに対応するマクロセルだけを、ＦＦ素子１個単位でスキャンチェーンから除外することが可能となる。
【００５１】
図９は、本実施形態によるＦＦ迂回回路挿入部１２４およびセレクタ回路挿入部１２６により構成される回路構成におけるテスト対象のＦＦ素子の切り替え動作を説明する図である。
【００５２】
図９に沿って説明すると、図９（Ａ）では、１個目のＦＦ素子の後段のマルチプレクサの選択制御信号が１となっており、この組への入力から１個目のＦＦ素子を迂回して、２個目から最終個目までを経由してこの組の出力へ抜けるスキャンチェーンが成立することになる。これに対して、図９（Ｂ）では、２個目のマルチプレクサの選択制御信号が１となっており、この組への入力から１個目のＦＦ素子を経由して、２個目を迂回して、３個目から最終個目のＦＦ素子までを経由してこの組の出力へ抜けるスキャンチェーンが成立することになる。図９（Ｃ）も同様に、最終個目のＦＦ素子が除外されたスキャンチェーンが成立する。
【００５３】
このように、本実施形態による集積回路設計装置１１０により設計された回路は、各組を構成しているＦＦ素子を１個単位で、経由させるか迂回させるかを選択できる仕組みを持つことを特徴としている。
【００５４】
なお、上述した説明では、１個単位でＦＦ素子を除外するものとして説明しているが、セレクタ回路への入力信号を制御することによって、同時に複数個のＦＦ素子をスキャンチェーンから除外することも可能である。つまり、スキャンチェーン上で複数箇所故障している場合にも対応することが可能である。セレクタ回路の最も簡便な構成としては、各組に挿入されているマルチプレクサの数だけ外部入力を用意し、外部入力からセレクタ回路の出力までを直結したものを用いることができる。
【００５５】
図１０は、本実施形態によるＦＦ迂回回路挿入部１２４およびセレクタ回路挿入部１２６により構成される回路構成におけるセレクタ回路３５０の出力側接続構成を示す図である。１つの組における接続については、図９を参照して説明した。一方、上述したように、スキャンチェーンは多数の組から構成され得る。特定の実施形態では、この存在する組毎に上述したセレクタ回路を設けることもできる。しかしながら、好ましい実施形態では、図１０に示すように、他の組に対してもセレクタ回路の出力信号を同様に接続し、複数の組の間でセレクタ回路を共有することができる。例えば、出力信号ｓｅｌｏｕｔ１をすべての組における１個目のＦＦマクロセルのマルチプレクサの選択制御信号に接続することができる。この好ましい実施形態では、セレクタ回路は、１つで済み、セレクタ回路への制御信号の本数も最小限に抑制することができる。
【００５６】
図１１は、本実施形態による集積回路設計装置１１０により構成される回路構成において、スキャンチェーン上の複数箇所故障に対応する場合の動作を説明する図である。なお、図１１には、各組１０個のＦＦ素子で分割された第１組および第２組の部分チェーンが示されている。
【００５７】
図１１に示すように、仮に第１組の前から２番目のＦＦ素子と、第２組目の前から３番目のＦＦ素子とが故障している場合を検討する。前から２番目および３番目のＦＦ素子が故障しているため、通常、セレクタ回路３５０の２番目および３番目の出力信号（点線で示す。）を１に設定し、これらのＦＦ素子をスキャンチェーンから除外することが考えられる。
【００５８】
しかしながら、このままでは、第１組の前から３番目と、第２組の前から２番目のＦＦ素子は、故障していないにも関わらず、スキャンチェーンから除外されてしまうことになる。したがって、この状態でテストを行っても、第１組の前から３番目および第２組の前から２番目のＦＦ素子の故障の有無は、明らかにされないまま残ってしまう。
【００５９】
これに対して、本実施形態による集積回路設計装置１１０で構成された回路構成では、図７を参照して説明した通り、各組を順番にテストできるように構成されている。このため、セレクタ回路３５０を共有する場合であっても、テスト期間毎にセレクタ回路３５０への入力信号を変更することによって、任意のＦＦ素子のみをテスト対象から除外することが可能となる。
【００６０】
図１１に示す例示では、第１組に対するテスト期間にセレクタ回路３５０の２番目の出力信号ｓｅｌｏｕｔ２のみを１とするよう入力信号を設定することができる。そして、第２組に対するテスト期間には、セレクタ回路３５０の３番目の出力信号ｓｅｌｏｕｔ３のみを１とするよう入力信号を設定することができる。これにより、本当に故障しているＦＦ素子のみをスキャンチェーンから除外してテストすることが可能となる。
【００６１】
再び図４を参照すると、ステップＳ１０６では、集積回路設計装置１１０は、ネットリスト書出部１２８により、上記処理が施されたネットリストを出力ネットリスト１３０として出力し、ステップＳ１０７で本処理を終了する。
【００６２】
以下、図１２〜図１４を参照しながら、集積回路設計装置１１０により設計された半導体集積回路に対する半導体テスト方法について説明する。図１２は、本実施形態による集積回路設計装置１１０により設計されたネットリストに基づく半導体集積回路に対する半導体テスト環境４００および半導体テスト方法の概要を説明する図である。
【００６３】
図１２に示す回路設計装置４１０は、回路設計データ４１２を生成する。図２〜図１１を参照して説明した本実施形態による集積回路設計装置１１０は、回路設計装置４１０に含まれていてもよい。回路設計装置４１０は、人手で設計したオリジナルのネットリスト、または論理合成ツールがハードウェア記述言語記述したデータから自動生成したオリジナルのネットリストに対し、回路内のＦＦ素子の全部または一部をスキャンＦＦ素子に置き換えることによって、スキャンチェーンが挿入されたネットリストを生成する。このネットリストを入力ネットリスト１０２として、回路設計装置４１０は、上述した処理を施すことによって、出力ネットリスト１３０を生成する。回路設計装置４１０は、さらに、出力ネットリスト１３０を自動レイアウト設計ツールに入力し、フロアプラニング、配置、クロック分配回路および配線を経て、回路チップのマスク・レイアウト・パターンを回路設計データ４１２として出力する。そして、得られた回路設計データ４１２からフォトマスクが作成され、ウエハプロセスにより、半導体集積回路４３０が製造されることになる。
【００６４】
また、テストパターン生成装置４２０は、出力ネットリスト１３０に基づいて、ＡＴＰＧによりテストパターン４２２を自動生成することができる。半導体テスタ４４０は、製造された半導体集積回路４３０をＤＵＴ（Device Under Test）として、テストパターン４２２に基づきテストし、パスおよびフェイルを判定する。
【００６５】
上述したように、半導体集積回路４３０は、複数の組に分割されたスキャンチェーンと、スキャンチェーンから分割された複数の組各々の部分チェーンを経由するか迂回するかを選択するための複数の組各々のマルチプレクサを含む。半導体集積回路４３０は、また、複数の組各々の部分チェーンを構成する複数の素子各々を経由するか迂回するかを選択するための複数の素子各々のマルチプレクサを含む。半導体集積回路４３０は、さらに、スキャン入力端子ＳＩＮと、スキャン出力端子ＳＯＵＴと、複数の組各々のマルチプレクサを制御するための組選択入力端子ＤＥＣＩＮ＊（＊は、必要な範囲の任意の数字を表す。）と、複数の素子各々のマルチプレクサを制御するための素子選択入力端子ＳＥＬＩＮ＊（＊は、必要な範囲の任意の数字を表す。）とを含む。半導体集積回路４３０は、組選択入力端子ＤＥＣＩＮ＊と複数の組各々のマルチプレクサとに接続されるデコーダ回路と、素子選択入力端子ＳＥＬＩＮ＊と複数のＦＦ素子各々の後段のマルチプレクサとに接続されるセレクタ回路とをさらに含むことができる。
【００６６】
半導体テスタ４４０は、テスト時には、テストパターン４２２に基づき、半導体集積回路に組み込まれたスキャンチェーンを構成する複数の組各々の部分チェーンに対し設けられたマルチプレクサを、複数の組のうちの指定の組の部分チェーンがスキャン入力端子およびスキャン出力端子に繋がった状態になるよう制御する。半導体テスタ４４０は、また、テストパターン４２２に基づき、複数の組各々の部分チェーンを構成する複数のＦＦ素子各々に対して設けられたマルチプレクサを、複数のＦＦ素子のうちの指定の少なくとも１つのＦＦ素子が迂回される状態になるよう制御する。
【００６７】
そして、半導体テスタ４４０は、テストパターン４２２に基づき、スキャン入力端子ＳＩＮから、指定の組の部分チェーンを構成し、指定の少なくとも１つの素子を除くテスト対象のＦＦ素子各々に対し値を設定し、スキャン出力端子ＳＯＵＴからテスト対象素子各々の値を観測する。
【００６８】
図１３は、本実施形態による回路設計装置４１０が生成した回路設計データに基づく半導体集積回路におけるテスト時の動作を説明するタイミングチャートである。ＦＦ素子は、説明の都合上、図６に示したデコーダ回路に対応させて８組あるものとする。図６の例では、テストパターン生成装置４２０は、テスト時に、デコーダ回路への入力端子ＤＥＣＩＮ１，ＤＥＣＩＮ２，ＤＥＣＩＮ３に対し、図１３に示すような波形の信号を印加するテストパターンを生成することで、出力１から出力８までの信号が順番に１になり、第１組から第８組までを順番にテストして行くテストパターンを得ることができる。
【００６９】
図１４は、本実施形態による回路設計装置４１０が生成した回路設計データに基づく半導体集積回路における各組のテスト時の動作の詳細を説明するタイミングチャートである。図１３に示す例では、各組は、１０個のＦＦ素子で構成されており、ここで、第１組の前から２番目のＦＦ素子が故障していると見当が付けられ、このＦＦ素子を除外してテストを行うものとする。
【００７０】
図１４の例では、テストパターン生成装置４２０は、セレクタ回路の入力端子ＳＥＬＩＮ１からＳＥＬＩＮ１０に対し、図１４のような波形の信号を印加するテストパターンを作成することで、出力２の信号が１になり、第１組の前から２番目のＦＦがスキャンチェーンから除外された状態でテストを行うためのテストパターンを得ることができる。
【００７１】
またスキャン入力端子ＳＩＮから印加する信号波形は、０縮退故障および１縮退故障の両方をテストする必要があるので、先ず除外された１個のＦＦ素子を除く９個のＦＦ素子全てに値０を設定し、次に９個のＦＦ素子全てに値１を設定する信号波形を印加するテストパターンとする。さらにスキャン出力端子ＳＯＵＴに設定されるべき期待値は、図１４の場合には、全てのＦＦ素子にスキャン入力端子ＳＩＮから値をセットし終える９番目のサイクルまでは不定にし、値０が観測できる１０番目のサイクルから１９番目のサイクルまでは値０にし、値１が観測できる２０番目のサイクルから２８番目のサイクルまでは値１にする。
【００７２】
テストパターン生成装置４２０は、このような条件のテストパターンを作成することによって、故障していると当たりを付けているＦＦ素子のみを除外したスキャンチェーンのテストが行えるテストパターンを得ることができる。
【００７３】
したがって、故障箇所の見当を付けて、その箇所をＦＩＢ加工やレイアウト改定により修正し、正常動作するか否かを確認する必要はない。レイアウト改定する前段階で、スキャンチェーン上の故障個所を特定し、その故障個所で間違いないことを半導体テスタにより確認することができるからである。このため、ＦＩＢ加工やレイアウト改定の試行錯誤が不要であり、ひいては、レイアウト修正の工期を短縮し、コストを低減することができる。
【００７４】
以下、図１５を参照しながら、本実施形態による集積回路設計装置１１０のハードウェア構成について説明する。図１５は、本実施形態による集積回路設計装置１１０のハードウェア構成を示す図である。本実施形態による集積回路設計装置１１０は、デスクトップ型のパーソナル・コンピュータ、ワークステーションなどの汎用コンピュータなどとして構成されている。図１５に示す集積回路設計装置１１０は、シングルコアまたはマルチコアのＣＰＵ（Central Processing Unit）１２と、ＣＰＵ１２とメモリとの接続を担うノースブリッジ１４と、該ノースブリッジ１４と専用バスまたはＰＣＩバスを介して接続され、ＰＣＩバスやＵＳＢなどのＩ／Ｏとの接続を担うサウスブリッジ１６とを含む。
【００７５】
ノースブリッジ１４には、ＣＰＵ１２の作業領域を提供するＲＡＭ（Random Access Memory）１８と、映像信号を出力するグラフィックボード２０とが接続される。グラフィックボード２０には、映像出力インタフェースを介してディスプレイ５０に接続される。
【００７６】
サウスブリッジ１６には、ＰＣＩ（Peripheral Component Interconnect）２２、ＬＡＮポート２４、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.）１３９４ポート２６、ＵＳＢ（Universal Serial Bus）ポート２８、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの補助記憶装置３０、オーディオ入出力３２、シリアルポート３４が接続される。補助記憶装置３０は、コンピュータ装置を制御するためのＯＳ、上述した機能部を実現するための制御プログラムや各種システム情報や各種設定情報を格納する。ＬＡＮポート２４は、集積回路設計装置１１０をＬＡＮに接続させるインタフェース機器である。
【００７７】
ＵＳＢポート２８には、キーボード５２およびマウス５４などの入力装置が接続されてもよく、当該集積回路設計装置１１０の操作者からの各種指示の入力を受け付けるためのユーザ・インタフェースを提供することができる。本実施形態による集積回路設計装置１１０は、補助記憶装置３０から制御プログラムを読み出し、ＲＡＭ１８が提供する作業空間に展開することにより、ＣＰＵ１２の制御の下、上述した各機能部および各処理を実現する。なお、テストパターン生成装置４２０については、詳細は説明しないが、図１５に示したハードウェアと同様に構成することができる。
【００７８】
以上説明したように、本実施形態によれば、スキャンチェーン上の特定の素子を迂回してテストすることが可能な回路を設計することができる回路設計装置、回路設計方法およびプログラム、並びに回路装置を提供することができる。
【００７９】
なお、上記機能部は、アセンブラ、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ＲＯＭ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、フラッシュメモリ、フレキシブルディスク、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−ＲＷ、ブルーレイディスク、ＳＤカード、ＭＯなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
【００８０】
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【符号の説明】
【００８１】
１００…機能ブロック、１０２…入力ネットリスト、１０４…組内ＦＦ個数指定情報、１０６…デコーダ回路入力信号情報、１０８…セレクタ回路入力信号情報、１１０…集積回路設計装置、１１２…ネットリスト読込部、１１４…組内ＦＦ個数指定情報読込部、１１６…デコーダ回路入力信号情報読込部、１１８…セレクタ回路入力信号情報読込部、１２０…スキャンチェーン分割部、１２２…デコーダ回路挿入部、１２４…ＦＦ迂回回路挿入部、１２６…セレクタ回路挿入部、１２８…ネットリスト書出部、１３０…出力ネットリスト、２１０…ＦＦ素子、２２０…ＦＦ素子、２３０…ＦＦ素子、２４１…マルチプレクサ、２５０…デコーダ回路、３１０…マクロセル、３２０…ＦＦ素子、３３０…マルチプレクサ、３５０…セレクタ回路、４００…半導体テスト環境、４１０…回路設計装置、４１２…回路設計データ、４２０…テストパターン生成装置、４２２…テストパターン、４３０…半導体集積回路、４４０…半導体テスタ、５００…回路、５０２…ＦＦ素子、１２…ＣＰＵ、１４…ノースブリッジ、１６…サウスブリッジ、１８…ＲＡＭ、２０…グラフィックボード、２２…ＰＣＩ、２４…ＬＡＮポート、２６…ＩＥＥＥ１３９４ポート、２８…ＵＳＢポート、３０…補助記憶装置、３２…オーディオ入出力、３４…シリアルポート、５０…ディスプレイ、５２…キーボード、５４…マウス
【先行技術文献】
【特許文献】
【００８２】
【特許文献１】特開２００６−９０８３７号公報
【図１】
2016128758.tif 000003
【図２】
2016128758.tif 000004
【図３】
2016128758.tif 000005
【図４】
2016128758.tif 000006
【図５】
2016128758.tif 000007
【図６】
2016128758.tif 000008
【図７】
2016128758.tif 000009
【図８】
2016128758.tif 000010
【図９】
2016128758.tif 000011
【図１０】
2016128758.tif 000012
【図１１】
2016128758.tif 000013
【図１２】
2016128758.tif 000014
【図１３】
2016128758.tif 000015
【図１４】
2016128758.tif 000016
【図１５】
2016128758.tif 000017