Uploaded by cool

systemc standards update sced2022

advertisement
Accellera SystemC Standards Update
SystemC Evolution Day 2022
Martin Barnasconi
Accellera Technical Committee Chair
accellera.org
© Accellera Systems Initiative
1
Outline
•
•
•
•
•
•
Accellera Systems Initiative & Working Groups
SystemC ecosystem
SystemC Working Groups Updates
Public Repositories
systemc.org Updates
How to join us
© Accellera Systems Initiative
2
Accellera Systems Initiative
Our Mission
To provide a platform in which the
electronics industry can collaborate
to innovate and deliver global
standards that improve design and
verification productivity for
electronics products.
© Accellera Systems Initiative
3
Accellera Working Groups
Verification-centric Working Groups
Portable
Stimulus
MultiLanguage
UVM
UVM-AMS
SystemC Working Groups
Language
SV-AMS
DT
AMS
CPS
Verification
Synthesis
Working Groups in other domains
Functional
Safety
IP-XACT
© Accellera Systems Initiative
IP Security
Assurance
4
CDC /
RDC
CCI
SystemC ecosystem
• SystemC is a C++-based language
standard, widely used for
Writ t en by t he End User
CPS
Met hodology- and Technology-specific Libraries
TLM
IEEE St d. 1666-2011
– System-level modeling,
design and verification
– Architectural exploration,
performance modeling
– Analog/mixed signal modeling
– High-level Synthesis
– Software development
Applicat ion
• Released as IEEE standards
AMS
CCI
SCV
IEEE St d. 1666.1-2016
Syst em C Core Language
St ruct ural
Elem ent s
Predefined
Channels
Modules
Port s
Export s
Int erfaces
Channels
Signal, clock, FIFO,
m ut ex, sem aphore
Ut ilit ies
Dat a Types
Report
handling,
t racing
4-valued logic t ype
4-valued logic vect ors
Bit vect ors
Finit e-precision int egers
Lim it ed-precision int egers
Fixed-point t ypes
Event -driven Sim ulat ion
Event s, processes
– IEEE Std. 1666-2011 (SystemC)
– IEEE Std. 1666.1-2016 (SystemC AMS)
Program m ing Language C+ +
ISO/IEC St d. 14882-2003
More information: https://systemc.org/
© Accellera Systems Initiative
5
UVMSyst em C
Accellera SystemC Working Groups
• SystemC Language Working Group (LWG)
– Chair: Laurent Maillet-Contoz (ST)
– Subgroups
• Common Practices (SCP): Chair: Mark Burton (Qualcomm)
• SystemC Datatypes (DT), Chair: Frederic Doucet (Qualcomm)
• SystemC Analog/Mixed-Signal Working Group (AMSWG)
– Chair: Martin Barnasconi (NXP)
• SystemC Configuration, Control & Inspection Working Group (CCIWG)
– Chair: Ola Dahl (Ericsson)
• SystemC Synthesis Working Group (SWG)
– Chair: Andres Takach (Mentor)
• SystemC Verification Working Group (VWG)
– Chair: Stephan Gerth (Bosch)
© Accellera Systems Initiative
6
SystemC Language Working Group
• Main activities this year
– Propose and review Language Reference Manual updates from/to IEEE-SA P1666
– Validating new and updated API for the next revision of the SystemC standard
– `Sanitizing` SystemC reference implementation (2.3.4) including other coding improvements
focusing on stability, robustness and scalability
• SystemC 2.3.4 has been released on the Accellera public repository on GitHub!
– https://github.com/accellera-official/systemc/tags
• Activities in the subgroups
– Ongoing study to improve performance of updated SystemC datatypes
– Growing collection of SystemC Common Practices thanks to community contributions
• Future plans
– Revamp SystemC regression environment – leveraging automation in GitHub
– Release SystemC reference implementation the next revision of the IEEE SystemC standard
© Accellera Systems Initiative
7
SystemC Common Practices Working Group
• The SystemC Common Practices Working Group ‘grew’ from SystemC Evolution Day –
please be proud! And PLEASE contribute.
• The repository is public: https://github.com/accellera-official/systemc-common-practices
• There are a growing range of “common practice” items already in and more on the way
• A big block this year is an extensive, efficient and easy to use reporting library
© Accellera Systems Initiative
8
SystemC Common Practices - New this year
• Initial extensions and CCI parameter definitions – WIP
• Reporting library
scp_debug(SCMOD) << “You text stream”;
– Support fatal, error, warning, info, debug and trace.
– Extremely efficient (optimized so you can use everywhere in your code).
– Controllable by CCI parameters (e.g. top.my.module.log_level=4)
• CCI params ‘hierarchical’ (e.g. top.log_level = 1 applies to lower level modules)
– Uses sc_report_handler::report under the hood, so as to ‘play nicely’ with existing SystemC
code, and with the standard.
– Many formatting options (implemented through the SC_REPORT_ mechanisms).
– (optionally) Uses spdlog which also handles async logging
© Accellera Systems Initiative
9
SystemC Common Practices - Next year…
• Registers …
– The CCI WG is currently looking into the interface, our plan is to provide an implementation.
• Multi-threading and Multi-process
– See talk later today !!!!
– Will include ‘multi-threaded’ quantum keepers, and multi-process bridges.
Anything else you would like to see?
What could you contribute?
© Accellera Systems Initiative
10
Data types Working Group
• Simulation performance improvements for sc_bigint and sc_biguint
– implemented and verified in branch
– will be merged into mainline after 2.3.4 release
• Future work (2023)
–
–
–
–
–
Future improvements to datatypes speed (sc_int)
Header only include
Type traits (constexpr access to number of bits, rounding mode, etc)
Derived types (“grow by 1 bits”, “remove two bits and round”, “add saturation” etc)
New data types being considered: sc_complex and sc_float
Please join and contribute! ☺
© Accellera Systems Initiative
11
SystemC Analog/Mixed-Signal (AMS) WG
• Main activities this year
Applicat ion
• SystemC AMS regression suite will be
released soon!
– Covering more than 700 tests, covering unit-level
tests, application-level tests and examples
– Final testing being conducted with SystemC 2.3.4
and SystemC-AMS Proof-of-Concept library 2.4
delivered by Accellera member company
Met hodology- and Technology-specific Libraries
IEEE St d. 1666.1-2016
– Complete the SystemC AMS regression suite
– Developing extensions and new features for the
next revision of IEEE 1666.1 (SystemC-AMS)
Writ t en by t he End User
Syst em C Analog/Mixed-Signal (AMS) Language
Tim ed Dat a
Flow (TDF)
Linear Signal
Flow (LSF)
Elect rical Linear
Net works (ELN)
Ut ilit ies and
Dat a Types
Modules, port s,
signals, em bedded
linear equat ions
Predefined prim it ive
m odules, port s,
signals
Predefined prim it ive
m odules, t erm inals,
nodes
Com plex t ype
Vect or t ype
Mat rix t ype
Const ant s
Tracing
Report ing
Scheduler
Linear DAE Solver
Tim e-dom ain and sm all-signal frequency-dom ain
sim ulat ion infrast ruct ure
Syst em C Core Language
IEEE St d. 1666 -2011
Program m ing Language C+ +
ISO/IEC St d. 14882 -2003
More information
https://systemc.org/overview/systemc-ams/
© Accellera Systems Initiative
12
SystemC Configuration, Control & Inspection WG
Use ca se s
• Main activities this year
– Alignment with SystemC LWG on the use of
cci_value vs. sc_any_value
– Clean-up of CCI reference implementation with
improved build infrastructure (automake and
cmake) - CCI 1.0.1 being released soon!
• CCI repository is now public:
• Proposal reviewed for a Register / Memory
Inspection API
– Collaboration with SystemC Common Practices
WG to coordinate implementation and testing
13
Analysis
Aut horing
Checkpoint ,
Reverse
sim ulat ion
St a n d a r d a b st r a ct ion s
Param et ers
Inspect ion
Probes
Save / Rest ore
Com m ands
M od e l in for m a t ion
Configurat ion
– https://github.com/accellera-official/cci
© Accellera Systems Initiative
Syst em
debug
St at e
(regist ers, variables)
Dat a
(perform ance, power, st at s)
More information
https://systemc.org/overview/systemc-cci/
Build-in debug
funct ionalit y
SystemC Synthesis WG
• The SystemC Synthesis Working Group is responsible for the SystemC synthesizable
subset, to enable synthesis of digital hardware from high-level specifications
• Current status
– Released the SystemC Synthesis Subset Language Reference Manual version 1.4.7 in 2017
• Developments and future plans
– Working Group defining next revision of the SystemC Synthesizable Subset, including:
– Alignment and consolidation on SystemC Datatypes to enhance HLS flows
– Update and finalize support of modern C++ language features defined in C++11/14/17
© Accellera Systems Initiative
14
SystemC Verification Working Group
• Main activities this year
Applicat ion
Writ t en by t he End User
– Development of UVM in SystemC standard and
reference implementation
– Standardization of Constrained Randomization API
– Extending UVM-SystemC “UBUS example” in with
Constrained Randomization using CRAVE
• Release and public review of UVM-SystemC
library 1.0beta4 earlier this year
• Build-flow improvements and other
enhancements in CRAVE implementation
Syst em -level Verificat ion and Validat ion Met hodology
UVM in Syst em C
Com ponent s
St im uli
Regist er Layer
Configurat ion
Test , environm ent , agent ,
driver, m onit or,
sequencer, scoreboard,
subscriber
Transact ion,
sequence it em ,
sequence, virt ual
sequence
Regist ers, m em ories,
address m aps,
adapt or, predict or,
backdoor access
Regist ry, resource,
resource dat abase,
configurat ion
dat abase, fact ory
Random izat ion*
(CRAVE)
Funct ional coverage*
(FC4SC)
Tem poral
assert ions*
Random variables and
object s, const raint s,
const raint solvers
Covergroups, bins,
coverpoint s, crosses, t ype
and inst ance, sam pling
Im m ediat e and
concurrent assert ions,
com bining sequences
Ut ilit ies
report ing,
recording,
policies, phasing,
callbacks
Syst em C Core Language
IEEE St d. 1666 -2011
Program m ing Language C+ +
ISO/IEC St d. 14882 -2003
* Int egrat ion on Roadm ap
More information
https://systemc.org/overview/systemc-verification/
© Accellera Systems Initiative
15
Accellera Public Repositories
• Accellera Public Repositories:
https://github.com/accellera-official/
• SystemC Working Groups with public repositories
– SystemC: https://github.com/accellera-official/systemc
– CCI: https://github.com/accellera-official/cci
– SystemC Common Practices:
https://github.com/accellera-official/systemc-common-practices
https://github.com/accellera-official/PySysC
– SystemC.org website
https://github.com/accellera-official/systemc.org
• Objective to make more working group repositories public
© Accellera Systems Initiative
16
systemc.org Updates
• New content added in 2022
– SystemC overview pages covering all
Working Groups
– SystemC Evolution Day Events and Fikas:
all presentations and videos
– Open Access Publications
– Libraries and Projects
• YOU can help in adding content!
– Submit your pull request to
github.com/accellera-official/systemc.org
© Accellera Systems Initiative
17
How to join us
• Become an Accellera Working Group member
– Join Accellera and participate in the Accellera working groups
– Direct access to the latest standardization proposals and development implementations
• Become a member of the IEEE Standards Association
– Join IEEE-SA to participate in the IEEE P1666 (SystemC) working group
• Share your experiences
– Visit www.accellera.org and join the community forums at forums.accellera.org
– Report your issues and/or create pull requests on the public SystemC GitHub repository
• Help us to grow the SystemC ecosystem and community
– Participate in community events such as the SystemC Evolution Day and Fika
– Contribute to the SystemC Community Portal systemc.org
– Promote the use of the SystemC standard in complex system simulation tasks
© Accellera Systems Initiative
18
Thank You
Q&A
© Accellera Systems Initiative
19
Download