Flashing an LED using a Papilio One FPGA development board


It took three hours of hardship to get this far. Documenting the process to save my future self / someone else going through this simple but convoluted process.

Step 1:

Go to this link and download the setup file from under the ISE Design Suite heading. If you download something with the word ‘Vivado’ in it, you’ve downloaded the wrong thing all together, like I did.  http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html

Step 2:

Once that’s downloaded, go to the folders directory and run xsetup. This will start the installer. When it gives you the list of packages to install, select WebPack. It should install handily enough. Go to the installation directory (/opt/Xilinx by default) then go to /opt/Xilinx/14.7/ISE_DS/ISE/bin/lin/ . Once in the lin folder, run a program named “ise”. This will start the ISE project navigator, where you can write projects in VHDL and compile them into a .bit file.

ISE Design Suite

ISE Design Suite

From here, its best to look at the Papilio tutorial (http://papilio.cc/index.php?n=Papilio.GettingStartedISE) on setting up a new project file, adding in the LED flash example code and compiling said code into a .bit file.

Step 3:

Flashing the .bit file onto the FPGA or the SPI flash memory located on the board. FPGAs forget what they were programmed to be as soon as they lose power. For this reason in almost all cases, there will be some flash memory present. Whenever power is applied to the FPGA, it checks the flash to update itself with the program previously written for it. If you are debugging a program, it’s probably easier to just program straight to the FPGA, if its a project that needs to last after the power is gone, flash is the way to go. A seperate program is used to flash the .bit file to the FPGA or flash memory.

It can be found here: http://papilio.cc/index.php?n=Papilio.PapilioLoaderV2.

Once it’s downloaded, go to wherever the downloaded  folder is and run linux_installer.sh . After that’s done, to run the GUI, navigate to JAVA-GUI (in the downloaded folder ) and run a shell script called papilio-loader.sh. After the GUI pops up, browse to the .bit file made earlier, click flash. Job done.

Flashing Program

Flashing Program


One thought on “Flashing an LED using a Papilio One FPGA development board

  1. batchloaf

    Hi Shane,

    I’m going to assess your posts as follows:

    DC motor: Interfacing a strip encoder with the dsPIC30F4011
    Stepper: An attempt at making an X-Y plotter from scraps (GhettoPlotter)
    Servo (well, I’m substituting this in place of a servo post): Flashing an LED using a Papilio One FPGA development board
    Sensor: Sound triangulation using cheap microphones
    Mini-project: Second attempt at making an x-y plotter (TinyPlotter)



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s