Fastest Speed Possible on Vidor for Generating Arbitrary Waveform?


I am so close to purchasing the Vidor 4000, and have been a huge user of the Due over the years.

My goal is to do some Ultrasound pulse generator w/ the Vidor, but that depends on what it can do.

I basically have never been able to use Arduino's to generate high frequency square waves (1mhz -5mhz) w/ any reliability.

But now that the Vidor is here, I want to know what is possible in the Arduino IDE. Xilinx was my previous experience w/ FPGA's and I hated it, just not for me.

So this new board gives me hope that I can do Ultrasound programming in the Arduino IDE pretty easily.

The main exercise I would like to do first, is generate closely timed pulses on multiple pins, which can then control an external Ultrasound specialty IC.

I guess you could think of it like doing a parallel "interface at high speeds"?

Anyways, I know there are people all over the world who do Ultrasound related work, who would love if the Vidor could help out in this area.

Grateful for all of your work, thanks!

Yes, of course can be done but maybe you need to give me some context...
Right now you can generate high frequencies with the pwm up by just changing the prescaler so that it outputs a submultiple of the main 100 MHz clock. Of course that shall be an integer submultiple so if you need something in the 2-5mhz range you're going to have not many choices.
Also, pwm now has only one time base so you can generate multiple duty cycles but all at the same frequency.
You can of course implement more pwms up blocks but that would require you to modify a bit the dogs image which is now fully published but requires getting your hands a bit dirty.
If you need some more fine grained control on frequencies and/or want to generate complex patterns then at the moment nothing is done but could be quite easily, if you know how to do it...

Ok, sounds good.

Is it possible to generate 3.5mhz from the Vidor on one channel at a time?

I think if I could emit a 3.5mhz PWM on a single pin from the Vidor I could accomplish what I want.

3.5 is not an integer submultiple of 100. With current precompioed dogs images you will be able to do only 2.5 or 5 and with limited dynamic range as you're going to have only 20 possible duty cycles.
It's possible to have 3,5 but you'll need to customize the fpga by altering system ppl to a different reference frequency