Discussion:
Adding delays in digital waveform generator
(too old to reply)
AshishMaharjan
2008-08-07 15:40:09 UTC
Permalink
Your help will really be appreciated.
 
I am generating 5 signals using Digital Waveform Generator 3.0 and am sending a pattern to my processor. For a correct operation there has to be relative delays among these signals. The problem is that this dealy is not necessarily an integer multiple of time period of any signal. The WF Generator allows to move the edges only at multiples of the rate provided when creating all of these 5 signals.
That means if I say my rate is 20MHz I can create delays in multiples of 50ns. But I want delays of 10ns or 12ns. Any idea?
I don't see a simple way to do it!!
 
Paul C.
2008-08-08 20:10:05 UTC
Permalink
Hi AshishMaharjan,Most digital I/O boards will only allow data delay of clock cycles because they only run at one clock speed.  You only have one clock that you can create or acquire data using the rising edge (or falling on some boards).  So to achieve these delays you need to increase the clock rate and they would have to be an integer multiple.  There is also something called data delay, but that only works for frequencies greater than 25MHz and will apply to all lines.  Depending on the card your using, you may be able to increase the clock rate high enough to get this kind of delay resolution.  In addition, when you say delay, are you referring to generation or acquisition delay?  On the acquisition side, if you can increase the acquire clock to the fast enough rate that all the signals are multiple divide downs you could just throw out the samples you don't care about on each signal in software.  For generation, are you generating a Z (Tristate) during these "delays" or something such as a low or high?  The solution would be the same regardless.  I was just curious.Regards,Paul C.Message Edited by Paul C. on 08-08-2008 02:51 PM
Coal Man
2008-08-11 20:40:05 UTC
Permalink
Ashish, As Paul was saying, in order to get a finer placement of edges, you will need to oversample, or overgenerate your signal.  You should set the rate of your waveform to the maximum rate that your board can read/write, or an integer multiple of the finest edge.  For example, if you want 10ns placement of edges, set your rate to be 100MHz.  You can then place edges with 10ns resolution.  If you require an edge at 10ns, and another at 12ns, you will need to utilize data delay, as Paul mentioned.  In order to set the data delay on a per-channel basis, you will need to save the signal you created in the Digital Waveform Editor, and use LabVIEW, or another language, to use the HSDIO API.  The express VIs and Signal Express allow you to adjust the data delay for all channels, but you can't select individual channels.  Also, with the API, you can select individual channels to sample on the rising edge, falling edge, and with a certain amount of delay, so you effectively have two delays.  One is half of the period of your clock, and the other is an adjustable fraction of the period.  So if you are using a 100MHz clock, you can get samples at 0ns, 5ns, and somewhere between 0 and 10ns.  I would recomend taking a look at some of the data delay examples in the example finder since you will probably need them to produce the signal you want.  Actually, it might be helpful if you could also post the signal that you want to generate.  Since the DWE is hardware independent, you can select a very high clock rate and place your edges where you want.  Once you have done this, it would be easier for us to help you determine what channels need to be delayed and by how much.  It may not be possible to generate the signal using a single board, depending on how fine your edge placement needs to be.
Continue reading on narkive:
Loading...