JPH0467653B2 - - Google Patents
Info
- Publication number
- JPH0467653B2 JPH0467653B2 JP61027951A JP2795186A JPH0467653B2 JP H0467653 B2 JPH0467653 B2 JP H0467653B2 JP 61027951 A JP61027951 A JP 61027951A JP 2795186 A JP2795186 A JP 2795186A JP H0467653 B2 JPH0467653 B2 JP H0467653B2
- Authority
- JP
- Japan
- Prior art keywords
- shift register
- adder
- random number
- number generation
- stage
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims description 20
- 239000000654 additive Substances 0.000 claims 1
- 230000000996 additive effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001747 exhibiting effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Description
【発明の詳細な説明】
〔概要〕
本発明の乱数発生回路は、いわゆるフイボナツ
チ型乱数発生回路と呼ばれるフイードバツクルー
プを有する加算型乱数発生回路において、加算器
をパイプライン構造にし、かつ該加算器にシフト
レジスタとしての機能をも併用させることによ
り、高品質で長周期の一様凝似乱数を、高速に発
生することを可能としている。Detailed Description of the Invention [Summary] The random number generation circuit of the present invention is an addition type random number generation circuit having a feedback loop, so-called a Fibonacci type random number generation circuit, in which an adder has a pipeline structure and the addition By making the device also function as a shift register, it is possible to generate high-quality, long-period, uniformly condensed random numbers at high speed.
〔産業上の利用分野〕
本発明は乱数発生回路、特に例えばデータ処理
装置において、シミユレーシヨンなどを行う場合
に用いられる乱数を、高速に発生する乱数発生回
路に関するものである。[Industrial Field of Application] The present invention relates to a random number generation circuit, and particularly to a random number generation circuit that rapidly generates random numbers used in simulations, etc., in, for example, a data processing device.
従来、一般にデータ処理装置において用いる疑
似乱数は、ソフトウエアによつて発生するように
されていたが、ハードウエア回路によつて、高速
に簡易に発生できるようにすることが考慮されて
いる。
Conventionally, pseudorandom numbers used in data processing devices have generally been generated by software, but consideration has been given to generating them quickly and easily using hardware circuits.
従来の乱数発生方法として、例えば1次合同法
がM系列法が知られている。1次合同法では、
xo=a・xo-1+c mod2m
の演算を施すことにより、乱数xoを順次発生す
る。この方式は、乗算を含むため、通常、専用ハ
ードウエア化は不経済であり、また乱数の周期が
語長mによつて制限され、乱数が高次元の規則性
を示す等の欠点がある。 As conventional random number generation methods, for example, the linear congruence method and the M-sequence method are known. In the linear congruence method, random numbers x o are sequentially generated by performing the calculation x o =a·x o-1 +c mod2 m . Since this method involves multiplication, it is usually uneconomical to use dedicated hardware, and the period of the random numbers is limited by the word length m, and the random numbers exhibit high-dimensional regularity.
また、M系列法では、乱数(整数)の各ビツト
毎に独立に、
bo=a1・bo-1a2・bo-2……aN・bo-N
(・は論料積、は排他的論理和演算を示す)
なる論理演算を施すことにより、順次乱数xoを発
生する。この方法は、乱数の周期を語長と独立
に長く設定できる、ハードウエア化が比較的容
易である、乱数を高速に発生できる、高次元
の規則性を示さないなどの長所を有している。し
かしながら、M系列法による乱数は、局所的な統
計的性質が、必ずしも満足のいくものではないこ
とも指摘されている。なお、M系列法では、通常
の場合、三項原始多項式の理論に基づき、特定の
ap,aNのみを非零とした。 In addition, in the M-sequence method, each bit of a random number (integer) is independently expressed as: b o = a 1・b o-1 a 2・b o-2 ……a N・b oN (・ is a logical product, indicates an exclusive OR operation) Random numbers x o are sequentially generated by performing the logical operation. This method has the advantages of being able to set the random number cycle to be long independently of the word length, being relatively easy to implement in hardware, generating random numbers at high speed, and not exhibiting high-dimensional regularity. . However, it has also been pointed out that the local statistical properties of random numbers obtained by the M-sequence method are not necessarily satisfactory. In addition, in the M-sequence method, based on the theory of ternary primitive polynomials, a specific
Only a p and a N were made non-zero.
bo=bo-pbo-N
の形がハードウエアの簡略化の目的で採用されて
いる。 The form b o = b op b oN is adopted for the purpose of hardware simplification.
上記2方式を、より一般化した高次合同法を用
いる乱数発生方式も知られている。第3図は本発
明が関連する一般的なフイボナツチ型乱数発生回
路の概念図を示している。 A random number generation method using a higher-order congruence method, which is a more general version of the above two methods, is also known. FIG. 3 shows a conceptual diagram of a general Fibonacci random number generation circuit to which the present invention relates.
この方式では乱数発生を、
xo=xo-p+xo-N mod2m
の演算を施すことにより行う。第3図において、
シフトレジスタ20は、ビツト幅がmビツトのN
段のシフトレジスタである。加算器21は、mビ
ツト整数の加算を行う。 In this method, random numbers are generated by performing the calculation x o = x op + x oN mod2 m . In Figure 3,
The shift register 20 has a bit width of m bits.
It is a stage shift register. Adder 21 performs addition of m-bit integers.
シフトレジスタ20への初期値は、最初にマル
チプレクサ22を介して供給され、以後、加算器
21の出力が、シフトレジスタ20へフイードバ
ツクされる。 The initial value to the shift register 20 is first supplied via the multiplexer 22, and thereafter the output of the adder 21 is fed back to the shift register 20.
第3図に示すような高次合同法による乱数発生
方式は、乱数発生の周期が長く(<2m+N)、かる
p,Nを適切に選択することにより、統計的に良
質な乱数発生が可能であるため、ハードウエア化
によるメリツトが大きいと考えられる。しかし、
本方式の理論は既に知られているにもかかわら
ず、実際にソウトウエアで使用された例は少な
く、ハードウエアによる実施例は殆どない。これ
は、加算器21によるmビツト加算演算が、M系
列法に比して、長くかかるために、乱数発生の速
度が、遅くなるからである。
The random number generation method using the high-order congruential method shown in Figure 3 has a long random number generation period (<2 m+N ), and by appropriately selecting p and N, it is possible to generate statistically high-quality random numbers. Since it is possible to do this, it is thought that there are great advantages to implementing it in hardware. but,
Although the theory of this method is already known, there are few examples of its actual use in software, and there are almost no examples of its implementation in hardware. This is because the m-bit addition operation by the adder 21 takes longer than the M-sequence method, which slows down the speed of random number generation.
本発明は上記問題点の解決を図り、加算のみか
らなる高次合同法による高速な乱数発生回路を提
供することを目的とする。 An object of the present invention is to solve the above-mentioned problems and provide a high-speed random number generation circuit using a high-order congruential method consisting only of addition.
第1図は本発明の基本構成図を示す。 FIG. 1 shows a basic configuration diagram of the present invention.
第1図において、10はN−p段の第1シフト
レジスタ、11はパイプライン型mビツト整数加
算器、12は加算器11の出力を第1シフトレジ
スタ10へフイードバツクさせるフイードバツク
形成部、13はp−k段の第2シフトレジスタ、
14は第1シフトレジスタ10に対し初期値を設
定する際に用いられるマルチプレクサ、15は第
1シフトレジスタ10、加算器11およびフイー
ドバツク形成部12等にクロツク信号を供給する
クロツク回路を表す。 In FIG. 1, 10 is an N-p stage first shift register, 11 is a pipeline type m-bit integer adder, 12 is a feedback forming unit that feeds back the output of the adder 11 to the first shift register 10, and 13 is a a second shift register of p-k stages;
Reference numeral 14 represents a multiplexer used to set an initial value for the first shift register 10, and reference numeral 15 represents a clock circuit that supplies clock signals to the first shift register 10, the adder 11, the feedback forming section 12, and the like.
本発明では、
xo=xo-p+xo-N mod2m
の形の乱数発生回路を実現するにあたり、第1図
に示すように、加算器11をk段のパイプライン
構造にし、かつこの加算器11にk段分のシフト
レジスタの役割を分担させている。乱数の取り出
し口は、加算器11の出力部にしているが、もち
ろん第1シフトレジスタ10、第2シフトレジス
タ13等の任意の場所から乱数を取り出すことも
できる。 In the present invention, in order to realize a random number generation circuit of the form x o = x op + x oN mod2 m , the adder 11 has a k-stage pipeline structure as shown in FIG. The roles of shift registers for k stages are shared. Although the random number is taken out from the output part of the adder 11, it is of course possible to take out the random number from any arbitrary place in the first shift register 10, second shift register 13, etc.
動作は以下の通りである。まず、マルチプレク
サ14の入力として、命令のデコード結果等によ
る制御信号により初期値を選択し、N個のクロツ
クパルスにより、N個の初期値を順次取り込む。
これにより、第1シフトレジスタ10、加算器1
1のパイプライン、第2シフトレジスタ13へデ
ータをセツトする。そこで、マルチプレクサ14
をフイードバツク側へ切り換えれば、クロツクパ
ルス毎に、乱数値が順次更新される。 The operation is as follows. First, an initial value is selected as an input to the multiplexer 14 using a control signal based on the decoding result of an instruction, and the N initial values are sequentially taken in by N clock pulses.
As a result, the first shift register 10, the adder 1
1 pipeline, data is set in the second shift register 13. Therefore, multiplexer 14
When switched to the feedback side, the random value is sequentially updated for each clock pulse.
トータル段数Nおよびパラメータpは、数学的
に適当なものを選択すればよいが、特に加算器1
1におけるパイプラインの段数kを、パラメータ
pと同じにすれば、第2シフトレジスタ13は、
実質的に省略できる。 The total number of stages N and the parameter p may be selected as appropriate mathematically, but especially for the adder 1.
If the number of pipeline stages k in 1 is the same as the parameter p, the second shift register 13 is
It can be practically omitted.
本発明によれば、加算器11がパイプライン構
造になつており、かつシフトレジスタの機能をも
併用するようになつているため、クロツク回路1
5が供給するクロツクパルスの周期を、加算の開
始から終了までではなく、各パイプラインのステ
ージにおける処理時間にまで、短縮させることが
できる。また、パイプラインの段数kの分だけ、
シフトレジスタの段数を短くすることができるの
で、そのハードウエア量を削減できる。
According to the present invention, since the adder 11 has a pipeline structure and also functions as a shift register, the clock circuit 1
The period of the clock pulse provided by 5 can be shortened to the processing time of each pipeline stage, rather than from the start to the end of the addition. Also, for the number of pipeline stages k,
Since the number of stages of the shift register can be shortened, the amount of hardware can be reduced.
第2図は、本発明に用いられる加算器の例であ
つて、5段のパイプラインによる24ビツトの加算
器を示している。
FIG. 2 is an example of an adder used in the present invention, and shows a 24-bit adder with a five-stage pipeline.
パイプライン極加算器のハードウエア構成は、
パラメータp、語長m、クロツクの周波数等に応
じて、種々のものが考えられる。例えば、第2図
に示すものは、p=5、m=24の場合に、8ビツ
トのキヤリールツクアヘツド回路(桁上げ先見回
路)CLを用いることにより、5段のパイプライ
ンで実現しているものである。この加算器を用い
た乱数発生回路では、次式、
xo=Xo-5+Xo-17 mod224
に基づき、順次乱数xoが発生するようになつてい
る。 The hardware configuration of the pipeline pole adder is
Various methods are possible depending on the parameter p, word length m, clock frequency, etc. For example, what is shown in Figure 2 can be realized with a five-stage pipeline by using an 8-bit carry look-ahead circuit (carry look ahead circuit) CL when p = 5 and m = 24. It is something that In the random number generation circuit using this adder, random numbers x o are sequentially generated based on the following equation: x o =X o-5 +X o-17 mod2 24 .
この例では、p=k=5であるため、第1図図
示第1シフトレジスタ10は、「12段」となり、
第2シフトレジスタ13は不要となる。加算器1
1への入力A0,A1,A2は、各8ビツトの第1シ
フトレジスタ10に入力するデータがあり、もう
一方の入力B0,B1,B2は、第1シフトレジスタ
10からの各8ビツトの出力である。 In this example, since p=k=5, the first shift register 10 shown in FIG. 1 has "12 stages",
The second shift register 13 becomes unnecessary. Adder 1
The inputs A 0 , A 1 , and A 2 to the first shift register 10 each have 8-bit data to be input to the first shift register 10 , and the other inputs B 0 , B 1 , and B 2 have data input from the first shift register 10 . This is the output of each 8 bits.
ステージST1において、P0,P1,P2に、各
A0,A1,A2およびB0,B1,B2内の対応するビ
ツトの排他的論理和がセツトされ、G0,G1,G2
には、対応するビツトの論理積がセツトされる。
ステージST2では、8ビツトキヤリールツクア
ヘツド回路CLにより、最下位バイトのキヤリー
C2が求められる。ステージST3では、P2および
C2の排他的論理和が回路SUMにより演算される
と共に、8ビツトキヤリールツクアヘツド回路
CLにより、第2バイト目におけるキヤリーC1が
求められる。このような処理が、ステージST5
まで、各クロツク毎に繰り返され、A0,A1,A2
およびB0,B1,B2の24ビツトの加算結果S0,S1,
S2が、ステージST5の後に出力される。 In stage ST1, P 0 , P 1 , P 2 are each
The exclusive OR of the corresponding bits in A 0 , A 1 , A 2 and B 0 , B 1 , B 2 is set, and G 0 , G 1 , G 2
is set to the logical AND of the corresponding bits.
In stage ST2, the 8-bit carry reel pick circuit CL carries out the carry of the least significant byte.
C 2 is required. In stage ST3, P 2 and
The exclusive OR of C2 is calculated by the circuit SUM, and the 8-bit carrier reel head circuit
Carry C 1 in the second byte is determined by CL. This kind of processing is stage ST5
repeated every clock until A 0 , A 1 , A 2
and the 24-bit addition result of B 0 , B 1 , B 2 S 0 , S 1 ,
S2 is output after stage ST5.
以上説明したように、本発明によれば、長周期
で高品質の乱数を、高速に発生することができ、
かつシフトレジスタのハードウエアを一部削減可
能となる。
As explained above, according to the present invention, long-period, high-quality random numbers can be generated at high speed.
In addition, it is possible to partially reduce the amount of shift register hardware.
第1図は本発明の基本構成図、第2図は本発明
の一実施例として用いられた5段パイプラインに
よる24ビツト加算器の例、第3図は一般的なフイ
ボナツチ型高乱数発生速回路の概念図を示す。
図中、10は第1シフトレジスタ、11はパイ
プライン極mビツト整数加算器、12はフイード
バツク形成部、13は第2シフトレジスタ、14
はマルチプレクサ、15はクロツク回路を表す。
Figure 1 is a basic configuration diagram of the present invention, Figure 2 is an example of a 24-bit adder with a 5-stage pipeline used as an embodiment of the present invention, and Figure 3 is a general Fibonacci type high random number generation speed. A conceptual diagram of the circuit is shown. In the figure, 10 is a first shift register, 11 is a pipeline pole m-bit integer adder, 12 is a feedback forming section, 13 is a second shift register, and 14
1 represents a multiplexer, and 15 represents a clock circuit.
Claims (1)
生回路において、 複数個のデータを保持する複数段のシフトレジ
スタであつて、所定のクロツク毎に前記保持する
複数個のデータをシフトさせるシフトレジスタ1
0と、 パイプライン構造を持ち、上記シフトレジスタ
10に入出力される所定の間隔をおいた2つのデ
ータに対する加算演算を、上記所定のクロツク毎
にパイプラインの各ステージにおいて処理する加
算器11と、 該加算器11の出力を上記シフトレジスタ10
に導き、フイードバツクループを形成する回路1
2とを備えたことを特徴とする乱数発生回路。[Scope of Claims] 1. In an additive random number generation circuit having a feedback loop, a multi-stage shift register holding a plurality of pieces of data, the plurality of pieces of data being held are shifted at every predetermined clock. shift register 1
0, and an adder 11 which has a pipeline structure and processes an addition operation on two pieces of data input and output from the shift register 10 at a predetermined interval at each stage of the pipeline every predetermined clock. , the output of the adder 11 is transferred to the shift register 10
Circuit 1 to form a feedback loop
2. A random number generation circuit comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61027951A JPS62186331A (en) | 1986-02-13 | 1986-02-13 | Random number generating circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61027951A JPS62186331A (en) | 1986-02-13 | 1986-02-13 | Random number generating circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS62186331A JPS62186331A (en) | 1987-08-14 |
JPH0467653B2 true JPH0467653B2 (en) | 1992-10-29 |
Family
ID=12235199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP61027951A Granted JPS62186331A (en) | 1986-02-13 | 1986-02-13 | Random number generating circuit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62186331A (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100434111B1 (en) * | 2001-12-26 | 2004-06-04 | 한국전자통신연구원 | Apparatus and method for generating pseudo random numbers |
-
1986
- 1986-02-13 JP JP61027951A patent/JPS62186331A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS62186331A (en) | 1987-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0326859B2 (en) | ||
JP3294687B2 (en) | Clock divider and motor drive controller | |
EP1340140B1 (en) | Apparatus and method for odd integer frequency division | |
US20040091106A1 (en) | Scrambling of data streams having arbitrary data path widths | |
JPS642986B2 (en) | ||
US4839841A (en) | Programmable digital multiple event generator | |
JPH0467653B2 (en) | ||
US5596617A (en) | Feedback shift register for generating digital signals representing series of pseudo-random numbers | |
JPS63151217A (en) | Frequency divider circuit whose output frequency is partly missing | |
JP2007520798A (en) | Random number generator and method using digital logic | |
JPH03114315A (en) | Leading or optional bit pulse generating circuit in pseudo noise code generator and sampling pulse generating circuit | |
KR0147942B1 (en) | Booths recording circuit in a multiplier | |
JPH02259926A (en) | Addition control system | |
SU1529218A1 (en) | Pseudorandom number generator | |
JPS61189731A (en) | Discrete value counting circuit | |
JP3566342B2 (en) | Parallel operation high-speed counter device | |
US11042359B2 (en) | Semiconductor device including an adder | |
KR970003979B1 (en) | Multiplexer | |
JPS61501421A (en) | Counter device with independent sub-counters | |
JPS59161922A (en) | Gray code counter | |
SU1427384A1 (en) | Digital computing unit of hybrid computers | |
JPH09101878A (en) | Random number generation circuit | |
JPH0474799B2 (en) | ||
KR950012088B1 (en) | High speed multiplicating circuit | |
JPH0239235A (en) | Psudo random number generating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |