(57)【要約】【課題】簡単な回路構成で予測不能性の高い乱数を発生させ、かつ回路に備わるＩ／Ｏセルのテストにも兼用させることによって、回路規模の拡大を抑制できる。【解決手段】第１〜第ｎ（ｎは、３以上の整数）の入力信号ＩＳ１〜ＩＳｎに基づいて乱数のシードとなるシード出力信号ＳＧＯを生成して出力するシード生成回路１１０と、シード出力信号の信号処理を行う信号処理回路１２０と、を含む乱数発生回路１００であって、シード生成回路１１０は、第１〜第ｎの入力信号のうちの少なくとも第ｊ（１≦ｊ≦ｎ）の入力信号ＩＳｊの信号レベルが変化した場合に、第１〜第ｎの入力信号のうちの第ｊの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化するシード出力信号を出力する。【選択図】        図２
2009193523.tif 000002
【特許請求の範囲】
【請求項１】
第１〜第ｎ（ｎは、３以上の整数）の入力信号に基づいて乱数のシードとなるシード出力信号を生成して出力するシード生成回路と、
前記シード出力信号の信号処理を行う信号処理回路と、を含み、
前記シード生成回路は、
前記第１〜第ｎの入力信号のうちの少なくとも第ｊ（１≦ｊ≦ｎ）の入力信号の信号レベルが変化した場合に、前記第１〜第ｎの入力信号のうちの前記第ｊの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化する前記シード出力信号を出力することを特徴とする乱数発生回路。
【請求項２】
請求項１において、
前記シード生成回路は、
第１の排他的論理和回路と第２の排他的論理和回路を少なくとも含み、
前記第１の排他的論理和回路は、
前記第１〜第ｎの入力信号のうちの第１の入力信号と第２の入力信号の排他的論理和を演算し、
前記第２の排他的論理和回路は、
前記第１の排他的論理和回路から出力される第１の排他的論理和信号と、前記第１〜第ｎの入力信号のうちの第３の入力信号の排他的論理和を演算することを特徴とする乱数発生回路。
【請求項３】
請求項１において、
前記シード生成回路は、
第１の排他的論理和回路と第２の排他的論理和回路と第３の排他的論理和回路を少なくとも含み、
前記第１の排他的論理和回路は、
前記第１〜第ｎの入力信号のうちの第１の入力信号と第２の入力信号との排他的論理和を演算し、
前記第２の排他的論理和回路は、
前記第１〜第ｎの入力信号のうちの第３の入力信号と第４の入力信号との排他的論理和を演算し、
前記第３の排他的論理和回路は、
前記第１の排他的論理和回路から出力される第１の排他的論理和信号と、前記第２の排他的論理和回路から出力される第２の排他的論理和信号との排他的論理和を演算することを特徴とする乱数発生回路。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記信号処理回路は、カスケード接続された複数のラッチ回路を有し、
前記複数のラッチ回路のうちの初段側の第１のラッチ回路のデータ入力端子に前記シード出力信号が入力され、
前記複数のラッチ回路のうちの前記第１のラッチ回路の後段側の第２のラッチ回路のデータ入力端子に前記第１のラッチ回路の出力信号が入力され、
前記複数のラッチ回路の各ラッチ回路のクロック入力端子にクロック信号が入力されることを特徴とする乱数発生回路。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、
前記処理信号は、前記擬似乱数生成回路のデータ入力端子に入力されることを特徴とする乱数発生回路。
【請求項６】
請求項１乃至４のいずれかにおいて、
前記信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、
前記処理信号は、前記擬似乱数生成回路のクロック入力端子に入力されることを特徴とする乱数発生回路。
【請求項７】
請求項６において、
前記信号処理回路は、ローパスフィルタを有し、
前記ローパスフィルタから出力される処理信号が前記擬似乱数生成回路の前記クロック入力端子に入力されることを特徴とする乱数発生回路。
【請求項８】
請求項５乃至７のいずれかにおいて、
スキャンパスモード信号およびリセット信号を受け、乱数発生回路をリセットする乱数発生回路用リセット信号を出力するリセット回路をさらに含み、
前記擬似乱数生成回路は、カスケード接続された複数のラッチ回路を有し、
前記リセット回路は、
前記スキャンパスモード信号がアクティブである場合には、前記リセット信号がアクティブの時に前記乱数発生回路用リセット信号をアクティブにし、前記スキャンパスモード信号が非アクティブである場合には、前記リセット信号の信号レベルに依存せずに前記乱数発生回路用リセット信号を非アクティブにすることを特徴とする乱数発生回路。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第１〜第ｎの入力信号は、第１〜第ｎのＩ／Ｏセルからの入力信号であることを特徴とする乱数発生回路。
【請求項１０】
請求項９において、
前記シード生成回路が前記第１〜第ｎのＩ／Ｏセルのテスト用回路として兼用され、前記シード生成回路で生成された信号が前記第１〜第ｎのＩ／Ｏセルのテスト出力信号として使用されることを特徴とする乱数発生回路。
【請求項１１】
請求項９または請求項１０において、
前記第１〜第ｎのＩ／Ｏセルと前記シード生成回路との間に設けられ、スリープモード時に前記第１〜第ｎのＩ／Ｏセルの前記第１〜第ｎの入力信号を所定信号レベルに固定するマスク回路を含むことを特徴とする乱数発生回路。
【請求項１２】
請求項１乃至１１のいずれかに記載の乱数発生回路を含む電子機器。
【請求項１３】
請求項１０または請求項１１の乱数発生回路を使用した前記第１〜第ｎのＩ／Ｏセルのテスト方法であって、
通常動作時には、前記シード生成回路で生成された信号に基づいて乱数のシードを生成し、
テストモード時には、前記シード生成回路で生成された信号に基づいて前記第１〜第ｎのＩ／Ｏセルのテストを行うことを特徴とするＩ／Ｏセルのテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数発生回路、電子機器、およびＩ／Ｏセルのテスト方法等に関する。
【背景技術】
【０００２】
近年では、情報セキュリティの重要性から、例えば、ＰＣ（Personal Computer）等の各端末装置間におけるデータ通信に際して、送信するデータを保護するために、送信側でデータを暗号化してから送信し、受信側で当該暗号化されたデータを受信すると、受信したデータを復号化することが行われている。このような暗号化に使用する鍵として、例えば、乱数発生回路により発生された乱数が使用される。
【０００３】
乱数発生回路により発生させる乱数は、情報セキュリティの強化のために、第三者によって予測不能であることが要求されている。発生乱数の予測不能性を高めるために、乱数の種（シード）をランダムに発生させる乱数発生回路が特許文献１に開示されている。当該乱数発生回路は、ＣＰＵから周辺デバイスへの読み出し／書き込み要求信号をカウンタによって計数し、このカウンタにより計数された計数値に基づいて、当該計数値を擬似乱数の種として設定し、この種を用いて擬似乱数を発生させている。
【特許文献１】特開２００３−９９２４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、情報セキュリティ強化の要請が高まる昨今では、暗号化に使用する鍵として使用される擬似乱数は、さらに予測不能性が大きいことが望ましい。また、当該擬似乱数を生成する乱数発生回路の誤作動や動作不良を未然に防ぐためには、ＩＣチップにテスト回路を内蔵させることが望ましい。ところが、このようなテスト回路を内蔵させると、ＩＣチップの回路が大規模化してしまうという問題がある。
【０００５】
本発明に係る幾つかの態様によれば、簡素な回路構成で予測不能性の高い乱数の発生を可能にする乱数発生回路およびこれを含む電子機器を提供できる。
【課題を解決するための手段】
【０００６】
本発明は、第１〜第ｎ（ｎは、３以上の整数）の入力信号に基づいて乱数のシードとなるシード出力信号を生成して出力するシード生成回路と、シード出力信号の信号処理を行う信号処理回路と、を含み、シード生成回路は、第１〜第ｎの入力信号のうちの少なくとも第ｊ（１≦ｊ≦ｎ）の入力信号の信号レベルが変化した場合に、第１〜第ｎの入力信号のうちの第ｊの入力信号以外の入力信号の信号レベルに依存せずその信号レベルが変化するシード出力信号を出力する乱数発生回路に関係する。
【０００７】
本発明の乱数発生回路によれば、シード生成回路に入力される複数の入力信号のうちの少なくとも１つの入力信号の信号レベルが変化した場合、他の入力信号の信号レベルに依存せずに、シード出力信号の信号レベルが変化する。このようにすれば、第１〜第ｎの入力信号のいずれかの変化に基づいて乱数のシード（種）を生成できるため、簡素な構成でシード出力信号の予測不能性を高めることができる。
【０００８】
このとき、本発明では、シード生成回路は、第１の排他的論理和回路と第２の排他的論理和回路を少なくとも含み、第１の排他的論理和回路は、第１〜第ｎの入力信号のうちの第１の入力信号と第２の入力信号の排他的論理和を演算し、第２の排他的論理和回路は、第１の排他的論理和回路から出力される第１の排他的論理和信号と、第１〜第ｎの入力信号のうちの第３の入力信号の排他的論理和を演算することとしてもよい。
【０００９】
このような第１、第２の排他的論理和回路を設ければ、シード生成回路に入力される第１〜第３の入力信号のうちの少なくとも１つの入力信号の信号レベルが変化した場合に、他の入力信号の信号レベルに依存せずにシード出力信号の信号レベルが変化するので、簡素な構成でシード出力信号の予測不能性を高めることが出来る。
【００１０】
また、本発明では、シード生成回路は、第１の排他的論理和回路と第２の排他的論理和回路と第３の排他的論理和回路を少なくとも含み、第１の排他的論理和回路は、第１〜第ｎの入力信号のうちの第１の入力信号と第２の入力信号との排他的論理和を演算し、第２の排他的論理和回路は、第１〜第ｎの入力信号のうちの第３の入力信号と第４の入力信号との排他的論理和を演算し、第３の排他的論理和回路は、第１の排他的論理和回路から出力される第１の排他的論理和信号と、第２の排他的論理和回路から出力される第２の排他的論理和信号との排他的論理和を演算することとしてもよい。
【００１１】
このような第１、第２、第３の排他的論理和回路を設ければ、シード生成回路に入力される第１〜第４の入力信号のうちの少なくとも１つの入力信号の信号レベルが変化した場合に、他の入力信号の信号レベルに依存せずにシード出力信号の信号レベルを変化させて、乱数のシードを生成することが可能になる。
【００１２】
また、本発明では、信号処理回路は、カスケード接続された複数のラッチ回路を有し、複数のラッチ回路のうちの初段側の第１のラッチ回路のデータ入力端子にシード出力信号が入力され、複数のラッチ回路のうちの第１のラッチ回路の後段側の第２のラッチ回路のデータ入力端子に第１のラッチ回路の出力信号が入力され、複数のラッチ回路の各ラッチ回路のクロック入力端子にクロック信号が入力されることとしてもよい。
【００１３】
このようにすれば、カスケード接続されたラッチ回路によって、シード出力信号のメタステーブル等による異常動作の発生を防止することができる。
【００１４】
また、本発明では、信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、処理信号は、擬似乱数生成回路のデータ入力端子に入力されることとしてもよい。
【００１５】
このようにすれば、乱数シードの処理信号を擬似乱数生成回路のデータ入力信号として使用することによって、擬似乱数生成回路によって生成する擬似乱数（乱数）の予測不能性を高めることができる。
【００１６】
また、本発明では、信号処理回路から出力される処理信号に基づいて擬似乱数を生成する擬似乱数生成回路をさらに含み、処理信号は、擬似乱数生成回路のクロック入力端子に入力されることとしてもよい。
【００１７】
このようにすれば、乱数シードの処理信号を、擬似乱数生成回路のクロック信号として使用することによって、擬似乱数生成回路によって生成する擬似乱数（乱数）の予測不能性を高めることができる。
【００１８】
また、本発明では、信号処理回路は、ローパスフィルタを有し、ローパスフィルタから出力される処理信号が擬似乱数生成回路のクロック入力端子に入力されることとしてもよい。
【００１９】
このようにすれば、ローパスフィルタを用いてシード出力信号のグリッジを除去することができ、乱数生成回路の誤動作等を防止できる。
【００２０】
また、本発明では、スキャンパスモード信号およびリセット信号を受け、乱数発生回路をリセットする乱数発生回路用リセット信号を出力するリセット回路をさらに含み、擬似乱数生成回路は、カスケード接続された複数のラッチ回路を有し、リセット回路は、スキャンパスモード信号がアクティブである場合には、リセット信号がアクティブ時に乱数発生回路用リセット信号をアクティブにし、スキャンパスモード信号が非アクティブである場合には、リセット信号の信号レベルに依存せずに乱数発生回路用リセット信号を非アクティブにするリセット回路を含むこととしてもよい。
【００２１】
このようにすれば、スキャンパスモード時にリセット信号がアクティブになると、これによりアクティブになった乱数発生回路用リセット信号を用いて疑似乱数生成回路のラッチ回路をリセットでき、適正なスキャンパス動作を実現できる。一方、スキャンパスモード以外の例えば通常動作モードでは、リセット信号がアクティブになっても乱数発生回路用リセット信号はアクティブにならないため、乱数の予測不能性を高めることができる。
【００２２】
また、本発明では、第１〜第ｎの入力信号は、第１〜第ｎのＩ／Ｏセルからの入力信号であることとしてもよい。
【００２３】
このようにすれば、第１〜第ｎのＩ／Ｏセルから入力される第１〜第ｎの入力信号を有効活用して、乱数のシードを生成できる。
【００２４】
また、本発明では、シード生成回路が第１〜第ｎのＩ／Ｏセルのテスト用回路として兼用され、シード生成回路で生成された信号が第１〜第ｎのＩ／Ｏセルのテスト出力信号として使用されることとしてもよい。
【００２５】
このようにすれば、シード生成回路で生成された信号を、乱数シードの生成とテスト用信号の双方に兼用できるので、回路規模を縮小できる。
【００２６】
また、本発明では、第１〜第ｎのＩ／Ｏセルとシード生成回路との間に設けられ、スリープモード時に第１〜第ｎのＩ／Ｏセルの第1〜第ｎの入力信号を所定信号レベルに固定するマスク回路を含むこととしてもよい。
【００２７】
このようにすれば、スリープモード時にシード生成回路が不必要に動作することを防止できる。
【００２８】
また、本発明は、上記のいずれかに記載の乱数発生回路を含む電子機器に関係する。
【００２９】
さらに、本発明は、上記のいずれかに記載の乱数発生回路を使用した第１〜第ｎのＩ／Ｏセルのテスト方法であって、通常動作時には、シード生成回路で生成された信号に基づいて乱数のシードを生成し、テストモード時には、シード生成回路で生成された信号に基づいて第１〜第ｎのＩ／Ｏセルのテストを行うことを特徴とするＩ／Ｏセルのテスト方法に関係する。
【００３０】
本発明のＩ／Ｏセルのテスト方法によれば、乱数のシードの生成のためにシード生成回路により生成された信号を、テストモード時にＩ／Ｏセルのテスト用信号として使用できる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の好適な実施の形態について詳細に説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３２】
１．乱数発生回路
図１に、本実施形態の乱数発生回路１００の構成の概要を示す。なお、本実施形態の乱数発生回路１００は、図１の構成に限定されず、その構成要素の一部（例えば、信号処理回路、疑似乱数生成回路）を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００３３】
乱数発生回路１００は、携帯情報端末、センサデバイス、ＰＣ、画像処理装置等の電子機器内に設けられ、図１に示すように、バス等の信号通信線を介してＣＰＵ１５０と接続されている。本実施形態では、乱数発生回路１００は、シード生成回路１１０と、信号処理回路１２０と、擬似乱数生成回路１３０とを含む。乱数発生回路１００は、シード生成回路１１０で乱数のシード（種、初期値）を生成し、これを擬似乱数生成回路１３０に入力することで、乱数を発生する。本実施形態では、シード生成回路１１０と擬似乱数生成回路１３０との間に、シード出力信号ＳＰＯの信号処理を行う信号処理回路１２０が設けられている。
【００３４】
シード生成回路１１０は、当該シード生成回路１１０に入力される複数の入力信号である第１〜第ｎ（ｎは、３以上の整数）の入力信号ＩＳ１〜ＩＳｎに基づいて、乱数シードとなるシード出力信号ＳＧＯを生成して出力する。第１〜第ｎの入力信号ＩＳ１〜ＩＳｎは、例えば、Ｉ／Ｏセルからの入力信号や、乱数発生回路１００を含むＩＣ内の各回路からの入力信号などである。
【００３５】
本実施形態では、シード生成回路１１０は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの少なくとも第ｊの入力信号ＩＳｊ（１≦ｊ≦ｎ）が変化した場合に、当該第ｊの入力信号ＩＳｊ以外の入力信号の信号レベルに依存することなく、その信号レベルが変化するシード出力信号ＳＧＯを出力する。すなわち、ＩＳｊ以外の入力信号の信号レベルがＨレベルであるかＬレベルであるかに依存せずに、その信号レベルが変化するシード出力信号ＳＧＯを出力する。このため、入力信号ＩＳ１〜ＩＳｎのうちの少なくとも１つの入力信号の信号レベルが変化すると、当該変化した入力信号以外の入力信号の信号レベルに依存せずに、シード出力信号ＳＧＯの信号レベルが変化する。
【００３６】
信号処理回路１２０は、シード生成回路１１０から生成されたシード出力信号ＳＧＯを擬似乱数生成回路１３０に供給する際に、メタステーブル等の異常動作が発生するのを防止するための信号処理をシード出力信号ＳＧＯに対して行う。具体的には、信号処理回路１２０は、当該信号処理として、シード出力信号ＳＧＯに発生するグリッジ等を除去する信号処理等を行う。そして、信号処理回路１２０は、シード出力信号ＳＧＯをより安定させた当該信号処理後の処理信号ＳＰＯを擬似乱数生成回路１３０に供給する。
【００３７】
擬似乱数生成回路１３０は、信号処理回路１２０からの処理信号ＳＰＯに基づいて疑似乱数ＰＮＯ（乱数）を生成する。具体的には、擬似乱数発生回路１３０は、信号処理回路１２０を介してシード生成回路１１０から出力されたシード出力信号ＳＧＯの信号レベルの変化をカウントすることによって、擬似乱数ＰＮＯを生成する。なお、擬似乱数生成回路１３０を特に設けずに、シード生成回路１１０から出力したシード出力信号ＳＧＯを信号処理回路１２０で信号処理した処理信号ＳＰＯを乱数として直接使用することとしてもよい。
【００３８】
本実施形態では、擬似乱数生成回路１３０で生成された擬似乱数ＰＮＯは、所定数（例えば、８ビット）の乱数列が揃うまで、ＦＩＦＯバッファ１４０で保持される。そして、ＦＩＦＯバッファ１４０に所定数分の擬似乱数ＰＮＯが乱数列として揃うと、その乱数列を用いて暗号処理を行う暗号処理部等に、当該乱数列が供給される。なお、乱数列を保存するバッファは、いわゆる先入れ先出し方式のＦＩＦＯバッファに限定されない。また、乱数列を保存する必要のない場合には、ＦＩＦＯバッファ１４０を特に設けないで、ＣＰＵバスから乱数発生回路１００に直接アクセスする構成としてもよい。
【００３９】
２．シード生成回路の構成例
２．１．第１の構成例
図２に、本実施形態の乱数発生回路１００に備わるシード生成回路の第１の構成例を示す。第１の構成例のシード生成回路１１１は、第１〜第ｎ（ｎは、３以上の整数）の入力信号ＩＳ１〜ＩＳｎに基づいて、乱数シードとなるシード出力信号ＳＧＯを生成して出力する。本構成例では、各入力信号ＩＳ１〜ＩＳｎは、ｎ個のＩ／ＯセルＣ１〜Ｃｎから入力され、各Ｉ／ＯセルＣ１〜Ｃｎは、信号配線を介してｎ個のパッド（広義には端子）Ｐ１〜Ｐｎと接続されている。なお、Ｉ／Ｏセルは、例えば、入力セルや入出力兼用セルなどである。
【００４０】
第１の構成例のシード生成回路１１１は、少なくとも２つ以上の排他的論理和回路ＸＯＲ１、ＸＯＲ２、ＸＯＲ３…を備え、具体的には、シード生成回路１１０に入力される入力信号ＩＳ１〜ＩＳｎの数ｎより１個少ない（ｎ−１）個の排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）が備わる。そして、各排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）は、図２に示すように、チェーン状に接続されている。
【００４１】
これらの排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）のうち、第１の排他的論理和回路ＸＯＲ１は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第１の入力信号ＩＳ１と第２の入力信号ＩＳ２との排他的論理和を演算する（排他的論理和を取る）。第２の排他的論理和回路ＸＯＲ２は、第１の排他的論理和回路ＸＯＲ１の出力信号ＸＱ１と、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第３の入力信号ＩＳ３との排他的論理和を演算する。第３の排他的論理和回路ＸＯＲ３は、第２の排他的論理和回路ＸＯＲ２の出力信号ＸＱ２と、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第４の入力信号ＩＳ４との排他的論理和を演算する。このように、第１の構成例では、第ｋの排他的論理和回路ＸＯＲｋ（２≦ｋ≦ｎ−１）は、第（ｋ−１）の排他的論理和回路ＸＯＲ（ｋ−１）の出力信号ＸＱ（ｋ−１）と、第（ｋ＋１）の入力信号ＩＳ（ｋ＋１）との排他的論理和を演算する。
【００４２】
シード生成回路１１０を上記の構成とすることによって、各Ｉ／ＯセルＣ１〜Ｃｎからの入力信号ＩＳ１〜ＩＳｎのうち、例えば、第１の入力信号ＩＳ１の信号レベルが変化すると、第２の入力信号ＩＳ２の信号レベルに依存することなく（ＩＳ２がＬレベルであってもＨレベルであっても）、第１の排他的論理和回路ＸＯＲ１の出力信号ＸＱ１の信号レベルが変化する。そして、第１の排他的論理和回路ＸＯＲ１の出力信号ＸＱ１の信号レベルが変化すると、第３の入力信号ＩＳ３の信号レベルに依存することなく（ＩＳ３がＬレベルであってもＨレベルであっても）、第２の排他的論理和回路ＸＯＲ２の出力信号ＸＱ２の信号レベルが変化する。そして、第２の排他的論理和回路ＸＯＲ２の出力信号ＸＱ２の信号レベルが変化すると、第４の入力信号ＩＳ４の信号レベルに依存することなく、第３の排他的論理和回路ＸＯＲ３の出力信号ＸＱ３の信号レベルが変化する。このように、第１の構成例では、第（ｋ−１）の排他的論理和回路ＸＯＲ（ｋ−１）の信号レベルが変化すると、第（ｋ＋１）の入力信号ＩＳ（ｋ＋１）の信号レベルに依存せずに、第ｋの排他的論理和回路ＸＯＲｋの出力信号ＸＯＲｋの信号レベルが変化する。
【００４３】
仮に、第１の構成例のシード生成回路１１１に設けられる各排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）を複数の論理積回路ＡＮＤのチェーン接続の構成とすると、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちのいずれかの入力信号の信号レベルがＬレベル（論理「０」）になると、シード出力信号ＳＧＯが強制的にＬレベルになってしまう。従って、他の入力信号の信号レベルの変化を、シード出力信号ＳＧ０の信号レベルの変化として伝えることができなくなる。また、第１の構成例の各排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）を複数の論理和回路ＯＲのチェーン接続の構成とすると、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちのいずれかの信号レベルがＨレベル（論理「１」）になると、シード出力信号ＳＧＯが強制的にＨレベルになってしまう。従って、他の入力信号の信号レベルの変化を、シード出力信号ＳＧ０の信号レベルの変化として伝えることができなくなる。故に、このようなＡＮＤチェーンやＯＲチェーンの構成では、シード生成回路のシード出力信号ＳＧＯの信号レベルの変化が単調なものとなってしまう。
【００４４】
これに対して、第１の構成例では、各Ｉ／ＯセルＣ１〜Ｃｎからの入力信号ＩＳ１〜ＩＳｎの全ての排他的論理和を排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）で取る。このため、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの少なくとも１つの入力信号の信号レベルが変化すると、当該信号レベルが変化した入力信号以外の入力信号の信号レベルに依存することなく、シード出力信号ＳＧＯの信号レベルも変化するようになる。すなわち、各Ｉ／ＯセルＣ１〜Ｃｎからの入力信号ＩＳ１〜ＩＳｎの全ての論理計算を排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）で演算すると、全ての入力信号ＩＳ１〜ＩＳｎの信号レベルの変化を伝搬できる。換言すると、シード生成回路１１１のシード出力信号ＳＧＯの信号レベルの変化がよりランダムなものとなる。従って、第１の構成例のシード生成回路１１１は、外部デバイスからの入力信号ＩＳ１〜ＩＳｎの信号レベルの変化と言う不規則的な変動因子に基づいて、乱数シードを発生させることにより、当該乱数シードが予測不能性の高いものとすることができる。このため、従来のようにクロック信号を発生する発振器等の乱数シードを発生させるようなデバイスを別途設ける必要がなくなり、少ない回路規模で予測不能性の高い乱数を発生できる。
【００４５】
また、第１の構成例では、各Ｉ／ＯセルＣ１〜Ｃｎから入力される入力信号ＩＳ１〜ＩＳｎのうちの少なくとも１つの入力信号の信号レベルが変化すると、当該信号レベルが変化した入力信号以外の入力信号の信号レベルに依存することなく、シード出力信号ＳＧＯの信号レベルも変化する。換言すると、当該シード出力信号ＳＧＯの信号レベルが変化すると、各Ｉ／ＯセルＣ１〜Ｃｎから入力される入力信号ＩＳ１〜ＩＳｎのうちの少なくとも１つの信号レベルが変化していることが検出できる。このため、シード生成回路１１１のシード出力信号ＳＧＯの信号レベルの変化を検出することにより、各Ｉ／ＯセルＣ１〜Ｃｎが正常に機能しているか否かを検出するためのテスト用回路として適用することもできる。換言すると、シード生成回路１１０を、乱数シード生成用の回路と、Ｉ／ＯセルＣ１〜Ｃｎのテスト用回路と兼用することが出来るので、回路規模の縮小が可能となる。
【００４６】
さらに、第１の構成例では、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎは、第１〜第ｎのＩ／ＯセルＣ１〜Ｃｎからの入力信号ＩＳ１〜ＩＳｎであるので、Ｉ／Ｏセルからの入力信号を有効活用して、乱数シードを生成できる。特に、ＩＣ内に多数のＩ／Ｏセルが設けられる場合には、このＩ／Ｏセルの個数に応じて乱数の予測不能性が高まるため、予測不能性の高い乱数シードを生成できる効果が顕著に表れる。また、乱数シード生成のための回路を別個に設ける必要がなく、Ｉ／Ｏセルを有効活用できるため、回路の小規模化も図れる。さらに、乱数シード生成用の信号として、アナログ回路からの信号を用いなくても済むため、例えば、ゲートアレイなどのデジタル回路においても、乱数の生成が可能になる。
【００４７】
２．２．第２の構成例
図３に、本実施形態の乱数発生回路１００に備わるシード生成回路の第２の構成例を示す。第２の構成例のシード生成回路１１２は、第１の構成例と同様に、ｎ個のＩ／ＯセルＣ１〜Ｃｎから入力される第１〜第ｎ（ｎは、３以上の整数）の入力信号ＩＳ１〜ＩＳｎに基づいて、乱数シードとなるシード出力信号ＳＧＯを生成して出力する。第２の構成例のシード生成回路１１２は、少なくとも３つ以上の排他的論理和回路ＸＯＲ１、ＸＯＲ２、ＸＯＲ３…を備え、具体的には、シード生成回路１１２に入力される入力信号ＩＳ１〜ＩＳｎの数ｎより１個少ない（ｎ−１）個の排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）が備わる。そして、第２の構成例では、各排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）は、図３に示すように、ツリー状に接続されている。
【００４８】
第２の構成例では、これらの排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）のうち、第１の排他的論理和回路ＸＯＲ１は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第１の入力信号ＩＳ１と第２の入力信号ＩＳ２との排他的論理和を演算する。第２の排他的論理和回路ＸＯＲ２は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第３の入力信号ＩＳ３と第４の入力信号ＩＳ４との排他的論理和を演算する。第３の排他的論理和回路ＸＯＲ３は、第１の排他的論理和回路ＸＯＲ１から出力される第１の排他的論理和信号ＸＱ１と、第２の排他的論理和回路ＸＯＲ２から出力される第２の排他的論理和信号ＸＱ２との排他的論理和を演算する。このように、第２の構成例では、シード生成回路１１２は、入力段側の排他的論理和回路ＸＯＲ１、ＸＯＲ２は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの異なる２つの入力信号ＩＳ１、ＩＳ２（ＩＳ３、ＩＳ４）の排他的論理和を演算する。そして、入力段側の排他的論理和回路ＸＯＲ１、ＸＯＲ２から出力される排他的論理和回路信号ＸＱ１、ＸＱ２の排他的論理和を当該排他的論理和回路ＸＯＲ１、ＸＯＲ２の後段側の第３の排他的論理和回路ＸＯＲ３が演算する。
【００４９】
このため、第１の構成例と同様に、第２の構成例のシード生成回路１１２は、外部デバイスからの入力信号ＩＳ１〜ＩＳｎの信号レベルの変化と言う不規則的な変動因子に基づいて乱数シードを発生させるので、当該乱数シードの予測不能性を高いものとする。また、第２の構成例は、第１の構成例と同様に、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎを第１〜第ｎのＩ／ＯセルＣ１〜Ｃｎからの出力信号とするので、ゲートアレイなどのデジタル回路においても、シード生成回路１１２を実現できる。さらに、第１の構成例と同様に、シード出力信号ＳＧＯの信号レベルが変化すると、各Ｉ／ＯセルＣ１〜Ｃｎから入力される入力信号ＩＳ１〜ＩＳｎのうちの少なくとも１つが変化していることが検出可能なので、Ｉ／Ｏセルのテスト用回路として適用することもできる。
【００５０】
また、第２の構成例では、各排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）をツリー状に接続しているので、これらをチェーン状に接続している第１の構成例よりも、シード生成回路１１２の初段から最終段までの段数を減らすことができる。このため、第１の構成例と比べて、少ない信号遅延でシード出力信号ＳＧＯの出力が可能となる。
【００５１】
２．３．第３の構成例
図４に、本実施形態の乱数発生回路１００に備わるシード生成回路の第３の構成例を示す。第３の構成例のシード生成回路１１３は、前述した第１および第２の構成例と同様に、第１〜第ｎ（ｎは、３以上の整数）の入力信号ＩＳ１〜ＩＳｎに基づいて、乱数シードとなるシード出力信号ＳＧＯを生成して出力する。第３の構成例では、第１および第２の構成例と異なり、各入力信号ＩＳ１〜ＩＳｎの全てがｎ個のＩ／ＯセルＣ１〜Ｃｎからの入力信号ではなく、一部の入力信号が、ＩＣ（ＬＳＩ）内の他の回路から出力される信号となっている。具体的には、ＩＳ１〜ＩＳｎの一部の入力信号（図４では、ＩＳＤ４）がＡ／Ｄ変換器ｃｎｖの出力信号となっている。このＡ／Ｄ変換器ｃｎｖは、例えば、パッドＰ４から入力されるアナログの入力信号ＩＳＡ４をデジタルの信号ＩＳＤ４に変換する。
【００５２】
第３の構成例のシード生成回路１１３は、第１および第２の構成例と同様に、少なくとも２つ以上の排他的論理和回路ＸＯＲ１、ＸＯＲ２、ＸＯＲ３…を備え、具体的には、シード生成回路１１３に入力される入力信号ＩＳ１〜ＩＳｎの数ｎより１個少ない（ｎ−１）個の排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）が備わる。これらの排他的論理和回路ＸＯＲ１〜ＸＯＲ（ｎ−１）のうち、第１の排他的論理和回路ＸＯＲ１は、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第１の入力信号ＩＳ１と第２の入力信号ＩＳ２との排他的論理和を演算する。第２の排他的論理和回路ＸＯＲ２は、第１の排他的論理和回路ＸＯＲ１の出力信号ＸＱ１と、第１〜第ｎの入力信号ＩＳ１〜ＩＳｎのうちの第３の入力信号ＩＳ３との排他的論理和を演算する。第３の排他的論理和回路ＸＯＲ３は、第２の排他的論理和回路ＸＯＲ２の出力信号ＸＱ２と、他の回路であるＡ／Ｄ変換器ｃｎｖから入力される第４の入力信号ＩＳＤ４との排他的論理和を演算する。このように、第３の構成例では、他の回路からのランダム性のある信号ＩＳＤ４も乱数シード生成に反映させているので、予測不能性の高いシード出力信号ＳＧＯ（図４における第３の排他的論理和信号ＸＱ３）を出力できる。
【００５３】
また、シード生成回路１１３への入力信号ＩＳ１〜ＩＳｎのうち、Ｉ／ＯセルＣ１〜Ｃ３から入力される第１〜第３の入力信号ＩＳ１〜ＩＳ３の排他的論理和となる第２の排他的論理和信号ＸＱ２は、テストモード時には、テスト用Ｉ／ＯセルＣＴおよびテスト用パッドＰＴを介して、テスト出力信号ＴＳとして外部（テスタ等）に出力される。すなわち、通常動作時に、乱数シードを生成するために第３の排他的論理和回路ＸＯＲ３に供給される第２の排他的論理和信号ＸＱ２は、テストモード時には、テスト用Ｉ／ＯセルＣＴを介してテスト用パッドＰＴに供給される。このように、Ｉ／ＯセルＣ１〜Ｃ３から入力される入力信号ＩＳ１〜ＩＳ３の排他的論理和となる排他的論理和信号ＸＱ２をテスト用パッドＰＴに供給することによって、シード生成回路１１３をＩ／ＯセルＣ１〜Ｃ３のテスト用に使用することもできる。すなわち、シード生成回路１１３が第１〜第３のＩ／ＯセルＣ１〜Ｃ３のテスト用回路として兼用され、シード生成回路１１３で生成された信号ＸＱ２が第１〜第３のＩ／ＯセルＣ１〜Ｃ３のテスト出力信号ＴＳとして使用される。このように、シード生成回路１１３の出力信号が乱数シードの生成とテスト用信号の双方に兼用可能なので、別途テスト用回路を設ける必要が無くなるので、回路規模を縮小できる。
【００５４】
３．信号処理回路
３．１．第１の構成例
図５に、本実施形態の乱数発生回路１００に備わる信号処理回路１２０の第１の構成例を示す。前述したように、信号処理回路１２０は、シード生成回路１１０から生成されたシード出力信号ＳＧＯを擬似乱数生成回路１３０に供給する際に、シード出力信号ＳＧＯのメタステーブル等による異常動作の発生を防止するために、シード生成回路１１０と擬似乱数生成回路１３０との間に設けられる。
【００５５】
第１の構成例の信号処理回路１２１は、カスケード接続された２つのラッチ回路ＬＡ１、ＬＡ２を有し、２つのラッチ回路のうちの初段側の第１のラッチ回路ＬＡ１のデータ入力端子にシード出力信号ＳＧＯが入力される。また、これらのラッチ回路ＬＡ１、ＬＡ２の各クロック入力端子には、クロック信号ＣＬＫが入力され、当該ラッチ回路ＬＡ１、ＬＡ２がクロック信号ＣＬＫに同期して動作する。このため、各ラッチ回路ＬＡ１、ＬＡ２にクロック信号ＣＬＫが１パルス入力されると、第１のラッチ回路ＬＡ１で保持されているデータが信号出力され、この出力信号ＬＡＱが、第１のラッチ回路ＬＡ２の後段側の第２のラッチ回路ＬＡ２のデータ入力端子に入力される。そして、各ラッチ回路ＬＡ１、ＬＡ２にクロック信号ＣＬＫがさらに１パルス入力されると、第２のラッチ回路ＬＡ２で保持されているデータが信号出力され、この出力信号が信号処理回路１２１から出力される処理信号ＳＰＯとなる。このように、各ラッチ回路ＬＡ１、ＬＡ２のクロック入力端子にクロック信号ＣＬＫを入力することによって、シード出力信号ＳＧＯをメタステーブル等による異常動作を生じない安定化させた処理信号ＳＰＯとして、後続の擬似乱数生成回路１３０に供給できるようになる。
【００５６】
信号処理回路１２１から出力される処理信号ＳＰＯは、擬似乱数生成回路１３０のデータ入力端子に供給され、当該擬似乱数生成回路１３０において、当該処理信号ＳＰＯに基づいて擬似乱数が生成される。なお、第１の構成例の信号処理回路１２１では、処理信号ＳＰＯは、擬似乱数生成回路１３０のデータ入力端子に入力されるが、クロック入力端子に入力させて、クロック信号ＣＬＫをランダム性のあるものとして、擬似乱数生成回路１３０で擬似乱数を生成させてもよい。
【００５７】
このように、信号処理回路１２０として、２つのラッチ回路ＬＡ１、ＬＡ２からなるダブルラッチ回路を設けることによって、シード出力信号ＳＧＯのメタステーブル等による異常動作の発生を防止する。このため、シード生成回路１１０から供給されるシード出力信号ＳＧＯに基づいて擬似乱数生成回路１３０で生成される擬似乱数ＰＮＯがよりランダム性を有するものとなる。なお、メタステーブル対策として安定した処理信号ＳＰＯを出力するには、信号処理回路１２１には、少なくとも２つ以上のラッチ回路を有していればよく、例えば、３つ以上のラッチ回路を含む構成としても良い。
【００５８】
３．２．第２の構成例
図６に、本実施形態の乱数発生回路１００に備わる信号処理回路の第２の構成例を示す。第２の構成例の信号処理回路１２２は、抵抗ＲＢとコンデンサＣＢを含むＲＣ型のローパスフィルタ（ＬＰＦ）である。第２の構成例の信号処理回路１２２から出力される処理信号ＳＰＯは、擬似乱数生成回路１３０のクロック入力端子に供給され、当該擬似乱数生成回路１３０において、シード出力信号ＳＧＯを信号処理した当該処理信号ＳＰＯをランダム性のあるクロック信号ＣＬＫとして、擬似乱数が生成される。
【００５９】
このように、シード生成回路１１０と擬似乱数生成回路１３０との間に、ローパスフィルタの信号処理回路１２２を設けることにより、クロックに重畳されるグリッジの除去が可能になり、動作異常の発生を防止できる。このため、シード生成回路１１０において、各入力信号ＩＳ１〜ＩＳｎの入力動作が極端に速い場合でも、擬似乱数生成回路１３０でのカウンタ動作が機能しなくなる動作不良を解消できる。また、第２の構成例では、信号処理回路１２２においてクロック信号ＣＬＫで同期を取る必要がないという利点もある。
【００６０】
４．擬似乱数生成回路
４．１．第１の構成例
図７に、本実施形態の乱数発生回路１００に備わる擬似乱数生成回路の第１の構成例を示す。第１の構成例の擬似乱数生成回路１３１は、カスケード接続された３つのＤ型のフリップフロップ回路（ラッチ回路）ＦＦＡ１、ＦＦＡ２、ＦＦＡ３と、２つの排他的論理和回路ＸＯＲ１１、ＸＯＲ１２を備える３ビットのデータを保持できるＰＮ系列の回路である。また、擬似乱数生成回路１３１では、各フリップフロップ回路ＦＦＡ１、ＦＦＡ２、ＦＦＡ３のデータ入力端子に前段から出力されるデータ信号が入力され、各フリップフロップ回路ＦＦＡ１、ＦＦＡ２、ＦＦＡ３の動作の同期を取るためのクロック信号や、各フリップフロップ回路ＦＦＡ１、ＦＦＡ２、ＦＦＡ３をリセットするリセット信号を共通のものとする。なお、フリップフロップ回路の個数は、３個に限定されず、ｍ個（ｍは、自然数）のフリップフロップ回路を設ければ、ｍビットのデータを保持できる擬似乱数生成回路となる。
【００６１】
このような構成の擬似乱数生成回路１３１では、各フリップフロップ回路ＦＦＡ１、ＦＦＡ２、ＦＦＡ３のクロック入力端子にクロック信号ＣＬＫが1パルス入力されると、各フリップフロップ回路ＦＦＡ１、ＦＦＡ２、ＦＦＡ３が保持する１ビット分のデータを後続にシフトするシフトレジスタとして機能する。
【００６２】
すなわち、第１の構成例では、信号処理回路１２０から出力された処理信号ＳＰＯは、擬似乱数生成回路１３１の入力段側に設けられる入力段側排他的論理和回路ＸＯＲ１２を介して、擬似乱数生成回路１３１の初段側の第１のフリップフロップ回路ＦＦＡ１のデータ入力端子に入力される。そして、１ビットのデータを第１のフリップフロップ回路ＦＦＡ１が保持する。第１のフリップフロップ回路ＦＦＡ１は、保持している１ビットのデータを後段側の第２のフリップフロップ回路ＦＦＡ２および帰還用排他的論理和回路ＸＯＲ１１に供給する。そして、第１のフリップフロップ回路ＦＦＡ１は、所定のクロックに同期させて、帰還用排他的論理和回路ＸＯＲ１１から供給される１ビットのデータを新たに保持し、このデータを第２のフリップフロップ回路ＦＦＡ２および帰還用排他的論理和回路ＸＯＲ１１に新たに供給する。
【００６３】
第２のフリップフロップ回路ＦＦＡ２は、保持している１ビットのデータを第３のフリップフロップ回路ＦＦＡ３に供給する。そして、第２のフリップフロップ回路ＦＦＡ２は、所定のクロックに同期させて、前段の第１のフリップフロップ回路ＦＦＡ１から供給される１ビットのデータを新たに保持し、当該新たなデータを後段の第３のフリップフロップ回路ＦＦＡ３に新たに供給する。
【００６４】
第３のフリップフロップ回路ＦＦＡ３は、保持している１ビットのデータを帰還用排他的論理和回路ＸＯＲ１１に供給する。そして、第３のフリップフロップ回路ＦＦＡ３は、所定のクロックに同期させて、前段の第２のフリップフロップ回路ＦＦＡ２から供給される１ビットのデータを新たに保持し、このデータを帰還用排他的論理和回路ＸＯＲ１１に新たに供給する。
【００６５】
帰還用排他的論理和回路ＸＯＲ１１は、第１のフリップフロップ回路ＦＦＡ１から供給されるデータと、第３のフリップフロップ回路ＦＦＡ３から供給されるデータとを用いて排他的論理和演算を行い、演算結果を入力段側排他的論理和回路ＸＯＲ１２に供給する。
【００６６】
入力段側排他的論理和回路ＸＯＲ１２は、信号処理回路１２０から供給される処理信号ＳＰＯと、帰還用排他的論理和回路ＸＯＲ１１の演算結果とを用いて排他的論理和演算を行い、演算結果を第１のフリップフロップ回路ＦＦＡ１に供給する。
【００６７】
このような第１の構成例の擬似乱数生成回路１３０では、最終段のフリップフロップ回路ＦＦＡ３からシリアル出力されるビット列が、疑似乱数ＰＮＯとして出力される。
【００６８】
４．２．第２の構成例
図８に、本実施形態の乱数発生回路１００に備わる擬似乱数生成回路の第２の構成例を示す。第２の構成例の擬似乱数生成回路１３２は、３つのＤ型のフリップフロップ回路（ラッチ回路）ＦＦＢ１、ＦＦＢ２、ＦＦＢ３がカスケード接続されて構成されるシフトレジスタと、１つの帰還用排他的論理和回路ＸＯＲ１３とを備えるＰＮ系列の回路である。
【００６９】
第２の構成例では、信号処理回路１２０からの処理信号ＳＰＯは、擬似乱数生成回路１３２の各フリップフロップ回路ＦＦＢ１、ＦＦＢ２、ＦＦＢ３のクロック入力端子に入力される。すなわち、各フリップフロップ回路ＦＦＢ１、ＦＦＢ２、ＦＦＢ３の動作タイミングを取るためのクロック信号に、シード生成回路１１０で生成された乱数シードによるランダム性を付与することによって、擬似乱数ＰＮＯを発生させる。また、第２の構成例では、擬似乱数生成回路１３２は、各フリップフロップ回路ＦＦＢ１、ＦＦＢ２、ＦＦＢ３の動作状態をリセットするリセット信号を共通のものとする。また、フリップフロップ回路ＦＦＢ１、ＦＦＢ２、ＦＦＢ３には、当該リセット後に、３ビットのデータＦＮがロード端子を介してロードされる。なお、フリップフロップ回路の個数は、３個に限定されず、ｍ個のフリップフロップ回路を設ければ、ｍビットのデータを保持できる擬似乱数生成回路となる。
【００７０】
第２の構成例では、信号処理回路１２０から出力された処理信号ＳＰＯは、擬似乱数生成回路１３２の初段の第１のフリップフロップ回路ＦＦＢ１のクロック入力端子に入力され、１ビットのデータを第１のフリップフロップ回路ＦＦＢ１が保持する。第１のフリップフロップ回路ＦＦＢ１は、保持している１ビットのデータを後段側の第２のフリップフロップ回路ＦＦＢ２および帰還用排他的論理和回路ＸＯＲ１３に供給する。そして、第１のフリップフロップ回路ＦＦＢ１は、ランダム性が付与された所定のクロックに同期させて、帰還用排他的論理和回路ＸＯＲ１３から供給される１ビットのデータを新たに保持し、このデータを第２のフリップフロップ回路ＦＦＢ２および帰還用排他的論理和回路ＸＯＲ１３に新たに供給する。
【００７１】
第２のフリップフロップ回路ＦＦＢ２は、保持している１ビットのデータを第３のフリップフロップ回路ＦＦＢ３に供給する。そして、第２のフリップフロップ回路ＦＦＢ２は、ランダム性が付与された所定のクロックに同期させて、前段の第１のフリップフロップ回路ＦＦＢ１から供給される１ビットのデータを新たに保持し、当該新たなデータを後段の第３のフリップフロップ回路ＦＦＢ３に新たに供給する。
【００７２】
第３のフリップフロップ回路ＦＦＢ３は、保持している１ビットのデータを帰還用排他的論理和回路ＸＯＲ１３に供給する。そして、第３のフリップフロップ回路ＦＦＢ３は、所定のクロックに同期させて、前段の第２のフリップフロップ回路ＦＦＢ２から供給される１ビットのデータを新たに保持し、このデータを帰還用排他的論理和回路ＸＯＲ１３に新たに供給する。
【００７３】
帰還用排他的論理和回路ＸＯＲ１３は、第１のフリップフロップ回路ＦＦＢ１から供給されるデータと、第３のフリップフロップ回路ＦＦＢ３から供給されるデータとを用いて排他的論理和演算を行い、演算結果を第１のフリップフロップ回路ＦＦＢ１に供給する。
【００７４】
このような第２の構成例の擬似乱数生成回路１３２は、各フリップフロップ回路ＦＦＢ１、ＦＦＢ２、ＦＦＢ３がランダム性の付与されたクロック（ＳＰＯ）に基づいてデータの保持・出力を行い、最終段のフリップフロップ回路ＦＦＢ３からシリアル出力されるビット列を擬似乱数ＰＮＯとして出力する。
【００７５】
５．本発明の乱数発生回路の詳細例
図９に、本発明の乱数発生回路の詳細例を示す。本詳細例は、シード生成回路１１０として図４に示す第３の構成例のシード生成回路１１３を用い、信号処理回路１２０として図５に示す第１の構成例の信号処理回路１２１を用い、擬似乱数生成回路１３０として図７に示す第１の構成例の擬似乱数生成回路１３１を用い、かつリセット回路１６０およびマスク回路１７０を付加したものである。
【００７６】
シード生成回路１１０に入力される第１〜第３の入力信号ＩＳ１〜ＩＳ３は、Ｉ／ＯセルＣ１〜Ｃ３から入力される信号であり、各Ｉ／ＯセルＣ１〜Ｃ３は、パッドＰ１〜Ｐ３と接続されている。これに対して、第４の入力信号ＩＳ４は、パッドＰ４を介して入力されるアナログ信号をＡ／Ｄ変換するＡ／Ｄ変換器ｃｎｖから入力される信号である。
【００７７】
本詳細例では、シード生成回路１１０は、チェーン状に接続された第１〜第３の排他的論理和回路ＸＯＲ１〜ＸＯＲ３を備える。そして、第１の排他的論理和回路ＸＯＲ１は、第１の入力信号ＩＳ１と第２の入力信号ＩＳ２との排他的論理和を演算し、第２の排他的論理和回路ＸＯＲ２は、第１の排他的論理和回路ＸＯＲ１の出力信号ＸＱ１と、第３の入力信号ＩＳ３との排他的論理和を演算する。第３の排他的論理和回路ＸＯＲ３は、第２の排他的論理和回路ＸＯＲ２の出力信号ＸＱ２と、Ａ／Ｄ変換器ｃｎｖからの第４の入力信号ＩＳ４との排他的論理和を演算して、その出力信号ＸＱ３がシード出力信号ＳＧＯとして信号処理回路１２０に供給される。このような構成とすることにより、Ｉ／Ｏセルからの入力信号やＩＣ内の他の回路からの入力信号の変化が、シード出力信号ＳＧＯの変化に影響を与えるので、当該シード出力信号ＳＧＯの信号レベルの変化をよりランダムなものとすることができる。
【００７８】
また、Ｉ／ＯセルＣ１〜Ｃ３から入力される第１〜第３の入力信号ＩＳ１〜ＩＳ３の排他的論理和となる第２の排他的論理和信号ＸＱ２は、第３の排他的論理和回路ＸＯＲ３以外にも、テスト用Ｉ／ＯセルＣＴを介して、テスト用のシリアルデータを受け入れるテスト用パッドＰＴにも供給可能な構成となっている。このように、Ｉ／ＯセルＣ１〜Ｃ３から入力される入力信号ＩＳ１〜ＩＳ３の排他的論理和となる排他的論理和信号ＸＱ２をテスト用パッドＰＴに供給することによって、シード生成回路１１０で生成された信号ＸＱ２をＩ／ＯセルＣ１〜Ｃ３のテスト用に使用することもできる。すなわち、シード生成回路１１３が第１〜第３のＩ／ＯセルＣ１〜Ｃ３のテスト用回路として兼用され、シード生成回路１１３で生成された信号ＸＱ２が第１〜第３のＩ／ＯセルＣ１〜Ｃ３のテスト出力信号として使用される。換言すると、シード生成回路１１０は、通常動作時には、シード生成回路１１０で生成されたシード出力信号ＳＧＯに基づいて乱数シードを生成し、テストモード時には、シード生成回路１１０で生成された信号ＸＱ２に基づいて、第１〜第３のＩ／ＯセルＣ１、Ｃ２、Ｃ３のテストを行う。このように、シード生成回路１１０の出力信号が乱数シードの生成とテスト用信号の双方に兼用可能となるので、別途テスト用回路を設ける必要が無くなり、回路規模を縮小できる。
【００７９】
さらに、本詳細例では、各入力信号ＩＳ１〜ＩＳ４のシード生成回路１１０の入力段側に、マスク回路１７０が設けられる。具体的には、第１〜第３のＩ／ＯセルＣ１〜Ｃ３とシード生成回路１１０との間に、各Ｉ／ＯセルＣ１〜Ｃ３に対応する第１〜第３の否定論理積回路ＮＡＮＤ１〜ＮＡＮＤ３、およびＡ／Ｄ変換器ｃｎｖと第３の排他的論理和回路ＸＯＲ３との間に第４の否定論理積回路ＮＡＮＤ４が設けられている。これらの否定論理積回路ＮＡＮＤ１〜ＮＡＮＤ４の一方の入力端子には、それぞれに対応する各入力信号ＩＳ１〜ＩＳ４が入力される。また、各否定論理積回路ＮＡＮＤ１〜ＮＡＮＤ４の他方の入力端子にはイネーブル信号ｅｎが入力される。このイネーブル信号ｅｎは、通常動作時にその信号レベルがＨレベル（「１」）になり、スリープモード時にその信号レベルがＬレベル（「０」）になる。各否定論理積回路ＮＡＮＤ１〜ＮＡＮＤ４は、各入力信号ＩＳ１〜ＩＳ４とイネーブル信号ｅｎとの否定論理積を演算する。
【００８０】
このため、イネーブル信号ｅｎがＬレベルになるスリープモード時には、入力信号ＩＳ１〜ＩＳ４は、所定の信号レベル（Ｈレベル）に固定される。換言すると、スリープモード時には、否定論理積回路ＮＡＮＤ１〜ＮＡＮＤ４は、シード生成回路１１０の入力信号ＩＳ１〜ＩＳ４の信号レベルを固定するマスク回路１７０として機能する。このように、各入力信号ＩＳ１〜ＩＳ４のシード生成回路１１０の入力段前に、当該マスク回路を設けることによって、スリープモード時にシード生成回路１１０が不必要に動作することを未然に防げるので、シード生成回路１１０の誤作動や余分な消費電力を軽減できる。
【００８１】
シード生成回路１１０で生成された乱数シードは、シード出力信号ＳＧＯとして出力されてから信号処理回路１２０に入力され、シード出力信号ＳＧＯのメタステーブル等による異常動作の発生を防止する信号処理を行う。本詳細例では、信号処理回路１２０は、２つのラッチ回路ＬＡ１、ＬＡ２からなるダブルラッチ回路であり、前段側の第１のラッチ回路ＬＡ１のデータ入力端子にシード出力信号ＳＧＯが入力される。そして、後段側の第２のラッチ回路ＬＡ２からの出力が信号処理回路１２０から出力される処理信号ＳＰＯとなる。
【００８２】
疑似乱数生成回路１３０は、フリップフロップ回路（ラッチ回路）を３つずつ含むバッファ回路１３３と生成回路１３４を有する。ここで、本詳細例の擬似乱数生成回路１３０の動作を図１０に示すフローチャートを用いながら説明する。３つのフリップフロップ回路ＦＦ１〜ＦＦ３から構成されるバッファ回路１３３は、図１０に示すように、フリップフロップ回路ＦＦ１〜ＦＦ３のリセット終了後に、信号処理回路１２０を介してシリアル出力される信号ＳＰＯである乱数シードを３ビット分保持する（ステップＳ１１）。そして、保持された乱数シードの全ビットが０か否かを判断する（ステップＳ１２）。このとき、全ビットが０ではないというロード条件が満たされると、保持された３ビット分の乱数シードを、生成回路１３４を構成する３つのフリップフロップ回路ＦＦ４〜ＦＦ６にそれぞれロードする（ステップＳ１３）。生成回路１３４は、ロードされた３ビットのデータを用いて、図８でその動作を説明したように疑似乱数ＰＮＯの生成を行い、擬似乱数ＰＮＯを出力する。なお、ステップＳ１２において、保持された乱数シードの全ビットが０と検出されると、擬似乱数生成回路１３０は、擬似乱数を生成できないので、再びステップＳ１１に戻って、乱数シードを３ビット分溜める。
【００８３】
また、本詳細例では、乱数発生回路１００を含むＩＣのスキャンパステストを実行するスキャンパスモード時に、パッドＰ３を介して入力されるスキャンパスモード信号がアクティブ（Ｈレベル）になる。その際に、各フリップフロップ回路ＦＦ１〜ＦＦ６を正確に検証するために、スキャンパスモード時には、各フリップフロップ回路ＦＦ１〜ＦＦ６を適正にリセットする必要がある。
【００８４】
これに対して、通常動作時では、各フリップフロップ回路ＦＦ１〜ＦＦ６において初期状態に保持されるデータは、不安定であるほど乱数性が高まる。このため、各フリップフロップ回路ＦＦ１〜ＦＦ６は、リセットしない方が好ましいので、リセット信号を非アクティブ（Ｌレベル）にすることが望ましい。
【００８５】
このため、本詳細例では、リセット信号ＲＳＴを受けて、これらフリップフロップ回路ＦＦ１〜ＦＦ６をリセットするための信号として乱数発生回路用リセット信号ＸＲＳＴを出力するリセット回路１６０が設けられている。リセット回路１６０は、図９に示すように、インバータ回路ＩＮＶと論理和回路ＯＲを備える。インバータ回路ＩＮＶは、第３のパッドＰ３から入力されるスキャンパスモード信号ＳＣＡＮＥＮを反転させ、その反転信号が論理和回路ＯＲの一方の入力端子に入力される。そして、論理和回路ＯＲの他方の入力端子には、リセット信号ＲＳＴが入力される。論理和回路ＯＲによる演算結果である乱数発生回路用リセット信号ＸＲＳＴは、擬似乱数生成回路１３０の各フリップフロップ回路ＦＦ１〜ＦＦ６のリセット入力端子に入力される。
【００８６】
このようにすれば、スキャンパスモード信号ＳＣＡＮＥＮがＨレベルの場合には、リセット信号ＲＳＴがＬレベル（非アクティブ）の時に擬似乱数生成用リセット信号ＸＲＳＴがＨレベルになり、リセット信号ＲＳＴがＨレベル（アクティブ）の時に擬似乱数生成用リセット信号ＸＲＳＴがＬレベルになる。擬似乱数生成用リセット信号ＸＲＳＴは、Ｌレベルでアクティブになる負論理信号であるので、Ｌレベルの擬似乱数生成用リセット信号ＸＲＳＴが各フリップフロップ回路ＦＦ１〜ＦＦ６のリセット入力端子に入力されると、各フリップフロップ回路ＦＦ１〜ＦＦ６がリセットされる。このため、アクティブになった乱数発生回路用リセット信号ＸＲＳＴを用いて疑似乱数生成回路１３０の各フリップフロップ回路ＦＦ１〜ＦＦ６をリセットでき、適正なスキャンパス動作を実現できる。
【００８７】
一方、例えば、通常動作時等のスキャンパスモード以外の場合では、スキャンパスモード信号ＳＣＡＮＥＮがＬレベルであるので、論理和回路ＯＲによる演算結果がＨレベルに固定される。このため、リセット信号ＲＳＴがアクティブになっても、乱数発生回路用リセット信号ＸＲＳＴは、常にＨレベルとなってしまいアクティブにならない。従って、リセット回路１６０によるリセット動作が働かなくなり、乱数の予測不能性を高められる。
【００８８】
本詳細例では、擬似乱数生成回路１３０で生成される擬似乱数ＰＮＯは、ビット列が３ビットのデータがシリアルに出力される。このため、擬似乱数生成回路１３０とＦＩＦＯバッファ１４０との間には、３ビットのシリアルデータを８ビットのパラレルデータに変換するシリパラ変換回路１８０が設けられる。なお、擬似乱数生成回路１３０に８個以上のラッチ回路を設けることによって保持可能なデータが８ビット以上の場合は、当該シリパラ変換回路１８０は、省略可能である。
【００８９】
６．電子機器
次に本実施形態の電子機器について、図１１（Ａ）〜図１１（Ｃ）を用いて説明する。なお、本実施形態の電子機器は、図１１（Ａ）〜図１１（Ｃ）の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００９０】
図１１（Ａ）は、本実施形態の電子機器の第１の構成例である。この第１の構成例の電子機器は、本実施形態の乱数発生回路１００を含む無線回路５００とセンサデバイス５１０を含む。図１１（Ａ）の電子機器では、センサデバイス５１０が力、加速度、質量等の各種の物理量を検出する。そして物理量を電流や電圧等に変換して、検出信号として出力する。
【００９１】
無線回路５００は、センサデバイス５１０からの検出信号を受け、検出信号の増幅や、増幅後の信号に対する各種の信号処理を行う。また、無線回路５００は、本実施形態の乱数発生回路１００を備え、送信するデータを保護するために暗号化する際に使用する鍵として、当該乱数発生回路１００で発生させた乱数を使用する。そして、アンテナ５０を用いて、暗号化されたデータを外部機器に送信する。また、無線回路５００は、アンテナ５０を用いて外部機器からのデータを受信し、ＩＤ認証を行ったり、センサデバイス５１０の制御等を行う。
【００９２】
図１１（Ｂ）は、本実施形態の電子機器の第２の構成例である。この第２の構成例では、図１１（Ａ）の第１の構成例に対して、さらに電源装置５２０が設けられている。この電源装置５２０は、例えば、バッテリ（電池）や電源回路により構成できる。そして、本実施形態の乱数発生回路１００を含む無線回路５００は、この電源装置５２０から供給される電源に基づいて動作する。なお、アンテナ５０を用いて、非接触（無接点）で外部機器から電力を供給する場合には、電源装置５２０の構成は、省略できる。
【００９３】
図１１（Ｃ）は、本実施形態の第３の構成例である。図１１（Ｃ）の電子機器は、ＣＰＵ５３０（広義にはプロセッサ）とメモリ５４０と本実施形態の乱数発生回路１００が設けられた無線回路５００を含む。
【００９４】
ＣＰＵ５３０は、電子機器全体の制御や、メモリ５４０の読み出し、書き込み制御や、無線回路５００の制御を行う。ＣＰＵ５３０の機能は、ＣＰＵ５３０のハードウェアと、ＣＰＵ５３０上で動作するソフトウェアにより実現できる。また、ＣＰＵ５３０からの指示によって、無線回路５００に備わる乱数発生回路１００で生成された擬似乱数を使用する各デバイスに供給する。
【００９５】
メモリ５４０は、ＣＰＵ５３０や無線回路５００のワーク領域となるメモリであり、各種データを記憶する。このメモリ５４０は、ＲＡＭ等により実現できる。
【００９６】
無線回路５００は、ＣＰＵ５３０からの指示に基づいて、アンテナ５０を用いてメモリ５４０に記憶されるデータ等の各種データを外部機器に送信する。また、無線回路５００は、アンテナ５０を用いて、外部機器からのデータを受信して、ＣＰＵ５３０に転送したり、ＣＰＵ５３０を介してメモリ５４０に転送して書き込む作業を実行する。
【００９７】
以上の図１１（Ａ）〜図１１（Ｃ）に示す第１〜第３の電子機器は、本実施形態の乱数発生回路１００が使用される一実施例に過ぎす、本実施形態の乱数発生回路１００は、乱数発生回路を使用する他の電子機器にも適用可能である。例えば、画像処理装置で表示される画像のモアレ等の画像不良を防止するために、擬似中間処理等の画像データ信号の処理の際に使用することもできる。
【００９８】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは、当業者には、容易に理解できるであろう。従って、このような変形例は、全て本発明の範囲に含まれるものとする。
【００９９】
例えば、明細書または図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、乱数発生回路、電子機器の構成、動作も本実施形態で説明したものに限定に限定されず、種々の変形実施が可能である。
【図面の簡単な説明】
【０１００】
【図１】本実施形態の乱数発生回路の構成例。
【図２】シード生成回路の第１の構成例。
【図３】シード生成回路の第２の構成例。
【図４】シード生成回路の第３の構成例。
【図５】信号処理回路の第１の構成例。
【図６】信号処理回路の第２の構成例。
【図７】擬似乱数生成回路の第１の構成例。
【図８】擬似乱数生成回路の第２の構成例。
【図９】本実施形態の乱数発生回路の詳細例。
【図１０】擬似乱数生成回路の動作のフローチャート。
【図１１】図１１（Ａ）、図１１（Ｂ）、図１１（Ｃ）は、電子機器の構成例。
【符号の説明】
【０１０１】
１００  乱数発生回路、１１０、１１１、１１２、１１３  シード生成回路、
１２０、１２１、１２２  信号処理回路、１３０、１３１、１３２  擬似乱数生成回路、１４０  ＦＩＦＯバッファ、１５０  ＣＰＵ、１６０  リセット回路、
１７０  マスク回路、１８０  ８ビットシリパラ変換回路、
ＸＯＲ１、ＸＯＲ２、ＸＯＲ３  排他的論理和回路、
Ｃ１、Ｃ２、Ｃ３、Ｃ４  Ｉ／Ｏセル、ＣＴ  テスト用Ｉ／Ｏセル、
ＬＡ１、ＬＡ２  ラッチ回路、ＬＰＦ  ローパスフィルタ、
ＦＦ１、ＦＦ２、ＦＦ３、ＦＦ４、ＦＦ５、ＦＦ６  フリップフロップ回路
【図１】
2009193523.tif 000003
【図２】
2009193523.tif 000004
【図３】
2009193523.tif 000005
【図４】
2009193523.tif 000006
【図５】
2009193523.tif 000007
【図６】
2009193523.tif 000008
【図７】
2009193523.tif 000009
【図８】
2009193523.tif 000010
【図９】
2009193523.tif 000011
【図１０】
2009193523.tif 000012
【図１１】
2009193523.tif 000013