Top Banner
Department of Electrical Engineering Electronics Computers Communications Technion Israel Institute of Technology High Speed Digital Systems Lab . DYNAMIC HARDWARE RECONFIGURATION CONTROLLED BY ANDROID OS ON ZYNQ Performed By: Itamar Niddam and Lior Motorin Instructor: Inna Rivkin Bi-Semesterial. Winter 2012/2013
22

Department of Electrical Engineering Electronics Computers Communications

Feb 23, 2016

Download

Documents

pentiuc pentiuc

High Speed Digital Systems Lab. Dynamic Hardware Reconfiguration Controlled by ANDROID OS On ZYNQ . Performed By: Itamar Niddam and Lior Motorin Instructor: Inna Rivkin Bi- Semesterial . Winter 2012/2013. Department of Electrical Engineering Electronics Computers - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Department of Electrical Engineering Electronics Computers Communications

Department of Electrical EngineeringElectronicsComputersCommunications

Technion Israel Institute of Technology

High Speed Digital Systems Lab.

DYNAMIC HARDWARE RECONFIGURATION

CONTROLLED BY ANDROID OS

ON ZYNQ

Performed By: Itamar Niddam and Lior MotorinInstructor: Inna Rivkin

Bi-Semesterial.Winter 2012/2013

Page 2: Department of Electrical Engineering Electronics Computers Communications

2

SOPC on ZYNQ running AndroidApplication performance acceleration

Programmable Logic

Peripherals ControllersCore 1 : A9 ARM

Core 0 : A9 ARM

Dynamic Hardware

AXI4 BUSSoftware applicationProcessing System

running Android

Hardwareaccelerator

Standard SOPC approach• The Hardware is constant• The user can only switch between application

Task specific - Software

Page 3: Department of Electrical Engineering Electronics Computers Communications

3

SOPC on ZYNQ running AndroidPerformance Acceleration of applications

Using Dynamic Partial Hardware Reconfiguration

• Partial dynamic hardware reconfiguration by OS (Android)

• Hardware system dynamically changed & adapted to a specific application.

• The hardware change is done at runtime by application & OS

Programmable Logic

Peripherals ControllersCore 1 : A9 ARM

Core 0 : A9 ARM

Dynamic Hardware

AXI4 BUSProcessing Systemrunning Android

Custom IPHardware

Acceleratior #1

Application

#1

Custom IPHardware

Acceleratior #2

Application

#2

New approach

The user controls the software and the hardware

Task specific - Software & Hardware

Page 4: Department of Electrical Engineering Electronics Computers Communications

4

Sobel Edge Detection Filter Example

for(i = 0; i < height, i++){for(j=0; j < width; j++){

x_dir = 0;y_dir = 0;if((i > 0 && (i < (height-1)) && (j > 0) && (j < (width-1))){for(rowOffset = -1; rowOffset <= 1; rowOffset++){

for(colOffset = -1; colOffset <=1; colOffset++){x_dir = x_dir + input_image[i+rowOffset][j+colOffset]* Gx[1+rowOffset][1+colOffset];y_dir = y_dir + input_image[i+rowOffset][j+colOffset]* Gy[1+rowOffset][1+colOffset];}

}edge_weight = ABS(x_dir) + ABS(y_dir);output_image[i][j] = edge_weight;

}

Page 6: Department of Electrical Engineering Electronics Computers Communications

6

Sobel Filter Software Implementation

Page 7: Department of Electrical Engineering Electronics Computers Communications

7

Sobel Filter

Programmable Logic

Peripherals ControllersCore 1 : A9 ARM

Core 0 : A9 ARM

Dynamic Hardware

AXI4 BUS

Sobel Filter Software & Hardware Specific Accelerator

Sobel Software

applicationProcessing Systemrunning Android

Sobel Hardware

module

Page 8: Department of Electrical Engineering Electronics Computers Communications

8

Sobel Filter Using Hardware Specific Accelerator

Page 9: Department of Electrical Engineering Electronics Computers Communications

9

INTEGRATING ANDROID WITH ZYNQ

Page 10: Department of Electrical Engineering Electronics Computers Communications

10

SYSTEM COMPONENTS

Processing System

Programmable Logic

LogicBricksHDMI

ControllerCustom IP

Core 1 : A9 ARM

Core 0 : A9 ARM

USB 0

AXI4

HDMI

FMC

UART

Page 11: Department of Electrical Engineering Electronics Computers Communications

11

Processing System

Programming Logic

Linux Kernel

Zynq ZC-702

Xylon GPU Driver

Xylon HardwareARM CPU0

• The Xilinx ZC-702 Board for Zynq-7000 have the ability to run Android OS on it.

• Android porting supplied by Iviea• FMC Touch screen controller supplied by

Xylon.

• Android relies on Linux kernel 2.6.• Hardware accelerator drivers are

implemented by loadable kernel modules.• Drivers interact with hardware by memory-

mapped IO.

• Android apps communicates with hardware by System services.

• System service represents an Hardware abstraction layer between the App and the kernel driver

Page 12: Department of Electrical Engineering Electronics Computers Communications

12

Processing System

Programming Logic

Linux Kernel

Zynq ZC-702

Xylon GPU Driver

Custom IP Xylon HardwareARM CPU0

Custom IP Module Driver

Partial Re-Configuration

Service

Partial Configuration

Driver

Page 13: Department of Electrical Engineering Electronics Computers Communications

13

Processing System

Programming Logic

Linux Kernel

Zynq ZC-702

Xylon GPU Driver

Custom IP Xylon HardwareARM CPU0

Custom IP Module Driver

Partial Re-Configuration

Service

Partial Configuration

Driver

App

Code Bitstream

Page 14: Department of Electrical Engineering Electronics Computers Communications

14Driver

module

HAL API

HAL module

The custom linux device driver..ko file located in /dev…/

System Server

• Supplies basic functions on the given hardware type, using the driver.

• Provided by the driver developer.• A shared library located in

/system/lib...

• The Hardware Abstraction Layer API.

• Supplies basic interface between the service and the custom new hardware.

• Essential for bridging the native and Java code.

CustomService

JAVA

CJNI

APP

System service API

Binder

• The custom service run within the System server.

• Enables the system server to reach the HAL.

• Bridging methods called by the user in JAVA to native code in order to use the HAL.

• Make our system service available through the SDK.

• Supplies a basic interface between the APP and the custom service that has been created.

• The end user application provided by the client.

HOW DOES THE APPLICATION ACCESS THE HARDWARE?

Page 15: Department of Electrical Engineering Electronics Computers Communications

15

THE DEVELOPMENT ENVIRONMENT

Xilinx Platform Studio

Xilinx SDK

VIVADO HLS

C/C++ for Android Kernel

Java Eclipse

Page 16: Department of Electrical Engineering Electronics Computers Communications

16

• XPS & SDK - Setup and configure the base system (which can run Android OS).

• Xilinx Vivado HLS - implement a custom IP module using a native programming language (C).

• XPS & SDK - Integrate the custom IP with the system.

Xilinx Platform Studio

Xilinx SDK

VIVADO HLS

Page 17: Department of Electrical Engineering Electronics Computers Communications

17

C/C++ for Android Kernel

• Developing the custom device driver in C.

• Developing the HAL (Hardware Abstraction Layer) which supplies a simple interface between the user App and the custom hardware.

• Customizing the Android Kernel in order to provide the partial reconfiguration OS support.

Page 18: Department of Electrical Engineering Electronics Computers Communications

18

Java Eclipse

• Developing a custom android application in java, which can use the HAL in order to get the services provided by the custom IP we implemented.

• Developing the system service which is a part of the HAL.

Page 19: Department of Electrical Engineering Electronics Computers Communications

SO.. WHAT HAVE WE DONE SO FAR? Setting up a development environment to modify and compile

Android OS & Linux kernel.

Configuring a Fully working Android OS system on ZYNQ with a touch

screen.

Custom IP development & Hardware integration using Xilinx tools.

Developing a simple Linux device driver (char device) which can be

accessed (Read / Write) by the Android on Zynq.

Solving Android privileges limitations by writing a service which can

communicate with our char device.

Enabling a smooth access to the custom hardware from any typical

Android JAVA code.

Page 20: Department of Electrical Engineering Electronics Computers Communications

20

THE SYSTEM

Page 21: Department of Electrical Engineering Electronics Computers Communications

• Learning the partial reconfiguration technology deeply in

order to get the ability to operate it by the OS.

• Developing the Partial reconfiguration driver and service in

order to support Dynamic Hardware.

• Writing more complicated Android drivers to support AXI-4

Streaming for video processing

• Writing efficient hardware with Vivado HLS and integrate it

with the system.

NEXT STEPS …

Page 22: Department of Electrical Engineering Electronics Computers Communications

22

Thank you!