This uses a Mojo V3 FPGA board from Embedded Micro. By using a simple to make resistive network DAC, it can output almost any waveform that you can code.
Components
1×
Mojo V3 development board
This FPGA board can be found on amazon or sparkfun.
1×
Mojo protoboard
This is a prototyping shield for the Mojo board
19×
1K ohm resistor
1/4 W through hole. Alternatively 7 2K and 5 1K
1×
Incremental Rotary Encoder (optional)
I use a 20-detent, but the choice is up to you.
1×
Male BNC plug (optional)
This makes a nice output for your function gen
This step is optional and is only required if you want to overclock the FPGA from 50MHz to 200MHz. Note that at 50MHz your maximum waveform frequency will be severely limited. For a 6-bit waveform, your maximum output would be 781KHz.