WO1999013578A1 - Non-linear counting device - Google Patents
Non-linear counting device Download PDFInfo
- Publication number
- WO1999013578A1 WO1999013578A1 PCT/DE1998/001855 DE9801855W WO9913578A1 WO 1999013578 A1 WO1999013578 A1 WO 1999013578A1 DE 9801855 W DE9801855 W DE 9801855W WO 9913578 A1 WO9913578 A1 WO 9913578A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- counter
- code
- clock
- binary
- sequence
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 11
- 238000012360 testing method Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/62—Performing operations exclusively by counting total number of pulses ; Multiplication, division or derived operations using combined denominational and incremental processing by counters, i.e. without column shift
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
Definitions
- the invention relates to a non-linear counting device and a method for generating a sequence of multi-digit binary codes from a sequence of clock pulses.
- the invention further relates to a device for performing the method.
- test samples are required for testing and checking digital circuits and computer systems, which have their own characteristics.
- Such test patterns are used, for example, when the efficiency of CPU boards is to be optimized for a computer system.
- Such CPU boards require a large number of resources, such as buffers, art queues etc. for efficient operation.
- the dimensioning of such resources must be balanced so that a particular resource does not constitute a bottleneck in data processing and possibly the overall performance of the computer system impaired. It is therefore desirable to be able to measure the utilization of these resources during the current computer operation in order to initiate appropriate adjustment measures and, if necessary, to obtain statements for diagnostic purposes.
- counter modules can be controlled, which can measure occupancy times and the work intensity of such resources.
- Both a high temporal resolution and a long measuring time are aimed for, which is achieved according to the prior art, for example by counters with a large number of binary digits.
- the high temporal resolution is not necessary in order to achieve a relative accuracy that is approximately the same over the entire counting range. It is therefore an object of the invention to provide a method and an arrangement in which a large number of events can be detected with approximately the same relative accuracy over the entire range.
- a code generator generates a sequence of code numbers such that the frequency of the larger numbers is relatively less than the frequency of the smaller numbers. If the event counter is now only switched on when the current code number is greater than its current counter reading, then counting with a larger counter reading is less frequent and logarithmic counting is thus effected.
- a known logarithmic representation is used for the counter reading, in which the number is divided into an exponent and a mantissa.
- the most significant bits represent the exponents and the others the mantissa. Since they are natural numbers, contrary to the floating-point representation that is usual in computers, no signs are provided and, since they are not rational numbers, neither normalized.
- the number of bits is also considerably smaller; For most applications, a division of 4 bits for the exponent and 4 bits for the mantissa is sufficient.
- the entire counter reading is not compared with the code numbers, but only the higher-order bits that act as exponents. As long as they are all zero, each code word is counted. With the first overflow the mantissa in the exponents no longer counts the code numbers with the lowest value; the mantissa is therefore increased at a lower clock frequency until the next overflow from the mantissa into the exponent fades out the next area of the code numbers and the counting frequency is further reduced.
- the invention allows a conventional linear binary counter to be operated so that the result of the count appears in floating point representation.
- Code numbers are used in which the frequency decreases logarithmically with the size of the code number. It is therefore a further object of the invention to provide a method and a device for generating a sequence of code numbers, in particular in the form of multi-digit binary codes from a sequence of clock pulses, which, with an increasing number of clock pulses, emits higher-digit binary values at increasing intervals.
- the frequency of the code numbers is preferably used in inverse proportion to the logarithm of their value in order to achieve the equivalent of a logarithm and thus to simplify the evaluation; if a different spread is desired, a different distribution function can also be used.
- a method for generating a sequence of multi-digit binary codes from a sequence of clock pulses is specified, in which the number N of the received clock pulses into an n-digit binary number according to the relationship
- the M-digit binary code A thus generated has the property that a certain value within the definition range of the binary code, namely ⁇ 0, 1, ..., 2 M -1 ⁇ , occurs twice as often as the next higher value.
- a hexadecimal code results in a sequence of binary numbers depending on the number of clock pulses, the value “E” occurring twice as often as the value "F”, the value “9” occurring twice as often as the value "A” Value "5" occurs twice as often as value "6” etc.
- binary code A is repeated with a period of 2 (2 M -1) cycles, for example with a hexadecimal code after 32768 clock pulses.
- the binary code A specifies for each clock pulse the number of bits reduced by 1, which change in the binary representation of the number N of clock pulses during the transition to the number N + 1.
- a binary code A is used to control counter modules which have a logarithmic counting behavior, ie the higher the number of clock pulses, the slower the counter module counts. In this way, an almost logarithmic counting behavior is achieved. This means that relatively few bit positions are required to represent a large number of clock pulses. With such a form of representation, the relative resolution remains approximately constant over the entire counting period.
- other possible uses are also conceivable in which a test sample with the properties mentioned is required, for example for diagnostic purposes in a computer system.
- a single code generator can supply several counters, all of which are conventional binary counters, which only need to be supplemented by an enable input and a comparator.
- a 4-digit binary code is preferably used, so that the number of clock pulses need only be represented modulo 2 ⁇ -5, i.e. the size M is 4.
- the invention relates to a device for performing the method. With this facility Targetable advantageous effects are essentially the same as those according to the method according to the invention.
- FIG. 1 shows a device in which a large number of counter modules are controlled by the binary code
- FIG. 2 shows a sequence of binary codes A in hexadecimal representation
- Figure 3 shows the structure of a counter module
- FIG. 4 shows a code generator which is constructed from digital standard modules
- Figure 5 shows another code generator, which is constructed from digital standard components.
- Figure 1 shows a device according to the invention, which is used in a gate array for a CPU board of a computer system.
- a large number of counter modules ZO, ZI, ..., Zm-1, Zm, with m as the run variable, should count clock pulses CLOCK depending on an enable signal BUSYO, BUSYl, ..., BUSYm-1, BUSYm, for example by the load on one identify certain resource during computer operation.
- fine-tuning measures can then be initiated or statements made for diagnostic purposes.
- these counter modules ZO to Zm work with an almost logarithmic scaling.
- a measuring range from 15 ns to approx. 15 ms can be covered with an 8-digit simple standard counter module at a CLOCK frequency of 66.67 MHz, ie a range in the ratio of 1: 1,000,000, whereby the relative resolution remains approximately constant over the entire measuring range.
- the counter modules ZO to Zm are designed as 8-bit binary counters, with the least significant bit positions 0 to 3 being interpreted as the base and the bit positions 4 to 7 being interpreted as the exponent to the base.
- the release signal BUSYO to BUSYm is logic "0".
- the assigned counter module ZO to Zm is deleted. If the corresponding BUSY signal BUSYO to BUSYm is active, i.e. has a logic level "1", the assigned counter module ZO to Zm begins to count.
- the logarithmic counting behavior is achieved in that the counter block ZO to Zm counts the slower the higher the value B of the higher-order bit positions 4 to 7, i.e. the higher the value of the exponent.
- a code generator or a prescaler V which generates the binary code A with a width of 4 bits.
- This binary code A is determined in accordance with the relationship given below, the prescaler V being supplied with the sequence of clock pulses CLOCK.
- a 16-bit code block is used as the prescaler.
- the number N of arriving clock pulses CLOCK is converted into a 16-digit binary number according to the relationship
- the subsequent clock pulse i.e. the N + lth clock pulse is also converted into a binary number according to the relationship
- the binary code A determined in this way is called the hexadecimal code, i.e. with a width of 4 bits, output on the bus 11.
- FIG. 2 A sequence of the binary code A is shown in FIG.
- the value "4" is intended to illustrate how the sequence of binary codes A is structured.
- the value "3" occurs twice, the value "2” four times, the value "1” eight times and the value "0” sixteen times.
- the binary code A has the property that each value occurs twice as often as the next higher one.
- this generally means that the value "E” occurs twice as often as the value "F” and the value "D” twice as often the value "E” etc. up to the value "0", which occurs twice as often as the value "1".
- FIG. 3 shows the structure of one of the counter modules ZO to Zm, in this case the counter module ZO.
- This counter block ZO contains a standard binary counter with a width of 8 bits. These 8 bits, which are output on line 12, are divided into a lower counter 14 with the low-order bits 0 to 3 and the count U and an upper counter 16 with bit positions 4 to 7 and the count B.
- the counter 10 has three inputs, a count enable input CE, a reset input R and a clock input T, to which the clock pulses CLOCK are supplied.
- the reset input R is preceded by a negation element 18, to which the enable signal BUSY is fed.
- This enable signal BUSY is also fed to an AND gate 20, the output of which is connected to the input CE.
- the other input of the AND gate 20 is connected to the output of a comparator 22 which compares the value B of the upper counter 16 with the current value of the binary code A.
- t p is the clock period of the sequence of clock pulses CLOCK and T z is the measured time.
- the various counter modules ZO to Zm can be activated and deactivated independently of one another at any time via the release signal BUSYO to BUSYm without a time measurement error occurring.
- An advantage of the invention is that standard counters can be used that have a relatively small number of bit positions, for example 8 bit positions, but still cover a large measuring range.
- the use of standard counter modules has proven to be extremely advantageous, since they can be incorporated easily and with little effort into ASIC modules or gate arrays.
- the previous binary number N can be temporarily stored and compared bit by bit with the new value by means of an XOR operation.
- the number of binary "1" bits must be determined from this result. If the number of bits is small, this can be done using a read-only memory.
- an adder for, for example, sixteen 1-bit words can also be used, in that the two lowest Bits are added with the first adder and the next higher bit is added to the result by a further adder, the word width increasing and the last adder having the word width of the result.
- a serial evaluation is also possible if time conditions allow it. It is also possible to build a code generator from simple standard components so that the code is generated directly at its output.
- FIG. 4 shows such a code generator for generating a 3-digit binary code A, i.e. in this case M is 3.
- This code generator uses simple commercially available digital standard modules, i.e. the code generator can be set up with relatively simple means.
- the clock pulses CLOCK are fed to a digital register 30 with a width of 8 bits at its clock input.
- the outputs of this register 30 are fed to the input of an increment block 32 and to an input of 8 XNOR gates 34.
- the outputs of the increment module 32 are connected on the one hand to the other input of the XNOR gates 34 and on the other hand to the D input of the register 30.
- the two building blocks 30 and 32 together form a waiting counter, i.e.
- the XNOR gates 34 compare the binary values N and N + 1 and determine in which binary position N and N + 1 differ.
- the outputs of the eight XNOR gates 34 are each fed to an input 10 to 17 of an 8: 3 priority encoder module 36, for example the standard module 74LS148 by Texas Instruments.
- the priority encoder module 36 determines which is the most significant active input 10 to 17, with 10 being the least significant and 17 being the most significant input.
- the module 36 emits signals at its outputs A0, AI, A2, which are converted into the binary code A with the bit positions 0, 1, 2 by the negating elements 38.
- FIG. 5 An alternative code generator is shown in FIG. 5.
- the counter outputs are swapped, i.e. the least significant bit A0 of the counter 32a is applied to the most significant bit 17 of a priority encoder 36.
- the least significant bit thus has the highest priority, so that all odd counter readings lead to the same code word.
- the 74LS148 block is used as the priority encoder 36, the inputs of which are inverted, i.e. are active at LOW, the outputs of counter 32a must also be inverted, as indicated in FIG. 5.
- the negation elements 38 are not necessary in this application, since the outputs are already inverted, so that the code word of the highest priority has all bit positions at zero.
- a priority encoder forms the integer part of the dual logarithm of a binary code word at its inputs. 5 thus generates the logarithm of a permutation of the bit positions of the counter 32a.
- a code generator can also be effected by a counter with a width of 16 bits, for example, the outputs of which form the address inputs of a read-only memory, which are quite commercially available with a storage capacity of 64 kbytes.
- the code generators mentioned generate code numbers in such a way that the code numbers are equally distributed over a frequency. This embodiment is to be preferred in almost all cases when the events to be counted are statistically to be regarded as random.
- stochastic encoders according to the known methods of stochastic computing technology can also be used if a correlation of the events to be counted with the clock generator of the encoder cannot be ruled out.
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Debugging And Monitoring (AREA)
Abstract
The invention relates to a counting device for the non-linear counting of events. According to the invention, a code generator generates a series of code numbers in such a way that the code numbers occur with varying frequency. Every code number is compared with the counter reading and the counter is changed over in accordance with the comparison in such a way that if the counter reading is high the counter is changed over only when infrequent code numbers occur.
Description
Nichtlineare Zähleinrichtung Non-linear counter
Die Erfindung betrifft eine nicht lineare Zähleinrichtung sowie ein Verfahren zum Erzeugen einer Folge von mehrstelligen Binärcodes aus einer Folge von Taktimpulsen. Ferner betrifft die Erfindung eine Einrichtung zum Durchführen des Verfahrens.The invention relates to a non-linear counting device and a method for generating a sequence of multi-digit binary codes from a sequence of clock pulses. The invention further relates to a device for performing the method.
In zahlreichen Anwendungsfällen werden zum Testen und Überprüfen von digitalen Schaltungen sowie von Computersystemen Prüfmuster benötigt, welche vorgegebene Eigen- schaffen besitzen. Beispielsweise werden solche Prüfmuster eingesetzt, wenn die Effizienz von CPU-Boards für ein Computersystem optimiert werden soll. Solche CPU- Boards benötigen für einen effizienten Betrieb eine Vielzahl von Resourcen, wie beispielsweise Puffer, arte- schlangen etc.. Die Dimensionierung solcher Resourcen muß ausgewogen sein, damit eine bestimmte Resource nicht einen Engpaß bei der Datenverarbeitung darstellt und möglicherweise die gesamte Leistungsfähigkeit des Computersystems beeinträchtigt. So ist es wünschenswert, die Ausla- stung dieser Resourcen während des aktuellen Computerbetriebs messen zu können, um entsprechende Einstellmaßnahmen einzuleiten und gegebenenfalls Aussagen für Diagnosezwecke zu erhalten. Mithilfe eines bestimmten mehrstelligen Binärcodes als Prüfmuster können dann Zählbausteine angesteuert werden, welche Belegtzeiten und die Arbeitsintensität solcher Resourcen messen können.In numerous applications, test samples are required for testing and checking digital circuits and computer systems, which have their own characteristics. Such test patterns are used, for example, when the efficiency of CPU boards is to be optimized for a computer system. Such CPU boards require a large number of resources, such as buffers, art queues etc. for efficient operation. The dimensioning of such resources must be balanced so that a particular resource does not constitute a bottleneck in data processing and possibly the overall performance of the computer system impaired. It is therefore desirable to be able to measure the utilization of these resources during the current computer operation in order to initiate appropriate adjustment measures and, if necessary, to obtain statements for diagnostic purposes. With the help of a certain multi-digit binary code as a test pattern, counter modules can be controlled, which can measure occupancy times and the work intensity of such resources.
Dabei wird sowohl eine hohe zeitliche Auflösung als auch eine lange Meßzeit angestrebt, was nach dem Stand der Technik beispielsweise durch Zähler mit einer großen An- zahl von Binärstellen erreicht wird. Bei großen Zählerständen ist jedoch die hohe zeitliche Auflösung nicht notwendig, um eine über den gesamten Zählbereich etwa gleiche relative Genauigkeit zu erreichen.
Es ist daher Aufgabe der Erfindung, ein Verfahren und eine Anordnung anzugeben, bei eine große Anzahl von Ereignissen mit über den gesamten Bereich etwa gleichen relativen Genauigkeit erfaßt werden kann.Both a high temporal resolution and a long measuring time are aimed for, which is achieved according to the prior art, for example by counters with a large number of binary digits. With large meter readings, however, the high temporal resolution is not necessary in order to achieve a relative accuracy that is approximately the same over the entire counting range. It is therefore an object of the invention to provide a method and an arrangement in which a large number of events can be detected with approximately the same relative accuracy over the entire range.
Die Lösung geht davon aus, daß eine logarithmische Darstellung des Zählerstandes mit einer relativ geringen Anzahl von Bitstellen für einen großen Zählbereich ausreicht .The solution assumes that a logarithmic representation of the counter reading with a relatively small number of bit positions is sufficient for a large counting range.
Dabei besteht die Grundidee der Lösung darin, daß ein Codegenerator eine Folge von Codezahlen derart erzeugt, daß die Häufigkeit der größeren Zahlen relativ geringer ist als die Häufigkeit der kleineren Zahlen. Wird jetzt der Ereigniszähler nur dann weitergeschaltet, wenn die aktuelle Codezahl größer ist als sein aktueller Zähler- stand, dann wird mit größerem Zählerstand seltener gezählt und damit ein logarithmisches Zählen bewirkt.The basic idea of the solution is that a code generator generates a sequence of code numbers such that the frequency of the larger numbers is relatively less than the frequency of the smaller numbers. If the event counter is now only switched on when the current code number is greater than its current counter reading, then counting with a larger counter reading is less frequent and logarithmic counting is thus effected.
In einer bevorzugten Fortbildung wird dabei für den Zählerstand eine bekannte logarithmische Darstellung verwendet, bei der die Zahl in einen Exponenten und eine Man- tisse unterteilt ist. In der üblichen binären Darstellung stellen dann die höherwertigen Bits den Exponenten und die anderen die Mantisse dar. Da es sich um natürliche Zahlen handelt, sind entgegen der in Rechnern üblichen Fließkommadarstellung keine Vorzeichen vorgesehen und, da es sich nicht um rationale Zahlen handelt, auch nicht normalisiert. Auch ist die Anzahl der Bits erheblich geringer; für die meisten Anwendungen ist ein Aufteilung von 4 Bits für den Exponenten und 4 Bits für die Mantisse ausreichend.In a preferred development, a known logarithmic representation is used for the counter reading, in which the number is divided into an exponent and a mantissa. In the usual binary representation, the most significant bits represent the exponents and the others the mantissa. Since they are natural numbers, contrary to the floating-point representation that is usual in computers, no signs are provided and, since they are not rational numbers, neither normalized. The number of bits is also considerably smaller; For most applications, a division of 4 bits for the exponent and 4 bits for the mantissa is sufficient.
Hierzu wird nicht der gesamte Zählerstand mit den Codezahlen verglichen, sondern nur der als Exponent wirkende höherwertigen Bits. Solange diese noch alle Null sind, wird jedes Codewort gezählt. Mit dem ersten Überlauf aus
der Mantisse in den Exponenten werden die Codezahlen mit dem niedrigsten Wert nicht mehr gezählt; die Mantisse wird also mit geringerer Taktfrequenz erhöht, bis der nächste Überlauf aus der Mantisse in den Exponenten den nächbsten Bereich der Codezahlen ausblendet und die Zählfrequenz weiter vermindert.For this purpose, the entire counter reading is not compared with the code numbers, but only the higher-order bits that act as exponents. As long as they are all zero, each code word is counted. With the first overflow the mantissa in the exponents no longer counts the code numbers with the lowest value; the mantissa is therefore increased at a lower clock frequency until the next overflow from the mantissa into the exponent fades out the next area of the code numbers and the counting frequency is further reduced.
Demgemäß erlaubt die Erfindung es, einen herkömmlichen linearen Binärzähler so zu betreiben, daß das Ergebnis der Zählung in Fließkommadarstellung erscheint.Accordingly, the invention allows a conventional linear binary counter to be operated so that the result of the count appears in floating point representation.
Dabei werden solche Codezahlen verwendet, bei denen die Häufigkeit mit der Größe der Codezahl logarithmisch ab- nimmmt. Daher ist es eine weitere Aufgabe der Erfindung, ein Verfahren und eine Einrichtung zum Erzeugen einer Folge Codezahlen insbesondere in Form von mehrstelligen Binärcodes aus einer Folge von Taktimpulsen anzugeben, welche mit steigender Zahl von Taktimpulsen höherstellige Binärwerte in größer werdenden Abständen abgibt. Bevorzugt wird dabei die Häufigkeit der Codezahlen umgekehrt proportional zu dem Logarithmus ihres Wertes verwendet, um das Äquivalent zu einem Logarithmus zu erzielen und damit die Auswertung zu vereinfachen; wird eine andere Spreizung gewünscht, kann auch eine andere Verteilungsfunktion verwendet werden.Code numbers are used in which the frequency decreases logarithmically with the size of the code number. It is therefore a further object of the invention to provide a method and a device for generating a sequence of code numbers, in particular in the form of multi-digit binary codes from a sequence of clock pulses, which, with an increasing number of clock pulses, emits higher-digit binary values at increasing intervals. The frequency of the code numbers is preferably used in inverse proportion to the logarithm of their value in order to achieve the equivalent of a logarithm and thus to simplify the evaluation; if a different spread is desired, a different distribution function can also be used.
Gemäß der Erfindung wird ein Verfahren zum Erzeugen einer Folge von mehrstelligen Binärcodes aus einer Folge von Taktimpulsen angegeben, bei dem die Zahl N der eingegangenen Taktimpulse in eine n-stellige Binärzahl nach der BeziehungAccording to the invention, a method for generating a sequence of multi-digit binary codes from a sequence of clock pulses is specified, in which the number N of the received clock pulses into an n-digit binary number according to the relationship
mit an = 1 und ag ... ^n-l e (0'1)/
gewandelt wird, worin i eine Laufvariable und a; der Stellenwert an der i-ten Stelle der Binärzahl ist, die um 1 erhöhte Zahl N in eine m-stellige Binärzahl nach der Beziehung m N+l=∑bi-2i i=0 mit bm = 1 und bg ... bm_ι e {0,1}, wobei gilt m > n,with a n = 1 and ag ... ^ nl e (0 ' 1 ) / is converted, in which i is a run variable and a; is the position at the i-th position of the binary number, the number N increased by 1 into an m-digit binary number according to the relationship m N + l = ∑b i -2 i i = 0 with b m = 1 and bg .. . b m _ι e {0,1}, where m> n,
gewandelt wird, worin bj der Stellenwert an der i-ten Stelle der Binärzahl für den N+l-ten Taktimpuls ist, anschließend ein M-stelliger Binärcode A gemäß der Bezie- hungis converted, in which bj is the position at the i-th position of the binary number for the N + l-th clock pulse, then an M-position binary code A according to the relationship
mit a-j_ = 0, wenn i > n undwith a-j_ = 0 if i> n and
mit bj_ = 0, wenn i > m,with b j _ = 0 if i> m,
gebildet und dann als Ausgangssignal ausgegeben und wei- terverarbeitet wird.is formed and then output as an output signal and further processed.
Der so erzeugte M-stellige Binärcode A hat die Eigenschaft, daß ein bestimmter Wert innerhalb des Definitionsbereiches des Binärcodes, nämlich {0, 1, ..., 2M-1}, doppelt so oft vorkommt wie der jeweils nächsthöhere Wert. Beispielsweise bei einem Hexadezimalcode entsteht eine Folge von Binärzahlen abhängig von der Anzahl der Taktimpulse, wobei der Wert "E" doppelt so häufig vorkommt wie der Wert "F", der Wert "9" doppelt so oft vorkommt wie der Wert "A", der Wert "5" doppelt so oft vor- kommt wie der Wert "6" usw..The M-digit binary code A thus generated has the property that a certain value within the definition range of the binary code, namely {0, 1, ..., 2 M -1}, occurs twice as often as the next higher value. For example, a hexadecimal code results in a sequence of binary numbers depending on the number of clock pulses, the value "E" occurring twice as often as the value "F", the value "9" occurring twice as often as the value "A" Value "5" occurs twice as often as value "6" etc.
Weil bei der Erzeugung des M-stelligen Binärcodes A nur die untersten M Binärstellen der Taktanzahl berücksich-
tigt werden, wiederholt sich der Binärcode A mit einer Periode von 2(2M-1) Takten, z.B. bei einem Hexadezimalcode also nach 32768 Taktimpulsen. Der Binärcode A gibt für jeden Taktimpuls die um 1 reduzierte Anzahl von Bits an, die sich in der Binärdarstellung der Anzahl N von Taktimpulsen beim Übergang auf die Anzahl N+l verändern. Typischerweise wird ein solcher Binärcode A für die Ansteuerung von Zählbausteinen verwendet, welche ein logarithmisches Zählverhalten haben, d.h. je höher die An- zahl von Taktimpulsen wird, um so langsamer zählt der Zählbaustein. Auf diese Weise wird ein annähernd logarithmisches Zählverhalten erzielt. Dies bedeutet, man benötigt nur relativ wenige Bitstellen, um eine große Anzahl von Taktimpulsen darzustellen. Bei einer solchen Darstellungsform bleibt über die gesamte Zähldauer die relative Auflösung annähernd konstant. Es sind jedoch auch andere Anwendungsmöglichkeiten denkbar, bei denen ein Prüfmuster mit den genannten Eigenschaften benötigt wird, beispielsweise für Diagnosezwecke in einem Compu- tersystem.Because when generating the M-digit binary code A, only the lowest M binary digits of the clock number are taken into account. binary code A is repeated with a period of 2 (2 M -1) cycles, for example with a hexadecimal code after 32768 clock pulses. The binary code A specifies for each clock pulse the number of bits reduced by 1, which change in the binary representation of the number N of clock pulses during the transition to the number N + 1. Typically, such a binary code A is used to control counter modules which have a logarithmic counting behavior, ie the higher the number of clock pulses, the slower the counter module counts. In this way, an almost logarithmic counting behavior is achieved. This means that relatively few bit positions are required to represent a large number of clock pulses. With such a form of representation, the relative resolution remains approximately constant over the entire counting period. However, other possible uses are also conceivable in which a test sample with the properties mentioned is required, for example for diagnostic purposes in a computer system.
Dabei kann ein einziger Codegenerator mehrere Zähler versorgen, die alle herkömmliche Binärzähler sind, die lediglich um einen Freigabeeingang und einen Vergleicher ergänzt werden müssen.A single code generator can supply several counters, all of which are conventional binary counters, which only need to be supplemented by an enable input and a comparator.
Vorzugsweise wird ein 4-stelliger Binärcode verwendet, so daß die Anzahl der Taktimpulse nur modulo 2^-5 dargestellt zu werden braucht, d.h. die Größe M ist 4.A 4-digit binary code is preferably used, so that the number of clock pulses need only be represented modulo 2 ^ -5, i.e. the size M is 4.
Es ist noch darauf hinzuweisen, daß die Laufvariablen n und m abhängig von den Zahlen N und N+l sind. Die höch- sten Stellenwerte a-j_ und bj_ für i = n haben dann den Wert 1.It should also be noted that the run variables n and m are dependent on the numbers N and N + 1. The highest values a-j_ and bj_ for i = n then have the value 1.
Weiterhin betrifft die Erfindung eine Einrichtung zum Durchführen der Verfahren. Die mit dieser Einrichtung er-
zielbaren vorteilhaften Wirkungen stimmen im wesentlichen mit denen nach dem Verfahren gemäß der Erfindung überein.Furthermore, the invention relates to a device for performing the method. With this facility Targetable advantageous effects are essentially the same as those according to the method according to the invention.
Ein Ausführungsbeispiel der Erfindung wird im folgenden anhand der Figuren dargestellt. Darin zeigt: Figur 1 eine Einrichtung, bei der eine Vielzahl von Zählbausteinen durch den Binärcode angesteuert wird,An embodiment of the invention is shown below with reference to the figures. 1 shows a device in which a large number of counter modules are controlled by the binary code,
Figur 2 eine Folge von Binärcodes A in Hexadezimaldarstellung,FIG. 2 shows a sequence of binary codes A in hexadecimal representation,
Figur 3 den Aufbau eines Zählbausteins, undFigure 3 shows the structure of a counter module, and
Figur 4 einen Code-Generator, der aus digitalen Standardbausteinen aufgebaut ist, undFIG. 4 shows a code generator which is constructed from digital standard modules, and
Figur 5 einen weiteren Code-Generator, der aus digitalen Standardbausteinen aufgebaut ist.Figure 5 shows another code generator, which is constructed from digital standard components.
Figur 1 zeigt eine Einrichtung nach der Erfindung, die in einem Gate-Array für ein CPU-Board eines Computersystems eingesetzt wird. Eine Vielzahl von Zählbausteinen ZO, ZI, ..., Zm-1, Zm, mit m als Laufvariable, sollen Taktimpulse CLOCK abhängig von einem Freigabesignal BUSYO, BUSYl, ..., BUSYm-1, BUSYm zählen, beispielsweise um die Auslastung einer bestimmten Resource während des Computerbetriebs zu ermitteln. Abhängig von den gezählten Taktimpulsen CLOCK können dann Feineinstellmaßnahmen eingeleitet, oder Aussagen für Diagnosezwecke ermittelt werden. Um den technischen Aufwand für die Zählbausteine ZO bis Zm zu minimieren, arbeiten diese Zählbausteine ZO bis Zm mit einer annähernd logarithmischen Skalierung. Auf diese Weise kann mit einem 8-stelligen einfachen Standardzählbaustein bei einer CLOCK-Frequenz von 66,67 MHz ein Meß- bereich von 15 ns bis ca. 15 ms abgedeckt werden, d.h. ein Bereich im Verhältnis von 1 : 1 000 000, wobei die
relative Auflösung über den gesamten Meßbereich annähernd konstant bleibt.Figure 1 shows a device according to the invention, which is used in a gate array for a CPU board of a computer system. A large number of counter modules ZO, ZI, ..., Zm-1, Zm, with m as the run variable, should count clock pulses CLOCK depending on an enable signal BUSYO, BUSYl, ..., BUSYm-1, BUSYm, for example by the load on one identify certain resource during computer operation. Depending on the clock pulses CLOCK counted, fine-tuning measures can then be initiated or statements made for diagnostic purposes. In order to minimize the technical effort for the counter modules ZO to Zm, these counter modules ZO to Zm work with an almost logarithmic scaling. In this way, a measuring range from 15 ns to approx. 15 ms can be covered with an 8-digit simple standard counter module at a CLOCK frequency of 66.67 MHz, ie a range in the ratio of 1: 1,000,000, whereby the relative resolution remains approximately constant over the entire measuring range.
Die Zählbausteine ZO bis Zm sind als 8-Bit-Binärzähler ausgebildet, wobei die niederwertigen Bitstellen 0 bis 3 als Basis und die Bitstellen 4 bis 7 als Exponent zur Basis interpretiert werden. Solange eine durch den Zählbaustein ZO bis Zm zu überwachende Resource bzw. Ausführungseinheit nicht aktiv ist, ist das Freigabesignal BUSYO bis BUSYm logisch "0". In diesem Zustand wird der zugeordnete Zählbaustein ZO bis Zm jeweils gelöscht. Wenn das entsprechende BUSY-Signal BUSYO bis BUSYm aktiv ist, d.h. einen Logikpegel "1" hat, beginnt der zugeordnete Zählbaustein ZO bis Zm zu zählen. Das logarithmische Zählverhalten wird dadurch erreicht, daß der Zählbaustein ZO bis Zm um so langsamer zählt, je höher der Wert B der höherwertigen Bitstellen 4 bis 7 ist, d.h. je höher der Wert des Exponenten ist.The counter modules ZO to Zm are designed as 8-bit binary counters, with the least significant bit positions 0 to 3 being interpreted as the base and the bit positions 4 to 7 being interpreted as the exponent to the base. As long as a resource or execution unit to be monitored by the counter module ZO to Zm is not active, the release signal BUSYO to BUSYm is logic "0". In this state, the assigned counter module ZO to Zm is deleted. If the corresponding BUSY signal BUSYO to BUSYm is active, i.e. has a logic level "1", the assigned counter module ZO to Zm begins to count. The logarithmic counting behavior is achieved in that the counter block ZO to Zm counts the slower the higher the value B of the higher-order bit positions 4 to 7, i.e. the higher the value of the exponent.
Um die Vielzahl von Zählbausteinen ZO bis Zm mit einem einzigen Binärsignal A über einen Bus 11 ansteuern zu können, wird ein Code-Generator oder ein Vorteiler V eingesetzt, der den Binärcode A mit einer Breite von 4-Bit erzeugt. Dieser Binärcode A wird nach der unten angegebenen Beziehung ermittelt, wobei dem Vorteiler V die Folge von Taktimpulsen CLOCK zugeführt wird. Als Vorteiler wird ein 16-Bit-Codebaustein verwendet. Die Anzahl N der angekommenen Taktimpulse CLOCK wird in eine 16-stellige Binärzahl nach der BeziehungIn order to be able to control the large number of counter modules ZO to Zm with a single binary signal A via a bus 11, a code generator or a prescaler V is used which generates the binary code A with a width of 4 bits. This binary code A is determined in accordance with the relationship given below, the prescaler V being supplied with the sequence of clock pulses CLOCK. A 16-bit code block is used as the prescaler. The number N of arriving clock pulses CLOCK is converted into a 16-digit binary number according to the relationship
1515
N = ∑ ar2' i=0 mit aj_ € {0,1},
gewandelt, d.h. in der Form modulo 2^6 dargestellt, worin i eine Laufvariable und aj_ der Stellenwert an der i- Stelle der Binärzahl ist.N = ∑ a r 2 'i = 0 with aj_ € {0,1}, converted, ie represented in the form modulo 2 ^ 6, where i is a run variable and aj_ is the position at the i position of the binary number.
Der nachfolgende Taktimpuls, d.h. der N+l-te Taktimpuls wird ebenfalls in eine Binärzahl nach der BeziehungThe subsequent clock pulse, i.e. the N + lth clock pulse is also converted into a binary number according to the relationship
1515
N+l=∑br2' i=0 mit bn e {0,1}N + l = ∑b r 2 'i = 0 with b n e {0,1}
gewandelt, d.h. in der Form modulo 2^^, worin bj_ der Stellenwert an der i-Stelle der Binärzahl für den N+l-ten Taktimpuls ist.changed, i.e. in the form modulo 2 ^^, where bj_ is the position at the i-position of the binary number for the N + lth clock pulse.
Anschließend wird der Binärcode A gemäß der BeziehungThen the binary code A according to the relationship
ermittelt. Der so ermittelte Binärcode A wird als Hexadezimalcode, d.h. mit einer Breite von 4 Bit, auf den Bus 11 ausgegeben.determined. The binary code A determined in this way is called the hexadecimal code, i.e. with a width of 4 bits, output on the bus 11.
In Figur 2 ist eine Folge des Binärcodes A dargestellt. Anhand des Wertes "4" soll verdeutlicht werden, wie die Folge der Binärcodes A aufgebaut ist. Innerhalb des Intervalls I, in der der ausgegebene Wert 4 sich beim nächsthöheren Taktimpuls wiederholen würde, tritt der Wert "3" zweimal auf, der Wert "2" viermal, der Wert "1" achtmal und der Wert "0" sechzehnmal. Dies bedeutet, daß der Binärcode A die Eigenschaft hat, daß jeder Wert doppelt so oft vorkommt wie der jeweils nächsthöhere. Auf die hexadezimale Darstellung gemäß Figur 2 bezogen bedeutet dies allgemein, daß der Wert "E" doppelt so oft vorkommt wie der Wert "F", der Wert "D" doppelt so oft wie
der Wert "E" usw. bis zum Wert "0", der doppelt so oft vorkommt wie der Wert "1".A sequence of the binary code A is shown in FIG. The value "4" is intended to illustrate how the sequence of binary codes A is structured. Within the interval I, in which the output value 4 would repeat itself at the next higher clock pulse, the value "3" occurs twice, the value "2" four times, the value "1" eight times and the value "0" sixteen times. This means that the binary code A has the property that each value occurs twice as often as the next higher one. With reference to the hexadecimal representation according to FIG. 2, this generally means that the value "E" occurs twice as often as the value "F" and the value "D" twice as often the value "E" etc. up to the value "0", which occurs twice as often as the value "1".
Figur 3 zeigt den Aufbau eines der Zählbausteine ZO bis Zm, in diesem Fall des Zählbausteins ZO. Dieser Zählbau- stein ZO enthält einen Standard-Binärzähler mit einer Breite von 8 Bit. Diese 8 Bit, welche auf der Leitung 12 ausgegeben werden, teilen sich auf in einen unteren Zähler 14 mit den niederwertigen Bits 0 bis 3 und dem Zählstand U und einen oberen Zähler 16 mit den Bitstellen 4 bis 7 und den Zählstand B. Der Zähler 10 hat drei Eingänge, einen Count-Enable-Eingang CE, einen Reset-Eingang R und einen Takteingang T, welchem die Taktimpulse CLOCK zugeführt sind. Dem Reset-Eingang R ist ein Negationsglied 18 vorgeschaltet, dem das Freigabesignal BUSY zuge- führt ist. Dieses Freigabesignal BUSY ist auch einem UND- Glied 20 zugeführt, dessen Ausgang mit dem Eingang CE verbunden ist. Der andere Eingang des UND-Gliedes 20 ist mit dem Ausgang eines Komparators 22 verbunden, welcher den Wert B des oberen Zählers 16 mit dem aktuellen Wert des Binärcodes A vergleicht.Figure 3 shows the structure of one of the counter modules ZO to Zm, in this case the counter module ZO. This counter block ZO contains a standard binary counter with a width of 8 bits. These 8 bits, which are output on line 12, are divided into a lower counter 14 with the low-order bits 0 to 3 and the count U and an upper counter 16 with bit positions 4 to 7 and the count B. The counter 10 has three inputs, a count enable input CE, a reset input R and a clock input T, to which the clock pulses CLOCK are supplied. The reset input R is preceded by a negation element 18, to which the enable signal BUSY is fed. This enable signal BUSY is also fed to an AND gate 20, the output of which is connected to the input CE. The other input of the AND gate 20 is connected to the output of a comparator 22 which compares the value B of the upper counter 16 with the current value of the binary code A.
Im folgenden wird die Funktionsweise beim Zählen des Zählbausteins Z0 erläutert. Solange das Freigabesignal BUSY den Logikpegel "0" hat, wird der Zähler 10 gelöscht, d.h. sein Ausgangssignal auf der Leitung 12 ist Null. Wenn das Freigabesignal BUSY den Wert "1" hat, beginnt der Zähler 10 die ihm zugeführten Taktsignale CLOCK zu zählen. Dieses Zählen erfolgt abhängig vom Signalzustand am Eingang CE. Wenn der obere Zähler 16 einen Zählstand B = 0 hat, so werden sämtliche ankommenden Taktimpulse CLOCK gezählt, bis sich ein Überlauf ergibt, d.h. die vierte Bitstelle des oberen Zählers 16 ist "1", und also der Zählstand B von Null verschieden ist. Durch den Kom- parator 22 wird der Zählstand B mit dem aktuellen Binärcode A verglichen. Erst wenn die Bedingung A > B ist,
zählt der untere Zähler einen weiteren Taktimpuls CLOCK und erhöht seinen Zählstand U um 1. Aufgrund der Eigenschaft des Binärcodes A, daß höherwertige Hexadezimalwerte nur halb so oft vorkommen wie der jeweilige nächst niedrigere Hexadezimalwert, wird am Count-Enable-Eingang CE nur halb so oft ein Signal erzeugt.The mode of operation when counting the Z0 counter is explained below. As long as the enable signal BUSY has the logic level "0", the counter 10 is cleared, ie its output signal on line 12 is zero. When the enable signal BUSY has the value "1", the counter 10 begins to count the clock signals CLOCK supplied to it. This counting depends on the signal status at the CE input. If the upper counter 16 has a count B = 0, then all incoming clock pulses CLOCK are counted until there is an overflow, ie the fourth bit position of the upper counter 16 is "1" and the count B is different from zero. The count B is compared with the current binary code A by the comparator 22. Only when the condition is A> B the lower counter counts another clock pulse CLOCK and increases its count U by 1. Due to the property of the binary code A that higher-order hexadecimal values occur only half as often as the next lower hexadecimal value, the count-enable input CE is only half as often generates a signal.
Die seit dem Aktivwerden des Freigabesignals BUSY verstrichene Zeit Tz ergibt sich aus folgender Beziehung:The time T z that has elapsed since the enable signal BUSY became active results from the following relationship:
B-\B- \
T = f/-2/i+∑(16-2') [(-7+16)-2ß-16]-T = f / -2 / i + ∑ (16-2 ') [(-7 + 16) -2 ß -16] -
(=0(= 0
worin tp die Taktperiode der Folge von Taktimpulsen CLOCK und Tz die gemessene Zeit ist.where t p is the clock period of the sequence of clock pulses CLOCK and T z is the measured time.
Aufgrund der Eigenschaften des Binärcodes A können die verschiedenen Zählbausteine ZO bis Zm zu beliebigen Zeitpunkten unabhängig voneinander über das Freigabesignal BUSYO bis BUSYm aktiviert und deaktiviert werden, ohne daß ein Zeitmeßfehler entsteht. Ein Vorteil der Erfindung liegt darin, daß Standardzähler eingesetzt werden können, die eine relativ geringe Zahl von Bitstellen haben, beispielsweise 8 Bitstellen, wobei dennoch ein großer Meßbe- reich überdeckt wird. Die Verwendung von Standard- Zählbausteinen erweist sich als äußerst vorteilhaft, da sie sich in ASIC-Bausteinen oder Gate-Arrays leicht und mit geringem Aufwand einbeziehen lassen.Due to the properties of the binary code A, the various counter modules ZO to Zm can be activated and deactivated independently of one another at any time via the release signal BUSYO to BUSYm without a time measurement error occurring. An advantage of the invention is that standard counters can be used that have a relatively small number of bit positions, for example 8 bit positions, but still cover a large measuring range. The use of standard counter modules has proven to be extremely advantageous, since they can be incorporated easily and with little effort into ASIC modules or gate arrays.
Um den Binärcode zu erzeugen, kann die vorherige Binär- zahl N zwischengespeichert und bitweise durch eine XOR- Verknüpfung mit dem neuen Wert verglichen werden. Aus diesem Ergebnis muß die Anzahl der binären "1"-Bits bestimmt werden. Dies kann, bei kleiner Bitzahl, durch einen Festwertspeicher erfolgen. Anstelle eines Festwert- Speichers kann auch ein Addierwerk für z.B. sechzehn 1- Bit Wörter verwendet werden, indem die beiden untersten
Bits mit dem ersten Addierer addiert und das jeweils nächsthöhere Bit durch einen weiteren Addierer zum Ergebnis addiert werden, wobei die Wortbreite zunimmt und der letzte Addierer die Wortbreite des Ergebnisses hat. Eine serielle Auswertung ist auch möglich, wenn zeitliche Bedingungen das zulassen. Ferner ist es möglich, einen Code-Generator aus einfachen Standardbausteinen so aufzubauen, daß der Code unmittelbar an seinem Ausgang erzeugt wird.In order to generate the binary code, the previous binary number N can be temporarily stored and compared bit by bit with the new value by means of an XOR operation. The number of binary "1" bits must be determined from this result. If the number of bits is small, this can be done using a read-only memory. Instead of a fixed value memory, an adder for, for example, sixteen 1-bit words can also be used, in that the two lowest Bits are added with the first adder and the next higher bit is added to the result by a further adder, the word width increasing and the last adder having the word width of the result. A serial evaluation is also possible if time conditions allow it. It is also possible to build a code generator from simple standard components so that the code is generated directly at its output.
Es sind weitere Varianten eines Code-Generators denkbar. Figur 4 zeigt einen solchen Code-Generator zum Erzeugen eines 3-stelligen Binarcodes A, d.h. in diesem Fall ist M gleich 3. Bei diesem Code-Generator werden einfache handelsübliche digitale Standardbausteine verwendet, d.h. der Code-Generator ist mit relativ einfachen Mitteln aufzubauen. Die Taktimpulse CLOCK werden einem digitalen Register 30 mit einer Breite von 8 Bit an seinem Takteingang zugeführt. Die Ausgange dieses Registers 30 werden dem Eingang eines Inkrement-Bausteins 32 sowie jeweils einem Eingang von 8 XNOR-Gattern 34 zugef hrt. Die Ausgange des Inkrement-Bausteins 32 sind einerseits mit dem jeweils anderen Eingang der XNOR-Gatter 34 und andererseits mit dem D-Eingang des Registers 30 verbunden. Die beiden Bausteine 30 und 32 bilden zusammen einen Auf- wartszähler, d.h. mit jedem Taktimpuls CLOCK erscheint am Ausgang Q des Registers 30 die Zahl N in Binardarstellung und an den D-Eingangen des Registers 30 liegt der durch den Inkrement-Baustein 32 um 1 erhöhte Wert N+l an. Die XNOR-Gatter 34 vergleichen die Binarwerte N und N+l und stellen fest, in welcher Binarstelle sich N und N+l unterscheiden.Further variants of a code generator are conceivable. Figure 4 shows such a code generator for generating a 3-digit binary code A, i.e. in this case M is 3. This code generator uses simple commercially available digital standard modules, i.e. the code generator can be set up with relatively simple means. The clock pulses CLOCK are fed to a digital register 30 with a width of 8 bits at its clock input. The outputs of this register 30 are fed to the input of an increment block 32 and to an input of 8 XNOR gates 34. The outputs of the increment module 32 are connected on the one hand to the other input of the XNOR gates 34 and on the other hand to the D input of the register 30. The two building blocks 30 and 32 together form a waiting counter, i.e. with each clock pulse CLOCK the number N appears in binary form at the output Q of the register 30 and the value N + 1 increased by 1 by the increment module 32 is present at the D inputs of the register 30. The XNOR gates 34 compare the binary values N and N + 1 and determine in which binary position N and N + 1 differ.
Die Ausgange der acht XNOR-Gatter 34 sind jeweils einem Eingang 10 bis 17 eines 8 : 3-Priority-Encoder-Bausteins 36 zugeführt, beispielsweise dem Standardbaustein 74LS148
von Texas Instruments. Der Priority-Encoder-Baustein 36 stellt fest, welches der höchstwertige aktive Eingang 10 bis 17 ist, wobei 10 der niedrigstwertige und 17 der höchstwertige Eingang ist. Der Baustein 36 gibt entspre- chend der standardisierten Codevorschrift an seinen Ausgängen A0, AI, A2 Signale ab, welche durch die Negierglieder 38 in den binären Code A mit den Bitstellen 0, 1, 2 gewandelt wird.The outputs of the eight XNOR gates 34 are each fed to an input 10 to 17 of an 8: 3 priority encoder module 36, for example the standard module 74LS148 by Texas Instruments. The priority encoder module 36 determines which is the most significant active input 10 to 17, with 10 being the least significant and 17 being the most significant input. In accordance with the standardized code regulation, the module 36 emits signals at its outputs A0, AI, A2, which are converted into the binary code A with the bit positions 0, 1, 2 by the negating elements 38.
Ein alternativer Codegenerator ist in Fig. 5 dargestellt. Hierbei werden die Zählerausgänge vertauscht, d.h. das niedrigstwertige Bit A0 des Zählers 32a wird an das höchstwertige Bit 17 eines Prioritätscodieres 36 gelegt. Damit hat das niedrigstwertige Bit die höchste Priorität, so daß alle ungerade Zählerstände zum gleichen Codewort führen. Wird in der in Fig. 5 gezeigten Schaltung als Prioritäts-Codierer 36 der Baustein 74LS148 verwendet, dessen Eingänge invertiert sind, d.h. bei LOW aktiv sind, so müssen, wie in Fig. 5 angegeben, die Ausgänge des Zählers 32a ebenfalls invertiert sein. Die Negierglieder 38 sind in dieser Anwendung nicht notwendig, da die Ausgänge bereits invertiert sind, so daß das Codewort der höchsten Priorität alle Bitstellen auf Null hat. Es sei darauf hingewiesen, daß ein Prioritätscodierer den ganzzahligen Teil des dualen Logarithmus eines binären Codewortes an seinen Eingängen bildet. Damit erzeugt der Codegenerator nach Fig. 5 den Logarithmus einer Permutation der Bitstellen des Zählers 32a.An alternative code generator is shown in FIG. 5. Here the counter outputs are swapped, i.e. the least significant bit A0 of the counter 32a is applied to the most significant bit 17 of a priority encoder 36. The least significant bit thus has the highest priority, so that all odd counter readings lead to the same code word. If, in the circuit shown in FIG. 5, the 74LS148 block is used as the priority encoder 36, the inputs of which are inverted, i.e. are active at LOW, the outputs of counter 32a must also be inverted, as indicated in FIG. 5. The negation elements 38 are not necessary in this application, since the outputs are already inverted, so that the code word of the highest priority has all bit positions at zero. It should be noted that a priority encoder forms the integer part of the dual logarithm of a binary code word at its inputs. 5 thus generates the logarithm of a permutation of the bit positions of the counter 32a.
Ferner kann ein Codegenerator auch durch einen Zähler mit z.B. 16 Bit Breite bewirkt werden, dessen Ausgänge die Adresseingänge eines Festwertspeichers bilden, die mit einer Speicherkapazität von 64 kByte durchaus handelsüblich sind. Dieser stellt eine Tabelle dar, mittels derer jeder ungeraden Adresse das Codewort Null, jeder geraden, aber nicht durch vier teilbaren Adresse das Codewort
Eins, jeder durch vier, aber nicht durch acht teilbaren Adresse das Codewort Zwei usw. zugeordnet wird. Das Codewort "fünfzehn" wird dann der Adresse 0 zugeordnet und erscheint damit nur einmal. Die genannten Codegeneratoren erzeugen Codezahlen derart, daß die Codezahlen einer Häufigkeit zeitlich gleichverteilt sind. Diese Ausführungsform ist in fast allen Fällen zu bevorzugen, wenn die zu zählenden Ereignisse statistisch als zufällig anzusehen sind. Es sind jedoch auch stochastische Codierer nach den bekannten Methoden der stochastischen Rechentechnik verwendbar, wenn eine Korrelation der zu zählenden Ereignisse mit dem Taktgenerator des Codierers nicht auszuschließen ist . Vom Prinzip her ist es auch möglich, einen Codierer zu verwenden, der zu- nächst alle Codezahlen der niedrigsten Häufigkeit und zuletzt die Codezahl der höchsten Häufigkeit erzeugt, sofern die Zeitdauer der Ereignisse zu bestimmen ist und die Ereignisse alle zum gleichen Zeitpunkt beginnen, zu dem auch der Codegenrator startet .
Furthermore, a code generator can also be effected by a counter with a width of 16 bits, for example, the outputs of which form the address inputs of a read-only memory, which are quite commercially available with a storage capacity of 64 kbytes. This represents a table by means of which each odd address the code word zero, each even, but not by four divisible address the code word One, each by four but not by eight divisible addresses, the code word two, etc. is assigned. The code word "fifteen" is then assigned to address 0 and thus only appears once. The code generators mentioned generate code numbers in such a way that the code numbers are equally distributed over a frequency. This embodiment is to be preferred in almost all cases when the events to be counted are statistically to be regarded as random. However, stochastic encoders according to the known methods of stochastic computing technology can also be used if a correlation of the events to be counted with the clock generator of the encoder cannot be ruled out. In principle, it is also possible to use an encoder which first generates all code numbers with the lowest frequency and lastly the code number with the highest frequency, provided that the duration of the events is to be determined and the events all begin at the same time as the code generator also starts.
Claims
1. Zähler zur nichtlinearen Zählung von Ereignissen mit den Merkmalen :1. Counter for non-linear counting of events with the features:
- Ein Codegenerator (V) erzeugt eine Folge von Code- zahlen (CODE) derart, daß die Codezahlen mit unterschiedlicher Häufigkeit auftreten;- A code generator (V) generates a sequence of code numbers (CODE) such that the code numbers occur with different frequencies;
- jede Codezahl wird mit dem Stand der Zählers verglichen und der Zähler abhängig vom Vergleich derart weitergeschaltet, daß bei hohem Zählerstand nur bei Codezahlen geringer Häufigkeit weitergeschaltet wird.- Each code number is compared with the status of the counter and the counter is switched depending on the comparison in such a way that when the count is high, only code numbers with low frequency are switched on.
2. Zähler nach Anspruch 1, wobei ein Codegenerator verwendet wird, bei dem die Häufigkeit der Codezahlen umgekehrt proportional zum Logarithmus ihres Wertes ist.2. Counter according to claim 1, wherein a code generator is used in which the frequency of the code numbers is inversely proportional to the logarithm of their value.
3. Zähler nach Anspruch 2, wobei der Zähler dann weitergeschaltet wird, wenn die Codezahl größer oder gleich einer aus dem Stand des Zählers gewonnen Zahl ist .3. Counter according to claim 2, wherein the counter is incremented when the code number is greater than or equal to a number obtained from the status of the counter.
4. Zähler nach Anspruch 3 , wobei die aus dem Stand des Zählers gewonnene Zahl durch Division des Zählerstands durch einen vorbestimmten Divisor erhalten wird.4. Counter according to claim 3, wherein the number obtained from the state of the counter is obtained by dividing the count by a predetermined divisor.
5. Zähler nach Anspruch 4, wobei der Divisor die Basis des von dem Codegenerator verwendeten Logarithmus ist.5. The counter of claim 4, wherein the divisor is the basis of the logarithm used by the code generator.
6. Zähler nach einem der Ansprüche 1 bis 5, wobei ein Codegenerator verwendet wird, der Codezahlen erzeugt, bei denen die Codezahlen einer Häufigkeit zeitlich gleichverteilt sind. 6. Counter according to one of claims 1 to 5, wherein a code generator is used which generates code numbers in which the code numbers of a frequency are evenly distributed over time.
7. Generator zum Erzeugen einer Folge von Codezahlen unterschiedlicher Häufigkeit aus einer Folge von Taktimpulsen (CLOCK) , wobei
- ein Zähler (32, 32a), der soviele Binärstellen aufweist, wie verschiedene Codezahlen erzeugt werden, von den Taktimpulsen weitergeschaltet wird,7. Generator for generating a sequence of code numbers of different frequencies from a sequence of clock pulses (CLOCK), wherein a counter (32, 32a), which has as many binary digits as different code numbers are generated, is switched on by the clock pulses,
- der ganzzahlige Anteil eines Logarithmus einer Per- mutation des Zählerstands gebildet wird.- The integral part of a logarithm of a permutation of the counter reading is formed.
8. Generator zum Erzeugen einer Folge von Codezahlen unterschiedlicher Häufigkeit aus einer Folge von Taktimpulsen (CLOCK) , wobei8. Generator for generating a sequence of code numbers of different frequencies from a sequence of clock pulses (CLOCK), wherein
- ein Zähler (32, 32a), der soviele Binärstellen auf- weist, wie verschiedene Codezahlen erzeugt werden, von den Taktimpulsen weitergeschaltet wird,a counter (32, 32a), which has as many binary digits as different code numbers are generated, is switched on by the clock pulses,
- die Codezahl des Wertes a immer dann erzeugt wird, wenn das Bit der Wertigkeit a des Binärzählers aktiv ist. - The code number of the value a is always generated when the bit of the value a of the binary counter is active.
9. Generator nach Anspruch 7 oder 8, wobei ein Prioritätscodierer (36) verwendet wird, dessen höchstprioritarer Eingang mit dem niedrigstwertigen Bit des Zählers (32, 32a) verbunden ist.9. Generator according to claim 7 or 8, wherein a priority encoder (36) is used, the highest priority input of which is connected to the least significant bit of the counter (32, 32a).
10. Verfahren zum Erzeugen einer Folge von Codezahlen unterschiedlicher Häufigkeit in Form von mehrstelligen Binärcodes aus einer Folge von Taktimpulsen (CLOCK) ,10. Method for generating a sequence of code numbers of different frequencies in the form of multi-digit binary codes from a sequence of clock pulses (CLOCK),
- bei dem die Zahl N der angekommenen Taktimpulse- in which the number N of clock pulses arrived
(CLOCK) in eine n-stellige Binärzahl nach der Be- ziehung(CLOCK) into an n-digit binary number after the relationship
N = ∑ai-21 i=0N = ∑ai-2 1 i = 0
* mit an = 1 und ao ... an_τ_ e {0,1}* with a n = 1 and ao ... a n _τ_ e {0,1}
* gewandelt wird, worin i eine Laufvariable und aj der Stellenwert an der i-ten Stelle der Binärzahl ist,
- die um 1 erhöhte Zahl N in eine m-stellige Binärzahl nach der Beziehung m* is converted, where i is a run variable and aj is the position at the i-th position of the binary number, - the number N increased by 1 into an m-digit binary number according to the relationship m
∑ i-21 i=0∑ i-2 1 i = 0
* mit bm = 1 und brj ... bm- ± e i0 1} * gewandelt wird, worin bj der Stellenwert an der i-ten Stelle der Binärzahl für den N+l-ten Taktimpuls ist,* with b m = 1 and brj ... b m - ± e i 0 1 } *, where bj is the position at the i-th position of the binary number for the N + l-th clock pulse,
- anschließend ein M-stelliger Binärcode A gemäß der Beziehung- then an M-digit binary code A according to the relationship
* mit aj_ = 0 , wenn i > n und* with aj_ = 0 if i> n and
* bi = 0 , wenn i > m* bi = 0 if i> m
- gebildet und dann als Ausgangssignal ausgegeben und weiterverarbeitet wird. - Formed and then output as an output signal and processed.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet,11. The method according to claim 10, characterized in
- daß der Zählbaustein (ZO) einen unteren Zähler (14) und einen oberen Zähler (16) enthält,- That the counter module (ZO) contains a lower counter (14) and an upper counter (16),
- daß der untere Zähler (14) bei einem Zählerstand B=0 des oberen Zählers (16) sämtliche ankommenden Taktimpulse (CLOCK) zählt, bis durch einen Überlauf der Zählstand B von 0 verschieden ist, und- That the lower counter (14) at a counter reading B = 0 of the upper counter (16) counts all incoming clock pulses (CLOCK) until the count B is different from 0 due to an overflow, and
- daß der Zählstand B mit dem Binärcode A verglichen wird und bei Erfüllung der Bedingung A≥B der untere Zähler (14) einen Taktimpuls (CLOCK) zählt und seinen Zählstand U um 1 erhöht .- That the count B is compared with the binary code A and if the condition A≥B the lower counter (14) counts a clock pulse (CLOCK) and increases its count U by 1.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekennzeichnet, daß die Zählzeit Tz für den Zählbaustein
gebildet wird nach der Beziehung12. The method according to claim 10 or 11, characterized in that the counting time T z for the counter module is formed according to the relationship
(U+2K)- >B <-»K t. worin tp die Taktperiode der Folge von Taktimpulsen ist .
(U + 2 K ) - > B <- »K t. where t p is the clock period of the sequence of clock pulses.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE1997139768 DE19739768A1 (en) | 1997-09-10 | 1997-09-10 | Method and device for generating a sequence of multi-digit binary codes |
DE19739768.9 | 1997-09-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1999013578A1 true WO1999013578A1 (en) | 1999-03-18 |
Family
ID=7841893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/DE1998/001855 WO1999013578A1 (en) | 1997-09-10 | 1998-07-03 | Non-linear counting device |
Country Status (2)
Country | Link |
---|---|
DE (1) | DE19739768A1 (en) |
WO (1) | WO1999013578A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2122188A5 (en) * | 1971-01-12 | 1972-08-25 | Lucas Industries Ltd | |
US3866024A (en) * | 1973-10-23 | 1975-02-11 | Scope Inc | Digital log-time generator |
US4089060A (en) * | 1976-10-15 | 1978-05-09 | Mitchell Donald K | Digital logarithmic apparatus |
US4539694A (en) * | 1982-09-24 | 1985-09-03 | Asulab S.A. | Non-linear counting circuit |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4190825A (en) * | 1978-12-20 | 1980-02-26 | General Electric Company | Logarithmic analog-to-digital converter |
-
1997
- 1997-09-10 DE DE1997139768 patent/DE19739768A1/en not_active Ceased
-
1998
- 1998-07-03 WO PCT/DE1998/001855 patent/WO1999013578A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2122188A5 (en) * | 1971-01-12 | 1972-08-25 | Lucas Industries Ltd | |
US3866024A (en) * | 1973-10-23 | 1975-02-11 | Scope Inc | Digital log-time generator |
US4089060A (en) * | 1976-10-15 | 1978-05-09 | Mitchell Donald K | Digital logarithmic apparatus |
US4539694A (en) * | 1982-09-24 | 1985-09-03 | Asulab S.A. | Non-linear counting circuit |
Also Published As
Publication number | Publication date |
---|---|
DE19739768A1 (en) | 1999-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10045568B4 (en) | Event based semiconductor test system | |
DE60035171T2 (en) | Methods and circuits for quickly finding the minimum / maximum value in a set of numbers | |
DE4008385C3 (en) | Adjustable frequency divider | |
DE3818546C2 (en) | ||
DE2256135C3 (en) | Method for testing monolithically integrated semiconductor circuits | |
DE69113836T2 (en) | Integrated high-speed synchronous counter with asynchronous reading. | |
DE2245360A1 (en) | PSEUDO RANDOM NUMBER GENERATOR FOR DATA PROCESSING | |
DE68913807T2 (en) | Clock. | |
DE2722124A1 (en) | ARRANGEMENT FOR DETERMINING THE PRIORITY RANK IN A DP SYSTEM | |
EP1504336B1 (en) | Device and method for generating a random number | |
DE69616909T2 (en) | Analog-to-digital converter, decimation and storage system | |
EP0610990B1 (en) | Digital phase-locked loop | |
DE2357654C2 (en) | Associative memory | |
DE3149494C2 (en) | ||
DE4437069C2 (en) | Clock generator for semiconductor test equipment | |
DE2906156C2 (en) | Digital filter arrangement | |
DE2235802C2 (en) | Method and device for testing non-linear circuits | |
DE2505388A1 (en) | PROCEDURE AND ARRANGEMENT FOR LOGARITHMIC CONVERSION OF A MEASURED VALUE | |
WO1999013578A1 (en) | Non-linear counting device | |
DE102008064063B4 (en) | A control signal generating circuit for setting a period value of a generated clock signal as the period of a reference signal multiplied by or divided by an arbitrary real number | |
DE2111670A1 (en) | Arrangement for displaying the mean rate of occurrence of a signal indicative of an event | |
DE2703570C2 (en) | ||
DE69918313T2 (en) | METHOD AND DEVICE FOR SIGNAL COMPRESSION IN THE FIXED POINT FORMAT WITHOUT BIAS | |
DE2316892C3 (en) | Circuit arrangement for the adjustable quantitative reduction of pulses | |
DE1292183B (en) | Circuit arrangement for phase correction of signals emitted by a clock generator by means of pulse-shaped control signals |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |