(57)【要約】【課題】  本発明は、周波数又は電圧が異なる領域間をデータが伝送される際に発生するデータ伝送エラーを検出できる構成を備えた半導体集積回路を提供することを目的とする。【解決手段】  第１領域１０から第２領域２０にデータを伝送するデータ経路３０と、第１領域１０内のデータ経路４０上から、データ経路４０上を伝送される第１データを読み込み、第１データから第１ハッシュ値を算出する第１ハッシュ値算出器１１と、第２領域２０内のデータ経路３０上に配置され、データ経路３０上を伝送される第２データを読み込むレジスタ４０と、レジスタ４０から出力される第２データを読み込み、第２データから第２ハッシュ値を算出する第２ハッシュ値算出器２１と、第１ハッシュ値と第２ハッシュ値とが一致しているか否かを比較する比較部と、を備える。【選択図】  図１
2010281695.tif 000002
【特許請求の範囲】
【請求項１】
第１電圧及び第１周波数で動作する第１領域と、
前記第１領域に隣接して設けられ、前記第１電圧又は前記第１周波数の少なくとも何れか一方と異なる電圧及び周波数である第２電圧及び第２周波数で動作する第２領域と、
前記第１領域から前記第２領域にデータを伝送するデータ経路と、
前記第１領域内の前記データ経路上から、前記データ経路上を伝送される第１データを読み込み、前記第１データから第１ハッシュ値を算出する第１ハッシュ値算出器と、
前記第２領域内の前記データ経路上に配置され、前記データ経路上を伝送される第２データを読み込むレジスタと、
前記レジスタから出力される第２データを読み込み、前記第２データから第２ハッシュ値を算出する第２ハッシュ値算出器と、
前記第１ハッシュ値と前記第２ハッシュ値を読み込み、前記第１ハッシュ値と前記第２ハッシュ値とが一致しているか否かを比較する比較部と、
を備えることを特徴とする半導体集積回路。
【請求項２】
第１電圧及び第１周波数で動作する第１領域と、
前記第１領域に隣接して設けられ、前記第１電圧又は前記第１周波数の少なくとも何れか一方と異なる電圧及び周波数である第２電圧及び第２周波数で動作する第２領域と、
前記第１領域から前記第２領域にデータを伝送するデータ経路と、
前記第２領域内の前記データ経路上に配置され、前記データ経路上を伝送されるデータを読み込むレジスタと、
前記レジスタから出力されるデータを読み込み、前記データからハッシュ値を算出するハッシュ値算出器と、
前記ハッシュ値算出器により算出された前記ハッシュ値と、予め算出された期待値とが一致しているか否か比較する比較部と、
を備えることを特徴とする半導体集積回路。
【請求項３】
前記第１ハッシュ値算出器が参照する第１所定値を保持する第１レジスタと、
前記第１ハッシュ値算出器が参照する第２所定値を保持する第２レジスタと、
前記第２ハッシュ値算出器が参照する第１所定値を保持する第３レジスタと、
前記第２ハッシュ値算出器が参照する第２所定値を保持する第４レジスタと、
をさらに備え、
前記第１ハッシュ算出器が、前記第１領域内の前記データ経路上から、前記データ経路上を伝送される第１データを読み込み、前記第１データが前記第１レジスタに保持された第１所定値と一致している場合、前記第１ハッシュ値の計算を開始し、第１データが前記第２レジスタに保持された第２所定値と一致している場合、第１ハッシュ値の計算を終了し、
前記第２ハッシュ算出器が、前記レジスタから出力される第２データを読み込み、前記第２データが前記第３レジスタに保持された第１所定値と一致している場合、第２ハッシュ値の計算を開始し、前記第２データが前記第４レジスタに保持された第２所定値と一致している場合、第１ハッシュ値の計算を終了する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項４】
前記ハッシュ値算出器が参照する第１所定値を保持する第１レジスタと、
前記ハッシュ値算出器が参照する第２所定値を保持する第２レジスタと、
をさらに備え、
前記ハッシュ算出器が、前記レジスタから出力されるデータを読み込み、前記データが前記第１レジスタに保持された第１所定値と一致している場合、ハッシュ値の計算を開始し、前記データが前記第２レジスタに保持された第２所定値と一致している場合、ハッシュ値の計算を終了する
ことを特徴とする請求項２記載の半導体集積回路。
【請求項５】
前記第１ハッシュ値算出器は、算出した第１ハッシュ値を保持する第１記憶部を備え、前記第１記憶部にはメモリマップの第１アドレスが付与されており、
前記第２ハッシュ値算出器は、算出した第２ハッシュ値を保持する第２記憶部を備え、前記第２記憶部にはメモリマップの第２アドレスが付与されている
ことを特徴とする請求項１または３記載の半導体集積回路。
【請求項６】
前記ハッシュ値算出器は、算出したハッシュ値を保持する記憶部を備え、前記記憶部にはメモリマップのアドレスが付与されている
ことを特徴とする請求項２または４記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に係り、特に半導体集積回路の不良を容易に検出できる構成を備えた半導体集積回路に関する。
【背景技術】
【０００２】
近年、半導体集積回路は、異なる周波数又は異なる電圧で動作する複数の領域を備える（例えば、特許文献１参照。）。このような半導体集積回路では、周波数又は電圧が異なる領域でデータ伝送を行う際に、データが正常に伝送されないデータ伝送エラーが起こる場合がある。このような、データ伝送エラーを起こす半導体集積回路は、製造不良品であり、出荷前にデータ伝送エラーを検出する必要がある。
【０００３】
このようなデータ伝送エラーを検出するため、例えば、第１の領域側に設けられたＣＰＵから、第２の領域に設けられたメモリにデータを書き込み、次いで、このメモリからデータを読み出すことにより、書き込みデータと読み出しデータが一致するか否かを確認することで、第１領域と第２領域の間でデータが正常に伝送されているか否かを検査する方法がある。書き込みデータと読み出しデータが一致した場合には、このＣＰＵとメモリを接続するリードパス、ライトパス（データ経路）で正常にデータが伝送されることを検査することができる。しかし、この方法では、第２の領域にメモリが接続されている必要があるが、実際にテストを行う場合には、このメモリが接続されない場合もある。このような理由により、前述のような検査方法は適用できない場合があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１３８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、周波数又は電圧が異なる領域間でデータを行う際に発生するデータ伝送エラーを検出できる構成を備えた半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様の半導体集積回路は、第１電圧及び第１周波数で動作する第１領域と、
前記第１領域に隣接して設けられ、前記第１電圧又は前記第１周波数の少なくとも何れか一方と異なる電圧及び周波数である第２電圧及び第２周波数で動作する第２領域と、前記第１領域から前記第２領域にデータを伝送するデータ経路と、前記第１領域内の前記データ経路上から、前記データ経路上を伝送される第１データを読み込み、前記第１データから第１ハッシュ値を算出する第１ハッシュ値算出器と、前記第２領域内の前記データ経路上に配置され、前記データ経路上を伝送される第２データを読み込むレジスタと、前記レジスタから出力される第２データを読み込み、前記第２データから第２ハッシュ値を算出する第２ハッシュ値算出器と、前記第１ハッシュ値と前記第２ハッシュ値を読み込み、前記第１ハッシュ値と前記第２ハッシュ値とが一致しているか否かを比較する比較部と、を備えることを特徴とする。
【０００７】
本発明の別態様の半導体集積回路は、第１電圧及び第１周波数で動作する第１領域と、前記第１領域に隣接して設けられ、前記第１電圧又は前記第１周波数の少なくとも何れか一方と異なる電圧及び周波数である第２電圧及び第２周波数で動作する第２領域と、前記第１領域から前記第２領域にデータを伝送するデータ経路と、前記第２領域内の前記データ経路上に配置され、前記データ経路上を伝送されるデータを読み込むレジスタと、前記レジスタから出力されるデータを読み込み、前記データからハッシュ値を算出するハッシュ値算出器と、前記ハッシュ値算出器により算出された前記ハッシュ値と、予め算出された期待値とが一致しているか否か比較する比較部と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明は、周波数又は電圧が異なる領域間でデータを行う際に発生するデータ伝送エラーを検出できる構成を備えた半導体集積回路を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例１に係る半導体集積回路の概略構成を示す図である。
【図２】本発明の実施例１に係る半導体集積回路のブロック図である。
【図３】本発明の実施例１に係る半導体集積回路のデータ経路により伝送される伝送データの模式図である。
【図４】本発明の実施例１に係る半導体集積回路においてデータ伝送エラーを検出するフローチャートである。
【図５】本発明の実施例２に係る半導体集積回路のブロック図である。
【図６】本発明の実施例３に係る半導体集積回路のブロック図である。
【図７】本発明の実施例３に係る半導体集積回路のデータ経路により伝送される伝送データと、スタートレジスタとストップレジスタに格納されたデータの模式図である。
【図８】本発明の実施例３に係る半導体集積回路においてデータ伝送エラーを検出するフローチャートである。
【図９】本発明の実施例３に係る半導体集積回路のデータ経路により伝送される伝送データの模式図である。
【図１０】本発明の実施例４に係る半導体集積回路のブロック図である。
【図１１】本発明の実施例５に係る半導体集積回路のブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面を参照しながら説明する。
【実施例１】
【００１１】
本発明の実施例１に係る半導体集積回路について、図１を参照して説明する。図１は、本発明の実施例１に係る半導体集積回路の概略構成を示す図である。図１に示すように、半導体集積回路１は、第１領域１０、第２領域２０、データ経路３０、１ハッシュ値算出器１１、第２ハッシュ値算出器２１、レジスタ４０、比較部５０とを有して構成される。また、半導体集積回路１は、パターン発生器６０と、マルチプレクサ６１とを有してもよい。
【００１２】
第１領域１０には、第１電圧Ｖ１、第１周波数ｆ１により動作する電子回路等（図示せず）が設けられている。
【００１３】
第２領域２０には、第２電圧Ｖ２、第２周波数ｆ２により動作する電子回路等（図示せず）が設けられている。第２電圧Ｖ２と第１電圧Ｖ１、第２周波数ｆ２と第１周波数ｆ１の少なくともいずれか一方が異なる。つまり、第２電圧Ｖ２、第２周波数ｆ２は、３通りの組み合わせ（（Ｖ１＝Ｖ２、ｆ１≠ｆ２）、（Ｖ１≠Ｖ２、ｆ１＝ｆ２）、（Ｖ１≠Ｖ２、ｆ１≠ｆ２））が想定される。
【００１４】
第１領域１０と第２領域２０との間には、第１領域１０から第２領域２０にデータを伝送するデータ経路３０が設けられている。データ経路３０により、第１領域１０から第２領域２０にデータ（以下、「伝送データ」と称する）が伝送される。伝送データは、後述するように、複数のデータで構成されるデータ列である。
【００１５】
レジスタ４０は、第２領域２０側のデータ経路３０上に設けられ、データ経路３０上を伝送される伝送データを読み込む。レジスタ４０は、第１領域側から第２領域に伝送される伝送データを順次読み込み、読み込んだ伝送データをデータ経路３０に順次出力する。
【００１６】
第１ハッシュ値算出器１１は、第１領域１０側のデータ経路３０にノードａを介して接続され、データ経路３０から、データ経路３０上を伝送される伝送データ（第１伝送データ）を読み込む。第１ハッシュ値算出器１１は、所定のハッシュ関数により、第１伝送データから、第１伝送データに固有のハッシュ値（第１ハッシュ値）を算出する。算出した第１ハッシュ値は、ハッシュ値保持部７１に保持される。ハッシュ値保持部７１のアドレスはメモリマップに登録されている。
【００１７】
第２ハッシュ値算出器２１は、データ経路３０にノードｂを介して接続され、レジスタ４０からデータ経路３０に出力される伝送データ（第２伝送データ）を読み込む。第２ハッシュ値算出器２１は、所定のハッシュ関数により、第２伝送データから、第２伝送データに固有のハッシュ値（第２ハッシュ値）を算出する。算出した第２ハッシュ値は、ハッシュ値保持部７２に保持される。ハッシュ値保持部７２のアドレスはメモリマップに登録されている。
【００１８】
第１ハッシュ値算出器１１に用いられるハッシュ関数と、第２ハッシュ値算出器２１に用いられるハッシュ関数は同一のものとする。このため、第１伝送データと第２伝送データが同一である場合、第１ハッシュ値と第２ハッシュ値は一致する。第１伝送データと第２伝送データが同一でない場合、第１ハッシュ値と第２ハッシュ値は一致しない。
【００１９】
比較部５０は、第１ハッシュ値算出器１１が算出した第１ハッシュ値と、第２ハッシュ値算出器が算出した第２ハッシュ値とが一致しているか否かを比較する。
【００２０】
パターン発生器６０は、データ経路３０に伝送させる伝送データを生成する。パターン発生器６０に生成させる伝送データは、任意に設定可能である。
【００２１】
マルチプレクサ６１には、データ経路３０上流からの伝送データと、パターン発生器６０からの伝送データとが入力される。マルチプレクサは、図示しない選択信号に基づいて、データ経路３０上流から入力する伝送データ又はパターン発生器６０から入力する伝送データを選択し、データ経路３０に出力する。
【００２２】
以上の構成により、データ経路３０により第１領域から第２領域にデータが伝送される際のデータ伝送エラーの検査が可能となる。即ち、第１ハッシュ値算出器１１が第１領域１０側のデータ経路３０からノードａを介して読み込んだ第１伝送データからが算出した第１ハッシュ値と、第２ハッシュ値算出器２１が第２領域２０側のデータ経路３０からノードｂを介して読み込んだ第２伝送データからが算出した第２ハッシュ値を比較することにより、データ経路３０上のノードａと、データ経路３０上のノードｂの間で、データ伝送エラーが発生しているか否かを検査することができる。つまり、第１ハッシュ値と第２ハッシュ値が一致している場合、第１伝送データと第２伝送データが一致していることを意味し、データ経路３０のノードａとノードｂの間でデータ伝送エラーが発生していないことが確認される。一方、第１ハッシュ値と第２ハッシュ値が一致していない場合、第１伝送データと第２伝送データが一致していないことを意味し、データ経路３０のノードａとノードｂの間でデータ伝送エラーが発生していることが確認される。
【００２３】
また、第１ハッシュ値算出器１１が算出した第１ハッシュ値を保持するハッシュ値保持部７１と、第２ハッシュ値算出器２１が算出した第２ハッシュ値を保持するハッシュ値保持部７２のアドレスがメモリマップに登録されていることにより、図示しないＣＰＵ（中央処理装置）から、ハッシュ値保持部７１、７２に保持された第１ハッシュ値、第２ハッシュ値を読み出すことが可能となり、第１ハッシュ値、第２ハッシュ値の比較を、比較部５０を用いずに、ＣＰＵにより行うことが可能となる。
【００２４】
また、パターン発生器６０とマルチプレクサ６１により、パターン発生器６０で生成した伝送データをデータ経路３０に伝送させることで、データ経路３０の第１領域側上流に伝送データを生成する構成が接続されていない場合であっても、データ経路３０のノードａ、ノードｂ間のデータ伝送エラーの検査をすることが可能となる。
【００２５】
次に、図２を参照して、実施例１に係る半導体集積回路についてより詳細に説明する。図２は、本発明の実施例１に係る半導体集積回路１のブロック図である。図１と同様の構成については同一の符号を付す。データ経路３０は、伝送データをパラレル伝送するデータの伝送路である。データ経路３０により伝送される伝送データのデータ幅は、８ビットである。なお、説明の理解を容易にするためにデータ経路３０をパラレル伝送経路とし、伝送データのデータ幅を８ビットとした例を示しているが、データ経路３０はシリアル伝送経路であってもよいし、伝送データのデータ幅は８ビット以外であってもよい。
【００２６】
第１領域１０側のデータ経路３０上には、伝送データを読み込み、読み込んだ伝送データを順次出力するレジスタ４１、４２、４３が多段に構成されることにより、ＦＩＦＯ（Ｆｉｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）方式の伝送路が構成されている。各レジスタ４１、４２、４３は、伝送データのデータ幅に応じて、例えば、フリップフロップ回路により構成される。本実施例では、各レジスタ４１、４２、４３は、８個のフリップフロップ回路により構成している。
【００２７】
第２領域２０側のデータ経路３０上には、伝送データを読み込み、読み込んだ伝送データを順次出力するレジスタ４０、４４、４５が多段に構成されることにより、ＦＩＦＯ方式の伝送路が構成されている。レジスタ４０、４４、４５は、各レジスタ４１、４２、４３の同様の構成を有するものとする。図２に示すレジスタ４０は、図１に示したレジスタ４０に相当する。
【００２８】
レジスタ４１、４２、４３と、レジスタ４０、４４、４５とは、データを保持する記憶素子であり、ＦＩＦＯへの取り込み信号がイネーブルの時に、前段から送られてくるデータを保持する。
【００２９】
第１ハッシュ値算出器１１は、排他的論理和演算によりハッシュ値を算出する。第１ハッシュ値演算器１１は、排他的論理演算を行うＸＯＲ演算部１２と、フリップフロップ部１３を有して構成される。なお、ハッシュ値の計算方法は、公知技術であり、本実施例では詳細な説明を省略する。本実施例では、一例として、排他的論理和演算によりハッシュ値を計算する構成、方法を示すが、排他的論理演算に限定されない。
【００３０】
ＸＯＲ演算部１２には、データ経路３０からの伝送データと、フリップフロップ部１３の出力とが入力する。ＸＯＲ演算部１２は、データ経路３０からの伝送データと、フリップフロップ部１３の出力との排他的論理演算を行い、演算結果をフリップフロップ部１３に出力する。
【００３１】
フリップフロップ部１３は、ＸＯＲ演算部１２からの演算結果を取り込み、取り込んだ演算結果をＸＯＲ演算部１２に出力する。フリップフロップ部１３がＸＯＲ演算部１２から取り込んだ演算結果は、比較部５０から読み出し可能である。また、フリップフロップ部１３がＸＯＲ演算部１２に出力する値は、外部から設定可能である。図２に示す実施例では、フリップフロップ部１３は、図１におけるハッシュ値保持部７１に相当する。
【００３２】
第２ハッシュ値算出器２１の構成は、第１ハッシュ値算出器１１と同様であるため、説明を省略する。図２に示す実施例では、フリップフロップ部２３は、図１におけるハッシュ値保持部７２に相当する。
【００３３】
比較部５０は、フリップフロップ部１３から第１ハッシュ値を読み出し、フリップフロップ部２３から第２ハッシュ値を読み出し、第１ハッシュ値と第２ハッシュ値とが一致しているか否かを比較する。
【００３４】
パターン発生器６０、マルチプレクサ６１については、図１で示した構成と同様であり、説明を省略する。
【００３５】
次に、第１ハッシュ値算出器１１によるハッシュ値の算出動作について図２、図３を参照して説明する。図３は、データ経路３０により伝送される伝送データの模式図である。図３に示すように、伝送データは、順次伝送されるデータＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆから構成されるデータ列である。データＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆのデータ幅は、８ビットである。
【００３６】
第１ハッシュ値算出器１１によりデータ経路から順次取り込まれたデータは、ＸＯＲ演算部１２に入力される。ＸＯＲ演算部１２は、最初に入力するデータＡと、フリップフロップ部１３に設定されている初期値Ｚの排他的論理演算を行い、演算結果Ａ＾Ｚをフリップフロップ部１３に出力する。フリップフリップ部１３に初期値を設定する手順については後述する。次に、ＸＯＲ演算部１２は、次に入力するデータＢと、フリップフロップ部１３から入力する値Ａ＾Ｚの排他的論理演算を行い、演算結果Ａ＾Ｚ＾Ｂをフリップフロップ部１３に出力する。同様の動作を繰り返すことにより、第１ハッシュ値算出器１１は、データ経路３０から入力するデータの排他的論理演算を行い、最後に演算結果をフリップフロップ部１３に出力する。この最後の演算結果が、第１ハッシュ値算出器１１により算出された第１ハッシュ値となる。
【００３７】
第２ハッシュ値算出器２１のハッシュ値の算出動作も第１ハッシュ値算出器１１と同様であるため、説明を省略する。
【００３８】
次に、本実施例に係る半導体集積回路１においてデータ伝送エラーを検査する手順について、図４を参照して説明する。図４は、半導体集積回路１においてデータ伝送エラーを検査するフローチャートである。
【００３９】
まず、第１ハッシュ値算出器１１のフリップフロップ部１３と、第２ハッシュ値算出器２１のフリップフロップ部２３にそれぞれ、同一の初期値Ｚを設定する（Ｓ３０１）。
【００４０】
次に、半導体集積回路１にプログラムの実行を開始させることにより、データ経路３０に伝送データを伝送させる（Ｓ３０２）。
【００４１】
次に、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１が、それぞれ、データ経路３０から伝送データを読み込み、上述した動作によりハッシュ値の計算を開始する（Ｓ３０３）。
【００４２】
次に、半導体集積回路１がプログラムの実行を終了する（Ｓ３０４）。これにより、データ経路３０にデータが伝送されなくなり、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１がそれぞれ第１ハッシュ値、第２ハッシュ値の計算を終了し、算出した第１ハッシュ値、第２ハッシュ値をそれぞれフリップフリップ部１３、２３に出力する。
【００４３】
次に、比較部５０が、フリップフロップ部１３、２３からそれぞれ第１ハッシュ値、第２ハッシュ値を読み出し（Ｓ３０５）、第１ハッシュ値と第２ハッシュ値が一致しているか否か比較する（Ｓ３０６）。第１ハッシュ値と第２ハッシュ値が一致している場合、検査の対象となった半導体集積回路においては、実行したプログラムにより伝送された伝送データ３０によって、データ伝送エラーが発生しないことが確認される。第１ハッシュ値と第２ハッシュ値が一致していない場合、検査の対象となった半導体集積回路において、実行したプログラムにより伝送された伝送データによって、データ伝送エラーが発生することが確認される。
【実施例２】
【００４４】
本発明の実施例２に係る半導体集積回路について、図５を参照して説明する。図５は、本発明の実施例２に係る半導体集積回路２のブロック図である。図１、図２と同様の構成については同一の符号を付し、説明を省略する。
【００４５】
本実施例に係る半導体集積回路２が、実施例１に係る半導体集積回路２と異なる点は、本実施例に係る半導体集積回路２では、実施例１の第１ハッシュ値算出器１１を備えない点である。
【００４６】
本実施例では、図２に示す構成を有する正常な半導体集積回路（データ伝送エラーのない半導体集積回路）において、データ経路３０に所定の伝送データを伝送させ、第２ハッシュ値算出器２１によりハッシュ値を算出する。この算出されたハッシュ値を期待値とする。
【００４７】
次に、図２に示す構成を有する、データ伝送エラーの検査対象の半導体集積回路において、データ経路３０に所定の伝送データ（データ伝送エラーのない半導体集積回路において期待値を求めるのに用いた「所定のデータ」と同一の伝送データ）を伝送させ、第２ハッシュ値算出器２１により第２ハッシュ値を算出する。
【００４８】
次に、期待値と、第２ハッシュ値を比較することにより、データ伝送エラーの検査対象の半導体集積回路において、データ経路３０上の伝送データの出力源（図示せず）とデータ経路３０上のノードｂの間で、データ伝送エラーが発生しているか否かを確認することができる。つまり、第２ハッシュ値と期待値が一致している場合、データ経路３０の伝送データの出力源（図示せず）とノードｂの間でデータ伝送エラーが発生していないことが確認される。一方、第１ハッシュ値と第２ハッシュ値が一致していない場合、データ経路３０の伝送データの出力源（図示せず）とノードｂの間でデータ伝送エラーが発生していることが確認される。
【００４９】
以上のように、本実施例によれば、実施例１と同様の効果に加え、実施例１より回路構成が簡素化されることにより、低コスト、省スペース性を向上させることができる。
【００５０】
なお、実施例２に係る半導体集積回路２についても、実施例１に係る半導体集積回路１同様に、パターン発生器６０、マルチプレクサ６１を備えてもよい。パターン発生器６０により生成した伝送データをデータ経路３０に出力し、上記の検査を行うことにより、伝送データの出力源（パターン発生器６０）とノードｂの距離が短くなり、データ伝送エラーが発生した場合に、データ伝送エラーの原因箇所の特定が容易になる。
【実施例３】
【００５１】
本発明の実施例３に係る半導体集積回路について、図６を参照して説明する。図６は、本発明の実施例３に係る半導体集積回路のブロック図である。図１、図２と同様の構成については同一の符号を付し、説明を省略する。
【００５２】
実施例１、実施例２に示したように、データ経路３０により伝送される伝送データは、複数のデータで構成されるデータ列である。このデータ列のうち、予めデータ転送エラーを発生させやすいデータ列の部分が分かっている場合には、その部分についてデータ転送エラーを検出する動作を実行することで、検査時間の短縮できる。この検査時間短縮を可能とするため、本実施例では、実施例１に示した半導体集積回路２に制御部１９、２９を用いる。
【００５３】
制御部１９は、第１ハッシュ値算出器１１のハッシュ値計算の開始と終了のタイミングを制御する。制御部１９は、マルチプレクサ１４、比較器１５、１７、スタートレジスタ１６、ストップレジスタ１８を有して構成される。
【００５４】
制御部２９は、第２ハッシュ値算出器２１のハッシュ値計算の開始と終了のタイミングを制御する。制御部２９は、マルチプレクサ２４、比較器２５、２７、スタートレジスタ２６、ストップレジスタ２８を有して構成される。
【００５５】
マルチプレクサ１４には、データ経路３０からの伝送データと、比較器１５からの信号（スタート信号）と、比較器１７からの信号（ストップ信号）が入力する。マルチプレクサ１４の出力はＸＯＲ演算部１２に入力する。マルチプレクサ１４は、比較器１５からスタート信号が入力すると、データ経路３０から入力する伝送データをＸＯＲ演算部１２に出力する。また、マルチプレクサ１４は、比較器１７からストップ信号が入力すると、データ経路３０から入力する伝送データをＸＯＲ演算部１２に出力するのを止め、値「０」をＸＯＲ演算部１２に出力する。
【００５６】
比較器１５には、データ経路３０からの伝送データが入力する。また、比較器１５には、スタートレジスタ１６が接続されている。比較器１５は、データ経路３０から入力する伝送データと、スタートレジスタ１６に格納されたデータ（スタートデータ）とを比較し、一致しているときは、マルチプレクサ１４にスタート信号を出力する。
【００５７】
比較器１７には、データ経路３０からの伝送データが入力する。また、比較器１７には、ストップレジスタ１８が接続されている。比較器１７は、データ経路３０から入力する伝送データと、ストップレジスタ１８に格納されたデータ（ストップデータ）とを比較し、一致しているときは、マルチプレクサ１４にストップ信号を出力する。
【００５８】
制御部２９は、制御部１９と同様の構成であるので、説明を省略する。具体的には、マルチプレクサ２４は、マルチプクレサ１４と同様であり、比較器２５、２７は、それぞれ比較器１５、１７と同様であり、スタートレジスタ２６は、スタートレジスタ１６と同様であり、ストップレジスタ２８はストップレジスタ１８と同様である。
【００５９】
次に、第１ハッシュ値算出器１１によるハッシュ値の算出方法について、図６、図７を参照して説明する。図７は、本発明の実施例３にかかわる半導体集積回路３のデータ経路により伝送される伝送データと、スタートレジスタとストップレジスタに格納されたデータ（スタートデータ、ストップデータ）の模式図である。図７に示すように、伝送データは、順次伝送されるデータＡ〜Ｙから構成されるデータ列である。
【００６０】
まず、データ経路３０に、図７に示すデータ列（伝送データ）が伝送される状態において、マルチプレクサ２４は、ＸＯＲ演算部１２に値「０」を出力する。ＸＯＲ演算部１２は、マルチプレクサ２４から値「０」が入力すると、値「０」と、フリップフロップ部１３に初期値として設定されている値Ｚとの排他的論理演算を行うため、その演算結果である値Ｚをフリップフロップ部１３に出力する。このため、このとき、フリップフロップ部１３は、初期値として設定された値Ｚを保持する。
【００６１】
次に、データ経路３０にスタートレジスタ１６に保持されたスタートデータＤと同じデータが伝送されると、データＤを読み込んだ比較器１５がスタート信号をマルチプレクサ１４に出力する。これにより、データ経路３０に伝送される伝送データがＸＯＲ演算部１２に入力し、第１ハッシュ算出器１１（ＸＯＲ演算部１２）がハッシュ値の計算を開始する。
【００６２】
次に、データ経路３０にストップレジスタ１８に保持されたストップデータＸと同じデータが伝送されると、データＸを読み込んだ比較器１７がストップ信号をマルチプレクサ１４に出力する。これにより、データ経路に伝送される伝送データがＸＯＲ演算部１２に値「０」を出力する。これにより、ＸＯＲ演算部１２は、フリップフロップ部１３に保持された値との排他的論理演算を行う。このため、ストップ信号がマルチプレクサに入力する直前までの伝送データにより計算されたハッシュ値をフリップフロップ部１３が保持する。
【００６３】
上記の動作により、第１ハッシュ算出器１１は、データ経路３０に伝送される伝送データのうち、スタートレジスタ１６に設定されたスタートデータと、ストップレジスタ１８に設定されたストップレジスタの間のデータ列についてハッシュ値の算出を行う。
【００６４】
第２ハッシュ値算出器２１によるハッシュ値の算出方法は、第１ハッシュ値算出器１１によるハッシュ値の算出方法と同様であるので説明を省略する。
【００６５】
次に、本実施例に係る半導体集積回路３においてデータ伝送エラーを検出する手順について、図８を参照して説明する。図８は、半導体集積回路においてデータ伝送エラーを検出するフローチャートである。
【００６６】
まず、第１ハッシュ値算出器１１のフリップフロップ部１３と、第２ハッシュ値算出器２１のフリップフロップ部２３にそれぞれ、同一の初期値Ｚを設定する（Ｓ８０１）。
【００６７】
次に、スタートレジスタ１６、２６にスタートデータを設定し、ストップレジスタ１８、２８にストップデータを設定する（Ｓ８０２）。
【００６８】
次に、半導体集積回路にプログラムの実行を開始させることにより、データ経路３０に伝送データを伝送させる（Ｓ８０３）。
【００６９】
次に、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１は、前述のように、スタートレジスタと同一のデータからハッシュ値の計算を開始する（Ｓ８０４）。
【００７０】
次に、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１は、前述のように、ストップレジスタと同一のデータでハッシュ値の計算を終了する（Ｓ８０５）。
【００７１】
次に、半導体集積回路がプログラムの実行を終了する（Ｓ８０６）。
【００７２】
次に、比較部５０が、フリップフロップ部１３、２３からそれぞれ第１ハッシュ値、第２ハッシュ値を読み出し（Ｓ８０７）、第１ハッシュ値と第２ハッシュ値が一致しているか否か比較する（Ｓ８０８）。第１ハッシュ値と第２ハッシュ値が一致している場合、実行したプログラムにより伝送された伝送データによっては、第１領域と第２領域の境界においてデータ伝送エラーが発生しないことが確認される。第１ハッシュ値と第２ハッシュ値が一致していない場合、実行したプログラムにより伝送された伝送データによって、第１領域と第２領域の境界においてデータ伝送エラーが発生することが確認される。
【００７３】
以上の構成により、データ経路３０に伝送される伝送データのうち、特定のデータ列（データＤ〜データＸ）を対象としてデータ伝送エラーの検査をする際に、データ列のスタートデータと、ストップデータを指定することが可能である。これによりデータ伝送エラーの検査時間を短縮することが可能となる。
【００７４】
（変形例１）
本発明の実施例３に係る半導体集積回路の変形例１について、図８を参照して説明する。図８は、本発明の実施例３に係る半導体集積回路の変形例１の
変形例１に係る半導体集積回路の動作方法が、実施例３に係る半導体集積回路の動作方法と異なる点は、変形例１に係る半導体集積回路では、特定のデータ列（データＤ〜データＸ）を対象としてデータ伝送エラーの検査をする際の、データ列のスタートデータと、ストップデータを指定する方法として、カウンタを用いている点である。
【００７５】
変形例１の半導体集積回路では、図８に示すように、伝送データを構成するデータが順次伝送される毎にカウンタを行う。予め、データ伝送エラーの検査を行う特定のデータ列のスタートデータに対応するカウンタのカウンタ値をスタートカウンタ値、ストップデータと対応するカウンタのカウンタ値をストップカウンタ値として、それぞれスタートレジスタ、ストップレジスタに設定する。次いで、実施例３同様に、データ経路３０に伝送データを伝送させることにより、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１が、スタートカウンタ値により指定された伝送データのデータをスタートデータとしてハッシュ値の計算を開始し、ストップカウンタ値により指定された伝送データのデータをストップデータとしてハッシュ値の計算を終了する。これにより、第１ハッシュ値算出器１１、第２ハッシュ値算出器２１が、それぞれ第１ハッシュ値、第２ハッシュ値を算出し、第１ハッシュ値と第２ハッシュ値を比較することにより、データ列（データＤ〜データＸ）をデータ経路３０に伝送させることにより、データ伝送エラーが発生するか否かを検査することができる。
【実施例４】
【００７６】
本発明の実施例４に係る半導体集積回路について、図１０を参照して説明する。図１０は、本発明の実施例４に係る半導体集積回路４のブロック図である。図６と同様の構成については、同様の符号を付し、説明を省略する。
【００７７】
本実施例に係る半導体集積回路４が、実施例３に係る半導体集積回路と異なる点は、本実施例に係る半導体集積回路４では、実施例３の第１ハッシュ値算出器１１を備えない点である。
【００７８】
本実施例では、実施例２と同様に、正常な半導体集積回路（データ伝送エラーのない半導体集積回路）において、データ経路３０に所定の伝送データを伝送させ、第２ハッシュ値算出器２１によりハッシュ値を算出し、このハッシュ値を期待値として、データ伝送エラーを検査することが可能とする。
【００７９】
また、本実施例では、実施例４と同様に、スタートレジスタ２６、エンドレジスタ２８を用いることにより、特定のデータ列を対象としたデータ伝送エラーの検査をすることが可能である。
【実施例５】
【００８０】
本発明の実施例５に係る半導体集積回路について、図１１を参照して説明する。図１１は、本発明の実施例５に係る半導体集積回路５のブロック図である。
【００８１】
本実施例に係る半導体集積回路５は、実施例１乃至４の構成が搭載される半導体集積回路の構成の一例である。
【００８２】
図１１に示すように、本実施例の半導体集積回路は、ＣＰＵ（中央処理装置）１００と、メモリコントローラ１１０と、ブリッジ回路１２０と、ＰＨＹインタフェース１３０、１４０とを備える。ＰＨＹインタフェース１３０は、メモリコントローラ１１０と、外部に接続されるメモリ（図示せず）との間で、論理信号を電気信号に変換する等の役割を果たす。また、ＰＨＹインタフェース１４０は、ブリッジ回路１２０と、外部に接続される外部回路（図示せず）との間で、論理回路を電気信号に変換する等の役割を果たす。ここで、ブリッジ回路１２０は、ＰＨＹインタフェースとＣＰＵバス(ＣＰＵ１００とブリッジ回路１２０とを繋ぐ線)プロトコルの変換を行う役目を果たす。
【００８３】
通常、メモリコントローラ１１０とＰＨＹインタフェース１３０との間、及びブリッジ回路１２０とＰＨＹインタフェース１４０との間では、電圧又は周波数が異なるため、この間でデータが伝送される際に、データ伝送エラーが発生する可能性が高い。このため、本実施例では、メモリコントローラ１１０とＰＨＹインタフェース１３０の間のデータ伝送路、及びブリッジ回路１２０とＰＨＹインタフェース１４０の間のデータ伝送路に対して、実施例１乃至実施例４の構成を備えることにより、メモリコントローラ１１０とＰＨＹインタフェース１３０の間のデータ伝送路、及びブリッジ回路１２０とＰＨＹインタフェース１４０の間のデータ伝送路のデータ伝送エラーを検査することを可能とする。
【００８４】
なお、本実施例では、メモリコントローラ１１０とＰＨＹインタフェース１３０、ブリッジ回路１２０とＰＨＹインタフェース１４０についての実施形態を説明したが、これに限定されない。
【００８５】
なお、前述した各実施例は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良されうると共に、本発明にはその等価物も含まれる。
【符号の説明】
【００８６】
１、２、３、４、５  半導体集積回路
１０  第１領域
１１  第１ハッシュ値算出器
１２、２２  ＸＯＲ
１３、２３  フリップフロップ部
１４、２４、６１  マルチプレクサ
１５、１７、２５、２７  比較器
１６、２６  スタートレジスタ
１８、２８  ストップレジスタ
１９、２９  制御部
２０  第２領域
２１  第２ハッシュ値算出器
３０  データ経路
４０、４１、４２  レジスタ
５０  比較部
６０  パターン発生器
１００  ＣＰＵ
１１０  メモリコントローラ
１２０  ブリッジ回路
１３０、１４０  ＰＨＹインタフェース
ａ、ｂ  ノード
【図１】
2010281695.tif 000003
【図２】
2010281695.tif 000004
【図３】
2010281695.tif 000005
【図４】
2010281695.tif 000006
【図５】
2010281695.tif 000007
【図６】
2010281695.tif 000008
【図７】
2010281695.tif 000009
【図８】
2010281695.tif 000010
【図９】
2010281695.tif 000011
【図１０】
2010281695.tif 000012
【図１１】
2010281695.tif 000013