Working VGA output on board v0.3

A project log for Fray Trace

FPGA raytracer for realtime raytracing

kmodkmod 07/30/2014 at 22:360 Comments

I've successfully brought up the VGA output on v0.3 of the board.  v0.3 consists of:

- A 256-BGA Spartan 6 LX16, for the main raytracing

- A 128MB DDR3 memory for the frame buffer and geometry +texture memory

- A backup 64MB DDR memory for if I can't get the DDR3 memory working

I was worried about the BGA-ness of the FPGA; version 0.2 used a QFP fpga, but all the larger FPGAs only come in BGA packages.  Since the raytracing performance should scale fairly linearly with the amount of FGPA space, I think it's important to gain access to the larger FPGAs.  An LX16 is not that huge, but is the cheapest BGA FPGA on digikey, which I wanted to use for testing since this is my first BGA part I'm trying to use in a real board (I've done some successful tests on test boards though: ).  The footprint on the v0.3 boards can accomodate an LX25, giving more ray processing space, and a similar footprint (same land pattern different pinout) can be used for the newer Artix parts.  Anyway, as worried as I was about the BGA-ness, the FPGA worked on the first try and we're getting output:

The monitor on the floor is the FPGA output.  Unfortunately I couldn't convince my phone camera to not clip the brightness in that section of the photo, but I swear it's not washed out in real life!

There are two parallel paths of work going forward:

1) getting the dram working (ideally the DDR3 but the DDR would also be acceptable)

2) getting a very basic raytracer working using only the FPGA's internal memory

I'm more concerned about #1, and since fixing that may require a new board revision, I think I'm going to tackle that first.  Then again, I'm excited to see something other than a test pattern on the screen, so we'll see!