The TLM-2.0 Standard. John Aynsley, Doulos

Size: px
Start display at page:

Download "The TLM-2.0 Standard. John Aynsley, Doulos"

Transcription

1 The TLM-2.0 Standard John Aynsley, Doulos

2 The TLM-2.0 Standard CONTENTS Review of SystemC and TLM Review of TLM-2.0 Frequently Asked Questions

3 What is SystemC? System-level modeling language Network of communicating processes (c.f. HDL) Modeling hardware and software together New: SystemC-AMS (mixed signal) C++ class library Communicating processes Industry standard IEEE 1666 Owned and driven by OSCI (Open SystemC Initiative) Open source implementation Mature, robust, easy-to-integrate and free 3

4 Transaction Level Modeling RTL Behavioral Model Pin Accurate Function Call write(address,data) RTL Behavioral Model Simulate every event! ,000 X faster simulation! 4

5 Reasons for using TLM Accelerates product release schedule Firmware / software Software development Fast TLM Ready before RTL Architectural exploration RTL Hardware verification Test bench TLM = golden model 5

6 TLM is Communication-Oriented Concurrent simulation environment Transaction + timing Simple functional models, e.g. C programs Could be synthesized by an ESL synthesis tool? 6

7 TLM and Synthesis ESL Synthesis Compare ESL Synthesis Pin-level Compare 7

8 The TLM-2.0 Standard CONTENTS Review of SystemC and TLM Review of TLM-2.0 Frequently Asked Questions

9 OSCI TLM Timeline Apr 2005 Jun 2008 July 2009 TLM-1.0 put, get and transport Request-response model TLM-2.0 Pass-by-reference Unified interfaces Generic payload TLM LRM TLM-2.0 focusses on memory-mapped bus modeling 9

10 Typical Use Case: Virtual Platform Multiple software stacks Software Software CPU ROM RAM DMA DSP ROM RAM Bridge Interrupt Timer I/O Bridge Interrupt Timer A/D Multiple buses and bridges TLM-2.0 I/O Memory interface RAM DMA Custom peripheral D/A Digital and analog hardware IP blocks 10

11 Virtual Platform Characteristics Instruction Set Simulator or software stubs Transaction-Level Model RTL Available early Available early Much later Fast enough to run applications Fast enough to run applications Too slow to run applications Little or no hardware detail Register-accurate Register-accurate and pin-accurate No timing information Some timing information Cycle-accurate timing 11

12 Coding Styles and Mechanisms Use cases Software development Software performance Architectural analysis Hardware verification TLM-2 Coding styles (just guidelines) Loosely-timed Approximately-timed Mechanisms (definitive API for TLM-2.0 enabling interoperability) Blocking transport DMI Quantum Sockets Generic payload Phases Non-blocking transport 12

13 Interoperability Layer 1. Core interfaces and sockets Initiator The first function call Target 2. Generic payload 3. Base protocol Command Address Data Byte enables Streaming Response status Extensions BEGIN_REQ END_REQ BEGIN_RESP END_RESP Either write bytes or read bytes 13

14 Interoperability layer Utilities Initiator Target Coding Style Loosely- or Approximately-timed Core interfaces Sockets Generic payload Base protocol Utilities Convenience sockets Quantum keeper (LT) Payload event queues (AT) Instance-specific extensions (GP) Productivity Shortened learning curve Consistent coding style 14

15 The TLM-2.0 Standard CONTENTS Review of SystemC and TLM Review of TLM-2.0 Frequently Asked Questions

16 FAQ #1 "Do I want LT or AT or CA?" 16

17 Loosely-Timed Executing software The End! Initiator Initiator Initiator Resources: Bus Memory Peripherals Goal: execute software at full speed of host processor Target models do not consume any time, initiators run ahead Need the initiators to take turns Either have explicit synchronization points (can be untimed) or initiators must use a time quantum 17

18 Loosely-Timed Executing software Sync Initiator Initiator Initiator Resources: Bus Memory Peripherals Goal: execute software at full speed of host processor Target models do not consume any time, initiators run ahead Need the initiators to take turns Either have explicit synchronization points (can be untimed) or initiators must use a time quantum 18

19 Loosely-Timed Executing software Initiator Resources: Initiator Bus Memory Peripherals Initiator Quantum Goal: execute software at full speed of host processor Target models do not consume any time, initiators run ahead Need the initiators to take turns Either have explicit synchronization points (can be untimed) or initiators must use a time quantum 19

20 AT and CA No running ahead of simulation time; everything stays in sync AT CA BEGIN_REQ END_REQ BEGIN_RESP END_RESP Wake up at significant timing points Wake up every cycle 20

21 FAQ #2 "How do I model such-and-such a feature using TLM-2?" "What does it take to make a model TLM-2-compliant?" "How much of this 194-page LRM do I really need to understand?" "How can TLM-2 make models of different protocols interoperable?" 21

22 First Kind of Interoperability Use the full interoperability layer Use the generic payload + ignorable extensions Obey all the rules of the base protocol. The LRM is your rule book tlm_initiator_socket<32, tlm_base_protocol_types> my_socket; Initiator Interconnect Target Functional incompatibilities are still possible (e.g. writing to a ROM) 22

23 Second Kind of Interoperability Create a new protocol traits class Create user-defined generic payload extensions and phases as needed Make your own rules! tlm_initiator_socket<32, my_protocol> my_socket; Initiator Adapter Target One rule enforced: cannot bind sockets of differing protocol types Recommendation: keep close to the base protocol. The LRM is your guidebook The clever stuff in TLM-2.0 makes the adapter fast 23

24 FAQ #2 Q. "How do I model such-and-such a feature using TLM-2?" A. Either make do with the generic payload, or create extensions Q. "What does it take to make a model TLM-2-compliant?" A. Either obey the base protocol or make your own rules Q. "How much of this 194-page LRM do I really need to understand?" A. For the base protocol, everything except Utilities and TLM-1 Q. "How can TLM-2 make models of different protocols interoperable?" A. Either map onto the base protocol, or write adapters 24

25 FAQ #3 Q. "How do I model my algorithm using TLM-2.0" A1. Not applicable. TLM is communication-centric A2. Use the LT/AT coding styles as guidelines A3. Use the utilities at least as examples 25

26 FAQ #4 Q. "How do I use extensions? It's not really explained anywhere." 26

27 Create an Extension Class struct my_extension: tlm::tlm_extension<my_extension> { my_extension() { m_attribute1 =...; } virtual tlm_extension_base* clone() const { my_extension* ext = new my_extension; ext->m_attribute1 = this->m_attribute1; ext->m_attribute2 = this->m_attribute2; return ext; } Standard code to clone/copy virtual void copy_from( tlm_extension_base const& ext ) { m_attribute1 = static_cast<my_extension const &>(ext).m_attribute1; m_attribute2 = static_cast<my_extension const &>(ext).m_attribute2; } int m_attribute1; string m_attribute2; }; Any number of attributes 27

28 Setting and Getting Extensions Initiator tlm_generic_payload* trans;... my_extension* ext = new my_extension; ext->m_attribute1 = 1; ext->m_attribute2 = "foo"; trans->set_auto_extension( ext ); socket->b_transport( *trans, delay ); Target virtual void b_transport(... ) { my_extension* ext; trans.get_extension(ext); if (ext) {... = ext->m_attribute1;... = ext->m_attribute2;... } Have the initiator add the extension Target can test for an extension 28

29 FAQ #5 Q. "Okay, but you've not shown me how to create ignorable extensions. How do I do that?" A. Being ignorable is not an explicit property of an extension, but about how you use it 29

30 Ignorable Extensions An ignorable extension is able to be ignored Timestamp when the transaction was created An initiator ID or transaction ID Extensions that might not be ignorable An extended address (initiator might rely on extended address space) A priority (initiator might rely on high priority transaction executing first) A flag to lock the interconnect (initiator might rely on have exclusive access) 30

31 FAQ #6 Q. "How do I dispose of the extension object? Can I re-use it?" A. Use a memory manager 31

32 Using a Memory Manager Initiator Interconnect Target Allocate transaction object # refs 0123 acquire() Call nb_transport_fw acquire() nb_transport_fw acquire() nb_transport_fw Return nb_transport_fw Return nb_transport_bw Call nb_transport_bw Call release() Return nb_transport_bw release() Return nb_transport_bw release() free() 32

33 Memory Management Methods class tlm_generic_payload { public: tlm_generic_payload () ; tlm_generic_payload(tlm_mm_interface* mm) ; virtual ~tlm_generic_payload (); void set_mm(tlm_mm_interface* mm); bool has_mm(); void acquire(); void release(); int get_ref_count(); }; void deep_copy_from( const tlm_generic_payload& ) ; void update_original_from( const tlm_generic_payload& ); void free_all_extensions(); void reset();... Frees all auto-extensions 33

34 A User-Defined Memory Manager #include "tlm.h" class gp_mm: public tlm::tlm_mm_interface { typedef tlm::tlm_generic_payload gp_t; public: gp_mm(); virtual ~gp_mm(); gp_t* allocate() {... ptr = new gp_t( this );... } void free(gp_t* trans) { trans->reset();... }... Pass mm as constructor arg Called when ref count == 0 Free auto-extensions 34

35 Typical Coding Idiom my_module(sc_module_name _n, gp_mm* mm) : m_mm(mm) {...} Pass mm as constructor arg tlm_generic_payload* trans; trans = m_mm.allocate(); trans->acquire(); Get transaction object from mm Increment reference count my_extension* ext = new my_extension; ext->m_attribute1 = 1; ext->m_attribute2 = "foo"; trans->set_auto_extension( ext ); Allocate extension on heap Set for auto-deletion socket->b_transport( *trans, delay ); Not just for nb_transport trans->release(); Decrement reference count 35

36 FAQ #7 Q. "How do I connect multiple components together?" Q. "How do I model a bus with multiple masters/slaves?" Q. "How many sockets do I need for two-way communication?" Q. "How many transactions do I use?" 36

37 Example Topology Control Memory manager Initiator Data Target Target Initiator Multi-sockets Target Initiator Bus Interconnect Target Thread Target Initiator Controller Thread Target 37

38 Bridges tlm_*_socket< 32, protocol_a > tlm_*_socket< 32, protocol_b > Initiator Bridge Target deep_copy_from() update_original_from() Generic Payload Generic Payload Generic Payload Generic Payload Extension Extension Extension Extension Extension Extension Extension Extension Extension Extension Extension Extension Could pass the same transaction if their lifetimes allow 38

39 Copying the Data Array Deep-copy the data array in the bridge new_trans->set_data_ptr( &data_buffer ); new_trans->deep_copy_from ( original_trans ); new_trans->b_transport(...); original_trans->update_original_from( new_trans ); Copies back data array on read Shallow-copy the data array in the bridge new_trans->set_data_ptr( 0 ); new_trans->deep_copy_from ( original_trans ); new_trans->set_data_ptr( original_trans->get_data_ptr() ); new_trans->b_transport(...); original_trans->update_original_from( new_trans ); Does not touch data array 39

40 FAQ #7 Q. "How do I connect multiple components together?" A. By having one or more components act as a hub Q. "How do I model a bus with multiple masters/slaves?" A. The "hub" can do arbitration and routing. Use multi-sockets for convenience Q. "How many sockets do I need for two-way communication?" A. Each initiator needs an initiator socket, each target a target socket Q. "How many transactions do I use?" A. As few as possible 40

41 FAQ #8 Q. "How do I model something like a SPI port?" A. If you can abstract the functionality, use the base protocol Q. "How do I model something like a SPI port with accurate timing?" A. You can model precise timing with the AT coding style, but why not use RTL? Q. "How do I model something like AMBA, PCI, or USB?" A. Buy a model (or get one through a university/research program) 41

42 For More FREE Information IEEE 1666 standards.ieee.org/getieee/1666/index.html OSCI SystemC 2.2 and TLM and examples and videos Tutorial introduction to TLM-2.0 and Free TLM-2.0 Protocol Checker 42

43

Introduction to Accellera TLM 2.0

Introduction to Accellera TLM 2.0 Introduction to Accellera TLM 2.0 Aravinda Thimmapuram 10 th Sept 2015 Accellera Systems Initiative 1 Agenda Introduction to TLM and TLM 2.0 standard Case study of modelling a bus protocol using TLM 2.0

More information

Getting Started with TLM-2.0

Getting Started with TLM-2.0 Getting Started with TLM-2.0 A Series of Tutorials based on a set of Simple, Complete Examples John Aynsley, Doulos, June 2008 Tutorial 1 Sockets, Generic Payload, Blocking Transport Introduction The TLM-2.0

More information

QEMU and SystemC. Màrius Màrius Montón

QEMU and SystemC. Màrius Màrius Montón QEMU and SystemC March March 2011 2011 QUF'11 QUF'11 Grenoble Grenoble Màrius Màrius Montón Outline Introduction Objectives Virtual Platforms and SystemC Checkpointing for SystemC Conclusions 2 Introduction

More information

Introduction to TLM Mechanics Presented by David C Black

Introduction to TLM Mechanics Presented by David C Black Introduction to TLM Mechanics Presented by David C Black Topics Simulation Use Cases Basic Concepts Generic Payload Information API - The Transaction Call Sockets Connectivity Loosely Timed Fast Approximately

More information

ARM s IP and OSCI TLM 2.0

ARM s IP and OSCI TLM 2.0 ARM s IP and OSCI TLM 2.0 Deploying Implementations of IP at the Programmer s View abstraction level via RealView System Generator ESL Marketing and Engineering System Design Division ARM Q108 1 Contents

More information

A Beginner's Guide to Using SystemC TLM-2.0 IP with UVM

A Beginner's Guide to Using SystemC TLM-2.0 IP with UVM A Beginner's Guide to Using SystemC TLM-2.0 IP with UVM Dr David Long and John Aynsley Doulos Ringwood, UK Doug Smith Doulos Austin, Tx, USA www.doulos.com ABSTRACT UVM 1.x includes support for the communication

More information

Checking for TLM-2.0 Compliance - Why Bother? Dr. Andrea Kroll VP Marketing and Business Development JEDA Technologies, Inc.

Checking for TLM-2.0 Compliance - Why Bother? Dr. Andrea Kroll VP Marketing and Business Development JEDA Technologies, Inc. Checking for TLM-2.0 Compliance - Why Bother? Dr. Andrea Kroll VP Marketing and Business Development JEDA Technologies, Inc. Agenda Model Integration Challenges TLM2.0 Rules Beyond Transport Calls OSCI

More information

The SystemC TLM 2.0 Draft 1 Kit

The SystemC TLM 2.0 Draft 1 Kit European SystemC Users Group Nice 2007 The SystemC TLM 2.0 Draft 1 Kit John Aynsley Technical Director, Doulos The SystemC TLM 2.0 Draft 1 Kit CONTENTS Introduction Generic Payloads Timing Annotation Layered

More information

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

OSCI Update. Guido Arnout OSCI Chief Strategy Officer CoWare Chairman & Founder OSCI Update Guido Arnout OSCI Chief Strategy Officer CoWare Chairman & Founder Chief Strategy Officer charter Ensure that OSCI strategy is created, coordinated, communicated & executed Identify OSCI technical

More information

System Level Design with IBM PowerPC Models

System Level Design with IBM PowerPC Models September 2005 System Level Design with IBM PowerPC Models A view of system level design SLE-m3 The System-Level Challenges Verification escapes cost design success There is a 45% chance of committing

More information

Introduction to the SystemC TLM Standard Stuart Swan Cadence Design Systems, Inc June 2005

Introduction to the SystemC TLM Standard Stuart Swan Cadence Design Systems, Inc June 2005 Introduction to the SystemC TLM Standard Stuart Swan Cadence Design Systems, Inc June 2005 1 Copyright 2005 CADENCE DESIGN SYSTEMS, INC. SystemC Transaction Level Modeling What is TLM? Communication uses

More information

STARC Compliant Models

STARC Compliant Models STARC Compliant Models Software for Semiconductors Copyright 2009 CircuitSutra Technologies Pvt Ltd All Rights Reserved Page 1/21 Document History: Date Name Comment Version 2 nd March, 2009 CircuitSutra

More information

Getting Started with TLM-2.0

Getting Started with TLM-2.0 Getting Started with TLM-2.0 A Series of Tutorials based on a set of Simple, Complete Examples John Aynsley, Doulos, June 2008 Tutorial 2 Response Status, DMI, and Debug Transport Introduction This second

More information

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

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc. Transaction Level Modeling with SystemC Thorsten Grötker Engineering Manager Synopsys, Inc. Outline Abstraction Levels SystemC Communication Mechanism Transaction Level Modeling of the AMBA AHB/APB Protocol

More information

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer)

ESE Back End 2.0. D. Gajski, S. Abdi. (with contributions from H. Cho, D. Shin, A. Gerstlauer) ESE Back End 2.0 D. Gajski, S. Abdi (with contributions from H. Cho, D. Shin, A. Gerstlauer) Center for Embedded Computer Systems University of California, Irvine http://www.cecs.uci.edu 1 Technology advantages

More information

Parallel Simulation Accelerates Embedded Software Development, Debug and Test

Parallel Simulation Accelerates Embedded Software Development, Debug and Test Parallel Simulation Accelerates Embedded Software Development, Debug and Test Larry Lapides Imperas Software Ltd. larryl@imperas.com Page 1 Modern SoCs Have Many Concurrent Processing Elements SMP cores

More information

OSCI TLM-2.0 LANGUAGE REFERENCE MANUAL

OSCI TLM-2.0 LANGUAGE REFERENCE MANUAL July 2009 OSCI TLM-2.0 LANGUAGE REFERENCE MANUAL Software version: TLM 2.0.1 Document version: JA32 All rights reserved Contributors The TLM-2.0 standard was created under the leadership of the following

More information

EE382V: Embedded System Design and Modeling

EE382V: Embedded System Design and Modeling EE382V: Embedded System Design and Communication & Refinement Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu : Outline Communication layers Application

More information

EE382N: Embedded System Design and Modeling

EE382N: Embedded System Design and Modeling EE382N: Embedded System Design and Modeling Lecture 9 Communication Modeling & Refinement Andreas Gerstlauer Electrical and Computer Engineering University of Texas at Austin gerstl@ece.utexas.edu Lecture

More information

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

Modular SystemC. In-house Training Options. For further information contact your local Doulos Sales Office. Modular SystemC is a set of modules related to SystemC TM (IEEE 1666-2005) aimed at fulfilling teambased training requirements for engineers from a range of technical backgrounds, i.e. hardware and software

More information

ESL design with the Agility Compiler for SystemC

ESL design with the Agility Compiler for SystemC ESL design with the Agility Compiler for SystemC SystemC behavioral design & synthesis Steve Chappell & Chris Sullivan Celoxica ESL design portfolio Complete ESL design environment Streaming Video Processing

More information

Input/Output Problems. External Devices. Input/Output Module. I/O Steps. I/O Module Function Computer Architecture

Input/Output Problems. External Devices. Input/Output Module. I/O Steps. I/O Module Function Computer Architecture 168 420 Computer Architecture Chapter 6 Input/Output Input/Output Problems Wide variety of peripherals Delivering different amounts of data At different speeds In different formats All slower than CPU

More information

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition

Philip Andrew Simpson. FPGA Design. Best Practices for Team-based Reuse. Second Edition FPGA Design Philip Andrew Simpson FPGA Design Best Practices for Team-based Reuse Second Edition Philip Andrew Simpson San Jose, CA, USA ISBN 978-3-319-17923-0 DOI 10.1007/978-3-319-17924-7 ISBN 978-3-319-17924-7

More information

CSE 451: Operating Systems Winter I/O System. Gary Kimura

CSE 451: Operating Systems Winter I/O System. Gary Kimura CSE 451: Operating Systems Winter 2012 I/O System Gary Kimura What s Ahead Principles of I/O Hardware Structuring of I/O Software Layers of an I/O System Operation of an I/O System 2 Hardware Environment

More information

Introduction. CS3026 Operating Systems Lecture 01

Introduction. CS3026 Operating Systems Lecture 01 Introduction CS3026 Operating Systems Lecture 01 One or more CPUs Device controllers (I/O modules) Memory Bus Operating system? Computer System What is an Operating System An Operating System is a program

More information

The CoreConnect Bus Architecture

The CoreConnect Bus Architecture The CoreConnect Bus Architecture Recent advances in silicon densities now allow for the integration of numerous functions onto a single silicon chip. With this increased density, peripherals formerly attached

More information

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology)

Contents 1 Introduction 2 Functional Verification: Challenges and Solutions 3 SystemVerilog Paradigm 4 UVM (Universal Verification Methodology) 1 Introduction............................................... 1 1.1 Functional Design Verification: Current State of Affair......... 2 1.2 Where Are the Bugs?.................................... 3 2 Functional

More information

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

EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools Wen-Yen Lin, Ph.D. Department of Electrical Engineering Chang Gung University Email: wylin@mail.cgu.edu.tw March 2013 Agenda Introduction

More information

Efficient use of Virtual Prototypes in HW/SW Development and Verification

Efficient use of Virtual Prototypes in HW/SW Development and Verification Efficient use of Virtual Prototypes in HW/SW Development and Verification Rocco Jonack, MINRES Technologies GmbH Eyck Jentzsch, MINRES Technologies GmbH Accellera Systems Initiative 1 Virtual prototype

More information

Three Steps to Unified SoC Design and Verification by Shabtay Matalon and Mark Peryer, Mentor Graphics

Three Steps to Unified SoC Design and Verification by Shabtay Matalon and Mark Peryer, Mentor Graphics Three Steps to Unified SoC Design and Verification by Shabtay Matalon and Mark Peryer, Mentor Graphics Developing a SoC is a risky business in terms of getting it right considering the technical complexity

More information

FPQ9 - MPC8360E implementation

FPQ9 - MPC8360E implementation Training MPC8360E implementation: This course covers PowerQUICC II Pro MPC8360E - PowerPC processors: NXP Power CPUs FPQ9 - MPC8360E implementation This course covers PowerQUICC II Pro MPC8360E Objectives

More information

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015

Cadence SystemC Design and Verification. NMI FPGA Network Meeting Jan 21, 2015 Cadence SystemC Design and Verification NMI FPGA Network Meeting Jan 21, 2015 The High Level Synthesis Opportunity Raising Abstraction Improves Design & Verification Optimizes Power, Area and Timing for

More information

Generic Model of I/O Module Interface to CPU and Memory Interface to one or more peripherals

Generic Model of I/O Module Interface to CPU and Memory Interface to one or more peripherals William Stallings Computer Organization and Architecture 7 th Edition Chapter 7 Input/Output Input/Output Problems Wide variety of peripherals Delivering different amounts of data At different speeds In

More information

Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0

Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0 Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0 Alain CLOUARD STMicroelectronics Central R&D (Grenoble, France) STMicroelectronics TLM is useful SoC HW/SW design flow Standard

More information

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC

Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Joseph Yiu, ARM Ian Johnson, ARM January 2013 Abstract: While the majority of Cortex -M processor-based microcontrollers are

More information

Towards a SystemC Transaction Level Modeling Standard. Stuart Swan Senior Architect Cadence Design Systems, Inc. June 2004

Towards a SystemC Transaction Level Modeling Standard. Stuart Swan Senior Architect Cadence Design Systems, Inc. June 2004 Towards a SystemC Transaction Level Modeling Standard Stuart Swan Senior Architect Cadence Design Systems, Inc. June 2004 SystemC Transaction Level Modeling What is TLM? Communication uses function calls

More information

AMBA Programmer s View Extensions to OSCI TLM v2.0. Nizar ROMDHANE Technical Marketing Manager RealView Tools, DSTG April, 2007

AMBA Programmer s View Extensions to OSCI TLM v2.0. Nizar ROMDHANE Technical Marketing Manager RealView Tools, DSTG April, 2007 AMBA Programmer s View Extensions to OSCI TLM v2.0 Nizar ROMDHANE Technical Marketing Manager RealView Tools, DSTG April, 2007 1 Presentation Structure ARM Activities within OSCI AMBA Protocols: AXI focus

More information

Last Time. Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads

Last Time. Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads Last Time Cost of nearly full resources RAM is limited Think carefully about whether you use a heap Look carefully for stack overflow Especially when you have multiple threads Embedded C Extensions for

More information

Cosimulation of ITRON-Based Embedded Software with SystemC

Cosimulation of ITRON-Based Embedded Software with SystemC Cosimulation of ITRON-Based Embedded Software with SystemC Shin-ichiro Chikada, Shinya Honda, Hiroyuki Tomiyama, Hiroaki Takada Graduate School of Information Science, Nagoya University Information Technology

More information

High Level Synthesis Re-usable model of AMBA AXI4 communication protocol for HLS based design flow developed using SystemC Synthesis subset

High Level Synthesis Re-usable model of AMBA AXI4 communication protocol for HLS based design flow developed using SystemC Synthesis subset High Level Synthesis Re-usable model of AMBA 4 communication protocol for HLS based design flow developed using Synthesis subset NASCUG, San Francisco, USA (June, 2014) Presenter Dinesh Malhotra, CircuitSutra

More information

Module 11: I/O Systems

Module 11: I/O Systems Module 11: I/O Systems Reading: Chapter 13 Objectives Explore the structure of the operating system s I/O subsystem. Discuss the principles of I/O hardware and its complexity. Provide details on the performance

More information

Virtual Prototyping in SpaceFibre System-on-Chip Design

Virtual Prototyping in SpaceFibre System-on-Chip Design Virtual Prototyping in SpaceFibre System-on-Chip Design System-level design Elena Suvorova, Nadezhda Matveeva, Ilya Korobkov, Alexey Shamshin, Yuriy Sheynin Saint-Petersburg State University of Aerospace

More information

The Use Of Virtual Platforms In MP-SoC Design. Eshel Haritan, VP Engineering CoWare Inc. MPSoC 2006

The Use Of Virtual Platforms In MP-SoC Design. Eshel Haritan, VP Engineering CoWare Inc. MPSoC 2006 The Use Of Virtual Platforms In MP-SoC Design Eshel Haritan, VP Engineering CoWare Inc. MPSoC 2006 1 MPSoC Is MP SoC design happening? Why? Consumer Electronics Complexity Cost of ASIC Increased SW Content

More information

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10

System-level simulation (HW/SW co-simulation) Outline. EE290A: Design of Embedded System ASV/LL 9/10 System-level simulation (/SW co-simulation) Outline Problem statement Simulation and embedded system design functional simulation performance simulation POLIS implementation partitioning example implementation

More information

Accessing I/O Devices Interface to CPU and Memory Interface to one or more peripherals Generic Model of IO Module Interface for an IO Device: CPU checks I/O module device status I/O module returns status

More information

Look Ma, No Clocks! Techniques to Improve Model Performance by. ESL Practice Leader

Look Ma, No Clocks! Techniques to Improve Model Performance by. ESL Practice Leader Look Ma, No Clocks! Techniques to Improve Model Performance by David dc Black of XtremeEDA te e Copoato Corporation ESL Practice Leader v2 Agenda Motivation Solutions Example 1 - Timers without Clocks

More information

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture

Last class: Today: Course administration OS definition, some history. Background on Computer Architecture 1 Last class: Course administration OS definition, some history Today: Background on Computer Architecture 2 Canonical System Hardware CPU: Processor to perform computations Memory: Programs and data I/O

More information

Using Formalized Programming Sequences for Higher Quality Virtual Prototypes

Using Formalized Programming Sequences for Higher Quality Virtual Prototypes Using Formalized Programming Sequences for Higher Quality Virtual Prototypes Sean Boylan Duolog Technologies Outline Motivation - VSP Quality Programming Sequences Applying Sequences Tools for Sequences

More information

Resource management. Real-Time Systems. Resource management. Resource management

Resource management. Real-Time Systems. Resource management. Resource management Real-Time Systems Specification Implementation Verification Mutual exclusion is a general problem that exists at several levels in a real-time system. Shared resources internal to the the run-time system:

More information

Generating TLM Bus Models from Formal Protocol Specification. Tom Michiels CoWare

Generating TLM Bus Models from Formal Protocol Specification. Tom Michiels CoWare Generating TLM Bus Models from Formal Protocol Specification Tom Michiels CoWare Agenda Cycle accurate TLM Requirements Difficulties in creating TLM bus models Generating from formal specification Example

More information

Concurrency, Thread. Dongkun Shin, SKKU

Concurrency, Thread. Dongkun Shin, SKKU Concurrency, Thread 1 Thread Classic view a single point of execution within a program a single PC where instructions are being fetched from and executed), Multi-threaded program Has more than one point

More information

Energy Estimation Based on Hierarchical Bus Models for Power-Aware Smart Cards

Energy Estimation Based on Hierarchical Bus Models for Power-Aware Smart Cards Energy Estimation Based on Hierarchical Bus Models for Power-Aware Smart Cards U. Neffe, K. Rothbart, Ch. Steger, R. Weiss Graz University of Technology Inffeldgasse 16/1 8010 Graz, AUSTRIA {neffe, rothbart,

More information

Input / Output. Kevin Webb Swarthmore College April 12, 2018

Input / Output. Kevin Webb Swarthmore College April 12, 2018 Input / Output Kevin Webb Swarthmore College April 12, 2018 xkcd #927 Fortunately, the charging one has been solved now that we've all standardized on mini-usb. Or is it micro-usb? Today s Goals Characterize

More information

SystemC Community. ISCUG May 9, 2008 Girish Nanappa, OSCI

SystemC Community. ISCUG May 9, 2008 Girish Nanappa, OSCI SystemC Community Update ISCUG May 9, 2008 Girish Nanappa, OSCI OSCI Membership Corporate Members Associate Members 36 member companies, including 8 new since DATE 2007: CISC, CoFluent, ITRI, UPMC, STARC,

More information

Organisasi Sistem Komputer

Organisasi Sistem Komputer LOGO Organisasi Sistem Komputer OSK 5 Input Output 1 1 PT. Elektronika FT UNY Input/Output Problems Wide variety of peripherals Delivering different amounts of data At different speeds In different formats

More information

Concurrency: Mutual Exclusion (Locks)

Concurrency: Mutual Exclusion (Locks) Concurrency: Mutual Exclusion (Locks) Questions Answered in this Lecture: What are locks and how do we implement them? How do we use hardware primitives (atomics) to support efficient locks? How do we

More information

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

The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc. The SystemC Verification Standard (SCV) Stuart Swan Senior Architect Cadence Design Systems, Inc. stuart@cadence.com The Verification Problem System Level Verification is typically done last, is typically

More information

Test and Verification Solutions. ARM Based SOC Design and Verification

Test and Verification Solutions. ARM Based SOC Design and Verification Test and Verification Solutions ARM Based SOC Design and Verification 7 July 2008 1 7 July 2008 14 March 2 Agenda System Verification Challenges ARM SoC DV Methodology ARM SoC Test bench Construction Conclusion

More information

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition

Chapter 13: I/O Systems. Operating System Concepts 9 th Edition Chapter 13: I/O Systems Silberschatz, Galvin and Gagne 2013 Chapter 13: I/O Systems Overview I/O Hardware Application I/O Interface Kernel I/O Subsystem Transforming I/O Requests to Hardware Operations

More information

V8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs

V8-uRISC 8-bit RISC Microprocessor AllianceCORE Facts Core Specifics VAutomation, Inc. Supported Devices/Resources Remaining I/O CLBs V8-uRISC 8-bit RISC Microprocessor February 8, 1998 Product Specification VAutomation, Inc. 20 Trafalgar Square Nashua, NH 03063 Phone: +1 603-882-2282 Fax: +1 603-882-1587 E-mail: sales@vautomation.com

More information

Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI

Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI Easy Steps Towards Virtual Prototyping using the SystemVerilog DPI Dave Rich Mentor Graphics, Inc. Fremont, CA dave_rich@mentor.com Abstract The hardware and software worlds have been drifting apart ever

More information

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a)

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) DS799 June 22, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.01.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded

More information

DISTRIBUTED EMBEDDED ARCHITECTURES

DISTRIBUTED EMBEDDED ARCHITECTURES DISTRIBUTED EMBEDDED ARCHITECTURES A distributed embedded system can be organized in many different ways, but its basic units are the Processing Elements (PE) and the network as illustrated in Figure.

More information

CPSC 213. Introduction to Computer Systems. I/O Devices, Interrupts and DMA. Unit 2a Oct 27, 29, 31. Winter Session 2014, Term 1

CPSC 213. Introduction to Computer Systems. I/O Devices, Interrupts and DMA. Unit 2a Oct 27, 29, 31. Winter Session 2014, Term 1 CPSC 213 Introduction to Computer Systems Winter Session 2014, Term 1 Unit 2a Oct 27, 29, 31 I/O Devices, Interrupts and DMA Overview Reading in Text 8.1, 8.2.1, 8.5.1-8.5.3 Learning Goals Explain what

More information

RM3 - Cortex-M4 / Cortex-M4F implementation

RM3 - Cortex-M4 / Cortex-M4F implementation Formation Cortex-M4 / Cortex-M4F implementation: This course covers both Cortex-M4 and Cortex-M4F (with FPU) ARM core - Processeurs ARM: ARM Cores RM3 - Cortex-M4 / Cortex-M4F implementation This course

More information

Parallel Programming Languages COMP360

Parallel Programming Languages COMP360 Parallel Programming Languages COMP360 The way the processor industry is going, is to add more and more cores, but nobody knows how to program those things. I mean, two, yeah; four, not really; eight,

More information

Welcome to this presentation of the STM32 direct memory access controller (DMA). It covers the main features of this module, which is widely used to

Welcome to this presentation of the STM32 direct memory access controller (DMA). It covers the main features of this module, which is widely used to Welcome to this presentation of the STM32 direct memory access controller (DMA). It covers the main features of this module, which is widely used to handle the STM32 peripheral data transfers. 1 The Direct

More information

Introduction to ARM LPC2148 Microcontroller

Introduction to ARM LPC2148 Microcontroller Introduction to ARM LPC2148 Microcontroller Dr.R.Sundaramurthy Department of EIE Pondicherry Engineering College Features of LPC2148 in a Nut Shell CPU = ARM 7 Core Word Length = 32 Bit ROM = 512 KB RAM

More information

Digital IP Cell 8-bit Microcontroller PE80

Digital IP Cell 8-bit Microcontroller PE80 1. Description The is a Z80 compliant processor soft-macro - IP block that can be implemented in digital or mixed signal ASIC designs. The Z80 and its derivatives and clones make up one of the most commonly

More information

UVM: The Next Generation in Verification Methodology

UVM: The Next Generation in Verification Methodology UVM: The Next Generation in Verification Methodology Mark Glasser, Methodology Architect February 4, 2011 UVM is a new verification methodology that was developed by the verification community for the

More information

Input/Output Systems

Input/Output Systems Input/Output Systems CSCI 315 Operating Systems Design Department of Computer Science Notice: The slides for this lecture have been largely based on those from an earlier edition of the course text Operating

More information

Computer Architecture CS 355 Busses & I/O System

Computer Architecture CS 355 Busses & I/O System Computer Architecture CS 355 Busses & I/O System Text: Computer Organization & Design, Patterson & Hennessy Chapter 6.5-6.6 Objectives: During this class the student shall learn to: Describe the two basic

More information

SpaceWire. Design of the SystemC model of the SpaceWire-b CODEC. Dr. Nikos Mouratidis

SpaceWire. Design of the SystemC model of the SpaceWire-b CODEC. Dr. Nikos Mouratidis SpaceWire Design of the SystemC model of the SpaceWire-b CODEC Dr. Nikos Mouratidis Qualtek Sprl. 36 Avenue Gabriel Emile Lebon B-1160, Brussels, Belgium 19/09/2011 Activity objectives: High-level modeling

More information

CMSC421: Principles of Operating Systems

CMSC421: Principles of Operating Systems CMSC421: Principles of Operating Systems Nilanjan Banerjee Assistant Professor, University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/421/ Principles of Operating

More information

Asynchronous Serial Communication Protocol (without Flow Control) using TLM 2.0 (Example of Non memory based protocol )

Asynchronous Serial Communication Protocol (without Flow Control) using TLM 2.0 (Example of Non memory based protocol ) Asynchronous Serial Communication Protocol (without Flow Control) using TLM 2.0 (Example of Non memory based protocol ) Copyright GreenSocs Ltd 2008 Developed by: Manish Aggarwal, Ruchir Bharti Circuitsutra

More information

Operating Systems. Lecture 4 - Concurrency and Synchronization. Master of Computer Science PUF - Hồ Chí Minh 2016/2017

Operating Systems. Lecture 4 - Concurrency and Synchronization. Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Operating Systems Lecture 4 - Concurrency and Synchronization Adrien Krähenbühl Master of Computer Science PUF - Hồ Chí Minh 2016/2017 Mutual exclusion Hardware solutions Semaphores IPC: Message passing

More information

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples.

System On Chip: Design & Modelling (SOC/DAM) 1 R: Verilog RTL Design with examples. System On Chip: Design & Modelling (SOC/DAM) Exercises Here is the first set of exercises. These are intended to cover subject groups 1-4 of the SOC/DAM syllabus (R, SC, SD, ESL). These questions are styled

More information

Chapter 13: I/O Systems

Chapter 13: I/O Systems COP 4610: Introduction to Operating Systems (Spring 2015) Chapter 13: I/O Systems Zhi Wang Florida State University Content I/O hardware Application I/O interface Kernel I/O subsystem I/O performance Objectives

More information

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum) I/O Fall 2011 Tore Larsen Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum) Big Picture Today we talk about I/O characteristics interconnection devices & controllers (disks

More information

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum)

I/O. Fall Tore Larsen. Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum) I/O Fall 2010 Tore Larsen Including slides from Pål Halvorsen, Tore Larsen, Kai Li, and Andrew S. Tanenbaum) Big Picture Today we talk about I/O characteristics interconnection devices & controllers (disks

More information

연세대학교전기전자공학과프로세서연구실박사과정김재억.

연세대학교전기전자공학과프로세서연구실박사과정김재억. 이강좌는연세대학교이용석교수연구실에서제작되었으며 copyright가없으므로비영리적인목적에한하여누구든지복사, 배포가가능합니다. 연구실홈페이지에는 고성능마이크로프로세서에관련된많은강의가있으며누구나무료로다운로드받을 수있습니다. 연세대학교전기전자공학과프로세서연구실박사과정김재억 Email: yonglee@yonsei.ac.kr 멀티스레드프로그래밍 (Multithreaded

More information

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim

Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Practical Hardware Debugging: Quick Notes On How to Simulate Altera s Nios II Multiprocessor Systems Using Mentor Graphics ModelSim Ray Duran Staff Design Specialist FAE, Altera Corporation 408-544-7937

More information

2. HW/SW Co-design. Young W. Lim Thr. Young W. Lim 2. HW/SW Co-design Thr 1 / 21

2. HW/SW Co-design. Young W. Lim Thr. Young W. Lim 2. HW/SW Co-design Thr 1 / 21 2. HW/SW Co-design Young W. Lim 2016-03-11 Thr Young W. Lim 2. HW/SW Co-design 2016-03-11 Thr 1 / 21 Outline 1 Software Engineering Young W. Lim 2. HW/SW Co-design 2016-03-11 Thr 2 / 21 Based on Software

More information

Verification of Power Management Protocols through Abstract Functional Modeling

Verification of Power Management Protocols through Abstract Functional Modeling Verification of Power Management Protocols through Abstract Functional Modeling G. Kamhi, T. Levy, Niranjan M, M. Mhameed, H. Rawlani, R. B. Rajput, E. Singerman, V. Vedula, Y. Zbar Motivation Microprocessor

More information

COMP 346 WINTER Tutorial 2 SHARED DATA MANIPULATION AND SYNCHRONIZATION

COMP 346 WINTER Tutorial 2 SHARED DATA MANIPULATION AND SYNCHRONIZATION COMP 346 WINTER 2018 1 Tutorial 2 SHARED DATA MANIPULATION AND SYNCHRONIZATION REVIEW - MULTITHREADING MODELS 2 Some operating system provide a combined user level thread and Kernel level thread facility.

More information

Lecture 23. I/O, Interrupts, exceptions

Lecture 23. I/O, Interrupts, exceptions Lecture 23 I/O, Interrupts, exceptions 1 A Timely Question. Most modern operating systems pre-emptively schedule programs. If you are simultaneously running two programs A and B, the O/S will periodically

More information

SystemC abstractions and design refinement for HW- SW SoC design. Dündar Dumlugöl. Vice President of Engineering, CoWare, Inc.

SystemC abstractions and design refinement for HW- SW SoC design. Dündar Dumlugöl. Vice President of Engineering, CoWare, Inc. SystemC abstractions and design refinement for HW- SW SoC design Dündar Dumlugöl Vice President of Engineering, CoWare, Inc. Overview SystemC abstraction levels & design flow Interface Synthesis Analyzing

More information

C++ for System Developers with Design Pattern

C++ for System Developers with Design Pattern C++ for System Developers with Design Pattern Introduction: This course introduces the C++ language for use on real time and embedded applications. The first part of the course focuses on the language

More information

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a)

LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) DS799 March 1, 2011 LogiCORE IP AXI Video Direct Memory Access (axi_vdma) (v3.00.a) Introduction The AXI Video Direct Memory Access (AXI VDMA) core is a soft Xilinx IP core for use with the Xilinx Embedded

More information

Real-Time Systems. Lecture #4. Professor Jan Jonsson. Department of Computer Science and Engineering Chalmers University of Technology

Real-Time Systems. Lecture #4. Professor Jan Jonsson. Department of Computer Science and Engineering Chalmers University of Technology Real-Time Systems Lecture #4 Professor Jan Jonsson Department of Computer Science and Engineering Chalmers University of Technology Real-Time Systems Specification Resource management Mutual exclusion

More information

CSCI-375 Operating Systems

CSCI-375 Operating Systems CSCI-375 Operating Systems Lecture 2 Note: Many slides and/or pictures in the following are adapted from: slides 2005 Silberschatz, Galvin, and Gagne Some slides and/or pictures in the following are adapted

More information

I/O. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 6.5-6

I/O. Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University. See: P&H Chapter 6.5-6 I/O Kevin Walsh CS 3410, Spring 2010 Computer Science Cornell University See: P&H Chapter 6.5-6 Computer System = Input + Output + Memory + Datapath + Control Video Network Keyboard USB Computer System

More information

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

Transaction Level Modeling with SystemC. Thorsten Grötker Engineering Manager Synopsys, Inc. Transaction Level Modeling with System Thorsten Grötker Engineering Manager Synopsys, Inc. Outline Abstraction Levels System ommunication Mechanism Application 1: Generic Transaction Level ommunication

More information

Theoretical Computer Science. Facilitating the design of fault tolerance in transaction level SystemC programs

Theoretical Computer Science. Facilitating the design of fault tolerance in transaction level SystemC programs Theoretical Computer Science 496 (2013) 50 68 Contents lists available at SciVerse ScienceDirect Theoretical Computer Science journal homepage: www.elsevier.com/locate/tcs Facilitating the design of fault

More information

2 Threads vs. Processes

2 Threads vs. Processes 9 2 Threads vs. Processes A process includes an address space (defining all the code and data pages) a resource container (OS resource and accounting information) a thread of control, which defines where

More information

C86 80C88 DS-186

C86 80C88 DS-186 MCS-86 8086 8088 80C86 80C88 Ceibo In-Circuit Emulator Supporting MCS-86: DS-186 http://ceibo.com/eng/products/ds186.shtml www.ceibo.com Chapter 1 Introduction Manual Organization 8086 Family Architecture

More information

Seamless Refinement from Transaction Level to RTL Using SystemVerilog Interfaces

Seamless Refinement from Transaction Level to RTL Using SystemVerilog Interfaces Seamless Refinement from Transaction Level to RTL Using SystemVerilog Interfaces Jonathan Bromley Doulos Ltd, Ringwood, UK jonathan.bromley@doulos.com 2 Outline Introduction: refinement steps and verification

More information

Designing with ALTERA SoC Hardware

Designing with ALTERA SoC Hardware Designing with ALTERA SoC Hardware Course Description This course provides all theoretical and practical know-how to design ALTERA SoC devices under Quartus II software. The course combines 60% theory

More information

Threads Tuesday, September 28, :37 AM

Threads Tuesday, September 28, :37 AM Threads_and_fabrics Page 1 Threads Tuesday, September 28, 2004 10:37 AM Threads A process includes an execution context containing Memory map PC and register values. Switching between memory maps can take

More information

System-On-Chip Architecture Modeling Style Guide

System-On-Chip Architecture Modeling Style Guide Center for Embedded Computer Systems University of California, Irvine System-On-Chip Architecture Modeling Style Guide Junyu Peng Andreas Gerstlauer Rainer Dömer Daniel D. Gajski Technical Report CECS-TR-04-22

More information