I really like these ideas:
1. An EEPROM. I'd prefer not to load it separately every time. I haven't looked at compatible ROMs though, so I'm not sure how much extra that adds to the cost and what the supplier options are.
2. SPI interface between the FPGA and the USB chip (whatever that is) for faster than 115200bps transfers later. SPI works at whatever speed, faster uart output from the FPGA would need configuration or a software change.
3. A buffer. The M74LCX16245DTR2G buffer has better features (I/O) and is also really cheap, it's probably the better choice. The 74LVT573 is smaller and is input only, but not a TSSOP48 package. If we do the 16bit buffer, I think it's important to have at least 8 extra channels for direct IO and connecting an ADC. Though I also like the idea of 16 channels with 8 buffered. This device is competing in the Saleae Logic and BusBee price range (cheap...), they only have 8 channels.
I go back and forth between the FT2232H or a USB microcontroller. I've been considering the H part for availability and price, but I'm open to either. I'm not thrilled about learning and prototyping the H chip with so much else going on in this design:
FT2232H -
+Widely supported by utilities that can program the FPGA by JTAG or the EEPROM by SPI,
+ Jack's existing tool chain
+ USB JTAG debugging (?)
+Existing layout (for D, not H)
+No firmware troubleshooting (but maybe driver and utilities)
- Faster (SPI) interface will require some major updates (SUMP to use FTDI driver)
- Big chip to route & prototype, expensive to place and QC (64 TQFP ~ $1.20 to place, + support parts)
- Requires various drivers, and we'll be dependent on them if we use the MPSEE
Microcontroller-
+ Small chip to route and prototype, cheaper to place and QC (28 pin SOIC). Maybe cheaper parts.
+ Emulated virtual serial port is an open standard available on every system, usually without drivers. Even USB-OTG hosts like WinCE organizers support it.
+ Implement high-speed transfers on all platforms with minimal changes (read by fast SPI with uC but send as serial port over USB FS (12M bits/s), change SUMP to have higher serial port speed settings).
+ EEPROM updates via STK500 clone firmware. Isn't that supported by everything?
+ Upgradable to other protocols, to do FPGA support functions, etc.
- No JTAG debugging
- Not a proven design, firmware to support (but that's my thing!)
- No existing design uploader tool chain
I'm a microcontroller guy, so if we go that route I'll commit to designing and coding the uC portion. I'm not advocating that, though, just say'n that I'll get'r done if we choose that. As a developer, I have a hard time letting go of the JTAG debugging features of the FTDI option.
The PIC 18F24J50 is an interesting option (probably $2-$3, $1.86 according to the volume pricing). It's a 3.3volt chip, FS USB 2.0, 10K times reprogrammable, and 28pin SOIC. I like that it has 2 SPI modules (FPGA, EEPROM), one is even assignable by peripheral pin select for no-nonsense routing. It has a parallel data bus too, if SPI isn't fast enough. It needs 4 caps, a crystal, and a resistor. There's also a GPL USB bootloader tool chain for the 18F chips.
USB PICs:
http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=111&mid=10&lang=en&pageId=74