Performance:
The sample clock on the card is 50MHz, which corresponds to the maximum sample rate of the DAC. unfortunately I couldn't find any big, fast, cheap SRAM chips, so the output sample rate is limited to 16.6MHz. running at 25MHz, there are a few glitches, and at 50MHz there are many. The sample rate could be increased by packing in two samples per memory word limiting resolution to 8 bits or changing to a grey code counting scheme which would limit waveform lengths to powers of two.
The output is limited by the +/-5V supply rails which cause the amplifier to clip at +/-1/4 full scale, turning the 12-bit converter into a 10-bit converter. I should have used a lower gain amplifier than the one specified on the DAC reference design, as changing the gain on this one will be hard without either making it unstable or ruining the slew rate.
The communication between the PC and the device does not make efficient use of the interface, but as I will rarely be transferring large amounts of data, there is no real need to improve it. Improving the speed of both USB and PCI could be done by transferring blocks of data, instead of one word at a time.