MATLAB Answers

HW/SW Co-design full deployment using ZedBoard issues

2 views (last 30 days)
J. Smith
J. Smith on 16 Jun 2016
Commented: Jan on 6 Jul 2017
Hi guys,
I'm using the new feature of HW/SW Co-design as part of the "Communications System Toolbox Support Package for Xilinx Zynq-Based Radio". I've done something really similar to the QPSK Transmitter and Receiver example. Everything went smoothly (after some iterations of course :) ), and now I'm left with two last issues, when deploying the application as totally standalone (see explanation below).
Some Background:
I'm using ZedBoard and AD9361 as my evaluation board. The ZedBoard contains a Zynq SoC which contains two parts - the fabric (FPGA \ PL) and the ARM (PS). My application involves receiving an RF signal through RX1 port and after some processing in the fabric (FPGA) part only, I'm transmitting the signal back through TX1 port. The ARM part is only to configure some registers needed in the fabric (FPGA) part. The ARM has a UDP receiver to get the desired parameters to configure the fabric by a UDP packet which can be sent from Python or C program. I want the application to run as a complete standalone application, i.e. doesn't need matlab at all in order to run, and the most important thing is the ability to run and start the application even after a reboot of the ZedBoard. The fabric part is loaded successfully after reboot as I used the downloadImage function to convert the system_wrapper.bit file to a system.bin file that is run after reboot. My problems start with the ARM part (which run the OS):
  1. I can't configure the ARM\OS to run the application directly after reboot. The "full deployment" option in the Simulink model is fine until reboot of the ZedBoard. It is not really fully deployed, as done in the fabric part, as it is not loaded after reboot.
  2. I want to deploy my ZedBoard and application in my LAN, which uses different IPs than the default IP used in the HW/SW Co-design workflow. I want the ability to change the IP of the ZedBoard (ARM) to my LAN Subnet. I tried to change it using Zynq() function\object but it didn't work. It had errors when I tried to build (deploy) my application to the ARM part (the interface model).
  3. I want to use both Tx & Rx channels in my model. How can I do so (regarding channel mapping and ValidOut port to each Tx channel, etc. ?
Help would be truly appreciated,

Answers (1)

Neil MacEwen
Neil MacEwen on 15 Feb 2017
Hi John,
My apologies for the late response. It's good to hear you've already come as far as you have. Some responses to your questions.
1. If you want to have your generated software run from boot up, there are some manual steps. You need to copy the generated application (<modelname>_interface) from the directory you generated in to the SD card (/mnt) on the hardware. You then need to modify to start your application rather than the default sdr_firmware.elf.
2. There is a two step process to changing the IP address. Firstly you need to change the IP address on the board, which can be done using the dev object:
>> dev = sdrdev('ZedBoard and FMCOMMS2/3/4');
>> setAddress(dev,'IPAddress',<new IP address>);
Next, you need to change the zynq() object IP address also. It tells Simulink which address to communicate with the device when deploying or running External Mode.
3. Assuming you mean you want to use both channels 1 and 2 for both Tx and Rx, this is possible. In HDL Workflow advisor, you need to choose the transmit and receive reference design, and you need to select channel mapping as [1 2]. The same valid signal is used for both channels.
Kind regards,
  1 Comment
Jan on 6 Jul 2017
@Ejaz S: Please use flags only to mark messages which interfere with the terms of use of the forums. A flag catchs te attraction of editors and admins, such that they can remove a message if required.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by