Beruflich Dokumente
Kultur Dokumente
Management
System
2
ESL Design Flow
Develop SW on Catch integration
high speed bugs early in the
models design cycle
SW Development
Spec Architecture
3
Reasons for Using ESL Modeling
Accelerates product release schedule
Firmware / Software development
software
Fast enough
TLM
(Transaction Level Models) Architectural modeling
Ready before RTL
RTL
Hardware verification
4
Electronic System Level Modeling
ESL Modeling helps in Solving
Complex ASIC/ SoC Development Challenges
Challenges
7
ESL/EDA tools List
Vendor Tool
9
Introduction - SystemC
10
Background and history
SystemC has its roots in the idea of using C++ for modeling hardware and
software components of a system. SystemC was released (ver 0.9) in September
1999 and ownership put into the hands of the Open SystemC Initiative (OSCI).
Since then development of the language has been done by the language working
group of the OSCI. Development of SystemC prior to its OSCI ownership was
done at Synopsys, Frontier Design and CoWare (Now acquired by Synopsys).
Major releases have been version 1.0 in January 2000, which introduced a set of
macros for easier reading and writing and version 2.0 introduced in July 2001
which changed SystemC from a cycle based simulator to event based and
restructured the core language.
OSCI is now merged with Accellera in 2011 and now it is Accellera SystemC
Initiative http://www.accellera.org/
Latest version is SystemC 2.3.1
11
Why C++ is inadequate
13
Modeling Terms and Model Types
14
SystemC Flows and Use
15
SystemC Flows and Use…… contd.
16
SystemC Language Architecture
17
Intro to SystemC
Scheduler
Delta Cycle
Working of SystemC scheduler
Initialization phase
Evaluate phase
Update phase
19
Scheduler Steps
20
Data Types
SC_MODULE(fifo) {
sc_in<bool> load;
sc_in<bool> read;
sc_inout<int> data;
sc_out<bool> full;
sc_out<bool> empty;
// rest of module not shown
};
23
Module Signals
24
Event and Processes
Event
Notify method
Process
Thread Process
Method Process
25
Event Type
26
Notify() method
27
Notify() method
Example
28
Process
29
Thread Process
30
Thread Process
Wait() function
The wait() function suspends execution of the process
until it is invoked again.
If no wait() is encountered in thread process, it is
executed in zero time. This is often referred to in
simulation as “zero time loop”.
31
Method Process
32
Transaction
OSCI TLM-2.0 Level Modeling (TLM)
standard of the
Open SystemC Initiative (OSCI)
Transaction Level Modeling
Functional
RTL
Model
Transaction
Pin accurate, level - function
cycle accurate call
write(address,data)
RTL Functional
Model
Fast enough
TLM
Architectural modeling
Ready before RTL
RTL
Hardware verification
Test bench TLM = golden model
Typical Use Cases for TLM
36
Use Cases, Coding Styles and Mechanisms
Use cases
Software Software Architectural Hardware
development performance analysis verification
Loosely-timed (LT)
Approximately-timed (AT)
Mechanisms
38
Interoperability Layer
1. Core interfaces
and sockets
Initiator Target
Command BEGIN_REQ
Address
Data END_REQ
Byte enables
Response status
BEGIN_RESP
Extensions
END_RESP
Forward Forward
path Interconnect path
Initiator component Target
0, 1 or many
Backward Backward
path path
Transaction
object
References to a single transaction object are passed along the forward and backward paths
40
Blocking versus Non-blocking Transport
41
Base Protocol - Coding Styles
Loosely-timed is typically
Blocking transport interface, forward and return path
2 timing points
Temporal decoupling and the quantum keeper
Direct memory interface
Approximately-timed is typically
Non-blocking transport interface, forward and backward paths
4 phases
Payload event queues
Loosely-timed and approximately-timed are only coding styles
The base protocol defines rules for phases and call order
42
Summary: Key Features of TLM 2.0
43
For more FREE information
http://www.accellera.org
http://www.accellera.org/downloads/standards/systemc
44
Thanks
Any Questions ? Please send queries to
akamboj@hcl.com
saravanan.n@hcl.com
45