(57)【要約】【課題】ランダム性が高く質のよい乱数を生成可能な乱数発生回路を提供する。【解決手段】乱数発生回路は、リング発振器２と、基準クロック信号CK0を遅延させて遅延基準クロック信号CK1を生成する遅延制御回路３と、リング発振器２で生成された発振信号を遅延基準クロック信号CK1でラッチする第１のフリップフロップ４と、第１のフリップフロップ４の出力論理を均一化する第１のExOR回路５と、リング発振器２で生成された発振信号を遅延させる遅延回路６と、遅延回路６で遅延された発振信号を遅延基準クロック信号CK1でラッチする第２のフリップフロップ７と、第２のフリップフロップ７の出力論理を均一化する第２のExOR回路８と、第１および第２のExOR回路５，８の出力信号と基準クロック信号CK0とに基づいてランダムシリアルデータを生成する線形帰還レジスタ９とを備えている。【選択図】図１
2006294001.tif 000002
【特許請求の範囲】
【請求項１】
リング状に接続された奇数個の反転増幅器を有するリング発振器と、
基準クロック信号を遅延させて所定のクロック信号を生成する遅延制御回路と、
前記リング発振器で生成された発振信号を前記所定のクロック信号でサンプリングする第１のサンプリング回路と、
前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、
前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、
前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備えることを特徴とする乱数発生回路。
【請求項２】
前記リング発振器で生成された発振信号を所定量だけ遅延させる遅延回路と、
前記遅延回路で遅延された発振信号を前記所定のクロック信号でサンプリングする第２のサンプリング回路と、
前記第２のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第２の論理均一化回路と、を備え、
前記線形帰還シフトレジスタは、前記第１の論理均一化回路の出力信号と前記第２の論理均一化回路の出力信号とに基づいて、前記ランダムシリアルデータを生成することを特徴とする請求項１に記載の乱数発生回路。
【請求項３】
前記遅延制御回路は、
並列接続されるバッファの数を可変制御することにより微小な遅延量を調整する微小遅延量設定部と、
前記遅延制御回路に接続され、直列接続されるバッファの数を可変制御することにより前記微小遅延量設定部よりも大きな遅延量を調整する大遅延量設定部と、を有することを特徴とする請求項１に記載の乱数発生回路。
【請求項４】
リング状に接続された奇数個の反転増幅器と、前記奇数個の反転増幅器のそれぞれの電源経路に接続される奇数個の電流増幅回路と、を有するリング発振器と、
前記リング発振器で生成された発振信号を所定のクロック信号でサンプリングする第１のサンプリング回路と、
前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、
前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、
前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備えることを特徴とする乱数発生回路。
【請求項５】
乱数発生回路は、
リング状に接続された奇数個の反転増幅器と、前記奇数個の反転増幅器それぞれの駆動能力を電圧制御する奇数個の電圧制御回路と、を有するリング発振型ＶＣＯと、
前記リング発振型ＶＣＯで生成された発振信号を所定のクロック信号でサンプリングする第１のサンプリング回路と、
前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、
前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、
前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備えることを特徴とする乱数発生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乱数を発生させる乱数発生回路に関する。
【背景技術】
【０００２】
CMOSインバータを１段または３段接続した発振回路と、この発振回路で生成した発振信号をラッチするフリップフロップと、フリップフロップの出力信号に基づいて疑似乱数を生成する帰還シフトレジスタとを備えた乱数発生回路が知られている（特許文献１参照）。
【０００３】
この種の従来の乱数発生回路は、フリップフロップの出力信号を種（シード）として帰還シフトレジスタに入力している。後段の帰還シフトレジスタ等で乱数のランダム性を向上させることはある程度は可能であるが、帰還シフトレジスタに入力されるシードが十分なランダム性を持たない限り、最終的に得られる乱数の衝突確率を低減することはできない。
【０００４】
乱数の衝突確率は、フリップフロップで生成されるシードの不確定性に依存するが、この不確定性は主に、CMOSインバータで構成される発振回路が温度及び電源電圧の変動に対して不安定であることに依存する。この不安定性のみでは、乱数生成時間内に、温度、電源電圧等に大きな外乱要因が無い限り、従来の方法では同一のシードを生成する確率が高く、乱数の衝突確率を低下させることは困難である。したがって、従来の乱数発生回路では、質のよい乱数が得られないという問題がある。
【特許文献１】特開2002-236582公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ランダム性が高く、質のよい乱数を生成可能な乱数発生回路を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、リング状に接続された奇数個の反転増幅器を有するリング発振器と、基準クロック信号を遅延させて所定のクロック信号を生成する遅延制御回路と、前記リング発振器で生成された発振信号を前記所定のクロック信号でサンプリングする第１のサンプリング回路と、前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備える。
【０００７】
また、本発明の一態様によれば、乱数発生回路は、リング状に接続された奇数個の反転増幅器と、前記奇数個の反転増幅器のそれぞれの電源経路に接続される奇数個の電流増幅回路と、を有するリング発振器と、前記リング発振器で生成された発振信号を前記所定のクロック信号でサンプリングする第１のサンプリング回路と、前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備える。
【０００８】
また、本発明の一態様によれば、乱数発生回路は、リング状に接続された奇数個の反転増幅器と、前記奇数個の反転増幅器それぞれの駆動能力を電圧制御する奇数個の電圧制御回路と、を有するリング発振型ＶＣＯと、前記リング発振型ＶＣＯで生成された発振信号を前記所定のクロック信号でサンプリングする第１のサンプリング回路と、前記第１のサンプリング回路でサンプリングされたサンプリング信号の「０」と「１」の出現頻度を均一化する第１の論理均一化回路と、前記第１の論理均一化回路の出力信号に基づいて、ランダムシリアルデータを生成する線形帰還シフトレジスタ（LFSR：Linear Feedback Shift Register）と、前記ランダムシリアルデータを直並列変換して、前記遅延制御回路の遅延量を制御するのに用いられるランダムパラレルデータを生成する直並列変換器と、を備える。
【発明の効果】
【０００９】
本発明によれば、ランダム性が高く質のよい乱数を生成することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１１】
（第１の実施形態）
図１は本発明の一実施形態に係る乱数発生回路の概略構成を示すブロック図である。図１の乱数発生回路は、縦続接続された奇数個のインバータ１を有するリング発振器２と、基準クロック信号CK0を遅延させて遅延基準クロック信号CK1,CK2を生成する遅延制御回路３と、リング発振器２で生成された発振信号を遅延基準クロック信号CK1でラッチする第１のフリップフロップ４と、第１のフリップフロップ４の出力論理「０」，「１」の出現頻度を均一化する第１のExOR回路５と、リング発振器２で生成された発振信号を遅延させる遅延回路６と、遅延回路６で遅延された発振信号を遅延基準クロック信号CK2でラッチする第２のフリップフロップ７と、第２のフリップフロップ７の出力論理「０」と「１」の出現頻度を均一化する第２のExOR回路８と、第１および第２のExOR回路５，８の出力信号に基づいて乱数（ランダムシリアルデータ）を生成する線形帰還レジスタ９（LFSR）と、線形帰還レジスタ９から出力されたランダムシリアルデータを直並列変換してランダムパラレルデータを生成する直並列変換器１０とを備えている。
【００１２】
リング発振器２は、奇数個のインバータ１の後段に接続されたORゲート１１を有し、ORゲート１１の出力端子は初段のインバータ１の入力端子に接続されている。ORゲート１１は２つの入力端子を有し、一つは前段のインバータ１の出力端子に接続され、もう一つはテスト端子TESTに接続されている。テスト端子TESTに「１」が入力されると、ORゲート１１の出力は「１」になり、リング発振器２は発振動作を停止する。通常動作時は、テスト端子TESTは「０」であり、リング発振器２で生成された発振信号は、位相調整用のインバータ１４で位相が所定量だけシフトした後、第１のフリップフロップ４のデータ入力端子に入力される。
【００１３】
第１のフリップフロップ４のクロック端子には、遅延制御回路３から出力された遅延基準クロック信号CK1が供給される。遅延制御回路３は、直並列変換器１０から出力されたランダムパラレルデータに基づいて、不図示の外部PLL回路からの基準クロック信号CK0の遅延量を調整する。
【００１４】
第１のフリップフロップ４の出力信号は質の悪い乱数であるが、「０」と「１」の出現頻度に偏りがある。このため、第１のExOR回路５により、第１のフリップフロップ４の出力信号と線形帰還レジスタ９の出力信号との排他的論理和を演算する。これにより、第１のExOR回路５からは、「０」と「１」の出現頻度の偏りが抑制された疑似乱数が出力される。
【００１５】
第２のフリップフロップ７は、リング発振器２で生成された発振信号を遅延回路６で遅延した信号を、遅延基準クロック信号CK2でラッチして、乱数信号を出力する。リング発振器２で生成された発振信号を遅延回路６で遅延させる理由は、第１のフリップフロップ４とは異なる位相の乱数信号を生成するためである。第２のフリップフロップ７の出力信号は、第２のExOR回路８に入力されて、「０」と「１」の出現頻度の偏りが抑制された疑似乱数が生成される。
【００１６】
第１のフリップフロップ４から出力された乱数と第２のフリップフロップ７から出力された疑似乱数はともに線形帰還レジスタ９に入力される。線形帰還レジスタ９は、これら乱数をシード（seed）としてランダムシリアルデータを生成する。線形帰還レジスタ９の構成自体は公知であるため、その説明は省略する。
【００１７】
線形帰還レジスタ９で生成されたランダムシリアルデータは、直並列変換器１０に入力されるとともに、第１および第２のExOR回路５，８にも入力される。直並列変換器１０は、ランダムシリアルデータをランダムパラレルデータに変換する。
【００１８】
遅延制御回路３は、遅延量を可変できる遅延回路１２と、ランダムパラレルデータに基づいて遅延回路１２の遅延量を選択するセレクタ１３とを有する。ランダムパラレルデータ自体が乱数であるため、遅延回路１２の遅延量もランダムに変化し、線形帰還レジスタ９に入力される疑似乱数のランダム性が向上する。このため、線形帰還レジスタ９は、ランダム性の高い質のよいランダムシリアルデータを生成することができる。
【００１９】
従来の乱数発生回路は、線形帰還レジスタ９を使用することはあっても、線形帰還レジスタ９にランダム性の高いシードを与えることはなかった。例えば、図１の第１および第２のフリップフロップ４，７がリング発振器２の発振信号を基準クロック信号CK0でラッチしたと仮定すると、第１および第２のフリップフロップ４，７は、ある周期性をもった信号を出力する。このような周期性のある信号は、以下の（１）式の関係を満たす。ｆrはリング発振器２の発振周波数、ｆは基準クロック信号CK0の発振周波数、ｍおよびｎは整数である。
【００２０】
ｆr×ｍ＝ｆ×ｎ    …（１）
このように、第１および第２のフリップフロップ４，７がある周期性のある信号を出力する場合には、線形帰還レジスタ９に周期性を持ったシードが与えられることになり、線形帰還レジスタ９でランダム性が高くて質のよい乱数を生成することができなくなる。すなわち、線形帰還レジスタ９からは、衝突の可能性の高くてランダム性が低い乱数が出力されてしまう。
【００２１】
従来は、線形帰還レジスタ９に与えるシードを生成するフリップフロップに入力される基準クロック信号CK0がジッタ成分を持っており、また温度変動や電圧変動等によりリング発振器２の発振信号に不確定性が生じることを積極的に利用して乱数を生成していた。ところが、このような乱数は、環境条件等によってランダム性が変化するため、安定して質の高い乱数とはいえない。これに対して、本実施形態によれば、環境条件によらず、衝突確率が十分に低くてランダム性の高い乱数を生成することができる。
【００２２】
本実施形態のリング発振器２は、本発明者の実験によると、ゲート長0.18μmのCMOSテクノロジーを利用した場合で約2.5GHzで発振した。リング発振器２内の負荷容量や温度に応じて発振周波数は大きく変化することもわかった。
【００２３】
本実施形態では、消費電力の削減のために単一のリング発振器２の発振信号を第１および第２のフリップフロップ４，７に供給しているが、各フリップフロップごとに専用のリング発振器２を設けてもよい。この方が、両フリップフロップから出力される乱数のランダム性が向上する。
【００２４】
図２は図１の各部の動作タイミング図である。図２（ａ）はリング発振器２の出力波形、図２（ｂ）は基準クロックの信号波形、図２（ｃ）は第１のフリップフロップ４の出力波形を表している。また、図２（ｄ）は図２（ｃ）と同じ第１のフリップフロップ４の出力波形を表しているが、図２（ｃ）よりも時間間隔を長く取っている。図２（ｅ）は線形帰還レジスタ９の出力波形を表しており、図２（ｄ）と同じ時間間隔を取っている。
【００２５】
リング発振器２の発振信号の方が基準クロック信号CK0よりもはるかに周波数が高く（２倍より高く）、また発振信号と基準クロック信号CK0は互いに非同期であるため、周波数および位相の違いを利用して、第１および第２のフリップフロップ４，７は疑似乱数信号を生成することができる。
【００２６】
図２（ｄ）を見ればわかるように、第１のフリップフロップ４の出力波形には「０」と「１」の出現頻度に偏りがあるが、図２（ｅ）に示すように線形帰還レジスタ９の出力波形ではその偏りが抑制されている。
【００２７】
図３は遅延制御回路３の具体的構成の一例を示す回路図である。図３の遅延制御回路３は、微小な遅延量を調整する微小遅延量設定部２１と、大きな遅延量を調整する大遅延量設定部２２とを有する。
【００２８】
微小遅延量設定部２１は、並列接続された複数のトライステートバッファからなる第１の遅延量可変部２３と、第１の遅延量可変部２３の出力端子と接地端子との間に接続された負荷容量２４と、第１の遅延量可変部２３の出力端子に縦続接続されるインバータ２５と、後段のインバータ２５に接続され並列接続された複数のトライステートバッファからなる第２の遅延量可変部２６とを有する。
【００２９】
第１の遅延量可変部２３には、基準クロック信号CK0が入力される。第１の遅延量可変部２３は、基準クロック信号CK0の遅延量を調整する。第１の遅延量可変部２３内のトライステートバッファは個別にオン・オフを設定できる。オンのトライステートバッファが増えるほど、基準クロック信号CK0の遅延量は小さくなる。同様に、第２の遅延量可変部２６内のトライステートバッファも個別にオン・オフを設定でき、オンのトライステートバッファが増えるほど、第２の遅延量可変部２６の遅延量は大きくなる。
【００３０】
第１の遅延量可変部２３の出力端子には負荷容量２４が接続されており、第１の遅延量可変部２３のインピーダンスと負荷容量の容量値により決まる時定数で信号を遅延させることができる。
【００３１】
なお、第１の遅延量可変部２３と第２の遅延量可変部２６内の並列接続されたトライステートバッファの数には特に制限はない。トライステートバッファの数が多くなるほど、遅延量の可変幅が大きくなる。
【００３２】
大遅延量設定部２２は、第１のセレクタ３１と、第１のセレクタ３１の出力端子に縦続接続されたインバータ３２と、第２のセレクタ３３と、第２のセレクタ３３の出力端子に接続されたインバータ３４と、第３のセレクタ３５とを有する。
【００３３】
第１のセレクタ３１は、基準クロック信号CK0と微小遅延量設定部２１の出力信号とのいずれかを選択する。第２のセレクタ３３は、第１のセレクタ３１の出力信号と、この出力信号をインバータ３２で遅延させた信号とのいずれかを選択する。第３のセレクタ３５は、第２のセレクタ３３の出力信号と、この出力信号を複数のインバータ３４で遅延させた信号と、この出力信号を一つのインバータ３４のみで遅延させた信号とのいずれかを選択する。
【００３４】
第１〜第３のセレクタ３１，３３，３５は、図１に示した直並列変換器１０から出力されるランダムパラレルデータに基づいて選択動作を切り替える。
【００３５】
なお、大遅延量設定部２２内部のインバータ３２，３４の段数や、第１〜第３のセレクタ３１，３３，３５にて選択されるべき信号の数は任意に変更可能である。また、セレクタ３１，３３，３５の数を増減してもよい。
【００３６】
このように、遅延制御回路３は、大遅延量設定部２２で大きな遅延量を調整し、微小遅延量設定部２１で微小な遅延量を調整するため、結果として、基準クロック信号CK0を所望の遅延量だけ正確かつ迅速に設定することができる。
【００３７】
図３では、遅延基準クロック信号CK1を出力する構成部分しか図示していないが、遅延基準クロック信号CK2を出力する構成部分も図３と同様に構成されている。
【００３８】
本発明者の実験によると、標準的な容量値を用いた場合、CMOSプロセスのインバータ１の伝搬遅延時間は約0.1nsであった。上述したように、リング発振器２の発振周波数は約2.5GHzであったため、リング発振器２の１周期に相当する遅延量を得るには、最低４個のインバータ１を縦続接続すれば十分であることがわかった。
【００３９】
図４は図１に示したリング発振器２の具体的構成の一例を示す回路図である。図４のリング発振器２は、奇数段のインバータ４１と、最終段のインバータ４１の出力端子に並列接続された複数のトライステートバッファ４２と、これらトライステートバッファ４２の出力端子と接地端子との間に接続された負荷容量４３とを有し、これらトライステートバッファ４２の出力端子から発振信号が出力され、この発振信号は初段のインバータ４１の入力端子に帰還される。
【００４０】
図４では、インバータ４１を一つだけ設けた例を示しているが、奇数個である限り、インバータ１の接続段数には特に制限はない。
【００４１】
図４において、並列接続された複数のトライステートバッファ４２は個別にオン・オフが可能であり、オンのトライステートバッファ４２の数が減少するほど、遅延量が大きくなり、発振周波数は低くなる。図４のリング発振器２の発振周波数は、オンのトライステートバッファ４２の数に応じたインピーダンスと負荷容量４３の容量値とで決まる時定数により決定される。また、並列接続されるトライステートバッファ４２の数を増減することにより、変更可能な発振周波数の数を増減できる。例えば、図４のように、８個のトライステートバッファ４２を並列接続した場合、発振周波数を８通りに変更することができる。
【００４２】
図５はリング発振器２の一変形例を示す回路図である。図５のリング発振器２は、奇数段のインバータ５１の後段に並列接続された複数のバッファ５２と、少なくとも一部のバッファ５２の出力端子と接地端子との間に接続された負荷容量５３と、これら複数のバッファ５２の出力信号の中から一つを選択するセレクタ５４とを有し、セレクタ５４の出力から発振信号が出力され、この発振信号は初段のインバータ５１の入力端子に帰還される。
【００４３】
バッファ５２の出力端子に接続される負荷容量は、互いに容量値が異なっている。このため、各バッファ５２の出力信号は、遅延時間が互いに変化する。このため、セレクタ５４は、所望の遅延時間を持った信号を選択することができる。
【００４４】
このように、本実施形態では、ランダム性の高い疑似乱数を第１および第２のフリップフロップ４，７で生成して線形帰還レジスタ９に与えるため、線形帰還レジスタ９で生成される乱数のランダム性が向上し、質の高い乱数を生成できる。
【００４５】
また、本実施形態に係る乱数発生回路は、すべてデジタル回路で構成されるため、集積化を容易に行える。この乱数発生回路は、種々の用途に利用可能である。例えば、コピー保護装置、ICカード用の暗号鍵生成装置、およびゲーム機の乱数発生装置など、幅広い用途に利用可能である。
【００４６】
上述した図１では、第１および第２のフリップフロップ４，７で生成した２種類の擬似乱数をシードとして線形帰還レジスタ９に入力しているが、遅延回路６，第２のフリップフロップ７と、およびその後段の第２のExOR回路８は省略してもよい。この場合、図１よりも多少線形帰還レジスタ９で生成される乱数のランダム性が劣るが、回路構成を簡略化することができる。
【００４７】
（第２の実施形態）
第２の実施形態は、リング発振器で生成される発振信号の位相変動をランダム化するものである。
【００４８】
図６は本発明の第２の実施形態による乱数発生回路の概略構成を示すブロック図である。図６では、図１と共通する構成部分には同一符号を付しており、以下では相違点を中心に説明する。
【００４９】
図６の乱数発生回路は、図１とは異なる内部構成のリング発振器２ａと、リング発振器２ａの出力信号をラッチする第１のフリップフロップ４と、第１のフリップフロップ４の出力論理「０」と「１」の出現頻度を均一化する第１のＥｘＯＲ回路５と、第１のＥｘＯＲ回路５の出力信号に基づいて乱数（ランダムシリアルデータ）を生成する線形帰還レジスタ９（ＬＦＳＲ）と、線形帰還レジスタ９から出力されたランダムシリアルデータを直並列変換してランダムパラレルデータを生成する直並列変換器１０とを備えている。
【００５０】
リング発振器２ａは、直列接続された奇数個の反転増幅器６１と、各反転増幅器６１の電源経路に接続される奇数個の電流増幅回路６２と、最終段の反転増幅器６１の出力端子に接続されるテスト選択回路６３とを有する。
【００５１】
リング発振器２ａ内の各反転増幅器６１は、PMOSトランジスタ６４とNMOSトランジスタ６５とを有する。各反転増幅器６１に対応して設けられる電流増幅回路６２は、NMOSトランジスタ６６とPMOSトランジスタ６７を有する。NMOSトランジスタ６６のドレインとゲートはともに不安定電源線ＶDD1に接続され、NMOSトランジスタ６６のソースは対応する反転増幅器６１内のPMOSトランジスタ６４のソースに接続されている。PMOSトランジスタ６７のドレインは不安定電源線ＶSS1に接続され、PMOSトランジスタ６７のゲートとソースはともに対応する反転増幅器６１内のNMOSトランジスタ６５のソースに接続されている。
【００５２】
不安定電源線ＶDD1，ＶSS1はペアになっている。以下、これら電源線を不安定電源線対と呼ぶ。不安定電源線対ＶDD1，ＶSS1は、電圧変動が大きい、すなわちダイナミックIRドロップの大きい電圧源６８に接続される。ここでいうダイナミックIRドロップとは、チップ内のある場所で電位が時間的に変動することを指し、電源ノイズと呼ばれることもある。この電圧源６８の詳細については後述する。
【００５３】
リング発振器２ａ内のテスト選択回路６３は、リング発振器２ａの出力信号とテスト信号との論理和演算を行った結果を出力する。テスト選択回路６３の出力信号は、初段の反転増幅器６１の入力端子にフィードバックされる。
【００５４】
このテスト選択回路６３は、必須の構成ではないが、テスト時にリング発振器２ａの動作を強制的に停止する動作を行うため、無駄な消費電力を削減できる。
【００５５】
第１のフリップフロップ４のクロック端子には、基準クロック信号ＣＫ１が供給される。第１の実施形態では、第１のフリップフロップ４のクロック端子に遅延基準クロック信号ＣＫ１を供給したが、本実施形態の基準クロック信号ＣＫ１は予め決められた位相のクロック信号でよい。
【００５６】
第１のフリップフロップ４の出力信号は乱数であるが、「０」と「１」の出現頻度に偏りがある。このため、第１のＥｘＯＲ回路５により、第１のフリップフロップ４の出力信号と線形帰還レジスタ９の出力信号との排他的論理和を演算する。これにより、第１のＥｘＯＲ回路５からは、「０」と「１」の出現頻度の偏りが抑制された真性乱数が出力される。
【００５７】
第１のフリップフロップ４から出力された真性乱数は、線形帰還レジスタ９に入力される。線形帰還レジスタ９は、この乱数をシードとしてランダムシリアルデータを生成する。
【００５８】
線形帰還レジスタ９で生成されたランダムシリアルデータは、直並列変換器１０に入力されるとともに、第１のＥｘＯＲ回路５にも入力される。直並列変換器１０は、ランダムシリアルデータをランダムパラレルデータに変換する。
【００５９】
次に、不安定電源線対ＶDD1，ＶSS1に接続されるダイナミックIRドロップの大きい電圧源６８について説明する。ダイナミックIRドロップは、トランジスタスイッチが頻繁にオン・オフする場所で特に大きくなる。本発明者による実験によれば、ダイナミックIRドロップは、チップ内のデータバス等の内部バスや暗号処理を行うブロックで特に大きいことがわかった。したがって、内部バスの電源線や暗号処理を行うブロックの電源線を上述した電圧源６８として用いれば、不安定電源線対ＶDD1，ＶSS1を他の一般の電源線に接続するよりも、電源変動を大きくすることができる。
【００６０】
ここで、他の一般の電源線とは、不安定電源線対ＶDD1，ＶSS1を自動配置配線する場合に、特に接続先を指定しないことを指す。この場合、リング発振器２ａの電源線とその周辺回路の電源線とが共有されるため、不安定電源線対ＶDD1，ＶSS1の電位変動幅はそれほど大きくならない。
【００６１】
リング発振器２ａ内の電流増幅回路６２は、不安定電源線対ＶDD1，ＶSS1の電位変動量を増幅する作用を行う。例えば、不安定電源線ＶDD1の電位が降下した場合、リング発振器２ａ内のNMOSトランジスタの駆動電圧が低下するため、同トランジスタのスイッチング速度が低下し、リング発振器２ａの発振周波数は低くなる。
【００６２】
逆に、不安定電源線ＶDD1の電位が高くなると、リング発振器２ａ内のNMOSトランジスタの駆動電圧が高くなるため、スイッチング速度が上昇し、リング発振器２ａの発振周波数は高くなる。
【００６３】
このように、リング発振器２ａの発振信号におけるジッタ成分は、電位や温度に応じて大きく変動し、発振信号の周波数や位相が変動する。その位相変動量は、基準クロック信号ＣＫ１の周期の数十〜数百倍である。リング発振器２ａの発振信号の位相が変動すると、その発振信号をラッチする第１のフリップフロップ４の出力振幅も変化し、第１のフリップフロップ４の出力データのランダム性が増す。
【００６４】
従来の乱数発生回路は、上述したジッタ成分が小さかったために、線形帰還レジスタ９を使用したとしても、線形帰還レジスタ９にランダム性の高いシードを与えることはなかった。
【００６５】
例えば、図１に示す第１のフリップフロップ４がリング発振器２ａの発振信号を基準クロック信号ＣＫ０でラッチしたと仮定すると、第１のフリップフロップ４はある周期性をもったデータを出力する。このような周期性のあるデータは、リング発振器２ａの発振周波数が基準クロック信号の倍数になった場合に生成される。これは、「ロック」と呼ばれる現象であり、生成されるシードがある周期をもった値を持つことになる。
【００６６】
この場合、線形帰還レジスタ９に周期性を持ったシードが与えられることになり、線形帰還レジスタ９はランダム性が高くて質のよい乱数を生成できなくなる。すなわち、この場合、線形帰還レジスタ９は、ある周期性をもった乱数を出力するため、衝突の可能性が高くてランダム性の低い乱数を生成できなくなる。しかも、線形帰還レジスタ９で生成される乱数は、環境条件等によってランダム性が変化するため、安定して質の高い乱数とはいえない。
【００６７】
これに対して、本実施形態によれば、線形帰還レジスタ９に供給されるシード自体のランダム性が高いため、環境条件によらず、常に衝突確率が十分に低くてランダム性の高い乱数を生成することができる。
【００６８】
図１のリング発振器２ａは、本発明者の実験によると、ゲート長0.18μmのCMOSテクノロジーを利用した場合、約2.5GHzで発振したが、リング発振器２ａ内の負荷容量や温度に応じて発振周波数は大きく変化した。したがって、積極的に電源電圧変動成分を大きくすることで、乱数の質を向上できることが実験により確かめられた。
【００６９】
図７（ａ）−７（ｅ）は図６の各部の動作タイミング図である。図７（ａ）はリング発振器２ａの出力波形、図７（ｂ）は基準クロック信号の信号波形、図７（ｃ）は第１のフリップフロップ４の出力波形をそれぞれ示している。また、図７（ｄ）は図７（ｃ）と同じ第１のフリップフロップ４の出力波形を示しているが、図７（ｃ）よりも長い時間間隔の信号波形を示している。図７（ｅ）は線形帰還レジスタ９の出力波形を示しており、図７（ｄ）と同じ時間間隔を取っている。
【００７０】
リング発振器２ａの発振信号は、基準クロック信号よりもはるかに周波数が高く、かつ両信号は互いに非同期であるため、発振信号のランダム性が高ければ、その発振信号をラッチする第１のフリップフロップ４は擬似乱数信号を生成することができる。
【００７１】
図７（ｄ）を見ればわかるように、第１のフリップフロップ４の出力波形には「０」と「１」の出現頻度に偏りがあるが、図２（ｅ）に示すように線形帰還レジスタ９の出力波形ではその偏りが抑制されている。
【００７２】
図８はある平均的な回路内の電源電圧変動の概念図である。図示のように、ダイナミックな最大電圧降下は、スタティックな電圧降下よりも数倍大きい。
【００７３】
一方、図９は不安定電源線に接続された回路内の電源電圧変動の概念図である。図９における単位時間内の電源電圧の変動量は、図８の数倍から数十倍大きくなる。
【００７４】
上述した実施形態では、不安定電源線対ＶDD1，ＶSS1に接続される電圧源６８をデータバス内の電源線とする例を説明したが、電圧源６８の種類は特に問わない。例えば、チップ内の電源変動の大きい回路ブロックの電源線を電圧源６８として利用してもよい。チップ内の電源変動の大きい回路ブロックは、シミュレーションや消費電力解析ツール等を用いて検出することができる。
【００７５】
あるいは、外部接続される電源装置を電圧源６８として用いてもよい。電源装置から不安定な電源供給を受ける場合、図６の不安定電源線ＶDD1に接続される外部接続端子と不安定電源線ＶSS1に接続される外部接続端子を設けておき、これら端子に電源装置を接続して不安定な電源を供給すればよい。
【００７６】
最近の電源装置は、電源変動の少ない安定した直流電圧を出力する場合が多いため、本実施形態で用いる電源装置としては、電源変動の大きい不安定な電圧を出力する古い電源装置を用いるのが望ましい。特に、定格容量の低い電源装置を用いれば、チップ内の電力消費の変動に電源電圧が追いついていけないため、さらに望ましい。
【００７７】
このように、第２の実施形態では、リング発振器２ａの電源経路に不安定電源線対ＶDD1，ＶSS1を接続するため、リング発振器２ａの発振信号の周波数や位相がランダムに変動し、この発振信号をラッチする第１のフリップフロップ４の出力もランダムに変化する。したがって、線形帰還レジスタ９にてランダム性が高くて質のよい乱数を生成できる。
【００７８】
（第３の実施形態）
第３の実施形態は、第２の実施形態の変形例であり、リング発振器２ａの代わりにリング発振型ＶＣＯを設けるものである。
【００７９】
図１０は本発明の第３の実施形態で用いるリング発振型ＶＣＯ２ｂの内部構成を示す回路図である。このリング発振型ＶＣＯ２ｂは、図６のリング発振器２ａの代わりに用いられ、乱数発生回路内のその他の構成は図６と同様であるため、図１０では省略している。
【００８０】
図１０のリング発振型ＶＣＯ２ｂは、リング状に接続された奇数個の反転増幅器６１と、奇数個の反転増幅器６１それぞれの駆動能力を電圧制御する奇数個の電圧制御回路６９とを備えている。
【００８１】
リング発振器２ａ内の各反転増幅器６１は、PMOSトランジスタ６４とNMOSトランジスタ６５とを有する。各反転増幅器６１に対応して設けられる電圧制御回路６９は、PMOSトランジスタ７０とNMOSトランジスタ７１を有する。PMOSトランジスタ７０のソースは不安定電源線ＶDD1に接続され、ゲートは不安定電源線ＶSS2に接続され、ドレインは反転増幅器６１内のPMOSトランジスタ６４のソースに接続されている。NMOSトランジスタ７１のドレインはNMOSトランジスタ６５のソースに接続され、NMOSトランジスタの７１のゲートは不安定電源線ＶDD2に接続され、ソースは不安定電源線ＶSS1に接続されている。
【００８２】
このように、図１０のリング発振型ＶＣＯ２ｂには、二組の不安定電源線対（ＶDD1，ＶSS1）、（ＶDD2，ＶSS2）が接続されている。これら二組の不安定電源線対は、互いに無関係に電源変動を起こすため、リング発振型ＶＣＯ２ｂの発振信号の周波数と位相はよりランダムに変動する。したがって、この発振信号を用いて生成される乱数の質もより向上する。
【００８３】
二組の不安定電源線対を生成する電圧源６８は、第２の実施形態と同様に、内部バスの電源線でもよいし、外部接続の電源装置でもよいし、それ以外でもよい。
【００８４】
図１０では、最終段の反転増幅器６１の出力信号を初段の反転増幅器６１の入力端子にフィードバックしているが、図６と同様に、最終段の反転増幅器６１の出力信号をテスト選択回路６３を介して初段の反転増幅器６１の入力端子にフィードバックしてもよい。
【００８５】
このように、第３の実施形態では、２組の不安定電源線対にてリング発振型ＶＣＯ２ｂに電源供給を行うため、リング発振型ＶＣＯ２ｂの発振信号の周波数と位相がよりランダムに変動し、結果として、線形帰還レジスタ９で生成される乱数のランダム性も増して質の高い乱数が得られる。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施形態に係る乱数発生回路の概略構成を示すブロック図。
【図２】図２は図１の各部の動作タイミング図。
【図３】図３は遅延制御回路３の具体的構成の一例を示す回路図。
【図４】図４は図１に示したリング発振器２の具体的構成の一例を示す回路図。
【図５】図５はリング発振器２の一変形例を示す回路図。
【図６】図６は本発明の第２の実施形態による乱数発生回路の概略構成を示すブロック図。
【図７】図７（ａ）−図７（ｅ）は図６の各部の動作タイミングを示す図。
【図８】図８はある平均的な回路内の電源電圧変動の概念図。
【図９】図９は不安定電源線に接続された回路内の電源電圧変動の概念図。
【図１０】図１０は本発明の第３の実施形態で用いるリング発振型ＶＣＯ２ｂの内部構成を示す回路図。
【符号の説明】
【００８７】
２  リング発振器
３  遅延制御回路
４  第１のフリップフロップ
５  第１のExOR回路
６  遅延回路
７  第２のフリップフロップ
８  第２のExOR回路
９  線形帰還レジスタ
１０  直並列変換器
１２  遅延回路
２１  微小遅延量設定部
２２  大遅延量設定部
２３  第１の遅延量可変部
２６  第２の遅延量可変部
【図１】
2006294001.tif 000003
【図２】
2006294001.tif 000004
【図３】
2006294001.tif 000005
【図４】
2006294001.tif 000006
【図５】
2006294001.tif 000007
【図６】
2006294001.tif 000008
【図７】
2006294001.tif 000009
【図８】
2006294001.tif 000010
【図９】
2006294001.tif 000011
【図１０】
2006294001.tif 000012