Papilio tool set/file types/development flow


Recommended Posts

Hello everybody,

This is Vikram, I am a new member. I am new to FPGAs and did a little microcontroller programming. But good in C/C++, know some VHDL/Verilog. Read the documentation and the fpga vhdl book and have some questions on what tools I need/flow/various file types, as I am a little confused.

  • Audruino Papilio IDE-<needed
  • Papilio programmer->needed
  • Xilinx tools->is this needed?


The following is my understanding and clarification is appreciated.

Sketch (written in Audruino)

.pde or .ino

Will implement desired fpga functionality

Bit file

Built in XILINX tools using VHDL/Verilog

Same function as a sketch

No need for this if using Audruno/Papilio IDE

Papilio programmer

Downloads sketches or bit files to board. Required

Thanks a lot,


Link to comment
Share on other sites

Hello Vikram,

Thank you for joining our community!

Ok, so with the Papilio a bit file tells the Papilio what to BE, if you load a bit file that tells the Papilio to be a ZPUino or AVR8 then a sketch will tell the Papilio what to DO.

So everything starts with a bit file and you use the Xilinx ISE (Webpack) tool to write a bit file using VHDL, Verilog, or a schematic. We use Xilinx ISE to synthesize bit files that tell the Papilio to be a ZPUino or AVR8 with all the peripherals we want.

The Papilio Loader (Papilio Programmer) loads bit files to the FPGA or SPI Flash over the JTAG programmer. It does not load sketches, just bit files. (It can load hex files, but for the sake of simplicity let's not talk about that here.)

In order to load sketches to the Papilio you need to download the Papilio-Arduino IDE or the ZPUino-Arduino IDE. The Papilio-Arduino IDE has the papilio loader (papilio programmer) and an AVR8 bit file built into the toolchain. So all you need to do is download the IDE and start writting sketches. When you press the Upload icon the sketch will be compiled into a hex file, merged into a pre-synthesized AVR8 bit file, and automatically programmed to the Papilio. All of the steps are done automatically so you just write sketches as if the Papilio were an Arduino.

The ZPUino works a little bit differently, Alvaro has several pre-synthesized ZPUino bit files that can be downloaded. Depending on what capability you want you would download a ZPUino bit file with audio chips, video adapters, or just plain vanilla peripherals. You use the Papilio Loader to write the ZPUino bit file to SPI Flash, then you use the ZPUino-Arduino IDE to write your sketches. When you press the Upload icon the ZPUino-IDE will communicate with the ZPUino Soft Processor running on the Papilio, loaded by the bit file earlier, and will put it into programming mode and transfer the hex file into the ZPUino's memory. It will then start execution of the code. The big difference is with the AVR8 the bit file is loaded as a part of the process, with the ZPUino you have to load the bit file before you start.

Hope this helps,


Link to comment
Share on other sites

Thanks a lot, Jack. Now it's very clear. Looks like using the Papilio as an Arduino or ZPUino with already available bit files is the place to start in the learning process. If I ever wanted to do anything else with the Papilio, then I would use the Xilinx ISE to create new bit files.


Link to comment
Share on other sites


This topic is now archived and is closed to further replies.