SystemC Users Forum Japan February 1, 2001 Agenda  Why SystemC ?  Organizational Update  The Growing SystemC Marketplace  SystemC v2.0 Roadmap  v2.0

Download Report

Transcript SystemC Users Forum Japan February 1, 2001 Agenda  Why SystemC ?  Organizational Update  The Growing SystemC Marketplace  SystemC v2.0 Roadmap  v2.0

SystemC Users Forum Japan
February 1, 2001
Agenda
 Why SystemC ?
 Organizational Update
 The Growing SystemC Marketplace
 SystemC v2.0 Roadmap
 v2.0 Capabilities and Benefits
 v1.2beta Capabilities and Benefits
2
SystemC Mission - Model Concept to RTL
Environment
Specify
Product
Architecture
Hardware
Software
Co-Design
Implement
Co-Verify
Verify
3
Code
Reuse
IP
Reuse
IP
SW Code
Implement
Verify
Design
HW Design
Reusable
IP
Integration
Implement
Verify
Concept
to
RTL &
Software
RTL
to
GDSII
SystemC - Enabling System Level Design
System
System
Level IP
RTL
HW
Implementation
Soft IP
Verification &
Analysis
SW
Implementation
Physical
C-Compiler
Hard IP
4
Why SystemC ?
Stan Krolikoski
Vice President
System Level Design Group
Cadence Design Systems
The Evolution of SystemC
Full System Specification
2.x/3.y
Algorithm
Design
System Architecture
Design Space
Exploration
2.0
Links to Verification and
Implementation
1.0
Advanced & Functional Verification
Synthesis / Place & Route etc.
6
We’ve been here before
 During the 1960/1970’s, many SW languages were created
– Lack of compatibility between SW modules became a real issue
Even single languages had multiple dialects
– Eventually C/C++ became the de facto standard
Others still being used, e.g., Ada, Lisp,...
 During the 1970/1980’s, multiple HDLs started to be developed
– Strong actions by the US department of defense helped create VHDL
– Market dominance helped Cadence establish Verilog
– Not many alternative HDLs are being used today
But we still ended up with two!
Let’s not repeat the past!
7
We are at a fork in the road
 System level design is becoming necessary
– The size, speed and complexity of the latest designs require a
higher level of abstraction than RTL
 Good system languages will be crucial in enabling
system-level design
– Even in systems that are GUI based
 Therefore, we need to develop system languages,
but….
 Can we afford to have many system level languages?
NO!!!!!!
8
There must be A language for system design
 We cannot get into the mess we were with SW languages
 We cannot even afford to have two dominant languages
as in the HDL world
 We need a single language that can serve as
– A “backbone” for system-level design tools
– A common format for system level IP exchange and tool
interoperability
 Other languages may still be used for specialized tasks,
but we need a common system-level language
That Language is SystemC
9
We need everyone’s help!
 SystemC must meet the needs of both users and
vendors
 This requires a strong cooperation between companies
– Even between strong rivals-- we are all in this together
 The SystemC group already has a good mixture of
vendors and users from around the world
 But we need more members, and we need more user
participation in evolving SystemC
If SystemC is OUR language, then WE must develop it
10
Organizational Update
Pete Hardee
Director, Product Marketing
CoWare
Open SystemC Initiative Delivers !
 Fast Innovation
– SystemC v2.0 Specification
major step in system level modeling
cross industry contributions
- Cadence, CoWare, Fujitsu, Motorola, STM, Synopsys
– SystemC v1.2 beta Software
 Common, Open Industry Solution
– OSCI incorporated NOW as non profit organization
– OSI-compliant Open Source license
 Broad industry adoption and success !
12
Open SystemC Initiative Steering Group
13
Strong User Adoption and Success
 Over 7,000 Licensees at over 500
companies/institutions
 Over 12,000 successful downloads of SystemC
source code
 SystemC successes presented at numerous
venues
– DATE, FDL, HDL Con, IP/SoC, ASP/DAC, ESP, …
– CSELT, Infineon, Siemens, STM, ...
 Commercial projects featured on web based
SystemC Forum at www.systemc.org
14
14000
Downloads
12000
Licensed Users
10000
SystemC v1.0/1.1beta
Released
8000
6000
4000
15
Nov-00
Sep-00
Jul-00
May-00
Mar-00
Jan-00
0
Nov-99
2000
Sep-99
Users/Downloads
A year of Strong SystemC Adoption
SystemC Solutions
Kevin Kranen
Director, Strategic Programs
Synopsys, Inc.
SystemC Value Chain is Building
 Over 25 SystemC-based EDA, IP and service
products announced or released by:
 See http://www.systemc.org/products.html for
exhaustive list
17
SystemC Product Briefs
All product claims contained within
are provided by the respective
supplying company.
Blue Pacific Computing
BlueWave
 Blue Pacific’s BlueWave is a simulation GUI,
including waveform viewer that can be used to
view and analyze VCD results on Linux, Unix,
Windows, including SystemC outputs. BlueWave
Student version is free.
 Enables visualization and analysis of SystemC
modeling
 Contact Blue Pacific at: [email protected] of find
us on the web at www.bluepc.com, phone: (858)
484-7500
19
Blue Pacific Computing
SystemC
Classes
 Three-day SystemC On-Site Classes focussing
on SystemC for VHDL and Verilog Designer with
additional two-day foundational course on C and
C++
 Teaches SystemC modeling and simulation to
people with traditional Verilog or VHDL
background.
 Contact Blue Pacific at [email protected] or find
us on the web at www.bluepc.com, phone: (858)
484-7500
20
SPW 4.6-SystemC 1.0
Co-simulation
True Co-simulation
– Synchronization maintained between
Full System Specification
Block Level
Specification
SPW Floating Point
Algorithm Analysis
SPW Fixed Point
Algorithm Analysis
Software
Development
Hardware
Development
IP Block Authoring
SPW
DSP Behavioral Specification
SPW/HDS and SystemC simulators
– Debugging may be done in either SPW
and/or in SystemC debugger
– Breakpoints can be set in either system
– Will work with any SystemC 1.0 simulator
SPW HDS Block Implementation
Implementation Flow
21
SystemC 1.0
SYSTEMSIM™
 Multilingual simulator, supporting Verilog, Superlog, C,
C++ and SystemC, without interfaces or co-simulation
C / C++ HDL
Superlog
SYSTEMSIM
SystemC
 Allows SystemC models to be called from alternative
language constructs to provide a fast, usable method
to solve alternative language IP and legacy code issues
 Contact Co-Design Automation, Inc,
www.co-design.com, [email protected]
22
Vip Library: a wide set of customizable and
flexible system level Intellectual Property Soft
Cores to answer Information and Communication
Technologies Product requirements
Availability of SystemC Core description to stress
architectural exploration before HW/SW
partitioning is performed.
Contact CSELT S.p.A, [email protected],
23
CoWare N2CTM
 CoWare N2C - Napkin to Chip in Half the Time. Full
SystemC Co-Design Environment featuring:
– Specification
– Partitioning
– Co-implementation
– Co-verification
}
Analysis at every stage
 Read in and write out SystemC from CoWare N2C
– CoWareC or SystemC in
– CoWareC, SystemC, VHDL and Verilog out
 Visit www.CoWare.com
24
CoWare N2C System-Level
Design Flow
Algorithms, Control
and Testbench
ANSI C/C++, SystemC
or CoWare C
Architecture
Function
Behavioral C/C++
System Design
and Partitioning
Executable
Implementable Spec
HW Design
Interface
SW Optimization
RTLC
Generate
HDL
Synthesis
Testbench
Interface Synthesis
Cycle-Accurate C/C++
HW-SW Co-design
and Multi-level
Co-verification
SW Image + RTL
"Traditional"
HW-SW Co-verification Implementation
25
IP and Performance
Models
Databahn Memory
Subsystem Generator
 Databahn, an on-line tool, generates
synthesizable memory controller cores and
automatically produces all C-level verification
support for the associated memory subsystem
 Produces SystemC models of these cores
 Contact: Steven Shrader (208) 376-6030,
[email protected] or visit our website at
www.denalisoft.com
26
(in-System Algorithm Verification Engine)
 Dynalith’s iSAVE technology combines the benefits of Cbased design with the ability of H/W emulation running with
the real target system at real speed.
 iSAVE framework supports hardware models in high-level
programming languages including SystemC.
 Contact Dynalith Systems (www.Dynalith.com) at:
– [email protected] (H.Q.)
– [email protected] (World Wide)
– [email protected] (USA)
– [email protected] (Japan)
27
iSAVE design flow
with SystemC
Algorithm in SystemC
Automated iSAVE Design Environment
PrepIFM
(designates interface modules and protocols)
An example of MPEG2 Decoding
iscconfig
PSGbuilder
Synthesizer
PAGbuilder
Synthesizer
Modified
SC code
Compiler
TIE
Configuration
Data
Executable
Code
 Proven SystemC-based architectural exploration
 Interactive C-to-HDL design flow
 Optimized implementation
 High level design re-use
 ASIC and FPGA
 Silicon proven for :
– ultra-low power applications
– telecom base-band processing
– consumer speech processing
 Contact [email protected]
29
Outputs
Inputs
 Automatic SystemC-to-HDL
 What You Write Is What You Get
 Produces hierarchical Mealy Machine
 VHDL and Verilog output
 ASIC and FPGA
 Automatic test-bench generation
 Contact [email protected]
 http://www.frontierd.com
Compute process
(combinatorial)
Compute
Update
Update process
(sequential)
Clk
30
Reset
Enable
 Fixed-point data types contributed to SystemC
 Bit-accurate modeling
Abstract Base Class
 Any width and precision
Fix<w,d>
Ufix<w,d>
 Overflow and quantization behavior
Int<w>
Uint<w>
 Analysis and statistics
 For LINUX, SUN Solaris, Microsoft Windows, HP-UX
 For Microsoft, Borland, Sun, HP and GNU C++ compilers
 Downloadable from http://www.frontierd.com
 Contact [email protected]
Fix<5,2>
Ufix<5,2>
S
Int<5>
S
31
Uint<5>
VStation Co-Modeling
 Ultra high-performance Co-Modeling between behavioral
models running on a workstation and implementation
models running on IKOS VStation.
– Based on the world’s first high-performance transaction
interface
– System verification productivity at emulation speed
 Enables SystemC models to be used in conjunction with
emulation
– Bring the value of high performance emulation earlier in the
verification process
– Utilizing your SystemC environment throughout the design
cycle
 http://www.ikos.com
32
Design Flow
Closing The Verification
Productivity Gap
Untimed
C
Run 4 seconds
real-time
verification in…
5 minutes
Overnight
Mixed-Level
C
1.5 months
RTL HDL
1.25 years
Gate-Level
Real
Hardware
33
4 seconds
Visual SLD
 Systems-Level Design environment for defining and
verifying system architecture, Hardware/Software
co-verification, Register Definition. Includes
Embedded Systems support, Complete code-coverage
debug and analysis. Built upon the strongest graphic
entry tool in the industry, Visual HDL. Truth-table,
flowchart, Finite-State Machine, Block Diagram
 Language design via SystemC, C/C++, Verilog, VHDL
 www.innoveda.com, or (800) 223-8439
34
Visual SLD
35
TestBencher Pro
 Graphical environment for generating bus-functional models
 TestBencher generates SystemC test benches from language
independent timing diagrams.
– Generates all the class code for each diagram, including port
mappings and sensitivity lists
 Visit www.syncad.com and download an evaluation version
 Contact SynaptiCAD at [email protected] or 800-804-7073
36
TestBencher Pro
Generates SystemC Code
CoCentricTM Tools
Architecture
Functionality
CoCentricTM
System Studio
SystemC
CoCentricTM
SystemC Compiler
+
a.out
CoCentricTM
System Studio
HW/SW Co-Design propelled by SystemC
 integrated system level tool for
… performance analysis of
system architecture and function
… concurrent design of HW and SW
at multiple levels of abstraction
 Contact [email protected] or visit
www.synopsys.com for more information
39
CoCentricTM
SystemC Compiler
Complete synthesis from SystemC to hardware
 C/SystemC synthesis
… refine & synthesize from C/C++ executable spec
… path to FPGAs for system designers
… powerful constructs for RTL designers
 Complete
Behavioral
or RTL
CoCentric
SystemC Compiler
… behavioral & RTL
… SoCs, ASICs, FPGAs
 Contact [email protected] or visit
www.synopsys.com for more information
40
Design Compiler
Physical Compiler
FPGA Compiler II
SystemC-HDL Co-Simulation
HDL
Interface
Library
 VCS, Scirocco, MTI-VHDL
 Model import & export
 Contact [email protected] or visit
www.synopsys.com for more information
41
HDL
SystemC-VERA I/F
 High performance, direct kernel interface for integrating
VERA with SystemC
 Uses the powerful, verification related features in VERA
to verify system designs described in SystemC
 Contact [email protected] or visit the website at
www.synopsys.com for more information
42
TT VTOC
 Converts from Synthesisable Verilog to C/C++
– Compiles multiple Verilog modules totalling up to about
100K gates into one large, highly-efficient, cycle-based C
or C++ implementation.
– Provides a mechanism for efficient linking of separately
compiled modules.
– Main applications are fast simulation and generation of a
system-level emulator for the software team.
 SystemC is one of the output formats
 Web site is www.tenisontech.com
43
SuperC™
 A very fast SystemC Simulator that writes a
highly compressed data format. This wave form
data is compressed by 15-50X and can be
displayed almost instantly by the Undertow
waveform viewer regardless of file size.
 Veritools provides the SuperC™ C++ class
compile library for the Veritools SuperC™
simulator
 Contact Veritools at [email protected] or
Robert Schopmeyer at [email protected]
44
Undertow Suite
 A waveform viewer and Source Code debugging program
for the SystemC/SuperC™ Simulator that reads the the
highly compressed data format that is written directly by
the SuperC™ simulator. This waveform data can be
displayed almost instantly by the Undertow waveform
viewer regardless of file size while providing linkage and
synchronization with the SystemC source code.
 Undertow uses the highly compressed “Fast file” format
from SuperC™ while providing Source Code debug
facilities for SystemC Source Code.
 Contact Veritools at [email protected], or Robert
Schopmeyer at [email protected]
45
Undertow
 A very powerful waveform viewer for the
SystemC/SuperC™ Simulator. This wave form data can
be displayed almost instantly by the Undertow
waveform viewer regardless of file data size
 Undertow uses the SystemC native waveform data or the
highly compressed “Fast file” format from SuperC™
 Contact Veritools, Inc. at [email protected] or
Robert Schopmeyer at [email protected]
46
From Virtual Prototyping
to SystemC
 Evaluate, experience, and design embedded IP
platforms from your browser!
 Explore pre-configured embedded platforms,
create high-level system models, and generate
SystemC to link your designs to implementation.
 For more information contact [email protected] or
visit our web site at www.virtio.com.
47
Training:
 Modeling with SystemC.
– Introduction to modeling with C/C++ and the SystemC
class libraries. Learn how to write, compile, execute, and
debug system and hardware descriptions with SystemC.
 SystemC for High Level Synthesis(HLS)
– Learn HLS concepts, SystemC coding style required for
HLS, testbenches and RTL co-simulation.
 For more information or for class schedules email to
[email protected], or visit website at www.whdl.com
48
Language Rule Checker
 Complete language rule checker
 Performs netlist, general coding style and
synthesis coding style checks on your
SystemC code.
 Contact Willamette HDL, [email protected]
49
Open SystemC Initiative Delivers !
 Fast Innovation
– cross industry contribution
 Common, Open Industry Solution
– OSCI incorporating NOW as non profit organization
– OSI-compliant Open Source license
 Broad industry adoption and success !
50
SystemC v2.0 Roadmap
Takashi Hasegawa,
Director of Strategic Software
Systems, World Wide System LSI
Technologies - Fujitsu
SystemC v2.0 Innovation
 SystemC v1.0
– RTL & behavioral level modeling (HDL & beyond)
– integrated with higher level C/C++ functional modeling
 SystemC v2.0
– provides higher levels of abstraction
– enables modeling of HW / SW interaction
– flexible communication channel refinement
52
SystemC Evolution
SystemC
v2.0 LRM
v2.0 Detailed
Spec
v2.0
beta
v1.2
beta
• v2.0 model of time
• Dynamic sensitivity
• Code fixes
Feb
2001
53
New SystemC
Foundation for Systems
• Channels & Events
• Comms Refinement
• Backward compatibility
Q2
2001
v2.0
Production
• User Validation
Q3
2001
SystemC Release Roadmap
 1.0 - Hardware Design Flow
– RTL and Behavioral Hardware Modeling
 1.x - Master-Slave Communication Library
– RPC-based untimed & timed functional modeling down to
RTL for bus protocol based systems
 2.0 - System Design Flow
– General purpose communication and synchronization
– Communication Refinement
– Multiple, customizable models of computation
54
SystemC Release Roadmap (cont)
 2.X - Extensions to System Design Flow
– Dynamic thread creation, fork / join
– Interrupt / abort for behavioral hierarchy
– Performance modeling support
– Timing specification and constraints
 3.X Software Design Flow
– Abstract RTOS modeling
– Scheduler modeling
 4.X - Analog / Mixed Signal Systems Modeling
55
SystemC 2.0 Specification
and Benefits
Thorsten Grötker
Synopsys, Inc.
Motivation
 SystemC 1.0
HW modeling (RTL and behavioral)
 SystemC 2.0
extend scope to System-Level Modeling
 System-Level Modeling
– functional models
– transaction-level platform models
– high-level architecture models
57
How do we achieve this?
 We use a flexible and powerful Model of
Computation (MoC).
 A MoC is characterized by
– the model of time employed,
– the rules for process activation, and
– the supported means of communication.
58
MoC: Model of Time
 SystemC 1.0
Relative floating-point model of time (double)
 SystemC 2.0
Absolute (64 bit) unsigned integer model of time
 Why?
– Avoid finite precision effects, e.g. underflow
– Use absolute model of time: define time units
(IP exchange)
59
MoC: Rules for Process Activation
 SystemC 1.0
– Static sensitivity
Processes are made sensitive to a fixed set of signals during
elaboration
 SystemC 2.0
– Static sensitivity
– Dynamic sensitivity
The sensitivity (activiation condition) of a process can be
altered during simulation (after elaboration)
Main features: events and extended wait() method
60
Events
 Events are objects (sc_event)
 Events can be notified (sc_event::notify())
 Channels use events
(Signals use events to indicate value changes.)
 Modules can use events
 Processes can wait for events
(Dynamic sensitivity)
61
Waiting
wait();
// as in SystemC 1.0
wait(event);
// wait for event
wait(e1 | e2 | e3); // wait for first event
wait(e1 & e2 & e3); // wait for all events
wait(200, SC_NS);
// wait for 200ns
// wait with timeout
wait(200, SC_NS, e1 | e2);
wait(200, SC_NS, e1 & e2);
62
MoC: Communication
 SystemC 1.0
– Fixed set of communication channels (sc_signal, …)
and ports (sc_in, sc_out, …).
 SystemC 2.0
– user-defined
interfaces
channels
ports
Define your own bus,
message queue, … etc.
– richer set of predefined channels
(HW signals, FIFO, semaphore, mutex, …)
63
Interfaces and Channels
 An interface is a set of methods implemented by
a channel.
struct write_if : public sc_interface
{
virtual void write(char) = 0;
virtual void reset() = 0;
};
struct read_if : public sc_interface
{
virtual void read(char &) = 0;
virtual int num_available() = 0;
};
 A channel can implement multiple interfaces.
64
Ports
 Ports …
– connect modules and channels
– specify the required interface (e.g. sc_port<IF>)
– give modules (processes) access to interface methods
sc_port<write_if> p;
void some_process() {
...
p->reset();
p->write(‘X’);
...
}
65
Primitive and Hierarchical Channels
 Primitive channels
– are atomic entities
– have no visible internal structure
– can use request-update scheme (HW signals)
 Hierarchical channels
– are modules that implement interfaces
– can have ports
– can contain processes, modules, and channels
 Both implement interfaces
66
Architecture of SystemC 2.0
Methodology-specific and
User-Defined Channels
Elementary channels
(signals, FIFOs, …)
Channels, Interfaces, Ports
Events, Dynamic Sensitivity
SystemC Scheduler
67
Model of Computation
 Very powerful and flexible
 Supports well known MoCs such as
– discrete-event models
RTL / behavioral HW models
network modeling
transaction-level SoC platform modeling
– Kahn process networks
static multi-rate data flow
dynamic data flow
– Communicating Sequential Processes
68
Benefits of SystemC v2.0
 Enables, fast smooth system design
– Communication can modeled and refined independent of
function
 Supports virtually all system modeling needs
– Flexible semantic foundation additions support most
models of computation within one environment
– Leverages all existing v1.0 and v1.1beta capabilities
 Broadly applicable, “best of breed” solution
– Designed by 12 experts from six different EDA and System
IC companies
– Tuned for both EDA tool and IP use
69
System design capabilities
in v1.2beta
Dündar Dumlugöl
Director of Engineering, CoWare
Master-Slave communication library
 Targets systems with bus protocol communication
SoC’s with cores, DSP’s, peripherals & custom HW
 Enables automatic synthesis of bus interfaces
 Complete path from Functional to RTL
71
Abstractions
Matlab
SpecC
SDL
Esterel
Others
Functional decomposition
SystemC
UTF
Untimed Functional
Assign ‘execution time’
Design Exploration
Performance Analysis
HW/SW partitioning
TF
Timed Functional
HW / SW Partition
Architectural mapping
Refine communication
Task Partitioning
Abstr.
RTOS
BCA
Bus Cycle Accurate
Refine behavior
Target RTOS/Core
Software
72
RTOS
RTL
Cycle Accurate
Hardware
Gradual Refinement of the Design
Key to the methodology is that a design may be refined in a gradual step-wise fashion,
rather than in one giant step… it need not be “all or nothing”.
UTF
UTF
UTF
Simulation
UTF
Details added
to portions of
the system.
UTF
UTF
UTF
TF
Simulation
UTF
TF
TF
BCA
RTL
Simulation
UTF
73
RTL
Key modeling paradigms
 Abstract functional communication
Point-to-point & multi-point sequential channel
Abstract model for bus communication
 Concurrent communication & synchronization
 Cycle accurate bus protocol communication
74
Point-to-Point abstract communication
Equivalent to function call but without
function pointer
P1
P2
Structure is
key for re-use
Concurrent process
75
Slave process
Specify a communication through …
 Initiator (master / slave ports)
 Direction of data transfer (in-, out-, inout ports)
 Data type
 Index (=address)
 Channel / transaction configuration
– Type of communication (e.g.blocking with time out)
– Return status (pass/ fail …)
 Bus protocol at the cycle accurate level
76
Multi-point abstract communication
A
B
77
A11
A12
A21
A22
A13
Example: sequential execution thread in
a system
Keyboard
Control
Processor
cmd
cmd
op1
op1
op2
op2
result
Display
display
78
Sequential & concurrent communication
in a hierarchical channel
BW: blocking write with time-out
BR: blocking read with time-out
Producer
Consumer
BW
bWrite bRead
FIFO
clk1
clk2
FIFO channel
79
BR
Example: full-handshake protocol
Producer
link
Consumer
Full Handshake protocol
Producer
clk1
80
Req
Ack
Data
Consumer
clk2
Dynamic thread library (prototype)
 For future SW flow
– Enables fork & join functionality
– Foundation for future RTOS
 Create thread at run time
 Start another thread with process id
 Stop thread (self)
 Kill another thread
 Get parent id
81
Benefits of master-slave library
 HW/SW co-design from Functional to RTL
 Enables automatic synthesis of bus interfaces
 Enables fast IP embedding & HW-SW partitioning
 Orders of magnitude faster than RTL verification
82
Panel Session
Moderator:
Masaharu Imai (Osaka University)
Panelist names and titles
 EDA Tool Provider
– Shusaku Yamamoto
– Kiyoshi Ikuta
– Junji Nakano
Cadence
CoWare
Synopsys
 User
– Takashi Hasegawa
– Masamichi Kawarabayashi
– Masaru Kakimoto
84
Fujitsu
NEC
SONY