(57)【特許請求の範囲】
【請求項１】
奇数段のインバータからなる段数固定型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数Ｓ1 のサンプリングクロックでラッチする第１の前段Ｄ−ＦＦと、
周波数Ｓ1 のサンプリングクロックで入力信号をラッチする第２の前段Ｄ−ＦＦと、
前記第２の前段Ｄ−ＦＦのラッチ出力と、前記第１の前段Ｄ−ＦＦの出力との排他的論理和をとる２入力ＸＯＲと、
セレクタ制御信号により、前記サンプリングクロックのＭ回（Ｍは２以上の整数）に１回の頻度で前記第１の前段Ｄ−ＦＦの出力を選択し、前記サンプリングクロックの（Ｍ−１）回は前記２入力ＸＯＲの出力を選択し、前記第２の前段Ｄ−ＦＦに入力するセレクタと、
前記周波数Ｓ1 のサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）の出力用クロックで前段第２のＤ−ＦＦの出力をラッチし、乱数値として出力する後段Ｄ−ＦＦと、
前記周波数Ｓ1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項２】
動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、
前記リングオシレータの中間ノードの出力を周波数Ｓ1 のサンプリングクロックでラッチする第１の前段Ｄ−ＦＦと、
周波数Ｓ1 のサンプリングクロックで入力信号をラッチする第２の前段Ｄ−ＦＦと、
前記第２の前段Ｄ−ＦＦのラッチ出力と、前記第１の前段Ｄ−ＦＦの出力との排他的論理和をとる２入力ＸＯＲと、
セレクタ制御信号により、前記サンプリングクロックのＭ回（Ｍは２以上の整数）に１回の頻度で前記第１の前段Ｄ−ＦＦの出力を選択し、前記サンプリングクロックの（Ｍ−１）回は前記２入力ＸＯＲの出力を選択し、前記第２の前段Ｄ−ＦＦに入力するセレクタと、
前記周波数Ｓ1 のサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）の出力用クロックで前段第２のＤ−ＦＦの出力をラッチし、乱数値として出力する後段Ｄ−ＦＦと、
前記周波数Ｓ1 のサンプリングクロック、前記セレクタ制御信号、前記出力用クロックを生成し、前記サンプリングクロックの１周期内で前記段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつ前記サンプリングクロックのタイミングで前記段数可変型のリングオシレータを長周期に設定する前記動作モード切替制御信号を生成する制御部と
を備えたことを特徴とする乱数生成回路。
【請求項３】
請求項１または請求項２に記載の乱数生成回路において、
前記制御部は、前記出力用クロックを所定回数カウントしたタイミングで前記後段Ｄ−ＦＦから出力される乱数値を有効とする乱数有効表示信号を出力する構成である
ことを特徴とする乱数生成回路。
【請求項４】
請求項２に記載の乱数生成回路において、
前記動作モード切替制御信号は、偶数段のインバータゲートを介して前記リングオシレータに入力する構成である
ことを特徴とする乱数生成回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、０，１の発生頻度の偏りが少なくランダム性を備えた予測不可能な真性乱数をディジタル論理ゲート回路のみで生成する乱数生成回路に関する。
【背景技術】
【０００２】
暗号技術をベースとするセキュリティ分野においては、乱数の生成が重要な役割を果たしている。チャレンジレスポンス認証や鍵共有など暗号技術において利用される乱数の条件として、予測不可能であることがあげられる。乱数の予測不可能性を根拠とする暗号技術への適用においては、自然界に存在する揺らぎ現象のようなランダム性を備えた物理現象を利用して乱数を生成する真性乱数生成回路が重要な役割を果たす。
【０００３】
非特許文献１に示す従来のリングオシレータ型真性乱数生成回路では、図１０に示すように、出力乱数のランダム性を高める目的から自己発振動作するリングオシレータを複数数個用意し、これら並列に動作するリングオシレータの中間ノード値のＸＯＲ（排他的論理和）を取り、その出力をＤ−ＦＦ（Ｄ型フリップフロップ）でラッチし、乱数値として出力する。しかし、この回路は、特許文献１に示したように、複数のリングオシレータを必要とするためゲート規模および消費電力が大きい、という問題があった。
【０００４】
乱数の品質検定プログラムとしてよく知られているＮＩＳＴ  ＳＰ８００−２２検定においては、乱数系列における０，１の発生頻度の偏り検定は最も重要な検定項目とされている。このため、小さなゲート規模で発生頻度の課題を回避すべく、特許文献１に示す乱数生成回路が提案された。特許文献１の乱数生成回路では、１クロックの周期内でリングオシレータの発振周期が短い周期から長い周期に段階的に切り替わるように動作する。クロック周期内の前半の短い発振周期の動作でランダム性を獲得し、クロック周期内の後半の長い発振周期においてＤ−ＦＦによりサンプリングを行い、ハイ, ローのラッチ確率の偏りを回避する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１７８４６号公報
【非特許文献】
【０００６】
【非特許文献１】Sunar B., Martin W., Stinson D.,”A provably secure true random number generator with built-in tolerance to active attacks”, IEEE Trans. Computers 56(1), pp.109-119 (2007)
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ランダム性を高める目的で多数のリングオシレータのＸＯＲを取る非特許文献１の乱数生成回路では、ＸＯＲ出力が激しく状態遷移を繰り返すことになるため、Ｄ−ＦＦによるサンプリング時にＸＯＲ出力信号がハイでもローでもない過渡的な電位状態となりやすい。そのため、Ｄ−ＦＦがＸＯＲ出力信号をハイとしてラッチする確率と、ローとしてラッチする確率に偏りが生じやすい。すなわち、乱数系列における０，１の発生頻度の偏りの問題が生じる。
【０００８】
特許文献１に示す乱数生成回路において、生成乱数のランダム性をさらに高める目的でリングオシレータを複数個用意し、各リングオシレータの中間ノード出力のＸＯＲをとり、その出力をＤ−ＦＦによりラッチする回路構成の場合も、やはり非特許文献１の乱数生成回路と同様に、乱数系列における０，１の発生頻度の偏りの問題が生じる。
【０００９】
さらに、ランダム性を高めるためにリングオシレータを複数個並列に用意する構成では、ゲート規模の増加が課題となっていた。
【００１０】
本発明は、小さなゲート規模で０，１の発生頻度の偏りを低減することができる乱数生成回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
第１の発明の乱数生成回路は、奇数段のインバータからなる段数固定型のリングオシレータと、リングオシレータの中間ノードの出力を周波数Ｓ1 のサンプリングクロックでラッチする第１の前段Ｄ−ＦＦと、周波数Ｓ1 のサンプリングクロックで入力信号をラッチする第２の前段Ｄ−ＦＦと、第２の前段Ｄ−ＦＦのラッチ出力と、第１の前段Ｄ−ＦＦの出力との排他的論理和をとる２入力ＸＯＲと、セレクタ制御信号により、サンプリングクロックのＭ回（Ｍは２以上の整数）に１回の頻度で第１の前段Ｄ−ＦＦの出力を選択し、サンプリングクロックの（Ｍ−１）回は２入力ＸＯＲの出力を選択し、第２の前段Ｄ−ＦＦに入力するセレクタと、周波数Ｓ1 のサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）の出力用クロックで前段第２のＤ−ＦＦの出力をラッチし、乱数値として出力する後段Ｄ−ＦＦと、周波数Ｓ1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成する制御部とを備える。
【００１４】
第２の発明の乱数生成回路は、動作モード切替制御信号により奇数段のインバータの段数を切り替え、発振周期の切り替えが可能な段数可変型のリングオシレータと、リングオシレータの中間ノードの出力を周波数Ｓ1 のサンプリングクロックでラッチする第１の前段Ｄ−ＦＦと、周波数Ｓ1 のサンプリングクロックで入力信号をラッチする第２の前段Ｄ−ＦＦと、第２の前段Ｄ−ＦＦのラッチ出力と、第１の前段Ｄ−ＦＦの出力との排他的論理和をとる２入力ＸＯＲと、セレクタ制御信号により、サンプリングクロックのＭ回（Ｍは２以上の整数）に１回の頻度で第１の前段Ｄ−ＦＦの出力を選択し、サンプリングクロックの（Ｍ−１）回は２入力ＸＯＲの出力を選択し、第２の前段Ｄ−ＦＦに入力するセレクタと、周波数Ｓ1 のサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）の出力用クロックで前段第２のＤ−ＦＦの出力をラッチし、乱数値として出力する後段Ｄ−ＦＦと、周波数Ｓ1 のサンプリングクロック、セレクタ制御信号、出力用クロックを生成し、サンプリングクロックの１周期内で段数可変型のリングオシレータの短周期と長周期の発振周期を切り替え、かつサンプリングクロックのタイミングで段数可変型のリングオシレータを長周期に設定する動作モード切替制御信号を生成する制御部とを備える。
【００１６】
第１または第２の発明の乱数生成回路において、制御部は、出力用クロックを所定回数カウントしたタイミングで後段Ｄ−ＦＦから出力される乱数値を有効とする乱数有効表示信号を出力する構成である。
【００１７】
第２の発明の乱数生成回路において、動作モード切替制御信号は、偶数段のインバータゲートを介してリングオシレータに入力する構成である。
【発明の効果】
【００１８】
第１または第２の発明は、段数固定型または段数可変型のリングオシレータを複数備える乱数生成回路において、各リングオシレータの中間ノードの出力を前段Ｄ−ＦＦで一旦ラッチしてから排他的論理和をとり、その出力を後段Ｄ−ＦＦでラッチし、乱数値として出力する構成により、状態遷移中のトランジェントな信号をサンプリングする頻度を低減することができ、０，１の発生頻度の偏りを低減することができる。
【００１９】
また、第３または第４の発明は、単一構成の段数固定型または段数可変型のリングオシレータを用いたシリアル処理型乱数生成回路により、単一のリングオシレータのみで複数のリングオシレータを用いた場合と等価な効果を得ることができる。これにより、小さなゲート規模で複数のリングオシレータの回路構成と同等レベルで高品質の乱数値を出力することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例１の乱数生成回路の構成例を示す図である。
【図２】実施例１における制御部１００の構成例および動作例を示す図である。
【図３】本発明の実施例２の乱数生成回路の構成例を示す図である。
【図４】段数可変型のリングオシレータ２０の構成例を示す図である。
【図５】実施例２における制御部２００の構成例および動作例を示す図である。
【図６】本発明の実施例３の乱数生成回路の構成例を示す図である。
【図７】実施例３における制御部３００の構成例および動作例を示す図である。
【図８】本発明の実施例４の乱数生成回路の構成例を示す図である。
【図９】実施例４における制御部４００の構成例および動作例を示す図である。
【図１０】従来の乱数生成回路の構成例を示す図である。
【発明を実施するための形態】
【実施例１】
【００２１】
図１は、本発明の実施例１の乱数生成回路の構成例を示す。本実施例は、非特許文献１に示す複数の段数固定型（発振周期固定型）のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【００２２】
図１において、Ｌ1 段〜ＬM 段の段数固定型のＭ個（Ｍは２以上の整数）のリングオシレータ１０−１〜１０−Ｍを並列に配置し、各リングオシレータの中間ノード出力を周波数Ｓ1 Hzのサンプリングクロックに同期した前段Ｄ−ＦＦ１１−１〜１１−Ｍでそれぞれラッチする。さらに、前段Ｄ−ＦＦ１１−１〜１１−Ｍの各出力はＭ入力ＸＯＲ（排他的論理和回路）１２に入力され、その出力が後段Ｄ−ＦＦ１３に入力される。後段Ｄ−ＦＦ１３は、前段Ｄ−ＦＦ１１−１〜１１−Ｍと同期したサンプリングクロックにより、Ｍ入力ＸＯＲ１２の出力をラッチし、乱数値として出力する。
【００２３】
段数固定型のリングオシレータ１０−１〜１０−Ｍは、２入力ＮＡＮＤとインバータをリング状に接続した構成であり、２入力ＮＡＮＤに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。すなわち、２入力ＮＡＮＤは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、各リングオシレータが奇数段のインバータをリング状に接続した構成になる。なお、ここでは２入力ＮＡＮＤを用いたが、動作ON/OFF切替信号の位相を反転すれば２入力ＮＯＲでもよい。また、２入力ＮＡＮＤの位置は、必ずしも各リングオシレータの初段である必要はない。また、２入力ＮＡＮＤをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。２入力ＮＡＮＤと動作ON/OFF切替信号を用いることにより、乱数生成が必要ないときはリングオシレータの発振動作を停止し、無駄な電流消費を抑えることができる。
【００２４】
制御部１００は、動作ON/OFF切替信号と周波数Ｓ0 Hzのシステムクロックを入力し、システムクロックを分周して前段Ｄ−ＦＦ１１−１〜１１−Ｍおよび後段Ｄ−ＦＦ１３に与える周波数Ｓ1 のサンプリングクロックおよび乱数有効表示信号を生成する。
【００２５】
図２は、実施例１における制御部１００の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ１０１で周波数Ｓ0 のシステムクロックを４分周して周波数Ｓ1（＝Ｓ0／４）のサンプリングクロックを生成する例を示す。
【００２６】
リングオシレータ１０−１〜１０−Ｍが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部１００でサンプリングクロック数をカウンタ１０１でカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段Ｄ−ＦＦ１３から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ１０１のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、サンプリングクロックの２クロック目（システムクロックの８クロック目）で乱数有効表示信号が有効となる例を示す。
【実施例２】
【００２７】
図３は、本発明の実施例２の乱数生成回路の構成例を示す。本実施例は、特許文献１に示す複数の段数可変型（発振周期可変型）のリングオシレータを乱数生成源とする回路に本発明を適用した例である。
【００２８】
図３において、Ｍ個の段数可変型のリングオシレータ２０−１〜２０−Ｍを並列に配置し、各リングオシレータの中間ノード出力を周波数Ｓ1 Hzのサンプリングクロックに同期した前段Ｄ−ＦＦ１１−１〜１１−Ｍでそれぞれラッチする。さらに、前段Ｄ−ＦＦ１１−１〜１１−Ｍの各出力はＭ入力ＸＯＲ（排他的論理和回路）１２に入力され、その出力が後段Ｄ−ＦＦ１３に入力される。後段Ｄ−ＦＦ１３は、前段Ｄ−ＦＦ１１−１〜１１−Ｍと同期したサンプリングクロックにより、Ｍ入力ＸＯＲ１２の出力をラッチし、乱数値として出力する。
【００２９】
制御部２００は、動作ON/OFF切替信号と周波数Ｓ0 Hzのシステムクロックを入力し、システムクロックを分周して前段Ｄ−ＦＦ１１−１〜１１−Ｍおよび後段Ｄ−ＦＦ１３に与える周波数Ｓ1 のサンプリングクロック、各リングオシレータ２０−１〜２０−Ｍに与える動作モード切替制御信号、および乱数有効表示信号を生成する。
【００３０】
段数可変型のリングオシレータ２０−１〜２０−Ｍは、特許文献１に具体的にいろいろな形態のものが示されているが、例えば図４に示すように、遅延生成部Ａ２１と遅延生成部Ｂ２２をセレクタ２３を介して接続した構成である。遅延生成部Ａ２１は、２入力ＮＡＮＤとインバータをカスケード接続した構成であり、２入力ＮＡＮＤとインバータの総段数を奇数Ｌa 段とする。Ｌa の最小値は１であり、この場合は２入力ＮＡＮＤのみで構成される。遅延生成部Ｂ２２は、インバータをカスケード接続した構成であり、インバータの段数を偶数Ｌb 段とする。Ｌa を比較的小さい値とし、かつＬa ＋Ｌb が比較的大きい値となるように設定する。
【００３１】
動作ON/OFF切替信号は、遅延生成部Ａ２１の２入力ＮＡＮＤの一方の入力にも接続される。遅延生成部Ａ２１の２入力ＮＡＮＤは、動作ON/OFF切替信号がローのときは出力がハイに固定され、動作ON/OFF切替信号がハイに遷移するとインバータとして機能し、遅延生成部Ａ２１が全体として奇数段のインバータになる。なお、ここでは２入力ＮＡＮＤを用いたが、動作ON/OFF切替信号の位相を反転すれば２入力ＮＯＲでもよい。また、２入力ＮＡＮＤの位置は、必ずしも遅延生成部Ａ２１の初段である必要はない。また、２入力ＮＡＮＤをインバータに代え、動作ON/OFF切替信号を用いない構成としてもよい。この場合は、動作ON/OFF切替信号が常にハイになっている状態と等価である。
【００３２】
遅延生成部Ａ２１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力は、セレクタ２３の一方の入力端子（Ｌ）および遅延生成部Ｂ２２の初段のインバータに接続される。遅延生成部Ｂ２２の最終段のインバータの出力は、セレクタ２３の他方の入力端子（Ｈ）に接続される。セレクタ２３は、制御部２００から出力される動作モード切替制御信号により、２つの入力のいずれか一方を選択して遅延生成部Ａ２１の２入力ＮＡＮＤの他方の入力に接続する。ここで、動作ON/OFF切替信号がローからハイに遷移して動作モード切替制御信号がロー（Ｌ）のときに、セレクタ２３は遅延生成部Ａ２１の最終段のインバータ（１段の場合は２入力ＮＡＮＤ）の出力を選択し、遅延生成部Ａ２１の閉ループで形成されるリングオシレータが独立に短周期で発振する動作モードＡとなる。また、動作モード切替制御信号がハイ（Ｈ）のときに、セレクタ２３は遅延生成部Ｂ２２の最終段のインバータの出力を選択し、遅延生成部Ａ２１，Ｂ２２が連結した閉ループで形成されるリングオシレータが長周期で発振する動作モードＢとなる。なお、３段以上の遅延生成部をセレクタを介して接続する構成でも同様である。
【００３３】
図５は、実施例２における制御部２００の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ２０１で周波数Ｓ0 のシステムクロックを４分周して周波数Ｓ1（＝Ｓ0／４）のサンプリングクロックを生成する例を示す。
【００３４】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ２０−１〜２０−Ｍを動作モードＡから動作モードＢに切り替え、かつサンプリングクロックのタイミングで動作モードＢが選択されるように生成される。これにより、段数可変型のリングオシレータ２０−１〜２０−Ｍの発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードＢのときに、その出力が前段Ｄ−ＦＦ１１−１〜１１−Ｍでラッチされる。
【００３５】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図３に示すように偶数段のインバータゲートを介してリングオシレータ２０−１〜２０−Ｍのセレクタ２３に入力するようにしてもよい。
【００３６】
乱数有効表示信号は、実施例１と同様であり、サンプリングクロックの１クロック目の出力は前段Ｄ−ＦＦ１１−１〜１１−Ｍの初期値の排他的論理和となって乱数として適切でないため、２クロック目以降で有効とするように「乱数有効クロック設定値」に応じて設定される。
【実施例３】
【００３７】
図６は、本発明の実施例３の乱数生成回路の構成例を示す。本実施例は、実施例１の回路をシリアル処理化した構成である。
【００３８】
図６において、段数固定型のリングオシレータ１０の中間ノード出力を周波数Ｓ1 Hzのサンプリングクロックに同期した前段Ｄ−ＦＦ１１−１でラッチする。さらに、前段Ｄ−ＦＦ１１−１の出力と２入力ＸＯＲ１４の出力とをセレクタ１５で選択した出力を、周波数Ｓ1 Hzのサンプリングクロックに同期した前段Ｄ−ＦＦ１１−２でラッチする。２入力ＸＯＲ１４は、前段Ｄ−ＦＦ１１−１の出力と前段Ｄ−ＦＦ１１−２の出力とを入力し、排他的論理和出力をセレクタ１５に出力する。さらに、前段Ｄ−ＦＦ１１−２の出力は後段Ｄ−ＦＦ１３に入力される。後段Ｄ−ＦＦ１３は、周波数Ｓ1 HzのサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）Hzの出力用クロックで前段Ｄ−ＦＦ１１−２の出力をラッチし、乱数値として出力する。
【００３９】
段数固定型のリングオシレータ１０は、２入力ＮＡＮＤとインバータをリング状に接続した構成であり、２入力ＮＡＮＤに入力する動作ON/OFF切替信号によりリングオシレータの動作、非動作の切り替えが可能である。
【００４０】
制御部３００は、動作ON/OFF切替信号と周波数Ｓ0 Hzのシステムクロックを入力し、システムクロックを分周して前段Ｄ−ＦＦ１１−１，１１−２に与える周波数Ｓ1 のサンプリングクロック、セレクタ１５に与えるセレクタ制御信号、後段Ｄ−ＦＦ１３に与える出力用クロック、および乱数有効表示信号を生成する。
【００４１】
図７は、実施例３における制御部３００の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ３０１で周波数Ｓ0 のシステムクロックを４分周して周波数Ｓ1（＝Ｓ0／４）のサンプリングクロックを生成する例を示す。
【００４２】
カウンタ３０１で生成されたサンプリングクロックは、前段Ｄ−ＦＦ１１−１，１１−２に与えられるとともにカウンタ３０２に入力される。カウンタ３０２は、動作ON/OFF切替信号がハイのときに、サンプリングクロックからセレクタ制御信号および出力用クロックを生成する。セレクタ１５を制御するセレクタ制御信号は、サンプリングクロックのＭ回に１回の頻度でリングオシレータ１０の出力を選択し、（Ｍ−１）回はリングオシレータ１０の出力と前段Ｄ−ＦＦ１１のラッチ出力（固定値）とのＸＯＲ出力を選択するように設定される。これは、実施例１のＭ個のリングオシレータ１０−１〜１０−Ｍの１サンプリング毎の出力を前段Ｄ−ＦＦ１１−１〜１１−Ｍでラッチし、Ｍ入力ＸＯＲ１２に入力することと等価である。出力用クロックは、周波数Ｓ1 のサンプリングクロックをＭ分周した周波数Ｓ2  (＝Ｓ1 ／Ｍ）のクロックである。後段Ｄ−ＦＦ１３は、この出力用クロックで前段Ｄ−ＦＦ１１−２の出力をラッチし、乱数値として出力する。
【００４３】
このように、周波数Ｓ1 のサンプリングクロックがＭクロック経過すると、実施例１で示したＭ個の段数固定型のリングオシレータ１０−１〜１０−Ｍの中間ノードのＸＯＲ出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例１と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、０，１の発生頻度の偏りを低減することができる。
【００４４】
リングオシレータが自己発振動作の開始直後は、発振のジッタ成分が十分蓄積されておらずランダム性の効果が不十分と考えられるため、制御部３００のカウンタ３０２で出力用クロックをカウントし、カウンタ値がある一定数に達した段階で乱数有効表示信号を有効にすることにより、後段Ｄ−ＦＦ１３から十分なランダム性を備えた乱数値を取得することができる。乱数有効表示信号に用いるカウンタ値は、実験などにより事前に調べて「乱数有効クロック設定値」として保持しておき、カウンタ３０２のカウンタ値がこの設定値に達した時点で乱数有効表示信号を有効とすればよい。ここでは、出力用クロックの２クロック目（サンプリングクロックの８クロック目）で乱数有効表示信号が有効となる例を示す。
【実施例４】
【００４５】
図８は、本発明の実施例４の乱数生成回路の構成例を示す。本実施例は、実施例２の回路をシリアル処理化した構成である。
【００４６】
本実施例の乱数生成回路は、実施例３の段数固定型のリングオシレータ１０を、段数可変型のリングオシレータ２０に置き換える他は、実施例３と同様の構成である。
【００４７】
制御部４００は、動作ON/OFF切替信号と周波数Ｓ0 Hzのシステムクロックを入力し、システムクロックを分周して前段Ｄ−ＦＦ１１−１，１１−２に与える周波数Ｓ1 のサンプリングクロック、段数可変型のリングオシレータ２０に与える動作モード切替制御信号、セレクタ１５に与えるセレクタ制御信号、後段Ｄ−ＦＦ１３に与える周波数Ｓ2 （＝Ｓ1 ／Ｍ）の出力用クロック、および乱数有効表示信号を生成する。
【００４８】
図９は、実施例４における制御部４００の構成例および動作例を示す。ここでは、動作ON/OFF切替信号がハイのときにカウンタ４０１で周波数Ｓ0 のシステムクロックを４分周して周波数Ｓ1（＝Ｓ0／４）のサンプリングクロックを生成する例を示す。
【００４９】
動作モード切替制御信号は、サンプリングクロックの周期内で段数可変型のリングオシレータ２０を動作モードＡから動作モードＢに切り替え、かつサンプリングクロックのタイミングで動作モードＢが選択されるように生成される。これにより、段数可変型のリングオシレータ２０の発振周波数は、サンプリングクロックの周期内で段階的に切り替わり、長周期で発振する動作モードＢのときに、その出力がセレクタ１５を介して、または２入力ＸＯＲ１４およびセレクタ１５を介して前段Ｄ−ＦＦ１１−２でラッチされる。
【００５０】
なお、動作モード切替制御信号は、発振周波数切替のタイミングにジッタ効果によるランダム性をもたらす目的で、図８に示すように偶数段のインバータゲートを介してリングオシレータ２０に入力するようにしてもよい。
【００５１】
カウンタ４０２では、セレクタ制御信号、出力用クロック、乱数有効表示信号が実施例３と同様に生成される。したがって、周波数Ｓ1 のサンプリングクロックがＭクロック経過すると、実施例２で示したＭ個の段数可変型のリングオシレータ２０−１〜２０−Ｍの中間ノードのＸＯＲ出力を得る構成と等価な回路がシリアル回路として実現される。これにより、実施例２と同様に、状態遷移中のトランジェントな信号をサンプリングする頻度が低減し、０，１の発生頻度の偏りを低減することができる。
【符号の説明】
【００５２】
１０  段数固定型のリングオシレータ
１１  前段Ｄ−ＦＦ
１２  Ｍ入力ＸＯＲ（排他的論理和回路）
１３  後段Ｄ−ＦＦ
１４  ２入力ＸＯＲ（排他的論理和回路）
１５  セレクタ
２０  段数可変型のリングオシレータ
２１  遅延生成部Ａ
２２  遅延生成部Ｂ
２３  セレクタ
１００，２００，３００，４００  制御部
１０１，２０１，３０１，３０２，４０１，４０２  カウンタ
【図１】
0005465636.tif 000002
【図２】
0005465636.tif 000003
【図３】
0005465636.tif 000004
【図４】
0005465636.tif 000005
【図５】
0005465636.tif 000006
【図６】
0005465636.tif 000007
【図７】
0005465636.tif 000008
【図８】
0005465636.tif 000009
【図９】
0005465636.tif 000010
【図１０】
0005465636.tif 000011