On Nov 13, 2011, at 21:40, Keith Monahan <keithvz at verizon.net> wrote:
I can vouch for the Terasic DE0 and pretty much agree
with most of the
comments. I think the board is a nice board, has PS/2, VGA (with 12-bit
color, nice), SD memory slot, and so on. It uses IDC-40 hard drive
style connectors for the I/O, which there are 72 spare connections.
I agree that writing VGA controllers and serial port UARTs are a great
introduction.
I should point out too that the VGA DAC is nothing more than a resistor ladder for each
channel with 4 bits (plus pins out for sync signals). You don't have to do any funny
configuration, just output your colors. I made a simple demo that did a 640x480 colorized
"munching squares" on my DE1 in less than 100 LEs (less than 1% of the device)
and no RAM (the output was generated from the pixel coordinates and a "t" value
incremented every frame. The whole controller really is little more than a handful of
counters and comparators plus whatever you need to supply the pixel data at a constant
rate.
Memory controllers can be a real pain in the ass, and
just getting a
free (or included) one working on any board can be more than trivial.
Xilinx's coregen memory generator sucks (for a different board). It
generates huge amounts of code to drive DDR memory in an overly complex
fashion.
Well, DDR is a pain in the ass. It has a lot of timing constraints (including a minimum
clock speed on non-LPDDR parts because there's a DLL for aligning the data that has a
minimum speed) that are very hard to match. Regular SDRAM (which is what's on the DE1,
at least) doesn't have any requirements like that as long as you refresh often enough.
Even the "commands" to the controller on the chip follow the same pattern as
their non-synchronous counterparts. I believe Terasic even includes some free-as-in-beer
core to make it behave much like SRAM on their site and in the materials that come with
the DE1.
- Dave