Other Demos 1 Gsensor  Communicates with the accelerometer chip, displays the X, Y, Z acceleration values  Graphically displays an ASCII “bubble” in.

Slides:



Advertisements
Similar presentations
Introduction to Eclipse. Start Eclipse Click and then click Eclipse from the menu: Or open a shell and type eclipse after the prompt.
Advertisements

© 2011 Altera CorporationPublic The Trends in Programmable Solutions SoC FPGAs for Embedded Applications and Hardware-Software Co-Design Misha Burich Senior.
DE2-115 Control Panel - Part I
2006 by Jim X. Chen: 1.1. Review –Graphics commands specify straight lines or other geometric primitives that are scan-converted.
Chapter 2: Graphics Programming
APARAPI Java™ platform’s ‘Write Once Run Anywhere’ ® now includes the GPU Gary Frost AMD PMTS Java Runtime Team.
Motor Control Lab Using Altera Nano FPGA
Aug. 24, 2007ELEC 5200/6200 Project1 Computer Design Project ELEC 5200/6200-Computer Architecture and Design Fall 2007 Vishwani D. Agrawal James J.Danaher.
An intro to programming concepts with Scratch Session 2 of 10 sessions I/O, variables, simple computing.
Altera’s Quartus II Installation, usage and tutorials Gopi Tummala Lab/Office Hours : Friday 2:00 PM to.
Technion – Israel Institute of Technology Department of Electrical Engineering High Speed Digital Systems Lab Project performed by: Naor Huri Idan Shmuel.
ECE Department: University of Massachusetts, Amherst Lab 1: Introduction to NIOS II Hardware Development.
CSCE 430/830 A Tutorial of Project Tools By Dongyuan Zhan Feb. 4, 2010.
©2005 GE Fanuc Automation, Inc. All Rights Reserved PACSystems Training Programmer’s Toolkit.
WormCraft Tianyi Zhang tz2210 Ning Li nl2447 Yuxuan Zhang yz2580 Ziwei Zhang zz2282.
Introduction to FPGA Design Illustrating the FPGA design process using Quartus II design software and the Cyclone II FPGA Starter Board. Physics 536 –
Shekoofeh Azizi Spring  CUDA is a parallel computing platform and programming model invented by NVIDIA  With CUDA, you can send C, C++ and Fortran.
Rensselaer Polytechnic Institute CSCI-4210 – Operating Systems David Goldschmidt, Ph.D.
Upcrc.illinois.edu OpenMP Lab Introduction. Compiling for OpenMP Open project Properties dialog box Select OpenMP Support from C/C++ -> Language.
Case Study: Accelerating Full Waveform Inversion via OpenCL on AMD GPUs Case Study: Accelerating Full Waveform Inversion via OpenCL™ on AMD GPUs ©2014.
1.  Project Goals.  Project System Overview.  System Architecture.  Data Flow.  System Inputs.  System Outputs.  Rates.  Real Time Performance.
Instructor Notes This is a brief lecture which goes into some more details on OpenCL memory objects Describes various flags that can be used to change.
Air Racer Design and Layout.
Introduction to FPGA AVI SINGH. Prerequisites Digital Circuit Design - Logic Gates, FlipFlops, Counters, Mux-Demux Familiarity with a procedural programming.
Open CL Hucai Huang. Introduction Today's computing environments are becoming more multifaceted, exploiting the capabilities of a range of multi-core.
Tutorial on using the DE2i-150 development board
In the next step you will enter some data records into the table. This can be done easily using the ‘Data Browser’. The data browser can be accessed via.
Instructor Notes This is a brief lecture which goes into some more details on OpenCL memory objects Describes various flags that can be used to change.
Array Cs212: DataStructures Lab 2. Array Group of contiguous memory locations Each memory location has same name Each memory location has same type a.
ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson,
PROCStar III Performance Charactarization Instructor : Ina Rivkin Performed by: Idan Steinberg Evgeni Riaboy Semestrial Project Winter 2010.
Template for Applet Design stage. General Instructions: The template shown is an example. Please add more slides wherever required. Include look of the.
NIOS II Ethernet Communication Final Presentation
GPU Architecture and Programming
CSCE 121: Introduction to Program Design and Concepts, Honors Dr. J. Michael Moore Spring 2015 Set 15: GUIs 1.
OpenCL Sathish Vadhiyar Sources: OpenCL quick overview from AMD OpenCL learning kit from AMD.
CS140: Intro to CS An Overview of Programming in C (part 3) by Erin Chambers.
OpenCL Programming James Perry EPCC The University of Edinburgh.
1 OGRE Programming Intermediate Tutorial: Volume Selection.
OpenCL Joseph Kider University of Pennsylvania CIS Fall 2011.
1 MODULAR DESIGN AND ABSTRACTION. 2 SPECIFYING THE DETAILS OF A PROBLEM INTO A RELATED SET OF SMALLER PROBLEMS.
4.3 Functions. Functions Last class we talked about the idea and organization of a function. Today we talk about how to program them.
Introduction to array: why use arrays ?. Motivational example Problem: Write a program that reads in and stores away 5 double numbers After reading in.
Implementation and Optimization of SIFT on a OpenCL GPU Final Project 5/5/2010 Guy-Richard Kayombya.
1 Getting Started with C++ Part 2 Linux. 2 Getting Started on Linux Now we will look at Linux. See how to copy files between Windows and Linux Compile.
USB host for web camera connection Characterization presentation Presenters: Alexander Shapiro Sergey Alexandrov Supervisor: Mike Sumszyk High Speed Digital.
Teaching Digital Logic courses with Altera Technology
Arrays. Topics to be Covered... Arrays ◦ Declaration ◦ Assigning values ◦ Array manipulation using loops Multi-dimensional arrays ◦ 2D arrays ◦ Declaration.
Hands-on Session 1 Boot Linux Connect to Linux via USB-to-UART and Putty Compile and run a simple program.
Embedded Systems Design with Qsys and Altera Monitor Program
Lattice Multiplication. Step 1 1)Draw a set of 2 by 2 boxes. 46 x 79 2) Cut the boxes in half diagonally. 3) Place the numbers on the outside of the boxes.
Using Linux with ARM Tutorial #3.
Tutorial for Modelsim 1 Installation Download the Modelsim Student Edition: Follow the.
Exercise 5: Developing an Embedded Application Write a software application to run on the system that we built in the previous exercise Compile the code.
Copyright © 2007 by Pearson Education 1 UNIT 6A COMBINATIONAL CIRCUIT DESIGN WITH VHDL by Gregory L. Moss Click hyperlink below to select: Tutorial for.
A Performance Analysis Framework for Optimizing OpenCL Applications on FPGAs Zeke Wang (NTU Singapore), Bingsheng He (NTU Singapore), Wei Zhang (HKUST)
Introduction to the FPGA and Labs
Lab 4 HW/SW Compression and Decompression of Captured Image
Lab 1: Using NIOS II processor for code execution on FPGA
EECE6017 Lab 7 HPS to FPGA – Gsensor to LED
FPGAs in AWS and First Use Cases, Kees Vissers
CUDA and OpenCL Kernels
Basic Graphics Drawing Shapes 1.
Parallel Computation Patterns (Scan)
LMC Little Man Computer What do you know about LMC?
ECE 448: Spring 2019 Lab 5 Julia Set Fractal.
Developing Java Applications with NetBeans
Developing Java Applications with NetBeans
ENSC351 Final Project Demo
EECE6017 Lab 6 HPS with GSensor and LED
Presentation transcript:

Other Demos 1 Gsensor  Communicates with the accelerometer chip, displays the X, Y, Z acceleration values  Graphically displays an ASCII “bubble” in the console Drawbox ./drawbox  Draws a solid box with top left corner (x0,y0), bottom right (x1,y1)  Draws to the pixel buffer (in FPGA) that outputs to the VGA port Animation_bouncy  Draws an animation of a box that bounces along the edges of the screen infinitely  Draws to the pixel buffer (in FPGA) that outputs to the VGA port

Running OpenCL on the DE1-SoC 2 Detailed OpenCL discussion in next session! OpenCL application runs on top of Linux Linux drivers facilitate host program to FPGA (kernel) communication (via the FPGA-HPS bridges) Linux distro includes “aocl” application for running OpenCL Overall flow:  Load OpenCL drivers using a provided script source init_opencl.sh  Program the FPGA with the kernel using the aocl utility aocl program /dev/acl0 vector_add.aocx  Execute the host program./vector_add

x86 OpenCL PCIe OpenCL Compiler Standard C Compiler Standard C Compiler SOF EXE OpenCL Host Program + Kernels OpenCL Host Program + Kernels Verilog __kernel void sum(__global float *a, __global float *b, __global float *y) { int gid = get_global_id(0); y[gid] = a[gid] + b[gid]; } __kernel void sum(__global float *a, __global float *b, __global float *y) { int gid = get_global_id(0); y[gid] = a[gid] + b[gid]; } main() { read_data( … ); manipulate( … ); clEnqueueWriteBuffer( … ); clEnqueueNDRange(…,sum,…); clEnqueueReadBuffer( … ); display_result( … ); } main() { read_data( … ); manipulate( … ); clEnqueueWriteBuffer( … ); clEnqueueNDRange(…,sum,…); clEnqueueReadBuffer( … ); display_result( … ); } Quartus Altera OpenCL Library Cyclone V SoC ARM HPS FPGA

Exercise 10: Running an OpenCL Kernel 4 Using AOCL to program and run the Vector Add example Given two input vectors (arrays) add corresponding elements at every index and store the sum in a third array Ex Inputs:  A[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }  B[8] = { 7, 6, 5, 4, 3, 2, 1, 0 } Ex Result:  Answer[8] = { 7, 7, 7, 7, 7, 7, 7, 7 }

Step 1: Connect to the DE1-SoC using Putty 5

Step 2: Load the OpenCL Drivers 6

Step 3: Switch to the Vector Add Directory 7

Step 4: Program the FPGA with the Vector Add Kernel 8

Step 5: Execute the Host Program 9

Step 6: See the Program Output 10

Hands-on Session 11 Please read the instructions at  “/exercise10/instructions.pdf”