Arrow Electronics FPGA Boards

Introduction

Arrow Electronics is an American specialist in technology products, founded in 1935 in New York City, the company continues strong today supplying a wide range of electronics from components to complete systems. Arrow can be found online at:

https://www.arrow.com/

This page on my site deals exclusively with FPGA development boards from Arrow Electronics that I've come across.

MAX1000 FPGA Development Board

The Arrow Electronics MAX1000 FPGA Development Board from from 2017 is billed as an IoT/Maker board intended for evaluation and educational purposes, the product page can be found at:

www.arrow.com/max1000

As well as the standard version of the MAX1000 there is also the option of ordering a customized kit, which allows for larger SDRAM up to 256Mb and user flash memory up to 128Mb.

Features of the MAX1000 include an Intel MAX 10 FPGA (10M08SAU169C8G) with 8000 logic elements and integrated flash memory, allowing for instant-on within milliseconds, and the ability to implement Intel’s NIOS II soft core embedded processor. In addition, the MAX1000 includes an integrated Arrow USB programmer for programming and debugging the FPGA with the use the Intel Quartus Prime Lite software (which is free and runs on 64-bit Linux/Windows 7+). An alternative to using USB for programming, JTAG connections are available on connector J4.

A quite unique feature of the MAX1000 is a MEMS 3-axis accelerometer, which is quite unusual for an FPGA board but useful considering its small size (about the size of a Raspberry Pi Pico), an example application being a portable game console using motion controls.

The MAX1000 can be powered from the micro USB port, which is most convenient, or by supplying +5V on connector J2 pin 13. Connectors J1 and J2 are Arduino MKR peripheral compatible, and J6 is suitable for Digilent Pmod (2x6-pin or 1x12-pin) peripherals. These connections are suitable for soldering headers/wires. Note that I/O pins can only tolerate 0V to 3.3V.

On the MAX1000 there are eight red user LEDs (LED1 to LED8), a green power on LED, and a red config LED (CONF_DONE) indicating the configuration was loaded without error. There are two buttons, a user button (USER_BTN) located above the eight user LEDs, and a RESET button on the opposite side which reloads the configuration from internal flash memory. 

The MAX1000 User guide can be found at:

https://shop.trenz-electronic.de/trenzdownloads/Trenz_Electronic/Modules_and_Module_Carriers/2.5x6.15/TEI0001/User_Guide/MAX1000%20User%20Guide.pdf

To test the MAX1000 I worked through the guide; from page 22 it details software and driver installation, which includes downloading Quartus Prime Lite Edition, ModelSim-Altera Edition, and MAX10 FPGA device support. I downloaded the most recent at the time version of Quartus Prime Lite Edition, V23.1, using the installer, which didn't have option for ModelSim, as mentioned in the guide, but isn't used in the user guide anyway.

For the Arrow USB Programmer I went with V2.5, the most recent version at the time. After installing the programmer driver I plugged the MAX1000 into my Surface Pro, the MAX1000's power LED came on, and the 8 user LEDs lit in a pattern, likely a test design. Pressing the user button cycles through four different light patterns.

I then continued working through the user guide from page 30, which walks through creating a new project, MAX1000_blinky, using Quartus Prime Lite. Here is the start screen of the software:

As part of the new project settings will have to select the FPGA device (10M08SAU169C8G):

During the project creation we have to make a PLL but I found that whenever I went on page 6 (Output Clocks) the IP wizard would crash without fail and close down although Quartus remained open. I tried running Quartus as admin and I also tried with the project located directly on the C drive but the wizard still crashed. Looking online, one suggestion was that OneDrive was at fault but I didn't have it running so I tried a different solution - installing Quartus V17 and that worked for me, the wizard no longer crashed. However, text wasn't being displayed correctly, which I had found to be an issue with V23.1 but no way as bad as in V17. I found a fix for the text issue which involves changing the app's DPI settings:

https://stackoverflow.com/questions/70493209/quartus-isnt-displaying-correctly

Here is a screenshot of page 6 of the wizard in Quartus V17:

I then followed through the tutorial, here is the schematic that I ended up with:

I don't know why the PLL symbol appears so large compared to the others. Here are the assignments using the pin planner:

After compilation we get a summary:

Note that it's quite 'normal' to get a lot of compilation warnings in the Processing window, 11 in this case (in the user guide they have 17, oddly), while the warnings should still be read to check it's nothing serious many can be ignored. For example one of the warnings is that the number of processors hasn't been specified. In the flow summary we can see how much of the FPGA the design takes up - for example just 1% of the total logic elements has been used and 8% of the pins.

When it came to configuring the board the generated .sof file can be used in the Programmer as seen in the user guide on page 68:

After clicking the Start button as instructed the device is configured, which takes a few seconds, the CONF_DONE LED will flash briefly and then the eight user LEDs will turn on and off in binary. Holding the user button will cause the sequence to update rapidly. Removing and reconnecting the board or pressing the RESET button will cause the configuration stored in flash to be restored. This is where the .pof file, as explained in the user guide, can be used for a more permanent design (survives power cycle and loaded automatically at power up and when RESET is pressed). Programming the flash takes longer, about 10 seconds.

All content of this and related pages is copyright (c) James S. 2024