Dual DVS Bring-Up Project 2_1. Dual DVS Concurrent Read

This project showcases the high-frame-rate streaming capabilities of dual DVS sensors, enabling synchronized data transmission over a PCIe interface for display on a host PC. Designed for seamless combined sensor operation, the system uses Memory-Mapped AXI to write outputs from both sensors into a circular buffer located in the on-board DRAM. The host PC then employs Memory-Mapped I/O to perform handshaking and retrieve synchronized frames from dual DVS over PCIe. This process ensures efficient, continuous reading of 960x720 frames from a fixed base address for each sensor, achieving a combined frame rate of 2000fps or higher.

Table of Contents

  1. Document History
  2. Introduction
  3. Download and Installation
  4. Project Build Steps
  5. Hardware Deployment Steps

1. Document History

Date Version Author Description of Revisions
December 4, 2024 1.0 Soosung Kim First Dual DVS Example Design of ZCU106

2. Introduction

[ZCU106 Evaluation Platform]
board_setup

The ZCU106 CIS_DVS streaming Example Design uses the following IPs along with the Zynq UltraScale+ Processing System for demonstrating Video Streaming using mipi_rx_subsystem block made by our company.

  1. Zynq UltraScale+ MPSoC Processing System (Xilinx IP)
  2. MIPI D-PHY (Xilinx IP)
  3. mipi_rx_subsystem (NRV IP)
  4. DMA/Bridge Subsystem for PCI Express (Xilinx IP)
  5. AXI GPIO (Xilinx IP)

Our Environment Setting is as follows :

Key Features

  • Event-Based Processing: Efficiently captures and processes DVS events.
  • Real-Time Synchronization: Ensures alignment between DVS frames.
  • High-Performance Pipeline: Uses hardware-accelerated data paths for low-latency processing.

3. Download and Installation

Prerequisites:

  1. Install Vivado 2021.2, Vitis 2021.2 from Vivado Design suite.
  2. Clone the embeddedsw repository to your host PC.
  3. On the host PC, follow the PCIe installation manual.

4. Project Build Steps

1) Download the example XSA file.

2) Launch Vitis 2021.2, and select a workspace.

3) Select File > New > Application Project.

4) Select Next > Create a new platform from hardware(XSA).

5) Browse and select the XSA file from 1.

6) Click Next, and type the application project name <project_name_system>.

7) Click Next > Next, select Empty Application(C), and Finish.

8) From the explorer, navigate to <project_name_system>/<project_name>/src. Copy and paste Firmware code inside the directory.

9) From the explorer, right-click <project_name_system>, and click Build Project.

5. Hardware Deployment Steps

1) While the ZCU106 is off, connect two DVS sensors to HPC0 and HPC1 each.

2) Connect the board's JTAG & UART ports with the host PC, and turn the board on.

3) On the host PC, open GTKterm and select Configuration > Port. Select /dev/ttyUSB0 or /dev/ttyUSB1, which should be the serial connection to the ZCU106.

4) From the Vitis Explorer, right-click <project_name_system>, and click Run As > Launch Hardware.

5) Check if GTKterm displays any message, such as Is the camera sensor connected? (Y/N). If it doesn't, change ports and repeat the previous steps.

6) Reboot the host PC. It must have XDMA drivers auto-running after each boot - refer to link

7) On the host PC, open GTKterm and select Configuration > Port. Select /dev/ttyUSB0 or /dev/ttyUSB1, which should be the serial connection to the ZCU106. Try pressing y in the window, and see if the serial window responds. If not, change ports and try again.

8) Verify the PCIE connection by following instructions (link).

9) Run host applications provided in the embeddedsw repository.

  • cd to embeddedsw/2.Dual_DVS/host, then run ./main -d

  • If following error occurs repeatedly :

/dev/xdma_dvs0_c2h_0, seek off 0xffffffffffffffff != 0x12000000. seek file: Bad file descriptor

Enter root mode using sudo -i, then try re-running ./main -d


Here are some reference materials you might find useful:

  • View our DVS-MIPI Register Setfile from Link.
  • View our DVS-FMC Board Pinmap from Link.
  • View AER Packet Format from Link.