The Papilio FPGA
Shield (P/Shield) is the next, evolutionary step for the family of easy to use and Open Source Papilio FPGA boards. The P/Shield builds on the
proven Papilio One design and packs in more I/O, speedy SRAM, and the ever
popular Arduino footprint. When paired with an Arduino, the ease of the Arduino
and the power of an FPGA form a potent combination that allows makers of all
skill levels to create things only imagined before. When used without an
Arduino, the P/Shield continues the strong Papilio tradition as a beginner
friendly FPGA board with unlimited potential for expansion and growth. Finally,
users of all skill levels will appreciate the Arduino inspired FPGA community
at Papilio.cc. Experts and beginners alike can
come together to discover answers to questions, to share tutorials, and to
share their work on the Papilio Playground.
Benefits for Arduino Users
Arduino users get
the best of both worlds, the ease and elegance of the Arduino and the power and
flexibility of an FPGA to bring any idea to life.
provides the following benefits for Arduino users:
- Arduino sketches will have
access to 64 I/O pins that can operate independently or be divided into
8-bit Wing slots. Wings are like mini shields, but they don't interfere
with each other, its like being able to use 8 Shields at once without
worrying about conflicts.
- Arduino sketches will be able
to tap into rewritable FPGA fabric. The rewritable fabric of an FPGA
allows each I/O pin to become virtually any kind of hardware. The FPGA can
be loaded with 64 PWM pins, or 64 Delta-Sigma Audio DACs, or 16 SPI
Masters, or even any combination of the above.
- Arduino sketches will have
access to the extreme speed and parallel processing of an FPGA. The P/Shield's FPGA can run at speeds up
to 250Mhz and the parallel nature enables extremely powerful hardware. The
Arduino will be able to tap into and control things like a VGA
controller, or a DVI/HDMI
controller, or HD Video, or mixing multiple audio streams. These specific applications will require
the FPGA and Arduino libraries to be created by experts and is outside the
scope of this Kickstarter project, but the P/Shield is the hardware that
will make it possible.
Benefits as a standalone FPGA Board
The P/Shield is the
next generation Papilio board which enjoys all the benefits of the previous
Papilio boards and some key new features :
- Easy and straight forward
design makes it easy on beginners, there are no shared pins to contend
with and no complicated configuration files just to get started.
The P/Shield is great for
learning FPGA's, the simple yet extensible design allows users to direct
their learning in directions that interest them. Tutorials, screencasts,
and videos at the Papilio.cc website help beginners learn
key FPGA concepts.
- The P/Shield adds SRAM into
the mix, SRAM is one of the most important new features. It will enable
advanced projects such as uClinux,
a Java Virtual Machine, extended color depth for VGA output, and
more capable video game output.
- The P/Shield cuts down costs
by eliminating the expensive FTDI chip. Users have the option to program
the FPGA using an Arduino, a Programming Wing, or a Xilinx programming
Benefits for FPGA Experts
Its all about
exposure, writing Arduino libraries to accompany FPGA cores is a little more
work but just imagine what will happen when that extra step is taken and these
cores are placed in the hands of all the talented and creative Arduino
enthusiasts of the world. People in hackerspaces and basements around the
world will be using and talking about your work. The sheer amount of Arduino
users alone means that core authors will get the pleasure of seeing magical
things created with their "Papilio Community Cores".
What is an FPGA?
A non-technical explanation of FPGA technology that uses an analogy to rewritable CD technology.
So what will the Papilio FPGA Shield project deliver
This project is focused on a clearly defined task, creating the Arduino FPGA Shield
hardware and providing a single example of a "Papilio Community Core". The deliverables of this Kickstarter project will be:
- An Arduino Shield with a
Xilinx Spartan 3A or Spartan 6 FPGA
- Ability to program the FPGA
from the Arduino
- Wishbone connection between
the Arduino and FPGA
- A single "Papilio
Community Core" example, which will preferably be a VGA controller.
As a bonus we will
develop an optional Audio Visual Overshield that will fit over the
Papilio FPGA Shield and will allow many exciting Open Source FPGA projects to
run on the Papilio FPGA Shield. Projects like:
- Michael Poppitz's
"Sump" logic analyzer puts a 32 channel 200Mhz logic analyzer at
MikeJ's classic Arcade games
like Pac-Man provide a great way to learn about classic hardware and hours
of fun to play. www.FPGAArcade.com
- The AVR8 Soft Processor with
support for the Arduino IDE allows multiple 8 bit soft processors to run
in parallel inside the FPGA.
- Alvaro Lopes' ZPUino soft
processor provides a fast 32-bit 100Mhz soft processor with Arduino IDE
The AV Overshield
will provide the following features:
- Two joystick ports for Atari,
Commodore, and classic arcade joysticks.
- Two PS/2 connectors for
keyboard and mouse.
- Stereo Audio Jack for high
quality Delta-Sigma DAC output.
When I was developing the Open Bench Logic Sniffer with Ian Lesnet one of the things
that people really enjoyed and appreciated was that it was developed in an open forum. I want to
continue that tradition by maintaining a Video Diary of the progress of the
design and an open forum where people are free to make comments and give their
ideas and feedback. There is now a Forum dedicated to the development of the Papilio FPGA Shield. Please drop by and feel free to ask any questions, suggest features, or even get directly involved with design reviews, documentation, or code contributions. Everyone is welcome, this is an Open Source project that encourages participation at any level.
We hope to be
starting from an existing Spartan 3A design, but if it is determined to be
unsuitable we might start over with a Spartan 6 chip. We expect it to take
anywhere from 2-6 months to complete the design and submit it for manufacturing
depending on which chip is ultimately used.
What is the money for?
money will be to fund prototypes and the first production run of
boards. We intend to use a BGA chip and Multi-layer PCB which is very
expensive in small quantities. If we can get enough backers we will be
able to enjoy the economies of scale that will make this design
The Papilio FPGA Shield will allow Arduino
users to tap into the amazing power of an FPGA without
doing anything differently then they already do! How will this work? The
Papilio FPGA Shield will plug into the Arduino just like any other shield, but
once plugged in a Wishbone bridge will provide access to "Papilio
Community Cores" running inside the FPGA. "Papilio Community Cores'
will include Arduino libraries that will make it a breeze to use and interact
with cores on the FPGA. The end result,
Arduino users will add a library to their sketch and interact with it just like
they always have, but behind the scenes their sketches will be driving fast,
highly parallel hardware running inside an FPGA.
Quick question, what
are "Papilio Community Cores"? In short, they provide Arduino compatibility for FPGA Cores. Cores are written in VHDL or Verilog
and run inside an FPGA to provide functionality such as a VGA controller,
encryption engine, or TFT LCD Controller. Since FPGA's are completely parallel
in nature you can keep adding cores to an FPGA until it runs out of fabric and
each core can run up to several hundred MHz independently of each other. There
are an abundance of Open Source Wishbone compatible cores available at places
like Opencores.org but they are only the first piece of the puzzle for Arduino compatibility. Arduino users expect to add
a library and go, "Papilio Community Cores" take the additional steps
to make this a reality. They will include an Arduino library that exposes the
functionality of the core in an easy to use and understand format. They will
provide any hardware needed to communicate with the outside world such as a VGA
connector through the use of Papilio Wings. Finally, and most importantly, they
will provide a bit file that has been certified and tested on the Papilio
hardware and is easily loaded along with the library.
Why should people wanting to learn VHDL and Verilog
like the Papilio FPGA Shield
The Papilio FPGA
Shield will provide a clear and gentle path to ramp up your FPGA skills. Start with
"Client Level Programming" by using the Arduino libraries. Once
you've mastered that start writing your own libraries for existing cores.
Finally, start writing your own cores and libraries, along the way there will
be plenty of examples to learn from and you can learn at your own pace as you
ease into FPGA development.
The existing Papilio
community provides screencasts and video tutorials ranging from generating
clocks to debugging internal FPGA logic to help you learn key FPGA skills. All of the existing learning material
will be applicable to the Papilio FPGA
Shield and will continue to be updated and extended. The best way to learn is
through examples and the Papilio aims to provide lots of Open Source examples.
Why should Hardware Hackers like the Papilio FPGA
Just like the
Arduino is extensible, the Papilio FPGA Shield is designed from the
ground up to be extensible. Right off the bat, the Papilio FPGA Shield aims to
put 64 I/O pins under control of the Arduino. But it gets even better, those 64
I/O pins are grouped together into what are called Wing Slots. Each of those
Wing Slots can have a completely independent and parallel PCB connected to it.
Need to access a high speed ADC? Take a look at the Papilio Wing Playground and
see if someone has already contributed a Wing for that, if not make it yourself
and share it with the community. Want to add HDMI, a CMOS camera, a touchscreen
LCD, or a LVDS LCD? An FPGA puts all of these PCB's within reach and Papilio
Wings makes it easy to share those PCB's with everyone.
[Papilio Wings Example - With VGA, Joystick, Audio, and PS/2 Wings all connected at once]