(57)【特許請求の範囲】
【請求項１】
第１の周波数を有する第１の信号の値を前記第１の周波数より低い第２の周波数を有する第２の信号を用いて検出し、検出された第１の信号の値に基づいて乱数を発生させる乱数発生回路であって、
前記第１の信号及び／又は前記第２の信号は、熱雑音により揺らぐ信号であり、
前記第１及び第２の信号を受け、前記第２の信号に応じて前記第１の信号の第１のタイミングを検出する第１の検出手段と、
前記第１及び第２の信号を受け、前記第２の信号に応じて前記第１のタイミングと異なる前記第１の信号の第２のタイミングを検出する第２の検出手段と、
前記第１及び第２の検出手段により検出された第１及び第２のタイミングのうちメタステーブルが発生していない検出手段により検出されたタイミングに応じて乱数の値を決定する乱数決定手段とを備えることを特徴とする乱数発生回路。
【請求項２】
前記第１の信号は、前記第１の周波数を有する第１の矩形波を含み、
前記第２の信号は、前記第２の周波数を有する第２の矩形波を含み、
前記第１の検出手段は、前記第２の矩形波が第１のレベルから第２のレベルへ遷移するサンプリングタイミング以降において前記第１の矩形波が第３のレベルから第４のレベルへ遷移する第１の遷移タイミングを検出し、
前記第２の検出手段は、前記サンプリングタイミング以降において前記第１の矩形波が前記第４のレベルから前記第３のレベルへ遷移する第２の遷移タイミングを検出し、
前記乱数決定手段は、前記第１及び第２の検出手段の出力のうち先に入力された出力を用いて自身の出力を決定するインターロック回路を含むことを特徴とする請求項１記載の乱数発生回路。
【請求項３】
前記第１の検出手段は、
前記第１及び第２の矩形波が入力される第１のＭｕｌｌｅｒＣゲートと、
前記第１の矩形波の反転信号及び前記第１のＭｕｌｌｅｒＣゲートの出力が入力される第２のＭｕｌｌｅｒＣゲートとを含み、
前記第２の検出手段は、
前記第１の矩形波の反転信号及び前記第２の矩形波が入力される第３のＭｕｌｌｅｒＣゲートと、
前記第１の矩形波及び前記第３のＭｕｌｌｅｒＣゲートの出力が入力される第４のＭｕｌｌｅｒＣゲートとを含むことを特徴とする請求項２記載の乱数発生回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、第１の周波数を有する第１の信号の値を第１の周波数より低い第２の周波数を有する第２の信号を用いて検出し、検出された第１の信号の値に基づいて乱数を発生させる乱数発生回路に関するものである。
【０００２】
【従来の技術】
近年、遺伝病や成人病等の遺伝子レベルでの診断および治療等を目的として、世界的に大規模なゲノムの塩基配列解析が行われている。ここで、ゲノムとは、生命活動を行う上で必要なすべての遺伝子を持った１組の染色体であり、人の場合、２組の染色体を有しており、２つのゲノムを持っている。１つのゲノムは、約３０億個の塩基対からなり、１つの細胞内にある約６０億個の塩基対の総延長距離は、約１．８ｍであり、そのＤＮＡ（デオキシリボ核酸）が人の細胞約６０億個のすべてに存在する。
【０００３】
上記のように非常に多くのＤＮＡを解析して膨大なゲノムデータを統合および分類し、機能的に関連のある遺伝子群からなる遺伝子ネットワークを解析する作業を実際に行ったのでは、あまりにも長時間を要し、現実的ではないため、遺伝子ネットワーク等を化学反応シミュレーションにより解析することが考えられる。
【０００４】
このような化学反応シミュレーションを行うため、例えば、モンテカルロシミュレーションを用いて化学反応の反応速度等を乱数によって表現することが考えられるが、シミュレーションを正確且つ高速に行うためには、この乱数がより完全な乱数であるとともに、短時間に且つ確実に発生される必要がある。
【０００５】
一方、より完全な乱数を短時間に発生させる乱数発生方法としては、例えば、図４に示すように、周波数の高い第１の方形波Ｆの値を第１の方形波Ｆより周波数の低い第２の方形波Ｓの立ち上がりタイミングでラッチ（サンプリング）することが考えられる。具体的には、ＤフリップフロップのＤ入力端子に第１の方形波Ｆを入力するとともに、クロック入力端子に第２の方形波Ｓを入力する。このとき、図４中に破線の両矢印で示すように、第１の方形波Ｆ及び第２の方形波Ｓの少なくとも一方が熱雑音等により揺らげば、より完全な乱数を短時間に発生させることができる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記のＤフリップフロップを用いた乱数発生回路では、第１の方形波Ｆ及び第２の方形波Ｓの信号変化が近い場合、すなわち第２の方形波Ｓを基準にしてＤフリップフロップのセットアップ時間及びホールド時間内に第１の方形波Ｆの値が変化した場合、出力信号が不安定となるメタステーブルが発生する。メタステーブルが発生した場合、出力信号が安定するまでの時間は、第１の方形波Ｆ及び第２の方形波Ｓの信号変化の近さに依存するとともに、確率的に変化するため、乱数を確実に発生させることができない。
【０００７】
本発明の目的は、より完全な乱数を短時間に且つ確実に発生させることができる乱数発生回路を提供することである。
【０００８】
【課題を解決するための手段および発明の効果】
（１）第１の発明
第１の発明に係る乱数発生回路は、第１の周波数を有する第１の信号の値を第１の周波数より低い第２の周波数を有する第２の信号を用いて検出し、検出された第１の信号の値に基づいて乱数を発生させる乱数発生回路であって、第１の信号及び／又は第２の信号は、熱雑音により揺らぐ信号であり、第１及び第２の信号を受け、第２の信号に応じて第１の信号の第１のタイミングを検出する第１の検出手段と、第１及び第２の信号を受け、第２の信号に応じて第１のタイミングと異なる第１の信号の第２のタイミングを検出する第２の検出手段と、第１及び第２の検出手段により検出された第１及び第２のタイミングのうちメタステーブルが発生していない検出手段により検出されたタイミングに応じて乱数の値を決定する乱数決定手段とを備えるものである。
【０００９】
本発明に係る乱数発生回路においては、第１の検出手段により第２の信号に応じて第１の信号の第１のタイミングが検出され、第２の検出手段により第２の信号に応じて第１のタイミングと異なる第１の信号の第２のタイミングが検出され、検出された第１及び第２のタイミングのうちメタステーブルが発生していない検出手段により検出されたタイミングに応じて乱数の値が決定される。
【００１０】
このように、第１及び第２の検出手段の検出タイミングが異なるので、メタステーブルが発生する検出手段を第１及び第２の検出手段のうちの一方に限定することができ、検出タイミングが異なる２系統の検出手段を競争させてメタステーブルが発生していない検出手段により検出されたタイミングに応じて乱数を発生させることができる。この結果、メタステーブルの影響を受けることなく、乱数を発生させることができるので、より完全な乱数を短時間に且つ確実に発生させることができる。
【００１１】
（２）第２の発明
第２の発明に係る乱数発生回路は、第１の発明に係る乱数発生回路の構成において、第１の信号は、第１の周波数を有する第１の矩形波を含み、第２の信号は、第２の周波数を有する第２の矩形波を含み、第１の検出手段は、第２の矩形波が第１のレベルから第２のレベルへ遷移するサンプリングタイミング以降において第１の矩形波が第３のレベルから第４のレベルへ遷移する第１の遷移タイミングを検出し、第２の検出手段は、サンプリングタイミング以降において第１の矩形波が第４のレベルから第３のレベルへ遷移する第２の遷移タイミングを検出し、乱数決定手段は、第１及び第２の検出手段の出力のうち先に入力された出力を用いて自身の出力を決定するインターロック回路を含む。
【００１２】
この場合、第２の矩形波が第１のレベルから第２のレベルへ遷移するサンプリングタイミング以降において第１の矩形波が第３のレベルから第４のレベルへ遷移する第１の遷移タイミングが第１の検出手段により検出され、上記のサンプリングタイミング以降において第１の矩形波が第４のレベルから第３のレベルへ遷移する第２の遷移タイミングが第２の検出手段により検出され、インターロック回路により第１及び第２の検出手段の出力のうち先に入力された出力に応じて乱数が決定される。
【００１３】
このように、第１及び第２の検出手段の検出タイミングとなる第１及び第２の遷移タイミングが異なるので、メタステーブルが発生する検出手段を第１及び第２の検出手段のうちの一方に限定することができるとともに、インターロック回路により第１及び第２の検出手段の出力のうち先に入力された出力に応じて乱数が決定されるので、メタステーブルが発生していない検出手段の検出タイミングに応じて乱数を発生させることができる。
【００１４】
（３）第３の発明
第３の発明に係る乱数発生回路は、第２の発明に係る乱数発生回路の構成において、第１の検出手段は、第１及び第２の矩形波が入力される第１のＭｕｌｌｅｒＣゲートと、第１の矩形波の反転信号及び第１のＭｕｌｌｅｒＣゲートの出力が入力される第２のＭｕｌｌｅｒＣゲートとを含み、第２の検出手段は、第１の矩形波の反転信号及び第２の矩形波が入力される第３のＭｕｌｌｅｒＣゲートと、第１の矩形波及び第３のＭｕｌｌｅｒＣゲートの出力が入力される第４のＭｕｌｌｅｒＣゲートとを含む。
【００１５】
この場合、第１及び第２のＭｕｌｌｅｒＣゲートにより第２の矩形波が第１のレベルから第２のレベルへ遷移するサンプリングタイミング以降において第１の矩形波が第３のレベルから第４のレベルへ遷移する第１の遷移タイミングを検出することができるとともに、第３及び第４のＭｕｌｌｅｒＣゲートにより上記のサンプリングタイミング以降において第１の矩形波が第４のレベルから第３のレベルへ遷移する第２の遷移タイミングを検出することができるので、簡略な回路構成でより完全な乱数を短時間に且つ確実に発生させることができる。
【００１６】
【発明の実施の形態】
以下、本発明の一実施の形態による乱数発生回路について図面を参照しながら説明する。図１は、本発明の一実施の形態による乱数発生回路の構成を示す回路図である。
【００１７】
図１において、乱数発生回路は、Ｍｕｌｌｅｒ（ミューラー）Ｃゲート（ＭｕｌｌｅｒのＣ要素、以下「Ｃゲート」と称す）１〜４及びＮＡＮＤゲート５，６を備える。ここで、Ｃゲート１〜４となるＭｕｌｌｅｒのＣ要素について詳細に説明する。
【００１８】
図２は、ＭｕｌｌｅｒのＣ要素を説明するための論理回路記号、等価回路及び真理値表を示す図である。ＭｕｌｌｅｒのＣ要素は、図２の（ａ）に示す論理回路記号により表され、待合せ回路、合流回路又は最終入力応答回路ともいわれ、双安定素子であり、ヒステリシス現象と同様の動作を行う。
【００１９】
また、図２の（ａ）に示すＭｕｌｌｅｒのＣ要素は、図２の（ｂ）に示すように、３入力の多数決論理回路の出力Ｑを１つの入力に戻した形となり、両入力Ｉ１，Ｉ２の値が揃うのを待つ自己同期機能を有し、真理値表は図２の（ｃ）に示すようになる。すなわち、すべての入力Ｉ１，Ｉ２が１になった後だけ出力Ｑが１となり、すべての入力Ｉ１，Ｉ２が０になった後だけ出力Ｑが０となり、入力Ｉ１，Ｉ２の一方が０で他方が１の場合、出力Ｑは出力Ｑの直前の値Ｑ’となる。なお、Ｃゲート１〜４は、論理回路を組み合わせて構成してもよいし、ＦＰＧＡ（Field Programmable Gate Array）のＬＵＴ（Look Up Table）等を用いて実現してもよい。
【００２０】
再び、図１を参照して、第１の方形波Ｆは周波数の高い矩形波であり、第２の方形波Ｓは第１の方形波Ｆより周波数の低い矩形波であり、第１の方形波Ｆ及び／又は第２の方形波Ｓは熱雑音等により揺らぐ信号である。Ｃゲート１には第１の方形波Ｆ及び第２の方形波Ｓが入力され、Ｃゲート２には第１の方形波Ｆの反転信号及びＣゲート１の出力信号が入力され、Ｃゲート１，２により第２の方形波Ｓの立上がり時点（０→１）以降における第１の方形波Ｆの立下がり時点（１→０）が検出される。
【００２１】
一方、Ｃゲート３には第２の方形波Ｓ及び第１の方形波Ｆの反転信号が入力され、Ｃゲート４には第１の方形波Ｆ及びＣゲート３の出力信号が入力され、Ｃゲート３，４により第２の方形波Ｓの立上がり時点以降における第１の方形波Ｆの立上がり時点が検出される。
【００２２】
ＮＡＮＤゲート５の一方の入力にはＣゲート２の出力が入力され、他方の入力にはＮＡＮＤゲート６の出力が入力され、ＮＡＮＤゲート６の一方の入力にはＣゲート４の出力が入力され、他方の入力にはＮＡＮＤゲート５の出力が入力される。したがって、ＮＡＮＤゲート５，６によりＲＳフリップフロップが構成され、第２の方形波Ｓの立上がり時点で第１の方形波Ｆの値が１のときにＮＡＮＤゲート５の出力は０となり、逆に、第２の方形波Ｓの立上がり時点で第１の方形波Ｆの値が０のときにＮＡＮＤゲート６の出力は０となる。なお、Ｃゲート１〜４による第１の方形波Ｆの立下がり及び立上がり時点の検出前はＮＡＮＤゲート５，６ともに１を出力する。
【００２３】
本実施の形態では、Ｃゲート１，２が第１の検出手段に相当し、Ｃゲート３，４が第２の検出手段に相当し、ＮＡＮＤゲート５，６が乱数決定手段及びインターロック回路に相当する。
【００２４】
図３は、図１に示す乱数発生回路の動作を説明するためのタイミングチャートである。なお、図３では、説明を容易にするために各ゲート１〜６の信号遅延を無視している。
【００２５】
まず、第２の方形波Ｓが０（Ｌレベル）から１（Ｈレベル）へ立上がるＲ１点において第１の方形波Ｆが０になっている場合について説明する。図３に示すように、第２の方形波Ｓが立上がるＲ１点において第１の方形波Ｆが０になっている場合、Ｃゲート３の出力はＲ１点における第２の方形波Ｓの立上がりに応答して０から１へ立上がる。次に、第１の方形波Ｆ及びＣゲート３の出力がＣゲート４に入力され、Ｃゲート４の出力はＡ１点における第１の方形波Ｆの立上がりに応答して０から１へ立上がる。このようにカスケード接続されたＣゲート３，４に入力される第１の方形波Ｆを１段毎に反転させることにより、Ｒ１点以降における第１の方形波Ｆの立上がりタイミングすなわちＡ１点を検出することができる。
【００２６】
一方、第２の方形波Ｓが立上がるＲ１点において第１の方形波Ｆが０になっている場合、Ｃゲート１の出力はＡ１点における第１の方形波Ｆの立上がりに応答して０から１へ立上がる。次に、第１の方形波Ｆの反転信号及びＣゲート１の出力がＣゲート２に入力され、Ｃゲート２の出力はＢ１点における第１の方形波Ｆの立下がりに応答して０から１へ立上がる。このようにカスケード接続されたＣゲート１，２に入力される第１の方形波Ｆを１段毎に反転させることにより、Ｒ１点以降における第１の方形波Ｆの立下がりタイミングすなわちＢ１点を検出することができる。
【００２７】
ここで、ＮＡＮＤゲート６の一方の入力にＣゲート４の出力が入力されているので、ＮＡＮＤゲート６の出力がＡ１点におけるＣゲート４の出力の立上がりに応答して１から０へ立下がる。このとき、ＮＡＮＤゲート５の出力は変化せず、また、ＮＡＮＤゲート５，６はＣゲート２の出力の立上がりに応答せず、ＮＡＮＤゲート５，６の出力は変化しない。
【００２８】
次に、Ｃ１点において第１の方形波Ｆ及び第２の方形波Ｓが１から０へ立下がると、Ｃゲート１の出力は１から０へ立下がり、Ｃゲート２，３の出力もＤ１点において１から０に立下がる。このとき、ＮＡＮＤゲート５，６はＣゲート２の出力の立下がりに応答せず、ＮＡＮＤゲート５，６の出力は変化しない。
【００２９】
次に、Ｅ１点において第１の方形波Ｆが１から０へ立下がると、Ｃゲート４の出力が１から０へ立下がり、ＮＡＮＤゲート６の出力がＣゲート４の出力の立上がりに応答して０から１へ立上がる。このとき、ＮＡＮＤゲート５の出力は変化しない。
【００３０】
上記の動作により、第２の方形波Ｓの立上がり時点で第１の方形波Ｆの値が０の場合にＮＡＮＤゲート５は１を出力し、ＮＡＮＤゲート６は０を出力する。
【００３１】
次に、第２の方形波Ｓが０から１へ立上がるＲ２点において第１の方形波Ｆが１になっている場合について説明する。図３に示すように、第２の方形波Ｓが立上がるＲ２点において第１の方形波Ｆが１になっている場合、Ｃゲート１の出力はＲ２点における第２の方形波Ｓの立上がりに応答して０から１へ立上がる。次に、第１の方形波Ｆの反転信号及びＣゲート１の出力がＣゲート２に入力され、Ｃゲート２の出力はＢ２点における第１の方形波Ｆの立下がりに応答して０から１へ立上がり、カスケード接続されたＣゲート１，２によりＲ２点以降における第１の方形波Ｆの立下がりタイミングすなわちＢ２点を検出することができる。
【００３２】
一方、第２の方形波Ｓが立上がるＲ２点において第１の方形波Ｆが１になっている場合、Ｃゲート３の出力はＢ２点における第２の方形波Ｓの立下がりに応答して０から１へ立上がる。次に、第１の方形波Ｆ及びＣゲート３の出力がＣゲート４に入力され、Ｃゲート４の出力はＡ２点における第１の方形波Ｆの立上がりに応答して０から１へ立上がり、カスケード接続されたＣゲート３，４によりＲ２点以降における第１の方形波Ｆの立上がりタイミングすなわちＡ２点を検出することができる。
【００３３】
ここで、ＮＡＮＤゲート５の一方の入力にＣゲート２の出力が入力されているので、ＮＡＮＤゲート５の出力がＢ２点におけるＣゲート２の出力の立上がりに応答して０から１へ立上がる。このとき、ＮＡＮＤゲート６の出力は変化せず、また、ＮＡＮＤゲート５，６はＣゲート４の出力の立上がりに応答せず、ＮＡＮＤゲート５，６の出力は変化しない。このように、第２の方形波Ｓの立上がり時点で第１の方形波Ｆの値が１のときにＮＡＮＤゲート５は０を出力し、ＮＡＮＤゲート６は１を出力する。
【００３４】
上記の動作により、サンプリングタイミングとなる第２の方形波Ｓの立上がり時点における第１の方形波Ｆの値に応じてＮＡＮＤゲート５，６が０又は１を出力することができるので、この出力を乱数として用いることができる。
【００３５】
このとき、Ｃゲート１，２とＣゲート３，４とでは動作タイミングが異なるので、例えば、初段のＣゲート１にメタステーブルが発生した場合でも、Ｃゲート３，４はメタステーブルを免れることができ、逆に、初段のＣゲート３にメタステーブルが発生した場合でも、Ｃゲート１，２はメタステーブルを免れることができる。また、２段目のＣゲート２とＣゲート４とでゲートが開くタイミングが確実にずれているので、メタステーブルの影響を受けることなく、ハードウエアを用いて乱数を発生させることができ、より完全な乱数を短時間に且つ確実に発生させることができる。
【００３６】
なお、本発明による乱数発生回路の具体的構成は、上記の例に特に限定されず、種々の変更が可能であり、例えば、カスケード接続されたＣゲートの最終段（例えば、図１では、Ｃゲート２，４）をＡＮＤゲート等に置き換えてもよく、インターロック回路も、上記のＲＳフリップフロップに特に限定されず、他のインターロック回路を用いてもよい。また、カスケード接続されるＣゲートの段数も、上記の２段に特に限定されず、３段以上にしてもよく、この場合、より後ろの信号変化を検出することができる。
【００３７】
また、本発明による乱数発生回路は、生化学反応等の化学反応シミュレーションに好適に用いることができるが、この例に特に限定されず、乱数を用いる他の用途のシミュレーション又はシミュレーション以外の用途にも用いることができ、同様の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態による乱数発生回路の構成を示す回路図である。
【図２】ＭｕｌｌｅｒのＣ要素を説明するための論理回路記号、等価回路及び真理値表を示す図である。
【図３】図１に示す乱数発生回路の動作を説明するためのタイミングチャートである。
【図４】従来の乱数発生方法を説明するためのタイミングチャートである。
【符号の説明】
１〜４  ＭｕｌｌｅｒＣゲート
５，６  ＮＡＮＤゲート
【図１】
0003697203.tif 000002
【図２】
0003697203.tif 000003
【図３】
0003697203.tif 000004
【図４】
0003697203.tif 000005