Installation of Mico32/FPG-EYE development environment
This page describes a set of steps needed to compile and deploy a platform on FPG-EYE board.
To begin with, following free license softwares from Lattice must be installed in your environment:
- ispLEVER or Diamond
- ispVM System or the Diamond programmer
- LatticeMico System Development Tools (aka MSB)
- Each version of ispLEVER or Diamond requires corresponding version of LatticeMico System Development Tools.
- 64 bit OSes are not supported by ispLEVER (even though we were able to install it on a 64 bit Windows Vista/7, it is cumbersome).
- The ispVM System must be version 18.0 or superior if you use ispLever.
The entire FPG-EYE software has been developed with ispLEVER 8.0 and correspondant LatticeMico System Development Tools. It is assumed that all the tools are installed in the same base directory %ispTOOLS%. The support for Lattice Diamond is also available.
In addition to lattice software you also need:
- Evidence RT-Druid software to run ERIKA Enterprise OS on Mico32 softcore
- Python installation with pySerial module to deploy your application on the FPG-EYE external flash, with Evidence's bootloader Mico32 application.
Standard Mico32 components Patches
During FPG-EYE software development a few bugs encountered in standard Mico32 components were corrected. Namely small bugs in following components:
- SPI Flash Controller (Component directory: spi_flash. Verilog files: spi_flash_intf.v wb_intf.v) with version previous to v.1.1
- Async SRAM Controller (Componet directory: asram_top. Verilog files: asram_core.v) with version previous to v.1.1
The above mentioned bugs were of ispLEVER version 8.0 components. We are not sure if the same have been fixed in later versions.
Patched verilog files can be found in FPG-EYE Software Packet. To apply these patches, you need to copy these new files in their respective components folders.
The base directory for all the components is:
Patched verilog files for each component must be placed in:
to fix the known bugs.
Evidence custom Mico32 components
FPG-EYE demo application uses a couple of custom Mico32 components:
- Mico32_camera component (used to acquire frames from the cmos camera)
- serial_io (used to access programmable DIP switches, LEDs, and peripherals power-off MOSFET switches)
These components are available in FPG-EYE Software Packet, Mico32_camera as component binary, and serial_io directly as source code.
To use these components in your platform, they must be imported inside the LatticeMico System Development Tools.
Import custom Mico32 components in LatticeMico System Development Tools
Open your LatticeMico System Development Tool and on Available Components view click Import/Create custom Component button
Select radio button Open component XML and load the xml component description file from the FPG-EYE software packet directory (e.g. FPG-EYE_software_packet\wishbone_components\mico32_camera\mico32_camera.xml)
In our version of LatticeMico System Development Tools, sometimes for unknown reason, this procedure needs to be repeated more than once.
ERIKA and RT-Druid
Python and pySerial module
To deploy a Mico32 application on the FPG-EYE external flash, Evidence provides a dedicated bootloader for FPG-EYE XP2. To interact with this bootloader, a python script is available with FPG_EYE Software Packet. This python script has been written and tested on a python 2.x environment.
Installing Python on Windows
Python can be installed on a windows machine in two different ways:
- as native.
- under cygwin.
To install the native one just download the correct installer and run it. If you want the cygwin version, just run the cygwin setup application and select python package.
Install pySerial on Windows
If you have installed the native version of python, download the pySerial installer and run it. The easy way to install the pySerial module on cygwin is to install python setuptools first by running this script in a Cygwin shell, and then, after the installation of the setuptools, just type:
The setuptools will automatically select the right version of the module for your environment.