Introduction to SystemC

Similar documents
EITF35: Introduction to Structured VLSI Design

Modular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office.

ESL design with the Agility Compiler for SystemC

Abstraction Layers for Hardware Design

Electronic System Level Design Introduction to SystemC

Elements of a SystemC Design Platform

Die virtuelle Plattform:

Intro to High Level Design with SystemC

FPGA briefing Part II FPGA development DMW: FPGA development DMW:

OUTLINE SYSTEM-ON-CHIP DESIGN. GETTING STARTED WITH VHDL September 3, 2018 GAJSKI S Y-CHART (1983) TOP-DOWN DESIGN (1)

The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc.

Unifying Design and Verification

OSCI Update. Guido Arnout OSCI Chief Strategy Officer CoWare Chairman & Founder

Appendix SystemC Product Briefs. All product claims contained within are provided by the respective supplying company.

A Design Methodology for the Exploitation of High Level Communication Synthesis

System Level Design Technologies and System Level Design Languages

HDL-Based Design. Eduardo Sanchez EPFL. Introduction

VHDL. VHDL History. Why VHDL? Introduction to Structured VLSI Design. Very High Speed Integrated Circuit (VHSIC) Hardware Description Language

In our case Dr. Johnson is setting the best practices

Post processing techniques to accelerate assertion development Ajay Sharma

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools

EEL 5722C Field-Programmable Gate Array Design

LG2: Lecture Group 2: SystemC. Topic: SystemC Overview. LG2.1 - SC SystemC Components. LG2.2 - SC Example (Counter)

Two HDLs used today VHDL. Why VHDL? Introduction to Structured VLSI Design

SystemC Synthesis Standard: Which Topics for Next Round? Frederic Doucet Qualcomm Atheros, Inc

SystemC. Short Introduction

Evaluation of an Object-Oriented Hardware Design Methodology for Automotive Applications

Algorithmic C synthesis (High-level synthesis)

An introduction to CoCentric

Introduction to Programmable. Logic

Is SystemVerilog Useful for FPGA Design & Verification?

Operating in a Mixed-language Environment Using HDL, C/C++, SystemC and SystemVerilog

SystemC Modelling of the Embedded Networks

SystemCrafter SC User Manual

HDL Interoperability & IP-based System Verification

1 ST SUMMER SCHOOL: VHDL BOOTCAMP PISA, JULY 2013

Using SystemC for Hardware Design Comparison of results with VHDL, Cossap and CoCentric

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

COMPREHENSIVE SYSTEMVERILOG-SYSTEMC-VHDL MIXED-LANGUAGE DESIGN METHODOLOGY

Assignment. Last time. Last time. ECE 4514 Digital Design II. Back to the big picture. Back to the big picture

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards Summer 2004 NCTU, Taiwan

Hardware in the Loop Functional Verification Methodology

SystemVerilog 3.1: It s What The DAVEs In Your Company Asked For

SystemC AssertionLibrary

Checkers for SystemC Designs

5. VHDL - Introduction - 5. VHDL - Design flow - 5. VHDL - Entities and Architectures (1) - 5. VHDL - Entities and Architectures (2) -

Hardware Description Languages & System Description Languages Properties

Agenda. How can we improve productivity? C++ Bit-accurate datatypes and modeling Using C++ for hardware design

Verilog. What is Verilog? VHDL vs. Verilog. Hardware description language: Two major languages. Many EDA tools support HDL-based design

THE DESIGN ENVIRONMENT FOR HETEROGENEOUS SYSTEMS

Chapter 2 Overview of SystemC

VHDL for Complex Designs

EE 4755 Digital Design Using Hardware Description Languages

Modular SystemVerilog

SystemC 1.3. Languages for Embedded Systems. Prof. Stephen A. Edwards. March Columbia University

Designing with SystemC: Multi-Paradigm Modeling and Simulation Performance Evaluation

FPGA Design Flow. - from HDL to physical implementation - Victor Andrei. Kirchhoff-Institut für Physik (KIP) Ruprecht-Karls-Universität Heidelberg

Hardware-Software Codesign. 6. System Simulation

Programmable Logic Devices HDL-Based Design Flows CMPE 415

The Application of SystemC to the Design and Implementation of a High Data Rate Satellite Transceiver

SystemC 2 Verilog

VHDL simulation and synthesis

81920**slide. 1Developing the Accelerator Using HLS

Reuse MATLAB Functions and Simulink Models in UVM Environments with Automatic SystemVerilog DPI Component Generation

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc.

USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB

Lab # 5. Subprograms. Introduction

Model-Based Design for effective HW/SW Co-Design Alexander Schreiber Senior Application Engineer MathWorks, Germany

A Deterministic Flow Combining Virtual Platforms, Emulation, and Hardware Prototypes

Sunburst Design - Advanced SystemVerilog for Design & Verification by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

System Level Design with IBM PowerPC Models

Implementing MATLAB Algorithms in FPGAs and ASICs By Alexander Schreiber Senior Application Engineer MathWorks

Lecture 9. VHDL, part IV. Hierarchical and parameterized design. Section 1 HIERARCHICAL DESIGN

INTRODUCTION TO VHDL. Lecture 5 & 6 Dr. Tayab Din Memon Assistant Professor Department of Electronic Engineering, MUET

Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

OUTLINE RTL DESIGN WITH ARX

Introduction to VHDL #3

Fundamental Design Concepts. Fundamental Concepts. Modeling Domains. Basic Definitions. New terminology and overloaded use of common words

Making the Most of your MATLAB Models to Improve Verification

EEL 5722C Field-Programmable Gate Array Design

Quartus Counter Example. Last updated 9/6/18

SystemC Users Forum - Japan. February 1, 2001

The Designer's Guide to VHDL Second Edition

FPGA TechNote: Creating FPGA Variants using VHDL

Hardware Design and Simulation for Verification

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification

Synthesizable Verilog

EE 4755 Digital Design Using Hardware Description Languages

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

EE382V: System-on-a-Chip (SoC) Design

Overview. Ram vs Register. Register File. Introduction to Structured VLSI Design. Recap Operator Sharing FSMD Counters.

KDEC

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

Advanced Digital Verification Nathan Nipper. Cadence NCSim Demonstration John Martiney. Harris Corporation, 10/16/2007. assuredcommunications

RTL Implementation. Introduction to Structured VLSI Design. Concurrent Statements and Processes. Combinational and Sequential Logic.

1 Design Process HOME CONTENTS INDEX. For further assistance, or call your local support center

Optimize DSP Designs and Code using Fixed-Point Designer

UVM for VHDL. Fast-track Verilog for VHDL Users. Cont.

Sunburst Design - Comprehensive SystemVerilog Design & Synthesis by Recognized Verilog & SystemVerilog Guru, Cliff Cummings of Sunburst Design, Inc.

Transcription:

Introduction to SystemC Damien Hubaux - CETIC Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 2

Why SystemC? Needs Increasing complexity, gate number, simulation time, verification effort, hw/sw co-design, etc. Context of new languages / tools: Verification languages (PSL, sugar, vera), High-level synthesis (Handel-C, Precision C, behavioural synthesis, etc). Common C/C++ modeling Several event-based C/C++-based simulators exist(ed): in-house, Cynlib, SpeC, Ocapi Common effort, common language -> SystemC Need for standardisation February 12, 2004 SystemC, an alternative for system modeling and synthesis? 3 Why SystemC? EDA developers Small market (compared to SW) Base a new language on an existing widely used language Rely on existing tools Focus on EDA specificity Common interest from several companies Contributions from existing internal technologies (Synopsys, CoWare, Adelante Technologies (was: Frontier Design)) Now extended to others February 12, 2004 SystemC, an alternative for system modeling and synthesis? 4

What is SystemC? OSCI: Open SystemC Initiative OSCI s Language Reference Manual (LRM) A Hardware Description language A C++ library that implements hardware concepts (clock, ports, concurrency, etc) The reference implementation of this language Reference!!! (one of the possible...) Open-source, freely available February 12, 2004 SystemC, an alternative for system modeling and synthesis? 5 What is SystemC? Associated libraries (from OSCI) Extension are possible Master-Slave library: abstract communications Verification library: offers to SystemC more verification features (assertion, introspection, etc.) Contributions of the OSCI working groups Language Transaction Level Modeling Verification Synthesis February 12, 2004 SystemC, an alternative for system modeling and synthesis? 6

What is SystemC? There are (have been) 2 (successive) "opinions" about SystemC RTL modeling using C++ What is the benefit compared to my favourite HDL? (Looks suspect to HW designers) System level modeling Between system (C++, Matlab, etc), software, and hardware designers (HDL) C/C++ is possible RTL is possible Everything between Mixing algorithmic and RTL Mixing HW and SW February 12, 2004 SystemC, an alternative for system modeling and synthesis? 7 Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 8

A Hardware Description Language You can write (RTL) SystemC without really knowing C++ Let's make a short comparison: VHDL / SystemC ENTITY Mouse IS PROCESS Phone (ring) SC_MODULE(Mouse) SC_METHOD(Phone); sensitive<<ring; February 12, 2004 SystemC, an alternative for system modeling and synthesis? 9 Declaration entity my_module is [ports] end my_name architecture my_arch of my_module is [components] [types] [signals] begin [processes (all)] [combinatorial] end SC_MODULE(my_module) { [ports] [signals] [modules] [processes (decl.)] SC_CTOR(my_module){ [processes (sensitivity)] } }; [processes (implementation)] February 12, 2004 SystemC, an alternative for system modeling and synthesis? 10

Entity / Ports entity my_name is port(... [ports] ); end my_name SC_MODULE(my_name) { [ports] }; port ( input: port1 std_logic; output: port2 std_logic; ); { sc_in<bool> port1; sc_out<bool> port2;... }; February 12, 2004 SystemC, an alternative for system modeling and synthesis? 11 Hierarchy architecture my_arch of my_module is component child port(...); end component; Begin child_inst : child port map( in => signal1;... );... #include "child.h" //decl SC_MODULE(my_module) { child* child_inst; SC_CTOR{ child_inst = new child; child_inst.in->(signal1);... } }; February 12, 2004 SystemC, an alternative for system modeling and synthesis? 12

Processes process my_process (clk, reset) if (reset)... elseif(clk'event and clk=='1')... endif void my_process(); SC_CTOR(){ SC_METHOD(my_process); sensitive_pos<<clk; sensitive<<reset; } void my_process() { if (reset==1)...; else...; end; } February 12, 2004 SystemC, an alternative for system modeling and synthesis? 13 Data types / Assignment bit std_logic std_logic_vector (X dowto 0) unsigned (X dowto 0) signal my_sig:...;... bool or sc_bit sc_logic sc_lv[x] sc_uint<x> sc_signal<...> my_sig;... Enumeration Integer Floating-point Physical Array my_var1 := my_var2; my_sig1 <= my_sig2; my_var1 = my_var2; my_sig1 = my_sig2; my_sig1.write(my_sig2); February 12, 2004 SystemC, an alternative for system modeling and synthesis? 14

Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 15 A C++ library Classes that implement hardware datatypes and concepts A simulation kernel: registering functions in order to allow "parallel" execution. Possibility to extend with own datatypes, concepts Support for own methodology Support for own libraries Support all C/C++ you want February 12, 2004 SystemC, an alternative for system modeling and synthesis? 16

A C++ libray Some C++ constructs are replaced by macro's The module properties and functions are in fact inherited. HDL: access through ports C++: member access SC_MODULE(my_module) { SC_CTOR(my_module){}; }; class my_name: public sc_module { public: my_module():sc_module() {...}; }; February 12, 2004 SystemC, an alternative for system modeling and synthesis? 17 SystemC internal: sc_object http://www.iro.umontreal.ca/~chareslu/systemc-2.0.1/ February 12, 2004 SystemC, an alternative for system modeling and synthesis? 18

SystemC internal: sc_signal<t> February 12, 2004 SystemC, an alternative for system modeling and synthesis? 19 Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 20

SystemC advantages Open-source reference implementation OSCI released not only the LRM, but an opensource reference implementation that everyone can freely download and use. Some (open-source) software development tools allow to create a HW simulation environment Simulation = compile a C++ program Large number of software development tools, from vendors and Open-source (but need more discussion: later) February 12, 2004 SystemC, an alternative for system modeling and synthesis? 21 SystemC advantages C++ library / Object-Oriented Can add own data types Can add own library in order to support own methodology Allows more than RTL. You can use all C++ you want (not for synthesis) SystemC capabilities can be extended. There are add-on libraries: Master-Slave: an abstract communication scheme Verification: add assertion based verification to SystemC Verification System testbench can be applied at each level of abstraction February 12, 2004 SystemC, an alternative for system modeling and synthesis? 22

SystemC advantages Standard Exchange models with "Hardware" behaviour hierarchy Data-types clock / timed etc Synthesisable subset It is possible to synthesise from SystemC code, but only from the RTL subset. It is possible to use a SystemC to VHDL/Verilog converter and to build a design flow above current RTL design flow February 12, 2004 SystemC, an alternative for system modeling and synthesis? 23 Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 24

SystemC drawbacks Synthesis Tool support, model availability, etc Some awkward constructs Data-type conversion, casts Compilation / runtime errors: C++ show-up! Obscure messages, core dump, etc. SystemC syntax checking would be better than C++ syntax checking Debugging Tools debug C++, not SystemC February 12, 2004 SystemC, an alternative for system modeling and synthesis? 25 SystemC drawbacks SystemC : C++ faster than VHDL? If you make high level simulation: Yes (methodology is different, comparison is not fair) Not guaranteed with RTL code Beware that the OSCI reference simulator is not optimised for speed -> vendor SystemC kernel? Some limitations No dynamic instantiation of modules (logic from a purely hardware point of view) February 12, 2004 SystemC, an alternative for system modeling and synthesis? 26

SystemC drawbacks Adoption? There are alternatives: Modified HDL: SystemVerilog Other C based languages: Handel-C Direct C synthesis Other high level languages: pure C++, Matlab Other verification languages Better acceptation in Europe SystemVerilog better accepted in USA Not a lot of success stories Did someone succeeded to do what I want to do with SystemC? High level modeling? Co-design? Synthesis? February 12, 2004 SystemC, an alternative for system modeling and synthesis? 27 Outline?? A language A C++ library February 12, 2004 SystemC, an alternative for system modeling and synthesis? 28

Perspectives Tools EDA use custom languages, custom tools SystemC allows to rely heavily on software tools (compare number of HDL users to software users ) Ex: Eclipse IDE A free OO IDE: common facilities built-in (user interface, file handling, editor, CVS, etc) Allows to add custom HDL support (parser, etc) HDL specific tools remain (synthesis, ad-hoc modeling, verification and methodology) February 12, 2004 SystemC, an alternative for system modeling and synthesis? 29 Perspectives CASE tools Versionning (also works with VHDL) Documentation: generate (HTML) documentation from code UML: standard graphical representation UML: coding rules, partial C++ code generation State machines Classes Sequence diagrams Structured classes (new in UML2) February 12, 2004 SystemC, an alternative for system modeling and synthesis? 30

Perspectives SystemC is C++ but codesign (HW-SW) is not trivial: you have to set-up your how methodology (but easier with a single language) Extended synthesisable subset Templates Inheritance Use / Adoption See Doulos survey... February 12, 2004 SystemC, an alternative for system modeling and synthesis? 31 Follow up Conclusion? first see other presentations... February 12, 2004 SystemC, an alternative for system modeling and synthesis? 32