Have you ever wanted to design your own CPU or have hundreds of pins available to freely choose what they’re doing? Then field programmable gate arrays, or FPGAs, are just right for you. They’re essentially the chameleons among the ICs, because they can be freely programmed on a logic level. But if FPGAs are so awesome, why are they not as commonly used as microcontrollers? Because they’re difficult to program, until now, that is. The goal of our board is: having fun while learning how to program FPGAs. Learn more about FPGAs and their application by checking out this
video.Anyway, good hardware is useless when used with bad software. Today’s development environments for FPGAs rather look like the Space Shuttle’s cockpit instead of like a lean, user-friendly IDE. Also, the most commonly used languages, VHDL and Verilog, are rather old and hard to learn. The Plain Simple Hardware Description Language (PSHDL) is designed specifically to ease the learning curve for FPGA programming. Its similarity to C makes it very readable and writeable while its tooling enables you to get things done in a minimum amount of time. While PSHDL can be used with every board from every vendor, this board is specifically designed for beginners who want to learn FPGA programming, and is designed to integrate seamlessly with the very powerful browser-based PSHDL IDE. You can even start today and get some blinking LEDs thanks to the powerful browser-based simulator in the online IDE.
To get you started even more quickly and without the frustating installation of gigabytes of vendor tools, you you can directly synthesize – that is the equivalent of “compiling” for FPGAs – from the web page. All you have to install is a small tool that is available for (Linux, Windows, and MacOS X) and that uploads the configuration onto the board.
PCB
All pictures of the board depict the prototype, the final version will look slightly different!
Enough talking about the software, let’s take a look at the board itself. At first glance, it looks unlike any other FPGA board you may ever have seen. It’s eight-edged with four horizontal connectors and four push buttons. This is our current prototype:
Here is a picture of the updated version of the PCB which now includes the PMod connector and blue LEDs.
Why horizonal, you ask? Well, there are also RGB LED PCBs that you can attach to each connector. Each LED PCB contains four RGB LEDs that can be indiviually controlled via the FPGA.
What are those unpopulated slots doing on the LED PCB, you ask? Well, those are for having fun. When you attach four LED PCBs, you get an X. Now, what will happen if you spin that X very fast? Well, you get four LED rings in the sky. Now, with the alternate LED positions, you can increase this to 16 rings.
On the other end of the LED PCB, there is another 4 pin header which can be plugged into another FPGA Base board. So when you’re getting tired of simply blinking some LEDs with one board, you can connect multiple boards together and create a network of PSHDL boards. If you think that the RGB LED density of this network is too low, you can stack multiple PSHDL Boards at a 45° angle atop.
Facts
On the board you will find a powerful Actel A3PN250 FPGA with 250,000 system gates and 68 user I/Os. The user I/Os are connected to four “horizontal” 16 pin headers (14 I/Os each) and two vertical 4 pin headers (2 I/Os each), which also have 4 blue LEDs attached to them. To program the FPGA, an Atmel XMega32 is placed on the board. The Atmel is connected via 5 I/Os to the FPGA and also features a 12 pin PMOD compatible connector. For programming the device, an USB interface is provided on the PCB. There are four user buttons on the board, two are connected to the FPGA, two to the Atmel. All the connectors are standard headers with 0.10” pitch, so it is very easy to build extra hardware, e.g. on a breadboard.
Connectivity:
- 4 Ports (16 Pin standard 100mil receptacles, 14 IO)
- 2 Vertical ports (4 Pin standard 100mil header, 2 IO)
- 5 IO to Atmel XMega (for example SPI, UART, Clock)
- 4 push buttons
- 4 blue LEDs (shared with the vertical ports)
- 16 Pin PMOD compatible connector to Atmel XMega
- Total of 60 user accesible IOs with 3.3v
- Networking:
- 4 horizontal UART via arm
- 2 vertical UART via 45° stacking
LED Arm
- 16 Pin standard 100mil header
- 12 connect to 4 RGB LEDs
- 2 connect to 4 Pin 100mil header at end
Current state and planning
Our current prototype lives completely up to our expectations. One minor mistake is an incorrect foot print for an LDO on the back of the PCB and a switched VCC/GND at the four point header of the LED PCB. These issues will be fixed in the production run, of course. We also plan on adding four additional LEDs, so you can control them without LED PCB. We manufactured 16 boards by hand and didn’t encounter any serious production problems.
For the board, we have several quotes from Germany-based assembly houses. None of the parts used in this design are single-sourced or uncommon. We only use authorized distributors for our parts.
The estimated date of delivery is about two months from now. This is with an assumed immediate availablity of all parts, which are handed over to the assembly house. Their estimations range from 15 to 30 working days, depending on the number of boards to be manufactured. The rest of the time will be used for logistics.
Risks
Depending on the number of boards we are going to sell, some increase in lead time for constrained parts like the Atmel or the FPGA need to be dealt with.
Shipping
Most perks do not include shipping, if you are buying one of these, please add the following amount to your perk:
- Germany: 5 EUR
- Rest of the world: 11 EUR
The expected shipping time:
- Within Germany: 1 working day
- Within the EU: 2-4 working days
- Within the USA: 6-8 working days
- Worldwide: Check DHL for time.