Analog Devices High Speed Converter Toolbox For MATLAB and Simulink
ADI maintains a set of tools to model, interface, and target with ADI high-speed converter devices within MATLAB and Simulink. These are combined into single Toolbox which contains a set of Board Support Packages (BSP). The list of supported boards is provided below.
Quick Start with Toolbox
The current stable Toolbox can be downloaded from the High Speed Converter Toolbox GitHub Release Page. Download the latest mltbx file then open that file within MATLAB. Opening the file will automatically install the Toolbox, adding the necessary components to your MATLAB path. The “Analog Devices, Inc. High Speed Converter Toolbox” will appear in your Add-Ons Explore within MATLAB.
To interface and stream data with hardware will require installation of libiio and one of two Hardware Support Packages from MathWorks. The libiio library can be obtained on the Github page of the project.
is required to use the streaming system objects or blocks. These support packages provide the necessary libIIO MATLAB bindings used by ADI's system objects.
Building the Toolbox Manually
The toolbox can only be built under Linux or with Cygwin on a Windows platform. Conveniently, the entire process is automated with a Makefile located in the CI/scripts folder of the repository. The following is required on the system before the build process can be run:
A supported MATLAB version installed in the default location (/usr/local/MATLAB)
A supported Vivado version installed in the default location (/opt/Xilinx)
Packages: git zip unzip tar make wget sed
You should only manually build the toolbox if you require a custom branch or no toolbox installer is available
First clone the repo and move into it:
git clone https://github.com/analogdevicesinc/HighSpeedConverterToolbox.git
cd HighSpeedConverterToolbox
To build the toolbox run the following:
make -C CI/scripts build
To create a installable tlbx file run:
make -C CI/scripts gen_tlbx
Device Control and Data Streaming
Device interfaces which provide control and data streaming are implemented with MATLAB System Objects and Simulink Blocks. These System Objects can be access under the “adi” namespace in MATLAB and are followed by their part number or board name and finally Tx or Rx:
adi..
For example, to instantiate an AD9144 object to control the high speed converter it can be created as follows:
tx = adi.AD9144.Tx;
All supported boards are derived from low level objects based on their parts. For example, the DAQ2 Evaluation board actually contains an AD9680 and AD9144. Therefore, it simply uses AD9680 and AD9144 objects under the hood. However, to interact with the more familiar DAQ2 interface naming the Rx side can be instantiated like above as:
rx = adi.DAQ2.Rx;
For example usage of certain objects, it can be useful to inspect their related test code which exercises initiations in different configurations. The available code is available in the GitHub repo folder here, where object tests have the naming convention