- Papilio Pro development board for the Xilinx Spartan 6 LX FPGA
- RetroCade MegaWing peripheral board for Papilio Pro which contains a 16x2 HD44780 LCD display
- Xilinx's ISE Design Suite 14.4 or later (part of their Vivado Design Suite) to synthesise and implement the design
- Gadget Factory's Papilio Loader to load the resulting .bit file into the Spartan 6 FPGA.
- s3e starter kit code. Modified below
- PicoBlaze for the Spartan 6. The downloadable contains:
kcpsm6.vhd
, a macro file which defines a PicoBlaze 8-bit microcontroller in the S6 FPGAkcpsm6.exe
, an assembler which compiles assembly code into VHDL code- various ROM definitions files and templates
- A PC to run the development environment. I'm using a MacBook Air with Parallels Desktop running Windows 7.
The RetroCade has a 2x16 LCD display on it so I thought I'd like to write a program to use it to display some text.
The idea was to re-write the Spartan-3e code to use the Spartan6 on the Papilio Pro and to change the constraints file to use the pins and display on the RetroCade rather than those on the s3 starter kit board.
The starterkit code for the s3 adds a PicoBlaze 8-bit micro-controller (KCPSM3) to the design which uses less than 5% of the available circuitry. An updated version of the PicoBlaze for the s6 (KCPSM6) uses even less circuitry.
The files in this repository can be used at three different levels.
- Load the
pprolcd.bit
file into the PPro using the loader and watch the pretty display. - Open
pprolcd.xise
with the ISE design suite and compile the design files (modify to taste) then upload as in step 1. - Modify the assembly code (
control.psm
) to do different things or display different text. This requirescontrol.psm
to be compiled (Runkcpsm6.exe
in Windows and enter 'control.psm' as the filename to assemble.) Then follow step 2 and then step 1.
pprolcd.xise
the ISE projectpprolcd.vhd
the top-level entity declarationkcpsm6.vhd
(supplied by Xilink) defines the PicoBlaze micro-controller in the FPGA circuitrycontrol.psm
an assembly language program which actually runs the PicoBlazekcpsm6.exe
(supplied by Xilinx) assembler translatescontrol.psm
into VHDLcontrol.vhd
the output of the assembler for inclusion in the project. This file defines a ROM for the FPGA which contains the instructions for the PicoBlaze.constraints.ucf
maps the pins on the S6 FPGA to the corresponding pins on the RetroCadeROM_form.vhd
(supplied by Xilinx) definitions for assembler (kcpsm6.exe
)