The present invention relates to digital signal generation.
In arbitrary signal generation, a pulse can be understood as a sequence of individual subsequent digital signals. The temporal behavior of pulse signals can be described by different parameters. The pulse period defines the period of time between two subsequent pulse signals. Further parameters define the delay and the pulse width of the pulse signals.
Digital pulse pattern generators using analog circuitry are known from prior art. For generating a pulse pattern according to the above-defined parameters, individual oscillators circuits might be provided. Examples of such pulse generators are the Agilent 81100 Family of Pulse Pattern Generators of the applicant Agilent Technologies.
It is an object of the present invention to provide an improved signal generator.
This object is achieved by the present invention as defined by the independent claims. Preferred embodiments are subject matter of the dependent claims.
A generator for generating a sequence of digital values according to an embodiment of the present invention comprises a counter adapted for providing a counter position dependent on a reference clock. More particular the counter is adapted for providing its position with each reference clock cycle. The digital edge generator according to the embodiment of the present invention receives a start signal, an increment signal, further referred to as an increment word and an offset signal, further referred to as an offset word respectively. The offset word corresponds to a delay of the edge's starting point in time. The digital edge generator is adapted for setting the counter's position to a start position derived from a multiplication of the offset word and the increment word upon detection of the start signal. It also sets the counter's position to a new position derived from the increment word with each clock cycle.
The setting of a start position upon detection of the start signal and dependant on the offset word allows more flexible timing setting. More particular, the offset word takes into account that the rising or falling edge might start between to subsequent reference clock cycles. An additional and undesired start delay until the next reference clock cycle, resulting in a distortion of the edge will not occur. It will be noted that the slope of the edge is given by the increment word, which includes be a positive value in case of a rising edge or a negative value in case of a falling edge. In an embodiment the start position is derived from the offset word and the increment word. In this embodiment the edge generator is adapted for generating a sequence of digital signals and more particularly a sequence of digital values, characterizing a rising or falling edge. Analog circuitry and calibration thereof, for example of capacitors is not necessary.
In another embodiment the counter comprises a register and a summing element, which is connected to the first input terminal of the edge generator and an output of the register. The register's value, corresponding to the counter's value is fed back, summed up with the increment word and stored in the register as a new value. With each reference clock cycle the register increases or decreases its value. In another embodiment, a switch is coupled between the summing element and the input of the register. The switch is also coupled to the second input terminal for the offset word for storing the start position in the register.
In a further embodiment, the output is coupled to a memory lookup table, which is adapted for generating digital value derived from the output of the counter. A memory look-up table is advantageous, if additional distortion shall be used or spurs suppressed. As an alternative the output of the edge generator is couple to an digital-analog converter. In still another embodiment, the output of the counter is coupled to a switch. A constant digital value is fed in at the second input of the switch. The switch switches its position upon detection of a start signal and dependant on the counter's position.
A controlled pulse pattern generator according to an embodiment of the present invention uses digital frequency synthesis. For the generation process the embodiment implements a flexible and individual setting of timing parameters defining a pulse, including the pulse period, the pulse width, the rising and falling time. All timing parameters are derived from one stable high-speed clock including the digital generation of the pulse slopes. Henceforth, the rising and falling time can be chosen independently from each other using the digital edge generator according to the present invention. No complex calibration of analog circuitry becomes necessary. Particularly, the controlled pulse pattern generator comprises a period counter adapted for the generation of a start signal and a first offset word. The start signal and the first offset word are derived from a high-speed stable reference clock and a pre-given pulse period. Output terminals of the period counter are coupled to a first digital edge generator. The first digital edge generator is adapted for the generation of a rising edge in respect to the start signal and the first offset word. A further width counter is also coupled to the period counter. It is adapted for the generation of a stop signal and a second offset word, which are derived from a pre-given pulse width, the reference clock, and the first offset word in respect to the start signal. Finally, a second digital edge generator, coupled to the width counter, is adapted for the generation of a falling edge in respect to the stop signal and the second offset word.
The period counter, as well as the width counter, takes a possible phase offset word in respect to the reference clock, the pulse period and the pulse width respectively into account. Hence a phase offset word will be generated, if the pulse period and the pulse width respectively include a non-integer multiple of the reference clock cycle, the phase offset word corresponding to a delay between subsequent reference clock cycles. The embodiment according to the present invention is adapted for setting of the pulse period and the pulse width independently from the reference clock and generating a corresponding pulse pattern. Additionally the edge generators are independent from each other, allowing any setting of slopes for the generation. The pulse pattern generator according to an embodiment of the present invention uses only one stable reference clock. A change of pulse timing parameters is fast, because oscillators do not have to be tuned.
In an embodiment of the invention, a switching device is provided. The switching device is coupled with its inputs to the respective outputs of the respective first and second edge generators. It is being adapted for switching one of its inputs to its output in respect to the start signal and the stop signal. More particularly, the switching unit is being adapted for coupling the output of the first edge generator to its output in case a start signal is provided and to couple the output of the second edge generator to its output in case a stop signal is provided. Due to the generation of the start and the stop signal, the output of the corresponding edge generators are then fed through the output of the controlled pulse pattern generator by the switching unit in correspondence to the start and the stop signal. Preferable the output of the switching unit is coupled to a Digital-Analog converter.
In a further embodiment, the period counter comprises a first register, an overflow detection device coupled to the first register, and being adapted for detecting an overflow of the first register. The period counter is adapted for the generation of the start signal upon such detection of an overflow. Additionally, the first offset word is derived from an overflow value of the first register and is generated upon overflow detection as well. In a preferred embodiment, the pulse period is derived from a length of the first register and an increment word. Particularly, the register's value is increased by the increment word with each reference clock cycle until the length of the first register is reached. With the next increment, the overflow detection device will detect an overflow of the register and also derive the overflow value of the register. The overflow value corresponds to a delay and includes a value smaller than the increment word.
In a further embodiment, the width counter comprises a second register, an overflow detection device coupled to the second register and adapted for detecting an overflow. The width counter is adapted for the generation of a stop signal and the second offset word, upon detection of the start signal. The second offset word is derived from an overflow value of the second register. In a preferred embodiment, the pulse width is derived at least from the length of the second register and an increment word.
Because a possible phase offset between the stable reference clock and the pulse period have to be taken into account, the width counter comprises means for saving a start position in the second register derived from the first offset word.
In an embodiment of the invention, a first and second register comprises a register length of at least 48 bits and, more particularly, a register length of 64 bits. Also, it is possible to use other register lengths as well as different register length for the first and second register of the period counter and the width counter. For example, the first register might include a length of 32 bits, 36 bits or 72 bits. The register length together with the stable reference clock cycle define the maximum length of the pulse period and the pulse width, respectively.
It might become necessary that the slopes of the pulses generated by the inventive pulse pattern generator have to be distorted in order to suppress or prevent spurs in the signal. Therefore, the pulse pattern generator according to an embodiment of the invention comprises a memory table, coupled to the outputs of the first and second edge generators. The memory table comprises output values and is adapted for generating digital values derived from the digital output of the first and second edge generator. Preferable the memory table is adapted as a memory lookup table, which can be used to smooth or change the output values generated by the edge generators. Scaling or distorting the output values is possible.
In a further embodiment, the outputs of the first and second edge generators are coupled to an input of a digital-analog converter for digital-analog conversion. In an embodiment, the pulse pattern generator comprises a digital-analog converter, coupled to the output of the memory lookup table. The output of the pulse pattern generator according to this embodiment of the present invention is an analog pulse pattern, digitally generated or alternately fully digitally generated.
As mentioned above, a pulse pattern can be defined by a pulse period, a pulse width and a pulse delay. To generate a pulse pattern in a more flexible way, the method according to the present invention uses direct frequency synthesis. It provides a stable reference clock in a first step. Also the pulse period and the pulse width have to be defined. The signal is generated by generating a rising edge in respect to a start signal and a first offset word. The start signal and the first offset word is derived from the pulse period and the stable reference clock. The first offset word takes into account that the pulse period might be a non-integer multiple of the reference clock cycle. It is used to correct any delay of subsequent generated pulses. Furthermore it corrects edge generation by setting a start position, when the rising edge is digitally generated.
The rising edge is then outputted. Furthermore, a signal having a falling edge is generated in respect to a stop signal and a second offset value. The stop signal and the second offset word are derived from the pulse width, the stable reference clock, the start signal, and the first offset word. The second offset word takes into account that the pulse width might be a non-integer multiple of the reference clock cycle. The falling edge is then outputted.
The method according to an embodiment of the present invention might be used in a fully digital synthesized generator having a frequency stable reference clock. In an embodiment, the step of generating a signal having a rising edge comprises also incrementing a counter by an increment word. The increment word corresponds to the pulse period. The generation of the start signal occurs upon detecting the counter's overflow. The first offset word is derived from an overflow value of the counter. The offset word corresponds to a time delay between the start of the edge and the reference clock cycle. Preferable, the rising edge counter is set to a start position derived from the first offset word derived before. The edge counter is then incremented by an increment word, corresponding to the rising edge slope of the pulse signal to be generated. The positions of the rising edge counter are then output in respect to the stable reference clock. In the same manner, a signal having a falling edge is generated.
In an embodiment of the present invention, the method for generating a pulse might comprise the steps of generating a signal having a rising edge in respect to a start signal and a first offset word, the start signal and the first offset word derived from a pulse period of the pulse to be generated and a stable reference clock. The edge is output. Then a signal having a falling edge in respect to a stop signal and a second offset word is generated, wherein the stop signal and the second offset word is derived from a pulse width, the stable reference clock, the start signal and the first offset word. The signal having a falling edge is output.
In a further embodiment of the invention a stable reference clock is provided and a signal representing the pulse period as well as a signal representing the pulse width is received. Receiving both signals allow the setting of the parameters independently from each other. In a further embodiment of the invention the pulse signal is generated by incrementing a counter by an incrementing signal or word respectively, wherein the incrementing word corresponds to the pulse width. Upon detection of a counter's overflow, a start signal and a first offset word, derived from the overflow value is generated. The start signal and the phase offset word are used for the generation of the rising edge.
In yet another embodiment of the invention generating the rising edge comprises the step of setting a rising edge counter to a start position, derived from the first offset word. The rising edge slope is defined by a rising increment signal or word, incrementing the rising edge counter each reference clock cycle and outputting the rising edge counter with each reference clock cycle.
It may be noted that the pulse width can be derived from a further word, corresponding to the pulse width. The word increments a width counter, the width counter set in an embodiment to a start value derived from the first offset signal or word respectively. The width counter is incremented by the word corresponding to the pulse width each reference clock cycle. Upon detection of an overflow of the width counter, a stop signal is generated and an overflow value of the width counter is derived, defining a second offset signal or second offset word. By using the stop signal and the second offset word a falling edge is generated in the same way as the generation of the rising edge. Of course, the falling edge counter is now decrement with each reference clock cycle.
The various embodiments of the method of the present invention provide a fast and flexible method to produce a sequence of digital signals, corresponding to a digital pulse. The digital pulse can be easily converted into an analog pulse. The different words and counters allow an independent setting of timing parameters of the pulse. More over all timing parameters take into account that they might be a non-integer multiply of the reference clock cycle by using the offset signals.
The inventive method is not limited to hardware components like application-specific circuits, field programming gate arrays, digital signal processors, or microprocessors. Also, a software program or product stored in a data carrier can be adapted for executing the method when running on a data processing system. This allows the flexible generation of pulse pattern signals completely by software.
Other object and many advantages of the present invention will be readily appreciated and become better understood by reference to the following description taken with the accompanying drawings, in which
Conventional methods using phase accumulation techniques are shown in
The digital rising edge generator comprises a counter 37 having a register 38 of a specific length, for example 48 bits. Other register lengths like 32, 36, 54 or 24 can also be used. The counter 37 is similar to a direct digital frequency synthesis loop according to
Another embodiment of a rising edge generator can be seen in
The switch 300 is connected to the terminal 33 and controlled directly by the start signal. The second switch 301 is coupled to a delay element 303. Furthermore a flip-flop circuit is provided having a data input terminal connected to the output of the summing element 36 and a reset terminal, connected to terminal 33.
An example of an output X of the rising edge generator 3 according to
When a start signal is present at terminal 33 according to
An embodiment of a digital falling edge generator is shown in
A diagram showing the output Y of the falling edge generator over time in respect to the reference clock cycle can be seen in
The period counter device 2 comprises a register 24 with an input terminal 243 and an output terminal 245. The output is connected to a feedback path 246 coupled to a summing element 27. The element 27 sums the result of the register 24 and the increment word INC1 and feeds the result to the input 243 of the register 24 as a new input value. The register 24 has additional input terminals 241 and 242 for a reset signal and a start signal. The output terminal of register 245 is connected to an overflow detection and overflow counter 25 for generation of the start signal.
In operation, the period counter 2 outputs a start signal at the output terminal 21. The time period between two start signals corresponds to the time period TP which is given by the length of the register 24, the reference clock CLK and the increment word INC1. However the increment word, and the pulse period TP might be a non-integer multiply of the reference clock cycle.
As an non-limiting example, the register length of the period width counter device 2 is 32 bits, the high-stable reference clock CLK comprises a frequency of 229 Hz corresponding to a period of the reference clock of 1/229 s. Let's assume the desired time period TP shall be 125 ms. This will result in an increment word INC1 of 64. In other words, each reference clock cycle the register's value is incremented by 64. As soon as the register's value reaches its maximum value, which is 232 defined by the register length, an overflow will occur, which is detected by the overflow detection circuit 25 according to
However, if the pulse period Tp chosen is not an integer multiple of the reference clock cycle, a register overflow will occur. The new register's value will not be zero.
Such behavior can be seen in
If such overflow is not taken into account, the next pulse will start at the time point TP1 and not at the desired time point TP. Such behavior generates a phase offset, resulting in a time period error, which can be seen in the
Therefore, the overflow detection device 25 according to
In other words, the period counter device comprises a regenerative register, which adds the increment word INC to the register's value every reference clock cycle CLK. After an overflow, the register holds a new value from 0 to the increment word INC-1. The new value represents the phase offset with respect to the reference clock CLK or a delay time, which has to be taken into account, when generating the width and edges of the pulse. It is taken by the overflow detection and overflow counter circuit, which generates a start signal at the output terminal 21 and an offset word φ1 at the output 22. The overflow detection circuit and overflow counter device 25 enable an additional delay for starting the rising edge of the pulse signals.
The start signal as well as the first offset word Φ1 is then fed into a digitally rising edge generator 3 according to the present invention.
For setting the pulse width determined by the rising time and the time of the high state, the digitally pulse pattern generator 1 comprises a further width counter 5, which is coupled to the outputs 21 and 22 of the period counter 2. It comprises a further input terminal 56 for an increment word INC2 corresponding to the pulse width TW. An exemplary embodiment of the width counter 5 is seen in
The width counter device 5 has a similar function to the period counter device 2 except that it will receive its start signal from the input terminal 54 connected to the output terminal 21 of the period counter 2. Additionally, the width counter 58 comprises a calculation unit 58 which takes into account the first offset word Φ1 and the increment word INC2 to calculate an offset position to be stored in the register 500 upon detection of a start signal. The offset value stored in the register 500 corresponds to the delay between the starting point of the rising edge of the pulse in respect to the reference clock cycle. The register's length and the incremental word INC2 correspond to the total pulse width TW. As soon as an overflow of the register 500 is detected by the detection unit 501, a stop signal is generated at the output terminal 51. The register 500 also holds an overflow value, which is taken by the overflow detection and overflow counter unit 501 and output at the output terminal 50 as a second offset word Φ2.
The outputs of the width counter device 5 are then fed into a falling edge generator 6 as previously described in
Additionally, the digital pulse pattern generator 1 according to
The input terminal 71 is connected to the output terminal 21 of the period counter 2 for the start signal. The second input terminal 72 is connected to the output terminal 51 of the width counter device 5. Depending on the state of the start and the stop signal on the corresponding input terminals 71 and 72, the control unit 7 outputs a signal thereby switching the unit 4. More particularly, if a start signal is present at the input terminal 71, the control unit 7 switches the switching unit 4 to the first state coupling the input terminal 41 to the output terminal 43. As soon as the stop signal is present, corresponding to the start of the falling edge, the control unit 7 sets the switching unit 4 to the second state, thereby coupling the input 42 to the output 43.
The control unit 7 can be adapted as a flip flop with a data input corresponding to the first input terminal 71 and a reset input corresponding to the second input terminal 72. When a start signal is present, a high state is output on the data output of the flip flop as long as the flip flop is not reset by the stop signal provided by the width counter device 5.
The output terminal of the switching unit 16 is connected to the input terminals of the rising edge generator 3 and the width counter device 5. The falling edge generator 6 is connected with its input to a second switching device 15. The second switching device 15 also comprises two input terminals 151 and 152. The input terminal 151 is connected to the output of the width counter device 5. The second input terminal 152 is connected to the trigger calculation unit 17. It is adapted for feeding an external clock falling edge signal into the falling edge generator 6.
Using the two additional switches 16 and 15 allows a more flexible digital pulse pattern generation using external triggers, external clocks, or external rising and falling edges.
An input of the trigger calculation unit 17 is connected to a fast analog-digital converter 18 for conversion of an analog trigger signal at the input terminal 181 of the digital pulse pattern generator 1. The digital trigger signal provided by the fast analog-digital converter 18 is processed by the trigger calculation unit 17. Any delay between a trigger start signal at the input 181 and the high-speed reference clock of the digital pulse pattern generator 1 is taken into account and compensated for the later generation of the pulse signals. In other words, the trigger calculation unit compensates any phase delay between the trigger pulse and the reference clock and further compensate the processing time for trigger pulse.
The output terminal of the switching unit 4 is connected to a memory lookup table 11. The output values W generated by the digital pulse pattern generator are used as an argument for the memory lookup table. The memory lookup table 11 is adapted for storing corresponding values to the phase control words W. They can be used to distort the pulse pattern. The output of the memory lookup table 11 is connected to a filter 12 for suppressing undesired signal parts and then used as input for an output calculation or multiply unit 13. The output of unit 13 is connected to a digital-analog converter for the generation of an analog pulse signal. The analog pulse signal might be amplified by an additional amplifier 14 and then fed to the output terminal 19 of the pulse pattern generator 1.
A trigger signal received at the trigger input terminal 181 of
Φ3=(x1*(y2−d0)−x2*(y1−d0))/(y2−y1)
For two subsequent samples x1, x2 the offset Φ3 will be −y1/(y2−y1). The calculated offset can be used in the period counter device. Using the trigger input the edge generator as well as width counter can be controlled directly. This results in a higher flexibility when generating pulse pattern by an external trigger generator. Furthermore due to the well defined delay between the trigger input and the reference clock of the generator, this concept is usable not only for pulse pattern generation but for every signal generation.
The generation of pulse pattern signals is not limited to hardware components like the pulse pattern generator shown in
The first step S1 comprises the provision of a stable reference clock. The stable reference clock can be, for example, a clock signal provided by an oscillator of a DSP, a processor clock signal, or an internal signal generated by a computer. Even a software clock derived by internal hardware for data processing systems can be used. The pulse period TP as well as the pulse width TW of the desired signal have to be known. They are provided, for example, by receiving a signal representing the pulse period TP.
In the examples according to
The start signal will start a rising edge counter in Step S5, which has been set to a starting position derived from the first offset word Φ1. With each reference clock cycle, the position of the rising edge counter is output and the rising edge counter is incremented by the increment word INC provided in step S2. This is done in Step S5 and S6. Of course it has to be mentioned that during the generation of the rising edge, the time period counter is incremented again with its increment word INC1.
The start signal is also used for the generation of the pulse width TW. The offset word generated in step S4 is used in step S7 as a starting position for an additional counter which is incremented by the second increment word INC2. As soon as the second counter produces an overflow, it will be detected and a stop signal is generated in step S9. Furthermore, a second offset word Φ2 derived from the overflow value of the second counter in step S7 is generated. A falling edge is produced in step S10 using the stop signal and the second offset word. A falling edge is then output in step S11.
The method steps of incrementing the counters are performed parallel. Hence, the pulse period time and pulse width counter are incremented, while a rising edge is generated and output. It is clear that the digital pulse pattern generated by this method is converted into an analog pulse signal. However, all pulse parameters are generated fully digitally.
Number | Date | Country | Kind |
---|---|---|---|
EP05104301.6 | May 2005 | EP | regional |