This version (09 Feb 2021 16:05) was approved by Robin Getz.The Previously approved version (08 Feb 2021 16:22) is available.Diff

This is an old revision of the document!

AD-FMCOMMS1-EBZ Quick Start Guide on Xilinx FPGA Boards Without OS

Analog Devices uses six designations to inform our customers where a semiconductor product is in its life cycle. From emerging innovations to products which have been in production for twenty years, we understand that insight into life cycle status is important. Device life cycles are tracked on their individual product pages on, and should always be consulted before making any design decisions.

This particular articl/edocument/design has been retired or deprecated, which means it is no longer maintained or actively updated, even though the devices themselves may be Recommended for New Designs or in Production. This page is here for historical/reference purposes only.

This guide provides some quick instructions on how to setup the AD-FMCOMMS1-EBZ on either:

The ML605 XPS project remain on this website only for legacy purposes. The support for XPS projects has been discontinued.

Required Software

  • We upgrade the Xilinx tools on every release. The supported version number can be found in our git repository .


Required Hardware

  • Xilinx ML605 / Xilinx AC701 / Xilinx KC705 / Xilinx VC707 / Xilinx ZC702 / Xilinx ZC706 / Digilent ZED

Hardware Setup

  • Connect the power and UART cables of the Xilinx FPGA board
  • Connect the AD-FMCOMMS1-EBZ FMC board to the Xilinx FPGA board on the:
    • LPC FMC connector for KC705, ZC706, ZED;
    • LPC FMC1 connector for ZC702;
    • HPC FMC connector for AC701, ML605;
    • HPC FMC2 connector for VC707.

The transmit signal may be observed using a spectrum analyzer. The receive side may be sourced by either the transmit side or a signal source. If it is the transmit side, connect an SMA cable from the transmit to receive or connect antennae on both. If it is a signal source the frequency needs to be 2.4G+f, 0 dBm where f is the baseband.

The default RX gain in case of no-OS software is 10 dB. This could be too high, when an SMA cable is used for external loop-back. In this case the user should reduce the RX gain to its minimum value: 4.5 dB, in order to prevent saturation.

Software Setup for Vivado

Example for a ZC702 board:

  • After building the project in Vivado for the used FPGA board, a SDK_Export folder will be created in ../fmcomms1_board.sdk/SDK
  • Open the Xilinx SDK for Vivado. When the SDK starts it asks to provide a folder where to store the workspace. Any folder can be provided.
  • Go to File→New→Application project

 New Application Project

  • Use a new hardware platform, so choose New in Target Hardware section

 New Platform

  • At the Target Hardware Specification section browse the location of the hardware description file. This file's extension should be .xml or .hdf, and is located in the directory of the hdl design. Note: If the file does not exist, probably you forgot to make an Export hardware (in Vivado FileExportExport Hardware…)

 New Hardware Project

  • Then give a name to the project and click Next

 Project Name

  • In the next window choose Empty Application and click Finish

 Available Templates

  • Now the project without source code looks like this

 Empty Project

  • Then the source code(all folders from no-OS Drivers, except Chipscope, Evaluate and PIC) must be added from Github to src folder.

 Project without directories paths

  • Afterwards click right on project name and go to Properties

 Project properties

  • In the window that appears go to Settings→Directories and include the paths of the directories from src for both Debug and Release configurations.

 Include paths

  • The Project Explorer window now shows the projects that exist in the workspace and the files for each project. The SDK should automatically build the projects and the Console window will display the result of the build. If the build is not done automatically select the Project→Build Automatically menu option.

 Project Explorer

  • The default project configuration assumes that a Xilinx ML605 FPGA board is used and that the FMCOMMS1 is connected to this board on the FMC LPC connector. In the file Common/main.c change the XCOMM_DefaultInit initialization structure so that the FPGA board and the FMC port used to connect the FMCOMMS1 to the FPGA board correspond to your actual hardware setup.

 Board Configuration

  • At this point the software project setup is complete, the FPGA can be programmed and the software can be downloaded into the system. You can program the FPGA by going to Xilinx Tools.

 Program FPGA

  • Then choose this bitstream and press Program.

 Program FPGA with bitstream

  • This window will appear next.

 Program FPGA progress

  • Afterwards a Run Configuration must be created and then press Run.

 Run Configuration

The no-OS drivers source code contains an example on how to:

  • initialize the board
  • test the ADC communication
  • test the DAC communication
  • set the VGA gain
  • set the receive and transmit frequencies
  • send a sinewave over the air and receive it back

The example code outputs on the UART the status of each operation as shown below.

 UART Test

The output of the example program can be viewed in the SDK console by enabling the Connect STDIO Console option and setting the baud rate of the UART port to 115200.

 Baud rate

As an alternative an UART terminal can be used to capture the output of the example program. The number of used UART port depends on the computer's configuration. The following settings must be used in the UART terminal:

  • Baud Rate: 115200bps
  • Data: 8 bit
  • Parity: None
  • Stop bits: 1 bit
  • Flow Control: none

The example code is located in the “Common/main.c” file and the implementations of the ADC and DAC test routines can be found in the “Common/test.c” file.

After running the example program the system is configured to generate a sinewave and send it over the air using a 2.4GHz carrier. The signal is received back, brought to baseband again and digitized by the ADC on the FMCOMMS1. The I and Q samples generated by the ADC can be viewed using the Vivado Hardware Manager. These are the steps than need to be followed to view the sine waves:

  • First make sure that the board is programmed and the program is currently running
  • Then open Vivado and go to Flow→Open Hardware manager

 Open Hardware Manager

  • In the new window select Open a new hardware target

 Open New Hardware Target

  • Then click Next 4 times and then Finish

 Open New Hardware Target Server name Select Target  Set Properties Open New Hardware Target

  • This is how the Vivado Hardware Manager looks like. Now go to Probes files.

 Device Properties

  • And browse for the folder where the project was compiled ../fmcomms1_board.runs/impl_1/debug_nets.ltx

 Specify Probes File

  • Then do a right click on the active target and choose Refresh Device

 Refresh Device

  • Afterwards do another right click on the active target and choose Run Trigger

 Run Trigger

  • This is how the 56 digital signals look like. Now we have to compose the sinewaves.

 ILA Signals

  • First select the first 14 signals, do a right click and choose New Virtual Bus

 New Virtual Bus

  • Then give a name to that virtual bus

 Specify Virtual Bus Name

  • In order to see a sinewave you have to right click on the name of the virtual bus, choose Analog for Waveform Style option.

 Analog Waveform Style

  • Now you can see a sinewave, but the radix is not the good one. In order to have the right radix, you must choose Signed Decimal for Radix.

 Signed Decimal Radix

  • Now the signal looks like a sinewave

 One Virtual Bus Sinewave

  • And after you did the same steps for the other 3×14 remaining signals, you should have 4 sinewaves composed of 56 signals. Because of the working frequency of the ILA core, data has been split into 2 buses, so the actual data from the Evaluation board would be I_0 interleaved with I_1, and Q_0 interleaved with Q_1.

 4 Virtual Buses Sinewaves

Navigation - AD-FMCOMMS1-EBZ

/srv/ · Last modified: 22 Nov 2021 14:31 by Stefan-Robert Raus