1.Introduction
Mimas is an easy to use FPGA Development board featuring Xilinx Spartan-6 FPGA. Mimas is specially designed for experimenting and learning system design with FPGAs. This development board features Xilinx XC6SLX9 TQG144 FPGA with a maximum of 70 user IOs. The USB 2.0 interface provides fast and easy configuration download to the on-board SPI flash. You don’t need a programmer or special downloader cable to download the bitstream to the board.
Applications
- Product Prototype Development
- Home Networking
- Signal Processing
- Wired and Wireless Communications
- Educational tool for schools and universities
Board features
- FPGA: Spartan-6 XC6SLX9 in TQG144 package
- Flash memory: 16 Mb SPI flash memory (M25P16)
- 100MHz CMOS oscillator
- USB 2.0 interface for On-board flash programming
- FPGA configuration via JTAG and USB
- 8 LEDs and four switches for user-defined purposes
- 70 IOs for user-defined purposes
- On-board voltage regulators for single power rail operation
2.How to Use Mimas – Spartan 6 FPGA Development Board
2.1.Components/Tools Required
Along with the module, you may need the items in the list below for easy and fast installation.
1. USB A to Mini B cable.
2. DC Power supply (Optional).
2.3.USB Interface
The onboard full-speed USB controller helps a Windows/Linux/Mac computer to communicate with this module. Use a USB A to Mini B cable to connect with a PC. By default, the module is powered from USB so make sure not to overcrowd unpowered USB hubs. (the picture on the left shows USB Mini connector)
2.4.DC Power Supply
This module uses a +5V power supply to function properly. By default, the board is configured to use the +5V supply from USB. So an external +5V power is not required unless the USB port is unable to supply enough current. In most cases, USB ports are capable of providing enough current for the module. The current requirement for this board largely depends on your application. Please consult the FPGA datasheet for more details on power requirements. If for any reason, an external 5V power supply needs to be used for the module, the Power select jumper should be configured properly before connecting the power supply. Please refer to the marking on the board for more details.
2.5.Power Select
The Solder jumper is used to configure the power source for the board. The Solder jumper in pin 1 and 2 is shorted to switch the power source to the onboard USB port and pin 2 and 3 to use the external DC power.
2.6.On-Board Peripherals
8 LEDs and four micro switches are provided on-board for user-defined purposes. These peripherals are connected to FPGA IOs and can be controlled from user RTL. The switches do not have pull-ups on board so make sure to enable week pull-ups on corresponding IOs in your design.
2.8.GPIOs
This board is equipped with 70 user IO pins that can be used for various custom applications. Pin assignments on the connectors are available in the tables below.
HEADER P1
Header Pin No. | Pin description | Spartan-6 (XC6SLX9 TQG144) Pin No. |
---|---|---|
1 | VCCIO | NA |
2 | GND | NA |
3 | IO_L1P_3 | 35 |
4 | IO_L1N_VREF_3 | 34 |
5 | IO_L2P_3 | 33 |
6 | IO_L2N_3 | 32 |
7 | IO_L36P_3 | 30 |
8 | IO_L36N_3 | 29 |
9 | IO_L37P_3 | 27 |
10 | IO_L37N_3 | 26 |
11 | IO_L41P_GCLK27_3 | 24 |
12 | IO_L41N_GCLK26_3 | 23 |
13 | IO_L42P_GCLK25_TRDY2_3 | 22 |
14 | IO_L42N_GCLK24_3 | 21 |
15 | IO_L43P_GCLK23_3 | 17 |
16 | IO_L43N_GCLK22_IRDY2_3 | 16 |
17 | IO_L44P_GCLK21_3 | 15 |
18 | IO_L44N_GCLK20_3 | 14 |
19 | IO_L49P_3 | 12 |
20 | IO_L49N_3 | 11 |
21 | IO_L50P_3 | 10 |
22 | IO_L50N_3 | 9 |
23 | IO_L51P_3 | 8 |
24 | IO_L51N_3 | 7 |
25 | IO_L52P_3 | 6 |
26 | IO_L52N_3 | 5 |
27 | IO_L83P_3 | 2 |
28 | IO_L83N_VREF_3 | 1 |
29 | IO_L2P_0 | 142 |
30 | IO_L2N_0 | 141 |
31 | IO_L3P_0 | 140 |
32 | IO_L3N_0 | 139 |
33 | IO_L4P_0 | 138 |
34 | IO_L4N_0 | 137 |
35 | IO_L34P_GCLK19_0 | 134 |
36 | IO_L34N_GCLK18_0 | 133 |
37 | IO_L35P_GCLK17_0 | 132 |
38 | IO_L35N_GCLK16_0 | 131 |
39 | VCCIO | NA |
40 | GND | NA |
HEADER P2
Header Pin No. | Pin description | Spartan-6(XC6SLX9 TQG144) Pin No. |
---|---|---|
1 | GND | NA |
2 | VCCIO | NA |
3 | IO_L62N_D6_2 | 43 |
4 | IO_L62P_D5_2 | 44 |
5 | IO_L49N_D4_2 | 45 |
6 | IO_L49P_D3_2 | 46 |
7 | IO_L48N_RDWR_B_VREF_2 | 47 |
8 | IO_L48P_D7_2 | 48 |
9 | IO_L31N_GCLK30_D15_2 | 50 |
10 | IO_L31P_GCLK31_D14_2 | 51 |
11 | IO_L30N_GCLK0_USERCCLK_2 | 55 |
12 | IO_L30P_GCLK1_D13_2 | 56 |
13 | IO_L74N_DOUT_BUSY_1 | 74 |
14 | IO_L74P_AWAKE_1 | 75 |
15 | IO_L47N_1 | 78 |
16 | IO_L47P_1 | 79 |
17 | IO_L46N_1 | 80 |
18 | IO_L46P_1 | 81 |
19 | GND | NA |
20 | GND | NA |
21 | IO_L45N_1 | 82 |
22 | IO_L45P_1 | 83 |
23 | IO_L43N_GCLK4_1 | 84 |
24 | IO_L43P_GCLK5_1 | 85 |
25 | IO_L42N_GCLK6_TRDY1_1 | 87 |
26 | IO_L42P_GCLK7_1 | 88 |
27 | IO_L41N_GCLK8_1 | 92 |
28 | IO_L41P_GCLK9_IRDY1_1 | 93 |
29 | IO_L40N_GCLK10_1 | 94 |
30 | IO_L40P_GCLK11_1 | 95 |
31 | IO_L34N_1 | 97 |
32 | IO_L34P_1 | 98 |
33 | IO_L33N_1 | 99 |
34 | IO_L33P_1 | 100 |
35 | IO_L32N_1 | 101 |
36 | IO_L32P_1 | 102 |
37 | IO_L1N_VREF_1 | 104 |
38 | IO_L1P_1 | 105 |
39 | GND | NA |
40 | VCCIO | NA |
3.Driver Installation
3.1.Installing on Windows
This product requires a driver to be installed for proper functioning when used with Windows. The driver package can be downloaded from the product page. To install the driver, unzip the contents of the downloaded driver package to a folder. Attach the USB cable to the PC and when asked by Windows device installation wizard, point to the folder where driver files are present. When the driver installation is complete, the module should appear in Windows Device Manager as a serial port (see the picture on the right). Note down the name of the serial port (COM1, COM2, etc..). This information is required while programming the module with the configuration tool.
3.2.Installing on Linux
To use this product with Linux, the USB CDC driver needs to be compiled in with the kernel. Fortunately, most Linux distributions (Ubuntu, Redhat, Debian, etc..) have this driver pre-installed. The chances of you requiring to rebuild the kernel to include the USB CDC driver is very slim. When connected to a Linux machine, this product should appear as a serial port in the /dev directory. Usually, the name of the device will be “ttyACMx” or similar. The name may be different depending on the Linux distribution you have.
3.3.Installing on Mac
Similar to Linux, Mac operating system comes with the required drivers pre-installed. When connected to a Mac computer, the device should appear as a serial port.
4.Generating Bitstream for Mimas
HDL design needs to be converted to a bitstream before it can be programmed to FPGA. Mimas at this time accepts only binary (.bin) bitstream created by Xilinx ISE (http://www.xilinx.com/tools/webpack.htm). Once the HDL is synthesized, it is easy to create a binary bitstream out of it. Please follow the steps below to generate a binary bitstream from your design using ISE Web Pack.
Step 1: Right-click on the “Generate Programming File” option in the “Processes” window.
Step 2: Select “Process Properties” from the pop-up menu. In the dialog box, check the “Create Binary Configuration File” Checkbox and click “Apply”.
Step 3: Click “OK” to close the dialog box. Right-click on the “Generate Programming File” option again and select “Run”. Now you will be able to find a .bin file in the project directory and that file can be used for Mimas configuration.
5.Powering Up Mimas
Mimas can be powered directly from the USB port so make sure that you are using a USB port that can power the board properly. It is recommended to connect the board directly to the PC instead of using a hub. It is practically very difficult to estimate the power consumption of the board, as it depends heavily on your design and the clock used. Xilinx provides tools to estimate power consumption. In any case, if power from USB is not enough for your application, an external supply can be applied to the board. Mimas requires two different voltages, a 3.3V, and a 1.2V supply. On-board regulators derive these voltages from the USB/Ext power supply.
6.Configuring Mimas
The Mimas Spartan 6 module can be configured by two methods,
a) Using the Mimas configuration tool through USB.
b) Using the Xilinx programming cable.
6.1.Configuring Mimas Using Configuration Tool
Mimas has an on-board micro-controller which facilitates easy reprogramming of onboard SPI flash through the USB interface. The micro-controller receives bitstream from the host application and program it into the SPI Flash and lets the FPGA boot from the flash. The Mimas configuration application can be downloaded from www.numato.com for free. When Mimas is connected to PC, it shows up as a COM port in Device Manager. Run configuration application, select proper COM Port before downloading bitstream. Click on “Open File” to select the bitstream file (.bin) and press the “Program” button to download the bitstream. Wait till the download process is finished. Once the download process is over, the configuration controller will try to boot the FPGA from the SPI Flash automatically. Follow the below steps.
Step 1: Open Mimas Configuration Tool. Select the port no. (Refer “Driver installation” for more information on finding port no.) Click Open file and select the .bin file.
Step 2: Click on the “Program” button. Wait till “Done” appears on the screen.
6.2.Configuring Mimas Using JTAG
Mimas Spartan6 module features an onboard JTAG connector that facilitates easy reprogramming of SRAM and onboard SPI flash through JTAG programmer like “XILINX Platform-cable usb”. Programming Mimas using JTAG requires “XILINX ISE iMPACT” software which is bundled with XILINX ISE Design Suite. To program the SPI flash we need a “.mcs” file that needs to be generated from the “.bit” file. Steps for generating the “.mcs” file are discussed below. Programming FPGA SRAM does not require a “.mcs” file to be generated.
Generating “.mcs” file for Mimas
Step 1: Open ISE iMPACT. Click on “Create PROM file(PROM file formatter)”.In the dialog box, select “Configure Single FPGA” in the storage device type. Then click the green arrow on the right side.
Step 2: Select the 16M in Storage Device (bits) list. Now click on “Add Storage Device”, then the green arrow at the right side.
Step 3: Set an output file name and an output file location (the “.mcs” file will be generated at this location which will be required later for programming the FPGA), then click OK twice, then select the “.bit” file we already generated then click Open and click NO when it prompts to add another device file.
Step 4: Double click on “Generate File”. “Generate Succeeded” will be displayed as shown in fig below if the .mcs file is generated successfully.
7.Programming FPGA Using ISE iMPACT
Step 1: Open ISE iMPACT. Click on “Boundary Scan” in the iMPACT flows window in the left top corner. Then right-click on the window panel on the right side. Select “Initialize Chain”.
Step 2: If the device is detected properly you will get a pop-up window as shown below, Click OK. Then right-click on the SPI/BPI (next to the black arrow in the below fig.), select Add SPI/BPI Flash.
Step 3: Select the “.mcs” file we already created and click OK. Now choose “M25P16” in the dialogue box appeared, then click OK.
Step 4: Click on “Flash”, Double Click on Program, select OK. If the programming is successful, a confirmation message will be displayed.
8.Technical Specifications
Parameter * | Value | Unit |
---|---|---|
Basic Specifications | ||
Number of GPIOs | 70 | |
Number of LEDs | 8 | |
Number of Switches | 4 | |
On-board oscillator frequency (FXO-HC536R) | 100 | MHz |
SPI Flash Memory (M25P16) | 16 | Mb |
Power supply voltage (USB or external) | 5 - 7 | V |
FPGA Specifications | ||
Internal supply voltage relative to GND | –0.5 to 1.32 | V |
Auxiliary supply voltage relative to GND | –0.5 to 3.75 | V |
Output drivers supply voltage relative to GND | –0.5 to 3.75 V | –0.5 to 3.75 V |