This talk introduces OpTiMSoC, a set of open source building blocks to create
your own System-on-Chip, which then runs on an FPGA or can be simulated on a
PC. The system is formed by tiles like processors or memories connected
by a Network-on-Chip, all written in Verilog and supported by a set of software
required to run it out of the box. The talk shows how you can use OpTiMSoC to
gain insight into a complex System-on-Chip, to evaluate the benefit of new
hardware accelerators, or to compare different multicore hardware architectures.
Have you ever wondered what exactly is happening inside a System-on-Chip, like
the one that's inside your cellphone, your washing machine, or your car? Have
you ever thought "wow, this algorithm could be implemented so much faster in
hardware"? Do you do research on embedded hardware architectures and need a
platform on which you can try out your ideas?
Then we might have something for you: OpTiMSoC. The "Open Tiled Manycore
System-on-Chip" is an open source collection of building blocks
to create your own System-on-Chip (SoC). It is based on the concept of
"tiles", elements like CPUs, memories, hardware accelerators or external
interfaces, which are connected by a Network-on-Chip. On top of those hardware
components, which are written mostly in Verilog and can be synthesized to run
on an FPGA as well as simulated on a PC, OpTiMSoC contains all necessary
software components to get a SoC up and running (a basic "operating
system", a C library port, debug support). Of course some running demo systems
are included, so you can get started easily by modifying existing designs.
OpTiMSoC was designed by researchers at the Technische Universität München
(TUM) and is used there to evaluate new hardware architectures. Over the last
two years it grew massiveley in scale and we think it's now useful to others as
well. By providing a signal-level insight into a complex SoC it serves as
teaching tool and as experimentation and research platform at the same time.
This talk gives an overview over OpTiMSoC, how we use it and how you
can make use of it to realize your own ideas.