DE102014216386A1 - Method for testing a random number generator - Google Patents

Method for testing a random number generator Download PDF

Info

Publication number
DE102014216386A1
DE102014216386A1 DE102014216386.2A DE102014216386A DE102014216386A1 DE 102014216386 A1 DE102014216386 A1 DE 102014216386A1 DE 102014216386 A DE102014216386 A DE 102014216386A DE 102014216386 A1 DE102014216386 A1 DE 102014216386A1
Authority
DE
Germany
Prior art keywords
ring oscillator
flip
sampling
elements
random
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.)
Withdrawn
Application number
DE102014216386.2A
Other languages
German (de)
Inventor
Eberhard Boehl
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014216386.2A priority Critical patent/DE102014216386A1/en
Publication of DE102014216386A1 publication Critical patent/DE102014216386A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Testen eines Zufallsgenerators und eine Schaltungsanordnung mit einem solchen Zufallsgenerator. Bei dem Verfahren werden Zustände von Speicherelementen in dem Zufallsgenerator vorgegeben.The invention relates to a method for testing a random number generator and to a circuit arrangement with such a random number generator. In the method, states of memory elements in the random generator are specified.

Description

Die Erfindung betrifft ein Verfahren zum Testen eines Zufallsgenerators, der mindestens einen Ring-Oszillator enthält, und eine Anordnung zur Durchführung des Verfahrens.The invention relates to a method for testing a random number generator, which contains at least one ring oscillator, and an arrangement for carrying out the method.

Stand der TechnikState of the art

Zufallszahlen als Ergebnisse bzw. Ausgaben von Zufallsquellen in Zufallsgeneratoren werden für viele Anwendungen benötigt. Zufallsgeneratoren sind Verfahren, die eine Folge von Zufallszahlen liefern. Ein entscheidendes Kriterium der Güte von Zufallszahlen ist, ob das Ergebnis der Generierung als unabhängig von früheren Ergebnissen angesehen werden kann.Random numbers as results or outputs of random sources in random number generators are needed for many applications. Random generators are methods that produce a sequence of random numbers. A crucial criterion of the quality of random numbers is whether the result of the generation can be considered independent of previous results.

Zufallszahlen werden bspw. für kryptographische Verfahren benötigt, wobei diese verwendet werden, um Schlüssel für diese Verschlüsselungsverfahren zu generieren. So werden Zufallsgeneratoren bzw. Random Number Generators (RNG) verwendet, um Masterschlüssel für symmetrische Verschlüsselungsverfahren und Protokoll-Handshaking in ECC (elliptical curve cryptography) zu erzeugen, die einen Leistungsanalyse-Angriff und Angriffe durch Aufzeichnen (replay attacks) verhindern.Random numbers are needed, for example, for cryptographic methods, which are used to generate keys for these encryption methods. For example, Random Number Generators (RNGs) are used to generate symmetric encryption master handshaking keys and elliptical curve cryptography (ECC) master keys that prevent performance analysis attack and replay attacks.

Es gibt unterschiedliche Typen von Zufallsgeneratoren, wie bspw. Pseudo-Zufallszahlen-Generatoren (PRNG: pseudo random number generators) für hohe Durchsätze und niedrige Sicherheitslevels. In einen PRNG wird üblicherweise ein geheimer Wert eingegeben, und jeder Eingabewert wird immer dieselben Ausgabereihen ergeben. Ein guter PRNG gibt jedoch eine Zahlenreihe aus, die zufällig erscheint und die meisten Tests bestehen wird.There are different types of random number generators, such as pseudo random number generators (PRNG) for high throughputs and low security levels. A secret value is usually entered into a PRNG, and each input value will always give the same output rows. However, a good PRNG will output a series of numbers that will appear random and pass most tests.

Zu beachten ist, dass an Schlüssel für kryptographische Verfahren hohe Anforderungen hinsichtlich der Zufallseigenschaften gestellt werden. Deshalb sind Pseudo-Zufallszahlen-Generatoren (PRNG), bspw. repräsentiert durch ein LFRS (linear feedback shift register), für diesen Zweck nicht geeignet. Nur ein Generator wahrer Zufallszahlen, der als True Random Number Generator (TRNG) bezeichnet wird, erfüllt die gestellten Anforderungen. Dieser stellt den anderen Typ eines Zufallsgenerators dar. Bei diesem werden natürliche Rauschprozesse ausgenutzt, um ein nicht vorhersagbares Ergebnis zu erhalten. It should be noted that keys for cryptographic methods are subject to high randomness requirements. Therefore, pseudo-random number generators (PRNG), for example, represented by an LFRS (linear feedback shift register), are not suitable for this purpose. Only a true random number generator, called the True Random Number Generator (TRNG), meets the requirements. This is the other type of random generator. It exploits natural noise processes to produce an unpredictable result.

Üblich sind Rauschgeneratoren, die das thermische Rauschen von Widerständen oder Halbleitern bzw. das Schrot-Rauschen an Potenzialbarrieren, bspw. an pn-Übergängen, ausnutzen. Eine weitere Möglichkeit besteht in der Ausnutzung des radioaktiven Zerfalls von Isotopen.Common are noise generators that exploit the thermal noise of resistors or semiconductors or the shot noise at potential barriers, for example at pn junctions. Another possibility is to exploit the radioactive decay of isotopes.

Während die "klassischen" Verfahren analoge Elemente, wie bspw. Widerstände, als Rauschquellen benutzen, werden in der jüngeren Vergangenheit häufig digitale Elemente, wie bspw. Inverter, eingesetzt. Diese haben den Vorteil eines geringeren Aufwands im Schaltungslayout, weil diese als Standardelemente vorliegen. Weiterhin kann man solche Schaltungen auch in frei programmierbaren Schaltungen, wie bspw. FPGAs, einsetzen.While the "classical" methods use analog elements, such as resistors, as sources of noise, in the recent past digital elements such as inverters are often used. These have the advantage of less effort in the circuit layout, because they are available as standard elements. Furthermore, such circuits can also be used in freely programmable circuits, such as, for example, FPGAs.

So ist bspw. der Einsatz von Ring-Oszillatoren bekannt, die eine elektronische Oszillatorschaltung darstellen. Bei diesen wird eine ungerade Anzahl von Invertern zu einem Ring zusammengeschaltet, wodurch ein Oszillieren mit einer Eigenfrequenz entsteht. Die Eigenfrequenz hängt dabei von der Anzahl der Inverter im Ring, den Eigenschaften der Inverter, den Bedingungen der Zusammenschaltung, nämlich der Leitungskapazitäten, der Betriebsspannung und der Temperatur ab. Durch das Rauschen der Inverter entsteht eine zufällige Phasenverschiebung gegenüber der idealen Oszillatorfrequenz, die man als Zufallsprozess für das TRNG nutzt. Zu beachten ist, dass Ring-Oszillatoren selbständig schwingen und keine externen Komponenten, wie z. B. Kondensatoren oder Spulen, benötigen.For example, the use of ring oscillators is known which represent an electronic oscillator circuit. In these, an odd number of inverters are connected together to form a ring, resulting in oscillation with a natural frequency. The natural frequency depends on the number of inverters in the ring, the characteristics of the inverters, the conditions of interconnection, namely the line capacitance, the operating voltage and the temperature. The noise of the inverters creates a random phase shift from the ideal oscillator frequency, which is used as a random process for the TRNG. It should be noted that ring oscillators oscillate independently and no external components, such. As capacitors or coils require.

Die Ausgabe der Ring-Oszillatoren kann komprimiert oder einer Nachbearbeitung unterzogen werden, um die Entropie zu verdichten bzw. zu bündeln, d. h. zu steigern, und jede Tendenz (bias) zu eliminieren.The output of the ring oscillators may be compressed or post-processed to compress the entropy, i. H. increase and eliminate any bias.

Ein Problem in diesem Zusammenhang besteht darin, dass man den Ring-Oszillator möglichst in der Nähe einer erwarteten, idealen Flanke abtasten muss, damit man einen zufälligen Abtastwert erhält. Dazu wird in der Veröffentlichung von Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 eine Möglichkeit gezeigt, wie durch das geregelte Verschieben des Abtastzeitpunkts die Abtastung immer in der Nähe einer Oszillator-Flanke erfolgt.A problem in this context is that one must sample the ring oscillator as close as possible to an expected, ideal edge in order to obtain a random sample. This is stated in the publication of Bock, H., Bucci, M., Luzzi, R .: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 a way is shown, as the sampling is always carried out in the vicinity of an oscillator edge by the controlled shifting of the sampling time.

Aus der Druckschrift EP 1 686 458 B1 ist ein Verfahren zum Erzeugen von Zufallszahlen mit Hilfe eines Ring-Oszillators bekannt, bei dem ein erstes und ein zweites Signal bereitgestellt werden, wobei das erste Signal durch das zweite Signal getriggert abgetastet wird. Bei dem beschriebenen Verfahren wird ein Ring-Oszillator mehrfach abgetastet, wobei immer nur nicht invertierende Verzögerungen, nämlich eine geradzahlige Anzahl von Invertern als Verzögerungs-Elemente, ausgenutzt werden. Dabei wird der Ring-Oszillator beginnend von einem Anfangspunkt immer nach einer geradzahligen Anzahl von Invertern gleichzeitig oder gegenseitig verzögert abgetastet. Dadurch kann auf die Verschiebung des Abtastungszeitpunkts verzichtet werden; stattdessen werden die mehrfachen Abtastsignale ausgewertet.From the publication EP 1 686 458 B1 For example, there is known a method of generating random numbers by means of a ring oscillator in which a first and a second signal are provided, wherein the first signal is sampled triggered by the second signal. In the described method, a ring oscillator is scanned multiple times, whereby only non-inverting delays, namely an even number of inverters as delay elements, are utilized. In this case, the ring oscillator is sampled starting from a starting point always after an even number of inverters simultaneously or mutually delayed. This can affect the displacement of the Sampling time are waived; instead, the multiple samples are evaluated.

In der Veröffentlichung Design of Testable Random Bit Generators von Bucci, M. und Luzzi, R., CHES 2005 wird eine Methode vorgestellt, mit der man eine Beeinflussung der Zufallsquelle feststellen kann. Damit kann man Attacken vorbeugen. Eine direkte Unterscheidung zwischen Zufallswerten und deterministischen Werten ist damit aber nicht möglich. Eine Bewertung der Güte der Zufallsquelle ist durch Zählung der Übergänge möglich.In the publication Design of Testable Random Bit Generators by Bucci, M. and Luzzi, R., CHES 2005 A method is presented that can be used to determine the influence of the random source. This can prevent attacks. However, a direct distinction between random values and deterministic values is not possible. An evaluation of the quality of the random source is possible by counting the transitions.

Eine weitere Möglichkeit ist durch die Nutzung mehrerer Ring-Oszillatoren gegeben. Dies ist bspw. In der Veröffentlichung Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 dargelegt. Dabei werden Abtastwerte mehrerer Ring-Oszillatoren miteinander verknüpft und ausgewertet.Another possibility is given by the use of multiple ring oscillators. This is, for example, in the publication Sunar, B. et al: Approved Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 explained. In this case, samples of several ring oscillators are linked and evaluated.

Wie bereits ausgeführt wurde, wird in Ring-Oszillatoren eine ungerade Anzahl von Invertern zu einem Ring zusammengeschaltet, wodurch ein Oszillieren mit einer Eigenfrequenz entsteht. Die Eigenfrequenz hängt dabei von der Anzahl der Inverter im Ring, den Eigenschaften der Inverter, den Bedingungen der Zusammenschaltung, d. h. der Leitungskapazitäten, der Betriebsspannung und der Temperatur ab. Durch das Rauschen der Inverter entsteht eine zufällige Phasenverschiebung gegenüber der idealen Oszillatorfrequenz, was als Jitter bezeichnet wird und als Zufallsprozess für das TRNG ausgenutzt wird.As already stated, in ring oscillators, an odd number of inverters are connected together to form a ring, resulting in oscillating at a natural frequency. The natural frequency depends on the number of inverters in the ring, the characteristics of the inverters, the conditions of the interconnection, d. H. the line capacitance, the operating voltage and the temperature. The noise of the inverters creates a random phase shift compared to the ideal oscillator frequency, which is called jitter and is used as a random process for the TRNG.

Eine vorteilhafte Realisierung einer TRNG-Quelle mittels eines an mehreren Stellen abgetasteten Ring-Oszillators ist in 1 gezeigt. Diese Schaltungsanordnung bietet den Vorteil, dass eine Korrelation zum Systemtakt festgestellt werden kann und Fehler entdeckt werden können, wenn besondere Realisierungsbedingungen mit einer gleichmäßigen kapazitiven Belastung aller Knoten des Ring-Oszillators vorliegen und die benutzten Schaltelemente, wie bspw. Flipflops, Inverter, so konstruktiv gestaltet sind, dass sie möglichst gleichmäßig auf steigende und fallende Flanken reagieren.An advantageous realization of a TRNG source by means of a ring oscillator sampled at several locations is in 1 shown. This circuit arrangement has the advantage that a correlation to the system clock can be detected and errors can be detected if special implementation conditions with a uniform capacitive load of all nodes of the ring oscillator are present and the used switching elements, such as flip-flops, inverters, designed so constructive are that they react as equally as possible on rising and falling flanks.

Bei der Anwendung eines Oszillator-basierten TRNGs tritt das Problem auf, dass dieser auch testbar sein muss, um Hardware-Fehler zu entdecken. Da dieser zufällige Daten ausgibt, ist ein Test nicht ohne weiteres möglich.When using an oscillator-based TRNG, the problem arises that it must also be testable to detect hardware errors. Since this randomly outputs data, a test is not readily possible.

In der Druckschrift DE 60 2004 011 081 T2 wird eine Möglichkeit beschrieben, wie man eine TRNG-Quelle nach einem "Post Processing", einer sogenannten Nachbehandlung, testen kann und wie man dazu diese Nachbehandlung in einen Zertifizierungsmodus versetzt. Die TRNG-Quelle umfasst eine digitalisierte Rauschquelle, eine Nachverarbeitungseinheit mit Speicherelementen und eine Steuereinheit. Die Steuereinheit weist als Eingabe ein Zertifizierungsmodussignal und als Ausgabe ein Rücksetzsignal auf, das mit der Nachbearbeitungseinheit verbunden ist. Immer dann, wenn eine vorbestimmte Anzahl von Zufallsbits durch die Nachbearbeitungseinheit verarbeitet wurde und das Zertifizierungsmodussignal aktiv ist, gibt die Steuereinheit das Rücksetzsignal aus, woraufhin die Nachverarbeitungseinheit zurückgesetzt wird.In the publication DE 60 2004 011 081 T2 A way is described how to test a TRNG source after post-processing, and how to put this post-treatment into a certification mode. The TRNG source includes a digitized noise source, a post-processing unit with memory elements, and a controller. The control unit has as input a certification mode signal and as output a reset signal which is connected to the post-processing unit. Whenever a predetermined number of random bits have been processed by the post-processing unit and the certification mode signal is active, the control unit outputs the reset signal, whereupon the post-processing unit is reset.

Offenbarung der ErfindungDisclosure of the invention

Vor diesem Hintergrund werden ein Verfahren mit den Merkmalen des Anspruchs 1 und eine Schaltungsanordnung gemäß Anspruch 6 vorgestellt.Against this background, a method with the features of claim 1 and a circuit arrangement according to claim 6 are presented.

Ausführungsformen ergeben sich aus den abhängigen Ansprüchen und aus der Beschreibung.Embodiments emerge from the dependent claims and from the description.

Es wird ein Verfahren und eine Schaltungsanordnung vorgeschlagen, die es ermöglichen, einen Test des Zufallsgenerators auf Defekte und vorwiegend permanente Fehler durchzuführen. Als TRNG-Zufallsquelle dient dabei ein Ring-Oszillator. Es zeigt sich, dass ein Test des Ring-Oszillators in einem Betrieb, in dem dieser zufällige Zahlen ausgibt, nicht sinnvoll ist. Da bei dem vorgestellte Verfahren der Ring-Oszillator derart betrieben wird, dass dieser vorbestimmte bzw. deterministische Daten ausgibt, ist ein Test möglich. Somit kann festgestellt werden, ob bei der Herstellung Fehler, insbesondere strukturelle Fehler, aufgetreten sind. In der Anwendungsphase kann damit auch festgestellt werden, ob ein Bauteil defekt geworden ist.A method and a circuit arrangement is proposed which make it possible to carry out a test of the random generator for defects and predominantly permanent defects. The TRNG random source is a ring oscillator. It turns out that a test of the ring oscillator in an operation in which it spends random numbers does not make sense. Since in the presented method, the ring oscillator is operated so that this outputs predetermined or deterministic data, a test is possible. Thus, it can be determined whether errors, in particular structural errors, have occurred during production. In the application phase can thus be determined whether a component has become defective.

Es ist daher möglich, nicht nur eine Ausgabe des Zufallsgenerators hinsichtlich seiner Entropie zu überprüfen, sondern zu testen, ob der Zufallsgenerator grundsätzlich in der Lage ist, eine zufällige Folge von Ausgangsbits zu erzeugen oder ob dies aufgrund struktureller Fehler nicht möglich ist. Hierzu wird in einem ersten Betriebsmodus durch Vorgabe mindestens zweier Steuersignale der Ring-Oszillator in unterschiedliche Haltezustände versetzt. Die mindestens zwei Steuersignale ermöglichen es, Zustände der Speicherelemente vorzugeben und zwar so, dass jeder Zustand jedes Speicherelemenets vorzugeben ist.It is therefore possible to check not only an output of the random number generator for its entropy, but to test whether the random number generator is basically capable of generating a random series of output bits or whether this is not possible due to structural errors. For this purpose, the ring oscillator is set in different holding states in a first operating mode by specifying at least two control signals. The at least two control signals make it possible to specify states of the memory elements in such a way that each state of each memory element is to be specified.

Insbesondere ist das vorgestellte Verfahren in Verbindung mit einem sogenannten Schiebepfad bzw. einer Scan Chain anzuwenden. In einem zweiten Betriebsmodus sind zumindest erste Speicherelemente so verbunden, dass deren Werte, die jeweils den Zustand bestimmen, bitweise verschoben werden können, so dass diese Werte an mindestens einem Ausgang erscheinen. Es können auch zweite Speicherelemente vorgesehen sein, die mit den ersten Speicherelementen so verbunden sind, dass die Werte aller dieser ersten und zweiten Speicherelemente mittelbar oder unmittelbar an mindestens einem Ausgang bereitgestellt werden und/oder dass an mindestens einem Eingang bereitgestellte Werte in diesen zweiten Speicherelementen abgespeichert werden. Der erste Betriebsmodus ist somit der Arbeitsmodus, in dem die normale Funktion der Schaltungsanordnung ausgeführt wird. Der zweite Betriebsmodus ist der Schiebemodus, in dem Speicherelemente in einer Scan-Chain miteinander verbunden sind.In particular, the presented method is to be used in conjunction with a so-called sliding path or a scan chain. In a second operating mode, at least first memory elements are connected such that their values, which respectively determine the state, can be shifted bit-by-bit, so that these values appear at at least one output. It can also be provided second memory elements, which with the first memory elements are connected so that the values of all these first and second memory elements are provided directly or indirectly at least one output and / or that provided at least one input values are stored in these second memory elements. The first operating mode is thus the working mode in which the normal function of the circuit arrangement is carried out. The second mode of operation is the push mode, in which memory elements in a scan chain are interconnected.

Bei dieser Ausführung sind die ersten und die zweiten Speicherelemente in einer Scan Chain verbunden und können daher getestet werden. Üblicherweise ist zwischen ersten und zweiten Speicherelementen eine kombinatorische Schaltung vorgesehen, die dann ebenfalls getestet werden kann.In this embodiment, the first and second memory elements are connected in a scan chain and therefore can be tested. Usually, a combinatorial circuit is provided between the first and second memory elements, which can then also be tested.

Zum Wechsel zwischen den beiden Betriebsmodi ist mindestens ein Steuersignal vorgesehen. Durch die Aktivierung der Steuersignale und durch den Wechsel der Betriebsmodi in Verbindung mit den bereitgestellten Daten am Eingang können die am Ausgang bereitgestellten Daten überprüft werden, um Fehler in der Schaltungsanordnung festzustellen.For switching between the two operating modes, at least one control signal is provided. By activating the control signals and by changing the operating modes in conjunction with the provided data at the input, the data provided at the output can be checked to detect errors in the circuitry.

Die Ansteuerung der Steuersignale, die Wahl des Betriebsmodus und die Bereitstellung der Eingangssignale können durch ein Programm optimiert sein, ein sogenanntes ATPG (Automatic Test Pattern Generation), das eine möglichst kurze Testphase der Schaltungsanordnung mit einer hohen Fehlerabdeckung ermöglicht.The control of the control signals, the choice of the operating mode and the provision of the input signals can be optimized by a program, a so-called ATPG (Automatic Test Pattern Generation), which allows the shortest possible test phase of the circuit arrangement with a high error coverage.

Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und den beiliegenden Zeichnungen.Further advantages and embodiments of the invention will become apparent from the description and the accompanying drawings.

Es versteht sich, dass die voranstehend genannten und die nachstehend noch zu erläuternden Merkmale nicht nur in der jeweils angegebenen Kombination, sondern auch in anderen Kombinationen oder in Alleinstellung verwendbar sind, ohne den Rahmen der vorliegenden Erfindung zu verlassen.It is understood that the features mentioned above and those yet to be explained below can be used not only in the respectively specified combination but also in other combinations or alone, without departing from the scope of the present invention.

Kurze Beschreibung der ZeichnungenBrief description of the drawings

1 zeigt eine Ausführung eines Ring-Oszillators gemäß dem Stand der Technik. 1 shows an embodiment of a ring oscillator according to the prior art.

2 zeigt eine Ausführung des Ring-Oszillators zur Durchführung des beschriebenen Verfahrens. 2 shows an embodiment of the ring oscillator for carrying out the method described.

3 zeigt eine weitere Ausführung des Ring-Oszillators. 3 shows a further embodiment of the ring oscillator.

4 zeigt noch eine weitere Ausführung des Ring-Oszillators. 4 shows yet another embodiment of the ring oscillator.

5 zeigt eine weitere Ausführung des Ring-Oszillators. 5 shows a further embodiment of the ring oscillator.

6 zeigt noch eine weitere Ausführung des Ring-Oszillators. 6 shows yet another embodiment of the ring oscillator.

Ausführungsformen der ErfindungEmbodiments of the invention

Die Erfindung ist anhand von Ausführungsformen in den Zeichnungen schematisch dargestellt und wird nachfolgend unter Bezugnahme auf die Zeichnungen ausführlich beschrieben.The invention is schematically illustrated by means of embodiments in the drawings and will be described in detail below with reference to the drawings.

1 zeigt eine Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 10 bezeichnet ist. Der Ring-Oszillator 10 weist ein NAND-Glied 14 und acht Inverter 18 und somit neun invertierende Elemente auf. Damit verfügt der Ring-Oszillator 10 über eine ungerade Anzahl von invertierenden Elementen und drei Abgriffe bzw. Abtastpunkte. 1 shows an embodiment of a ring oscillator as a random source, the whole with the reference numeral 10 is designated. The ring oscillator 10 has a NAND member 14 and eight inverters 18 and thus nine inverting elements. This features the ring oscillator 10 over an odd number of inverting elements and three taps.

Gestartet und gestoppt werden kann der Ring-Oszillator 10 mit einem ersten Eingang 20. Die Abtastrate wird über einen zweiten Eingang 28 vorgegeben. Weiterhin zeigt die Darstellung einen ersten Abtastpunkt 22, einen zweiten Abtastpunkt 24 und einen dritten Abtastpunkt 26. Dies bedeutet, dass beginnend von dem ersten Abtastpunkt 22 immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung erfolgt. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 10 with a first entrance 20 , The sampling rate is via a second input 28 specified. Furthermore, the representation shows a first sampling point 22 , a second sampling point 24 and a third sampling point 26 , This means that starting from the first sampling point 22 always after an odd number of inverting elements, a sampling takes place. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 22 wird mit einem ersten Flipflop 30 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 24 wird mit einem zweiten Flipflop 32 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 26 wird mit einem dritten Flipflop 34 abgetastet, es ergibt sich der Abtastwert s12. Dem ersten Flipflop 30 ist ein weiteres viertes Flipflop 40 zugeordnet. Dies erfüllt eine Speicherfunktion und gibt den Wert s10’ aus, der dem Wert s10 zeitlich nachfolgt, d. h. s10 und s10’ sind zeitlich aufeinanderfolgende Abtastwerte des ersten Abtastpunkts 22. Entsprechend ist dem zweiten Flipflop 32 ein fünftes Flipflop 42, das s11’ ausgibt, und dem dritten Flipflop 34 ein sechstes Flipflop 44, das s12’ ausgibt, zugeordnet. Die Flipflops 40, 42 und 44 sind dazu geeignet, metastabile Zustände der Flipflops 30, 32 und 34 aufzulösen. Metastabile Zustände entstehen dadurch, dass ein Umschalten des Signals am Eingang 28 während einer Flanke am Abtastpunkt 22, 24 bzw. 26 erfolgt.The first sampling point 22 comes with a first flip flop 30 sampled, this results in the sample s10. The second sampling point 24 comes with a second flip flop 32 sampled, this results in the sample s11. The third sampling point 26 comes with a third flip flop 34 sampled, there is the sample s12. The first flip flop 30 is another fourth flipflop 40 assigned. This fulfills a memory function and outputs the value s10 'which follows the value s10 in time, ie s10 and s10' are time-sequential samples of the first sampling point 22 , Accordingly, the second flip-flop 32 a fifth flipflop 42 that outputs s11 'and the third flip-flop 34 a sixth flipflop 44 associated with s12 '. The flip flops 40 . 42 and 44 are suitable for metastable states of the flip-flops 30 . 32 and 34 dissolve. Metastable states arise when switching the signal at the input 28 during a flank at the sampling point 22 . 24 respectively. 26 he follows.

Die Flipflops 30, 32 und 34 benötigen dann eine bestimmte Zeit, bis ein stabiler Endzustand erreicht wird. Diese Zeit wird im vorliegenden Beispiel dadurch gewährleistet, dass erst bei der folgenden aktiven Flanke des Signals am Eingang 28 der inzwischen stabile Wert der Flipflops 30, 32 und 34 in die Flipflops 40, 42 und 44 übernommen wird. Die Flipflops 30, 32, 34, 40, 42 und 44 dienen als Speicherelemente.The flip flops 30 . 32 and 34 then take a certain time until a stable final state is reached. This time is in the present example This ensures that only at the next active edge of the signal at the input 28 the now stable value of the flip-flops 30 . 32 and 34 into the flip-flops 40 . 42 and 44 is taken over. The flip flops 30 . 32 . 34 . 40 . 42 and 44 serve as storage elements.

Grundsätzlich kann somit der Ring-Oszillator 10 aus bspw. neun Invertern 18 aufgebaut sein. Dabei kann einer dieser Inverter 18 durch das NAND-Element 14 ersetzt werden, um den Ring-Oszillator 10 anhalten zu können. Alternativ kann dieses NAND-Element 14 auch durch ein NOR-Element ersetzt werden.Basically, thus, the ring oscillator 10 from, for example, nine inverters 18 be constructed. It can be one of these inverters 18 through the NAND element 14 be replaced to the ring oscillator 10 to be able to stop. Alternatively, this NAND element 14 be replaced by a NOR element.

Die Werte des Ring-Oszillators 10 werden bei der gezeigten Ausführung an drei verschiedenen Invertern zeitgleich in je einem Flipflop (FF) 30, 32, 34 gespeichert. Diese Abgriffe sollen möglichst gleich über die Elemente des Ring-Oszillators 10 verteilt sein. Deshalb wird für den Fall von neun Invertierungsstufen im Ring-Oszillator 10 nach jeweils drei invertierenden Elementen ein Abgriff bzw. ein Abtastpunkt 22, 24, 26 vorgesehen. Wie bereits erwähnt, ist dies jedoch für das vorgestellte Verfahren nicht erforderlich. Es ist auch möglich, nach einer geraden Anzahl von invertierenden Elementen wieder einen Abgriff vorzusehen.The values of the ring oscillator 10 be in the embodiment shown on three different inverters simultaneously in a flip-flop (FF) 30 . 32 . 34 saved. These taps should be as equal as possible over the elements of the ring oscillator 10 be distributed. Therefore, in the case of nine inversion stages in the ring oscillator 10 after every three inverting elements a tap or a sampling point 22 . 24 . 26 intended. As already mentioned, however, this is not necessary for the process presented. It is also possible to provide a tap after an even number of inverting elements.

Die Anzahl der Inverterstufen in dem Ring-Oszillator 10 bestimmt die Frequenz des Oszillators und sollte deshalb so gewählt werden, dass die Flipflops 30, 32 und 34 dieser Frequenz folgen und den jeweiligen Signalwert speichern können. Wenn man eine möglichst hohe Oszillator-Frequenz verwendet, ist die Wahrscheinlichkeit, bei der Abtastung in der Nähe einer Flanke zu sein, höher. Deshalb wählt man eine möglichst geringe Anzahl von Invertern im Oszillator-Ring, jedoch so viel, dass die Flipflops für die erzielte Frequenz arbeitsfähig sind. Für eine 180 nm Technologie wurde simulativ eine Frequenz von ca. 1 GHz für den Ring-Oszillator 102 mit neun Invertern 18 bestimmt. Die Flipflos können die Signalwerte bei dieser Frequenz speichern, wie nachgewiesen wurde.The number of inverter stages in the ring oscillator 10 determines the frequency of the oscillator and should therefore be chosen so that the flip-flops 30 . 32 and 34 follow this frequency and can store the respective signal value. When using the highest possible oscillator frequency, the probability of being close to an edge in the sample is higher. Therefore, one chooses a minimum number of inverters in the oscillator ring, but so much that the flip-flops are able to operate for the frequency achieved. For a 180 nm technology was simulatively a frequency of about 1 GHz for the ring oscillator 102 with nine inverters 18 certainly. The flip-flops can store the signal values at that frequency, as demonstrated.

Das vorgestellte Verfahren kann mit dem Ring-Oszillator 10 entsprechend 1 durchgeführt werden, der eine ungerade Anzahl an invertierenden Elementen aufweist, wobei an mindestens einem Abtastpunkt des Ring-Oszillators 10 Werte abgegriffen werden.The presented method can be used with the ring oscillator 10 corresponding 1 having an odd number of inverting elements, wherein at least one sampling point of the ring oscillator 10 Values are tapped.

Für den Ring-Oszillator 10 kann eine Korrelation zu dem Systemtakt und damit zu dem daraus gewonnenen Abtasttakt festgestellt werden. Dazu vergleicht man, ob die drei Bitwerte am Ausgang der Flipflops 30, 32 und 34 identisch sind mit denen am Ausgang der Flipflops 40, 42 und 44. Nicht alle Korrelationen sind dabei durch den Vergleich von s10, s11, s12 mit s10', s11', s12' feststellbar, auch wenn der Teiler-Wert des Frequenzteilers durch die Anzahl der invertierenden Elemente im Ring-Oszillator teilbar ist. Es kann dabei vorkommen, dass jeweils nach einer beliebigen, ggf. konstanten Anzahl von Abtastungen immer wieder an der gleichen Position im Oszillator-Zyklus abgetastet wird. Ist diese Anzahl nicht gleichzeitig ein Teiler der Anzahl invertierender Elemente im Ring-Oszillator, bekommt man durch den vorstehend beschriebenen Vergleich keinen Hinweis auf die vorliegende Korrelation. Es ist dann trotzdem möglich, die Korrelation festzustellen, wenn man alle Abtastungen mit der aktuellen Abtastung vergleicht. Dies ist jedoch sehr aufwendig.For the ring oscillator 10 a correlation to the system clock and thus to the sampling clock obtained therefrom can be determined. This is done by comparing the three bit values at the output of the flip-flops 30 . 32 and 34 identical to those at the output of the flip-flops 40 . 42 and 44 , Not all correlations can be determined by comparing s10, s11, s12 with s10 ', s11', s12 ', even if the divider value of the frequency divider is divisible by the number of inverting elements in the ring oscillator. It may happen that in each case after an arbitrary, possibly constant number of samples is scanned again and again at the same position in the oscillator cycle. If this number is not at the same time a divisor of the number of inverting elements in the ring oscillator, the above-described comparison gives no indication of the present correlation. It is still possible to determine the correlation when comparing all the samples to the current sample. However, this is very expensive.

Für den Ring-Oszillator gemäß 1 mit bspw. 9 Invertern und 3 Abtastpunkten wechseln die an den Abtastpunkten gespeicherten Bitwerte in der Regel nach einer nicht zu hohen Anzahl von Abtastungen zumindest einen Bitwert. Eine hohe Anzahl von aufeinanderfolgenden gleichen Bitwerten wird durch die Zählung von Warnungen erkannt und entweder ein Fehler signalisiert oder ein Einfluss auf die Frequenz des Oszillators vorgenommen.For the ring oscillator according to 1 with eg. 9 Inverters and 3 sampling points, the bit values stored at the sampling points generally change at least one bit value after a not too high number of samples. A high number of consecutive equal bit values are detected by the counting of warnings and either an error is signaled or an influence on the frequency of the oscillator is made.

Es wurde erkannt, dass ausgehend von einer Zufallsquelle, die bspw. aus einem Ring-Oszillator mit mehreren Abtastpunkten besteht, es für einen Produktionstest vorteilhaft ist, die Werte der Flipflops 30, 32, 34 vorgeben zu können.It has been found that starting from a random source, which for example consists of a ring oscillator with several sampling points, it is advantageous for a production test, the values of the flip-flops 30 . 32 . 34 to pretend.

2 zeigt eine Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 100 bezeichnet ist. Der Ring-Oszillator 100, der in einer Schaltungsanordnung 102 als Zufallsquelle dient, weist ein erstes NAND-Glied 114, ein zweites NAND-Glied 116 und sieben Inverter 118 und somit eine ungerade Anzahl an invertierenden Elementen auf. 2 shows an embodiment of a ring oscillator as a random source, the whole with the reference numeral 100 is designated. The ring oscillator 100 in a circuit arrangement 102 as a random source, has a first NAND gate 114 , a second NAND member 116 and seven inverters 118 and thus an odd number of inverting elements.

Gestartet und gestoppt werden kann der Ring-Oszillator 100 mit einem ersten Eingang 120, an dem ein Steuersignal start1 angelegt wird und der am ersten NAND-Glied 114 anliegt. Die Abtastrate wird über einen zweiten Eingang 128 vorgegeben. Zusätzlich ist ein dritter Eingang 148 vorgesehen, an dem ein Steuersignal start2 angelegt wird und der eine Eingabe am zweiten NAND-Glied 116 ermöglicht. Weiterhin sind ein erster Abtastpunkt 122, ein zweiter Abtastpunkt 124 und ein dritter Abtastpunkt 126 vorgesehen. Beginnend von dem ersten Abtastpunkt 122 erfolgt somit immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 100 with a first entrance 120 at which a control signal start1 is applied and that at the first NAND gate 114 is applied. The sampling rate is via a second input 128 specified. In addition, there is a third entrance 148 provided at which a control signal start2 is applied and the input to the second NAND gate 116 allows. Furthermore, a first sampling point 122 , a second sampling point 124 and a third sampling point 126 intended. Starting from the first sampling point 122 Thus, a sampling always takes place after an odd number of inverting elements. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 122 wird mit einem ersten Flipflop 130 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 124 wird mit einem zweiten Flipflop 132 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 126 wird mit einem dritten Flipflop 134 abgetastet, es ergibt sich der Abtastwert s12. Diese Abtastwerte werden in eine Verarbeitungsschaltung 150 eingegeben, die wiederum einen Ausgang 152 für eine Ausgabe hat.The first sampling point 122 comes with a first flip flop 130 sampled, this results in the sample s10. The second sampling point 124 comes with a second flip flop 132 scanned, it results in the Sample s11. The third sampling point 126 comes with a third flip flop 134 sampled, there is the sample s12. These samples are put into a processing circuit 150 entered, which in turn has an output 152 for an edition.

Die Flipflops 130, 132 und 134, die als erste Speicherelemente dienen, benötigen eine bestimmte Zeit, bis ein stabiler Endzustand erreicht wird. In der Verarbeitungsschaltung 150 können entsprechend der Ausführung aus 1 wiederum weitere Flipflops, entsprechend der Flipflops 40, 42 und 44 aus 1, vorgesehen sein.The flip flops 130 . 132 and 134 , which serve as the first storage elements, take a certain time until a stable final state is reached. In the processing circuit 150 can be made according to the execution 1 in turn, more flip-flops, according to the flip-flops 40 . 42 and 44 out 1 , be provided.

Der in 2 gezeigte Ring-Oszillator 100 ist vergleichbar dem Ring-Oszillator 10 aus 1 aufgebaut, wobei hier erfindungsgemäß zwei NAND-Elemente 114, 116 eingesetzt werden. Während nach dem Stand der Technik nur ein NAND-Element 14 (1) eingesetzt wird, verfügen die zwei NAND-Elemente 114, 116 mit den zwei Eingängen 120 und 148 und den beiden Steuersignalen start1 und start2 über die Möglichkeit, für jedes Flipflop 130, 132, 134 beide möglichen Zustände über den Dateneingang einzulesen. Ist zum Beispiel start2 = 0, so wird mittels Abtasttakt der Zustand 0-1-0 für die drei Signale s10, s11 und s12 eingestellt. Sind start2 = 1 und start1 = 0, so stellt sich entsprechend der Zustand 1-0-1 ein. Nach dem Stand der Technik befindet sich nur ein NAND im Ring-Oszillator, so dass nur einer dieser beiden Zustände deterministisch erreichbar ist. Bei der in 2 dargestellten Ausführung ist zu beachten, dass der Ring-Oszillator 100 unsymmetrisch aufgebaut ist. The in 2 shown ring oscillator 100 is similar to the ring oscillator 10 out 1 constructed, here according to the invention, two NAND elements 114 . 116 be used. While according to the prior art only a NAND element 14 ( 1 ), the two NAND elements have 114 . 116 with the two entrances 120 and 148 and the two control signals start1 and start2 about the possibility for each flip-flop 130 . 132 . 134 read both possible states via the data input. If, for example, start2 = 0, the state 0-1-0 is set for the three signals s10, s11 and s12 by means of a sampling clock. If start2 = 1 and start1 = 0, state 1-0-1 is set accordingly. According to the prior art, there is only one NAND in the ring oscillator, so that only one of these two states can be reached deterministically. At the in 2 It should be noted that the ring oscillator 100 is constructed asymmetrically.

3 zeigt eine Ausführung eines Ring-Oszillators als Zufallsquelle in einer Schaltungsanordnung 202, welcher insgesamt mit der Bezugsziffer 200 bezeichnet ist. Der Ring-Oszillator 200 weist ein erstes NAND-Glied 214, ein zweites NAND-Glied 215, ein drittes NAND-Glied 216 und sechs Inverter 218 und somit neun invertierende Elemente auf. Der Ring-Oszillator 200 weist somit eine ungerade Anzahl von invertierenden Elementen auf. 3 shows an embodiment of a ring oscillator as a random source in a circuit arrangement 202 , which in total with the reference number 200 is designated. The ring oscillator 200 has a first NAND member 214 , a second NAND member 215 , a third NAND link 216 and six inverters 218 and thus nine inverting elements. The ring oscillator 200 thus has an odd number of inverting elements.

Gestartet und gestoppt werden kann der Ring-Oszillator 200 mit einem ersten Eingang 220 (Steuersignal start1), der am ersten NAND-Glied 214 anliegt. Die Abtastrate wird über einen zweiten Eingang 228 vorgegeben. Zusätzlich sind ein dritter Eingang 248 (Steuersignal start2), der eine Eingabe am zweiten NAND-Glied 215 ermöglicht, und ein vierter Eingang 249 (Steuersignal start3), der eine Eingabe am dritten NAND-Glied 216 ermöglicht, vorgesehen. Weiterhin sind ein erster Abtastpunkt 222, ein zweiter Abtastpunkt 224 und ein dritter Abtastpunkt 226 vorgesehen. Beginnend von dem ersten Abtastpunkt 222 erfolgt somit immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 200 with a first entrance 220 (Control signal start1), which is at the first NAND gate 214 is applied. The sampling rate is via a second input 228 specified. In addition, there is a third entrance 248 (Control signal start2), which is an input to the second NAND gate 215 allows, and a fourth input 249 (Control signal start3), which is an input to the third NAND gate 216 allows, provided. Furthermore, a first sampling point 222 , a second sampling point 224 and a third sampling point 226 intended. Starting from the first sampling point 222 Thus, a sampling always takes place after an odd number of inverting elements. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 222 wird mit einem ersten Flipflop 230 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 224 wird mit einem zweiten Flipflop 232 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 226 wird mit einem dritten Flipflop 234 abgetastet, es ergibt sich der Abtastwert s12. Diese Abtastwerte werden in eine Verarbeitungsschaltung 250 eingegeben, die wiederum einen Ausgang 252 für eine Ausgabe hat.The first sampling point 222 comes with a first flip flop 230 sampled, this results in the sample s10. The second sampling point 224 comes with a second flip flop 232 sampled, this results in the sample s11. The third sampling point 226 comes with a third flip flop 234 sampled, there is the sample s12. These samples are put into a processing circuit 250 entered, which in turn has an output 252 for an edition.

Zu beachten ist, dass die Flipflops 230, 232 und 234, die als erste Speicherelemente dienen, eine bestimmte Zeit benötigen, bis ein stabiler Endzustand erreicht wird. In der Verarbeitungsschaltung 250 können entsprechend der Ausführung aus 1 wiederum weitere Flipflops, entsprechend der Flipflops 40, 42 und 44 aus 1, vorgesehen sein.It should be noted that the flip flops 230 . 232 and 234 which serve as first storage elements, take a certain time until a stable final state is reached. In the processing circuit 250 can be made according to the execution 1 in turn, more flip-flops, according to the flip-flops 40 . 42 and 44 out 1 , be provided.

Bei der Ausführung gemäß 3 wird im Gegensatz zur Ausführung aus 2 eine besser ausbalancierte Schaltung erreicht. Dies wird durch den symmetrischen Aufbau erreicht. Hier wählt man die drei Ansteuerungen mit jeweils einem starti = 0 (i = 1, 2, 3), wobei die anderen starti = 1 sind. Auch dadurch wird erreicht, dass alle Ausgangssignale die Werte 0 bzw. 1 annehmen. In einer weiteren Ausgestaltung der Erfindung kann man auch das erste NAND 114 in 2 durch ein UND-NOR-Element ersetzen mit der Funktion x = /((start1 & ro9) v start2) (1) wobei x das Ausgangssignal des UND-NOR-Elements ist und wobei ro9 der Ausgang des neunten invertierten Elements des Ring-Oszillators 200 ist, nämlich eine Rückführung vom letzten Inverter 118 am Abtastpunkt 126 unten rechts in 2, & die UND-Verknüpfung, v die ODER-Verknüpfung, / die Invertierung und start1,2 die zwei Eingangssignale bedeuten. Das zweite NAND 116 ist dann nur ein Inverter. Ist hier start2 = 0, so wird mit start1 = 0 der Haltzustand 1-0-1 erreicht und für start2 = 1 der Zustand 0-1-0. Zu beachten ist dabei, dass das Signal start2 im Vergleich zu dem gleichnamigen Signal in 2 invertiert aktiviert werden muss.In the execution according to 3 is unlike the execution 2 achieved a better balanced circuit. This is achieved by the symmetrical structure. Here you choose the three controls with one starti = 0 (i = 1, 2, 3), where the other starti = 1. This also ensures that all output signals assume the values 0 and 1 respectively. In a further embodiment of the invention, it is also possible to use the first NAND 114 in 2 by an AND-NOR element replace with the function x = / ((start1 & ro9) v start2) (1) where x is the output of the AND-NOR element and where ro9 is the output of the ninth inverted element of the ring oscillator 200 is, namely a return from the last inverter 118 at the sampling point 126 bottom right in 2 , & the AND link, v the OR link, / the inversion and start1,2 mean the two input signals. The second NAND 116 is then only an inverter. If start2 = 0, the stop state 1-0-1 is reached with start1 = 0 and the state 0-1-0 for start2 = 1. It should be noted that the signal start2 in comparison to the signal of the same name in 2 inverted must be activated.

Werden die Signale s10, s11 und s12 nach außen geführt, so ist damit testbar, ob das Abtasten des Ring-Oszillators für beide Werte möglich ist. Je nachdem, wie viele Flipflops eingesetzt werden, kann das zu einer großen Anzahl von notwendigen Ausgängen führen. Es ist deshalb sinnvoll, die Ergebnisse in Speicherelementen zu speichern, die auch als Schieberegister schaltbar sind. Dann kann man diese Werte auch seriell über einen Ausgang übertragen.If the signals s10, s11 and s12 are conducted to the outside, then it is possible to test whether the sampling of the ring oscillator is possible for both values. Depending on how many flip-flops are used, this can lead to a large number of necessary outputs. It is therefore useful to store the results in memory elements that can also be switched as a shift register. Then these values can also be transmitted serially via an output.

In einer weiteren Ausgestaltung der Erfindung sind die Flipflops als Speicherelemente selbst als Schieberegister zusammenschaltbar, indem man sie zu einer Scan Chain zusammenschaltet. In a further embodiment of the invention, the flip-flops can be interconnected as memory elements themselves as a shift register by connecting them together to form a scan chain.

Mit Scan Chain wird bei digitalen Schaltungen ein Verfahren zum Testen hinsichtlich struktureller Schäden bezeichnet. Bei diesem werden alle in der Schaltung verwendete Flipflops, die als Speicherelemente dienen, hintereinandergeschaltet. With scan chain, digital circuits are a method of testing for structural damage. In this case, all the flip-flops used in the circuit, which serve as memory elements, are connected in series.

Diese Umschaltmöglichkeit ist jedoch sehr sorgfältig anzuwenden, weil dann ggf. notwendigerweise zwischen dem Ring-Oszillator und dem Abtast-Flipflop jeweils ein Multiplexer dazwischengeschaltet ist. Dieser Multiplexer ist so zu wählen, dass er der hohen Schaltfrequenz des Ring-Oszillators (ca. 1 GHz) beim Abtasten folgen kann. Er muss also genauso schnell schalten können wie die Elemente des Ring-Oszillators und das Abtast-Flipflop selbst. However, this switching possibility is very carefully applied, because then possibly necessarily between the ring oscillator and the sample flip-flop a multiplexer is interposed. This multiplexer should be selected so that it can follow the high switching frequency of the ring oscillator (approximately 1 GHz) during sampling. So it has to be able to switch just as fast as the elements of the ring oscillator and the sampling flip-flop itself.

In 4 ist eine solche Möglichkeit gezeigt. Die Darstellung zeigt eine Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 300 bezeichnet ist und in einer Schaltungsanordnung 302 aufgenommen ist. Der Ring-Oszillator 300 weist ein erstes NAND-Glied 314, ein zweites NAND-Glied 316 und sieben Inverter 318 und somit neun invertierende Elemente auf. Der Ring-Oszillator 300 weist somit eine ungerade Anzahl von invertierenden Elementen auf.In 4 such a possibility is shown. The illustration shows an embodiment of a ring oscillator as a random source, the whole by the reference numeral 300 is designated and in a circuit arrangement 302 is included. The ring oscillator 300 has a first NAND member 314 , a second NAND member 316 and seven inverters 318 and thus nine inverting elements. The ring oscillator 300 thus has an odd number of inverting elements.

Gestartet und gestoppt werden kann der Ring-Oszillator 300 mit einem ersten Eingang 320, an dem ein Steuersignal start1 am ersten NAND-Glied 314 angelegt wird. Die Abtastrate wird über einen zweiten Eingang 328 vorgegeben. Zusätzlich ist ein dritter Eingang 348 vorgesehen, an dem ein Steuersignal start2 angelegt wird und der eine Eingabe am zweiten NAND-Glied 316 ermöglicht. Weiterhin sind ein erster Abtastpunkt 322, ein zweiter Abtastpunkt 324 und ein dritter Abtastpunkt 326 vorgesehen. Beginnend von dem ersten Abtastpunkt 322 erfolgt somit immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 300 with a first entrance 320 to which a control signal start1 at the first NAND gate 314 is created. The sampling rate is via a second input 328 specified. In addition, there is a third entrance 348 provided at which a control signal start2 is applied and the input to the second NAND gate 316 allows. Furthermore, a first sampling point 322 , a second sampling point 324 and a third sampling point 326 intended. Starting from the first sampling point 322 Thus, a sampling always takes place after an odd number of inverting elements. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 322 wird über einen ersten Multiplexer 360 mit einem ersten Flipflop 330 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 324 wird über einen zweiten Multiplexer 362 mit einem zweiten Flipflop 332 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 326 wird über einen dritten Multiplexer 364 mit einem dritten Flipflop 334 abgetastet, es ergibt sich der Abtastwert s12. Diese Abtastwerte werden in eine Verarbeitungsschaltung 350 eingegeben, die wiederum einen Ausgang 352 für eine Ausgabe hat.The first sampling point 322 is via a first multiplexer 360 with a first flip flop 330 sampled, this results in the sample s10. The second sampling point 324 is via a second multiplexer 362 with a second flip-flop 332 sampled, this results in the sample s11. The third sampling point 326 is via a third multiplexer 364 with a third flip flop 334 sampled, there is the sample s12. These samples are put into a processing circuit 350 entered, which in turn has an output 352 for an edition.

Mit Hilfe eines gemeinsamen Steuersignals Phase am Eingang 370 schalten die Multiplexer 360, 362, 364 zwischen einer Abtastphase und einer Schiebephase um. Dabei werden während der Abtastphase die Abgriffe bzw. Abtastpunkte 322, 324, 326 des Ring-Oszillators 300 mit den Flipflops 330, 332, 334 verbunden und während der Schiebephase sind die Flipflops 330, 332, 334 miteinander verbunden, sodass am Ausgang 372 Scan-Out die Signale der drei Abtast-Flipflops 330, 332, 334 nacheinander ausgegeben werden. Die Werte werden dabei über einen Eingang Scan-In 374 vorgegeben. Damit ist in Verbindung mit der Einstellung des Oszillators 300 in den mindestens zwei verschiedenen Anhalte-Zuständen ein Test der Eingangsstufen der Abtast-Flipflops möglich. Man wählt dazu in der Abtastphase einen spezifischen Zustand des Ring-Oszillators 300 aus, aktiviert einmal den Abtasttakt und schaltet danach in die Schiebephase um. Mit dem dann aktivierten Abtasttakt werde die Werte der Abtast-Flipflops 330, 332, 334 nacheinander zum Ausgang 372 Scan-Out geschoben. Den gleichen Vorgang führt man dann mit dem anderen Oszillator-Zustand durch. Dadurch wird getestet, ob die Abtast-Flipflops 330, 332, 334 die zwei Werte 0 und 1 jeweils abtasten können.With the help of a common control signal phase at the entrance 370 turn on the multiplexers 360 . 362 . 364 between a sampling phase and a shift phase. During the sampling phase, the taps or sampling points are thereby 322 . 324 . 326 of the ring oscillator 300 with the flip-flops 330 . 332 . 334 connected and during the shift phase are the flip-flops 330 . 332 . 334 interconnected, so at the exit 372 Scan out the signals of the three sample flip-flops 330 . 332 . 334 be issued one after the other. The values are sent via an input Scan-In 374 specified. This is in conjunction with the setting of the oscillator 300 in the at least two different stop states, a test of the input stages of the sample flip-flops possible. One chooses a specific state of the ring oscillator in the sampling phase 300 off, once the sampling clock and then switches to the shift phase. With the then activated sampling clock, the values of the sampling flip-flops 330 . 332 . 334 one after the other to the exit 372 Scan-out pushed. The same process is then performed with the other oscillator state. This will test if the sample flip-flops 330 . 332 . 334 can sample the two values 0 and 1 respectively.

Soll nun auch die nachfolgende Verarbeitungsschaltung 350 getestet werden, so ist es sinnvoll, dass nicht nur ausgewählte Zustände der Abtast-Flipflops 330, 332, 334 einstellbar sind, sondern beliebige Zustände erreichbar sind. Das ist dadurch möglich, dass der Eingang Scan-In 374 in der Schiebephase mit entsprechenden Werten belegt wird. Wenn danach wieder in die normale Arbeitsphase (Abtastphase) zurückgeschaltet wird, kann die Verarbeitungsschaltung 350 mit diesen vorbelegten Werten die Verarbeitung vornehmen. Wichtig ist dabei, dass der Abtasttakt an den Abtast-Flipflops 330, 332, 334 nicht aktiv ist, weil sonst wieder die Werte des Ring-Oszillators 300 übernommen würden. Ein eventuell in der Verarbeitungseinheit 350 benötigter Takt ist in dieser Schaltungsvariante unabhängig von dem Abtasttakt zu aktivieren und über einen Eingang 376 vorzugeben. Weitere Möglichkeiten mit einem gemeinsamen einheitlichen Takt werden noch nachfolgend untersucht.Should now also the subsequent processing circuit 350 be tested, so it makes sense that not only selected states of the sample flip-flops 330 . 332 . 334 are adjustable, but any state can be reached. This is possible because the input Scan-In 374 is assigned in the sliding phase with corresponding values. If it is then switched back to the normal working phase (sampling phase), the processing circuit 350 process with these default values. It is important that the sampling clock at the sampling flip-flops 330 . 332 . 334 is not active, because otherwise the values of the ring oscillator again 300 would be taken over. One possibly in the processing unit 350 required clock is to be activated in this circuit variant regardless of the sampling clock and an input 376 pretend. Further possibilities with a common uniform clock will be examined below.

Die Flipflops in der Verarbeitungseinheit 350 speichern im Rahmen der Verarbeitung Werte in weiteren Speicherelementen (Flipflops) ab. Wenn diese Flipflops in die Scan Chain aufgenommen werden, d. h. wenn in der Schiebephase auch diese Flipflops mit dem Ausgang Scan-Out verbunden sind, dann kann man auch diese Werte in der Schiebephase auslesen und damit beobachtbar machen. Man kann dann eine beliebige Belegung der Abtast-Flipflops über Scan-In in der Schiebephase einstellen, in die Abtast-Phase, hier jedoch vorzugsweise während des inaktiven Abtasttakts, umschalten und mit Hilfe eines Verarbeitungstakts die Verarbeitung der Signale vornehmen. Dabei werden die Ergebnisse dieser Verarbeitung in Speicherelementen gespeichert, die in einer nachfolgenden Schiebephase, nämlich mit aktivem Abtasttakt und Verarbeitungstakt zum Schieben, am Ausgang Scan-Out ausgegeben werden. Wichtig ist dabei die Überprüfung der Schaltgeschwindigkeit der eingefügten Multiplexer und die Auftrennung des Takts zwischen Abtast-Flipflops und Verarbeitungsschaltung in der Verarbeitungsphase. Es wird hierzu auf 5 verwiesen. The flip-flops in the processing unit 350 During processing, values are stored in additional memory elements (flip-flops). If these flip-flops are included in the scan chain, ie if these flip-flops are also connected to the output Scan-Out in the shift phase, then these values can also be read in the shift phase and made observable thereby. One can then set any assignment of the sampling flip-flops via scan-in in the shift phase, in the sampling phase, but here preferably during the inactive sampling clock, switch over and make the processing of the signals by means of a processing clock. The results of this processing are stored in memory elements which are output in a subsequent shift phase, namely with active sampling clock and processing clock for pushing, at the output Scan-Out. Important is the verification of the switching speed of the inserted multiplexer and the separation of the clock between sampling flip-flops and processing circuit in the processing phase. It is on this 5 directed.

5 zeigt Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 400 bezeichnet und in einer Schaltungsanordnung 402 aufgenommen ist. Der Ring-Oszillator 400 weist ein erstes NAND-Glied 414, ein zweites NAND-Glied 416 und sieben Inverter 418 und somit neun invertierende Elemente auf. Der Ring-Oszillator 400 weist somit eine ungerade Anzahl von invertierenden Elementen auf. 5 shows execution of a ring oscillator as a random source, the whole by the reference numeral 400 designated and in a circuit arrangement 402 is included. The ring oscillator 400 has a first NAND member 414 , a second NAND member 416 and seven inverters 418 and thus nine inverting elements. The ring oscillator 400 thus has an odd number of inverting elements.

Gestartet und gestoppt werden kann der Ring-Oszillator 400 mit einem ersten Eingang 420, an dem ein Steuersignal start1 am ersten NAND-Glied 414 angelegt wird. Zusätzlich ist ein dritter Eingang 448 vorgesehen, an dem ein Steuersignal start2 angelegt wird und der eine Eingabe am zweiten NAND-Glied 416 ermöglicht. Weiterhin sind ein erster Abtastpunkt 422, ein zweiter Abtastpunkt 424 und ein dritter Abtastpunkt 426 vorgesehen. Beginnend von dem ersten Abtastpunkt 422 erfolgt somit immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 400 with a first entrance 420 to which a control signal start1 at the first NAND gate 414 is created. In addition, there is a third entrance 448 provided at which a control signal start2 is applied and the input to the second NAND gate 416 allows. Furthermore, a first sampling point 422 , a second sampling point 424 and a third sampling point 426 intended. Starting from the first sampling point 422 Thus, a sampling always takes place after an odd number of inverting elements. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 422 wird über einen ersten Multiplexer 460 mit einem ersten Flipflop 430 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 424 wird über einen zweiten Multiplexer 462 mit einem zweiten Flipflop 432 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 426 wird über einen dritten Multiplexer 464 mit einem dritten Flipflop 434 abgetastet, es ergibt sich der Abtastwert s12. The first sampling point 422 is via a first multiplexer 460 with a first flip flop 430 sampled, this results in the sample s10. The second sampling point 424 is via a second multiplexer 462 with a second flip-flop 432 sampled, this results in the sample s11. The third sampling point 426 is via a third multiplexer 464 with a third flip flop 434 sampled, there is the sample s12.

Die Darstellung zeigt weiterhin ein erstes XOR-Glied 450, ein zweites XOR-Glied 452, ein Flipflop 453 einen vierten Multiplexer 454, einen Takt-Teiler 456, ein Verzögerungselement 458, einen Takt-Umschalter 460 und am Ausgang des vierten Multiplexers 454 ein Flipflop 465. An einem ersten Takteingang 470 wird ein erster Abtasttakt (Abtasttakt1) und an einem zweiten Takteingang 472 ein zweiter Abtasttakt (Abtasttakt2) vorgegeben.The illustration also shows a first XOR element 450 , a second XOR gate 452 , a flip-flop 453 a fourth multiplexer 454 , a clock divider 456 , a delay element 458 , a clock switch 460 and at the output of the fourth multiplexer 454 a flip flop 465 , At a first clock input 470 is a first sampling clock (sampling clock 1) and at a second clock input 472 a second sampling clock (sampling clock 2) predetermined.

Der erste Abtasttakt dient dabei dazu, die Flipflops 430, 432 und 434 mit den entsprechenden Startwerten – entweder vom angehaltenen Ring-Oszillator an den Abtastpunkten 422, 424 und 426 oder von dem Scan-In-Eingang 485 seriell eingegebenen Werten – die dann in der Verarbeitungsphase konstant bleiben, weil der erste Abtasttakt dann abgeschaltet wird. Mit Bezugsziffer 487 ist der Ausgang Scan-Out bezeichnet.The first sampling clock is used to the flip-flops 430 . 432 and 434 with the appropriate starting values - either from the stopped ring oscillator at the sampling points 422 . 424 and 426 or from the scan-in input 485 serially entered values - which then remain constant in the processing phase because the first sampling clock is then turned off. With reference number 487 is the output called Scan-Out.

In der Verarbeitungsphase ist der Abtasttakt1 = 0 und nur der Abtasttakt2 aktiv. Der Taktumschalter 460 ist dann in der gezeichneten linken Position. In der Schiebephase sind jedoch der Abspeichertakt und der Abtasttakt1 gleich, nämlich Takt-Umschalter 460 auf der rechten Position. Der Abtasttakt2 ist dann typischerweise nicht aktiv, weil nur die Scan Chain auf Schiebebetrieb geschaltet ist. Alle Flipflops in dieser Schiebekette müssen dann vom gleichen Takt gesteuert werden (Abtasttakt1).In the processing phase, sampling clock 1 = 0 and only sampling clock 2 is active. The clock switch 460 is then in the drawn left position. However, in the shift phase, the store clock and the sample clock 1 are the same, namely, clock switches 460 in the right position. The sampling clock 2 is then typically not active, because only the scan chain is switched to shift operation. All flip-flops in this shift chain must then be controlled by the same clock (sampling clock 1).

In einer weiteren Ausgestaltung der Erfindung ist es auch möglich, einen gemeinsamen Abtasttakt zu benutzen (Abtasttakt1 = Abtasttakt2). Das ist genau dann möglich, wenn die Speicherelemente (Flipflops) in dem Taktteiler 456 in die Schiebekette (Scan Chain) mit aufgenommen werden. Dazu wird vor jedem Speicherelement des Taktteilers 456 ein Multiplexer angeordnet, dessen einer Eingang mit dem Ausgang eines anderen Speicherelements verbunden ist (wie die Verbindung der Flipflops 430, 432 und 434 mit den vorgeschalteten Multiplexern 460, 462 und 464. Der entsprechende Eingang des Multiplexers am ersten Speicherelement des Takt-Teilers 456 wird dann mit dem Eingang Scan-In 485 verbunden und der entsprechende Eingang des Multiplexers 464 ist anstatt mit Scan-In mit dem Ausgang des letzten Speicherelements des Taktteilers 456 zu verbinden. Weiterhin kann man in entsprechender Weise auch die Flipflops 452 und 458 in entsprechender Weise in die Scan-Chain einbeziehen. Dadurch ist es möglich, die Werte aller Speicherelemente der Schaltung in der Schiebephase beliebig vorzugeben. Der Taktteiler 456 kann damit bspw. so voreingestellt werden, dass genau mit dem nächsten Abtasttakt ein Ausgangswechsel am Takt-Teiler erfolgt, der am Flipflop 458 festgestellt werden kann. Das Flipflop 458 muss dazu anstelle mit dem Systemtakt mit dem Abtasttakt angesteuert werden.In a further embodiment of the invention, it is also possible to use a common sampling clock (sampling clock 1 = sampling clock 2). This is possible if and only if the memory elements (flip-flops) in the clock divider 456 into the slide chain (scan chain). This is done before each memory element of the clock divider 456 a multiplexer is arranged, whose one input is connected to the output of another memory element (as the connection of the flip-flops 430 . 432 and 434 with the upstream multiplexers 460 . 462 and 464 , The corresponding input of the multiplexer on the first memory element of the clock divider 456 is then used with the input Scan-In 485 connected and the corresponding input of the multiplexer 464 is instead of scanning in with the output of the last memory element of the clock divider 456 connect to. Furthermore, you can in a similar way, the flip-flops 452 and 458 in the same way in the scan chain. This makes it possible to specify the values of all memory elements of the circuit in the shift phase arbitrarily. The clock divider 456 Thus, for example, it can be preset in such a way that exactly at the next sampling clock an output change takes place at the clock divider, which is at the flip-flop 458 can be determined. The flip flop 458 must be controlled instead of the system clock with the sampling clock.

In einer weiteren Ausgestaltung der Erfindung kann man auf das Flipflop 458 ganz verzichten, wenn man das Flipflop 453 nicht asynchron sondern synchron zurücksetzt. Dazu wird in die Rückführung vom Flipflop 453 zum XOR 452 ein Schaltungselement eingesetzt, das immer eine 0 liefert, wenn der Ausgang des Frequenzteilers 456 = 1 ist.In a further embodiment of the invention, one can access the flip-flop 458 completely dispense with the flip flop 453 not asynchronous but resets synchronously. This is done in the feedback from the flip flop 453 to the XOR 452 a circuit element is used, which always supplies a 0, if the output of the frequency divider 456 = 1.

6 zeigt eine entsprechende Ausgestaltung, wobei auch ein Multiplexer 580 vor dem Flipflop 553 eingezeichnet. 6 zeigt Ausführung eines Ring-Oszillators als Zufallsquelle, der insgesamt mit der Bezugsziffer 500 bezeichnet und in einer Schaltungsanordnung 502 aufgenommen ist. Der Ring-Oszillator 500 weist ein erstes NAND-Glied 514, ein zweites NAND-Glied 516 und sieben Inverter 518 und somit neun invertierende Elemente auf. Der Ring-Oszillator 500 weist somit eine ungerade Anzahl von invertierenden Elementen auf. 6 shows a corresponding embodiment, wherein also a multiplexer 580 in front of the flip flop 553 located. 6 shows execution of a ring oscillator as a random source, the whole by the reference numeral 500 designated and in a circuit arrangement 502 is included. The ring oscillator 500 has a first NAND member 514 , a second NAND member 516 and seven inverters 518 and thus nine inverting elements. The ring oscillator 500 thus has an odd number of inverting elements.

Gestartet und gestoppt werden kann der Ring-Oszillator 500 mit einem ersten Eingang 520, an dem ein Steuersignal start1 am ersten NAND-Glied 514 angelegt wird. Die Abtastrate wird über einen zweiten Eingang 570 vorgegeben. Zusätzlich ist ein dritter Eingang 548 vorgesehen, an dem ein Steuersignal start2 angelegt wird und der eine Eingabe am zweiten NAND-Glied 516 ermöglicht. Weiterhin sind ein erster Abtastpunkt 522, ein zweiter Abtastpunkt 524 und ein dritter Abtastpunkt 526 vorgesehen. Beginnend von dem ersten Abtastpunkt 522 erfolgt somit immer nach einer ungeraden Anzahl von invertierenden Elementen eine Abtastung. Dies ist für das vorgestellte Verfahren jedoch nicht unbedingt erforderlich. The ring oscillator can be started and stopped 500 with a first entrance 520 to which a control signal start1 at the first NAND gate 514 is created. The sampling rate is via a second input 570 specified. In addition, there is a third entrance 548 provided at which a control signal start2 is applied and the input to the second NAND gate 516 allows. Furthermore, a first sampling point 522 , a second sampling point 524 and a third sampling point 526 intended. Starting from the first sampling point 522 Thus, a sampling always takes place after an odd number of inverting elements. However, this is not absolutely necessary for the process presented.

Der erste Abtastpunkt 522 wird über einen ersten Multiplexer 560 mit einem ersten Flipflop 430 abgetastet, es ergibt sich der Abtastwert s10. Der zweite Abtastpunkt 524 wird über einen zweiten Multiplexer 562 mit einem zweiten Flipflop 532 abgetastet, es ergibt sich der Abtastwert s11. Der dritte Abtastpunkt 526 wird über einen dritten Multiplexer 564 mit einem dritten Flipflop 534 abgetastet, es ergibt sich der Abtastwert s12. The first sampling point 522 is via a first multiplexer 560 with a first flip flop 430 sampled, this results in the sample s10. The second sampling point 524 is via a second multiplexer 562 with a second flip-flop 532 sampled, this results in the sample s11. The third sampling point 526 is via a third multiplexer 564 with a third flip flop 534 sampled, there is the sample s12.

Die Darstellung zeigt weiterhin ein erstes XOR-Glied 550, ein zweites XOR-Glied 552, ein Flipflop 553 einen vierten Multiplexer 554, einen Takt-Teiler 556 und am Ausgang des vierten Multiplexers 554 ein Flipflop 565. An einem ersten Takteingang 570 wird ein erster Abtasttakt (Abtasttakt1) vorgegeben. Die Darstellung zeigt weiterhin einen Inverter 582 und ein XNOR-Glied 584 sowie einen Eingang Scan-In 590 und einen Ausgang Scan-Out 587.The illustration also shows a first XOR element 550 , a second XOR gate 552 , a flip-flop 553 a fourth multiplexer 554 , a clock divider 556 and at the output of the fourth multiplexer 554 a flip flop 565 , At a first clock input 570 a first sampling clock (sampling clock 1) is given. The illustration also shows an inverter 582 and an XNOR member 584 as well as an input Scan-In 590 and an output scan-out 587 ,

Bei dieser Ausführung sind die Flipflops 530, 532 und 534 erste Speicherelemente und die Flipflops 553 und 565 zweite Speicherelemente. Die ersten und zweiten Speicherelemente sind in der Scan-Chain umfasst. Dies gilt auch für den Taktteiler 556. Alle Schaltungsteile außer den Speicherelementen stellen die kombinatorische Schaltung dar, die ebenfalls in der Scan Chain aufgenommen ist und getestet wird.In this embodiment, the flip-flops 530 . 532 and 534 first memory elements and the flip-flops 553 and 565 second memory elements. The first and second memory elements are included in the scan chain. This also applies to the clock divider 556 , All circuit parts except the memory elements represent the combinatorial circuit, which is also included in the scan chain and tested.

Der Multiplexer 554 in 6 kann entfallen, weil beide Eingänge gleich sind, da sowohl in der Schiebephase als auch in der Verarbeitungsphase der Ausgang vom Flipflop 553 benutzt wird.The multiplexer 554 in 6 can be omitted because both inputs are the same, as both in the shift phase and in the processing phase of the output from the flip-flop 553 is used.

Diese Ausgestaltung der Erfindung hat in Verbindung mit der Einbeziehung des Takt-Teilers in die Scan-Chain den Vorteil, dass die Schaltung mit Hilfe eines automatischen Test Pattern Generators (ATPG) systematisch getestet werden kann. Ein ATPG ist eine dem Fachmann bekannte Software, die für eine Schaltung mit Scan-Chain und einheitlichen Takt-Signalfolgen für den Scan-In Eingang so erzeugt, dass eine vorgegebene Fehlerabdeckung für die Schaltung erreicht wird. Dabei versteht man unter Fehlerabdeckung die Anzahl der entdeckten Fehler von einer Gesamtzahl der Fehler entsprechend einem vorgegebenen Fehlermodell. Dieses Verfahren ist für die Schaltung von 6 einsetzbar. Damit ist gezeigt, wie sowohl der Ringoszillator, die Abtastschaltung als auch die Nachbearbeitung des Zufallsgenerators getestet werden kann.This embodiment of the invention in conjunction with the inclusion of the clock divider in the scan chain has the advantage that the circuit can be systematically tested using an automatic test pattern generator (ATPG). An ATPG is a software known to those skilled in the art that generates for a circuit with a scan chain and uniform clock signal sequences for the scan-in input so that a predetermined error coverage for the circuit is achieved. In this case, error coverage means the number of detected errors of a total number of errors corresponding to a predetermined error model. This procedure is for the circuit of 6 used. This shows how both the ring oscillator, the sampling circuit and the post-processing of the random number generator can be tested.

Ein TRNG ist mit dem vorgestellten Verfahren realisierbar. Wegen des äußerst geringen schaltungstechnischen Aufwandes, d. h. ca. 200 Gatter-Äquivalente plus Zusatzaufwand für Test, Ansteuerung und Auswertung über Registerschnittstellen, ist es praktisch überall einsetzbar, wo Zufall von Bedeutung ist. Künftig kann man in Sensor-Auswertungen zum Manipulationsschutz oder in Security-Anwendungen bei Verbindungen mit dem Internet solche TRNGs einsetzen.A TRNG can be realized with the presented procedure. Because of the extremely low circuit complexity, d. H. Approximately 200 gate equivalents plus additional effort for test, control and evaluation via register interfaces, it can be used practically anywhere, where coincidence is important. In the future, it will be possible to use such TRNGs in sensor evaluations for manipulation protection or in security applications for connections to the Internet.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • EP 1686458 B1 [0011] EP 1686458 B1 [0011]
  • DE 602004011081 T2 [0017] DE 602004011081 T2 [0017]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005 [0010] Bock, H., Bucci, M., Luzzi, R .: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005. [0010]
  • Design of Testable Random Bit Generators von Bucci, M. und Luzzi, R., CHES 2005 [0012] Design of Testable Random Bit Generators by Bucci, M. and Luzzi, R., CHES 2005 [0012]
  • Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 [0013] Sunar, B. et al: Approved Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007 [0013]

Claims (10)

Verfahren zum Testen eines Zufallsgenerator, der als Zufallsquelle mindestens einen Ring-Oszillator (100, 200, 300, 400, 500) umfasst, der eine Anzahl an invertierenden Elementen aufweist, wobei zwischen diesen invertierenden Elementen mindestens ein Abtastpunkt (122, 124, 126, 222, 224, 226, 322, 324, 326, 422, 424, 426, 522, 524, 526) vorgesehen ist, an dem zu vorab bestimmten Zeitpunkten Werte mit einem Speicherelement, das mehrere Zustände einnehmen kann, abzutasten ist, so dass das Speicherelement einen der mehreren Zustände einnimmt, wobei der mindestens eine Ring-Oszillator (100, 200, 300, 400, 500) mit mindestens zwei verschiedenen Steuersignalen (start1, start2, start3) in einem ersten Betriebsmodus in unterschiedliche Haltezustände versetzt wird, wobei durch Vorgabe der mindestens zwei Steuersignale (start1, start2, start3) für jedes Speicherelement jeder der mehreren Zustände vorgegeben wird. Method for testing a random number generator which uses as a random source at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) having a number of inverting elements, at least one sampling point (12) between these inverting elements ( 122 . 124 . 126 . 222 . 224 . 226 . 322 . 324 . 326 . 422 . 424 . 426 . 522 . 524 . 526 ) at which, at predetermined times, values are to be sampled with a memory element that can assume a plurality of states, such that the memory element occupies one of the several states, wherein the at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) is put into different holding states with at least two different control signals (start1, start2, start3) in a first operating mode, wherein by specifying the at least two control signals (start1, start2, start3), each of the several states is specified for each memory element. Verfahren nach Anspruch 1, bei dem in einem zweiten Betriebsmodus die Speicherelemente derart verbunden werden, dass diese in einer Scan Chain hintereinander geschaltet sind und in den Speicherelementen gespeicherte Werte bitweise verschoben werden, so dass diese an einem Ausgang erscheinen. Method according to Claim 1, in which, in a second operating mode, the memory elements are connected such that they are connected in series in a scan chain and values stored in the memory elements are shifted bit-by-bit so that they appear at an output. Verfahren nach Anspruch 1 und 2, bei dem zwischen den beiden Betriebsmodi durch Eingabe eines Steuersignals (Phase) hin- und hergeschaltet wird. Method according to Claims 1 and 2, in which switching between the two operating modes is effected by inputting a control signal (phase). Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Speicherelemente überprüft werden. Method according to one of claims 1 to 3, wherein the memory elements are checked. Verfahren nach einem der Ansprüche 1 bis 4, bei dem mindestens eine kombinatorische Schaltung überprüft wird.  Method according to one of claims 1 to 4, wherein at least one combinatorial circuit is checked. Schaltungsanordnung mit einem Zufallsgenerator, der als Zufallsquelle mindestens einen Ring-Oszillator (100, 200, 300, 400, 500) umfasst, der eine Anzahl an invertierenden Elementen aufweist, wobei zwischen diesen invertierenden Elementen mindestens ein Abtastpunkt (122, 124, 126, 222, 224, 226, 322, 324, 326, 422, 424, 426, 522, 524, 526) vorgesehen ist, an dem zu vorab bestimmten Zeitpunkten Werte mit einem Speicherelement, das mehrere Zustände einnehmen kann, abzutasten ist, so dass das Speicherelement einen der mehreren Zustände einnimmt, wobei der mindestens eine Ring-Oszillator (100, 200, 300, 400, 500) derart eingerichtet ist, dass dieser mit mindestens zwei verschiedenen Steuersignalen in einem ersten Betriebsmodus in unterschiedliche Haltezustände zu versetzen ist, wobei durch Vorgabe der mindestens zwei Steuersignale (start1, start2, start3) für jedes Speicherelement jeder der mehreren Zustände vorzugeben ist.Circuit arrangement with a random generator, which as a random source at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) having a number of inverting elements, at least one sampling point (12) between these inverting elements ( 122 . 124 . 126 . 222 . 224 . 226 . 322 . 324 . 326 . 422 . 424 . 426 . 522 . 524 . 526 ) at which, at predetermined times, values are to be sampled with a memory element that can assume a plurality of states, such that the memory element occupies one of the several states, wherein the at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) is set up in such a way that it is to be put into different holding states with at least two different control signals in a first operating mode, whereby by presetting the at least two control signals (start1, start2, start3) each of the several states is to be preset for each memory element. Schaltungsanordnung nach Anspruch 6, bei dem als Speicherelemente Flipflops (130, 132, 134, 230, 232, 234, 330, 332, 324, 430, 432, 434, 453, 465, 530, 532, 534, 553, 565) dienen.Circuit arrangement according to Claim 6, in which flip-flops ( 130 . 132 . 134 . 230 . 232 . 234 . 330 . 332 . 324 . 430 . 432 . 434 . 453 . 465 . 530 . 532 . 534 . 553 . 565 ) serve. Schaltungsanordnung nach Anspruch 6 oder 7, bei dem in einem zweiten Betriebsmodus die Speicherelemente derart verbunden sind, dass diese in einer Scan Chain hintereinander geschaltet sind. Circuit arrangement according to claim 6 or 7, wherein in a second operating mode, the memory elements are connected such that they are connected in series in a scan chain. Schaltungsanordnung nach Anspruch 8, bei dem der mindestens eine Ring-Oszillator (100, 200, 300, 400, 500) unsymmetrisch aufgebaut ist.Circuit arrangement according to Claim 8, in which the at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) is constructed asymmetrically. Schaltungsanordnung nach Anspruch 8, bei dem der mindestens eine Ring-Oszillator (100, 200, 300, 400, 500) symmetrisch aufgebaut ist. Circuit arrangement according to Claim 8, in which the at least one ring oscillator ( 100 . 200 . 300 . 400 . 500 ) is symmetrical.
DE102014216386.2A 2014-08-19 2014-08-19 Method for testing a random number generator Withdrawn DE102014216386A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014216386.2A DE102014216386A1 (en) 2014-08-19 2014-08-19 Method for testing a random number generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014216386.2A DE102014216386A1 (en) 2014-08-19 2014-08-19 Method for testing a random number generator

Publications (1)

Publication Number Publication Date
DE102014216386A1 true DE102014216386A1 (en) 2016-02-25

Family

ID=55273771

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014216386.2A Withdrawn DE102014216386A1 (en) 2014-08-19 2014-08-19 Method for testing a random number generator

Country Status (1)

Country Link
DE (1) DE102014216386A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1686458B1 (en) 2005-01-28 2008-07-23 Infineon Technologies AG Oscillator-based random number generator
DE602004011081T2 (en) 2004-11-30 2009-01-02 Infineon Technologies Ag Random number generator and method for testing the generator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602004011081T2 (en) 2004-11-30 2009-01-02 Infineon Technologies Ag Random number generator and method for testing the generator
EP1686458B1 (en) 2005-01-28 2008-07-23 Infineon Technologies AG Oscillator-based random number generator

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Bock, H., Bucci, M., Luzzi, R.: An Offset-compensated Oscillator-based Random Bit Source for Security Applications, CHES 2005
Design of Testable Random Bit Generators von Bucci, M. und Luzzi, R., CHES 2005
Sunar, B. et al: Approvable Secure True Random Number Generator with Built In Tolerance Attacks, IEEE Trans. On Computers, 1/2007

Similar Documents

Publication Publication Date Title
EP1643643B1 (en) Random number generator and method for random number generation
EP2976707B1 (en) System and method for generating random bits
DE102008048292B4 (en) Apparatus and method for generating a random bit string
DE60116046T2 (en) Built-in self-test circuit with a shift register with linear feedback
DE69011133T2 (en) METHOD AND DEVICE FOR THE HIGH-PRECISION GENERATION OF WEIGHTED RANDOM PATTERNS.
DE102013204274A1 (en) Method for detecting a correlation
DE102012210990A1 (en) Method for generating random numbers
DE3855410T2 (en) Diagnostic device for a data processing system
DE112005001349T5 (en) Clock generator and semiconductor test device
DE102015110144B4 (en) Chip and method for testing a processing component of a chip
DE102017104441A1 (en) Randomness test apparatus and method for a random number generator
DE102016119750B4 (en) Devices and methods for multi-channel scanning
DE102005046588B4 (en) Apparatus and method for testing and diagnosing digital circuits
DE102014200163A1 (en) A method for generating an output of a random source of a random number generator
DE102009007482A1 (en) Jitter injection circuit, pattern generator, tester and electronic device
DE102014200309A1 (en) Method for checking an output
DE102012210361A1 (en) Method for monitoring an output of a random number generator
DE102014200164A1 (en) A method for generating an output of a random source of a random number generator
DE3639577A1 (en) LOGIC BLOCK FOR GENERATING UNEQUALIZED RANDOM PATTERNS FOR INTEGRATED CIRCUITS
DE102014216386A1 (en) Method for testing a random number generator
DE102013213385A1 (en) Method for evaluating an output of a random number generator
DE102013204272A1 (en) Method for detecting a correlation
DE102013213392A1 (en) Method for evaluating an output of a random number generator
DE102013205168A1 (en) Method for generating a random output bit sequence
DE102013213382A1 (en) Method for checking an output of a random number generator

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee