Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
RANDOM PULSE GENERATION SOURCE, AND SEMICONDUCTOR DEVICE, METHOD AND PROGRAM FOR GENERATING RANDOM NUMBER AND/OR PROBABILITY USING THE SOURCE
Document Type and Number:
WIPO Patent Application WO/2006/004075
Kind Code:
A3
Abstract:
The present invention provides a semiconductor device such as an IC capable of generating completely random signals and generating an authentication signal, random number, and probability by integrally setting a random pulse generation source for spontaneously generating at the inside, and also provides a method/program for generating a random number and/or probability, comprising the steps of setting a random pulse generation source (hereafter referred to as RPG) for spontaneously generating random pulses, measuring the time interval between the random pulses generated from the RPG or measuring a voltage value of the random pulse, and converting it into a digital value, and generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses as converted to digital values.

Inventors:
TSUYUZAKI NORIYOSHI (JP)
Application Number:
PCT/JP2005/012288
Publication Date:
February 15, 2007
Filing Date:
June 28, 2005
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TSUYUZAKI NORIYOSHI (JP)
International Classes:
G21G4/06; H03K3/84
Domestic Patent References:
WO1997029820A11997-08-21
WO1999041834A11999-08-19
Foreign References:
FR2748596A11997-11-14
US4197170A1980-04-08
EP0015807A11980-09-17
Attorney, Agent or Firm:
OKABE, Masao et al. (Fuji Bldg. 2-3, Marunouchi 3-chom, Chiyoda-ku Tokyo 05, JP)
Download PDF:
Claims:
CLAIMS
1. A random pulse generation source' including an emitter for discharging a particles or beta rays, or α particles and beta rays discharged due to nuclear decay, and a detector for detecting discharged α particles or the liket characterized in that the emitter is used as a solution and the solution is dripped on the detection face of the detector. 2. A random pulse generation source including an emitter for discharging α particles or beta rays, or α particles and beta rays discharged due to nuclear decay, and a detector for detecting discharged α particles or the like, characterized in that the emitter is used as a solution, a member on which the solution is evaporated or which is formed into a panel by e.g. the roller method is faced with the detector, spacing a predetermined distance. 3. The random pulse generation source according to claim 1 or 2, characterized in that all nuclear species of uranium series, all nuclear species of thorium series, all nuclear species of 210Pb-210Po or the like forming the radioactive equilibrium between these nuclear species, 244Cm, or 241Am are used as the emitter for discharging α particles or the like. 4. The random pulse generation source according to any one of claims 1 to 3, characterized in that the detector includes a PN-type semiconductor, PNP- type semiconductor, PIN photodiode, phototransistor, or photodiode. 5. The random pulse generation source according to any one of claims 1 to 4, further comprising a shielding wall for shielding the emitter, characterized in that the shielding wall shields at least the distance of the range of α particles or the like to be used. 6. A semiconductor device constituted so as to generate a random number and/or probability by setting a random pulse generation source (hereafter referred to as RPG) for spontaneously generating random pulses, measuring the time interval between the random pulses generated from the RPG or measuring a voltage value of the random pulse, and converting it into a digital value. 7. The semiconductor device according to claim 6, characterized in that the RPG includes an emitter for discharging a particles or beta rays, or α particles and beta rays (particles) discharged due to nuclear decay. 8. The semiconductor device according to claim 7, characterized in that all nuclear species of uranium series, all nuclear species of thorium series, all species of 210Pb-210Po or the like forming the radioactive equilibrium between these nuclear species,' 244Cm, or 241Am are used as the emitter for discharging α particles or the like. 9. The semiconductor device according to any one of claims 6 to 8, characterized in that the RPG further includes a detector for detecting discharged α particles or the like, the emitter is used as a solution, and the solution is dripped on the detection face of the detector, or a member on which the solution is evaporated or which is formed into a panel by e.g. the roller method is faced with the detector, spacing a predetermined distance. 10. The semiconductor device according to claim 9, characterized in that the detector includes a PN-type semiconductor, PNP-type semiconductor, PIN photodiode, phototransistor, or photodiode. 11. The semiconductor device according to any one of claims 6 to 10, characterized in that the RPG further includes a shielding wall for shielding the emitter and the shielding wall shields at least the distance of the range of α particles to be used. 12. The semiconductor device according to claim 6, characterized in that the RPG is constituted so as to amplify thermal electrons, noises, or jitter to generate random pulses. 13. The semiconductor device according to any one of claims 6 to 12, characterized in that an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability are generated from random pulses generated from the RPG. 14. The semiconductor device according to claim 13, characterized in that a necessary number of probabilities are obtained from an exponential distribution showing a probability in which the same pulse interval occurs between pulses generated from the RPG to prepare a uniform random number in accordance with the probability. 15. The semiconductor device according to claim 14, characterized in that when obtaining a probability from the time interval between tl and t2 by using the exponential distribution, a pulse having a predetermined probability is recognized when exceeding the time tl by assuming that the time t2 is infinite time. 16. The semiconductor device according to any one of claims 13 to 15, characterized in that when preparing a random number from an exponential distribution, an appearance probability density distribution in which an exponential distribution random number and uniform distribution random number are stabilized is realized by fluctuating a basic cycle for measurement and performing the same computation even if the average discharge rate of pulses is fluctuated. 17. The semiconductor device according to any one of claims 6 to 16, characterized in that a random number generated from the RPG is stored as an identification signal or anticlone signal and a signal input from the outside is compared and authenticated with the stored signal. 18. The semiconductor device according to claim 17, characterized in that a new random number is rewritten as authentication data whenever the comparison and authentication are performed. 19. The semiconductor device according to claim 17 or 18, characterized in that authentication data is transmitted and received. 20. The semiconductor device according to claim 19, characterized in that transmission and reception of the authentication data is performed through radio communication, infrared data communication, or communication of circuit connection method by contact 21. An IC card, IC tag, PC connectable unit, or unit built-in module including the random pulse generation source according to any one of claims 1 to 5. 22. The IC card, IC tag, PC connectable unit, or unit built-in module including the semiconductor device according to any one of claims 6 to 20. 23. The semiconductor device according to claim 16, characterized in that a distribution of exponential distribution random numbers is stabilized by fluctuating a basic cycle for measurement when preparing a random number from an exponential distribution and generation of a uniform distribution random number and generation of a probability are simultaneously processed. 24. The semiconductor device according to claim 16, characterized in that fluctuation of an operation clock for an oscillation frequency of hardware such as microcomputer for measuring time is automatically corrected by fluctuating a basic cycle for measurement when preparing a random number form an exponential distribution. 25. A method for generating a random number and/or probability, comprising the steps of: setting a random pulse generation source (hereafter referred to as RPG) for spontaneously generating random pulses, measuring the time interval between the random pulses generated from the RPG or measuring a voltage value of the random pulse, and converting it into a digital value, and generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses as converted to digital values. 26. The method according to claim 25, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, obtains a necessary number of probabilities from an exponential distribution showing a probability in which the same pulse interval occurs between pulses generated from the RPG to prepare a uniform random number in accordance with the probability. 27. The method according to claim 26, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, recognizes, in obtaining a probability from the time interval between tl and t2 by using the exponential distribution, a pulse having a predetermined probability when exceeding the time tl by assuming that the time t2 is infinite time. 28. The method according to any one of claims 25 to 27, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, realizes, in preparing a random number from an exponential distribution, an appearance probability density distribution in which an exponential distribution random number and uniform distribution random number are stabilized, by fluctuating a basic cycle for measurement and performing the same computation even if the average discharge rate of pulses is fluctuated. 29. The method according to any one of claims 25 to 28, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, stabilizes a distribution of exponential distribution random numbers by fluctuating a basic cycle for measurement when preparing a random number from an exponential distribution and processes generation of a uniform distribution random number and generation of a probability simultaneously. 30. The method according to claim 29, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, automatically corrects fluctuation of an operation clock for an oscillation frequency of hardware such as microcomputer for measuring time by fluctuating a basic cycle for measurement when preparing a random number form an exponential distribution. 31. A program for executing a method for generating a random number and/or probability, said method comprising the steps of: setting a random pulse generation source (hereafter referred to as RPG) for spontaneously generating random pulses, measuring the time interval between the random pulses generated from the RPG or measuring a voltage value, and converting it into a digital value of the. random pulse, and generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses as converted to digital values. 32. The program according to claim 31, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, obtains a necessary number of probabilities from an exponential distribution showing a probability in which the same pulse interval occurs between pulses generated from the RPG to prepare a uniform random number in accordance with the probability. 33. The program according to claim 32, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, recognizes, in obtaining a probability from the time interval between tl and t2 by using the exponential distribution, a pulse having a predetermined probability when exceeding the time tl by assuming that the time t2 is infinite time. 34. The program according to any one of claims 31 to 33, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, realizes, in preparing a random number from an exponential distribution, an appearance probability density distribution in which an exponential distribution-random number and uniform distribution random number are stabilized, by fluctuating a basic cycle for measurement and performing the same computation even if the average discharge rate of pulses is fluctuated. 35. The program according to any one of claims 31 to 34, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, stabilizes a distribution of exponential distribution random numbers by fluctuating a basic cycle for measurement when preparing a random number from an exponential distribution and processes generation of a uniform distribution random number and generation of a probability simultaneously. 36. The program according to claim 35, characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, automatically corrects fluctuation of an operation clock for an oscillation frequency of hardware such as microcomputer for measuring time by fluctuating a basic cycle for measurement when preparing a random number form an exponential distribution.
Description:
DESCRIPTION

RANDOM PULSE GENERATION SOURCE, AND SEMICONDUCTOR DEVICE, METHOD AND PROGRAM FOR GENERATING RANDOM NUMBER AND/OR PROBABILITY USING THE SOURCE

TECHNICAL FIELD The present invention relates to a random pulse generation source provided with an α-particle emitter for spontaneously generating complete random pulses, a semiconductor device such as an IC having such a random pulse generation source integrally fitted therein and capable of generating completely random signals and preparing an authentication signal, random number, and probability, and method and program for generating random number and/or probability using the source.

BACKGROUND ART An IC tag whose security is improved is disclosed in Japanese Patent Laid-Open Nos. 2003- 337928 and 2003-16396. The IC tag disclosed in the former official gazette has a configuration of storing a power through connection with a terminal, generating a one-time password by a CPU in the IC by means of the power, holding the password in a memory, and deleting the held password when the stored power is discharged and the IC tag disclosed in the latter official gazette has a configuration of reading authentication data from the tag twice or more and using a pseudo random value as. authentication data. DISCLOSURE OF THE INVENTION However, these IC tags do not include a generator for generating completely random signals or a function for generating such signals. In the case of this type of the authentication IC, a storage circuit is built in, authentication data is obtained by receiving a signal from the outside through radio communication or infrared communication or generated in an IC chip and the data is written in the storage circuit. Moreover, the data stored in an IC chip at the receiving side can be read from the outside and therefore, the data is weak in confidentiality and has a problem on security. Furthermore, when using random number data in order to differentiate ICs, a pseudo random number prepared by a program at the transmitting side is frequently used and therefore, holding of secret at the transmitting side is indispensable. Moreover, there is vulnerability that regularity can be estimated from random number data, the number of combinations is restricted, and it is misdoubted that a plurality of same identification numbers are mixed. When using the IC tag for pursuit, a problem occurs that individual information is accumulated at the pursuit side and the IC tag becomes a spread inhibition factor. Moreover, in the case of an authentication device such as an electronic lock, an authentication signal generating function is not included in a chip in the case of a convention IC used to authenticate the other party. For anti-clone (anti-counterfeit), an authentication signal is sent from the outside through radio or infrared communication and this authentication data is stored in a storage device in a chip, and the other party is recognized as a correct one when the authentication data coincides with the data stored at the transmitting source. Therefore, when completely copying the stored data, it is impossible to judge true or false by the transmitting source. Therefore, there is a problem on security similarly to the case of the above IC tag. Moreover, there is an IC in which a random number generator using thermal noise or noises is built in. Thermal noises or noises are influenced by a change of environments such as electromagnetic waves. Therefore, it is necessary to handle not only a completely random signal but also a pseudo random number and therefore and reliability is restricted. In the case of a system using noises, random numbers generated in accordance with the noises are phenomenologically disordered. However, there is no logical corroboration about the performance of a random number other than those based on various evaluation methods. The present invention is developed to eliminate the above-described conventional problem. A random pulse generator (generation source) (hereafter referred to as RPG) of the present invention is constituted so as to include an emitter for discharging α particles or beta rays, or α- particles and beta rays discharged due to nuclear decay, and a detector for detecting discharged α- particles or the like, and use the emitter as a solution and drip the solution on the detection face of the detector. An RPG of the present invention is also constituted so as to include an emitter for discharging α particles or beta rays, or α particles and beta rays discharged due to nuclear decay, and a detector for detecting discharged α particles or the like, characterized in that the emitter is used as a solution, a member on which the solution is evaporated or which is formed into a panel by e.g. the roller method is faced with the detector, spacing a predetermined distance. Moreover, a semiconductor device including an IC, relating to the present invention is constituted so as to generate a random number and/or probability by using a random pulse generation source for spontaneously generating random pulses, measuring a time interval between random pulses generated from the RPG or a voltage value, and converting the interval or voltage value into a digital value. For example, when applying the present invention to an authentication device, a random pulse generator (RPG) having a discharge source of α- particles endlessly discharged due to natural decay is built in an IC body and a completely random signal is obtained from the RPG to use the signal as an authentication signal. That is, an IC chip always generates an authentication signal to rewrite the signal to new authentication data for every authentication so that a copy does not make sense. In this case, almost endless combinations of authentication signals can be made without using a program, management of authentication data is made unnecessary at the IC chip fabrication side, and it is possible to establish complete security at the user side having an IC chip. Moreover, though details will be described later, in the case of the present invention, it is possible to easily prepare a complete random number and probability from a signal of an RPG in an IC chip. Thereby, by providing the IC, a random number and probability can be easily used. The present invention is not influenced by an environmental condition at all, an original signal generation source which cannot be artificially controlled is built in an IC body, and a random signal generated by an IC is used as a source signal for generating an authentication signal, random number, and probability. Thereby, it is possible to construct an authentication system which cannot be artificially operated and in which safety is established. Moreover, storage of data is unnecessary at the authentication-system supply side and it is possible to greatly decrease the cost. It is possible to handle uniform random numbers generated by the present invention as complete random numbers and the system can be used as a probability generator to which artificial dishonesty cannot be applied. The present invention is also directed to a method/program for generating a random number and/or probability, comprising the steps of setting a random pulse generation source (hereafter referred to as RPG) for spontaneously generating random pulses, measuring the time interval between the random pulses generated from the RPG or measuring a voltage value of the random pulse, and converting it into a digital value, and generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses as converted to digital values. The method/program is characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, obtains a necessary number of probabilities from an exponential distribution showing a probability in which the same pulse interval occurs between pulses generated from the RPG to prepare a uniform random number in accordance with the probability. The method/program is also characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, recognizes, in obtaining a probability from the time interval between tl and t2 by using the exponential distribution, a pulse having a predetermined probability when exceeding the time tl by assuming that the time t2 is infinite time. The method/program is also characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, realizes, in preparing a random number from an exponential distribution, an appearance probability density distribution in which an exponential distribution random number and uniform distribution random number are stabilized, by fluctuating a basic cycle for measurement and performing the same computation even if the average discharge rate of pulses is fluctuated. The method/program is characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, stabilizes a distribution of exponential distribution random numbers by fluctuating a basic cycle for measurement when preparing a random number from an exponential distribution and processes generation of a uniform distribution random number and generation of a probability simultaneously. The method/program is also characterized in that the step of generating an exponential distribution random number and/or uniform random number having a predetermined bit length and/or a probability from random pulses, automatically corrects fluctuation of an operation clock for an oscillation frequency of hardware such as microcomputer for measuring time by fluctuating a basic cycle for measurement when preparing a random number form an exponential distribution. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is an illustration showing a setting example of an α-particle emitter to an IC tag; Figure 2 is an enlarged view of an α-particle emitter setting portion; Figure 3 is an enlarged view of an α-particle emitter setting portion (setting example when the α- particle emitter is discoid) ; Figure 4A is an illustration showing dripping of an α-particle emitter and sealing example; Figure 4B is an illustration showing dripping of an α-particle emitter and sealing example; Figure 4C is an illustration showing dripping of an α-particle emitter and sealing example; Figures 5A and 5B are illustrations showing a case of setting a pulse generation source to a DIP- type IC; Figure 6 is a block diagram showing a RPG-RFID of the present invention; Figure 7 is a graph showing a relation between distance between α-particle emitter and detector and counting rate of α particles; Figure 8 is a graph showing decrease of the number of electrons due to increase of the thickness of aluminum; Figure 9 is an illustration showing a RPG output pulse; and Figures 1OA, 1OB and 1OC are flowcharts showing parts of an operation of an embodiment according to the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION Specific description is made by taking an RPG- RFID (Radio Frequency Identification) chip to which a function of a radio tag is added as an example. However, the present invention is not restricted to the example. It is a matter of course that the present invention can be applied to another semiconductor device such as an IC for generating an authentication signal, random number, or probability. Moreover, it is possible to apply the present invention to an IC card, IC tag, PC connectable unit, unit built-in module, etc. including a random pulse generation source (RPG) to be described below and moreover apply the present invention to an IC card, IC tag, PC connectable unit, unit built-in module, etc. including a semiconductor device constituted so as to generate a random number and/or probability by measuring a time interval between random pulses generated from the RPG or voltage value and converting the value into a digital value. An IC tag of the present invention has the following structure. An RPG (random pulse generator) for generating complete random pulses is used by improving a pulse generator using α particles disclosed in Japanese Patent No. 2926539 qbtained by the present inventor. An α-particle emitter uses one of 241Am, 244Cm, 210Pb-210Po, 210Po, etc. which are naturally decayed. More specifically, it is possible to use all nuclear species of uranium series, all nuclear species of thorium series, and all nuclear species of 210Pb-210Po, etc. forming the radioactive equilibrium between these nuclear species, 244Cm, or 241Am. Moreover, it is allowed to use an RPG for generating random pulses by using beta rays or gamma rays as long as an IC tag is used for a portion having a shield setting space at an IC tag use destination. Because α particles, beta rays, and gamma rays are not influenced by an environment such as temperature, pressure, humidity, or electromagnetic waves, it is impossible to artificially operate them. This specific IC cannot be realized by other method and the IC is important factor to secure safety. An IC tag used for a portion for which complete safety is not requested can use an RPG using a thermal noise or jitter of a semiconductor as a random pulse generation source. An RPG-RFID chip of an IC tag includes an RPG, electronic circuit for making it possible to use a random pulse transmitted from the RPG as an authentication signal, circuit for storing the authentication signal, storage device, circuit for transmitting an authentication signal corresponding to the conformation of communication, antenna, communication device, etc. As for power supply, RF energy is supplied from the antenna in the case of the RPG-RFID chip. However, it is also allowed to use a terminal and supply a power via the terminal when there is a setting space for the terminal. In the case of an authentication procedure of the RPG-RFID chip, random signals (generation time and time interval between pulses) from the built-in RPG are written, as authentication signals of the RPG-RFID chip, in an inside storage device. The stored signals are fetched from the outside by using communication means with the RPG-RFID chip or through connection by direct contact to confirm that there is not a combination of same authentication signals in the same lot. When an RPG-RFID chip to be shipped is used for specific commodity management and a distribution range is comparatively restricted in management of moving information or the like since the time of shipment, the authentication signal of each RPG-RFID chip is read through communication before shipment, stored, and used. The authentication procedure and storage of authentication data are performed for every communication to replace the authentication data with random signals generated by the RPG-BFID chip. An embodiment of an RPG-RFID chip provided with a random pulse generator (RPG) of the present invention is described in detail by referring to the accompanying drawings. First, -a random pulse generator (RPG) for spontaneously generating random pulses is described. The RPG is constituted of an α-particle emitter, and PN-type semiconductor, PNP-type semiconductor, PIN photodiode, phototransistor, photodiode or the like at the central portion of the RPG-RFID chip shown in Figure 1. The device of the pulse generator is selected in accordance with the safety level requested for the RPG-RFID chip. In Figure 1, reference numeral 10 denotes a position where an α- particle emitter and a detector are set, and 100 denotes a base substance (silicon base). Figure 2 shows a structure around the α- particle detector of the RPG-RFID chip to which the cc-partiσle emitter is set. The oc-particles (He atoms) discharged from the α-particle emitter are not influenced by an environment such as temperature, pressure, or electromagnetic waves, a power supply is also unnecessary, and α particles are semipermanently discharged in accordance with the half-life. That is, this system is characterized in that it is possible to use a signal source which cannot be artificially operated at all for an original signal used for authentication. Therefore, this system becomes a signal generation source which cannot be changed at all from the outside. When complete safety is not requested for the setting portion of this IC, it is also allowed to use e.g. a diode for generating noises for a pulse generator. In Figure 2, reference numeral 11 denotes an evaporated or dripped α- particle emitter and 12 denotes a detector. To incorporate an α-particle emitter into an IC, there are the following two methods: a method using a member on which an α-particle emitter is evaporated or which is formed like a disk by a roll method and a method of dripping the solution of an α-particle emitter (also including injection by ink jet system). In the case of the method for incorporating the α-particle emitter formed like a disk, the α-particle emitter is set immediately above an α-particle detection diode. There are the following two setting methods: a method for setting a spacer so that the distance between the detection diode and the α- particle emitter becomes a predetermined distance and mounting the α-particle emitter on the spacer and a method for setting the α-particle emitter by adhering it to a sealing plate. Figure 3 shows a set structure. In Figure 3, reference numeral 11 denotes an α-particle emitter, 12 denotes a detector, 13 denotes a sealing plate, and 14 denotes a spacer for setting the distance between the emitter and the detector. The following is a method for constituting a detector by dripping the solution of an α-partiσle emitter. (Refer to Figures 4A to 4C) The volume including the circumference of a detector to which the solution is1 dripped is first calculated to obtain a volume of the solution which does not flow to the outside. The quantity of the solution to be dripped is made equal to the volume. The number of atoms of the α-particle emitter included in the dripping quantity is obtained so that a predetermined pulse number is obtained and a concentration is adjusted before dripping the emitter so that the concentration is obtained. A necessary quantity is absorbed by a dripping jig such as a microsyringe 20 and the solution 11' of a previously-decided quantity of an α-particle emitter is extruded to drip the solution 11' on the surface of the detector 12 (refer to Figure 4A). After dripping the solution 11', the detector 12 is sealed by a sealing material 15 such as epoxy (refer to Figure 4B) or sealed by a sealing disk 16 (refer to Figure 4C). The same procedure-is used for a case in which the solution is dripped in accordance with injection of the solution by using an ink Jet system. The distance between the α-particle emitter and the circuit portion (distance d in Figures 1 and 2) is taken larger than the range of α particles obtained by the following expression in order to prevent a malfunction due to α particles. Figure 7 shows a general range of α particles in air. The axis of abscissa denotes the distance between α-particle emitter and detector and the axis of ordinate denotes discrete value (optional unit) . The calculation when using 210Pb-210Po for an oc- particle emitter is shown below. A relation between energy E (MeV) of α particles and range R (cm) in air is well examined and is shown by the Geiger's expression. E = 2.12R2/3 (4<E<7) R = 0.323E372 (3<R<7) Thus, the range of Po α particles is shown below. [Formula 1]

R = 0.323 x(5.305)2 = 0.323 x 12.2188 = 3.94667 cm

The range Rs (cm) of α particles in a solid substance is obtained from the following Bragg- Kleeman's expression when the range in air is already known. [Formula 2] 3.2 x 10"4RA1/2 Rs P A: Atomic weight of a solid substance p: Density The range of α particles in Si is shown by the following expression. [ Formula 3 ] i 3.2 x 10~4 x (3.9466-3 x (28.0855)2 Rs = = 0.002873 cm = 0 .02873 mm = 28 .7 μm 2.33 Therefore, when using a shielding material (shielding wall) of Si in order to separate from a circuit, it is allowed to set 29 μm or more. Moreover, 210Pb-210Po discharges very weak beta rays. In the case of the beta ray, the number of reached electrons is exponentially decreased with a distance as shown in Figure 8 differently from α particles. A beta ray is an electron but it does not influence an internal IC circuit at all. However, it is necessary to use a structure from which beta rays do not leak to the outside so as not to be misunderstood. A necessary thickness of a shielding material is obtained from the following expression. In Figure 8, the axis of abscissa denotes thickness of Al and the axis of ordinate denotes the number of electrons. Because the maximum energy Em of the Pb-210 beta ray is 0.061 MeV, the maximum range Rm is calculated in accordance with the Willson's expression. Rm = 2400(Em)2 = 2400 x (0.061)2- = 2400 x 0.003721 = 8.9304 mg/cm2 Moreover, from Isotope Handbook (Revised Third Edition, Maruzen, April, 1985), the range in Al is 6 mg/cm2 at 60 KeV. Because the density of Al is 2.7 g/cm3, the following expression is obtained. [Formula 4]

8.9304 mg/cm ~ 3 Rm = = 3.308 x 10 cm 2700 mg/cm = 3.308 x lθ" mm = 0.03308 mm = 33 μm Thus, it is enough that the sealing material shown in Figure 1 necessary for a RPG-RFID chip is 33 μm or more. The present invention can be easily built in not only a RPG-RFID chip but also a general IC. Figures 5A and 5B show layouts when building the present invention in a DIP-type IC. It is unnecessary to set the position at which an α- particle emitter is built in to the center like Figures 5A and 5B but the position can be changed in accordance with a design of an IC circuit. (The same is also applied to an MM chip.) In the illustrations, reference numeral 30 denotes an α-particle emitter setting portion, 31 denotes a sealing cap or pitch. and 32 denotes a diode chip on which an α-particle emitter is dripped. Figure 6 shows the whole block circuit of a RPG-RFID chip of the present invention. The RPG-RFID chip is constituted of a waveform-shaping amplifying circuit 41, logic circuit (control processing) 42, storage circuit 43, RF circuit 44, and antenna 45. The waveform-shaping amplifying circuit 41 is used to form a cusp waveform output from the RPG 40 into a shaped rectangular waveform which can be digital-processed. The logic circuit 42 is a processing circuit for handling a random pulse signal as a purposed signal. The storage circuit 43 is a circuit for storing data after signal processing. The RF circuit 44 is a circuit for performing communication with the outside through the antenna 45, As shown in Figure 9, to digitalize and store a signal from a RPG, the peak value and pulse interval of a random pulse of the RPG are random. Therefore, it is possible to measure the pulse interval or sample-hold the voltage of the peak value to digital- convert the voltage, and bring the measured or converted value into a random number. Moreover, it is possible to use a combination between voltage and the number of clock pulses. Then, when using a pulse generated by the RPG as an authentication signal, the probability in which completely the same pulse interval occurs is obtained,

A case is obtained in which an average

discharge rate n = 10 of normally used pulses as an

example.

[Formula 5]

PCt1, t2) = = e-ntl - e-nt2 ( 1 )

When the average discharge rate of the RPG is n

= 10, it is assumed to use an average number of

pulses of 10 for 1 sec as an authentication signal.

[Table 1]

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

When it is assumed that 10 pulse intervals

appear as an average pulse interval of 0.1 sec, the

probability in which 10 pulses appear next time at

the same time interval is shown by the calculation .

result of the following table. [Table 2] Average number Average tl t2 β-»*.ti -n*t2 Total of (sec) P (sec) (sec) 1/P 1/P pulses 10 0.1 0 0.1 1 0.367879 0.632121 1.581977 10 0.1 0.1 0.2 0.367879 0.135335 0.232544 4.300259 5.882235 10 0.1 0.2 0.3 0.135335 0.049787 0.085548 11.68931 68.7593 10 - o.i 0.3 0.4 0.049787 0.018316 0.031471 31.77485 2184.817 10 0.1 0.4 0.5 0.018316 0.006738 0.011578 86.373 188709.2 10 0.1 0.5 0.6 0.006738 0.002479 0.004259 234.7862 44306299 10 0.1 0.6 0.7 0.002479 0.000912 0.001567 638.215 2.83E+10 10 0.1 0.7 0.8 0.000912 0.000335 0.000576 1734.848 4.91E+13 10 0.1 0.8 0.9 0.000335 0.000123 0.000212 4715.806 2.31E+17 10 0.1 0.9 1 0.000123 4.54E-05 7.8E-05 12818.89 2.97E+21

From the calculation results of the above table,

the probability in which 10 pulse strings at the same

interval appear is 1/2.97E+21.

Therefore, in the case of a method using this

system, the probability in which at most 10 pulses

realize the same combination is 1/2.97E+21 or less.

This probability is a probability in the same pulse

generator but an individual pulse generator

respectively has different n value. Therefore, the

probability in which different pulse generators have

the same pulse string become (1/3E+21)2 or less.

It is possible to select a pulse number to be

used in accordance with the purpose of an IC using

this system for authentication and improve the safety.

Then, a method for preparing uniform random

numbers is described below.

The probability of pulses appearing at a time interval from tx to t2 is obtained from the above expression (1) . When transforming the above expression, the following expression (2) is obtained. t2 = -l/n*log(e'ntl-P) (2) wherein t2 > t1# therefore the above expression is replaced with tk = t2, tk.x = tlf and tlf t2, ... are successively obtained from t0 = 0, and thereby, it is possible to obtain the threshold value of a time width (δt) having 1/p ways of uniform appearance probabilities. tk+1 = -l/n*log(e-ntk-p) (3) wherein, t0 = 0 In the case of this expression (3), by fixing n and p, it is possible to univocally decide each tk value. When performing pulse time interval measurement by a 16-bit length (0-65535)- and considering the effective number of digits after conversion, it is necessary to set the data length to be replaced with the above threshold value to approx. 8-bit length. Otherwise, it is impossible to ignore the influence of an error in a short time interval. Therefore, the above p is set to 256 and the interval of 0-65535 (16-bit length) is converted to the interval of 0-255 (8-bit length) by the above threshold value. When 16 bits are required as a bit length, it is possible to generate 16 bits by connecting two 8-bit-length data values. In the case of this method, when the n value increases, the appearance time interval relatively decreases. When keeping a time interval measuring resolution constant, an error becomes a problem. However, when the n value decreases, a time interval relatively increases. When keeping the time interval measurement resolution constant, a rounding error (overflow) occurs in an upper value. Therefore, fluctuating the basic cycle of time measurement is made to correspond to the fluctuation of n value. That is, when the measured n value is small, the basic cycle of measurement is increased, while when the n value is large, the basic cycle of measurement is decreased. Thereby, the distribution of value data as a measured result is always constant and, it is possible to simplify a subsequent arithmetic processing circuit. Moreover, because the fluctuation of the basic cycle of time measurement depends on only the average number of discharges for unit time, the fluctuation of the reference operation frequency of an arithmetic circuit is corrected in a scope which that the operation speed of the arithmetic circuit follows from the viewpoint of throughput. Therefore, the accuracy of the frequency of an oscillation circuit for generating clocks of the arithmetic circuit is not requested. Specifically, the following expression (4) is obtained. tk+1 = -l/n*log(e-ntk-p) (4) wherein, t0 = 0. However, when assuming the fluctuation component of n as m and n = nxm, the following expression (5) is obtained. tk+1 = -l/nπ^logfe-^-p) (5) wherein, t0 = 0. In this case, by fluctuating the basic cycle of measured time in accordance with m (tk = tl/m) , the following expression (6) is obtained. t1+1 = -l/n*log(e-ntl-p) (6) wherein, t0 = 0. Therefore, a basic arithmetic expression can be directly applied. When assuming the operation frequency used for the arithmetic circuit as approx. 25 MHz, the basic cycle clock is 40 ns. When assuming n value as 10, an average pulse interval is 100 ms. Measurement of the average pulse interval is made by assuming the measurement basic cycle as 100 μs. The number of divisions for generating the measurement basic cycle becomes 100 μs/40 ns = 2500 counts. Therefore, the minimum value (resolution) of the above fluctuation value m becomes 0.4/100=0.004(0.4%) and the resolution of the fluctuation of measured reference time to the fluctuation of n value does not matter. The measurement time necessary to obtain 256 values in accordance with this system increases as n decreases. For example, the 255th threshold value becomes 1.386 sec when n is equal to 4, 1.848 sec when n is equal to 3, and 2.773 sec when n is equal to 2. Therefore, it is necessary to continue counting up to this time. It is possible to round a time width more than that time in the maximum value (65535) of time measured data. (Even if rounding the time, the appearance frequency of the maximum data 255 does not greatly change.) Therefore, the maximum value of measurement is fluctuated due to n value. Then, a method for preparing a probability is described below. The probability using natural decay can be obtained by the following expression (1). The expression (1) can be shown by the following expression (7). p = e"ntl-e-nt2 (7) Therefore, it is only necessary to decide tλ and t2 for satisfying a probability value to be generated and judge whether a pulse is present between tx and t2. In this case, when infinitely increasing t2, .t2, e"n12 at the second item can be ignored because it becomes 0 and it is possible to judge a hit by comparing a measured time width with tx. By infinitely increasing t2, a region in which the appearance frequency of e"nt is small is used. Therefore, it is possible to widely take a resolution. Therefore, it is possible to minimize a rounding error for probability calculation. An expression when assuming that t2 is infinite is shown by the following expression (8). p = e"ntl (8) When applying logarithm to the both sides of the expression (8) to obtain t1# the following expression (9) is obtained. tx = -log(p)/n (9) Thus, the value of tx can be obtained from a set probability value (p) and the number of pulses (n) per sec. Also in this case, necessary measurement time is fluctuated due to the fluctuation of n value. Particularly when a probability value is small, it is necessary to make long-time measurement effective. Therefore, by fluctuating the basic cycle of measurement similarly to the case of the computation of uniform random numbers, it is possible to solve the problem of overflow or insufficient accuracy of a counter. This method can correspond to a very small probability value. However, when a probability value is small, the maximum value of measurement increases and a case in which measurement time is lengthened occurs. However, by using a mechanism or structure for storing a past measured value in an arithmetic circuit, the problem of response time can be avoided. It is only necessary to compute the expression (9) tj_ = -log(p)/n when a probability value is set from the outside, and a computation does not occur at the time of measurement. Therefore, the influence on actual operations is very small even if a computation time is required to a certain extent. To flexibly correspond to a set probability value and make it possible to select various probability values by external inputs, it is possible to compute the above logarithm operations by a microcomputer without using a table for omitting calculations. Then, setting a reference measurement time in relative to n value for fluctuating a basic cycle is described below. In the expression p = e-ntl-e"nt2 (7) wherein assuming t0 as 0, the time interval of the maximum threshold value (255) can be obtained from the following expression (10) from p = 255/256 = l-e-nt255. t255 = -(l/n)*log(l/256) = 5.545177/n (10) When setting the above 255th threshold value+5% as the time at which a 16-bit timer overflows, by taking some allowance, the maximum time interval which can be counted by the 16-bit timer is shown by the following expression (11). traax = 5.545177*1.05/n = 5.822436/n .'.... (11) Thereby, the cycle of the counting reference clock of the timer becomes tclk = (5.822436/65536)/n = 88.84333 μs/n. When assuming the basic operation frequency of an arithmetic circuit as 25 MHz, the cycle of a system clock becomes tsys = 40 ns and the value of a prescaler for generating a reference clock tolk of the above timer becomes tpres = (88843.33/40.816)/n = 2176.7/n. By fluctuating the counting reference cycle of the timer in accordance with the value of n, it is only necessary to use the expression (4) in order to obtain a threshold value for generating a uniform random numbers and the following expression is obtained. tk+1 = -l/n*log(e"ntk-p); wherein t0 = 0 In the above expression, when calculating each tk when n is equal to 5.822436, threshold values from 1 to 255 can be calculated and they are shown in the table below. [Table 3 ] Threshold Threshold Data Threshold Threshold value Data value Data value Data value 0 64 3238 128 7802 192 15604 44 65 3297 129 7890 193 15781 88 66 3356 130 7979 194 15961 133 67 3415 131 8069 195 16144 177 68 3475 132 8159 196 16330 222 69 3535 133 8250 197 16519 267 70 3595 134 8342 198 16712 312 71 3656 135 8435 199 16907 357 72 3717 136 8528 200 17107 403 73 3778 137 8622 201 17309 0 448 74 3840 138 8717 202 17516 1 494 75 3902 139 8813 203 17726 2 540 76 3964 140 8910 204 17941 3 587 77 4027 141 9007 205 18159 4 633 78 4090 142 9106 206 18382 5 680 79 4154 143 9205 207 18610 6 726 80 4217 144 9305 208 18842 7 773 81 4282 145 9406 209 19079 8 821 82 4346 146 9508 210 19321 9 868 83 4411 147 9610 211 19568 0 916 84 4476 148 9714 212 19821 1 963 85 4542 149 9819 213 20080 2 1011 86 4608 150 9924 214 20345 3 1060 87 4674 151 10031 215 20616 4 1108 88 4741 152 10139 216 20894 5 1157 89 4808 153 10248 217 21179 6 1205 90 4876 154 10357 218 21471 7 1254 91 4944 155 10468 219 21771 8 1304 92 5012 156 10580 220 22080 9 1353 93 5081 157 10693 221 22397 0 1403 94 N 5150 158 10808 222 22723 1 1453 95 5220 159 10923 223 23059 2 1503 96 5290 160 11040 224 23405 3 1553 97 5361 161 11158 225 23763 4 1604 98 5432 162 11277 226 24132 5 1655 99 5503 163 11397 227 24513 6 1706 100 5575 164 11519 228 24908 7 1757 101 5648 165 11642 229 25318 8 1809 102 5720 166 11766 230 25742 9 1860 103 5794 167 11892 231 26184 0 1912 104 5868 168 12019 232 26643 1 1965 105 5942 169 12148 233 27122 2 2017 106 6017 170 12278 234 27623 3 2070 107 6092 171 12410 235 28146 4 2123 108 6168 172 12543 236 28696 5 2176 109 6244 173 12678 237 29273 [Table 3] - σontxnued 2229 110 6321 174 12814 238 29881 2283 111 6398 175 12952 239 30525 2337 112 6476 176 13092 240 31207 2391 113 6555 177 13234 241 31934 2446 114 6633 178 13377 242 32710 2501 115 6713 179 13522 243 33544 2556 116 6793 180 13669 244 34445 2611 111 6874 181 13818 245 35425 2667 118 6955 182 13969 246 36497 2722 119 7037 183 14123 247 37683 2779 120 7119 184 14278 248 39009 2835 121 7202 185 14435 249 40512 2892 122 7286 186 14595 250 42247 2949 123 7370 187 14757 251 44299 3006 124 7455 188 14921 252 46811 3064 125 7541 189 15088 253 50049 3121 126 7627 190 15257 254 54613 3180 127 7714 191 15429 255 62414

When obtaining that measured data is included

between any threshold values, the result becomes an

8-bit uniform random number.

A method for obtaining that measured data is

included between any threshold values includes two

types of methods. One is a method for performing

magnitude comparison by binary search after

measurement is completed and the other is a method

for checking a present measured value is included in

any area in the course of measurement. Each of the

methods is described below.

Binary search method

In the case of the present conversion,

condition for binary search is perfect because

measured data becomes 16-bit length and converted

data becomes 8-bit length, so a program can be

greatly simplified. A sample of algorithms specified under this condition is shown below. Bitlnd I Cator = 10000000b; Result = Bitlnd I Cator; Repeat ' If MeasuredValue<DataTable(Result) then Result = Result xor Bitlnd I Cator; Bitlnd I Cator = RightLotate(Bitlnd I Cator, lbit); Result = Result xor Bitlnd I Cator; Until Bitlnd I Cator. bit7 = "1"; In the case of this conversion, comparison of 16-bit length, bit processing(xor) , and reference of a data table are performed eight times. Judgment in measurement course In the above threshold value table, a numerical value increases in order of 0 to 255. Therefore, by performing comparison with data table whenever measuring a pulse interval, processing is greatly simplified. Further, since conversion into uniform random number is completed when measurement is completed (or the next pulse arrives), response is also greatly improved. Therefore, a certain determined time is not required to arithmetic processing, unlike the above method using binary search. When using a microcomputer for arithmetic processing, the algorithm may effectively work. Specific algorithm is shown below. In the case of this method, it is assumed that data for 1 to 255 in the above table is stored in 0 to 254. <Initial processing> Result = 0; Head of table <For every prescaler overflow> if MeasuredValue = DataTable(Result) then Result = Result+1; Therefore, because this is a very simple method and threshold value searches are performed dispersedly, a load for the throughput (processing capacity) of the arithmetic processing portion is vary small. Then, a processing procedure of a device/method for generating a random number and probability of the present invention is described below more minutely. The method to be described below has three modes such as normal (stand alone) mode, demonstration mode, and multi-module mode (multimode) and the following features. The normal mode is a mode to be connected with a host computer one to one, which outputs exponential distribution random number string and uniform random number string and outputs a probability judgment result in accordance with input of a probability judgment read command. The demonstration mode is a mode prepared for demonstration, which outputs an exponential distribution random number string, uniform distribution random number string, and probability judgment result, for each measurement of pulses. The multimode can connect a plurality of modules, increase a random number generation speed, in which an exponential distribution random number string, uniform distribution random number string, and probability judgment result are respectively output in accordance with a command. Figs. 1OA to 1OC are flowcharts showing algorithm when processing a device/method of the present invention by using a microcomputer. First, as shown in Fig. 1OA, initializing operations such as clearing of a RAM, initialization of various registers, and reading of the default value of a flash memory are performed and the main, routine is started. In the main routine, it is checked whether unprocessed new measured time data is present (step . SIlO). When the data is present, the data is called (read) (step S130) by premising that the present mode is not the multimode (step S120). Then, a prescaler of a timer for measuring an inter-pulse time (pulse time interval, pulse interval) is set (step S140) and the timer is cleared (step S150). When a RPG pulse is detected (step S160), the timer is started (step S170). Every time the RPG pulse is detected (step S180), the timer outputs measured data (step S190) and the data is stored as exponential random number (step S200). Then, the data is converted into a uniform distribution random number (step S210) to judge a probability (hit or failure) (step S220). Then, it is judged whether an operation mode is the demonstration mode (step S230). When the operation mode is the demonstration mode, an exponential distribution random number is transmitted to the host computer without condition (independently of presence or absence of selection of random number output) (step S260), a uniform distribution random number is transmitted (step S270), and moreover a probability judgment value is transmitted (step S280). When the operation mode is not the demonstration mode (that is, the normal mode), an exponential distribution random number is transmitted when the output of the random number is selected (step S240) and when the output of the uniform distribution random number is selected (step S250). On the other hand, as shown in Fig. 1OB, for measurement of CPS values (number of pulses), the default value is set (step S310), and when RPG pulse is detected (step S320), a timer for setting a measurement time is initialized (step S330) to set the measurement time (step S340). Then, a number-of- pulse counter is cleared (step S350), and every time the RPG pulse is detected (step S360), the measured values are integrated (step S370). This is repeated up to a set measured time (e.g. 64 seconds or 1 hour) When the measurement set time comes (step S380), the CPS value of the set measured time is calculated (step S390). Then, a reference time period for measurement of pulse interval is calculated (step S400), and new CPS data is written in a flash memory (step S410) to start measurement (step S420). The measurement processes shown in Figs. 1OA and 1OB are conducted in parallel and simultaneously, and the measurement of pulse interval is conducted over the whole pulse period. In the present embodiment, as shown in Fig. 1OC, when receiving serial data (step S500), a command processing routine is started only when there is new data (step S510) . Processing of an operation condition setting command, processing of an internal status reading command, processing of a probability setting command, processing of an operation command, and comparison between a module address and a designated address are performed so that the command processing routine describes data in a program describing a processing procedure (algorithm) to be described later. The program shown below describes a processing algorithm in a microcomputer when processing a device for generating a uniform random number and probability of the present invention by using a microcomputer. ALGORITHM IN MICROCOMPUTER

Micro Computer: C8051F330 Operational Frequency: 24.5 MHz System Clock: l/i

1. Allocation of ports and Interrupt functions PO.O: Input of pulses P0.4: Serial output PO.5: Serial input P 1.3: LED output

External interruptO : Detect input of pulse Timer 1 ' Generate transfer rate of UART Timer2 ' Used for inter-pulse time measurement : Prescaler value is changed by CPS Timer3 : Used for creating constant time (CPS measuring time) Serial interrupt : Used for data reception

2. Timers TimerO : Not used Timer 1 : Baud Rate Generator of RS232C Timerl Condition { Pre- scale = 1/1 8 bit Reload Mode Reload Value = 96h } Timer2 Prescaler for pulse counting Timer2 Condition { 16 bit Reload Mode Pre-scale = 1/1 Reload Value = tpres } Timer3 Timer for CPS counting Timer3 Condition { 16 bit Reload Mode Pre-scale = 1/12 Reload Value = 40833 ; Overflow = 20 mS } PCA Watch Dog Timer

3. Memories SerialBuffer(0..15) as M [8]; Serial receive buffer IntervalTime(0..3) as M[17]; Pulse Measurement time internal storage buffer SerialWPointer as M [8] J Pointer for indicating writing position when serially received data is written into receive buffer in interrupt processing routine. SerialRPointer as M[8]; Pointer for indicating position of next serial data to be processed within serial receive buffer in main routine IntervalWPointer as M [8]; Pointer for indicating position where next pulse measurement time is written in interrupt processing routine IntervalRPointer as M[δ]; Pointer for indicating position in buffer for next pulse measurement time to be processed in main routine IntervalCounter as M[17]; Counter for counting pulse time interval in interrupt processing routine CPSSecCounter as M[8]ϊ Count for one second (25 times * 20 mS) CPSTimeCounter as M[8]; Count for 64 seconds CPSCounter as M[l6]; CPS counter CPS as M[16]; CPS value Prob(0..7) as M[16]; Probability set value PValue(0..7) as M[16]; Threshold value after logarithmic calculation PSetting as M[l6]; Probability setting input value PArg as Mfe]; Probability setting argument BEXP as M[8]; Index portion of value to be operated at logarithmic calculation CycleCounter as M[8]; Used in operating portion, Counter for repeat number of times Bitlndicator as M[8]; Used for division calculation NOPTimeCount as M[S]; Counter for number of pulses for each hour RandomEXP as M[24]; Final result of exponential distribution random number UniformedData as M[8]l Final result of uniform distribution random number CPSForceData as M[16]; CPS forcible value CPSMeasureTime as M[8]; Set value of CPS measurement time NumberOfPulse as M[24]; Number of pulses for each hour CPSReadOut as M[l6]; Memory area of C P S measured value taken over from interrupt to main CPSACTimeCount as M[8]ϊ Count of CPS accumulation number of times CPSAccumulation as M [24]; C P S measured time read-out accumulation buffer Accumulate measured times for 64 seconds till set measurement time is reached. LastCPSAccumulation as M[24]; Past memory for C P S measured time NOPCountBuffer as M[24]; Buffer for measurement of number of pulses for one hour NumberOfNewData as M[8]; Number of received serial data not processed yet

; Bit area

InternalFlag as M[8] = { CPSDetected as M[l] ' CPS count-end flag LogASignMinus as M[I] Sign of Log(A) CountRestartF as M[l] ' Restart counting DataFlip as M[I] Uniform random number turn-back NOPCaptureF as M[l] End of measurement for one hour SerialReceived as M[l] ' Serial reception flag CPSForceF as M[l] bit7 ^ C P S forcible setting }

OperationMode as M[8] = { ; Operation mode UniformDataOutF as M[l] ; Output of uniform distribution ; random, number EXPDataOutF as M[I] ," Output of exponential , ' distribution random number DemoModeF as M[I] >" Demo mode MultiModeF as M[I] ; Multi mode }

StatusFlag as M[8] = { I Error status CPSTooLittleF as M[I] ■ No detection of C P S CPSTooManyF as M[l] i Excessive detection of C P S IntervalTimeOF as M[l] ' Overflow of measured value SerialBufferOF as M[l] I Overflow of serial buffer }

ProbFlag as M[8] = { ; Probability judge (hit/failure) PJudgeO as M[l] ; Judgment of probability numberO PJudgel as Mtl] J Judgment of probability number 1 PJudge2 as M[l] >' Judgment of probability number2 PJudge3 as M[l] J Judgment of probability number3 PJudge4 as M[I] I Judgment of probability number4 PJudgeδ as M[l] ; Judgment of probability numberδ PJudge6 as M[I] ; Judgment of probability numberθ PJudge7 as Mϊl] ! Judgment of probability number7 }

InternalFlagl as M[8] = { ; Internal flag

Address is present in multi mode. When address is selected in multi mode

I Constants

CPSMAX as #100*64 / not less than 100 pulses for one second CPSMIN as #1*64 / not greater than one pulse for one second ConstEXPData as #01h ConstUniformedData as #02h ConstSecCount as #50 ConstTimeCount as #64 ConstNOPCount as #56 SAck as #05h SNak as #50h ConstSPFilter as #10101111b ConstITFilter as #1100111 Ib

4. Initial processing

/ Initial processing / RO = 00h; Clear RAM. Repeat RAM(RO) = 0Oh RO += 1 until RO=O; SerialWPointer = #SerialBufierl Set head address of buffer. SerialRPointer = #SerialBufferJ IntervalWPointer = #IntervalTime; Set head address of buffer. IntervalRPointer = #IntervalTime>' NOPTimeCount = #ConstNOPCount; InitializeSFR; Set 8051 SFR LoadFlashData; Read data from flash portion. Default value is read at the first time. CalcTPreScaler; Compute and set prescale value of Timer2. CountRestart; Initialize memory for restart of measurement and approve interrupt, jump to Main!

/ InitializeSFR / pθ.4 = OutputMode; P 1.3 = OutputMode; Timerl = TimerlCondition! Timer2 = Timer2Condition; Timer3 = Timer3Condition; PCA = PCACondition; Timer2lNTEnable = true; Timer3INTEnable = true;

/ LoadFlashData / I Read data from flash memory. ; Previously write default value in data portion of flash ; memory. CPS = FlashCPS; CPSMeasureTime = FlashCPSMT; NumberOfPulse = FlashNofP; StatusFlag = FlashStatusJ OperationMode = FlashOPModeJ LastCPSAccumulation = FlashLastCPSAccumulation; PROB(o..7) = FlashPROB(0..7); Pvalue(0..7) = FlashPT(0..7);

5. Main routine

ConstEXPData as "01h"; ConstUniformedData as "02h";

repeat if IntervalWPointeroIntervalRPointer then /Is there unprocessed new /measured time data? if not(MultiModeF) then /Processing is not performed in multimode. ReadlntervalTimeJ /Read new measured time. ConvertToUniform; /Conversion to uniform random number CalcProb; /Judgment of probability (hit/failure) if DemoMode then /Unconditional transmission during demonstration /mode SendRandomEXP; /Transmission of exponential /distribution random number SendRandomUniform; /Transmission of uniform /distribution random ./nμmber SendP Judge ; /Transmission of probability /judgment value else /Transmission only when random number output is /selected in normal mode, if EXPDataOutF then SendRAndomEXP; if UniformDataOutF then SendRAndomUniform; endif endif endif if CPSDetected then CPSDetected = false; /Processing when measurement (64 sec) of CPS /value is completed AccumulateCPS; /Accumulate CPS values for 64 sec up to measured /time set value. CPSACTimeCount -= l; if CPSACTimeCount=0 then /When measurement set time is reached CaIcCPS; /Convert CPS value into average value for 16 sec. if not(CPSForceF) then CalcTPeScalerJ /Calculation of /prescaler value WriteToFlash; /Write new CPS data in flash memory. CountRestart; /Restart of measurement endif; endif if NumberOfNewDataoO then CommandHandling; /Reception of serial data / Start command processing routine only when there is new data, endif until forever;

6. Interrupt processing routine

/ External interrupt (INTO): Pulse input interrupt(pθ) and Rising edge detection /

if CountRestartF then CountRestartF = false; /Only start measurement timer at restart of /measurement. Start Timer2; else IntervalTime (Interval WPointer) = IntervalCounterJ /Write measured result in measured data buffer. IntervalWPointer = (IntervalWPointer+l) and #ConstITFiler; / Up date of p ointer if IntervalWPointer=IntervalRPointer then IntervalTimeOF=true; / Buffer overflow check IntervalCounter = 0; CPS Counter +=11 /Counting-up of CPS counter endif Return from Int;

/ Serial interrupt / if SerialReceiveINTF then /Perform processing only at the time of reception interrupt. /Ignore transmission interrupt. SerialReceiveINTF = false! SerialBuffer(SeriallnputPointer) = SerialReceivedDatai. / Write serial reception data in receiving buffer. SerialWPointer = (SerialWPointer+l) and #ConstSPFilterJ / Update of serial write pointer NumberOfNewData += IJ if NumberOfNewData>=32 then SerialBufferOF=true; / Buffer overflow check endif Return from Int;

/ Timer2 interrupt /

IntervalCounter +=l; /Counting-up of inter-pulse time measuring counter Return from Int;

/ Timer3 interrupt / CPSSecCounter -= l; /Counting for 1 sec if CPSSecCounter = 0 then CPSSecCounter = #ConstSecCount; CPSTimeCounter •= L* /Counting for 64 sec if CPSTimeCounter=0 then CPSTimeCounter = #ConstTimeCount; CPSReadOut = CPSCounter! /Because 64 sec elapse, read CPS counted value. CPSCounter=0; CPSDetected = true! / Set CPS detection flag, end if endif Return form Int

7. Subroutine

/ CountRestart / Restart inter-pulse time measurement. / Initial state when CPS is updated and data is written in flash memory CPSSecCounter = #ConstSecCounterJ CPSTimeCounter = #ConstTimeCount; CPSACTimeCount = CPSMeasureTime; CPSCounter = 0; CPSAccumulation = 0; IntervalCounter = 0; CountRestartF = true; CPSDetected = false;

/ ReadlntervalTime / Read measured time from buffer of time measurement value. RandomEXP = IntervalTime(IntervalRPointer); IntervalReadPointer = (IntervalReadPointer+4) and #ConstITFilter>'

/ AccumulateCPS / Accumulate CPS measured values. / Accumulate measured values for 64 sec to obtain CPS value of set measured time. / Also obtain CPS measured value for every hour here. / Measured value for every hour is obtained by accumulating measured value for every / 64 sect 56 times and obtaining accumulated value for 3,584 sec, dividing next / measured value for 64 sec by 4, and adding it. (3584+64*0.25)=3600 CPSAccumulation = CPSAccumulation + CPSReadOut; / Accumulation of CPS values and accumulation of pulse numbers for one hour from here if NOPCaptureF then CPSReadOut = CPSReadOut/4; NOPCountBuffer = NOPCountBuffer + CPSReadOut; if NOPCaptureF then / Completion of measurement for one hour NumberOfPulse = NOPCountBuffer; NOPCaptureF = false; if DemoModeF then SendNOP; WriteToFlash; CountRestart; else NOPTimeCount -= 1; if NOPTimeCount=0 then NOPCaptureF = true; NOPTimeCount = #ConstNOPCount; endif endif

/ CaIcCPS / Calculation of CPS values for 64 sec CPSAccumulation = (CPSAccumulation + LastCPSAccumulation) / 2; LastCPSAccumulation = CPSAccumulation; Breg = CPSMeasureTime; if Breg.bitOo'T' then repeat CPSAccumulation = CPSAccumulation^; RightShift(b, lbit); until Breg.bitO="l"; endifi CheckCPSMAXMIN; Checking of maximum and minimum CPS values if not(CPSTooLittleF or CPSTooManyF) then CPS = CPSAccumulation; if DemoModeF then SendCPS; WriteToFlash: CountRestart;

/ CheckCPSMAXMIN / / Check if CPS value exceeds specified range / When CPS value is too large, pay attention to it because interrupt cycle of Timer 2 / becomes very short, interrupt is always applied and processing does not turn over. Breg = #0; If CPSAccumulation >= #CPSMAX then Breg.bitl = "1"; If CPSAccumulation < #CPSMIN then Breg.bitO = "1"; if StatusFlagoBreg then StatusFlag = Breg; SendStatus; endiβ

/ SendRandomEXP / Serial output of exponential distribution random number SerialOutput = #ConstEXPData; if RandomEXP[23..16]="0" then SerialOutput = RandonEXP; else SerialOutput = #FFFFh; endif

/ SendRandomUniform / Serial output of uniform distribution random number SerialOutput = #ConstUniformData; SerialOutput = UniformedData;

/ SendCPS / Serial output of CPS value / When internal status is read, and when CPS value is changed in demo mode SerialOutput = #1 Ih; SerialOutput = CPS;

/ SendCPSMT / Serial output of CPS measured time / When internal status is read SerialOutput = #12h; SerialOutput = CPSMeasureTime;

/ SendNOP / Serial output of pulse number for one hour / When internal status is read, and when CPS values for one hour are changed / in demo mode SerialOutput = #13h; SerialOutput = NumberOfPulse;

/ SendStatus / Serial output of status information / When internal status (CPS error) is changed, and when internal status is read SerialOutput = #14h; SerialOutput = StatusFlag;

/ SendVersion / Serial output of version information / When internal status is read SerialOutput = #15h; i = o; repeat SerialOutput = FlashVer(i); i += l; until FlashVer(i)="FFh"; / SendProbSetting / Serial output of probability set value / When internal status is read SerialOutput = SerialCommand; SerialOutput = PROB(Command and "FFh");

/ SendP Judge / Serial output of probability judgment value / When probability read command is .received, and when internal status read / command is received for every pulse input in demo mode SerialOutput = #28h; SerialOutput = ProbFlag;

/ CalcProb / Judge hit/failure from exponential distribution random number i = o; ProbFlag = "0"; repeat if PValue(i)<=RandomEXP then ProbFlagtbit i] = "1"; i += l; until i="8";

/ CommandHandling /. Processing of serial command , if (SerialBuffer(SerialRPointer) and "FOh") = "00h" then / Operation condition / setting command if SerialBuffer(SerialRPointer) = "00h" then / When receiving unassigned code, return NAK. SendNAK; exit; endif if SerialBuffer(SerialRPointer) = "0 Ih" then /Forcible setting of CPS value? if NumberOfNewData<3 then exit; / When operand (set data) is not received, do nothing. RenewSRP; if (MultiModeF and AddressExist and not(AddressSelected) then / When addresses do not coincide with each other in multimode, / ignore command. RenewSRP; SendNal; exit else RenewSRP; CPSForceData = SerialBuffer(SerialRPointer); / Read CPS forcible value. CPSForceF = true; / Set CPS forcible flag. CalcTPrescaler; / Calculate prescaler value (forcible data). RenewSRP; SendAck; endif if SerialBuffer(SerialRPointer) = "02h" then /Cancel of CPS forcible setting if (MultiModeF and AddressExist and not(AddressSelected) then / When addresses do not coincide with each other in multimode, / ignore command. SendAck; exit else CPSForceF = false; / Reset CPS forcible flag. SendAck; exit endif if SerialBuffer(SerialRPointer) = "03h" then / Set CPS measurment time if NumberOfNewData<2 then exit; / When operand (set data) is not received, do nothing. RenewSRP; if (MultiModeF and AddressExist and not(AddressSelected) then / When addresses do not coincide with each other in multimode, / ignore command SendAck; exit else / Read and set CSP measurement time CPSMeasureTime = SerialBuffer(SerialRPointer); WriteToFlash; CountRestart; SendAck; exit endif if SerialBuffer(SerialRPointer) = "OFh" / Self-destruction then if NumberOfNewData<5 then exit; / When operand (set data) is not received, do nothing. if (MultiModeF and AddressExist and not(AddressSelected) then / When addresses do not coincide with each other in multimode, / ignore command SerialRPointer += 4; NumberOfNewData -=4; RenewSRP; exit else RenewSRP; If SerialBuffer(SerialRPointer)="86h,5 lh,29h,78h" then / When normal data string is received, delete flash data. Destroy; exit; else / When normal data string is not received, ignore command / and return Nak. SerialRPointer += 3; NumberOfNewData -=3; SendNAk; exit endif; endif else SendNAK; exit! endif endif if (SerialBuffer(SerialRPointer) and "FOh") = "1Oh" then / Read internal status if SerialBuffer(SerialRPointer)=("10h" or "16h" or "17h") then / In the case of invalid data, return Nak. SendNak; exit; endif; ACC = SerialBuffer(SerialRPointer Sirent; if (not(MultiModeF) or (AddressExist and AddressSelected)) then / When in stand alone mode, and when addresses coincide with each other in / multimode if ACC=" Hh" then /Return CPS. SendCPS; exit! endif; if ACC="12h" then /Return CSP measurement time. SendCPSMT; exit; endif; if ACC="13h" then /Return CPS values for one hour. SendNOP; exit! endi€ if ACC="14h" then /Return status data. SendStatus! exit! endifi if ACC="15h" then /Return version. SendVersion,' exit; endif; SendProbSettingJ /Return probability set value, exit; else exit; endif endif if (SerialBuffer(SerialRPointer) and "FOh") = "2Oh" then /Probability set command if SerialBuffer(SerialRPointer)="28h" then / Read probability judgment value. if (not(MultiModeF) or (AddressExist and AddressSelected)) then SendP Judge; /Return probability judgment value only when in stand alone mode or /when addresses coincide with each other in multimode. Sirent; exit; endif if SerialBuffer(SerialRPointer)<"28h" then if NumberOfNewData<3 then exit; / When operand (set data) is not received, do nothing, if (MultiModeF and AddressExist and not(AddressSelected) then / When addresses do not coincide with each other in multimode, / ignore command SerialRPointer += % NumberOfNewData -=2; Sirent; exit; else / Set probability set value. PArg = SerialBuffer(SerialRPointer) and "0000011 Ib"; / Calculate probability number. RenewSRP; PROB(PArg) = SerialBuffer (SerialRPointer); / Write probability set value. RenewSRP; CalcPThreshold; / Calculate probability judgment threshold. WriteToFlash; SendAck; CountRestart; exit; endiβ endif SendNak; exit; endif if (SerialBuffer(SerialRPointer) and "FOh") = "4Oh" then / Operation mode command if SerialBuffer(SerialRPointer)<"45h" then if (MultiModeF and AddressExist and not(AddressSelected)) then / When addresses do not coincide with each other in multimode, / ignore command. RenewSRP;; AddressSelected = false; AddressExist = false,' exit; else Breg = OperationMode; OperationMode = SerialBuffer(SerialRPointer) and "00000111b"; if BregoOperationMode then / When operation mode is changed WriteToFlash; CountRestart; endif; SendAck; exit; endif else SendNak; exit; endif endif if SerialBuffer(SeriaffiPointer) = "7Fh" then MultiModeF = true! if SerialBuffer(SerialKPointer) = "7Eh" then MultiModeF = false; if SerialBuffer(SerialEPointer) = ("7Eh" or "7Fh") then / Multimode command reception processing WriteToFlash; CountRestart! Sirent; exit; endif if SerialBuffer(SerialRPointer) < "80h" then SendNak; exit; endif! if not(MultiModeF) then SendNak; exit; endiβ AddressExist = true; if (SerialBuffer(SerialRPointer) and "0011111 Ib") = #ModuleAddress then AddressSelected = true; else AddressSelected = false! / Comparison between module address and designated address endifi if SerialBuffer(SerialRPointer) >= "COh" then / Select command input address in multimode. RenewSRP;; exit; else / Read random number data in multimode. if IntervalWPointer=IntervalRPointer then / When there is no random number data SendNakWhenNoData; exit; else / When there is random number data if AddressSelected then / When address is selected ReadlntervalTime; / Read time measured value. ConvertToUniform; / Conversion to uniform distribution random number CalcProb; / Probability judgment if EXPDataOutF then SendRandomEXP; if UniformDataOutF then SendRandomUniform; / Output random number, endifi Sirent! endif! endif!

/ SendNak / Transmission of NAK code if (notCMultiModeF) or (AddressExist and AddressSelected) then SerialOutput = #SNAK! / When addresses do not coincide with each other in multimode, do not transmit NAK. AddressSelected = false! AddressExist = false; SerialRPointer += l; SerialBPointer = SerialRPointer and #ConstSPFilter! / Update serial read pointer. NumberOFNewData ■= 1;

/ SendNakWhenNoData / When random number is read in multimode but there is no / random number SerialOutput = #SNAK; AddressSelected = false! AddressExist = false! NumberOFNewData ■= 1;

/ SendAck / Transmission of ACK code if (not(MultiModeF) or (AddressExist and AddressSelected) then SerialOutput = #SACK; / When addresses do not coincide with each other in multimode, do not transmit ACK. AddressSelected = false; AddressExist = false; SerialRPointer += l; SerialRPointer = SerialRPointer and #ConstSPFilter; / Update serial read pointer. NumberOFNewData -= 1;

/ RenewSRP / Update of serial pointer SerialRPointer += l; SerialRPointer = SerialRPointer and #ConstSPFilter; NumberOFNewData -= 1;

/ Sirent / Do nothing with invalid data. AddressSelected = false; AddressExist = false! SerialRPointer += l; SerialRPointer = SerialRPointer and #ConstSPFilter; NumberOFNewData -= 1;

/ WriteToFlash / Writing of data in flash memory FlashCPS = CPS; FlashCPSMT = CPSMeasureTimeJ FlashNofP = NumberOfPulseJ StatusFlag = FlashStatus; FlashOPMode = OperationModeJ FlashLastCPSAccumulation = LastCPSAccumulation; FlashPROB(θ..7) = PROB(o..7); FlashPT(0..7) = Pvalue(0..7);

/ ConvertToUniform / Conversion to uniform distribution random number if RandomEXP[23..16]<>"0" then / When exponential distribution random number exceeds "FFh", set random number / to "FFh". UniformedData = "FFh"; else / Conversion to uniform distribution in accordance with binary search Bitlndicator = 10000000b; UniformedData = "0"; repeat UniformedData = UniformedData xor Bitlndicator; if RandomEXP < DataTable(UniformedData) then UniformedData = UniformedData xor Bitlndicator; endifi Carry = "0"; RightLotateWithCarry(BitIndicator, lbit) ; until Carry="l"; endifi

/ CalcTPreScaler / Calculate prescaler value of Timer2 from CPS / In the case of this computation, when number of pulses for 64 sec (CPS value) ranges / between 0 and 3, accurate prescaler value is not obtained. Confirmation is / previously necessary > Broach with CPSMAX and CPSMIN a as M32 { aH as M[16]; aL as M[l6]; } CycleCounter as M [8] J

a = 2246Dh; Cycle Counter^ 16; LeftShiftWithCarry(a, lbit); repeat if CPSForceF then / When CPS value is forcibly set, use forcible set data, if (aH-CPSForceData)>=0 then Carry = l; aH = aH - CPSForceData; else Carry = 0; else if (aH-CPS)>=0 then Carry = l; aH = aH - GPS; else Carry = CK endiβ LeftShiftWithCarry(a, lbit); CycleCounter = CycleCounter - 1; until CycleCounter=θ; Timer2ReloadREG = aL;

/ CalcPThreshold / Calculate time counting threshold for probability judgment used / inside from probability set value and perform logarithm calculation. / For processing contents, refer to design specification. W as M[32] { W0 as M[8]; Wl as M[8]; W2 as M[8]; W3 as M[8]; /Computing buffer X } X as M[32] { X0 as M[8]; Xl as M[8]; X2 as M[8]; X3 as M[8ϊ; /Computing buffer X } Y as M[32] { YO as M[8]; Yl as M[8]; Y2 as M[8]; Y3 as Mϊ8]; /Computing buffer Y } LogA as M[32] { LogAO as M[8]; LogAl as M[8]; LogA2 as Mϊ8]; LogA3 as M[8]; /Computing buffer W } Z as M[32] { ZO as M[8]; Zl as M[8]; Z2 as M[8]; Z3 as M[8]; /Computing buffer Z } ZZ as M[32] {

ZZ3 as M[8]; /Computing buffer ZZ } Result as M[32] { ResultO as M[8]; Resultl as Mϊδϊ; Result2 as M[8]; Result3 as M[8]; /Computing buffer ZZ } LogASign as M[I]; /Symbol of Log(A)

CaIcAB; CalcZ; CaIcZZ; CalcLogA; CalcLogB; CalcResult;

/ CaIcAB / B as M[8];

Xl&X2=P(PArg); X0=X3=0; B="0Fh"; repeat LeftShift(X, 1 bit); B -= i; until XO.bitO="l"; /Result: There is A in X.

/ CalcZ / Root2 as "01.6A09E6"; CycleCounter as M[8]

Y=X; /Set A to both buffers X and Y. X=X ■ Root2; /Calculate X = (a -/2), and if a result is negative, use complement. if XO then X= O - X; LogASign = true,' else LogASign = false; end if Y=Y + Root2; /Calculation of Y = (a+/2)

CycleCounter = 22; /Bit length of divisor y z = 0; /Thereafter, Calculation of Z=X/Y ShiftLeftCX, 2bit) Repeat if (X-Y) > 0 then Carry = "1"; /Set least significant bit of result z to "1". X =X - Y; else Carry = "0"; /Reset least significant bit of result z to "0". end if ShiftLeftWithCCZ, lbit); ShiftLeft(X, lbit); CycleCounter = CycleCounter — 1; until CycleCounter=0 ; /Computation result is left in Z. / CaIcZZ / CycleCounter as M[8],'

X = Z; X = Zj WeqXmulY; ZZ = W;

/ CalcLogA/ ConstlO as "01.00000Oh"; /1 Const03 as "00.555555h"; /0.3333333 Const02 as "00.333333h"; /0.2 Const07 as "00.249248h"; /".0010 0100 1001 0010 0100 1000" = 0.1428571 CycleCounter as M [8];

/ Compute ZZ/7. Because of variablexconstant, perform simple shift at bit / position when constant is "0" and perform addition at bit position when / constant is "1" so as to shorten processing time. Y = ZZ; x = o; CycleCounter = 7 repeat ShiftRight(Y(l..3), 3bit); XC1..3) = X(l..3)+Y(l..3); CycleCounter ■= l; until CycleCounter = 0; /Result is left in X.

X = X + Const02;

Y = ZZ ; /Computation of zz*(0.2 + zz*0.1428571) WeqXmulY;

W =W + Const03;

Y = ZZ ; /Computation of zz*(0.3333333 + zz*(0.2 + zz*0.1428571)) x = o; WeqXmulY;

W = W + Const 10;

Y = Z ; /2*z*(l + zz*(0.3333333 + zz*(0.2 + zz*0.1428571))) X = W; WeqXmulY4; LogA = 2 * W;

/ CalcLogB / ConstOδ as "00.80000Oh"; ConstLog2 as "0B17217Fh"; /To simply computation, insert Log(2)*16.

X = B + 0.5 w = o; Y = ConstLog2;

CycleCounter = 5; /X=(B+0.5)*Log(2) repeat if W0.bit3="l" then W =W + Y; ShiftRight(Y,lbit); ShiftLeft(W(O..l),lbit) until CycleCounter = 0! /Result is left in X.

/ CalcResult / ConstN as ("00.2BF7C4h" shl 2) = "0.1010 1111 1101 1111 0001 0000"; 0.1717494 *4 = 4/5.822436

if LogASign then W = W + LogA else W = W- LogA;

Result = 0; Y = ConstN; CycleCounter=22; repeat ShiftLeft(Y(l..3),lbit) if Carry-' 1" then Result = Result + X; ShiftRight(X,lbit); until CycleCounter = 0»' /Result is left in Result

/ WeqXmulY / / Computation of W = X * Y (Calculate only decimal point or lower) W = o; Cycle Counter=24; repeat ShiftRight(X(1..3),lbit); ShiftLeffc(Y(1..3),lbit) if Carry="l" then W = W + X; until CycleCounter = 05 /Result is left in W.

/ WeqXmulY4 / / Computation of W = X * Y (Calculation of four digits, X is four digits, and Y is only / a case of less than l) w = o; Cycle Counter=24; repeat ShiffcRight(X,lbit); ShiftLeft(Y,lbit) if Carry="l" then W = W + X; until CycleCounter = 0; / Result is left in W.

/ FlashROMDataArea / Data region in flash memory / Insert default value of each data as initial value.

FlashCPS as M[l6] = "00COh"; FlashCPSMT as M[8] = "Olh"; FlashNofP as M[24] = "FFFFFFh"; FlashStatus as M[8] = "0Oh"; FlashOPMode as M[8] = "00010011b"; ; bit2 : Demo mode ; bitl • Exponential distribution random number output ; bitO : Uniform distribution random number output FlashLastCPSAccumulation as M[24] = "OOOOCOh"; FlashPROB(8) as M[16] = ("0002h", "0003h", "0005h", "001Oh", "008Oh", "010Oh", "100Oh", "800Oh"); FlashPT(8) as M[17] = ("001D8Dh", "002ED7h", "00449Eh", "OOCEDEh", "OOECβCh", "0162A2h", "01BB4Ah"); ModuleAddress as M[8] = "FFh"; FlashVer as String = "RGZ-I Ver 1.00", "ODh", "OAh", "2004-05-10", "ODh", "OAh", "CopyRight 2004, RPG Technics & Zixsys Inc.", "FFh";




 
Previous Patent: FLAT CABLE

Next Patent: PHYSIOLOGICALLY ACTIVE BIOMATERIAL