Skip to content

Commit

Permalink
Merge pull request #83 from ryanvergel/gh-pages
Browse files Browse the repository at this point in the history
Updated KR260
  • Loading branch information
ryanvergel authored Mar 25, 2024
2 parents bb9b67b + 2495892 commit bd19ac4
Show file tree
Hide file tree
Showing 101 changed files with 1,004 additions and 754 deletions.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified kr260/build/doctrees/docs/10gige_vision_camera/docs/debug.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified kr260/build/doctrees/docs/10gige_vision_camera/docs/sensor.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified kr260/build/doctrees/environment.pickle
Binary file not shown.
2 changes: 1 addition & 1 deletion kr260/build/html/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 32412f1782d5000ec27fa8d959e7513b
config: 50798cf77b42fc783cc729fb2f6de7f3
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added kr260/build/html/_images/120fps_Mono.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added kr260/build/html/_images/60fps_Mono.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added kr260/build/html/_images/GUI-Window.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added kr260/build/html/_images/Sphinx_Discovery.JPG
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
##################################################
10GigE Vision Camera
10GigE Machine Vision Camera - Defect Detect
##################################################


Expand Down Expand Up @@ -72,6 +72,16 @@ Architecture
Hardware Architecture of the Accelerator <docs/hw_arch_accel_dd>


*******************************
Repository
*******************************

.. toctree::
:maxdepth: 1

Software Repository <https://github.com/Xilinx/mv-defect-detect>


******
Other
******
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,27 +14,29 @@

## Overview of Sensor to Image 10GigE Vision Pipeline IPs

The SLVS-EC Machine Vision application on Kria KR260 board demonstrates the use of a Xilinx Zynq® Ultrascale+™ device together with Framos SLVS-EC IP and Sensor to Image GigE Vision IP to build a machine vision application according to the GigE Vision standard.
The SLVS-EC Machine Vision application on AMD Kria&trade; KR260 board demonstrates the use of an AMD Zynq&trade; Ultrascale+™ device together with Framos SLVS-EC IP and Sensor to Image GigE Vision IP to build a machine vision application according to the GigE Vision standard.

The design is developed using Xilinx Vivado version 2022.1 with ubuntu running on ZynqMPSoC ARM processor subsystem.
The design is developed using an AMD Vivado&trade; version 2022.1 with ubuntu running on and AMD Zynq&trade; MPSoC&trade; ARM processor subsystem.

This is the block diagram of the SLVS-EC GigE Vision camera design:

![Block diagram of the SLVS-EC GigE Vision camera design](media/block_diagram.png)

The design is built as Block Design, instantiates all the modules required to form fully functional GigE Vision camera. The design consists of following modules:
The design is built as a Block Design that instantiates all the modules required to form fully functional GigE Vision camera. The design consists of following modules:

* CPU Processor system. This is a block instantiates and configures the Zynq ARM CPU and AXI peripherals for interfacing the CPU to an external code memory and the rest of the design. It configures also the AXI Master Memory Controller, which provides access to external memory both from CPU and framebuffer core side. With a high performance port, other AXI masters like the framebuffer have access to the memory.
* **CPU Processor system**: This is a block that instantiates and configures the Zynq ARM CPU and AXI peripherals for interfacing the CPU to an external code memory and the rest of the design. It also configures the AXI Master Memory Controller, which provides access to the external memory both from CPU and framebuffer core side. With a high-performance port, other AXI masters like the framebuffer have access to the memory.

* SLVS-EC video input. This module and respective submodules instantiate the Framos SLVS-EC IP to interface the Sony IMX547 sensor, provide a sensor configuration interface and decode the sensor SLVS-EC signals. Output is an AXI stream, which is the input for the GigE Vision streaming chain with the framebuffer as first block.
* **SLVS-EC video input**: This module and respective submodules instantiate the Framos SLVS-EC IP to interface the Sony IMX547 sensor and provide a sensor configuration interface and decode the sensor SLVS-EC signals. Output is an AXI stream, which is the input for the GigE Vision streaming chain with the framebuffer as the first block.

* GigE framebuffer controller. This module operates as a special video framebuffer which forms data packets for the GigE core. In this application, image data are transferred in the GenICam GenDC format. It also handles the packet resend feature (serving resend packets) of the GigE Vision streaming protocol. It uses a Xilinx AXI interconnect to interface the AXI Master memory controller, which is part of the processor system. Note that physical memory is shared between ARM and framebuffer.
* **GigE framebuffer controller**: This module operates as a special video framebuffer, which forms data packets for the GigE core. In this application, image data are transferred in the GenICam GenDC format. It also handles the packet resend feature (serving resend packets) of the GigE Vision streaming protocol. It uses an AMD AXI interconnect to interface the AXI Master memory controller, which is part of the processor system.

* XGigE core. This module handles all the low-level networking features to the rest of the system. It forms the GigE Vision stream channel and provides networking interface for the CPU system.
***Note***: Physical memory is shared between ARM and framebuffer.

* 10Gigabit Ethernet MAC. This module is used in 10G systems for controlling access to the medium.
* **XGigE core**: This module handles all the low-level networking features to the rest of the system. It forms the GigE Vision stream channel and provides networking interface for the CPU system.

* PHY interface core. This module converts XGMII interface of XGMAC core to high speed serial interface needed by physical interface. The component is part of the Vivado IP catalog.
* **10Gigabit Ethernet MAC**: This module is used in 10G systems for controlling access to the medium.

* **PHY interface core**: This module converts XGMII interface of XGMAC core to high speed serial interface needed by physical interface. The component is part of the Vivado IP catalog.

## Resource Utilization

Expand All @@ -61,23 +63,23 @@ A capture pipeline receives video frames from an external IMX547 Monochrome imag

### GigE Vision protocol pipeline

The output of the Framos SLVS-EC IP is an AXI4 stream, which is forwarded to a special framebuffer IP from S2I. This IP buffers the data in external memory and forwards them in packets corresponding to the Ethernet packets size to the GigE packet composer(XGigE). The framebuffer also prepares the data to be sent in GenICam GenDC format, what allows to send a data container with different part e.g raw image, preprocessed image, metadata.
The output of the Framos SLVS-EC IP is an AXI4 stream, which is forwarded to a special framebuffer IP from S2I. This IP buffers the data in external memory and forwards them in packets corresponding to the Ethernet packets size to the GigE packet composer(XGigE). The framebuffer also prepares the data to be sent in GenICam GenDC format, which allows to send a data container with different part, for example, raw image, preprocessed image, and metadata.

The XGigE IP forms the network card of the system with offloading the generation of GigE Vision streaming packets to hardware. It also receives network traffic and forwards that interrupt driven to the PS.

XGMAC and PCS/PMA IP implement the low-level medium access and bit encoding layer.

All IP implement an AXI4-Lite interface for configuration.

To get the 10GigE IP license please [contact Euresys](https://www.euresys.com/en/About-us/Contact-us).
To get the 10GigE IP license, [contact Euresys](https://www.euresys.com/en/About-us/Contact-us).

Euresys Release note [here](https://www.euresys.com/en/About-us/Blog-event/News/New-GigE-Vision-Viewer-for-AMD-Xilinx-Kria-KR260-R).

Download the packages from Euresys [here](https://www.euresys.com/en/Support/Download-area).

## 10GigE Vision pipeline SW Architecture

The image acquisition pipeline is completely offloaded to hardware, no software is involved in the streaming path. Software is only used for configuring the system, that means configuring the sensor and the GigE Vision IP. As Linux is running on the ARM system, a specific IMX547 driver is used, programming the sensor via PS I2C. A second driver (s2imac) integrates the XGigE core as ethX to the Linux system and binds standard Linux network services to that interface. A software application (gvrd) initializes the hardware and runs the GigE Vision control channel.
The image acquisition pipeline is completely offloaded to hardware; no software is involved in the streaming path. Software is only used for configuring the system, that means configuring the sensor and the GigE Vision IP. As Linux runs on the ARM system, a specific IMX547 driver is used, programming the sensor via PS I2C. A second driver (s2imac) integrates the XGigE core as ethX to the Linux system and binds standard Linux network services to that interface. A software application (gvrd) initializes the hardware and runs the GigE Vision control channel.

According to the GigE vision specification, the device registers are described in the xml file. The host application requests this xml file from the device and creates a register tree. The registers on the device can then be read and written via the control channel. Hardware register accesses are implemented through calls to the s2imac network driver. Furthermore, the device software is responsible for configuring the GenICam GenDC descriptor.

Expand All @@ -94,4 +96,4 @@ You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

-->
<p align="center"><sup>Copyright&copy; 2022 Xilinx</sup></p>
<p align="center"><sup>Copyright&copy; 2023 Advanced Micro Devices, Inc.</sup></p>
Loading

0 comments on commit bd19ac4

Please sign in to comment.