This is a list of the major components, and how they're used.
I'm using a Xilinx XC3S500E FPGA, in a 208-pin PQFP package. This is the largest device I can make my own PCBs, in both number of logic gates and I/O pins.
The basic specs are:
- 500,000 system gates (10,476 logic cells)
- 1,164 CLBs
- 360Kbit block-RAM bits
- 20 multipliers
- 4 digital clock managers
- 158 I/O lines although some are shared with configuration
This will be used as the main interface for everything, and a wishbone-like interface.
The SDRAM is provided by a Micron MT48LC16M16A2P6A, which will give me 256Mbit SDRAM organised as 16MByte x 16bits.
While the part I've bought will do 167MHz, I'll actually be driving it at 100MHz (although if I can get it faster, I will).
The SDRAM device uses a dedicated interface to the FPGA, which means that it does not need to multiplex with other functions.
The primary use for SDRAM is for sample storage
A IDT 71V424L SRAM chip is used for the video display. This has a 4Mbit storage, available with a 10ns access speed.
4Mbit allows 2 banks of screen memory at 320x240x24bit.
Like the SDRAM, it has a dedicated interface - although some of the lines are used for the configuration (when configuration is complete, they will be dedicated to SRAM). This means that audio and video generation occurs without any interference with each other.
A single-chip select SPI bus is provided, nominally for an SPI FLASH memory.
A 4-wire I2S interface is used for audio output at up to 24-bit stereo, 48KHz.
The converter used is a Wolfson WM8759 which includes a headphone amplifier.
An additional wire is used to enable the device.
A Newhaven 3.5" 320x240x24 LCD display is connected to the FPGA, and requires 28 pins (this could be reduced by changing the output format).
The most annoying thing is that this device is 3.3v - except the LED backlights, which require 19.2v.
A dsPIC33FJ256GP710 is used as the main CPU. I could use a smaller (pin-count) PIC, but I wanted the extra memory (especially RAM).
- SD card interface
- MIDI input
- Power input
- USB RS232 interface - FTDI FT232R
- Status LEDs
- Rotary encoder (with switch)
- Two additional switches