A Common Software Development Environment for Many-core ... · Virtual Platforms built using...
Transcript of A Common Software Development Environment for Many-core ... · Virtual Platforms built using...
© 2018 Imperas Software Ltd. Page 1 May-18
A Common Software Development
Environment for Many-core RISC-V
based Hardware and Virtual Platforms
RISC-V 7th Workshop – Barcelona
Tuesday May 08, 2:00pm
Simon Davidmann – Imperas Software
Gajinder Panesar – UltraSoC
© 2018 Imperas Software Ltd. Page 2 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
© 2018 Imperas Software Ltd. Page 3 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
New Markets with new
Software Requirements
Schedule
Quality
Reliability
Security
Safety
Engineering productivity / automation
Predictability on software development schedules
Unknown / unmeasurable software delivery risk
Page 4 May-18 © 2018 Imperas Software Ltd.
© 2018 Imperas Software Ltd. Page 5 May-18
Chip designs get more complex inc.
Asymmetric Multi-Core…
Example… SMP CPU groups, AMP CPU, many peripherals and other processors…
n-Core SMP
Linux system
2-CPU Bare metal
peripheral
CPU
RTOS
CPU
Bare metal
peripheral
peripheral
peripheral
peripheral
peripheral
…
© 2018 Imperas Software Ltd. Page 6 May-18
Embedded Software Increasingly
Important & Engineering Intensive
Functionality of SW is defining embedded products
SW codebase size, complexity, quality requirements exploding
Engineering schedules & costs under pressure and harder to manage
Source: System Level Design Community 2013
Engineering Cost vs SoC Process Node
© 2018 Imperas Software Ltd. Page 7 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
© 2018 Imperas Software Ltd. Page 8 May-18
Traditionally use a hardware
breadboard… Using GDB(s)…
Well.. You use one GDB per processor with JTAG giving access…
© 2018 Imperas Software Ltd. Page 9 May-18
Traditionally use a hardware
breadboard… Using GDB(s)…
one GBD per CPU
little visibility: each GDB only sees the limited memory space of the attached CPU
non-deterministic (bugs move around…)
poor control (hard to set specific places to break)
scheduling and synchronized events difficult to reproduce…
what is going on in the peripherals? …
pretty un-manageable…
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
Debugger
GDB
DebuggerGDB
Debugger
GDB
DebuggerGDB
Debugger
GDB
DebuggerGDB
Debugger
GDB
Debugger
© 2018 Imperas Software Ltd. Page 10 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
© 2018 Imperas Software Ltd. Page 11 May-18
Simulating Hardware
(Virtual Platforms) with Imperas
UART
CLINT
PLIC
RAM
Imperas U54-MC Virtual Platform
Under 10 seconds to get to booted
Linux login prompt!
RISC-V 5 x core (U54-MC)
Virtual Platforms built using processor, peripheral and platform models using Open Virtual Platforms (OVP) APIs Models are open source
Simulated unmodified production binaries
Software does not know it is not on hardware
Runs very fast, 100-2,000MIPS
© 2018 Imperas Software Ltd. Page 12 May-18
Imperas MPD
full platform debugger Platform aware, multiprocessor / multicore aware
Driver-peripheral software-hardware co-debug
Event-based debug, e.g. using assertions
OS-aware debug, e.g. breakpoints on OS events
Select CPU or peripheral in target window and see
source, programmers registers, variables, … Complete visibility in platform…
© 2018 Imperas Software Ltd. Page 13 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
xtens
a
Advanced debug/monitoring
for the whole SoC
Page 14 May-18
Interconnect (AXI, ACE, ACE-lite, OCP, NoC)
GP
U
DRAM
controller
Custom
Logic
Bus
Mon
Trace
Receiver PAM PAM
Trace
Encoder PAM
Static
Instrumentatio
n DMA
Status
Monitor
Message Engine Message Engine Message Engine
Message Engine
AXI
Comm
JTAG
Comm
USB
Comm
Universal
Streaming
Comm
Portfolio of
Analytic
Modules
Family of
Communicators
Flexible &
Scalable
Message Fabric
System Block
UltraSoC IP
DSP
System
Memory
Buffer
© 2018 UltraSoC
© 2018 Imperas Software Ltd. Page 15 May-18
Agenda
Embedded Software Development Challenges
Traditional SW Debug Environment using
Hardware
Modern SW Debug using Imperas Simulation
Giving more visibility to SW Debug using
UltraSoC Hardware
Imperas/UltraSoC collaboration provides
common solution
© 2018 Imperas Software Ltd. Page 16 May-18
Collaboration
Common Software Development Environment
Imperas
MPD
Debugger
Eclipse GUI
Imperas
MPD
Debugger
Eclipse GUI
Simulation
Hardware with
UltraSoC Debug IP
A
G
E
N
T
Collaboration allows use
from concept to production
Page 17 May-18
Views to control and debug and observe throughout the design process
Visibility of
software
Bus
activity
Control
configuration
© 2018 Imperas Software Ltd.
© 2018 Imperas Software Ltd. Page 18 May-18
Summary
Imperas and UltraSoC collaborating
Developing common software development
environment
Same for hardware based and simulation based teams
Start with simulation on virtual platforms
Use with RTL as design progresses
Use prototypes when available
Use with silicon pre- and post- production