+ All Categories
Home > Documents > The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that...

The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that...

Date post: 17-Mar-2020
Category:
Upload: others
View: 7 times
Download: 0 times
Share this document with a friend
26
The HW/SW Design Language SystemC Ossimitz Christoph October 25 th 2016
Transcript
Page 1: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

The HW/SW Design Language SystemC

Ossimitz ChristophOctober 25th 2016

Page 2: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Hardware description languages

● VHDL● Verilog● SystemVerilog● SystemC

Page 3: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC

“SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware architecture, and interfaces of your SoC (System On a Chip) and system-level designs.”

Page 4: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC

“SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware architecture, and interfaces of your SoC (System On a Chip) and system-level designs.”

Page 5: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC

“The SystemC Class Library provides the necessary constructs to model system architecture including hardware timing, concurrency, and reactive behavior that are missing in standard C++.”

Page 6: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

http://www.esa.int/Our_Activities/Space_Engineering_Technology/Microelectronics/System-Level_Modeling_in_SystemC

Page 7: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC & VHDL - Comparison

Page 8: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC & VHDL - Comparison

Page 9: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

C++ functions in SystemC

Page 10: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Transaction-Level Modeling (TLM)

● High-level modeling of a system● Faster simulation speed compared to RTL● SystemC TLM part of SystemC library● For HW/SW Codesign, processor TLM models

exist● Typical use cases:

– Early Software Development– Architecture Exploration

Page 11: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Transaction-Level Modeling (TLM)

● TLM abstracts communication between system components

● Components exchange data within transactions● No implementation details like protocols, bus

standards etc● Different ways to model timing in a TLM model

Page 12: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

SystemC-AMS

● Extension to allow modeling of analog and mixed-signal systems

● Continuous time and signals● Additional library loaded together with SystemC

library● No limitations on the usage of SystemC features● Different ways of modeling (block diagram,

electrical network etc.)

Page 13: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Simulation Tools

● OSCI SystemC● Modelsim/Questa (Mentor Graphics)● Incisive (Cadence)● VCS (Synopsys)● Active-HDL (Aldec)

Page 14: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Synthesis Tools

● Catapult (Mentor Graphics)● Stratus HLS (Cadence)● Vivado HLS (Xilinx)

Page 15: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

High-Level Synthesis

● Genertates RTL code from higher level specification (usually algorithmic-level)

● Source commonly written in (a subset of) SystemC, C/C++ or MATLAB

● HLS still requires some user effort to work properly

Page 16: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

High-Level Synthesis

● How many multipliers/dividers?

● How many cycles does the operation take?

● Pipelining?

Page 17: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

High-Level Synthesis

Page 18: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

High-Level Synthesis

Page 19: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

High-Level Synthesis

Page 20: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

HLS with C/C++

● Good tool support● Components modeled

as functions or classes● Easy for software

engineers to get into● No native notion of

timing, concurrency and all the other nice SystemC features

Page 22: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Who uses SystemC?

http://www.nascug.org/events/18th/modeling_wheel-speed_sensor_6-6-2012.pdf

Page 23: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Who uses SystemC?

http://www.nascug.org/events/18th/modeling_wheel-speed_sensor_6-6-2012.pdf

Page 24: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Who uses SystemC?

http://www.nascug.org/events/18th/modeling_wheel-speed_sensor_6-6-2012.pdf

Page 25: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

Thank you for your attention!

Page 26: The HW/SW Design Language SystemCSystemC “SystemC is a C++ class library and a methodology that you can use to effectively create a cycle-accurate model of software algorithms, hardware

References

● SystemC User's Guide, Version 2.0● Ghenassia, Frank (Ed.), Transaction Level Modeling with SystemC. Springer, 2015● OSCI TLM-2.0 Language Reference Manual● Standard SystemC AMS extensions 2.0 Language Reference Manual● SystemC Verification with Modelsim● Vivado Design Suite User Guide – High-Level Synthesis● Modeling of Automotive Wheel-Speed Sensor IC’s in SystemC


Recommended