The Papilio One development board
I recently acquired an FPGA development board called the Papilio One from Gadget factory. I thought this little piece of hardware was a really good first board on the subject of learning digital electronics. This for one obvious reason: The schematics and PCB are completely open. This means that you can for one study them and understand how it’s made, but you are also allowed to manufacture your own improved version, sell it, and then become a milionnaire!
What I like about the board itself is that it’s really small and doesn’t contain much more than the essentials. That is to say an FPGA chip and an EEPROM to store the bitstream uploaded to the chip at startup. But I thought it stood out of the common Xilinx starter kits by the ability to program the chip directly through USB using a serial communication. So, no need for the ridiculously expensive and proprietary Xilinx JTAG cable! It’s just plug and play!
In order to do that, the board includes an FTDI chip so you can use any standard mini USB cable to set up a serial connection with a computer.
This project is inspired from the Arduino project, they released source code allowing you to actually implement an AVR microcontroler onto the FPGA in order to run Arduino sketches on the board.
Needless to say, the actual ressources on the chip are the only limit to what this can be. And those are more than enough to get started with digital electronics.
Open Source electronic designs, OpenCores
In my opinion, the best way to get into this isn’t necessarily by starting from scratch. That’s why I wanted to point at another project:
Their goal is to gather and release Free and Open Source design source code implementing various digital systems and modules. So since with an FPGA you basically have to do everything yourself, if you’re looking for a widely used feature why not see if they have it on there (I²C, SPI, soft processors, arithemtic functions, …etc). Most projects are released under GPL.
Where to from there
In a second post I will try to sum up my attempt at using these tools to set up a serial transmission from the FPGA to a terminal on my computer. There is a tutorial for this already on the Papilio website but they make use of Xilinx‘s implementation of the serial module, which is proprietary even tho the source code is viewable.