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

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

4 th European SystemC Users Group Meeting

Transaction-level modeling of bus-based systems with SystemC 2.0

Quantitative Analysis of Transaction Level Models for the AMBA Bus

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

Bus AMBA. Advanced Microcontroller Bus Architecture (AMBA)

Modeling Software with SystemC 3.0

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

Ref: AMBA Specification Rev. 2.0

DEVELOPMENT AND VERIFICATION OF AHB2APB BRIDGE PROTOCOL USING UVM TECHNIQUE

The Architects View Framework: A Modeling Environment for Architectural Exploration and HW/SW Partitioning

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

Embedded Busses. Large semiconductor. Core vendors. Interconnect IP vendors. STBUS (STMicroelectronics) Many others!

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

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

A Flexible SystemC Simulator for Multiprocessor Systemson-Chip

ARM s IP and OSCI TLM 2.0

SoC Design Lecture 11: SoC Bus Architectures. Shaahin Hessabi Department of Computer Engineering Sharif University of Technology

Hardware-Software Codesign. 6. System Simulation

A SystemC HDL Cosimulation Framework

SEMICON Solutions. Bus Structure. Created by: Duong Dang Date: 20 th Oct,2010

AHB2APB Bridge. User Guide. 11/2013 Capital Microelectronics, Inc. China

DESIGN AND VERIFICATION ANALYSIS OF APB3 PROTOCOL WITH COVERAGE

Buses. Maurizio Palesi. Maurizio Palesi 1

Assertion Based Verification of AMBA-AHB Using System Verilog

Vertical Reuse of functional verification from subsystem to SoC level (with seamless SoC emulation)

CME AHB2APB Bridge Design Example

Fujitsu System Applications Support. Fujitsu Microelectronics America, Inc. 02/02

AN OPEN-SOURCE VHDL IP LIBRARY WITH PLUG&PLAY CONFIGURATION

ARM Processors for Embedded Applications

Fujitsu SOC Fujitsu Microelectronics America, Inc.

Interconnects, Memory, GPIO

Transaction level modeling of SoC with SystemC 2.0

Simulink -based Programming Environment for Heterogeneous MPSoC

VLSI Design of Multichannel AMBA AHB

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

ARM System-Level Modeling. Platform constructed from welltested

Design of an Efficient FSM for an Implementation of AMBA AHB in SD Host Controller

Processor and Peripheral IP Cores for Microcontrollers in Embedded Space Applications

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

The Embedded Computing Platform

Modeling and Simulation of System-on. Platorms. Politecnico di Milano. Donatella Sciuto. Piazza Leonardo da Vinci 32, 20131, Milano

SYSTEMS ON CHIP (SOC) FOR EMBEDDED APPLICATIONS

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

Applying the Benefits of Network on a Chip Architecture to FPGA System Design

PrimeCell TrustZone Protection Controller (BP147) Cycle Model

COMMUNICATION AND I/O ARCHITECTURES FOR HIGHLY INTEGRATED MPSoC PLATFORMS OUTLINE

AMBA AHB Bus Protocol Checker

VLSI DESIGN OF AMBA BASED AHB2APB BRIDGE

Chapter 2 The AMBA SOC Platform

Performance Optimization for an ARM Cortex-A53 System Using Software Workloads and Cycle Accurate Models. Jason Andrews

HVSoCs: A Framework for Rapid Prototyping of 3-D Hybrid Virtual System-on-Chips

Experiences and Challenges of Transaction-Level Modelling with SystemC 2.0

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

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

Why we need Standards for Transaction-Level Modeling

EE382N: Embedded System Design and Modeling

MoCC - Models of Computation and Communication SystemC as an Heterogeneous System Specification Language

Using Formalized Programming Sequences for Higher Quality Virtual Prototypes

Design of an AMBA AHB Reconfigurable Arbiter for On-chip Bus Architecture

Intellectual Property Macrocell for. SpaceWire Interface. Compliant with AMBA-APB Bus

Quantitative Analysis of Transaction Level Models for the AMBA Bus

Place Your Logo Here. K. Charles Janac

Minje Jun. Eui-Young Chung

System-On-Chip Design with the Leon CPU The SOCKS Hardware/Software Environment

UNIVERSITY OF CALIFORNIA, IRVINE. System Level Modeling of an AMBA Bus THESIS MASTER OF SCIENCE. Hans Gunar Schirner

Assembling and Debugging VPs of Complex Cycle Accurate Multicore Systems. July 2009

The SOCks Design Platform. Johannes Grad

FPGA-based Transaction-Level Verification Through De Facto Standard Interfaces

Integrating Instruction Set Simulator into a System Level Design Environment

AMBA 3 AHB Lite Bus Architecture

RM3 - Cortex-M4 / Cortex-M4F implementation

Copyright 2016 Xilinx

Embedded System Design and Modeling EE382V, Fall 2008

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

An introduction to CoCentric

Embedded Systems 1: On Chip Bus

Pooja Kawale* et al ISSN: [IJESAT] [International Journal of Engineering Science & Advanced Technology] Volume-6, Issue-3,

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

IMPROVES. Initial Investment is Low Compared to SoC Performance and Cost Benefits

SONICS, INC. Sonics SOC Integration Architecture. Drew Wingard. (Systems-ON-ICS)

Chapter 6 Storage and Other I/O Topics

Verification of Advanced High Speed Bus in UVM Methodology

Modeling Performance Use Cases with Traffic Profiles Over ARM AMBA Interfaces

Product Series SoC Solutions Product Series 2016

ECE 551 System on Chip Design

QEMU for Xilinx ZynqMP. V Aug-20

Next Generation Multi-Purpose Microprocessor

The Challenges of System Design. Raising Performance and Reducing Power Consumption

VERIFICATION OF AHB PROTOCOL USING SYSTEM VERILOG ASSERTIONS

Automatic Generation of Cycle Accurate and Cycle Count Accurate Transaction Level Bus Models from a Formal Model

Copyright 2014 Xilinx

Exploring SW Performance using SoC Transaction-level Modeling

OCB-Based SoC Integration

The CoreConnect Bus Architecture

Keywords- AMBA, AHB, APB, AHB Master, SOC, Split transaction.

The TLM-2.0 Standard. John Aynsley, Doulos

Design and Verification of AMBA AHB- Lite protocol using Verilog HDL

Managing Complex Trace Filtering and Triggering Capabilities of CoreSight. Jens Braunes pls Development Tools

Optimizing Models of an FPGA Embedded System. Adam Donlin Xilinx Research Labs September 2004

Transcription:

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 Generic Transaction Level Channel 2

Abstraction Levels: Transaction Level Layer 3: Message Layer Model (un-)timed functionality Point-point communication Layer 2: Transaction Layer Analyze SoC architecture, early SW development Estimated timing Layer 1: Transfer Layer Cycle true but faster than RTL Detailed analysis, develop low-level SW Pin Level Layer 0: Register Transfer Level UTF UTF UTF UTF UTF TLM TLM TLM TLM TLM RTL RTL RTL RTL RTL 3

SystemC Language Architecture Methodology-specific channels Elementary Channels Signal, Timer, Mutex, Semaphore, FIFO, etc. Time Concurrency Modules Processes Interfaces Ports Channels Events Event-driven sim. kernel Data Types 4-valued logic (0, 1, X, Z) 4-valued logic-vectors Bits and bit-vectors Arbitrary-precision integers Fixed-point numbers C++ user-defined types C++ built-in types (int, char ) C++ Language Standard 4

SystemC Communication Mechanism: How? Separate Functionality from Communication Functionality: implemented in Modules Communication: implemented in Channels Interface Method Calls (IMC) The collection of a fixed set of communication Methods is called an Interface Channels implement one or more Interfaces Modules can be connected via their Ports to those Channels which implement the corresponding Interface ( sc_port<interface> ) 5

Primitive Channel Module1 Module2 port Channel port Module1::() { port->write(42); } Module2::() { x = port->read(); } 6

Hierarchical Channel Channels can be hierarchical, i.e. they can contain es, ports, modules and channels. Module1 port Hierarchical Channel port Module2 7

Outline Abstraction Levels SystemC Communication Mechanism Transaction Level Modeling of the AMBA AHB/APB Protocol Generic Transaction Level Channel 8

Transaction-Level Modeling of the AMBA AHB/APB Protocol Background implemented in the spirit of simple_bus (transfers modeled via dedicated interface methods) Requirements cycle-accurate (Layer 1) optimal simulation speed ease of use (blocking interface) integration of low-level models (non-blocking interface) enable SW debugging (debug interface) 9

Hierarchical Channel Channels can be hierarchical, i.e. they can contain es, ports, modules and channels. Module1 port Hierarchical Channel port Module2 10

TLM Bus Model (Layer 1, simplified) M1 M2 M3 clock BUS Arbiter Decoder S1 S2 11

TLM Bus Model (Layer 1, simplified) M1 M2 M3 clock BUS Master Master fi fi Bus Bus Communication: Communication: Interface Interface Method Method Call Call Arbiter Decoder S1 S2 12

TLM Bus Model (Layer 1, simplified) M1 M2 M3 clock BUS Arbiter Decoder Bus Bus fi fi {Arbiter, {Arbiter, Decoder, Decoder, Slave}: Slave}: Interface Interface Method Method Call Call S1 S2 13

AHB Master-Bus Interface Blocking bool burst_read(id, data, start_address, burst_length, burst_mode, num_bytes); bool burst_write(id, data, start_address, burst_length, burst_mode, num_bytes); Non-Blocking void request(id); bool has_grant(id); void init_transaction(id, read_mode, address,...); void set_data(id, data); bool response(id, status);... Note that such interfaces are always protocol-specific 14

AHB Interfaces (cont d) Direct Bus Interface (Debugging) bool direct_read(address, data, num_bytes); bool direct_write(address, data, num_bytes); Bus-Slave Interface void set_data(data); void control_info(burst_mode, transfer_type,...); void read(address, num_bytes); void write(address, num_bytes); bool response(status);... 15

AMBA AHB Components AHB bus with external arbiter and decoder Interconnection matrix for AMBA multilayer support AHB bus monitor Processors (ARM 926, ARM 946) Pin Level adaptors Example masters and slaves Example AHB platforms 16

AMBA APB Components AHB-APB bridge with APB bus APB bus monitor Pin Level adaptors APB peripherals Remap and pause controller Interrupt controller APB timer Example AHB/APB platforms 17

Outline Abstraction Levels SystemC Communication Mechanism Transaction Level Modeling of the AMBA AHB/APB Protocol Generic Transaction Level Channel 18

Generic Transaction-Level Channel Background Developed by Nokia and Synopsys in cooperation with TI and Sonics for OCP Requirements Point-to-point connection (module «generic channel «module) Data passing and synchronization Interface independent of communication protocol Protocol to be implemented by the user Can be used for Layers 1, 2, and 3 19

Generic TL Channel: A Building Block for easy Transaction-Level Modeling Recap interface method calls (IMCs) Module Hierarchical Channel port Interface methods are executed in the context of the calling. 20

Generic TL Channel: A Building Block for easy Transaction-Level Modeling How to implement concurrent behavior (pipelining, split transfers, ) with IMCs? Module wait port Hierarchical Channel event 1 event 2 wait More events are needed when module needs to wait for channel to be ready channel needs to wait for module to collect data 21

Generic TL Channel: A Building Block for easy Transaction-Level Modeling The generic channel is a building block that eases implementing data passing and synchronization of initiator and target. Initiator Generic Channel Target It is not a ready-made implementation of any communication protocol. 22

Generic Channel Interface (simplified) TdataCl: Initiator ( Master ) TdataCl* GetDataCl(); bool MputRequest*(); bool MgetResponse*(bool release); void Mrelease(time); Target ( Slave ) TdataCl* GetDataCl(); bool SgetRequest*(bool release); bool SputResponse*(); void Srelease(time); template parameter depends on application and communication protocol being used 23

Flow of Events data = port->getdatacl(); data = port->getdatacl(); Master C Slave data->input = 42; MputWriteRequestBlocking(); MgetResponseBlocking(); if (data->response)... data type is likely to depend on the protocol SgetRequestBlocking(true); int mem = data->input; if (mem!= 0) data->response = true; else data->response = false; SputResponseBlocking(); 24

Bus-based System w/ Generic Channels M1 M2 M3 C C C BUS C C Arbiter Decoder C S1 C S2 The bus protocol has to be implemented by the user; is it not part of the generic interface. 25

Summary Abstraction Levels Transaction Level comprises multiple Layers (Message, Transaction, Transfer) SystemC Communication Mechanism Interface Method Calls (IMC) Transaction Level Modeling of the AMBA Protocol Efficient implementation based on IMCs Generic Transaction Level Channel Building Block for easy Transaction Level Modeling 26

Further information SystemC and Transaction-Level Modeling OSCI website: www.systemc.org System Design with SystemC Generic Transaction-Level Channel White Paper www.ocpip.org/data/systemc.pdf AMBA models www.synopsys.com 27