circuitben

Function Generator

This is an 80MHz function generator inspired by the Agilent 33250A. It supports waveforms up to 64k samples with 14-bit output resolution. The output level is only 1Vpp.

Function generator PCB

Design

The DAC is an AD9744 running at 200MHz. The FPGA (a Xilinx XC3S500E) multiplies the 50MHz clock to 100MHz for the DDS logic and 200MHz for the DAC. There are two RAMs (CY7C1021DV33-10) which are accessed at 100MHz. The DDS logic is duplicated so two consecutive output samples can be read simultaneously, keeping the clock speed of all the logic at 100MHz. The two output samples are interleaved and sent to the DAC at 200MHz.

The large FPGA is overkill but it allows for possible fancy features like IFFT signal generation. It also has lots of fast internal memory that could be used for modulation.

Using two seperate RAMs allows for either 64k samples at 200MHz or 128k samples at 100MHz. I haven't implemented the slow mode yet because I haven't needed such long waveforms.

Lessons Learned