34
Vodafone Chair Mobile Communications Systems, Prof. Dr.-Ing. Dr. h.c. G. Fettweis chair Seminar 1 WS 2017/2018 HW/SW Co-Design Lab TU Dresden, Slide 1

HW/SW Co-Design Lab - TU Dresden€¦ · HW/SW Co-Design Lab. TU Dresden, Slide 1. ... Remote Desktop Protocol (RDP) to a Windows computer. ... Attach TIE file to

Embed Size (px)

Citation preview

Vodafone Chair Mobile Communications Systems, Prof. Dr.-Ing. Dr. h.c. G. Fettweis chair

Seminar 1

WS 2017/2018

HW/SW Co-Design Lab

TU Dresden, Slide 1

chair

Schedule of the Lab

Introduction: Become acquainted with software and tool flows

Lab task:Internet: http://mns.ifn.et.tu-dresden.de/Teaching/Courses/Pages/P-HWSW-Codesign.aspx

Work:Autonomous work in groups of 2-3 peopleduring WS in our PC pools and preferably on your own PC due to limited seats in PC pool

Delivery:During WS: until 31st March 20181. Exported project workspaces including all sources (C, TIE)2. Project report: Word-Template on Website

Hand in via e-mail: [email protected]

Evaluation: Grade for 0/0/2 course, ET/IST: Lecture+Lab 7 credits, NES: 4 credits

TU Dresden HW/SW Co-Design Lab Slide 2

Do not forget to register for the lab via HISQIS before examination period starts!

chair

Tasks

1. FIR filter Develop instruction set extensions for Tensilica

processor (TIE) Use Fusion, SIMD, FLIX Compare direct form, transposed form This task need not to take part in the final report.

2. FFT/IFFT Develop instruction set extensions for Tensilica

processor (TIE) Use Fusion, SIMD, FLIX, knowledge from task 1 Compare DIT, DIF Main task for the report and valuation.

TU Dresden Slide 3HW/SW Co-Design Lab

chair

Seminars

Today, 10th Oct., 4.DS, BAR/213/H: Introduction to Lab First information on Tensilica Instruction Set Extension Demo on Xtensa Xplorer

Tuesday, 7th Nov., 4.DS, BAR/213/H: Accounts ready to pick-up Discussion/Solution to first task Introduction to second task

Further questions at any time during semester: Make appointment via e-mail If desired, discussion/consultation some weeks before the end of lab

TU Dresden Slide 4HW/SW Co-Design Lab

chair

Submission

TU Dresden HW/SW Co-Design Lab Slide 5

Grading: Archive with Tensilica workspace including optimized source code Project report in English (max. 3 pages w/o source code excerpts)

Hand in via E-mail until 31st of March 2018

Assessment criteria: 50% practical work, 50% report

(Anonymous) publication of the results via Internet: Therefor necessary: your compliance with your signature Signature is voluntary! There will be no disadvantage for you, if you disagree with the publication! If you wish, your name can also be included in the publication

chair

OVERVIEW

TU Dresden Slide 6HW/SW Co-Design Lab

chair

Benefits from this Lab

Practical application of HW/SW Co-Design

Get familiar with the Tensilica tool flow which is used by many companies today to create customized DSPs

Grade for 0/0/2 course

TU Dresden HW/SW Co-Design Lab Slide 7

chair

TU Dresden HW/SW Co-Design Lab Slide 8

Lab Approach

Hot Spot

Hot Spot

Accelerate(by creating new

instructions)

RISC

Enhanced RISC(ASIP)

Software

Compiler

Your Task!

chair

TU Dresden HW/SW Co-Design Lab Slide 9

HW architecture: Xtensa LX5

chair

Tensilica Tool Flow

TU Dresden Slide 10

Not part of the lab

HW/SW Co-Design Lab

chair

RISC Pipeline

TU Dresden Slide 12HW/SW Co-Design Lab

Instr_2

Instr_3

Instr_1

IF ID EX M WB

DMEM0 ALU

Acc. Unit1

Acc.Unit2M

UX

4x 32-bitintegers

DMEM1

128

128

128

128

Extended FunctionalAccelerator Units

MU

X

128-bit interface for SIMD

IMEM64

64 bit VLIW

IDLogic

64Reg

MU

X

AccUnit10

Reg

IFLogic

64 128

128

128

128

128

128

128

128

128

Reg

chair

Functional Unit: Example

TU Dresden Slide 13HW/SW Co-Design Lab

Store CtrlitOp_Sel

Code Word Identification

>>

Bitmap_1<127:0>

Bitmap_0<127:0> Code

Word Detect.

+Select.

BitOp M

UX

Vector Composition

Bitmap_2<127:0>

Store Ctrl

<127:0>

>>

>>

BitOp_Sel

Pipeline Register

<31:0>

Pipeline Register

wr_en<127:0>

<31:0>

Shift Register

<31:0><127:0>

<127:0>

Logical Operation

<31:0>

Pipeline Register

Example: Bitmap Logical Operation Instruction

chair

TU Dresden HW/SW Co-Design Lab Slide 14

Creating New Instructions

short a, b;int z1, z2;

z1 = a*b;z2 = z1 >> 16;

operation MUL_SRL_16 {out AR z, in AR a, in AR b} {} {

wire [31:0] m = TIEmul(a[15:0],b[15:0],1); assign z = {16'b0, m[31:16]};

}

#include <xtensa/tie/tie.h>short a, b;int z;

z = MUL_SRL_16(a, b);

Pure C code:

TIE code:

C code withnew instructions:

chair

TU Dresden HW/SW Co-Design Lab Slide 15

Creating Pipelined Instructions

operation MUL_SRL_16 {out AR z, in AR a, in AR b} {} {

wire [31:0] m = TIEmul(a[15:0],b[15:0],1); assign z = {16'b0, m[31:16]};

}

schedule ms {MUL_SRL_16} {

use a 1;use b 1;def z 2;

}

chair

TU Dresden HW/SW Co-Design Lab Slide 16

DLP: SIMD Extension

operation MUL_SRL_16 {out AR z, in AR a, in AR b} {} {

wire [31:0] m1 = TIEmul(a[31:16],b[31:16],1); wire [31:0] m0 = TIEmul(a[15:0], b[15:0], 1); assign z = {m1[31:16]), m0[31:16]};

}

chair

LOGIN PROCEDURE

TU Dresden Slide 17HW/SW Co-Design Lab

chair

Login (1)

Log in to remote computer with web browserhttps://entmrdwa.ifn.et.tu-dresden.de/RDWeb

TU Dresden HW/SW Co-Design Lab Slide 18

chair

Login (2)

You will be asked for your credentials. Enter ifn\username and your password from the account information. After you logged in the first time, you will be requested to change your password.

TU Dresden HW/SW Co-Design Lab Slide 19

chair

Login (3)

Once logged in, click on RDS-lab

TU Dresden HW/SW Co-Design Lab Slide 20

chair

Login (4)

An .rdp file will be downloaded which opens a connection via Remote Desktop Protocol (RDP) to a Windows computer. Your operating system has to provide an RDP client.

Click the Xplorer icon on the desktopto start Xtensa Xplorer.

Hint:Windows automatically provides the RDP clientFor Linux or Mac users, install an RDP client suitable for

your operating system

If you cannot log in anyway, work at PC pool in FAL 250.TU Dresden HW/SW Co-Design Lab Slide 21

chair

Xtensa Xplorer: C/C++ Perspective

TU Dresden Slide 22HW/SW Co-Design Lab

Build, run, profile and debug the complete C code

Select compile and optimization options:Right click “Build Properties”

Attach TIE file to coreLX5_hwswcd:Right click “Attach TIE…”

TIE area report

Compile only TIE code:Right click into TIE code window “Compile TIE”

chair

Xtensa Xplorer: TIE area report

TU Dresden Slide 23HW/SW Co-Design Lab

Operation area

States

Tables Functions

Total area estimation

chair

Xtensa Xplorer: Benchmark Perspective

TU Dresden Slide 24HW/SW Co-Design Lab

Total number of cycles per function

Total number of cycles per code line

Total number of cycles per instruction

Processor pipeline to identify hazards

chair

Xtensa Xplorer: Debug Perspective

TU Dresden Slide 25HW/SW Co-Design Lab

Watch C variables and TIE wires

Debug control

Watch memory contentSet breakpoints

chair

Delivery: Export Xtensa Workspace (1)

TU Dresden Slide 26

Export Xtensa workspace:Right click “Export”

Export as “XtensaXplorer Workspace”

HW/SW Co-Design Lab

chair

Delivery: Export Xtensa Workspace (2)

TU Dresden Slide 27

Browse and save the *.xws file to your local hard drive. Usually “C on your_PC_name”

HW/SW Co-Design Lab

chair

Delivery: Export Xtensa Workspace (3)

TU Dresden Slide 28

Select your desired project

HW/SW Co-Design Lab

chair

Delivery: Export Xtensa Workspace (4)

TU Dresden Slide 29

Do not export any Launches Configurations Tools Builds User-defined formats

but do export your TIE file(s)

HW/SW Co-Design Lab

chair

Delivery: Export Xtensa Workspace (5)

TU Dresden Slide 30

Summary Click on “Finish”

HW/SW Co-Design Lab

chair

TASK 1: FIR FILTER

TU Dresden Slide 31HW/SW Co-Design Lab

chair

Task 1: FIR Filter

FIR filter:

Hot-Spots Multiply/Accumulate Operation (MAC) Load input values/coefficients Store output values

Different approaches:1) Performing MAC on one input element with one coefficient2) Performing MAC on multiple elements in parallel SIMD3) Separated instructions for Load, MAC and Store

TU Dresden HW/SW Co-Design Lab Slide 32

void fir_C(short *in, int *out, int len) {int n, i;for (n = 0; n < len+7; n++) {

for (i = 0; i < 8; i++) out[n] += in[n+7-i]*coeff[i];

}}

chair

SUMMARY

TU Dresden Slide 33HW/SW Co-Design Lab

chair

Summary

Your next TODOs: Register on list coming around Confirm your account

Pick up your account information at next introduction seminar or come to FAL 236

Join next introduction session on 7th November

TU Dresden Slide 34HW/SW Co-Design Lab

chair

Contact & Rooms

Questions?

TU Dresden HW/SW Co-Design Lab Slide 36

Contact for Questions:Sebastian [email protected]: FAL 236Emil [email protected] FAL 231

RoomsAdmins: FAL 241PC-Pool: FAL 250

Website:http://www.vodafone-chair.com Teaching Courses„Praktikum HW/SW Co-Design”http://mns.ifn.et.tu-dresden.de/Teaching/Courses/Pages/P-HWSW-Codesign.aspx