I bought a stellaris launch pad MCU last month and have been working on a in card computer/data logger, so far the software and hardware side of designing have been really easy, but as im getting closer to PCB design im thinking i should consolidate my design.
The main display(CFAG320240CX-TFH-T) is a 8-bit parallel controlled graphics LCD with 5 control lines and a busy state pin based on the Epson S1D13700, now my first issue is transfer speed, hooking the 8-bit bus directly to the MCU would be silly since i'd have no pins in no time, so currently i use a MCP23S17 bi-directional shift register. This is great when sending characters to the display, the 10Mhz clock rate of the SPI line is very fast... but... for graphics the display requires you to send a 8bit value(the screens VRAM is arranged as 40 columns by 240 lines of 8-bit(1-byte for bitmap, 2-byte for 4 shaded grayscale and/or blending effects) scan lines, you update a single pixel by reading in the current VRAM, changing the pixel value, and the writing the block back). So, you see drawing the entire display in monochrome would be very slow over SPI, so my idea would be to synthesize the SPI->parallel conversion in the FPGA for characters, but also store graphics and GUI routines within the FGPA's high speed memory and assign macros that allow me to draw large graphics at line speed(40Mbps compared to 625kbps). Additionally, those control pins are also set byte sending an entire byte to the I/O expander, theoretically i could also automate this on the FPGA side
Finally, i could drop the other chips for user I/O and just use opto-couplers for isolation rather than a pair of voltage converters.
So my question is, what would be my best bet for this application? i was thinking spartan 3E, but its not recommended for new designs(end of life?), and, well i don't really understand a lot of the terminology relating to `cell size` and logic gates.