So you’ve got your nifty little board in hand and want to start programming it?
To start working with miniSpartan6+ you need to install:
1. An IDE to write your Verilog and/or VHDL code then synthesize the design and generate the .bit file.
To start writing your code for the miniSpartan6+ you have two options:
A) Xilinx ISE Tool
Xilinx ISE Web edition is a free tool from Xilinx that supports Spartan6 FPGAs. You can download it and get a free license from the Xilinx website. Xilinx ISE is not only a tool for writing and synthesizing your code, you can use it for simulation, debugging, and viewing the final schematic and the actual layout of your design. Also you can draw your schematic instead of writing your project in Verilog/VHDL. Moreover, it can get you a full report about FPGA resources utilization, timing parameters and power. Xilinx ISE looks complicated but it’s worth trying it
B) Scarab IDE
Scarab IDE is our IDE that eases writing the code and provides easy to use libraries and different examples. It has a simple GUI that allows you to create a new project, start writing your code and using the Verilog/VHDL libraries. Scarab IDE can not synthesize your design and generate the .bit file by itself. It requires you to install the Xilinx ISE tool. Scarab IDE internally calls a component of the Xilinx ISE, called the PlanAhead tool, to synthesize your design and generate the .bit file. Also, the Scarab IDE can download the .bit file to the miniSpartan6+, we will talk about this again when we explain the JTAG Progamming Software.So the first step before installing Scarab IDE is to install the Xilinx ISE Web Edition tool. Then you download Scarab IDE from our website and install it.
Which one should you use?
Scarab IDE is simple to use and has different libraries that will make it easy for you to build your design. The Xilinx ISE is a powerful that allows you to do more than just synthesizing your design. Since the Scarab IDE requires you to install Xilinx ISE anyway, we would suggest to try both of them.
We envision the Scarab IDE to become more sophisticated in the future, with the help of the open source hardware community. If you have time and ideas, go to our Github repository and start hacking away at the code.
2. JTAG Programming Software to download the .bit file to miniSpartan6+
For the JTAG Programming Software, you can use one of the open source JTAG programming software that supports FTDI chips ( the miniSpartan6+ comes with an FTDI JTAG chip on the board). We are using XC3SPROG. It is an open source command line application that allows you to program the bit file to the FPGA or the SPI Flash on miniSpartan6+.
The Scarab IDE also can be used to download the .bit file to miniSpartan6+. But it requires you to install XC3SPROG first. One of our backers developed miniSprog which is a stand-alone GUI for calling XC3SPROG.
Now that you have installed the required software, you are ready to work on your first project. Before that let’s get familiar with the miniSpartan6+ hardware. Both miniSparta6+ versions – LX9 or LX25 – have the same hardware, the only difference is the FPGA, either LX9 or LX25. You can download the schematic and the layout from our Github. Here are the different parts on miniSpartan6+:
The mini USB port is used for powering the board, for JTAG programming, and can be used for communication between the miniSpartan6+ and the PC.
There are 64 digital I/O pins brought out to headers A to F. The pinout of these headers is below. Along with these digital I/Os, there are 8 analog inputs connected to an 8-channel 1Msamples/sec, 12-bit ADC.
There are 8 LEDs on board that can be used for debugging and we will use them in our first project. The 4 DIP switches will be helpful in some projects when you need to select or switch between different functions.
The miniSpartan6+ has 32MHz and 50MHz on-board oscillators.
For memory, you will have 32MB of 166MHz SDRAM, 64Mbit of SPI Flash and a microSD card interface. The SDRAM can be used to store your data. SPI Flash is where you download the .bit file.
HDMI Port#1 is the HDMI input port with DDC(I2C) lines connected to the FPGA through a level shifter in order to emulate the EDID. HDMI Port#2 is the HDMI output port.
Also, the miniSpartan6+ has a stereo audio output jack using 1-bit sigma-delta DAC. You can use this port to output audio.
- We have put a few examples using the miniSpartan6+ HDMI ports here: https://github.com/scarabhardware/miniSpartan6-plus/tree/master/projects
- Just download an example folder from the repository above, open your Xilinx ISE, and select the project file to get started.
- Mike Field, over at Hamsterworks, has a number of projects you can run on your miniSpartan6+: http://hamsterworks.co.nz/mediawiki/index.php/FPGA_Projects
- A kind of hello world is this project to get the LEDs on your board to count up: http://hamsterworks.co.nz/mediawiki/index.php/MiniSpartan6%2B_bringup