Welcome to SYNTHINGS.com
I've been planning on making some kind of digital synthesizer for a while now. Every time I make a start on it, I get to a certain point and discover that there's some limitation in the hardware I've chosen, such as:
- Not enough memory
- Not expandable enough (too few I/O pins)
- Not fast enough
- Not enough internal resources
- Display didn't work correctly
The main reason for this is because I've been using a small FPGA (Xilinx XC3S250E or XC3S200A) - these will go up to a 144-pin TQFP package (albeit a smaller logic gate count), so then I'd lose the number of internal resources but gain some pins.
Since I do all my PCB manufacturing at home, and hand-solder the chips, I'm limited to chips with real pins - BGA isn't possible at this moment in time. So, I've decided to go for a Xilinx XC3S500E in a 208-pin PQFP package. This has opened up a number of possibilities - SYNTHINGS being one of them.
SYNTHINGS 1 is a prototyping board - it has plenty of memory, resources, and a very capable microcontroller which should allow me to find out what the limits are. When I'm happy with what I want to achieve, then I'll start work on SYNTHINGS 2, which will be a board I'll get made professionally, and contain all of the functionality of SYNTHINGS 1 - except much more capable.
The goals are:
- A generic system for creating digital synthesizers
- Lots of logic capabilities (the XC3S500E has the equivalent of approximately 500,000 logic gates)
- 50MHz single clock input
- I2S output
- A nice LCD display for user interface
- Some controls (I tend to use three switches plus a rotary encoder)
- MIDI input
- SD card for storage
Possible extensions are:
- Reprogramming of FPGA and microcontroller via SD card interface
- Experimenting with an embedded CPU in the FPGA
Hopefully this hardware will provide me with lots of playing capabilities!
SYNTHINGS 2 will build on SYNTHINGS 1, and is aimed to:
- Be on a single PCB
- Use a more capable FPGA
- Have more memory
- Have faster memory
- Have more general purpose I/O ports
- Not rely on a microcontroller