Xylo

March 14th, 2007 § 0 comments

Xylo FPGA board from KNJN.com

I’m in the middle of seven days off work that I took after shipping beta. Not like I didn’t have enough to do around the house (carpentry and the like), but nonetheless in anticipation of some free time, a few weeks ago I ordered a FPGA board to play around with.

Now my exposure to digital circuit design spans one semester of CPSC 218 – “CMPTER ORGNZTION” on my transcript (I notice UBC doesn’t offer this course any more). I remember for the last project, my lab partner and I breadboarded some ICs to power a 7 segment LED counter and botched a connection somewhere, because the damn thing never lit up properly. I’ve had no need to program Verilog or VHDL before this. In other words, I’m an abject newbie. But lately at work, I’ve been programming closer to the metal – assembly and multithreading horrors – and some of the cool kids are doing robotics, so I figured learning how to program an FPGA might be an interesting new hobby. It’s certainly a better way to spend time than experience grinding in Final Fantasy.

So I ordered a Xylo board from KNJN and it showed up the next day. As you might surmise, I know nothing about FPGA hobbyist kits, but this thing looks pretty nice. An Altera 100-pin Cyclone FPGA is packaged on it. 5V power comes in on USB connection, the FPGA can also gets its programming that way. It’s set up for VGA output, LCD text output, Ethernet, and some other interfaces I know nothing about (JTAG and I2C). Of the maybe 65 available for I/O on the FPGA, there are 43 exposed I/O pins on the board: 35 on three headers, 5 wired for VGA output, 2 to a secondary connector, and one for a user clock. Some useful prewired pins as well: two pins connected to the on-board LEDs, 1 pin connected to an on-board push button, 2 pins connected to the I2C bus.

The programming environment is Altera’s Quartus II Software. The “Web Edition” is currently free (alas not so for Linux). I haven’t begun to scratch the surface of the software, but so far I’ve been able to type in some Verilog, make the appropriate pin assignments, compile to a RBF (“raw binary file”), upload that to the FPGA and make LEDs blink. Pretty painless even for a newbie.

Being a graphics geek, I care more about the potential VGA capabilities. The five pins to the VGA header aren’t completely obvious; for example, you have to look at a VGA pinout diagram to figure out that VGA pin 13 is the horizontal sync pin and is connected to pin 99 of the FPGA. Also, the RGB pins look like they’re supplied at 3.3V – not sure if the supplied VGA interface is supposed to take care of the downvolt to 0.7V. And with only 1 pin each to RGB, that’s 3-bit color: only 8 possible colors with the default interface, I’d have to add some DACs (or build my own resistor ladders) to get more colors. Anyways, some other potential projects to toy with include controlling some RC servo motors, since that looks like it’s easily done with a FPGA. Think armatures and stop motion animation. Pretty cool stuff to play with. I’ll post some more about it when I get past the Verilog learning curve.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

What's this?

You are currently reading Xylo at levork.org.

meta

  • Pages

  • Archives

  • Categories

  • Twitter

    • Seriously, next time I get asked which piano quintet is hardest, bloody parallel thirds are exhibit A in argument of Brahms.
  • Flickr