OpenXLR8

Introduction to OpenXLR8

OpenXLR8 is the methodology we are actively developing that allows XLR8 and Snō users to develop their own custom Xcelerator Blocks and integrate them into the FPGA.

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

OpenXLR8 has been updated!

The legacy OpenXLR8 instruction set is no longer supported, but can be found here: http://www.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.
    • We support version 17.1 of Quartus Prime Lite Edition
    • See the following for Quartus OS and hardware requirements: http://dl.altera.com/requirements/17.1/
    • This should include ModelSim-Intel FPGA Edition and Max 10 FPGA device support.

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   SIMULATION

Note:  Simulation in Quartus and ModelSim are only available on Microsoft Windows and Linux. It is not available on Mac OS.

In Arduino, select the following

  • Tools-> Board-> Open XLR8
  • Tools-> Floating Point XB-> Enabled (Can set to disabled if you have the Floating Point XB but want to use software floating point anyway for some reason).
  • Tools-> FPGA Image->  choose AVR frequency that matches the rtl and sdc file (16MHz if you haven’t changed the rtl)
  • Tools-> Upload Action->  Send Sketch to Quartus-ModelSim directory
  • Tools-> Port->  doesn’t matter for this step
  • Tools-> Sketch-> Upload (or hit the Upload button)

In Quartus

  • Processing->Start->Start Analysis and Elaboration
  • Tools->Run Simulation Tool->RTL Simulation

In ModelSim

  • The simulation starts running with the top level inputs and outputs logged to the wave window.
  • You may want to stop the simulation, add additional signals to the wave window, and then run-continue
  • You may want to stop the simulation, add some breakpoints or enter a number milli-seconds you would like to simulate, and then run-continue.
    • It is also possible for a sketch to control when the simulation finishes.
    • The testbench watches the AVR’s GPIOR1 register and if bit 7 is set, it will end the simulation at that point (and by convention report a passing status if bit 6 is also set).
    • If your sketch doesn’t set GPIOR1 (most sketches don’t), the simulation will run until you hit the stop button.

Back to Top

5   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 

6   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

7   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: http://www.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.
    • We support version 17.1 of Quartus Prime Lite Edition
    • See the following for Quartus OS and hardware requirements: http://dl.altera.com/requirements/17.1/
    • This should include ModelSim-Intel FPGA Edition and Max 10 FPGA device support.

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   SIMULATION

Note: Simulation in Quartus and ModelSim are only available on Microsoft Windows and Linux. It is not available on Mac OS.

In Arduino, select the following

  • Tools-> Board-> Open XLR8
  • Tools-> Floating Point XB-> Enabled (Can set to disabled if you have the Floating Point XB but want to use software floating point anyway for some reason).
  • Tools-> FPGA Image->  choose AVR frequency that matches the rtl and sdc file (16MHz if you haven’t changed the rtl)
  • Tools-> Upload Action->  Send Sketch to Quartus-ModelSim directory
  • Tools-> Port->  doesn’t matter for this step
  • Tools-> Sketch-> Upload (or hit the Upload button)

In Quartus

  • Processing->Start->Start Analysis and Elaboration
  • Tools->Run Simulation Tool->RTL Simulation

In ModelSim

  • The simulation starts running with the top level inputs and outputs logged to the wave window.
  • You may want to stop the simulation, add additional signals to the wave window, and then run-continue
  • You may want to stop the simulation, add some breakpoints or enter a number milli-seconds you would like to simulate, and then run-continue.
    • It is also possible for a sketch to control when the simulation finishes.
    • The testbench watches the AVR’s GPIOR1 register and if bit 7 is set, it will end the simulation at that point (and by convention report a passing status if bit 6 is also set).
    • If your sketch doesn’t set GPIOR1 (most sketches don’t), the simulation will run until you hit the stop button.

Back to Top

5   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

6   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

7   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!