Page 2 of 2

The Money Shot

Posted: March 20th, 2017, 9:01 pm
by comeau
Finally, we get to the output. Please note that these scope screenshots are taken from the input of the opamp, not the output. (As I said eariler, I couldn't get the opamp to work properly *while* also connected to the PC)

Check out that sexy sine wave!!!

Re: Function Generator

Posted: March 29th, 2017, 3:44 pm
by embmicro
Congratulations for getting it working! Looks like a solid project.

Re: Function Generator

Posted: March 29th, 2017, 8:46 pm
by comeau
Thanks. I am continuing to make modification (and learn a ton).
-I just finished adding a rotary encoder to my project to adjust the frequency.
-I scrapped the ridiculous amount of resistors and channels in favor of a R-2R divider that weights the bits and gives the same precision with six channels.
-I am now utilizing multiple clock signals. The function components (most of them) are running at almost 200MHz while the heavier or less speed sensitive functions (user control, serial communications, rotary encoder) are driven from the stock 50MHz clock. (This got me down from ~20K+ timing violations to 90)
Still have to do:
-Clean and comment code
-Fix a problem with the encoder switch.
-Tweak some of the functions to run faster at reduced precision.
-Respin the entire prototype board and eliminate 73% of the components :D
-Implement a gui software interface <-- No idea how to do this

I love the Mojo V3. I checked out some of the IDEs and I think the Mojo layout is better. (The explorer window is absolutely necessary for object oriented coding like an FPGA)
Love your product.

Re: Function Generator

Posted: April 1st, 2017, 12:03 am
by comeau
GUI Works perfectly.
Rotary encoder is a bit dodgy, but functions.

Now to boost the maximum frequency and optimize the V-code.

Re: Function Generator

Posted: May 7th, 2017, 5:28 pm
by cerkit
This is great work.

I realize that you did this to help learn FPGA and Verilog, but I recently purchased and built one of these for ~$50 USD:

It works very well and even lets you create custom functions using Excel and upload them to the FG using a USB connection.

Of course, the frequency is nowhere near what you accomplished, but it's a good one for low ranges.