I've been working on a design for a DSO myself for a while (who hasn't?) I found these FIFOs from TI. They have selectable 9 or 18 bit wide input and output (can convert from one to the other) and several depths up to 128k x 9. The read and write are totally independent (speed) from each other. Best yet, they will work up to 166MHz :!: When you only need, lets say 50MHz that makes timing REAL easy. The extra 1 or 2 bits are meant for interfacing busses with parity bits.
They have programmable almost-full and almost-empty flags which means you can set your number of samples before you go to sample the signal and stop automatically. You can also use ADC's with up to 16bits and still send the data thru in 8 bit pieces.
Now you can sample up to 166MSPS and read out to the USB chip at whatever speed you want. A quick review of the controls looks to me that you can directly interface the FIFO to the USB chip with little or no external logic.
Even though they are 3.3V parts, they are 5V input tolerant and their outputs meet the minimum input high for most 5V parts.
The datasheet can be intimidating if you are new to this, but I just cross out the sections on features I'm not going to use.
Here's the link:
**broken link removed**
TI is pretty good with samples, so they shouldn't be to hard to get. They do list at ~$20 US 1000units. TI "limits" you to something like 5 (free)samples PER WEEK.
Search around TI's site for other FIFOs that may be cheaper if you can't get samples from them.
I was looking at using seperate SRAM and generating addresses and stuff with a fast FPLD but this reduced the complexity of my design enormously
I can now use all that logic to peak detect, average, or whatever. Eliminating all those address lines switching on the board should also reduce the switching noise that likes to get into the input.
My design is looking at 200MSPS but I sometimes design PCBoards and have access to several 6 and 8 GHz (20ps/sample) Tektronics DSO's here at work to debug my designs. (Yes, sometimes we don't have to die to go to heaven
)