Toggle Nav

A complete Beginner’s Guide to Mojo V3 FPGA Board

Table of Contents

Mojo V3 FPGA Development Board Features

Mojo is an FPGA board which lets you get the pleasure of configuring the digital circuits on Mojo v3 to your own specifications. What separates this FPGA from the others is the ease of use. The goal of Mojo v3 is to get you up and running with FPGA as easily as possible.

The Mojo v3 FPGA Board uses the Spartan 6 and a high performance ATmega32U4 microcontroller. This board has high processing power. The ATmega32U4 microcontroller comes with a USB (DFU) bootloader which allows you to install new versions of the firmware without the need for a programmer. Once the board is powered on, the ATmega32U4 configures the FPGA from the flash memory. After the FPGA is successfully configured, your FPGA will start talking to the microcontroller; giving you access to the serial port and the analog inputs.

Download the datasheet of FPGA SPARTAN 6 here.

Download the datasheet of ATMega32U4 here.

Download the Schematic of the board here.

Mojo V3 FPGA Development Board Pinout

The FPGA Mojo3 module has 110 pins:

  • 3V: Module power supply
  • GND: Ground
  • RAW: Regulator input power supply – 3.3V
  • P1 ~ P144: Digital input and output pins
  • A0 ~ A9: Analog pins
  • AREF: Analog Reference voltage
  • RES: Reset – setting as switch
  • DONE: Backlight control
  • SUSPEND: If this option is selected, the GSR pin will be pulsed when the FPGA wakes up from suspend mode. For more information, click here.
  • TDO: Serial output for all JTAG instruction and data registers
  • TMS: This pin determines the sequence of states through the TAP controller on the rising edge of TCK
  • TCK: JTAG Test Clock
  • TDI: Serial input to all JTAG instruction and data registers
  • DONE: Backlight control
  • LED1 ~ LED7: LED display

For more information visit here.

Required Materials

Hardware Components

Mojo V3 SPARTAN6 FPGA Development Board × 1

Software Apps

Mojo IDE
Xilinx ISE Design Suite

Required Software to Interface Mojo V3 FPGA Development Board

Step 1: Software Download

First, go to the link below and download Mojo IDE software and install it.

Download the Mojo IDE software.

Then download and install Xilinx ISE Design Suite software here.

Step 2: Software Setting

After finishing the installations above, open the Mojo IDE software.

Select ISE Location from Settings.

Then give the software where the Xilinx ISE Design Suite is installed.


The software installation location is similar to Xilinx \ 14.7.

You must select file 14.7 or higher versions.


Your software is ready to use.

Step 3: Code

Click on New Project from the File menu of Mojo IDE, and fill in the blanks as following.

Now enter the Source, and open mojo_top.luc file.

Change the generated code to following code.

  Modify on March 17, 2021
  Modify by MohammedDamirchi base of Example

module mojo_top (
    input clk,              // 50MHz clock
    input rst_n,            // reset button (active low)
    output led [8],         // 8 user controllable LEDs
    input cclk,             // configuration clock, AVR ready when high
    output spi_miso,        // AVR SPI MISO
    input spi_ss,           // AVR SPI Slave Select
    input spi_mosi,         // AVR SPI MOSI
    input spi_sck,          // AVR SPI Clock
    output spi_channel [4], // AVR general purpose pins (used by default to select ADC channel)
    input avr_tx,           // AVR TX (FPGA RX)
    output avr_rx,          // AVR RX (FPGA TX)
    input avr_rx_busy       // AVR RX buffer full
  ) {
  sig rst;                  // reset signal
  .clk(clk) {
    // The reset conditioner is used to synchronize the reset signal to the FPGA
    // clock. This ensures the entire FPGA comes out of reset at the same time.
    reset_conditioner reset_cond;
  always { = ~rst_n; // input raw inverted reset signal
    rst = reset_cond.out;   // conditioned reset
    led= c{7b0,rst};            // turn LEDs off
    spi_miso = bz;          // not using SPI
    spi_channel = bzzzz;    // not using flags
    avr_rx = bz;            // not using serial port

Now click on Build Project and wait until the project is built.

Now click on Program Mojo (Temporary) to program your board.

This sample code is temporarily on the FPGA and the board will return to the original program by resetting.

To program the board permanently, click on Program Mojo (Flash) so that your program will run it even after if the board is reset.

This program is a sample code for testing the FPGA Mojo 3 development board, which by pressing the reset button, the embedded LED on the board turns on, and by releasing the reset button, the LED turns off again.

Liked What you see?

Get updates and learn from the best

More To Explore

Leave a Reply

Your email address will not be published. Required fields are marked *