SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
1 Copyright 2005 CADENCE DESIGN SYSTEMS, INC.
A Tutorial Introduction to the SystemC
TLM Standard
Stuart Swan
Cadence Design Systems, Inc
March 2006
2 Copyright 2005 Cadence Design Systems, Inc.
SystemC Transaction Level Modeling
• What is TLM?
– Communication uses function calls
burst_read(char* buf, int addr, int len);
• Why is TLM interesting?
– Fast and compact
– Integrate HW and SW models
– Early platform for SW development, easy to distribute
– Early system exploration and verification
– Verification reuse
master router slaves
3 Copyright 2005 Cadence Design Systems, Inc.
SystemC Transaction Level Modeling
• How is TLM being adopted?
– Widely used for verification
– TLM for design is starting at major electronics companies
• Is it really worth the effort?
– Yes, particularly for platform-based design and verification
• What will help proliferate TLM?
– Standard TLM APIs and guidelines
– Availability of TLM platform IP
– Tool support
SystemC TLM Standard
4 Copyright 2005 Cadence Design Systems, Inc.
May 2005: OSCI Releases SystemC TLM
Standard
• TLM Standard API provides the foundation layer to develop
interoperable SystemC TLM IP
• Full press release available at www.systemc.org
• Companies endorsing TLM standard within press release:
– Cadence, CoWare, Forte, Mentor, Philips, ST, Synopsys
– Atrenta, Calypto, Celoxica, Chip Vision, ESLX, Summit, Synfora
– OCP-IP
• TLM kit, whitepaper, and examples publicly available at
www.systemc.org
• See also June 6 2005 online articles in EETimes and EDN
• TLM standard is already in use in industry
• IEEE standardization process to begin soon
5 Copyright 2005 Cadence Design Systems, Inc.
TLM API Goals
• Support design & verification IP reuse
• Provide common TLM recipe
• Usability
• Safety
• Speed
• Generality
– Abstraction Levels
– HW / SW
– Different communication architectures (bus, packet, NOC, ...)
– Different protocols
6 Copyright 2005 Cadence Design Systems, Inc.
Key Concepts
• Focus on SystemC interface classes
– Define small set of generic, reusable TLM interfaces
– Different components implement same interfaces
– Same interface can be implemented
– directly within a C/C++ function, or
– via communication with other modules/channels in system
• Object passing semantics
– Similar to sc_fifo, effectively pass-by-value
– Avoids problems with raw C/C++ pointers
– Leverage C++ smart pointers and containers where needed
7 Copyright 2005 Cadence Design Systems, Inc.
Transaction Level Modeling with the TLM API
an sc_port
an sc_export
port binds to
channel
a thread
master router slaves
master calls transport()
in router
slave implementation of
transport() does the work
router calls transport() in
slave through 1 of 2 ports
masters FIFOs arbiter slave
SymbolsArbitration Example
Router Example
8 Copyright 2005 Cadence Design Systems, Inc.
TLM Abstraction Levels
Cycle Accurate Level (CA) Word transfers
Foundation: Clock Edge Cycle-accurate
Programmer’s View + Timing (PVT) Bus architecture
Foundation: Timed Protocol Timing approx.
Programmer’s View (PV) Bus generic
Foundation: Memory Map Masters/Slaves
RT Level (RT) Signal/Pin/Bit
Foundation: Registers, logic Cycle-accurate
Algorithmic Level (AL) Functional
Foundation: No Implementation Aspects
Smaller,
faster,
less
accurate
Larger,
slower,
more
accurate
Model at a few levels that target the “pain” and risk in your D&V flow
9 Copyright 2005 Cadence Design Systems, Inc.
Example TLM Application #1
Wireless Picture Frame based on ARM920T
SystemC TLM Model
 Full address map
 Models all AHB transactions
 ARM920 ISS master
 Multiple slaves
 Complete SW on ISS
 PV provides ~1M cps
 CA provides ~50kcps
MAC 1 MAC 2
DMA
DES
FIFO memory
8KB
FIFO memory
8KB
MII MII VMIVGA
FIFO memory
8KB
Analog
LCD/VGA
AHB/Wishbone
wrapper
Control and
JPEG software
ARM920T
ROM and
DRAMData
cache
Inst
cache
Memory
controller
AMBA
AHB
SystemC
TLM
Interrupt
controller
10 Copyright 2005 Cadence Design Systems, Inc.
TLM Eases System Debug and Analysis
11 Copyright 2005 Cadence Design Systems, Inc.
Review of Key TLM Terms
• Nonblocking: Means function implementations can never call wait().
• Blocking: Means function implementations might call wait().
• Unidirectional: data transferred in one direction
• Bidirectional: data transferred in two directions
• Poke/Peek: Poke overwrites data and can never block. Peek reads
most recent valid value. Poke/Peek are similar to write/read to a
variable or signal.
• Put/Get: Put queues data. Get consumes data. Put/Get are similar to
writing/reading from a FIFO.
• Pop: A pop is equivalent to a get in which the data returned is simply
ignored.
• Master/Slave: A master initiates activity by issuing a request. A slave
passively waits for requests and returns a response.
12 Copyright 2005 Cadence Design Systems, Inc.
Unidirectional versus Bidirectional
• Unidirectional interfaces send data in only a single direction, and
flow of control is in either or both directions.
• Bidirectional interfaces send data in both directions, and flow of
control is in either or both directions.
• Examples:
– A complete read transaction across a bus is bidirectional
– “Place read address on bus” is unidirectional
– Burst write with a completion status returned is bidirectional
– Send IP packet is unidirectional
• Any complex protocol can be broken down into a set of
unidirectional and bidirectional accesses that use the TLM API
13 Copyright 2005 Cadence Design Systems, Inc.
Primary TLM Interfaces
• Primary Unidirectional Interfaces
– tlm_poke_if<T> / tlm_peek_if<T>
– tlm_put_if<T> / tlm_get_if<T>
• Primary Bidirectional Interfaces
– tlm_master_if<REQ, RSP>
– tlm_slave_if<REQ, RSP>
– tlm_transport_if<REQ, RSP>
• Note: tlm_poke_if should be added to OSCI TLM kit soon
14 Copyright 2005 Cadence Design Systems, Inc.
Hardware Implied by TLM Interfaces
tlm_poke_if*
valid
data
valid
data tlm_peek_if
tlm_put_if valid
ready
data
valid
ready
data
tlm_get_if
tlm_master_if
req_valid
req_ready
req_data
rsp_valid
rsp_ready
rsp_data
req_valid
req_ready
req_data
rsp_valid
rsp_ready
rsp_data
tlm_slave_if
tlm_transport_if implies same HW as tlm_master_if, but also requests and responses are tightly coupled.
tlm_poke_if is not yet in OSCI TLM standard, should be added soon.
Poke/peek have overwrite semantics
similar to writing to a variable or signal
Put/get have queuing semantics similar to
writing to a FIFO
When values propagate asynchronously,
combinational logic is implied.
When values are held across clock
edges, hardware registers are implied.
The TLM interfaces can be easily mapped
to HW. Understanding this mapping helps
you to understand how to use the TLM
interfaces.
Note that the TLM interfaces are also
useful in non-HW parts of your system
(e.g. testbenches, SW modeling).
15 Copyright 2005 Cadence Design Systems, Inc.
TLM Unidirectional Interfaces
Inheritance Diagram
tlm_blocking_get_if tlm_nonblocking_get_if tlm_blocking_peek_if tlm_nonblocking_peek_if
tlm_get_if tlm_peek_if
tlm_blocking_put_if tlm_nonblocking_put_if
tlm_put_if
tlm_blocking_get_peek_if tlm_nonblocking_get_peek_if
tlm_get_peek_if
tlm_fifo_debug_if
tlm_fifo_get_iftlm_fifo_put_if
tlm_poke_if
tlm_fifo specific interfaces
Primary
Unidirectional
Interfaces
Pure Blocking
and
Nonblocking
Interfaces
16 Copyright 2005 Cadence Design Systems, Inc.
Thinking of Interfaces as Contracts
– Provides versus Requires
Requires Provides Requires
Requires subset of provided interface, still plug-compatible
17 Copyright 2005 Cadence Design Systems, Inc.
Importance of sc_export in SystemC 2.1
• sc_ports facilitate modular design by precisely declaring
interfaces required at a module boundary
• sc_exports facilitate modular design by precisely declaring
interfaces provided at a module boundary
• sc_ports and sc_exports allow interfaces to be passed through
each level of the hierarchy
• Use of sc_port and sc_export improves modularity by avoiding
reliance on explicit multilevel paths
• sc_export permits direct function call interfaces for TLM without
introduction of extra process switches
18 Copyright 2005 Cadence Design Systems, Inc.
Summarizing Provides / Requires
• A channel that implements an interface class by inheriting from that class
provides that interface to the outside world
• An sc_export<IF> member within a module or channel provides that interface
to the outside world
• An sc_port<IF> member within a module or channel requires that interface
from the outside world
Requires Provides Requires
port
instance
within
module
“lamp”
two sc_export instances within module “wall”
port
instance
within
module
“extension
cord”
19 Copyright 2005 Cadence Design Systems, Inc.
Design your components to maximize
opportunities for reuse
• In SystemC, channels and sc_exports that provide more than ports
actually require are still “plug compatible”.
– Mechanism that achieves this is C++ implicit conversion to base classes
– Having a hierarchy of interface classes is thus the key enabler for this
feature
• Require the most minimal interfaces that are possible in a given
situation
– e.g. sc_port<tlm_nonblocking_get_if<T> > rather than
sc_port<tlm_get_if<T> >
• Provide the maximal interfaces that makes sense in a given
situation
– e.g. sc_export<tlm_put_if<T> > rather than
sc_export<tlm_blocking_put_if<T> >
20 Copyright 2005 Cadence Design Systems, Inc.
Leverage tlm_fifo to connect
incompatible interfaces
• tlm_fifo provides all the put, get and peek interfaces in blocking
and nonblocking forms, so tlm_fifo can be used to connect any
two unidirectional tlm interfaces except tlm_poke_if.
• For example, can do blocking puts into tlm_fifo, and nonblocking
gets out of it.
21 Copyright 2005 Cadence Design Systems, Inc.
Develop and use a library of generic TLM
components
• The OSCI TLM already contains several good examples of generic
TLM components:
– tlm_fifo<T>
– tlm_req_rsp_channel<REQ, RSP>
– tlm_transport_channel<REQ, RSP>
– router<ADDRESS, REQ, RSP>
– simple_arb<REQ, RSP> // not a fully generic arbiter, example only
• Leverage existing TLM generic components as much as possible.
• Create your own generic TLM modules, channels, adapters,
transactors, etc., when needed.
– e.g. generic crossbar, pipeline, parallel to serial adaptor, cache, etc.
22 Copyright 2005 Cadence Design Systems, Inc.
Deterministic Modeling
• Use a good strategy for deterministic modeling (a.k.a. “avoid
races”)
– Enables reproducibility of simulation results across simulators
– Aids refinement: a properly refined design will give same result
• Strategies: (See “System Design With SystemC” page 120)
– Use two-phase primitive channels such as tlm_fifo,
tlm_poke_channel, tlm_req_rsp_channel, sc_fifo,
sc_signal for all communication between SystemC processes
– TLM models and systems that model arbitration commonly use an explicit
two-phase synchronization scheme (SDWS ch. 8)
– Use a deterministic model of computation such as KPN or SDF (SDWS ch.
5)
– Combine above approaches for systems with mixed abstraction levels
23 Copyright 2005 Cadence Design Systems, Inc.
TLM Interface Style
• The TLM interface style is the same as sc_fifo, SystemC as a whole, and other
C++ libraries, e.g. stl
– Inbound data is always passed by const &
– eg bool nb_put( const & )
– Outbound data returned by value if we can guarantee that there will be data to return
– eg T get( tlm_tag<T> * )
– If we cannot guarantee that data will come back, we return the status and pass in a
non const & :
– eg bool nb_get( T & )
– We never use pointers
– We never use non const & for inbound data
• This is not pure pass-by-value, but it shares the need to provide copy
constructors and destructors with pass-by-value
– Think of it as being effectively pass-by-value
24 Copyright 2005 Cadence Design Systems, Inc.
“Effective” Pass-by-Value
• Benefits
– Eliminates problems/bugs associated with pointers and explicit dynamic
memory allocation and deallocation
– Helps eliminate problems/bugs in which multiple SystemC processes write
to the same shared variable (i.e. “races”)
– Lifetime and ownership of objects is very simple and clear
– Helps you reason about concurrent systems
– Enables use of C++ smart containers and handles
• Potential Drawbacks
– Naive passing of large objects may lead to performance problems
– Most common problem is passing large vectors or arrays of data by value
25 Copyright 2005 Cadence Design Systems, Inc.
The TLM Copy-on-Write Vector
• To pass large vectors or arrays very efficiently, use the TLM
copy-on-write vector – tlm_cow_vec<T>
• tlm_cow_vec<T> is nearly identical to std::vector<T>
– The two can be easily swapped for each other.
– Both use strict “by-value” semantics for assignment, construction,
reading/writing elements, copying slices, etc.
– Unlike std::vector<T>, tlm_cow_vec<T> does not support any operations
that involve resizing the vector.
– Unlike std::vector<T>, tlm_cow_vec<T> is very “smart” and does not
actually copy any of the underlying data or allocate new data unless
required. But this is all hidden to the user.
– When tlm_cow_vec<T> is passed by value, copied, assigned, sliced, etc.,
only a very small amount of data in a handle is actually exchanged.
• tlm_cow_vec<T> should be added soon to OSCI TLM kit
• Contact stuart@cadence.com for more information about
tlm_cow_vec<T>.
26 Copyright 2005 Cadence Design Systems, Inc.
Conclusions
• Benefits of TLM:
– Fast and compact
– Integrate HW and SW models
– Early platform for SW development, easy to distribute
– Early system exploration and verification
– Verification reuse
• TLM is the next level of design and verification abstraction in
EDA, and the shift is now starting.
• The OSCI TLM standard is available now and is already in use,
and should foster the development of a TLM IP ecosystem.

Contenu connexe

Tendances

verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020Sameh El-Ashry
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelDVClub
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introductionYi-Hsiu Hsu
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin敬倫 林
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverageNirav Desai
 
Soc architecture and design
Soc architecture and designSoc architecture and design
Soc architecture and designSatya Harish
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with SystemcMarc Engels
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 sessionSameh El-Ashry
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Dhaval Kaneria
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic SequencesArrow Devices
 
Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driverVandana Salve
 

Tendances (20)

verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020
 
Challenges in Using UVM at SoC Level
Challenges in Using UVM at SoC LevelChallenges in Using UVM at SoC Level
Challenges in Using UVM at SoC Level
 
System on Chip (SoC)
System on Chip (SoC)System on Chip (SoC)
System on Chip (SoC)
 
Yocto Project introduction
Yocto Project introductionYocto Project introduction
Yocto Project introduction
 
Week1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC BeginWeek1 Electronic System-level ESL Design and SystemC Begin
Week1 Electronic System-level ESL Design and SystemC Begin
 
Session 7 code_functional_coverage
Session 7 code_functional_coverageSession 7 code_functional_coverage
Session 7 code_functional_coverage
 
Soc architecture and design
Soc architecture and designSoc architecture and design
Soc architecture and design
 
Spi drivers
Spi driversSpi drivers
Spi drivers
 
Digital design with Systemc
Digital design with SystemcDigital design with Systemc
Digital design with Systemc
 
Functional verification techniques EW16 session
Functional verification techniques  EW16 sessionFunctional verification techniques  EW16 session
Functional verification techniques EW16 session
 
Uvm dac2011 final_color
Uvm dac2011 final_colorUvm dac2011 final_color
Uvm dac2011 final_color
 
Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)Serial Peripheral Interface(SPI)
Serial Peripheral Interface(SPI)
 
Usb protocol
Usb protocol Usb protocol
Usb protocol
 
UVM: Basic Sequences
UVM: Basic SequencesUVM: Basic Sequences
UVM: Basic Sequences
 
Introduction to stm32-part2
Introduction to stm32-part2Introduction to stm32-part2
Introduction to stm32-part2
 
I2C Protocol
I2C ProtocolI2C Protocol
I2C Protocol
 
Coverage and Introduction to UVM
Coverage and Introduction to UVMCoverage and Introduction to UVM
Coverage and Introduction to UVM
 
Vlsi design flow
Vlsi design flowVlsi design flow
Vlsi design flow
 
Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driver
 
SystemC Ports
SystemC PortsSystemC Ports
SystemC Ports
 

En vedette

not interesting
not interestingnot interesting
not interestingmattnvk
 
M6 s3 maría del consuelo gonzález sánchez
M6 s3 maría del consuelo gonzález sánchezM6 s3 maría del consuelo gonzález sánchez
M6 s3 maría del consuelo gonzález sánchez01Chelo
 
Biomedical Grúas de traslado
Biomedical Grúas de trasladoBiomedical Grúas de traslado
Biomedical Grúas de trasladojaviy2k
 
PR 4 startups by @susanfsu of @500startups @500distribution
PR 4 startups by @susanfsu of @500startups @500distributionPR 4 startups by @susanfsu of @500startups @500distribution
PR 4 startups by @susanfsu of @500startups @500distributionSusan Su
 
Ganar con la cabeza
Ganar con la cabeza Ganar con la cabeza
Ganar con la cabeza nadia
 
17320689 hdfc-bank-project-saving-account
17320689 hdfc-bank-project-saving-account17320689 hdfc-bank-project-saving-account
17320689 hdfc-bank-project-saving-accountAnurag Dubey
 
Evaluacion de las funciones cerebrales superiores
Evaluacion de las funciones cerebrales superioresEvaluacion de las funciones cerebrales superiores
Evaluacion de las funciones cerebrales superioresAlex Yepez
 
caja de herramientas antiansiedad
caja de herramientas antiansiedadcaja de herramientas antiansiedad
caja de herramientas antiansiedadAnabel Cornago
 

En vedette (20)

Portafolioverescreer
PortafolioverescreerPortafolioverescreer
Portafolioverescreer
 
not interesting
not interestingnot interesting
not interesting
 
20160117_CV ALBERTO CECILIA MARIN SP
20160117_CV ALBERTO CECILIA MARIN SP20160117_CV ALBERTO CECILIA MARIN SP
20160117_CV ALBERTO CECILIA MARIN SP
 
Presentacion final. informatica
Presentacion final. informaticaPresentacion final. informatica
Presentacion final. informatica
 
M6 s3 maría del consuelo gonzález sánchez
M6 s3 maría del consuelo gonzález sánchezM6 s3 maría del consuelo gonzález sánchez
M6 s3 maría del consuelo gonzález sánchez
 
Biomedical Grúas de traslado
Biomedical Grúas de trasladoBiomedical Grúas de traslado
Biomedical Grúas de traslado
 
PR 4 startups by @susanfsu of @500startups @500distribution
PR 4 startups by @susanfsu of @500startups @500distributionPR 4 startups by @susanfsu of @500startups @500distribution
PR 4 startups by @susanfsu of @500startups @500distribution
 
Ch7 Info Retrieval Soc Net
Ch7 Info Retrieval Soc NetCh7 Info Retrieval Soc Net
Ch7 Info Retrieval Soc Net
 
Adimark Marzo 2015
Adimark Marzo 2015Adimark Marzo 2015
Adimark Marzo 2015
 
Ganar con la cabeza
Ganar con la cabeza Ganar con la cabeza
Ganar con la cabeza
 
FRBR
FRBRFRBR
FRBR
 
Tetanos 2015
Tetanos 2015Tetanos 2015
Tetanos 2015
 
17320689 hdfc-bank-project-saving-account
17320689 hdfc-bank-project-saving-account17320689 hdfc-bank-project-saving-account
17320689 hdfc-bank-project-saving-account
 
Curso Constelaciones Familiares Online, Técnica
Curso Constelaciones Familiares Online, TécnicaCurso Constelaciones Familiares Online, Técnica
Curso Constelaciones Familiares Online, Técnica
 
Organizaciones campesinas
Organizaciones campesinasOrganizaciones campesinas
Organizaciones campesinas
 
Enfermedad de osgood schlatter
Enfermedad de osgood schlatterEnfermedad de osgood schlatter
Enfermedad de osgood schlatter
 
Evaluacion de las funciones cerebrales superiores
Evaluacion de las funciones cerebrales superioresEvaluacion de las funciones cerebrales superiores
Evaluacion de las funciones cerebrales superiores
 
Ovarios
OvariosOvarios
Ovarios
 
caja de herramientas antiansiedad
caja de herramientas antiansiedadcaja de herramientas antiansiedad
caja de herramientas antiansiedad
 
Cómo seducen ellas
Cómo seducen ellasCómo seducen ellas
Cómo seducen ellas
 

Similaire à Presentation systemc

Network architecure (3).pptx
Network architecure (3).pptxNetwork architecure (3).pptx
Network architecure (3).pptxKaythry P
 
Accelerated development in Automotive E/E Systems using VisualSim Architect
Accelerated development in Automotive E/E Systems using VisualSim ArchitectAccelerated development in Automotive E/E Systems using VisualSim Architect
Accelerated development in Automotive E/E Systems using VisualSim ArchitectDeepak Shankar
 
Apache Thrift, a brief introduction
Apache Thrift, a brief introductionApache Thrift, a brief introduction
Apache Thrift, a brief introductionRandy Abernethy
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_FinalSam Knutson
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesDavid Martínez Rego
 
6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_final6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_finalYutaka Kawai
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNGerardo Pardo-Castellote
 
CisCon 2018 - Overlay Management Protocol e IPsec
CisCon 2018 - Overlay Management Protocol e IPsecCisCon 2018 - Overlay Management Protocol e IPsec
CisCon 2018 - Overlay Management Protocol e IPsecAreaNetworking.it
 
SDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentosSDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentosChristian Esteve Rothenberg
 
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...Dmitry Afanasiev
 
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...Continuent
 
Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_engFFRI, Inc.
 
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...Yandex
 
Systemc overview 2010
Systemc overview 2010Systemc overview 2010
Systemc overview 2010敬倫 林
 
Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Uri Cohen
 
Osi week10(1) [autosaved] by Gulshan K Maheshwari(QAU)
Osi week10(1) [autosaved] by Gulshan  K Maheshwari(QAU)Osi week10(1) [autosaved] by Gulshan  K Maheshwari(QAU)
Osi week10(1) [autosaved] by Gulshan K Maheshwari(QAU)GulshanKumar368
 
Hands on with CoAP and Californium
Hands on with CoAP and CaliforniumHands on with CoAP and Californium
Hands on with CoAP and CaliforniumJulien Vermillard
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)Kirill Tsym
 

Similaire à Presentation systemc (20)

Esl basics
Esl basicsEsl basics
Esl basics
 
Network architecure (3).pptx
Network architecure (3).pptxNetwork architecure (3).pptx
Network architecure (3).pptx
 
Accelerated development in Automotive E/E Systems using VisualSim Architect
Accelerated development in Automotive E/E Systems using VisualSim ArchitectAccelerated development in Automotive E/E Systems using VisualSim Architect
Accelerated development in Automotive E/E Systems using VisualSim Architect
 
Apache Thrift, a brief introduction
Apache Thrift, a brief introductionApache Thrift, a brief introduction
Apache Thrift, a brief introduction
 
Bit_Bucket_x31_Final
Bit_Bucket_x31_FinalBit_Bucket_x31_Final
Bit_Bucket_x31_Final
 
Building Big Data Streaming Architectures
Building Big Data Streaming ArchitecturesBuilding Big Data Streaming Architectures
Building Big Data Streaming Architectures
 
6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_final6 open capi_meetup_in_japan_final
6 open capi_meetup_in_japan_final
 
Protocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDNProtocol and Integration Challenges for SDN
Protocol and Integration Challenges for SDN
 
CisCon 2018 - Overlay Management Protocol e IPsec
CisCon 2018 - Overlay Management Protocol e IPsecCisCon 2018 - Overlay Management Protocol e IPsec
CisCon 2018 - Overlay Management Protocol e IPsec
 
SDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentosSDN: Situação do mercado e próximos movimentos
SDN: Situação do mercado e próximos movimentos
 
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
 
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...
Training Slides: Basics 107: Simple Tungsten Replicator Installation to Extra...
 
OpenPOWER Webinar
OpenPOWER Webinar OpenPOWER Webinar
OpenPOWER Webinar
 
Mr201304 open flow_security_eng
Mr201304 open flow_security_engMr201304 open flow_security_eng
Mr201304 open flow_security_eng
 
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
MPLS in DC and inter-DC networks: the unified forwarding mechanism for networ...
 
Systemc overview 2010
Systemc overview 2010Systemc overview 2010
Systemc overview 2010
 
Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014 Cloudify workshop at CCCEU 2014
Cloudify workshop at CCCEU 2014
 
Osi week10(1) [autosaved] by Gulshan K Maheshwari(QAU)
Osi week10(1) [autosaved] by Gulshan  K Maheshwari(QAU)Osi week10(1) [autosaved] by Gulshan  K Maheshwari(QAU)
Osi week10(1) [autosaved] by Gulshan K Maheshwari(QAU)
 
Hands on with CoAP and Californium
Hands on with CoAP and CaliforniumHands on with CoAP and Californium
Hands on with CoAP and Californium
 
FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)FD.io Vector Packet Processing (VPP)
FD.io Vector Packet Processing (VPP)
 

Dernier

Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation decktbatkhuu1
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130Suhani Kapoor
 
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceanilsa9823
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...Call Girls in Nagpur High Profile
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...Call Girls in Nagpur High Profile
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girlsmodelanjalisharma4
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)amitlee9823
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentationamedia6
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxTusharBahuguna2
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Call Girls in Nagpur High Profile
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130Suhani Kapoor
 
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Servicearoranaina404
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja Nehwal
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Douxkojalkojal131
 
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsCharles Obaleagbon
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...Pooja Nehwal
 

Dernier (20)

Peaches App development presentation deck
Peaches App development presentation deckPeaches App development presentation deck
Peaches App development presentation deck
 
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
VIP Call Girls Service Kukatpally Hyderabad Call +91-8250192130
 
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
 
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
VVIP Pune Call Girls Dange Chowk (8250192130) Pune Escorts Nearby with Comple...
 
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...Booking open Available Pune Call Girls Nanded City  6297143586 Call Hot India...
Booking open Available Pune Call Girls Nanded City 6297143586 Call Hot India...
 
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call GirlsCBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
CBD Belapur Individual Call Girls In 08976425520 Panvel Only Genuine Call Girls
 
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
꧁❤ Hauz Khas Call Girls Service Hauz Khas Delhi ❤꧂ 9999965857 ☎️ Hard And Sex...
 
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
Escorts Service Nagavara ☎ 7737669865☎ Book Your One night Stand (Bangalore)
 
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
young call girls in Pandav nagar 🔝 9953056974 🔝 Delhi escort Service
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentation
 
Design Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptxDesign Inspiration for College by Slidesgo.pptx
Design Inspiration for College by Slidesgo.pptx
 
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...Top Rated  Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
Top Rated Pune Call Girls Koregaon Park ⟟ 6297143586 ⟟ Call Me For Genuine S...
 
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
VIP Call Girls Service Bhagyanagar Hyderabad Call +91-8250192130
 
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts ServiceVVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
VVIP CALL GIRLS Lucknow 💓 Lucknow < Renuka Sharma > 7877925207 Escorts Service
 
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
 
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
Pooja 9892124323, Call girls Services and Mumbai Escort Service Near Hotel Gi...
 
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai DouxDubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
Dubai Call Girls Pro Domain O525547819 Call Girls Dubai Doux
 
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Paharganj 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
WAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past QuestionsWAEC Carpentry and Joinery Past Questions
WAEC Carpentry and Joinery Past Questions
 
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...Kurla Call Girls Pooja Nehwal📞 9892124323 ✅  Vashi Call Service Available Nea...
Kurla Call Girls Pooja Nehwal📞 9892124323 ✅ Vashi Call Service Available Nea...
 

Presentation systemc

  • 1. 1 Copyright 2005 CADENCE DESIGN SYSTEMS, INC. A Tutorial Introduction to the SystemC TLM Standard Stuart Swan Cadence Design Systems, Inc March 2006
  • 2. 2 Copyright 2005 Cadence Design Systems, Inc. SystemC Transaction Level Modeling • What is TLM? – Communication uses function calls burst_read(char* buf, int addr, int len); • Why is TLM interesting? – Fast and compact – Integrate HW and SW models – Early platform for SW development, easy to distribute – Early system exploration and verification – Verification reuse master router slaves
  • 3. 3 Copyright 2005 Cadence Design Systems, Inc. SystemC Transaction Level Modeling • How is TLM being adopted? – Widely used for verification – TLM for design is starting at major electronics companies • Is it really worth the effort? – Yes, particularly for platform-based design and verification • What will help proliferate TLM? – Standard TLM APIs and guidelines – Availability of TLM platform IP – Tool support SystemC TLM Standard
  • 4. 4 Copyright 2005 Cadence Design Systems, Inc. May 2005: OSCI Releases SystemC TLM Standard • TLM Standard API provides the foundation layer to develop interoperable SystemC TLM IP • Full press release available at www.systemc.org • Companies endorsing TLM standard within press release: – Cadence, CoWare, Forte, Mentor, Philips, ST, Synopsys – Atrenta, Calypto, Celoxica, Chip Vision, ESLX, Summit, Synfora – OCP-IP • TLM kit, whitepaper, and examples publicly available at www.systemc.org • See also June 6 2005 online articles in EETimes and EDN • TLM standard is already in use in industry • IEEE standardization process to begin soon
  • 5. 5 Copyright 2005 Cadence Design Systems, Inc. TLM API Goals • Support design & verification IP reuse • Provide common TLM recipe • Usability • Safety • Speed • Generality – Abstraction Levels – HW / SW – Different communication architectures (bus, packet, NOC, ...) – Different protocols
  • 6. 6 Copyright 2005 Cadence Design Systems, Inc. Key Concepts • Focus on SystemC interface classes – Define small set of generic, reusable TLM interfaces – Different components implement same interfaces – Same interface can be implemented – directly within a C/C++ function, or – via communication with other modules/channels in system • Object passing semantics – Similar to sc_fifo, effectively pass-by-value – Avoids problems with raw C/C++ pointers – Leverage C++ smart pointers and containers where needed
  • 7. 7 Copyright 2005 Cadence Design Systems, Inc. Transaction Level Modeling with the TLM API an sc_port an sc_export port binds to channel a thread master router slaves master calls transport() in router slave implementation of transport() does the work router calls transport() in slave through 1 of 2 ports masters FIFOs arbiter slave SymbolsArbitration Example Router Example
  • 8. 8 Copyright 2005 Cadence Design Systems, Inc. TLM Abstraction Levels Cycle Accurate Level (CA) Word transfers Foundation: Clock Edge Cycle-accurate Programmer’s View + Timing (PVT) Bus architecture Foundation: Timed Protocol Timing approx. Programmer’s View (PV) Bus generic Foundation: Memory Map Masters/Slaves RT Level (RT) Signal/Pin/Bit Foundation: Registers, logic Cycle-accurate Algorithmic Level (AL) Functional Foundation: No Implementation Aspects Smaller, faster, less accurate Larger, slower, more accurate Model at a few levels that target the “pain” and risk in your D&V flow
  • 9. 9 Copyright 2005 Cadence Design Systems, Inc. Example TLM Application #1 Wireless Picture Frame based on ARM920T SystemC TLM Model  Full address map  Models all AHB transactions  ARM920 ISS master  Multiple slaves  Complete SW on ISS  PV provides ~1M cps  CA provides ~50kcps MAC 1 MAC 2 DMA DES FIFO memory 8KB FIFO memory 8KB MII MII VMIVGA FIFO memory 8KB Analog LCD/VGA AHB/Wishbone wrapper Control and JPEG software ARM920T ROM and DRAMData cache Inst cache Memory controller AMBA AHB SystemC TLM Interrupt controller
  • 10. 10 Copyright 2005 Cadence Design Systems, Inc. TLM Eases System Debug and Analysis
  • 11. 11 Copyright 2005 Cadence Design Systems, Inc. Review of Key TLM Terms • Nonblocking: Means function implementations can never call wait(). • Blocking: Means function implementations might call wait(). • Unidirectional: data transferred in one direction • Bidirectional: data transferred in two directions • Poke/Peek: Poke overwrites data and can never block. Peek reads most recent valid value. Poke/Peek are similar to write/read to a variable or signal. • Put/Get: Put queues data. Get consumes data. Put/Get are similar to writing/reading from a FIFO. • Pop: A pop is equivalent to a get in which the data returned is simply ignored. • Master/Slave: A master initiates activity by issuing a request. A slave passively waits for requests and returns a response.
  • 12. 12 Copyright 2005 Cadence Design Systems, Inc. Unidirectional versus Bidirectional • Unidirectional interfaces send data in only a single direction, and flow of control is in either or both directions. • Bidirectional interfaces send data in both directions, and flow of control is in either or both directions. • Examples: – A complete read transaction across a bus is bidirectional – “Place read address on bus” is unidirectional – Burst write with a completion status returned is bidirectional – Send IP packet is unidirectional • Any complex protocol can be broken down into a set of unidirectional and bidirectional accesses that use the TLM API
  • 13. 13 Copyright 2005 Cadence Design Systems, Inc. Primary TLM Interfaces • Primary Unidirectional Interfaces – tlm_poke_if<T> / tlm_peek_if<T> – tlm_put_if<T> / tlm_get_if<T> • Primary Bidirectional Interfaces – tlm_master_if<REQ, RSP> – tlm_slave_if<REQ, RSP> – tlm_transport_if<REQ, RSP> • Note: tlm_poke_if should be added to OSCI TLM kit soon
  • 14. 14 Copyright 2005 Cadence Design Systems, Inc. Hardware Implied by TLM Interfaces tlm_poke_if* valid data valid data tlm_peek_if tlm_put_if valid ready data valid ready data tlm_get_if tlm_master_if req_valid req_ready req_data rsp_valid rsp_ready rsp_data req_valid req_ready req_data rsp_valid rsp_ready rsp_data tlm_slave_if tlm_transport_if implies same HW as tlm_master_if, but also requests and responses are tightly coupled. tlm_poke_if is not yet in OSCI TLM standard, should be added soon. Poke/peek have overwrite semantics similar to writing to a variable or signal Put/get have queuing semantics similar to writing to a FIFO When values propagate asynchronously, combinational logic is implied. When values are held across clock edges, hardware registers are implied. The TLM interfaces can be easily mapped to HW. Understanding this mapping helps you to understand how to use the TLM interfaces. Note that the TLM interfaces are also useful in non-HW parts of your system (e.g. testbenches, SW modeling).
  • 15. 15 Copyright 2005 Cadence Design Systems, Inc. TLM Unidirectional Interfaces Inheritance Diagram tlm_blocking_get_if tlm_nonblocking_get_if tlm_blocking_peek_if tlm_nonblocking_peek_if tlm_get_if tlm_peek_if tlm_blocking_put_if tlm_nonblocking_put_if tlm_put_if tlm_blocking_get_peek_if tlm_nonblocking_get_peek_if tlm_get_peek_if tlm_fifo_debug_if tlm_fifo_get_iftlm_fifo_put_if tlm_poke_if tlm_fifo specific interfaces Primary Unidirectional Interfaces Pure Blocking and Nonblocking Interfaces
  • 16. 16 Copyright 2005 Cadence Design Systems, Inc. Thinking of Interfaces as Contracts – Provides versus Requires Requires Provides Requires Requires subset of provided interface, still plug-compatible
  • 17. 17 Copyright 2005 Cadence Design Systems, Inc. Importance of sc_export in SystemC 2.1 • sc_ports facilitate modular design by precisely declaring interfaces required at a module boundary • sc_exports facilitate modular design by precisely declaring interfaces provided at a module boundary • sc_ports and sc_exports allow interfaces to be passed through each level of the hierarchy • Use of sc_port and sc_export improves modularity by avoiding reliance on explicit multilevel paths • sc_export permits direct function call interfaces for TLM without introduction of extra process switches
  • 18. 18 Copyright 2005 Cadence Design Systems, Inc. Summarizing Provides / Requires • A channel that implements an interface class by inheriting from that class provides that interface to the outside world • An sc_export<IF> member within a module or channel provides that interface to the outside world • An sc_port<IF> member within a module or channel requires that interface from the outside world Requires Provides Requires port instance within module “lamp” two sc_export instances within module “wall” port instance within module “extension cord”
  • 19. 19 Copyright 2005 Cadence Design Systems, Inc. Design your components to maximize opportunities for reuse • In SystemC, channels and sc_exports that provide more than ports actually require are still “plug compatible”. – Mechanism that achieves this is C++ implicit conversion to base classes – Having a hierarchy of interface classes is thus the key enabler for this feature • Require the most minimal interfaces that are possible in a given situation – e.g. sc_port<tlm_nonblocking_get_if<T> > rather than sc_port<tlm_get_if<T> > • Provide the maximal interfaces that makes sense in a given situation – e.g. sc_export<tlm_put_if<T> > rather than sc_export<tlm_blocking_put_if<T> >
  • 20. 20 Copyright 2005 Cadence Design Systems, Inc. Leverage tlm_fifo to connect incompatible interfaces • tlm_fifo provides all the put, get and peek interfaces in blocking and nonblocking forms, so tlm_fifo can be used to connect any two unidirectional tlm interfaces except tlm_poke_if. • For example, can do blocking puts into tlm_fifo, and nonblocking gets out of it.
  • 21. 21 Copyright 2005 Cadence Design Systems, Inc. Develop and use a library of generic TLM components • The OSCI TLM already contains several good examples of generic TLM components: – tlm_fifo<T> – tlm_req_rsp_channel<REQ, RSP> – tlm_transport_channel<REQ, RSP> – router<ADDRESS, REQ, RSP> – simple_arb<REQ, RSP> // not a fully generic arbiter, example only • Leverage existing TLM generic components as much as possible. • Create your own generic TLM modules, channels, adapters, transactors, etc., when needed. – e.g. generic crossbar, pipeline, parallel to serial adaptor, cache, etc.
  • 22. 22 Copyright 2005 Cadence Design Systems, Inc. Deterministic Modeling • Use a good strategy for deterministic modeling (a.k.a. “avoid races”) – Enables reproducibility of simulation results across simulators – Aids refinement: a properly refined design will give same result • Strategies: (See “System Design With SystemC” page 120) – Use two-phase primitive channels such as tlm_fifo, tlm_poke_channel, tlm_req_rsp_channel, sc_fifo, sc_signal for all communication between SystemC processes – TLM models and systems that model arbitration commonly use an explicit two-phase synchronization scheme (SDWS ch. 8) – Use a deterministic model of computation such as KPN or SDF (SDWS ch. 5) – Combine above approaches for systems with mixed abstraction levels
  • 23. 23 Copyright 2005 Cadence Design Systems, Inc. TLM Interface Style • The TLM interface style is the same as sc_fifo, SystemC as a whole, and other C++ libraries, e.g. stl – Inbound data is always passed by const & – eg bool nb_put( const & ) – Outbound data returned by value if we can guarantee that there will be data to return – eg T get( tlm_tag<T> * ) – If we cannot guarantee that data will come back, we return the status and pass in a non const & : – eg bool nb_get( T & ) – We never use pointers – We never use non const & for inbound data • This is not pure pass-by-value, but it shares the need to provide copy constructors and destructors with pass-by-value – Think of it as being effectively pass-by-value
  • 24. 24 Copyright 2005 Cadence Design Systems, Inc. “Effective” Pass-by-Value • Benefits – Eliminates problems/bugs associated with pointers and explicit dynamic memory allocation and deallocation – Helps eliminate problems/bugs in which multiple SystemC processes write to the same shared variable (i.e. “races”) – Lifetime and ownership of objects is very simple and clear – Helps you reason about concurrent systems – Enables use of C++ smart containers and handles • Potential Drawbacks – Naive passing of large objects may lead to performance problems – Most common problem is passing large vectors or arrays of data by value
  • 25. 25 Copyright 2005 Cadence Design Systems, Inc. The TLM Copy-on-Write Vector • To pass large vectors or arrays very efficiently, use the TLM copy-on-write vector – tlm_cow_vec<T> • tlm_cow_vec<T> is nearly identical to std::vector<T> – The two can be easily swapped for each other. – Both use strict “by-value” semantics for assignment, construction, reading/writing elements, copying slices, etc. – Unlike std::vector<T>, tlm_cow_vec<T> does not support any operations that involve resizing the vector. – Unlike std::vector<T>, tlm_cow_vec<T> is very “smart” and does not actually copy any of the underlying data or allocate new data unless required. But this is all hidden to the user. – When tlm_cow_vec<T> is passed by value, copied, assigned, sliced, etc., only a very small amount of data in a handle is actually exchanged. • tlm_cow_vec<T> should be added soon to OSCI TLM kit • Contact stuart@cadence.com for more information about tlm_cow_vec<T>.
  • 26. 26 Copyright 2005 Cadence Design Systems, Inc. Conclusions • Benefits of TLM: – Fast and compact – Integrate HW and SW models – Early platform for SW development, easy to distribute – Early system exploration and verification – Verification reuse • TLM is the next level of design and verification abstraction in EDA, and the shift is now starting. • The OSCI TLM standard is available now and is already in use, and should foster the development of a TLM IP ecosystem.