(57)【要約】 【課題】半導体集積回路内の一部のロジック回路が故障しても、救済できる。【解決手段】半導体集積回路は、再構成可能なロジック機能をそれぞれ有する複数のロジック回路と、複数のロジック回路のロジック機能を設定するためのコンフィグレーション情報を記憶するメモリと、複数のロジック回路の故障の有無をテストするテスト制御回路と、テスト制御回路によるテスト結果に基づいて、複数のロジック回路の故障の有無を示す情報を出力するテスト結果出力制御回路と、を備える。【選択図】図１
2020048022.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能なロジック機能をそれぞれ有する複数のロジック回路と、
前記複数のロジック回路のロジック機能を設定するためのコンフィグレーション情報を記憶するメモリと、
前記複数のロジック回路の故障の有無をテストするテスト制御回路と、
前記テスト制御回路によるテスト結果に基づいて、前記複数のロジック回路の故障の有無を示す情報を出力するテスト結果出力制御回路と、を備える、半導体集積回路。
【請求項２】
前記メモリは、前記テスト制御回路にて、少なくとも一つの前記ロジック回路の故障が検出されると、故障のロジック回路の使用を禁止するとともに、故障以外のロジック回路を用いて所定のロジック機能を実現するための前記コンフィグレーション情報を記憶し直す、請求項１に記載の半導体集積回路。
【請求項３】
前記テスト制御回路は、当該半導体集積回路の電源投入時に、前記複数のロジック回路の故障の有無をテストし、各ロジック回路ごとに故障の有無を示す情報を保持する、請求項１又は２に記載の半導体集積回路。
【請求項４】
前記テスト結果出力制御回路は、前記複数のロジック回路の故障の有無を示す複数のテスト結果信号を保持するレジスタ回路を有する、請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項５】
前記テスト結果出力制御回路の出力信号が出力される故障検出端子を備え、
前記テスト結果出力制御回路は、前記複数のロジック回路のうち少なくとも一つが故障しているときに第１論理になり、前記複数のロジック回路のすべてが故障していないときに第２論理になる故障検出信号を前記故障検出端子に供給する、請求項１乃至４のいずれか一項に記載の半導体集積回路。
【請求項６】
前記メモリは、揮発メモリであり、
前記メモリは、当該半導体集積回路の電源投入時に、前記コンフィグレーション情報を記憶し直す、請求項１乃至５のいずれか一項に記載の半導体集積回路。
【請求項７】
再構成可能な半導体集積回路と、
前記半導体集積回路のロジック機能を設計する故障救済装置と、を備える再構成半導体システムであって、
前記半導体集積回路は、
再構成可能なロジック機能をそれぞれ有する複数のロジック回路と、
前記複数のロジック回路のロジック機能を設定するためのコンフィグレーション情報を記憶する第１メモリと、
前記複数のロジック回路の故障の有無をテストするテスト制御回路と、
前記テスト制御回路によるテスト結果に基づいて、前記複数のロジック回路の故障の有無を示す情報を出力するテスト結果出力制御回路と、を有し、
前記故障救済装置は、前記テスト結果出力制御回路から出力された情報に基づいて、故障しているロジック回路の使用を禁止するとともに、故障しているロジック回路以外のロジック回路のロジック機能を再構成した前記コンフィグレーション情報を生成し、
前記第１メモリは、前記故障救済装置が生成した前記コンフィグレーション情報を記憶する、再構成半導体システム。
【請求項８】
前記故障救済装置が生成した前記コンフィグレーション情報を記憶する不揮発の第２メモリを備え、
前記第１メモリは、揮発メモリであり、
前記第１メモリは、前記半導体集積回路の電源投入時に、前記第２メモリに記憶された前記コンフィグレーション情報を記憶し直す、請求項７に記載の再構成半導体システム。
【請求項９】
前記半導体集積回路は、前記テスト結果出力制御回路の出力信号が出力される故障検出端子を備え、
前記テスト結果出力制御回路は、前記複数のロジック回路の故障の有無を示す複数のテスト結果信号を保持するレジスタ回路を有し、前記複数のロジック回路のうち少なくとも一つが故障しているときに第１論理になり、前記複数のロジック回路のすべてが故障していないときに第２論理になる故障検出信号を前記故障検出端子に供給し、
前記故障救済装置は、前記故障検出端子が前記第１論理になると、前記半導体集積回路内の前記レジスタ回路が保持している前記複数のテスト結果信号に基づいて、故障のロジック回路を特定し、前記特定された故障のロジック回路の使用を禁止するとともに、前記故障のロジック回路以外のロジック回路のロジック機能を再構成した前記コンフィグレーション情報を生成する、請求項７又は８に記載の再構成半導体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体集積回路及び再構成半導体システムに関する。
【背景技術】
【０００２】
任意のロジック機能を再構成可能なＦＰＧＡ（Field Programmable Gate Array）が普及している。ＦＰＧＡの内部には、再構成可能な多数のロジック回路が設けられており、出荷前には、各ロジック回路が正常に動作しているか否かのテストが行われる。一部のロジック回路が故障していると判断されると、ＦＰＧＡを不良品として破棄するのが一般的である。また、ＦＰＧＡを実装したボードの状態で、ＦＰＧＡが故障した場合、ＦＰＧＡを交換するか、又はボードごと交換していた。この場合、ＦＰＧＡが不良品と判断されると、ボードごと破棄していた。このため、ボードを交換しなければならず、交換費用がかかる上に、ボードへの部品実装やボードの取付など、修理に時間もかかっていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−６１２３８号公報
【特許文献２】特開平８−２９８２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一態様では、半導体集積回路内の一部のロジック回路が故障しても、救済可能な半導体集積回路及び再構成半導体システムを提供するものである。
【課題を解決するための手段】
【０００５】
本実施形態によれば、再構成可能なロジック機能をそれぞれ有する複数のロジック回路と、
前記複数のロジック回路のロジック機能を設定するためのコンフィグレーション情報を記憶するメモリと、
前記複数のロジック回路の故障の有無をテストするテスト制御回路と、
前記テスト制御回路によるテスト結果に基づいて、前記複数のロジック回路の故障の有無を示す情報を出力するテスト結果出力制御回路と、を備える、半導体集積回路が提供される。
【図面の簡単な説明】
【０００６】
【図１】一実施形態による半導体集積回路の内部構成を示すブロック図。
【図２】故障を起こした基本タイルの救済を行う再構成半導体システムのブロック図。
【図３】図２の再構成半導体システムの処理動作を示すフローチャート。
【発明を実施するための形態】
【０００７】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、半導体集積回路及び再構成半導体システム内の特徴的な構成および動作を中心に説明するが、半導体集積回路及び再構成半導体システムには以下の説明で省略した構成および動作が存在しうる。
【０００８】
図１は一実施形態による半導体集積回路１の内部構成を示すブロック図である。図１の半導体集積回路１は、再構成可能なロジック機能を備えており、ＦＰＧＡとも呼ばれる。
【０００９】
図１の半導体集積回路１は、複数の基本タイル２と、コンフィグレーションメモリ３と、テスト制御回路４と、テスト結果出力制御回路５と、複数の入力／出力端子６とを備えている。
各基本タイル２は、再構成可能なロジック機能を有する。本明細書では、各基本タイル２をロジック回路と呼ぶこともある。より詳細には、各基本タイル２は、ロジックブロック（ＬＢ）７と、スイッチブロック（ＳＢ）８とを有する。なお、基本タイル２の内部にロジックブロック７のみを設けて、スイッチブロック８は、隣接する複数の基本タイル２の間や、各基本タイル２の近傍に設けてもよい。
【００１０】
各ロジックブロック７は、ルックアップテーブルや、加算器、マルチプレクサ、フリップフロップなどを含んでいる。例えば、ルックアップテーブルに登録されるデータを変えることで、各ロジックブロック７のロジック機能を切り替えることができる。
【００１１】
コンフィグレーションメモリ３は、コンフィグレーション情報を記憶している。このコンフィグレーション情報に基づいて、各基本タイル２内のルックアップテーブル等にデータが設定される。したがって、コンフィグレーションメモリ３に記憶されるコンフィグレーション情報を更新することで、各ロジックブロック７のロジック機能を切り替えることができる。同様に、各スイッチブロック８についても、コンフィグレーションメモリ３内のコンフィグレーション情報に基づいて、接続対象を切り替えることができる。さらに、コンフィグレーション情報によって、少なくとも一部の入力／出力端子６の機能も変更することができる。
【００１２】
図１のコンフィグレーションメモリ３は、例えばＳＲＡＭ（Static Random Access Memory）等の揮発メモリであってもよい。コンフィグレーションメモリ３が揮発メモリの場合、図１の半導体集積回路１の電源がオフになると、揮発メモリ内のデータが消去されてしまう。このため、図１の半導体集積回路１の電源投入時に、外部からコンフィグレーションメモリ３にコンフィグレーション情報を書き込む必要がある。書込終了後に、コンフィグレーションメモリ３に記憶されたコンフィグレーション情報に基づいて、各基本タイル２内の各ロジックブロック７のロジック機能と、各スイッチブロック８の切替機能とが設定される。
【００１３】
図１のコンフィグレーションメモリ３がＳＲＡＭ等の揮発メモリの場合は、図１の半導体集積回路１が実装されるボード上に、フラッシュメモリ等の不揮発メモリを実装しておき、図１の半導体集積回路１の電源投入時に、不揮発メモリ内のコンフィグレーション情報をコンフィグレーションメモリ３に書き込むようにすることが考えられる。これにより、ボードに電源が供給されるたびに、ボード上の不揮発メモリから図１の半導体集積回路１内のコンフィグレーションメモリ３にコンフィグレーション情報が自動的に書き込まれて、図１の半導体集積回路１が所望のロジック機能を発揮することになる。
【００１４】
なお、コンフィグレーションメモリ３がＭＲＡＭ等の不揮発メモリの場合は、図１の半導体集積回路１の近傍にフラッシュメモリ等の不揮発メモリを設ける必要がなくなる。この場合、図１の半導体集積回路１の電源をオフにしても、コンフィグレーションメモリ３内のコンフィグレーション情報は消去されずに残っている。よって、図１の半導体集積回路１の電源が再投入されると、コンフィグレーションメモリ３内のコンフィグレーション情報をそのまま利用して、各ロジックブロック７にロジック機能が設定されるとともに、各スイッチブロック８にも切替機能が設定される。
【００１５】
テスト制御回路４は、各基本タイル２の故障の有無をテストする。テスト制御回路４は、図１の半導体集積回路１の電源投入時のリセット解除後に必ずテストを行ってもよいし、電源投入が複数回行われるたびに、テストを行ってもよい。また、電源投入とは異なるタイミングで、テストを行ってもよい。
【００１６】
テスト制御回路４は、外部からテストパターンを入力することなくテストを行えるように、例えば、ＢＩＳＴ（Built-In Self-Test）回路のようなものを組み込んでいるのが望ましい。ＢＩＳＴ回路は、ＬＦＳＲ（Linear Feedback Shift Register）等の擬似乱数パターン生成回路（ＰＲＰＧ：Pseudo Random Pattern Generator）で発生させたテストパターンを各基本タイル２に入力するとともに、テスト応答圧縮回路（ＴＲＣ：Test Response Compactor）を用いてテスト応答を時間方向に圧縮して比較して、テスト結果を得る。例えば、テスト制御回路４は、各基本タイル２が故障しているか否かを、各基本タイル２ごとに１ビットの情報からなるテスト結果信号を出力してもよい。より具体的には、各基本タイル２が故障していれば１、故障していなければ０のビットデータを出力してもよい。
【００１７】
テスト結果出力制御回路５は、テスト制御回路４によるテスト結果に基づいて、故障している基本タイル２の情報を出力する。テスト結果出力制御回路５は、レジスタ回路５ａを有していてもよい。レジスタ回路５ａは複数ビットのデータを保持する機能を有する。上述したように、テスト制御回路４は、各基本タイル２が故障しているか否かを示すテスト結果信号をそれぞれ出力するため、レジスタ回路５ａは、基本タイル２の数分のビット数のテスト結果信号を保持する。
【００１８】
また、テスト結果出力制御回路５は、複数の基本タイル２のうち、少なくとも一つの基本タイル２が故障している場合には、特定の論理（例えば１）になる故障検出信号を出力してもよい。この故障検出信号は、図１の半導体集積回路１の故障検出端子９から出力される。例えば、故障検出信号は、１で故障だとすると、レジスタ回路５ａで保持した複数のテスト結果信号をＯＲゲートで論理和を演算した信号であってもよい。
【００１９】
図２は図１の半導体集積回路１内の故障を起こした基本タイル２に対する救済を行う再構成半導体システム１１の概略構成を示すブロック図である。図２の再構成半導体システム１１は、図１の半導体集積回路１の他に、故障救済装置１２を備えている。
【００２０】
故障救済装置１２は、半導体集積回路１内の故障を起こした基本タイル２の使用を禁止しつつ、他の基本タイル２を用いて所望のロジック機能を実現するための故障救済を行う。故障救済装置１２は、故障検出部１３と、故障箇所特定部１４と、再構成部１５と、を有する。
【００２１】
故障検出部１３は、半導体集積回路１の故障検出端子９が所定の論理（例えば１）になったか否かをモニタし、所定の論理になると、半導体集積回路１内の少なくとも一つの基本タイル２が故障したことを検出する。
【００２２】
故障箇所特定部１４は、故障検出部１３が故障を検出すると、半導体集積回路１にアクセスして、テスト結果出力制御回路５内のレジスタ回路５ａが保持しているデータを読み出して、故障した基本タイル２を特定する。
【００２３】
再構成部１５は、故障した基本タイル２の使用を禁止するとともに、それ以外の基本タイル２を用いて、半導体集積回路１が所望のロジック機能を実現できるように、論理合成処理と配置配線処理をやり直して、コンフィグレーション情報を生成し直す。なお、半導体集積回路１のロジック機能とは、各ロジックブロック７のロジック機能と、各スイッチブロック８の切替機能とを含む概念である。
【００２４】
なお、論理合成処理とは、Verilog HDLやVHDL等のハードウェア記述言語で記述されたソースコードを回路素子に変換する処理である。また、配置配線処理とは、論理合成処理により変換された各回路素子間の配線を含めて、ロジックブロック７とスイッチブロック８にマッピングする処理である。
【００２５】
再構成部１５が生成したコンフィグレーション情報は、フラッシュメモリ等の不揮発メモリ１６に記憶される。不揮発メモリ１６に記憶されたコンフィグレーション情報は、半導体集積回路１の電源投入時等に、コンフィグレーションメモリ３に記憶される。なお、半導体集積回路１内のコンフィグレーションメモリ３が不揮発メモリ１６の場合には、プログラム部はコンフィグレーションメモリ３に直接、コンフィグレーション情報を書き込んでもよい。
【００２６】
図２の故障救済装置１２は、半導体集積回路１の出荷後でも、上述した故障対策を行うことができる。
【００２７】
図３は図２の再構成半導体システム１１の処理動作を示すフローチャートである。このフローチャートは、図１の半導体集積回路１の出荷後に、半導体集積回路１と不揮発メモリ１６をボードに実装し、ボード（図２の半導体集積回路１と不揮発メモリ１６を搭載したボード）の電源を投入したタイミングで行われるものである。図３のフローチャートを実施するにあたって、検査対象の半導体集積回路１の故障検出端子９や入力／出力端子６に、故障救済装置１２を接続しておく必要がある。
【００２８】
まず、図１の半導体集積回路１のリセット状態が解除されたか否かを判定する（ステップＳ１）。リセット状態が解除されると、テスト制御回路４は、各基本タイル２が故障しているか否かをテストする（ステップＳ２）。テスト制御回路４は、各基本タイル２内の各ロジックブロック７や各スイッチブロック８内の配線が短絡又は断線している不良や、各ロジックブロック７や各スイッチブロック８を構成する各回路素子の電気的特性が予め定めた基準を満たしておらず、信号が遅延するとか、信号にノイズが乗って論理が反転する等の種々の不良が起きると、故障したと判断する。
【００２９】
テスト制御回路４は、任意の基本タイル２が故障していると判断した場合は、その基本タイル２に対応するテスト結果信号を第１論理（例えば１）にする。また、故障していないと判断した場合は、テスト結果信号を第２論理（例えば０）にする（ステップＳ３）。
【００３０】
テスト結果出力制御回路５は、テスト制御回路４から出力されたテスト結果信号を保持する（ステップＳ４）。より具体的には、テスト制御回路４は、各基本タイル２ごとに１ビットのテスト結果信号を出力するため、テスト結果出力制御回路５は、レジスタ回路５ａにて、すべての基本タイル２の数分のビット列データからなるテスト結果信号を保持する。
【００３１】
レジスタ回路５ａが保持したビット列データは、例えば、ＯＲゲートに入力され、ＯＲゲートの出力は、図１の半導体集積回路１の故障検出端子９に入力される。これにより、少なくとも１つの基本タイル２が故障した場合には、ＯＲゲートの出力はハイになり、故障検出端子９もハイを出力する（ステップＳ５）。
【００３２】
故障救済装置１２は、故障検出端子９が１になったか否かをモニタする（ステップＳ６）。故障救済装置１２は、故障検出端子９が１になると、図１の半導体集積回路１にアクセスして、テスト結果出力制御回路５内のレジスタ回路５ａに保持されているビット列データのどのビットが１になっているかを調べる。これにより、故障救済装置１２は、故障になった基本タイル２を特定する（ステップＳ７）。
【００３３】
次に、故障救済装置１２は、故障の基本タイル２の使用を禁止するとともに、それ以外の基本タイル２を用いて、図１の半導体集積回路１が当初意図したロジック機能が実現できるように、各基本タイル２のロジック機能を再設計し、対応するコンフィグレーション情報を生成する（ステップＳ８）。次に、故障救済装置１２は、生成したコンフィグレーション情報をフラッシュメモリ等の不揮発メモリ１６に記憶する（ステップＳ９）。
【００３４】
ステップＳ６で故障検出端子９が０であると判断された場合、又はステップＳ９の処理が終了した場合は、不揮発メモリ１６に記憶されているコンフィグレーション情報を、図１の半導体集積回路１内のコンフィグレーションメモリ３にコピーする（ステップＳ１０）。
【００３５】
このように、本実施形態では、半導体集積回路１内で、各基本タイル２の故障の有無をテストし、そのテスト結果を保持するとともに、いずれかの基本タイル２が故障したことを外部に出力する。これにより、故障救済装置１２は、半導体集積回路１が故障したことを容易に把握できる。また、任意の基本タイル２が故障した場合には、故障救済装置１２側から半導体集積回路１内のテスト結果出力制御回路５にアクセスすることで、故障した基本タイル２を特定できる。よって、故障救済装置１２は、故障した基本タイル２の使用を禁止しつつ、残りの基本タイル２を用いて所望のロジック機能を実現するコンフィグレーション情報を生成できる。このコンフィグレーション情報を、図１の半導体集積回路１内のコンフィグレーションメモリ３に記憶することで、故障の基本タイル２が存在しても、図１の半導体集積回路１を使い続けることができ、半導体集積回路１の歩留まりを向上できる。
【００３６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３７】
１  半導体集積回路、２  基本タイル、３  コンフィグレーションメモリ、４  テスト制御回路、５  テスト結果出力制御回路、６  入力／出力端子、７  ロジックブロック、８  スイッチブロック、９  故障検出端子、１１  再構成半導体システム、１２  故障救済装置、１３  故障検出部、１４  故障箇所特定部、１５  再構成部、１６  不揮発メモリ
【図１】
2020048022.tif 000003
【図２】
2020048022.tif 000004
【図３】
2020048022.tif 000005