Reply by gnua...@gmail.com August 23, 20222022-08-23
On Tuesday, August 23, 2022 at 12:47:35 PM UTC-4, Stef wrote:
> On 2022-08-23 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > > ... > > There are products out there that do exactly what you want. I found Bitscope, for example, which seems to have a board level product, but their web site is so goofy I can't find actual specs on it. The control panel example they show only provides standard waveforms, not arbitrary. So I'm not sure it is an AWG. > > > > http://bitscope.com/product/BS05/ > > > > You might need to contact them. > Indeed a bit goofy, found no specs either. They say arbitrary but only > show standard and distorted standard waveforms. Also no indication how > to get truly arbitrary data in. > > How many do you need? Is it worth the effort to roll your own? How are you going to provide a waveform input/definition? > > > Number is still unknown (to me), but it is for a commercial product. So > just sticking in some fancy boards will not be an option. There will be > more generators and signal operations and a lot of other stuff, so it > will be custom board(s) and controllers etc. anyway. And then you have > things like form factor and design and more. The AWG bit may in the end > be the simplest problem to solve. > > Getting the data in is another thing completely and that will probably > involve PC programs and cloud connections. Not my first choice, but > understandable from our customer and end user points of view.
lf you want to provide a very large memory, you can attach an SDRAM to an FPGA and have literally GBs of RAM at very high sample rates with low cost. If the rest of the design does not require a large FPGA, you can do this is a small FPGA for less money than the memory chip. -- Rick C. +-+ Get 1,000 miles of free Supercharging +-+ Tesla referral code - https://ts.la/richard11209
Reply by Stef August 23, 20222022-08-23
On 2022-08-23 gnuarm.del...@gmail.com wrote in comp.arch.fpga:

...

> There are products out there that do exactly what you want. I found Bitscope, for example, which seems to have a board level product, but their web site is so goofy I can't find actual specs on it. The control panel example they show only provides standard waveforms, not arbitrary. So I'm not sure it is an AWG. > > http://bitscope.com/product/BS05/ > > You might need to contact them.
Indeed a bit goofy, found no specs either. They say arbitrary but only show standard and distorted standard waveforms. Also no indication how to get truly arbitrary data in.
> How many do you need? Is it worth the effort to roll your own? How are you going to provide a waveform input/definition? >
Number is still unknown (to me), but it is for a commercial product. So just sticking in some fancy boards will not be an option. There will be more generators and signal operations and a lot of other stuff, so it will be custom board(s) and controllers etc. anyway. And then you have things like form factor and design and more. The AWG bit may in the end be the simplest problem to solve. Getting the data in is another thing completely and that will probably involve PC programs and cloud connections. Not my first choice, but understandable from our customer and end user points of view. -- Stef Windows - From the people who brought you EDLIN!
Reply by gnua...@gmail.com August 23, 20222022-08-23
On Tuesday, August 23, 2022 at 10:59:51 AM UTC-4, Stef wrote:
> On 2022-08-22 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > > On Monday, August 22, 2022 at 4:24:41 AM UTC-4, Stef wrote: > >> On 2022-08-20 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > >> > On Friday, August 19, 2022 at 6:45:53 AM UTC-4, Stef wrote: > >> ... > >> >> I think it is obvious. Phase accumulator points to LUT, but LUT isn't a > >> >> sine table but sommething else. > >> > > >> > Yes, it is obvious. That's why I'm asking what you are looking for from this discussion. > >> In my original post, I had 2 questions > >> > >> 1) Are there objections to using a prescaler and a shorter phase > >> accumulator for generating frequencies over a wide range? > >> > >> This has been discussed. Conclusions is that you should keep the > >> accumulator as long as possible for best performance. > > > > If any of that is from my comments, I retract them. I was thinking of a typical DDS generating a sine wave. > Most of those comments (and of Waldek) will also apply to AWG in some > way, so no need to retract. Also the output filter argument is one > against switching sample frequency. Ofcourse I can keep the pre-scaler > option in mind, but I don't think it should be the initial approach. > Only an optimization when really necessary (speed, size, etc). > > You only need the clock rate to suit the waveform you are generating, such as Nyquist considerations. Your memory is finite, so you have a fundamental trade off between clock rate and duration of the AWG pattern. I don't know your real requirements, so I can't advise you about how to optimize this. It will depend on your particular problem. > > > > > >> 2) Are the complete DDS chips available that have a downloadable LUT, > >> instead of the standard sine table? > >> > >> If such chips are available, I may not have to develop a custom > >> (FPGA/CPU/DSP) solution. This question has not been answered and I have > >> found non myself sofar. > > > > Yeah, I've never used DDS chips, so I couldn't say. As I've mentioned, there are many AWG products at other levels of integration, modules and boards. eBay abounds with them. > > > > > >> > I don't know what your requirements are, but you can buy low cost AWG board level products and small box level products. > >> At this time there are only general requirements (AWG, 12MHz BW, ...). > >> If the project continues, this will be detailed further. > >> > >> Do you have an example of such a board level product? If it can do what > >> will be required, it is certainly an option. > > > > Try punching AWG into eBay or one of the other sites. > Searching on AWG alone will find you a lot of wire. ;-) > With "arbitrary waveform generator", I get a lot of complete bench top > generators. And a number of (usually the same) cheap bare board units > like this one: > https://www.ebay.com/itm/221506533974?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=MRtVGD4USYW&sssrc=2047675&ssuid=&widget_ver=artemis&media=COPY > > This one is 8-bit 256 sample 100 kSPS. Not enough on every parameter and > it seems most of these modules have similar specs. > > But this is the kind of board level product you meant? I hoped for > someting that can be placed on a board. Looks like I need to implement > something myself if this project continues.
There are products out there that do exactly what you want. I found Bitscope, for example, which seems to have a board level product, but their web site is so goofy I can't find actual specs on it. The control panel example they show only provides standard waveforms, not arbitrary. So I'm not sure it is an AWG. http://bitscope.com/product/BS05/ You might need to contact them. How many do you need? Is it worth the effort to roll your own? How are you going to provide a waveform input/definition? -- Rick C. +-- Get 1,000 miles of free Supercharging +-- Tesla referral code - https://ts.la/richard11209
Reply by Stef August 23, 20222022-08-23
On 2022-08-22 gnuarm.del...@gmail.com wrote in comp.arch.fpga:
> On Monday, August 22, 2022 at 4:24:41 AM UTC-4, Stef wrote: >> On 2022-08-20 gnuarm.del...@gmail.com wrote in comp.arch.fpga: >> > On Friday, August 19, 2022 at 6:45:53 AM UTC-4, Stef wrote: >> ... >> >> I think it is obvious. Phase accumulator points to LUT, but LUT isn't a >> >> sine table but sommething else. >> > >> > Yes, it is obvious. That's why I'm asking what you are looking for from this discussion. >> In my original post, I had 2 questions >> >> 1) Are there objections to using a prescaler and a shorter phase >> accumulator for generating frequencies over a wide range? >> >> This has been discussed. Conclusions is that you should keep the >> accumulator as long as possible for best performance. > > If any of that is from my comments, I retract them. I was thinking of a typical DDS generating a sine wave.
Most of those comments (and of Waldek) will also apply to AWG in some way, so no need to retract. Also the output filter argument is one against switching sample frequency. Ofcourse I can keep the pre-scaler option in mind, but I don't think it should be the initial approach. Only an optimization when really necessary (speed, size, etc).
> You only need the clock rate to suit the waveform you are generating, such as Nyquist considerations. Your memory is finite, so you have a fundamental trade off between clock rate and duration of the AWG pattern. I don't know your real requirements, so I can't advise you about how to optimize this. It will depend on your particular problem. > > >> 2) Are the complete DDS chips available that have a downloadable LUT, >> instead of the standard sine table? >> >> If such chips are available, I may not have to develop a custom >> (FPGA/CPU/DSP) solution. This question has not been answered and I have >> found non myself sofar. > > Yeah, I've never used DDS chips, so I couldn't say. As I've mentioned, there are many AWG products at other levels of integration, modules and boards. eBay abounds with them. > > >> > I don't know what your requirements are, but you can buy low cost AWG board level products and small box level products. >> At this time there are only general requirements (AWG, 12MHz BW, ...). >> If the project continues, this will be detailed further. >> >> Do you have an example of such a board level product? If it can do what >> will be required, it is certainly an option. > > Try punching AWG into eBay or one of the other sites.
Searching on AWG alone will find you a lot of wire. ;-) With "arbitrary waveform generator", I get a lot of complete bench top generators. And a number of (usually the same) cheap bare board units like this one: https://www.ebay.com/itm/221506533974?mkcid=16&mkevt=1&mkrid=711-127632-2357-0&ssspo=MRtVGD4USYW&sssrc=2047675&ssuid=&widget_ver=artemis&media=COPY This one is 8-bit 256 sample 100 kSPS. Not enough on every parameter and it seems most of these modules have similar specs. But this is the kind of board level product you meant? I hoped for someting that can be placed on a board. Looks like I need to implement something myself if this project continues. -- Stef Just type 'mv * /dev/null'.
Reply by gnua...@gmail.com August 22, 20222022-08-22
On Monday, August 22, 2022 at 4:24:41 AM UTC-4, Stef wrote:
> On 2022-08-20 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > > On Friday, August 19, 2022 at 6:45:53 AM UTC-4, Stef wrote: > ... > >> I think it is obvious. Phase accumulator points to LUT, but LUT isn't a > >> sine table but sommething else. > > > > Yes, it is obvious. That's why I'm asking what you are looking for from this discussion. > In my original post, I had 2 questions > > 1) Are there objections to using a prescaler and a shorter phase > accumulator for generating frequencies over a wide range? > > This has been discussed. Conclusions is that you should keep the > accumulator as long as possible for best performance.
If any of that is from my comments, I retract them. I was thinking of a typical DDS generating a sine wave. You only need the clock rate to suit the waveform you are generating, such as Nyquist considerations. Your memory is finite, so you have a fundamental trade off between clock rate and duration of the AWG pattern. I don't know your real requirements, so I can't advise you about how to optimize this. It will depend on your particular problem.
> 2) Are the complete DDS chips available that have a downloadable LUT, > instead of the standard sine table? > > If such chips are available, I may not have to develop a custom > (FPGA/CPU/DSP) solution. This question has not been answered and I have > found non myself sofar.
Yeah, I've never used DDS chips, so I couldn't say. As I've mentioned, there are many AWG products at other levels of integration, modules and boards. eBay abounds with them.
> > I don't know what your requirements are, but you can buy low cost AWG board level products and small box level products. > At this time there are only general requirements (AWG, 12MHz BW, ...). > If the project continues, this will be detailed further. > > Do you have an example of such a board level product? If it can do what > will be required, it is certainly an option.
Try punching AWG into eBay or one of the other sites. -- Rick C. -++ Get 1,000 miles of free Supercharging -++ Tesla referral code - https://ts.la/richard11209
Reply by Stef August 22, 20222022-08-22
On 2022-08-20 gnuarm.del...@gmail.com wrote in comp.arch.fpga:
> On Friday, August 19, 2022 at 6:45:53 AM UTC-4, Stef wrote:
...
>> I think it is obvious. Phase accumulator points to LUT, but LUT isn't a >> sine table but sommething else. > > Yes, it is obvious. That's why I'm asking what you are looking for from this discussion.
In my original post, I had 2 questions 1) Are there objections to using a prescaler and a shorter phase accumulator for generating frequencies over a wide range? This has been discussed. Conclusions is that you should keep the accumulator as long as possible for best performance. 2) Are the complete DDS chips available that have a downloadable LUT, instead of the standard sine table? If such chips are available, I may not have to develop a custom (FPGA/CPU/DSP) solution. This question has not been answered and I have found non myself sofar. ...
> I don't know what your requirements are, but you can buy low cost AWG board level products and small box level products.
At this time there are only general requirements (AWG, 12MHz BW, ...). If the project continues, this will be detailed further. Do you have an example of such a board level product? If it can do what will be required, it is certainly an option. -- Stef If everything seems to be going well, you have obviously overlooked something.
Reply by gnua...@gmail.com August 20, 20222022-08-20
On Friday, August 19, 2022 at 6:45:53 AM UTC-4, Stef wrote:
> On 2022-08-19 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > > On Friday, August 19, 2022 at 5:13:11 AM UTC-4, Stef wrote: > >> On 2022-08-18 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > >> > You keep calling it a DDS, which apparently is correct in that it can be used generically. But conventionally this refers to generating a sine wave. The term, AWG (Arbitrary Waveform Generator) is more commonly used for what you are doing. > >> To me, the core of the DDS is the clock/phase accumulator/control word. > >> The phase output of this can be fed to any phase to amplitude conversion > >> you like. Complete DDS chips often include sine (table), sawtooth > >> (direct phase to DAC) and pulse (MSB of phase). > >> > >> Although not an authoritive source, wikipedia agrees with this > >> interpretation. > >> https://en.wikipedia.org/wiki/Direct_digital_synthesis > >> > >> AWG, to me, just means you can generate any waveform. But not how you > >> set the frequency of this waveform. It can be fixed or just use divide > >> by 2 stages on the clock, or wathever. > >> > >> But this is all just personal interpretations, I think we both > >> understand what the other means right now. Maybe we should call it an > >> DDS AWG generator to cover everything. ;-) > > > > Sorry, I didn't mean to make a big deal of the nomenclature. So what are you trying to do that isn't obvious, given a phase accumulator and a lookup table? > > > I think it is obvious. Phase accumulator points to LUT, but LUT isn't a > sine table but sommething else.
Yes, it is obvious. That's why I'm asking what you are looking for from this discussion.
> > The frequency is normally set by the increment on the phase accumulator. But maybe that doesn't work so well for an AWG? What sort of waveforms are you interested in generating? > > > This is the DDS part (as I interpret it) and this is what I intend to > do. I see no reason why this would not work for AWG. Except when you get > to higher frequencies, you start losing your waveform, until it degrades > to a sine at FS/2 (providing the output filter is correct).
I'm not following what you are saying about your filter. It only needs to filter artifacts above the Nyquist rate of fs/2. It would not need to distort your waveform.
> For now, I need to accomodate 'anything you can draw'. So a full phase > to amplitude LUT is required. Length and width TBD.
Yes, if you want "anything you can draw", you need the LUT. But many waveforms can be constructed from simple shapes which can be generated digitally. The LUT won't be able to use the folding techniques that work for sine waves. I don't know what your requirements are, but you can buy low cost AWG board level products and small box level products. -- Rick C. -+- Get 1,000 miles of free Supercharging -+- Tesla referral code - https://ts.la/richard11209
Reply by Richard Damon August 19, 20222022-08-19
On 8/19/22 6:45 AM, Stef wrote:
> On 2022-08-19 gnuarm.del...@gmail.com wrote in comp.arch.fpga: >> On Friday, August 19, 2022 at 5:13:11 AM UTC-4, Stef wrote: >>> On 2022-08-18 gnuarm.del...@gmail.com wrote in comp.arch.fpga: >>>> You keep calling it a DDS, which apparently is correct in that it can be used generically. But conventionally this refers to generating a sine wave. The term, AWG (Arbitrary Waveform Generator) is more commonly used for what you are doing. >>> To me, the core of the DDS is the clock/phase accumulator/control word. >>> The phase output of this can be fed to any phase to amplitude conversion >>> you like. Complete DDS chips often include sine (table), sawtooth >>> (direct phase to DAC) and pulse (MSB of phase). >>> >>> Although not an authoritive source, wikipedia agrees with this >>> interpretation. >>> https://en.wikipedia.org/wiki/Direct_digital_synthesis >>> >>> AWG, to me, just means you can generate any waveform. But not how you >>> set the frequency of this waveform. It can be fixed or just use divide >>> by 2 stages on the clock, or wathever. >>> >>> But this is all just personal interpretations, I think we both >>> understand what the other means right now. Maybe we should call it an >>> DDS AWG generator to cover everything. ;-) >> >> Sorry, I didn't mean to make a big deal of the nomenclature. So what are you trying to do that isn't obvious, given a phase accumulator and a lookup table? >> > I think it is obvious. Phase accumulator points to LUT, but LUT isn't a > sine table but sommething else. > >> The frequency is normally set by the increment on the phase accumulator. But maybe that doesn't work so well for an AWG? What sort of waveforms are you interested in generating? >> > This is the DDS part (as I interpret it) and this is what I intend to > do. I see no reason why this would not work for AWG. Except when you get > to higher frequencies, you start losing your waveform, until it degrades > to a sine at FS/2 (providing the output filter is correct). > > For now, I need to accomodate 'anything you can draw'. So a full phase > to amplitude LUT is required. Length and width TBD. > >
Normally for a Arbitrary Waveform, the phase increment is limited to no more that one LUT entry per clock cycle, and if there aren't an integral number of increments per phase increment of one LUT entry, you want there to be a moderate number to avoid "distortion" of the waveform. And you need to decide how the "Arbitrary" waveform is shaped between points, normally either step held or lineally interpreted.
Reply by Stef August 19, 20222022-08-19
On 2022-08-19 gnuarm.del...@gmail.com wrote in comp.arch.fpga:
> On Friday, August 19, 2022 at 5:13:11 AM UTC-4, Stef wrote: >> On 2022-08-18 gnuarm.del...@gmail.com wrote in comp.arch.fpga: >> > You keep calling it a DDS, which apparently is correct in that it can be used generically. But conventionally this refers to generating a sine wave. The term, AWG (Arbitrary Waveform Generator) is more commonly used for what you are doing. >> To me, the core of the DDS is the clock/phase accumulator/control word. >> The phase output of this can be fed to any phase to amplitude conversion >> you like. Complete DDS chips often include sine (table), sawtooth >> (direct phase to DAC) and pulse (MSB of phase). >> >> Although not an authoritive source, wikipedia agrees with this >> interpretation. >> https://en.wikipedia.org/wiki/Direct_digital_synthesis >> >> AWG, to me, just means you can generate any waveform. But not how you >> set the frequency of this waveform. It can be fixed or just use divide >> by 2 stages on the clock, or wathever. >> >> But this is all just personal interpretations, I think we both >> understand what the other means right now. Maybe we should call it an >> DDS AWG generator to cover everything. ;-) > > Sorry, I didn't mean to make a big deal of the nomenclature. So what are you trying to do that isn't obvious, given a phase accumulator and a lookup table? >
I think it is obvious. Phase accumulator points to LUT, but LUT isn't a sine table but sommething else.
> The frequency is normally set by the increment on the phase accumulator. But maybe that doesn't work so well for an AWG? What sort of waveforms are you interested in generating? >
This is the DDS part (as I interpret it) and this is what I intend to do. I see no reason why this would not work for AWG. Except when you get to higher frequencies, you start losing your waveform, until it degrades to a sine at FS/2 (providing the output filter is correct). For now, I need to accomodate 'anything you can draw'. So a full phase to amplitude LUT is required. Length and width TBD. -- Stef Don't read any sky-writing for the next two weeks.
Reply by gnua...@gmail.com August 19, 20222022-08-19
On Friday, August 19, 2022 at 5:13:11 AM UTC-4, Stef wrote:
> On 2022-08-18 gnuarm.del...@gmail.com wrote in comp.arch.fpga: > > You keep calling it a DDS, which apparently is correct in that it can be used generically. But conventionally this refers to generating a sine wave. The term, AWG (Arbitrary Waveform Generator) is more commonly used for what you are doing. > To me, the core of the DDS is the clock/phase accumulator/control word. > The phase output of this can be fed to any phase to amplitude conversion > you like. Complete DDS chips often include sine (table), sawtooth > (direct phase to DAC) and pulse (MSB of phase). > > Although not an authoritive source, wikipedia agrees with this > interpretation. > https://en.wikipedia.org/wiki/Direct_digital_synthesis > > AWG, to me, just means you can generate any waveform. But not how you > set the frequency of this waveform. It can be fixed or just use divide > by 2 stages on the clock, or wathever. > > But this is all just personal interpretations, I think we both > understand what the other means right now. Maybe we should call it an > DDS AWG generator to cover everything. ;-)
I suppose to control the sample rate of the AGW, you could use a DDS with a clock output. The DDS would give a wide range of frequency with high resolution. What range of sample rate are you interested in? -- Rick C. --+ Get 1,000 miles of free Supercharging --+ Tesla referral code - https://ts.la/richard11209