ZED Quickstart

This guide provides quick instructions on how to set up the EVAL-CN0577-FMCZ on:

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/images/ZedBoard.png

All the products described on this page include ESD (electrostatic discharge) sensitive devices. Electrostatic charges as high as 4000V readily accumulate on the human body or test equipment and can discharge without detection. Although the boards feature ESD protection circuitry, permanent damage may occur on devices subjected to high-energy electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance degradation or loss of functionality. This includes removing static charge on external equipment, cables, or antennas before connecting to the device.

Using Linux as software

Necessary files

Note

The SD card includes several folders in the root directory of the BOOT partition. In order to configure the SD card to work with a specific FPGA board and ADI hardware, several files must be copied onto the root directory. Using the host PC, drag and drop the required files onto the BOOT partition, and use the EJECT function when removing the SD card from the reader.

The following files are needed for the system to boot:

  • HDL boot image: BOOT.BIN

  • Linux Kernel image: uImage

  • Linux device tree: devicetree.dtb

They can either be taken from the SD card – already generated by us, or you can build them manually:

  • Instructions on how to choose the boot files from the SD card can be found in the Platform-Specific Manual Steps section from here: Hardware Configuration.

  • Instructions on how to manually build the boot files from source can be found here:

Important

Some projects provide multiple devicetree files in the SD card’s boot folders. Make sure you select the devicetree that matches your specific use case.

Required Software

  • SD Card 16GB imaged with Kuiper (check out that guide on how to do it, then come back to this section)

  • A UART terminal (Putty/Tera Term/Minicom, etc.) with baud rate 115200 (8N1)

Access to the embedded system can be through a remote PC connected either via LAN cable or Wi-Fi.

Required Hardware

  • AMD Xilinx ZedBoard FPGA board and its power supply (12V)

  • EVAL-CN0577-FMCZ FMC evaluation board

  • SD card with at least 16GB of memory

  • Micro-USB cable (UART)

  • LAN cable (Ethernet)

  • Signal generator

  • SMA cable for signal generator

  • BNC to SMA cable, AD-M2KBNC-EBZ (if using ADALM2000 as input source)

  • (Optional) USB keyboard & mouse and a HDMI compatible monitor

More details as to why you need these can be found at Prerequisites.

Testing

Creating the setup with Audio Precision

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0577-fmcz/images/demo_with_ap.png

Figure 1 CN0577 Evaluation Setup

To set up the complete system using Audio Precision audio analyzer as input source, follow these steps:

  1. Make sure to download/update to the latest version of IIO Oscilloscope.

  2. Get the ZedBoard

  3. Configure ZedBoard for SD BOOT:

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0577-fmcz/images/cn0577_zed_sdcard_jumpers.jpg

    The BOOT switches (JP7–JP11) and the MIO0 jumper (JP6) must be set for SD‑card boot mode. VADJ must be set to 2.5V, as specified in the HDL project’s README at CN0577 HDL project. Optionally, to use USB peripheral devices with the ZedBoard, install jumpers JP2 and JP3.

  4. Insert the SD card into the SD Card Interface Connector (J12)

  5. Connect EVAL-CN0577-FMCZ to the ZedBoard through the FMC LPC Connector (J1).

  6. Plug the Power Supply into 12V Power input connector (J20) (DO NOT turn the device on).

  7. Plug in the LAN cable from the ZedBoard to the host computer.

  8. Connect the EVAL-CN0577-FMCZ to the Audio Precision audio analyzer using the XLR to SMA adapter cable.

  9. Connect the ground of the EVAL-CN0577-FMCZ to the Audio Precision audio analyzer.

  10. Connect the Audio Precision audio analyzer USB cable to PC.

  11. Turn on the power switch on the FPGA board

  12. Run the IIO Oscilloscope software and capture the resulting ADC data.

Creating the setup with ADALM2000

https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0577-fmcz/images/demo_with_m2k.png

Figure 2 CN0577 Setup with ADALM2000 Portable Oscilloscope

Using ADALM2000 as input source:

  1. Get the ZedBoard

  2. Configure ZedBoard for SD BOOT:

    https://media.githubusercontent.com/media/analogdevicesinc/documentation/main/docs/solutions/reference-designs/eval-cn0577-fmcz/images/cn0577_zed_sdcard_jumpers.jpg

    The BOOT switches (JP7–JP11) and the MIO0 jumper (JP6) must be set for SD‑card boot mode. VADJ must be set to 2.5V, as specified in the HDL project’s README at CN0577 HDL project. Optionally, to use USB peripheral devices with the ZedBoard, install jumpers JP2 and JP3.

  3. Insert the SD card into the SD Card Interface Connector (J12)

  4. Connect EVAL-CN0577-FMCZ to the ZedBoard through the FMC LPC Connector (J1).

  5. Plug the Power Supply into 12V Power input connector (J20) (DO NOT turn the device on).

  6. Plug-in an Ethernet cable from your router/switch to the Ethernet port on the FPGA board

  7. Connect the AD-M2KBNC-EBZ to the ADALM2000.

  8. Connect the ADALM2000 to EVAL-CN0577-FMCZ using BNC to SMA cable (W1 to J1 and W2 to J2)

  9. Plug the ADALM2000 to the host PC.

  10. Connect the UART port of ZedBoard (J14) to a PC via MicroUSB

  11. Turn on the power switch on the FPGA board

  12. Observe Kernel and serial console output messages on your terminal

Boot messages

The following is what is printed in the serial console, after you have connected to the proper ttyUSB or COM port:

U-Boot 2018.01-01677-geb93226123b (Mar 09 2026 - 12:15:19 +0200), Build: jenkins-development-build_uboot-69

Model: Zynq Z[  OK  ] Finished systemd-udev-trigger.service - Coldplug All udev Devices.
         Starting ifupdown-pre.service - He…synchronize boot up for ifupdown...
         Starting systemd-udev-settle.servi…o Complete Device Initialization...
[  OK  ] Finished systemd-remount-fs.servic…mount Root and Kernel File Systems.
[  OK  ] Finished ifupdown-pre.service - He…o synchronize boot up for ifupdown.
         Starting systemd-journal-flush.ser…sh Journal to Persistent Storage...
         Starting systemd-random-seed.service - Load/Save OS Random Seed...
         Starting systemd-sysusers.service - Create System Users...
[  OK  ] Finished systemd-random-seed.service - Load/Save OS Random Seed.
[  OK  ] Finished systemd-journal-flush.ser…lush Journal to Persistent Storage.
[  OK  ] Finished systemd-sysusers.service - Create System Users.
         Starting systemd-tmpfiles-setup-de…eate Static Device Nodes in /dev...
[  OK  ] Finished systemd-tmpfiles-setup-de…Create Static Device Nodes in /dev.
[  OK  ] Reached target local-fs-pre.target…Preparation for Local File Systems.
         Starting systemd-udevd.service - R…ager for Device Events and Files...
[  OK  ] Started systemd-udevd.service - Ru…anager for Device Events and Files.
         Starting plymouth-start.service - Show Plymouth Boot Screen...
failed to register cpuidle driver
systemd[1]: Failed to find module 'autofs4'
[  OK  ] Started plymouth-start.service - Show Plymouth Boot Screen.
[  OK  ] Found device dev-ttyPS0.device - /dev/ttyPS0.
[  OK  ] Found device dev-disk-by\x2dpartuu… /dev/disk/by-partuuid/d29065e8-01.
[  OK  ] Finished systemd-udev-settle.servi… To Complete Device Initialization.
[  OK  ] Started systemd-ask-password-plymo…quests to Plymouth Directory Watch.
[  OK  ] Reached target paths.target - Path Units.
[  OK  ] Reached target sound.target - Sound Card.
         Starting systemd-fsck@dev-disk-by\…dev/disk/by-partuuid/d29065e8-01...
[  OK  ] Finished systemd-fsck@dev-disk-by\… /dev/disk/by-partuuid/d29065e8-01.
         Mounting boot.mount - /boot...
[  OK  ] Mounted boot.mount - /boot.
[  OK  ] Reached target local-fs.target - Local File Systems.
[  OK  ] Listening on systemd-sysext.socket… System Extension Image Management.
         Starting networking.service - Raise network interfaces...
         Starting plymouth-read-write.servi…ymouth To Write Out Runtime Data...
         Starting systemd-tmpfiles-setup.se…ate System Files and Directories...
[  OK  ] Finished plymouth-read-write.servi…Plymouth To Write Out Runtime Data.
[  OK  ] Finished systemd-tmpfiles-setup.se…reate System Files and Directories.
         Starting ldconfig.service - Rebuild Dynamic Linker Cache...
         Starting systemd-journal-catalog-u…ervice - Rebuild Journal Catalog...
         Starting fake-hwclock-load.service - Restore the current clock...
         Starting modprobe@efi_pstore.servi… - Load Kernel Module efi_pstore...
[  OK  ] Finished systemd-journal-catalog-u….service - Rebuild Journal Catalog.
[  OK  ] Finished networking.service - Raise network interfaces.
[  OK  ] Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[  OK  ] Finished fake-hwclock-load.service - Restore the current clock.
[  OK  ] Finished ldconfig.service - Rebuild Dynamic Linker Cache.
         Starting systemd-update-done.service - Update is Completed...
[  OK  ] Finished systemd-update-done.service - Update is Completed.
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started apt-daily.timer - Daily apt download activities.
[  OK  ] Started apt-daily-upgrade.timer - …y apt upgrade and clean activities.
[  OK  ] Started dpkg-db-backup.timer - Daily dpkg database backup timer.
[  OK  ] Started e2scrub_all.timer - Period…Metadata Check for All Filesystems.
[  OK  ] Started fake-hwclock-save.timer - Periodically save current clock.
[  OK  ] Started fstrim.timer - Discard unused filesystem blocks once a week.
[  OK  ] Started logrotate.timer - Daily rotation of log files.
[  OK  ] Started man-db.timer - Daily man-db regeneration.
[  OK  ] Started ntpsec-rotate-stats.timer - Rotate ntpd stats daily.
[  OK  ] Started systemd-tmpfiles-clean.tim…y Cleanup of Temporary Directories.
[  OK  ] Reached target timers.target - Timer Units.
[  OK  ] Listening on avahi-daemon.socket -…DNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Listening on sshd-unix-local.socke…temd-ssh-generator, AF_UNIX Local).
[  OK  ] Listening on systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Reached target sockets.target - Socket Units.
[  OK  ] Reached target basic.target - Basic System.
         Starting accounts-daemon.service - Accounts Service...
         Starting adi-power.service - Analog Devices power up/down sequence...
         Starting avahi-daemon.service - Avahi mDNS/DNS-SD Stack...
         Starting blueman-mechanism.service - Bluetooth management mechanism...
[  OK  ] Started cron.service - Regular background program processing daemon.
         Starting dbus.service - D-Bus System Message Bus...
         Starting e2scrub_reap.service - Re…ne ext4 Metadata Check Snapshots...
         Starting extend-rootfs-once.servic…oot filesystem to fill partition...
[  OK  ] Started fan-control.service - fan-control.
         Starting fix-display-port.service - Fix DP audio and X11...
         Starting iiod_context_attr.service…ating IIOD Context Attributes......
         Starting systemd-logind.service - User Login Management...
         Starting udisks2.service - Disk Manager...
         Starting xserver.service - ADI X Server...
[  OK  ] Finished fix-display-port.service - Fix DP audio and X11.
[  OK  ] Started dbus.service - D-Bus System Message Bus.
         Starting NetworkManager.service - Network Manager...
         Starting wpa_supplicant.service - WPA supplicant...
[  OK  ] Started avahi-daemon.service - Avahi mDNS/DNS-SD Stack.
[  OK  ] Started systemd-logind.service - User Login Management.
         Starting polkit.service - Authorization Manager...
[  OK  ] Started wpa_supplicant.service - WPA supplicant.
[  OK  ] Finished adi-power.service - Analog Devices power up/down sequence.
[  OK  ] Finished iiod_context_attr.service…reating IIOD Context Attributes....
[  OK  ] Finished e2scrub_reap.service - Re…line ext4 Metadata Check Snapshots.
[  OK  ] Started polkit.service - Authorization Manager.
[  OK  ] Created slice user-1000.slice - User Slice of UID 1000.
         Starting systemd-hostnamed.service - Hostname Service...
         Starting user-runtime-dir@1000.ser…Runtime Directory /run/user/1000...
[  OK  ] Started accounts-daemon.service - Accounts Service.
[  OK  ] Finished user-runtime-dir@1000.ser…r Runtime Directory /run/user/1000.
[  OK  ] Started systemd-hostnamed.service - Hostname Service.
[  OK  ] Started udisks2.service - Disk Manager.
         Starting NetworkManager-dispatcher…anager Script Dispatcher Service...
[  OK  ] Started NetworkManager-dispatcher.… Manager Script Dispatcher Service.
[  OK  ] Started NetworkManager.service - Network Manager.
[  OK  ] Reached target network.target - Network.
         Starting htpdate.service - HTTP based time synchronization tool...
[  OK  ] Started iiod.service - IIO Daemon.
         Starting ntpsec.service - Network Time Service...
         Starting ssh.service - OpenBSD Secure Shell server...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Started udiskie.service - Udiskie …rvice for managing removable media.
[  OK  ] Started htpdate.service - HTTP based time synchronization tool.
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
         Starting plymouth-quit-wait.servic…d until boot process finishes up...
         Starting user@1000.service - User Manager for UID 1000...
[  OK  ] Started ntpsec.service - Network Time Service.
[  OK  ] Started ssh.service - OpenBSD Secure Shell server.
[  OK  ] Started user@1000.service - User Manager for UID 1000.
[  OK  ] Started session-c1.scope - Session c1 of User analog.
[  OK  ] Finished xserver.service - ADI X Server.
         Starting lightdm.service - Light Display Manager...
         Starting x11vnc.service - VNC Server for X11...
         Starting rtkit-daemon.service - Re…imeKit Scheduling Policy Service...
[  OK  ] Started rtkit-daemon.service - RealtimeKit Scheduling Policy Service.
[FAILED] Failed to start x11vnc.service - VNC Server for X11.
See 'systemctl status x11vnc.service' for details.
[  OK  ] Started blueman-mechanism.service - Bluetooth management mechanism.
[**    ] (4 of 6) Job dev-ttyGS0.device/start running (44s / 1min 30s)

Debian GNU/Linux 13 analog ttyPS0

analog login: root (automatic login)

Linux analog 6.12.77-ge2f9fe8e3654 #1 SMP PREEMPT Thu Mar 26 12:00:45 UTC 2026 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
root@analog:~#

Useful commands for the serial terminal

The below commands are to be run in the serial terminal connected to the FPGA.

Login Information

user: analog password: analog

To find out the IP of the FPGA board, run the following command and take the IP specified at “eth0 inet”:

~$
ifconfig

To see the IIO devices detected, run:

~$
iio_info | grep iio:device
iio:device0: ltc2387 (buffer capable)
iio:device1: xadc
iio:device2: one-bit-adc-dac

To power off the system, run the following command, and wait for the final message to be printed, then power off the FPGA board from the switch as well.

~$
poweroff

To reboot the system, run:

~$
reboot

Important

Even though this is Linux, this is a persistent file system. Care should be taken not to corrupt the file system – please shut down things, don’t just turn off the power switch. Depending on your monitor, the standard power off could be hiding. You can do this from the terminal as well with sudo shutdown -h now or the above-mentioned command for powering off.