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
Application number
JP61027951A
Other languages
Japanese (ja)
Other versions
JPS62186331A (en
Inventor
Kenichi Miura
Naoaki Kasuya
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP61027951A priority Critical patent/JPS62186331A/en
Publication of JPS62186331A publication Critical patent/JPS62186331A/en
Publication of JPH0467653B2 publication Critical patent/JPH0467653B2/ja
Granted legal-status Critical Current

Links

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.

〔従来の技術〕[Conventional technology]

従来、一般にデータ処理装置において用いる疑
似乱数は、ソフトウエアによつて発生するように
されていたが、ハードウエア回路によつて、高速
に簡易に発生できるようにすることが考慮されて
いる。
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.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

第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.

〔問題点を解決するための手段〕[Means for solving problems]

第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.

〔作用〕[Effect]

本発明によれば、加算器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.

〔実施例〕〔Example〕

第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.

〔発明の効果〕〔Effect of the invention〕

以上説明したように、本発明によれば、長周期
で高品質の乱数を、高速に発生することができ、
かつシフトレジスタのハードウエアを一部削減可
能となる。
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.

【図面の簡単な説明】[Brief explanation of drawings]

第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 フイードバツクループを有する加算型乱数発
生回路において、 複数個のデータを保持する複数段のシフトレジ
スタであつて、所定のクロツク毎に前記保持する
複数個のデータをシフトさせるシフトレジスタ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:
JP61027951A 1986-02-13 1986-02-13 Random number generating circuit Granted JPS62186331A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100434111B1 (en) * 2001-12-26 2004-06-04 한국전자통신연구원 Apparatus and method for generating pseudo random numbers

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