Main Content

Compatibility with Previous Releases

The technology underpinning the features and workflows of the SoC Blockset™ Support Package for AMD FPGA and SoC Devices for Xilinx® Zynq®-Based radio was updated in release R2018b. In releases before R2018b, the support package uses Analog Devices® no-OS drivers to control RF devices. Starting in release R2018b, the support package uses Analog Devices industrial I/O (IIO) drivers and the corresponding libiio library for interfacing with Linux® IIO devices. This transition gives access to more advanced device properties.

To run a design based on objects or blocks released before R2018b, you must update your design by replacing pre-R2018b objects and blocks with objects and blocks released in R2018b or later. All objects and blocks released before R2018b have been removed.

The next sections highlight compatibility considerations and describe how to update a design based on features released before R2018b.

How to Replace Radio Objects

In releases before R2018b, interfacing with a supported radio hardware is through a radio object dedicated to your radio hardware. For example, in this code, devADI is a comm.SDRDevADIRFSOM radio object, devZC706 is a comm.SDRDevZC706FMC234 radio object, and devZedBoard is a comm.SDRDevZedBoardFMC234 radio object.

% Before R2018b
devADI = sdrdev('ADI RF SOM');
devZC706 = sdrdev('ZC706 and FMCOMMS2/3/4');
devZedBoard = sdrdev('ZedBoard and FMCOMMS2/3/4');

Starting in release R2018b and later, you can interface with any of these radio hardware by using the comm.SDRDevAD936x radio object. To create this object, call the sdrdev function with argument 'AD936x'.

% From R2018b and later
dev = sdrdev('AD936x');

Starting in release R2018b and later, the only time you need to specify a radio hardware name identifier is when calling the downloadImage function.

% From R2018b and later
downloadImage(dev,'BoardName','ADI RF SOM')

Replace pre-R2018b radio objects by following these guidelines.

Functionality Removed in R2020aUse InsteadCompatibility Considerations
comm.SDRDevADIRFSOM radio objectcomm.SDRDevAD936x radio object;
  • In calls to sdrdev, replace the radio hardware name with 'AD936x' and use a comm.SDRDevAD936x radio object instead.

  • In calls to downloadImage, you must specify the radio hardware name.

  • Remove calls to any of these object functions:

    • setupSession

    • setAddress

    • setupTools

comm.SDRDevZC706FMC234 radio object
comm.SDRDevZedBoardFMC234 radio object

How to Replace System Objects

In releases before R2018b, sending or receiving data in MATLAB® is through a transmitter or receiver System object™ dedicated to your hardware. For example, in this code, rxADI is a comm.SDRRxADIRFSOM receiver System object, rxZC706 is a comm.SDRRxZC706FMC234 receiver System object, and rxZedBoard is a comm.SDRRxZedBoardFMC234 receiver System object.

% Before R2018b
rxADI = sdrrx('ADI RF SOM');
rxZC706 = sdrrx('ZC706 and FMCOMMS2/3/4');
rxZedBoard = sdrrx('ZedBoard and FMCOMMS2/3/4');

Starting in release R2018b and later, to receive data in MATLAB from these radio hardware, use the comm.SDRRxAD936x receiver System object. To send data from MATLAB to these radio hardware, use the comm.SDRTxAD936x transmitter System object. To create the corresponding System objects, call the sdrrx or sdrtx functions with argument 'AD936x'.

% From R2018b and later
rx = sdrrx('AD936x');
tx = sdrtx('AD936x');

Replace pre-R2018b System objects by following these guidelines.

Functionality Removed in R2020aUse InsteadCompatibility Considerations

comm.SDRRxADIRFSOM receiver System object

comm.SDRRxAD936x receiver System object

comm.SDRRxZC706FMC234 receiver System object

comm.SDRRxZedBoardFMC234 receiver System object

comm.SDRTxADIRFSOM transmitter System objectcomm.SDRTxAD936x transmitter System object
comm.SDRTxZedBoardFMC234 transmitter System object
comm.SDRTxZC706FMC234 transmitter System object

How to Replace Blocks

In releases before R2018b, sending or receiving data in Simulink® is through a transmitter or receiver block dedicated to your hardware. You can replace these blocks with AD936x blocks by following these guidelines.

Functionality Removed in R2020aUse InsteadCompatibility Considerations
ADI RF SOM Receiver blockAD936x Receiver block
  • Replace the pre-R2018b receiver block with an AD936x Receiver block by following these steps.

    1. Add an AD936x Receiver block to your model.

    2. Port the parameter values from the old block to the corresponding parameter fields on the AD936x Receiver block. The Simulate using parameter is not available in the new block.

    3. Match the lost samples port of the old block to the overflow port of the AD936x Receiver block.

    4. Match the data length port of the old block to the data valid port of the AD936x Receiver block. The data valid port is disabled by default. Also note that the data types of the data length and data valid ports differ.

  • Consider using these functionalities of the AD936x Receiver block:

ZC706 and FMCOMMS2/3/4 Receiver block
ZedBoard and FMCOMMS2/3/4 Receiver block
ADI RF SOM Transmitter blockAD936x Transmitter block
  • Replace the pre-R2018b transmitter block with an AD936x Transmitter block by following these steps.

    1. Add an AD936x Transmitter block to your model.

    2. Port the parameter values from the old block to the corresponding parameter fields on the AD936x Transmitter block. Special considerations:

      • The DDS parameters have a different configuration in the new block.

      • The Simulate using parameter is not available in the AD936x Transmitter block.

      • The Enable burst mode parameter is not available in the AD936x Transmitter block. For alternative methods, see Detect Underruns and Overruns.

    3. Match the lost samples port of the old block to the underflow port of the AD936x Transmitter block.

  • Consider using these functionalities of the AD936x Transmitter block:

ZC706 and FMCOMMS2/3/4 Transmitter block
ZedBoard and FMCOMMS2/3/4 Transmitter block

Hardware-Software Co-Design Considerations

To enable hardware-software co-design, follow the updated instructions in Installation for Hardware-Software Co-Design.

HDL Code Generation

Because the underlying FPGA image changed in R2018b, you must regenerate your FPGA bitstreams for your updated model. For FPGA targeting, follow the instructions in Step 4. Generate HDL IP Core Using HDL Workflow Advisor. For hardware-software co-design, follow the instructions in Step 7. Generate FPGA Bitstream and Program Zynq Hardware.

Software Interface Models

If you want to deploy a new hardware-software co-design model, follow the instructions in Hardware-Software Co-Design Workflow.

If you have a software interface model generated using a release before R2018b, you can update the generated software model by following these steps.

  1. Replace the pre-R2018b blocks with the AD936x blocks by following the steps in How to Replace Blocks.

  2. On the Advanced tab of the AD936x Receiver block mask, select the Override automatic sample time parameter. Specify the value of the ARM Frame Rate block for the Sample time parameter. Delete the ARM Frame Rate block.

  3. Reconfigure the software interface model. On the Hardware tab, in the Prepare section, click Hardware Settings and select Xilinx Zynq-7000 Based IIO Radio from the Hardware board list.

See Also

Objects

Blocks