SlideShare a Scribd company logo
www.flextiles.eu 
FlexTiles 
FlexTiles Simulating Environment based on Open Virtual Platforms (OVP) 
Stephan Werner (KIT)
2 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Outline 
Outline 
What is OVP? 
Why using OVP? 
Introduction to FlexTiles Platform 
Implementation in OVP 
WebGUI 
Integration in toolchain
3 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
What is OVP 
High-level simulation 
Trend towards higher levels of abstraction 
Early Software Evaluation 
Better Debugging options 
SystemC TLM 
SystemC exploring faster simulations 
Open Virtual Platforms (OVP) 
Completely new framework 
Yet designed for good interaction with SystemC 
Based on binary translation through „morphing“ functions 
Platform access API and GDB support 
Peripheral generation
4 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Why using OVP 
Why using OVP: 
Very complex software in the project 
OS 
Management services 
Resource Managers 
User applications in Virtual Platforms 
Hardware not fully integrated 
Making a cycle-accurate model is not possible 
Possible: modeling the expected behavior (register set, protocols, etc. 
Our focus: Rapid Prototyping of complex software 
Simulation should run as fast as possible 
Cycle accuracy is not needed 
 OVP is right choice for our application
5 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform 
Introduction to the FlexTiles Platform: Hardware 
GPPs 
MicroBlazes executing CompOSe 
One Monitoring Core 
DSP 
Icyflex 4 
eFPGA 
Accelerator Interface 
Virtualizing DSPs and accelerators 
Network Interfaces 
Abstraction for different NoCs 
NoC 
View in HW: DMAs 
View in SW: FIFOs
6 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform: Hardware 
Homogeneous GPP nodes 
Heterogeneous accelerators 
nodes 
GPP Node 
AI 
DSP 
Node 
NI 
GPP Node 
NI 
NoC 
NI 
NI 
NI 
AI 
AI 
NI 
Config. Ctrl. 
DDR Ctrl. 
NI 
GPP Node 
NI 
I/O 
NI 
Generic Interfaces 
eFPGA Domain (Reconfigurable HW acc.) 
Dedicated Accelerator 
Node 
Dedicated Accelerator 
Node
7 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform 
Introduction to the FlexTiles Platform: Software 
CompOSe 
Real-time OS 
Guaranteed real-time 
FIFOs 
Software view to NoC 
Cyclo-static dataflow 
Programming model 
ELF-bundles 
Contains information about the different configurations of the CSDF model 
Contains all executables 
Virtualization Layer 
Manages task migration and (re-)distribution 
Runs as priviledged service
8 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform: Software
9 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform: Software 
Programming Model: CSDF
10 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Introduction to the FlexTiles Platform: Software 
Programming Model: CSDF
11 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Outline 
GPPs running the OS 
The Monitoring Core 
DMA-support as used for FIFOs 
Accelerator Interface 
After implementation: 
WebGUI 
Integration in toolflow
12 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: GPP 
 MicroBlaze-model in OVP available 
Same (cross-compiled) code is executed 
Timer has to be adapted 
CompOSe executed 
Virtualization layer 
Test environment 
Can be debugged 
with GDB 
NI 
NoC 
GPP Core 
Instruction Cache 
Local Data Memory 
Peripherals 
IT / event 
iNoC 
Control 
Sync 
Instruction 
DMA 
Supervisor
13 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... //////////////////// // BUSES //////////////////// bus[index] = icmNewBus( busName, 32); //////////////////// // PROCESSORS //////////////////// cpu[index] = icmNewProcessor( cpuName, // CPU name "microblaze", // CPU type 0, // CPU cpuId 0, // CPU model flags 32, // address bits microblazeModel, // model file "modelAttrs", // morpher attributes SIM_ATTRS, // attributes cpu_attr, // user-defined attributes microblazeSemihost, // semi-hosting file "modelAttrs" // semi-hosting attributes ); icmConnectProcessorBusses(cpu[index], bus[index], bus[index]); …
14 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... //////////////////// // MEMORY //////////////////// localMem[index] = icmNewMemory(memName, 0x7, MICRO_SIZE); icmConnectMemoryToBus( bus[index], "mp1", localMem[index], MICRO_BASE); icmConnectMemoryToBus( bus[index], memportName, shared, SHARE_BASE); if(!icmLoadProcessorMemory(cpu[index], application[index], False, False, True)) return -1; //////////////////// // TIMERS AND INTS //////////////////// timer[index] = icmNewPSE( timerName, // name //timer_path, // model "../Peripherals/Timer/pse.pse", timer_attr, // attrlist 0, // semihost file 0 // semihost symbol ); icmConnectPSEBus( timer[index], bus[index], "plb", 0, TIMER_BASE, (TIMER_BASE+TIMER_SIZE-1)); …
15 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... irq[index] = icmNewNet(irqName); icmConnectProcessorNet( cpu[index], irq[index], "Interrupt", ICM_INPUT); icmConnectPSENet( timer[index], irq[index], "Interrupt", ICM_OUTPUT); //////////////////// // UART //////////////////// uartAttr[index] = icmNewAttrList(); icmAddStringAttr(uartAttr[index], "outfile", uartAttrName); uart[index] = icmNewPSE( uartName, // name uart_path, // model uartAttr[index], // attrlist NULL, // semihost file NULL // semihost symbol ); icmConnectPSEBus(uart[index], bus[index], "plb", 0, UART_BASE, (UART_BASE+UART_SIZE-1)); ... }
16 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... #ifdef DEBUG if(index==DEBUG_CORE){ cpu[index] = icmNewProcessor( cpuName, // CPU name "microblaze", // CPU type 0, // CPU cpuId 0, // CPU model flags 32, // address bits microblazeModel, // model file "modelAttrs", // morpher attributes ICM_ATTR_DEBUG, // attributes cpu_attr, // user-defined attributes microblazeSemihost, // semi-hosting file "modelAttrs" // semi-hosting attributes ); }else{ #endif ... }
17 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Monitoring Core 
Not every GPP can have an UART 
Hardware limited 
Monitoring Core gathers the output 
Only GPP with I/O 
Connected via FSL to other GPPs 
On OVP: UART 
On board: Ethernet to PC 
Same operations run in OVP and on board 
getfsl, putfsl 
CompOSeCompOSeMonitoringCoreCompOSeUART(OVP) (Board)
18 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Monitoring Core // FOR ALL CORES for (index=0; index<CORES; index++){ ... //connections to central monitoring core; limitation: 16FSL links //Monitor core is last core created, its link is defined by FSL_MONITOR, tile fsl connect to this id and putfsl sends to it //FSL_MONITOR needs to be set to the # of the last core, which equals CORES if(index!=FSL_MONITOR){ char monitorPort[64]; tfsl[index] = icmNewFifo(fsl_ToMonitor_Name, 64, 128); sprintf(monitorPort, "MFSL%d", FSL_MONITOR); icmConnectProcessorConn(cpu[index], tfsl[index], monitorPort, ICM_OUTPUT); ffsl[index] = icmNewFifo(fsl_FromMonitor_Name, 64, 128); sprintf(monitorPort, "SFSL%d", FSL_MONITOR); icmConnectProcessorConn(cpu[index], ffsl[index], monitorPort, ICM_INPUT); } if(CORES==index+1){ char tilePort[64]; for(i=0;i<CORES;i++){ if(i!=FSL_MONITOR){ sprintf(tilePort, "SFSL%d", i); icmConnectProcessorConn(cpu[FSL_MONITOR], tfsl[i], tilePort, ICM_INPUT); sprintf(tilePort, "MFSL%d", i); icmConnectProcessorConn(cpu[FSL_MONITOR], ffsl[i], tilePort, ICM_OUTPUT); } } } ... }
19 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: DMA-support
20 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: DMA-support 
Per DMA this is needed: 
One CMI: input memory 
One CMO: output memory 
Adress table: 
Local addresses 
Remote addresses 
GPP 
local memory 
CMI 
CMO 
DMA /////////////////////////////// // DMA Peripheral /////////////////////////////// // instantiate the peripheral icmAttrListP config = icmNewAttrList(); icmAddUns64Attr(config, "id", 1); icmPseP dma = icmNewPSE("dma", "../Peripherals/DMA/dma.pse", config, 0, 0); icmConnectPSEBus(dma, bus[2], "slave1", False, mb0_dma0_BASEADDR, mb0_dma0_BASEADDR+7); icmConnectPSEBus(dma, bus[2], "master1", True, 0x00000000, 0xFFFFFFFF); icmConnectPSEBus(dma, bus[0], "slave0", False, mb1_dma0_BASEADDR, mb1_dma0_BASEADDR+7); icmConnectPSEBus(dma, bus[0], "master0", True, 0x00000000, 0xFFFFFFFF);
21 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Accelerator Interface 
NI 
NoC 
Output Data DMA 
DMA data out req 
FIFO 
Input Data DMA 
DMA data in req 
FIFO 
data rd 
ctrl wr 
Accelerator 
Output Ch. 
Input Ch. 
data wr 
ctrl wr 
Input Config DMA 
DMA cfg req 
FIFO 
Config.Ch. 
config wr 
config wr 
config rd 
ctrl wr 
Work req 
FIFO 
ctrl wr 
ctrl rd 
control write / status read 
Synchronization / Notification 
read . write notification 
config wr 
send sync 
Control / Status Channel 
mem ctrl 
mem ctrl 
Debug Ch. 
write / read debug 
notification read
22 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Accelerator Interface EXPLANATION IN COMBINATION WITH LIVE- PRESENTATION OF CODE
23 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Implementation in OVP: Accelerator Interface 
AI implemented as peripheral in OVP 
Runs seperately from GPP simulation 
Algorithm of accelerator is executed on host natively 
Fast simulation 
Can be used as template for accelerators 
Insert algorithm in function start_calc()
24 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Usability 
WebGUI 
Generation of Hardware-Architecture
25 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Usability 
WebGUI 
Application-Binding
26 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Usability 
WebGUI 
Simulation in WebGUI
27 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Integration in toolchain 
Integration in toolchain
28 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Integration in toolchain 
Integration in toolchain
29 / 
The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 
Implementation in OVP 
Thank you for your attention Questions ?

More Related Content

PDF
FPL'2014 - FlexTiles Workshop - 3 - FlexTiles DSP Accelerators
PPTX
Conference on Adaptive Hardware and Systems (AHS'14) - The DSP for FlexTiles
PPTX
Production Time Profiling Out of the Box
PDF
RTOS implementation
PDF
One integrated platform for all activities,from engineering to production
PPTX
Performance and Power Profiling on Intel Android Devices
PPT
A deep dive into energy efficient multi core processor
PDF
Run-Time Reconfiguration for HyperTransport coupled FPGAs using ACCFS
FPL'2014 - FlexTiles Workshop - 3 - FlexTiles DSP Accelerators
Conference on Adaptive Hardware and Systems (AHS'14) - The DSP for FlexTiles
Production Time Profiling Out of the Box
RTOS implementation
One integrated platform for all activities,from engineering to production
Performance and Power Profiling on Intel Android Devices
A deep dive into energy efficient multi core processor
Run-Time Reconfiguration for HyperTransport coupled FPGAs using ACCFS

What's hot (13)

PPTX
RTOS CASE STUDY OF CODING FOR SENDING APPLIC...
PDF
Linaro Connect 2016 (BKK16) - Introduction to LISA
PDF
Project report of ustos
PPTX
Conditional branches
PDF
”Bare-Metal Container" presented at HPCC2016
PDF
CPU Scheduling - Part1
PDF
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
PDF
Ch5 cpu-scheduling
PDF
Exploiting Linux Control Groups for Effective Run-time Resource Management
PPTX
Jython for Embedded Software Validation
PDF
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
PDF
Yocto - 7 masters
RTOS CASE STUDY OF CODING FOR SENDING APPLIC...
Linaro Connect 2016 (BKK16) - Introduction to LISA
Project report of ustos
Conditional branches
”Bare-Metal Container" presented at HPCC2016
CPU Scheduling - Part1
Operating Systems Part II-Process Scheduling, Synchronisation & Deadlock
Ch5 cpu-scheduling
Exploiting Linux Control Groups for Effective Run-time Resource Management
Jython for Embedded Software Validation
PART-3 : Mastering RTOS FreeRTOS and STM32Fx with Debugging
Yocto - 7 masters
Ad

Viewers also liked (20)

PDF
FPL'2014 - FlexTiles Workshop - 7 - FlexTiles Emulation platform
PPTX
The FlexTiles Development Platform offers Dual FPGA for 3D SoC Prototyping
TXT
LE GUIDE CULINAIRE
PDF
FPL'2014 - FlexTiles Workshop - 1 - FlexTiles Overview
PPTX
DATE 2012
PDF
FPL'2014 - FlexTiles Workshop - 4 - FlexTiles Virtual Platform
ODP
Esquema relsemánticas1ºabac.
PPTX
Adaptive Hardware and Systems (AHS'14) - FlexTiles OVP Demo
PDF
Moishe House West Hartford Info Session presentation
PPTX
SAMOS 2012
PPTX
HiPEAC 2012
PPTX
Why do you need a LinkedIn Profile?
PPTX
Las leyes de Newton y los tipos de fuerza
PPTX
RAW 2012
PDF
My Year IN Review
PPTX
AWS Support
PPT
9849ed58 0205-4740-8040-8c6f33761cb3 computernetworkc1
PDF
Kalray MPPA® A New Era of Processing
PDF
Kalray TURBOCARD2 @ ISC'14
PPTX
Fall School on Programming Paradigms for Multi-core Embedded Systems 2012
FPL'2014 - FlexTiles Workshop - 7 - FlexTiles Emulation platform
The FlexTiles Development Platform offers Dual FPGA for 3D SoC Prototyping
LE GUIDE CULINAIRE
FPL'2014 - FlexTiles Workshop - 1 - FlexTiles Overview
DATE 2012
FPL'2014 - FlexTiles Workshop - 4 - FlexTiles Virtual Platform
Esquema relsemánticas1ºabac.
Adaptive Hardware and Systems (AHS'14) - FlexTiles OVP Demo
Moishe House West Hartford Info Session presentation
SAMOS 2012
HiPEAC 2012
Why do you need a LinkedIn Profile?
Las leyes de Newton y los tipos de fuerza
RAW 2012
My Year IN Review
AWS Support
9849ed58 0205-4740-8040-8c6f33761cb3 computernetworkc1
Kalray MPPA® A New Era of Processing
Kalray TURBOCARD2 @ ISC'14
Fall School on Programming Paradigms for Multi-core Embedded Systems 2012
Ad

Similar to FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform (20)

PPTX
Conference on Adaptive Hardware and Systems (AHS'14) - Why FlexTiles uses OVP...
PDF
FPL'2014 - FlexTiles Workshop - 8 - FlexTiles Demo
PPT
Conference on Adaptive Hardware and Systems (AHS'14) - FlexTiles FPGA Emulation
PDF
FPL'2014 - FlexTiles Workshop - 6 - FlexTiles Embedded FPGA Accelerators
PPTX
Conference on Adaptive Hardware and Systems (AHS'14) - What is FlexTiles?
PDF
Creating an Embedded System Lab
PPTX
Conference on Adaptive Hardware and Systems (AHS'14) - The FlexTiles Embedded...
PDF
Ov psim demo_slides_power_pc
DOC
Dipak_Desai_Resume
PPT
Reconfigurable 3D MultiCore Concept by Prof. Michael Hübner @ ARC 2013
PDF
PDF
HiPEAC 2019 Tutorial - Maestro RTOS
PDF
OpenMP tasking model: from the standard to the classroom
PDF
Introduction to National Supercomputer center in Tianjin TH-1A Supercomputer
PDF
HPC_June2011
PPTX
Mirabilis Design- NoC Webinar- 15th-Oct 2024
PPTX
Design, Verification and Emulation of an Island-Based Network Flow Processor
PPTX
Gpu archi
PPT
emips_overview_apr08
Conference on Adaptive Hardware and Systems (AHS'14) - Why FlexTiles uses OVP...
FPL'2014 - FlexTiles Workshop - 8 - FlexTiles Demo
Conference on Adaptive Hardware and Systems (AHS'14) - FlexTiles FPGA Emulation
FPL'2014 - FlexTiles Workshop - 6 - FlexTiles Embedded FPGA Accelerators
Conference on Adaptive Hardware and Systems (AHS'14) - What is FlexTiles?
Creating an Embedded System Lab
Conference on Adaptive Hardware and Systems (AHS'14) - The FlexTiles Embedded...
Ov psim demo_slides_power_pc
Dipak_Desai_Resume
Reconfigurable 3D MultiCore Concept by Prof. Michael Hübner @ ARC 2013
HiPEAC 2019 Tutorial - Maestro RTOS
OpenMP tasking model: from the standard to the classroom
Introduction to National Supercomputer center in Tianjin TH-1A Supercomputer
HPC_June2011
Mirabilis Design- NoC Webinar- 15th-Oct 2024
Design, Verification and Emulation of an Island-Based Network Flow Processor
Gpu archi
emips_overview_apr08

More from FlexTiles Team (9)

PPTX
FlexTiles Platform integrated in 19" Rack Enclosure
PDF
Conference on Adaptive Hardware and Systems (AHS'14) - The 3D FlexTiles Concept
PPT
Conference on Adaptive Hardware and Systems (AHS'14) - FlexTiles Introductions
PDF
FlexTiles Platform
PDF
FlexTiles Development Platform
PDF
FlexTiles Platform - Xilinx Virtex-6 DUO
PPTX
INA OCMC 2012
PPTX
DAC 2012
PPTX
ISVLSI 2012
FlexTiles Platform integrated in 19" Rack Enclosure
Conference on Adaptive Hardware and Systems (AHS'14) - The 3D FlexTiles Concept
Conference on Adaptive Hardware and Systems (AHS'14) - FlexTiles Introductions
FlexTiles Platform
FlexTiles Development Platform
FlexTiles Platform - Xilinx Virtex-6 DUO
INA OCMC 2012
DAC 2012
ISVLSI 2012

Recently uploaded (20)

PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPT
Project quality management in manufacturing
PPTX
Sustainable Sites - Green Building Construction
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Lecture Notes Electrical Wiring System Components
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PDF
composite construction of structures.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PPTX
web development for engineering and engineering
PPTX
Geodesy 1.pptx...............................................
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
Structs to JSON How Go Powers REST APIs.pdf
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
additive manufacturing of ss316l using mig welding
Foundation to blockchain - A guide to Blockchain Tech
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Project quality management in manufacturing
Sustainable Sites - Green Building Construction
Model Code of Practice - Construction Work - 21102022 .pdf
Lecture Notes Electrical Wiring System Components
Arduino robotics embedded978-1-4302-3184-4.pdf
composite construction of structures.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
web development for engineering and engineering
Geodesy 1.pptx...............................................
Lesson 3_Tessellation.pptx finite Mathematics
bas. eng. economics group 4 presentation 1.pptx
Internet of Things (IOT) - A guide to understanding
Structs to JSON How Go Powers REST APIs.pdf
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
additive manufacturing of ss316l using mig welding

FPL'2014 - FlexTiles Workshop - 5 - FlexTiles Simulation Platform

  • 1. www.flextiles.eu FlexTiles FlexTiles Simulating Environment based on Open Virtual Platforms (OVP) Stephan Werner (KIT)
  • 2. 2 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Outline Outline What is OVP? Why using OVP? Introduction to FlexTiles Platform Implementation in OVP WebGUI Integration in toolchain
  • 3. 3 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 What is OVP High-level simulation Trend towards higher levels of abstraction Early Software Evaluation Better Debugging options SystemC TLM SystemC exploring faster simulations Open Virtual Platforms (OVP) Completely new framework Yet designed for good interaction with SystemC Based on binary translation through „morphing“ functions Platform access API and GDB support Peripheral generation
  • 4. 4 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Why using OVP Why using OVP: Very complex software in the project OS Management services Resource Managers User applications in Virtual Platforms Hardware not fully integrated Making a cycle-accurate model is not possible Possible: modeling the expected behavior (register set, protocols, etc. Our focus: Rapid Prototyping of complex software Simulation should run as fast as possible Cycle accuracy is not needed  OVP is right choice for our application
  • 5. 5 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform Introduction to the FlexTiles Platform: Hardware GPPs MicroBlazes executing CompOSe One Monitoring Core DSP Icyflex 4 eFPGA Accelerator Interface Virtualizing DSPs and accelerators Network Interfaces Abstraction for different NoCs NoC View in HW: DMAs View in SW: FIFOs
  • 6. 6 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform: Hardware Homogeneous GPP nodes Heterogeneous accelerators nodes GPP Node AI DSP Node NI GPP Node NI NoC NI NI NI AI AI NI Config. Ctrl. DDR Ctrl. NI GPP Node NI I/O NI Generic Interfaces eFPGA Domain (Reconfigurable HW acc.) Dedicated Accelerator Node Dedicated Accelerator Node
  • 7. 7 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform Introduction to the FlexTiles Platform: Software CompOSe Real-time OS Guaranteed real-time FIFOs Software view to NoC Cyclo-static dataflow Programming model ELF-bundles Contains information about the different configurations of the CSDF model Contains all executables Virtualization Layer Manages task migration and (re-)distribution Runs as priviledged service
  • 8. 8 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform: Software
  • 9. 9 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform: Software Programming Model: CSDF
  • 10. 10 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Introduction to the FlexTiles Platform: Software Programming Model: CSDF
  • 11. 11 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Outline GPPs running the OS The Monitoring Core DMA-support as used for FIFOs Accelerator Interface After implementation: WebGUI Integration in toolflow
  • 12. 12 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: GPP  MicroBlaze-model in OVP available Same (cross-compiled) code is executed Timer has to be adapted CompOSe executed Virtualization layer Test environment Can be debugged with GDB NI NoC GPP Core Instruction Cache Local Data Memory Peripherals IT / event iNoC Control Sync Instruction DMA Supervisor
  • 13. 13 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... //////////////////// // BUSES //////////////////// bus[index] = icmNewBus( busName, 32); //////////////////// // PROCESSORS //////////////////// cpu[index] = icmNewProcessor( cpuName, // CPU name "microblaze", // CPU type 0, // CPU cpuId 0, // CPU model flags 32, // address bits microblazeModel, // model file "modelAttrs", // morpher attributes SIM_ATTRS, // attributes cpu_attr, // user-defined attributes microblazeSemihost, // semi-hosting file "modelAttrs" // semi-hosting attributes ); icmConnectProcessorBusses(cpu[index], bus[index], bus[index]); …
  • 14. 14 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... //////////////////// // MEMORY //////////////////// localMem[index] = icmNewMemory(memName, 0x7, MICRO_SIZE); icmConnectMemoryToBus( bus[index], "mp1", localMem[index], MICRO_BASE); icmConnectMemoryToBus( bus[index], memportName, shared, SHARE_BASE); if(!icmLoadProcessorMemory(cpu[index], application[index], False, False, True)) return -1; //////////////////// // TIMERS AND INTS //////////////////// timer[index] = icmNewPSE( timerName, // name //timer_path, // model "../Peripherals/Timer/pse.pse", timer_attr, // attrlist 0, // semihost file 0 // semihost symbol ); icmConnectPSEBus( timer[index], bus[index], "plb", 0, TIMER_BASE, (TIMER_BASE+TIMER_SIZE-1)); …
  • 15. 15 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... irq[index] = icmNewNet(irqName); icmConnectProcessorNet( cpu[index], irq[index], "Interrupt", ICM_INPUT); icmConnectPSENet( timer[index], irq[index], "Interrupt", ICM_OUTPUT); //////////////////// // UART //////////////////// uartAttr[index] = icmNewAttrList(); icmAddStringAttr(uartAttr[index], "outfile", uartAttrName); uart[index] = icmNewPSE( uartName, // name uart_path, // model uartAttr[index], // attrlist NULL, // semihost file NULL // semihost symbol ); icmConnectPSEBus(uart[index], bus[index], "plb", 0, UART_BASE, (UART_BASE+UART_SIZE-1)); ... }
  • 16. 16 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: GPP // FOR ALL CORES for (index=0; index<CORES; index++){ ... #ifdef DEBUG if(index==DEBUG_CORE){ cpu[index] = icmNewProcessor( cpuName, // CPU name "microblaze", // CPU type 0, // CPU cpuId 0, // CPU model flags 32, // address bits microblazeModel, // model file "modelAttrs", // morpher attributes ICM_ATTR_DEBUG, // attributes cpu_attr, // user-defined attributes microblazeSemihost, // semi-hosting file "modelAttrs" // semi-hosting attributes ); }else{ #endif ... }
  • 17. 17 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Monitoring Core Not every GPP can have an UART Hardware limited Monitoring Core gathers the output Only GPP with I/O Connected via FSL to other GPPs On OVP: UART On board: Ethernet to PC Same operations run in OVP and on board getfsl, putfsl CompOSeCompOSeMonitoringCoreCompOSeUART(OVP) (Board)
  • 18. 18 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Monitoring Core // FOR ALL CORES for (index=0; index<CORES; index++){ ... //connections to central monitoring core; limitation: 16FSL links //Monitor core is last core created, its link is defined by FSL_MONITOR, tile fsl connect to this id and putfsl sends to it //FSL_MONITOR needs to be set to the # of the last core, which equals CORES if(index!=FSL_MONITOR){ char monitorPort[64]; tfsl[index] = icmNewFifo(fsl_ToMonitor_Name, 64, 128); sprintf(monitorPort, "MFSL%d", FSL_MONITOR); icmConnectProcessorConn(cpu[index], tfsl[index], monitorPort, ICM_OUTPUT); ffsl[index] = icmNewFifo(fsl_FromMonitor_Name, 64, 128); sprintf(monitorPort, "SFSL%d", FSL_MONITOR); icmConnectProcessorConn(cpu[index], ffsl[index], monitorPort, ICM_INPUT); } if(CORES==index+1){ char tilePort[64]; for(i=0;i<CORES;i++){ if(i!=FSL_MONITOR){ sprintf(tilePort, "SFSL%d", i); icmConnectProcessorConn(cpu[FSL_MONITOR], tfsl[i], tilePort, ICM_INPUT); sprintf(tilePort, "MFSL%d", i); icmConnectProcessorConn(cpu[FSL_MONITOR], ffsl[i], tilePort, ICM_OUTPUT); } } } ... }
  • 19. 19 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: DMA-support
  • 20. 20 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: DMA-support Per DMA this is needed: One CMI: input memory One CMO: output memory Adress table: Local addresses Remote addresses GPP local memory CMI CMO DMA /////////////////////////////// // DMA Peripheral /////////////////////////////// // instantiate the peripheral icmAttrListP config = icmNewAttrList(); icmAddUns64Attr(config, "id", 1); icmPseP dma = icmNewPSE("dma", "../Peripherals/DMA/dma.pse", config, 0, 0); icmConnectPSEBus(dma, bus[2], "slave1", False, mb0_dma0_BASEADDR, mb0_dma0_BASEADDR+7); icmConnectPSEBus(dma, bus[2], "master1", True, 0x00000000, 0xFFFFFFFF); icmConnectPSEBus(dma, bus[0], "slave0", False, mb1_dma0_BASEADDR, mb1_dma0_BASEADDR+7); icmConnectPSEBus(dma, bus[0], "master0", True, 0x00000000, 0xFFFFFFFF);
  • 21. 21 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Accelerator Interface NI NoC Output Data DMA DMA data out req FIFO Input Data DMA DMA data in req FIFO data rd ctrl wr Accelerator Output Ch. Input Ch. data wr ctrl wr Input Config DMA DMA cfg req FIFO Config.Ch. config wr config wr config rd ctrl wr Work req FIFO ctrl wr ctrl rd control write / status read Synchronization / Notification read . write notification config wr send sync Control / Status Channel mem ctrl mem ctrl Debug Ch. write / read debug notification read
  • 22. 22 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Accelerator Interface EXPLANATION IN COMBINATION WITH LIVE- PRESENTATION OF CODE
  • 23. 23 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Implementation in OVP: Accelerator Interface AI implemented as peripheral in OVP Runs seperately from GPP simulation Algorithm of accelerator is executed on host natively Fast simulation Can be used as template for accelerators Insert algorithm in function start_calc()
  • 24. 24 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Usability WebGUI Generation of Hardware-Architecture
  • 25. 25 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Usability WebGUI Application-Binding
  • 26. 26 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Usability WebGUI Simulation in WebGUI
  • 27. 27 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Integration in toolchain Integration in toolchain
  • 28. 28 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Integration in toolchain Integration in toolchain
  • 29. 29 / The information contained in this document and any attachments are the property of FlexTiles consortium. You are hereby notified that any review, dissemination, distribution, copying or otherwise use of this document must be done in accordance with the CA of the project (TRT/DJ/624412785.2011). Template version 1.0 Implementation in OVP Thank you for your attention Questions ?