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 R2020a | Use Instead | Compatibility Considerations |
---|---|---|
comm.SDRDevADIRFSOM radio
object | comm.SDRDevAD936x radio object; |
|
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 R2020a | Use Instead | Compatibility Considerations |
---|---|---|
| comm.SDRRxAD936x receiver System object |
|
| ||
| ||
comm.SDRTxADIRFSOM
transmitter System object | comm.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 R2020a | Use Instead | Compatibility Considerations | |
---|---|---|---|
ADI RF SOM Receiver block | AD936x Receiver block |
| |
ZC706 and FMCOMMS2/3/4 Receiver block | |||
ZedBoard and FMCOMMS2/3/4 Receiver block | |||
ADI RF SOM Transmitter block | 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.
Replace the pre-R2018b blocks with the AD936x blocks by following the steps in How to Replace Blocks.
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.
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.