OpenXLR8

Introduction to OpenXLR8

OpenXLR8 is the methodology that allows users of our XLR8 family of FPGA boards to develop their own custom Xcelerator Blocks and integrate them into the FPGA.

This includes the following products:

We have integrated as much as possible of the design flow into the menu system of the Arduino IDE.  However, the process still requires installing and using the Intel Quartus tool and Mentor’s Modelsim for simulation.

Note:  Creating a custom XB requires knowledge of Verilog/VHDL design and familiarity with Intel Quartus and Modelsim tools.  Or, at a minimum, an adventurous spirit and the desire to start learning!  We have done the best we can to automate as much as possible and are actively working to make it even easier as we refine the implementation.

OpenXLR8

How to Create a Custom XB

Want to see a detailed walk-through of using OpenXLR8?

View the recording of our Intro to OpenXLR8: FPGA Design for the Arduino Ecosystem webinar here. 

1   ARDUINO IDE

Download and install the Arduino IDE as described in our Quick Start Guide.

2   FPGA DEVELOPMENT TOOLS

Download and install Quartus Prime 17.1 Lite Edition available from Intel here. 

  • Quartus tools are only available for Windows and Linux.

Back to Top

3   PREPARATION

In Arduino IDE

  • Sketch->Include Library->Manage Libraries
  • Filter your search for XLR8.
  • Install XLR8Core, XLR8BuildTemplate, and any other desired libraries.

In your Operating System’s File Explorer:

  • Go to your Arduino/libraries folder, located in Documents under Windows:
  • Make a copy of the XLR8BuildTemplate folder and name the copy XLR8Build.

Customize the project

  • For a minimal build (no XBs), nothing needs to be done here
  • To use a single XB:  ( The following steps use XLR8Servo as the example XB to instantiate )
    • Copy the source code for your XB to the XLR8Build rtl folder (XLR8Build/extras/rtl/)
    • Edit the openxlr8.v file (XLR8Build/extras/rtl/openxlr8.v) and follow the directions in the comments to instantiate and connect your XB
    • Edit the xb_adr_pack.vh file (XLR8Build/extras/rtl/xb_adr_pack.vh) to add the register address defintions needed for your XB
    • Edit the openxlr8.qsf file (XLR8Build/extras/quartus/openxlr8.qsf) to add the commands needed to include your XB source code
  • For more more complex cases such as multiple XBs you will need to instantiate multiple XBs inside of the openxlr8.v file and connect the to IO and each other as needed.

Open XLR8Build/extras/quartus/xlr8_top.qpf with the Altera Quartus software

  • Opening a qpf file in Quartus is done with “file->open project” instead of “file->open”
  • In windows you can simply double-click on xlr8_top.qpf in Windows Explorer

Back to Top

4  SYNTHESIS

Note:  Synthesis requires Quartus, which is only available on Microsoft Windows and Linux (Linux untested). It is not available on Mac OS.

In Quartus:

  • Do Processing->Start Compilation (or simply click the blue triangle icon)
  • Do File->Convert Programming Files
  • Open Conversion Setup Data->openxlr8.cof
  • Generate
  • Ok
  • Close

Back to Top 

5   BURNING the FPGA IMAGE

In Arduino, select the following:

  • Board-> Open XLR8
  • “Floating Point XB” and “Upload Action” setting don’t matter for this step
  • FPGA Image->  choose AVR frequency that matches the rtl and sdc file (16MHz if you haven’t changed the rtl)
  • Port->  Serial Port that XLR8 board is connected to
  • Burn Bootloader (takes about a minute)
  • Copy the URL that is printed at the end of the status message, paste it into a web browser, and leave us any comments you may have.

Back to Top

6   MORE HELP

  1. Issues? Check the Alorium Technology Forums.
  2. Check out our Intro to OpenXLR8 webinar recording.
  3. Intel has both paid and free on-line training here.
  4. An overview of the ModelSim HDL simulator is also available from Intel here.

Back to Top

OpenXLR8 has been updated!

The legacy OpenXLR8 instruction set is no longer supported, but can be found here: https://aloriumtech.com/legacy-openxlr8/

1   ARDUINO IDE

Download and install the Arduino IDE as described in our Quick Start Guide.

2   FPGA DEVELOPMENT TOOLS

Download and install Quartus Prime 17.1 Lite Edition available from Intel here. 

  • Quartus tools are only available for Windows and Linux.

Back to Top

3   PREPARATION

In Arduino IDE

  • Sketch->Include Library->Manage Libraries
  • Filter your search for XLR8.
  • Install XLR8Core, XLR8BuildTemplate, and any other desired libraries.

In your Operating System’s File Explorer:

  • Go to your Arduino/libraries folder, located in Documents under Windows:
  • Make a copy of the XLR8BuildTemplate folder and name the copy XLR8Build.

Customize the project

  • For a minimal build (no XBs), nothing needs to be done here
  • To use a single XB:  ( The following steps use XLR8Servo as the example XB to instantiate )
    • Copy the source code for your XB to the XLR8Build rtl folder (XLR8Build/extras/rtl/)
    • Edit the openxlr8.v file (XLR8Build/extras/rtl/openxlr8.v) and follow the directions in the comments to instantiate and connect your XB
    • Edit the xb_adr_pack.vh file (XLR8Build/extras/rtl/xb_adr_pack.vh) to add the register address defintions needed for your XB
    • Edit the openxlr8.qsf file (XLR8Build/extras/quartus/openxlr8.qsf) to add the commands needed to include your XB source code
  • For more more complex cases such as multiple XBs you will need to instantiate multiple XBs inside of the openxlr8.v file and connect the to IO and each other as needed.

Open XLR8Build/extras/quartus/xlr8_top.qpf with the Altera Quartus software

  • Opening a qpf file in Quartus is done with “file->open project” instead of “file->open”
  • In windows you can simply double-click on xlr8_top.qpf in Windows Explorer

Back to Top

4   SYNTHESIS

Note:  Synthesis requires Quartus, which is only available on Microsoft Windows and Linux (Linux untested). It is not available on Mac OS.

In Quartus:

  • Do Processing->Start Compilation (or simply click the blue triangle icon)
  • Do File->Convert Programming Files
  • Open Conversion Setup Data->openxlr8.cof
  • Generate
  • Ok
  • Close

Back to Top

5   BURNING the FPGA IMAGE

In Arduino, select the following:

  • Board-> Open XLR8
  • “Floating Point XB” and “Upload Action” setting don’t matter for this step
  • FPGA Image->  choose AVR frequency that matches the rtl and sdc file (16MHz if you haven’t changed the rtl)
  • Port->  Serial Port that XLR8 board is connected to
  • Burn Bootloader (takes about a minute)
  • Copy the URL that is printed at the end of the status message, paste it into a web browser, and leave us any comments you may have.

Back to Top

6   MORE HELP

  1. Issues? Check the Alorium Technology Forums.
  2. Check out our Intro to OpenXLR8 webinar recording.
  3. Intel has both paid and free on-line training here.
  4. An overview of the ModelSim HDL simulator is also available from Intel here.

Back to Top

Improve Your Project!