Customizing the Eclypse System's Zmods

UNDER CONSTRUCTION As such, the steps detailed in this guide are still bare-bones, and will have further detail added as needed

Overview

This guide covers the process required to create a custom system configuration for the Eclypse. For example, using two Zmod ADCs to create a four channel analog data capture system.

If a user's system is supported by an existing system image or demo project, found in the Example Projects and System Images section of the Eclypse Z7 Resource Center, then the user need not follow this guide.

This guide covers only the process, not the details of how each component of the system functions. For more information, a user should refer to the documentation detailing that component.


Requirements

  • A computer running Linux or a Virtual Machine running Linux
  • Vivado 2019.1 Install
  • Petalinux 2019.1 Install
  • An Eclypse Z7 and up to two user-selected Zmods.

Extending the Base Vivado Project

Section Requirements:

  • Vivado 2019.1 Install
  • Base Vivado Project
  • vivado-library repository, on the hierarchies branch
  • Board Files
  • Master XDC File
  1. Download the latest release of the Eclypse Z7 Base Vivado Project.
  2. Extract the release.
  3. Launch Vivado 2019.1
  4. Open the Vivado project contained in the release. XPR contained within the vivado_proj subfolder of the extracted release.
  5. Open the block design.
  6. Determine which Zmods are to be installed in the Eclypse system.
  7. Follow the steps in the Adding a Hierarchical Block to a Vivado IPI Design guide (to be embedded into this page) to add the hierarchical blocks for each selected Zmod to the block design. These blocks contain all hardware required to allow the Eclypse system to configure, control, and receive data from or transmit data to the selected Zmod. Note which Zmod ports are connected to which blocks, as the Zmods can only be installed on the ports selected in this step.
  8. Generate Bitstream. The bit file is used to program the PL, the process of generating the bitstream also creates a hardware specification, which will be used to customize and build a Petalinux project.
  9. Export Hardware (including the bitstream). This will place the hardware definition file (HDF) into an accessible location.

Section Outputs:

  • HDF File

Building the Petalinux Project

Section Requirements:

  • Linux Environment
  • Base Petalinux Project
  • HDF File
  • Petalinux 2019.1 Install
  1. Download the latest release of the Eclypse Z7 Base Petalinux Project, and extract it.
  2. Open a console and cd into the extracted petalinux project.
  3. Call “petalinux-config –get-hw-description=<path to .hdf folder>” to import the hardware exported from Vivado into the project.
  4. Navigate to and open the system-user device tree source include file (./project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi) in a text editor. Add the following code to the file:
    &AXI_ZmodADC1410_0 {
        compatible = "generic-uio";
    };
     
    &amba_pl {
        axidma_chrdev: axidma_chrdev@0 {
            compatible = "xlnx,axidma-chrdev";
            dmas = <&axi_dma_0 0>;
            dma-names = "rx_channel";
        };
    };

    QUESTION: depending on differences in the block design, what does the user need to change in this code? Example, AXI_ZmodADC1410_0 is clearly the name of the comms IP.

  5. Additional changes to the petalinux project can be made at this time. TODO add a brief rundown on one or more common cases.
  6. Build the petalinux project by calling the following command:
    petalinux-build

    Note that this process may take anywhere from 15 to 60 minutes, depending on the computer used.
    This process produces a file called image.ub that contains (a bunch of stuff).

  7. Once the project has build, (files) must be packaged into a single binary which can be used to boot the board. This binary is named “BOOT.bin” and can be generated with the following command, and can be found in the ./images/linux folder.
    petalinux-package --boot --force --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/system.bit --u-boot
  8. (format the SD card). Copy the image.ub and the BOOT.bin from the Petalinux project to the SD card's first partition.

Section Outputs:

  • Formatted SD card

Assemble the Eclypse System

(to be broken into a separate page and embedded here and in the GSG)

  1. Ensure the Eclypse Z7 host board is powered down.
  2. Insert the SD card into the Eclypse's SD card slot.
  3. Set the Eclypse's programming mode select jumper to “SD”.
  4. Install the selected Zmods into the appropriate Zmod ports of the Eclypse Z7 host board, as they were assigned in the Vivado project.
  5. Ensure that the board is plugged in to the computer via a microUSB cable.
  6. Ensure that the board is plugged in to the wall via the power supply.
  7. Power on the board. After it boots, a Linux command prompt is available on its UART interface (115200 baud by default).