JP2009294873A - 乱数発生装置 - Google Patents

乱数発生装置 Download PDF

Info

Publication number
JP2009294873A
JP2009294873A JP2008147277A JP2008147277A JP2009294873A JP 2009294873 A JP2009294873 A JP 2009294873A JP 2008147277 A JP2008147277 A JP 2008147277A JP 2008147277 A JP2008147277 A JP 2008147277A JP 2009294873 A JP2009294873 A JP 2009294873A
Authority
JP
Japan
Prior art keywords
counter
value
sequence
clock
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008147277A
Other languages
English (en)
Inventor
Motoyoshi Nagai
元芳 永井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008147277A priority Critical patent/JP2009294873A/ja
Publication of JP2009294873A publication Critical patent/JP2009294873A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ランダム性を確保しつつ省電力化を図ることができる乱数発生装置を提供すること。
【解決手段】乱数発生装置100は、電源投入後に最初に起動された場合には、カウンタ130の値を保持し、それ以外の時には停止指示のあったときのM系列カウンタ120の値を保持するレジスタ150を備え、M系列カウンタ120は、レジスタ150出力値を初期値としてその値から計数を行い、M系列カウンタ120を必要なときだけ動作させる。
【選択図】図1

Description

本発明は、不規則な数字の列で構成される乱数を発生する乱数発生装置に関する。
情報通信処理の各局面においては、乱数、すなわち無作為に選ばれた全く不規則で偏りのない数字の列がしばしば利用される。例えば、データの暗号化や電子認証を行う際などに、各数値の間に相関性がなく、第三者が予測しにくい乱数を使用する。また、各種の自然現象や経済現象などのシミュレーションを行う場合その他、人為的でない自然で一様な一塊の数字を必要とする場合にも、乱数が用いられる。また、映像シーンの切り替えなどを行う映像処理装置においては、ランダムな色配列の連続画像を生成するために、乱数を適用することもある。さらに、画像処理において、量子化雑音によるモアレを目立ちにくくするために、入力されたCMYK 4色の画像データに対して、意図的にノイズを加算することが行われる。
物理現象を利用する自然乱数(真正乱数)発生方法は、一様性(乱数の確率値及び出現率に差異が生じないこと)を有し、かつ乱数出現の規則性や前後の相関性、周期性などを有しない高性能な乱数発生装置が可能となる。しかし、物理現象によるランダムパルスを利用した乱数発生装置では、ランダムパルス発生源、信号増幅器、波形整形回路、一様性適正化回路などのアナログ要素が多く含まれるため、回路規模が大きくかつ複雑になってしまう。また、熱雑音を利用したものは外部ノイズなどの影響を受けやすいため動作の安定性に欠ける。さらに、放射線を利用したものは環境への影響が懸念される。
また、数学的な方法は、ハードウェアの構成は容易になるものの、通常の方法では、同じようにアクセスすれば同じ値が出力され、とても乱数といえるものにはならない。
一般的な乱数発生装置は、カウンタと、あらかじめ乱数テーブルを格納したROMと、フリップ・フロップとを備え、カウンタは、クロック信号の入力に応答して逐次インクリメントされるカウント値を出力し、ROMは入力されたカウント値に該当するテーブル・エントリの乱数を出力し、フリップ・フロップは、クロック信号に同期して乱数を外部出力する。ROMに格納される乱数テーブルは、例えばM系列(maximal-period sequence)乱数など各種の乱数発生方式等を用いて作成される。乱数は、数字の列が不規則すなわち統計的精度で偏りがない一様性が充分保たれていることが好ましい。また、乱数は、再び同じ数字の列が繰り返されるようになるまでの周期が長いことが好ましいとされている。例えば、8ビットのM系列カウンタは、1ビットのシフト・レジスタを8個と、原始多項式に基づく演算を行うための排他的論理和装置(XOR)とで構成される。M系列乱数によって生成される8ビットの擬似乱数の周期は、理論上、28−1=255となる。
特許文献1には、乱数値生成回路にアクセスして値を読み出すためのアクセス権を調停する非同期アービタ回路を備え、乱数値を読み出す際には、予め定められた非同期アービタ回路に対して予め定められた順序に従ってアクセス権を要求し、非同期アービタ回路から要求した全てのアクセス権を得たときに、上記乱数値生成回路から読み出した値を乱数値とする乱数生成器が開示されている。
また、特許文献2には、クロックパルスとは非同期のパルスを出力する発振器と、複数ビットの計数長を有し前記発振器の出力パルスを計数する複数のカウンタと、読出し信号供給時に前記カウンタの内容を乱数として取出す乱数発生装置が開示されている。特許文献2に記載の乱数発生装置では、読み出しを行うCPUとは非同期のクロックで動作するカウンタを使用している。非同期のクロックを用いることで、CPUの読み出しサイクルとカウンタの動作サイクルは同じにはならず、予測不可能な値が出力されることとなる。
特開2003−122559号公報 特開平2−242327号公報
しかしながら、このような従来の乱数発生装置にあっては、非同期のクロックでカウンタを常に動作させておいて、CPUが読み出す構造となっているので、ランダム性を確保するためには、カウンタを停止することができない。このため、消費電力が問題となる。
また、普通にカウントアップしていくだけなので、もしも同じような周期で読み出した場合に、同じような値が加算されていくだけで、乱数が出力されてくるとは言えない状況が考えられる。
本発明は、かかる点に鑑みてなされたものであり、ランダム性を確保しつつ省電力化を図ることができる乱数発生装置を提供することを目的とする。
本発明の乱数発生装置は、M系列を生成するM系列カウンタと、前記M系列カウンタのカウント期間を計数するカウンタと、前記M系列カウンタ及び前記カウンタを起動する起動手段と、前記起動に同期して前記M系列カウンタに第1のクロックに同期したクロックを供給し、停止によって前記クロックの供給を遮断するクロック制御手段と、前記M系列カウンタの停止時の値を保持する保持手段とを備え、前記M系列カウンタは、前記起動手段によって起動され、前記カウンタのカウントアップにより動作を停止し、前記保持手段の出力値を初期値としてその値から計数を行い、前記保持手段は、電源投入後に最初に起動された場合には、前記カウンタの値を保持し、それ以外の時には停止指示のあったときの前記M系列カウンタの値を保持し、前記カウンタは、前記起動手段によって起動され、前記第1のクロックとは非同期の第2のクロックに同期して動作し、カウントアップにより前記M系列カウンタを停止させる構成を採る。
本発明によれば、M系列カウンタの値を保持しその値から計数を行うことにより、乱数必要とするときだけM系列カウンタを動作させることができ、ランダム性を確保しつつ省電力化を図ることができる。
以下、本発明の実施の形態について図面を参照して詳細に説明する。
(実施の形態1)
図1は、本発明の実施の形態1の乱数発生装置の構成を示すブロック図である。本実施の形態の乱数発生装置は、情報通信処理機能を搭載する通信機器に適用可能である。
図1において、乱数発生装置100は、CPU110、M系列カウンタ120、カウンタ130、クロック制御部140、レジスタ150、及びセレクタ160を備えて構成される。
CPU110は、乱数発生の起動を行い、停止後に値を読み出す。CPU110は、M系列カウンタ120及びカウンタ130を起動する起動手段としての機能を有する。
M系列カウンタ120は、CPU110の起動によって動作し、カウンタ130のカウントアップによって動作を停止する。M系列カウンタ120は、レジスタ150出力値を初期値としてその値から計数を行い、乱数値をセレクタ160及びレジスタ150を介してCPU110に返す。M系列カウンタ120は、例えば32ビット幅の場合、0000_0000を除いて0000_0001からffff_ffffまでのすべてのビットパターンを出力する。
カウンタ130は、M系列カウンタ120と同じCPU110によって起動され、M系列カウンタ120のカウント期間を計数する。カウンタ130は、第1のクロックCLK1とは非同期の第2のクロックCLK2に同期して動作する。カウンタ130は、M系列カウンタ120からセレクタ160及びレジスタ150を介して出力される乱数値によってカウント値が変化(カウント期間が変動)する。カウンタ130は、カウントアップによりM系列カウンタ120を停止させる。
クロック制御部140は、起動に同期してM系列カウンタ120に第1のクロックに同期したクロックを供給し、停止によってクロックの供給を遮断する。すなわち、クロック制御部140は、起動から停止までの期間は、M系列カウンタ120にクロックを供給し、停止期間にはクロックを停止する。
レジスタ150は、セレクタ160を経由して入力されたM系列カウンタ120の停止時の値を保持する。レジスタ150は、電源投入後の最初の起動時には、カウンタ130の出力値でM系列カウンタ120に初期値として取り込まれる値をセットする。すなわち、レジスタ150は、電源投入後に最初に起動された場合には、カウンタ130の値を保持し、それ以外の時には停止指示のあったときのM系列カウンタ120の値を保持する。レジスタ150は、カウンタ130の出力値を保持し、M系列カウンタ120に対して初期値として出力する。レジスタ150は、保持したM系列カウンタ120の乱数値をCPU110に出力する。
セレクタ160は、電源投入後の状態では、カウンタ130の出力値を選択し、それ以外はM系列カウンタ120の値を選択してレジスタ150に出力する。
以下、上述のように構成された乱数発生装置の動作について説明する。まず、乱数発生装置100の全体動作を述べる。
CPU110は、第1のクロックCLK1に同期して動作している。M系列カウンタ120も第1のクロックCLK1に同期して動作する。
カウンタ130は、第1のクロックCLK1とは非同期の第2のクロックCLK2で動作する。
M系列カウンタ120の動作開始は、CPU110によって行われる。
レジスタ150は、M系列カウンタ120に初期値をセット(図1a.参照)してからカウンタ130の動作を開始させる(図1d.参照)。
セレクタ160は、電源投入後の最初の起動時点では、カウンタ130の値を出力している。その後の起動では、M系列カウンタ120の値を出力する。
M系列カウンタ120は、最初はカウンタ130の値を初期値としてカウントを行い、その後は、生成した乱数を初期値として用いてカウントを行うこととなる。
カウンタ130は、通常の動作状態では、CPU110からの起動によって動作を開始し(図1b.参照)、カウントアップによって動作を停止する(図1c.参照)。カウンタ130は、電源投入後の初期状態だけは、CPU110から乱数計数の起動要求(図1b.参照)があるまで動作を続けている。CPU110から起動要求があったタイミングでカウンタ130の値がM系列カウンタ120の初期値としてM系列カウンタ120にセットされる(図1a.参照)。
カウンタ130は、レジスタ150の値によって、カウント値を変化させる(図1d.参照)。乱数として出力されるすべてのビット幅を使用するわけではない。この場合、レジスタ150の値に依存する期間、カウンタ130が動作してカウントアップすることになる。このカウントアップが、M系列カウンタ120の停止の指示となる(図1e.参照)。
M系列カウンタ120が停止した時点の値が乱数データとしてCPU110に取り込まれる。具体的には、M系列カウンタ120が停止した時点の値(乱数データ)が、セレクタ160を介してレジスタ150に保持され(図1f.参照)、レジスタ150に保持した乱数データがCPU110に取り込まれる(図1g.参照)。また、レジスタ150に保持された乱数データは、次の起動の時にM系列カウンタ120の初期値として利用される。
クロック制御部140は、CPU110による起動からM系列カウンタ120にクロックを供給し、カウンタ130のカウントアップで停止した後は、クロックの供給を止めて消費電力の低減を図る。
次に、乱数発生装置100の詳細な動作を説明する。
図2は、乱数発生装置100のノーマル動作時の制御を示すシーケンス図である。
(1)
CPU110は、乱数部を構成するM系列カウンタ120に対して起動信号を送出する。具体的には、メモリ空間にレジスタ(図示せず)が配置されていて、CPU110はそのレジスタのビットをオンする。レジスタのビットが起動信号となる。
(2)
この起動信号によって、クロック制御部140(図1)のクロックのイネーブル信号がオンしてクロック制御部140(図1)からクロックがM系列カウンタ120に出力される。
(3)
レジスタ150に保持されている前の計数の出力値がM系列カウンタ120にロードされる。
(4)
M系列カウンタ120に初期値がロードされた後にカウント期間を計数するカウンタ130とM系列カウンタ120がそれぞれのクロックに同期してカウント動作を開始する。
(5)
レジスタ150に保持されている前の出力値に基づいてカウンタ130のカウント値が決定される。
(6)
カウンタ130の値がレジスタ150に設定されたカウント値に達したときに停止信号がオンする。
(7)
この停止信号によって、M系列カウンタ120の値がレジスタ150にセットされる。M系列カウンタ120及びカウンタ130は、カウント動作を停止する。
(8)
その後、クロックのイネーブル信号がオフしてM系列カウンタ120に対するクロックの供給が停止する。
(9)
また、CPU110に対して、計数終了を通知する。具体的には、ステータスレジスタ(図示せず)のビットをオンすると共に、割り込み信号によりCPU110に通知する。
図3は、乱数発生装置100のイニシャル時の制御を示すシーケンス図である。
(1)
カウント期間を計数するカウンタ130は、図2に示す通常のシーケンスではCPU110からの起動信号がオンしたときに動作を開始する。しかし、電源投入後の最初の状態では、リセット解除後に動作を開始して動き続けている。
(2)
カウンタ130は、CPU110及びM系列カウンタ120が動作する第1のクロックCLK1とは非同期の第2のクロックCLK2で動作している。
(3)
CPU110が乱数部を構成するM系列カウンタ120に対して起動信号を送出する。
具体的には、メモリ空間にレジスタ(図示せず)が配置されていて、CPU110はそのレジスタのビットをオンする。レジスタのビットが起動信号となる。
(4)
CPU110の起動信号によって、カウンタ130は動作を停止するとともに、値をレジスタ150にロードする。
(5)
レジスタ150にロードされた段階で、動作を続けていたカウンタ130は、一旦リセットされる。
(6)
この後の動作は、図2のノーマルシーケンスと同じ動作をする。
(7)
起動信号によって、クロックのイネーブル信号がオンしてクロックがM系列カウンタ120に出力される。
(8)
レジスタ150に保持された値がM系列カウンタ120にロードされる。
(9)
M系列カウンタ120に初期値がロードされた後にカウンタ130とM系列カウンタ120がそれぞれのクロックに同期してカウント動作を開始する。
(10)
以下は、図2のノーマルシーケンスと同様であるため説明を省略する。
次に、タイミングチャートを参照してM系列カウンタ120の動作を説明する。
図4は、ノーマル時のM系列カウンタ120の動作を示すタイミングチャート、図5は、イニシャル時のM系列カウンタ120の動作を示すタイミングチャートである。
図4に示すように、CPU110は、第1のクロックCLK1に同期して動作している。CPU110からクロック制御部140に起動信号を送出する(a.参照)。
この起動信号によって、クロック制御部140のクロックのイネーブル信号(クロックイネーブル)がオンし(b.参照)、クロック制御部140から初期値ロードタイミング(c.参照)でクロックがM系列カウンタ120に出力される(c.参照)。
このクロックを受けてレジスタ150に保持されている前の計数の出力値がM系列カウンタ120にロードされる(d.参照)。また、このクロックを受けてM系列カウントイネーブルがオンし(e.参照)、このM系列カウントイネーブルによりM系列カウンタ120のカウントが開始される(f.参照)。M系列カウンタ120も第1のクロックCLK1に同期して動作することになる。
[M系列カウンタ120の動作例]
32bitのM系列カウンタ120の動作を例に採る。
初期値として、ef54_3ef2が与えられ、その後、カウント動作を開始している。
ef54_3ef2(初期値)
dea8_7de4
bd50_fbc8
7aa1_f791
f543_ef22
ea87_de44
.....
図4のタイミングチャートには示されていないが、初期値の所定の部分を用いて、計数期間を決定する。例えば、下位8bitを用いるとすると、16進数「f2」は、10進「242」となるので、242カウントしたところで停止する。
一方、図4c.のクロックを受けてカウンタ130カウントイネーブルがオンし(g.参照)、このカウントイネーブルによりカウンタ130のカウントが開始される(h.参照)。カウンタ130は、第1のクロックCLK1とは非同期の第2のクロックCLK2で動作する。
これにより、M系列カウンタ120に初期値がロードされた後にカウント期間を計数するカウンタ130とM系列カウンタ120がそれぞれのクロックに同期してカウント動作を開始する。
レジスタ150に保持されている前の出力値に基づいてカウンタ130のカウント値が決定される(i.参照)。
カウンタ130内部では、レジスタ150に設定されたカウント値とカウンタ130の値が一致すると一致信号を生成する(j.参照)。一致信号によりカウンタ130カウントイネーブルがオフし(k.参照)、このカウントイネーブルのオフによりカウンタ130のカウントは停止する。
また、カウンタ130内部では、図4j.の一致信号を第1のクロックCLK1に同期化し(同期化1:l.参照)、さらに同期化1後の一致信号の立下りで停止信号を生成する(同期化2:m.参照)。
図4m.の停止信号によりM系列カウントイネーブルがオフし(n.参照)、このM系列カウントイネーブルによりM系列カウンタ120のカウントが停止する。そして、図4m.の停止信号によって、M系列カウンタ120の値がレジスタ150にロードされる(o.参照)。M系列カウンタ120及びカウンタ130は、カウント動作を停止する。
また、カウンタ130は、図4m.の停止信号の立下りでCPU110に対するカウント終了通知を生成し(p.参照)、適当なタイミングでCPU110に対して、計数終了を通知する。例えば、ステータスレジスタ(図示せず)のビットをオンすると共に、割り込み信号によりCPU110に通知する。
その後、停止信号によって、起動信号をオフする(q.参照)。また、停止信号によって、クロックイネーブルをオフする(r.参照)。クロックイネーブルがオフしてM系列カウンタ120に対するクロックの供給が停止する。
図5のタイミングチャートにおいて、カウンタ130は、リセット解除後すぐにカウント動作を行う(a.参照)リセットを受けてカウンタ130カウントイネーブルがオンし、このカウントイネーブルによりカウンタ130のカウントが開始される(b.参照)。カウンタ130は、第1のクロックCLK1とは非同期の第2のクロックCLK2で動作する。
CPU110の起動信号によって、カウンタ130は動作を停止し(c.参照)、停止したときのカウンタ130のカウンタ値をレジスタ150にロードする(d.参照)。
この起動信号によって、クロック制御部140のクロックのクロックイネーブルがオンすると同時に(e.参照)、初期値ロードタイミングがオンする(f.参照)。1クロック後の初期値ロードタイミングの立下りでカウンタ130リセット信号を生成する(g.参照)。起動信号によりカウント停止したときのカウンタ値がレジスタ150に確実にロードされた段階で、動作を続けていたカウンタ130は、一旦リセットされることになる。
このカウンリセットを受けてM系列カウントイネーブルがオンし(h.参照)、このM系列カウントイネーブルによりM系列カウンタ120のカウントが開始される(i.参照)。すなわち、M系列カウンタ120は、初期値ロード後にカウントを開始する。
また、初期値ロードタイミングから作成されたカウンタ130リセット(j.参照)でレジスタ150の値がM系列カウンタ120にロードされる(k.参照)。
その後、このロードのタイミングでカウンタ130カウントイネーブルがオンし(l.参照)、このカウントイネーブルによりカウンタ130のカウントが再開される(m.参照)。
以上詳細に説明したように、本実施の形態によれば、乱数発生装置100は、電源投入後に最初に起動された場合には、カウンタ130の値を保持し、それ以外の時には停止指示のあったときのM系列カウンタ120の値を保持するレジスタ150を備え、M系列カウンタ120は、レジスタ150出力値を初期値としてその値から計数を行うので、M系列カウンタ120を必要なときだけ動作させることができ、省電力化を図ることができる。すなわち、M系列カウンタ120は、ランダム性を確保した上で、動作が要求されたときだけ動作するので省電力に貢献するこができる。
また、電源投入後は、非同期のクロックで動作しているカウンタ130の値を初期値として使用することで、値が固定することがなくまた、値の予測が困難である。また、カウンタ130の動作の起動から停止までの期間(カウント期間)は、M系列カウンタ120の乱数値を使用して変更するので、M系列カウンタ120の停止もランダムとなり、より一層予測が困難となる。
さらに、電源投入後の最初の初期値は、非同期クロックで動作するカウンタの値を使用し、それ以外は、M系列カウンタ120の出力値を保持しておいて、次のカウントの初期値として使用する。必要なときだけ動作して、かつ停止したときの値からカウントを開始することで、M系列カウンタ120が一周するためにかなりの時間を要することになる。これにより、同一の値を出力しにくい効果が得られる。
(実施の形態2)
図6は、本発明の実施の形態2の乱数発生装置のM系列カウンタの構成を示す図である。本実施の形態の乱数発生装置のM系列カウンタは、図1のM系列カウンタ120に代えて適用される。
図6において、M系列カウンタ200は、レジスタ210と、デコーダ220と、複数のクロックゲート230−1,230−2,…,230−nと、複数のM系列カウンタ240−1,240−2,…,240−nと、セレクタ250とを備えて構成される。
レジスタ210は、M系列カウンタ240−1,240−2,…,240−nの値を保持する。
デコーダ220は、M系列カウンタ240−1,240−2,…,240−nのうち該当するM系列カウンタを動作させるため、所定ビットのデータの一部をデコードして選択信号を生成する。例えば、デコーダ220は、2ビットの選択信号から該当するM系列カウンタのクロックゲートをオンするための4本の信号を生成する。
クロックゲート230−1,230−2,…,230−nは、動作するM系列カウンタ240−1,240−2,…,240−nにだけクロックCLKを供給する。
複数のM系列カウンタ240−1,240−2,…,240−nは、それぞれ別の生成多項式に基づいてM系列を生成する。
セレクタ250は、値を出力するM系列カウンタ240−1,240−2,…,240−nのいずれか一つを選択する。この選択のための信号は、レジスタ210に保持されている乱数値の一部が使用される。例えば、4個のM系列カウンタ240−1,240−2,…,240−4を選択する場合は2ビットが使用され、8個のM系列カウンタ240−1,240−2,…,240−8を選択する場合は3ビットが使用される。
なお、煩雑となるので、図6には記載していないが、図1の場合と同様に、M系列カウンタ240−1,240−2,…,240−nは、起動された時にレジスタ210に値を初期値として、計数を開始する。
デコーダ220は、例えば2ビットの選択信号から該当するM系列カウンタのクロックゲートをオンするための4本の信号を生成する。
次に、M系列カウンタ200を有する乱数発生装置の動作を説明する。基本動作は、図1に記載の乱数発生装置100と同様であるため説明を省略する。
図1に記載の乱数発生装置100と同じように、CPUなどから乱数発生の動作が起動される。
M系列カウンタ200は、M系列カウンタを複数有し、レジスタ210の値によって、動作するM系列カウンタ240−1,240−2,…,240−nを選択する。
これによって、生成される乱数列は、複数のM系列カウンタ240−1,240−2,…,240−nから選択されたものとなり、かつ、以前の乱数を初期値としてカウントし、乱数に基づいたカウント期間によって停止するため、より一層予測困難な値が出力される。
また、M系列カウンタ200は、複数のM系列カウンタ240−1,240−2,…,240−nを備えているものの、動作に与るM系列カウンタは1個だけであるため消費電力が増加することはない。
以上の説明は本発明の好適な実施の形態の例証であり、本発明の範囲はこれに限定されることはない。例えば、本実施の形態の乱数発生装置は、乱数発生装置として情報通信処理機能を搭載する通信機器に適用可能であるが、情報通信装置に限らず画像処理装置など一様性のある擬似乱数を必要とする様々な装置に適用可能である。
また、本実施の形態では乱数発生装置という名称を用いたが、これは説明の便宜上であり、乱数生成装置、乱数発生方法等であってもよいことは勿論である。
さらに、上記乱数発生装置を構成する各回路部、例えばレジスタ等の種類、数及び接続方法などは前述した実施の形態に限られない。
本発明に係る乱数発生装置は、乱数発生装置として情報通信処理機能を搭載する通信機器、一様性のある擬似乱数を必要とする画像処理装置など一様性のある擬似乱数を必要とする様々な装置として有用である。特に、省電力化が要求される携帯電話機などの乱数発生装置、携帯用電子機器の用途に有用である。
本発明の実施の形態1の乱数発生装置の構成を示すブロック図 上記実施の形態1に係る乱数発生装置のノーマル動作時の制御を示すシーケンス図 上記実施の形態1に係る乱数発生装置のイニシャル時の制御を示すシーケンス図 上記実施の形態1に係る乱数発生装置のノーマル時のM系列カウンタの動作を示すタイミングチャート 上記実施の形態1に係る乱数発生装置のイニシャル時のM系列カウンタの動作を示すタイミングチャート 本発明の実施の形態2の乱数発生装置のM系列カウンタの構成を示す図
符号の説明
100 乱数発生装置
110 CPU
120,200,240 M系列カウンタ
130 カウンタ
140 クロック制御部
150,210 レジスタ
160,250 セレクタ
230 クロックゲート

Claims (3)

  1. M系列を生成するM系列カウンタと、
    前記M系列カウンタのカウント期間を計数するカウンタと、
    前記M系列カウンタ及び前記カウンタを起動する起動手段と、
    前記起動に同期して前記M系列カウンタに第1のクロックに同期したクロックを供給し、停止によって前記クロックの供給を遮断するクロック制御手段と、
    前記M系列カウンタの停止時の値を保持する保持手段とを備え、
    前記M系列カウンタは、前記起動手段によって起動され、前記カウンタのカウントアップにより動作を停止し、前記保持手段の出力値を初期値としてその値から計数を行い、
    前記保持手段は、電源投入後に最初に起動された場合には、前記カウンタの値を保持し、それ以外の時には停止指示のあったときの前記M系列カウンタの値を保持し、
    前記カウンタは、前記起動手段によって起動され、前記第1のクロックとは非同期の第2のクロックに同期して動作し、カウントアップにより前記M系列カウンタを停止させる乱数発生装置。
  2. 前記カウンタは、前記M系列カウンタから出力される乱数値により前記カウント期間を変更する請求項1記載の乱数発生装置。
  3. 前記M系列カウンタを複数有し、
    前記保持手段に保持された値に基づいて、前記複数のM系列カウンタから一つを選択して出力するセレクタを備え、
    前記クロック制御手段は、選択されたM系列カウンタに前記クロックを供給する請求項1記載の乱数発生装置。
JP2008147277A 2008-06-04 2008-06-04 乱数発生装置 Pending JP2009294873A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008147277A JP2009294873A (ja) 2008-06-04 2008-06-04 乱数発生装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008147277A JP2009294873A (ja) 2008-06-04 2008-06-04 乱数発生装置

Publications (1)

Publication Number Publication Date
JP2009294873A true JP2009294873A (ja) 2009-12-17

Family

ID=41543012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008147277A Pending JP2009294873A (ja) 2008-06-04 2008-06-04 乱数発生装置

Country Status (1)

Country Link
JP (1) JP2009294873A (ja)

Similar Documents

Publication Publication Date Title
JP4248950B2 (ja) 乱数発生装置
US7376687B2 (en) Pseudo-random number generator
EP0855642B1 (en) Pseudorandom number generation circuit with clock selection
JP3022439B2 (ja) 擬似乱数発生方法および装置
KR101987141B1 (ko) 난수 발생기
US8166086B2 (en) Method and circuit for generating random numbers, and computer program product therefor
JP2003501736A (ja) ロバストな乱数発生器
CN111694545A (zh) 随机数产生器
US7945608B2 (en) Method and apparatus for generating an initial value for a pseudo-random number generator
EP1518164B1 (en) Method and apparatus for generating a random number using meta-stable latches
JP6776346B2 (ja) ランダムクロック発生器
US20060156187A1 (en) Method and apparatus for multiple polynomial-based random number generation
US20080201395A1 (en) Method and apparatus for distributing random elements
TWI579763B (zh) 具有亂數產生模式的儲存電路
JP5171420B2 (ja) 擬似乱数生成装置
CN1914847B (zh) 使用数字逻辑产生随机数的装置和方法
JP2009294873A (ja) 乱数発生装置
JPH08181679A (ja) 疑似乱数雑音発生装置
JP5119417B2 (ja) 擬似乱数生成装置
JP4335561B2 (ja) 半導体集積回路装置
JP2001142682A (ja) 乱数発生装置及び乱数発生方法
JP2009053906A (ja) 乱数発生装置
JP2005066127A (ja) 遊技機用の乱数発生装置
RU2191421C1 (ru) Генератор последовательности случайных чисел
JP6386904B2 (ja) 乱数生成装置及び乱数生成方法