Chapter 13: Modeling Best Practices

Version-Specific Notes for the SystemC Family

The SystemC, TLM, AMS, CCI, UVM-SystemC, synthesis, and common-practices versions used by the lessons.

Listen to this lessonAudiobook mode

How to Read This Lesson

This is a practical version note for the whole course: when a lesson says "SystemC", "CCI", or "UVM-SystemC", this page tells you which version baseline the explanation is using.

Standard and source context

The baselines come from the local LRMs in Docs/LRMs/, the official Accellera repositories listed in Docs/LRMs/SourceWebsite.txt, and the public Accellera release pages checked by scripts/check_accellera_updates.py.

Version Baseline Used in the Lessons

AreaBaseline taught in the siteWhere the implementation discussion points
SystemC coreSystemC 3.0.2 and IEEE 1666-2023Accellera SystemC GitHub repository
TLM-2.0Included with SystemC 3.0.2 and IEEE 1666-2023Accellera SystemC GitHub repository
SystemC AMSSystemC AMS 2.0 LRM; AMS release artifacts monitored separatelyAMS LRM plus SystemC DE synchronization lessons
SystemC CCICCI 1.0 LRM and CCI 1.0.1 proof-of-concept sourceAccellera SystemC GitHub repository/cci/configuration/src/cci
UVM-SystemCUVM-SystemC 1.0-beta6 public-review release signal; the local February 2023 draft LRM remains the clause-reading baseline until the newer manual is addedAccellera SystemC GitHub repository/uvm-systemc/src/uvmsc
SystemC Synthesis SubsetSystemC Synthesis Subset 1.4.7 LRMsynthesis subset lessons and HLS review rules
SystemC Common PracticesAccellera common-practices repository checkoutAccellera SystemC GitHub repository/systemc-common-practices

How Version Notes Should Be Used

If a class, function, macro, or source path changes upstream, the lesson that teaches that feature should get the version-specific note directly in the lesson. For example:

  • a scheduler behavior update belongs in the scheduler lesson
  • a socket implementation change belongs in the TLM socket internals lesson
  • a new CCI mutability rule belongs in the CCI parameter lifecycle lesson
  • a new UVM-SystemC phase behavior belongs in the phase lesson

The version note should explain:

  1. what changed
  2. which version introduced or clarified it
  3. whether it is a portable LRM change or an Accellera implementation change
  4. whether model code needs to change

Automated Upstream Check

The repository includes scripts/check_accellera_updates.py. It checks public Accellera release pages and the official GitHub repositories, then writes Docs/Audits/UPSTREAM_VERSION_CHECK.md.

The checker does not rewrite lessons automatically. That is deliberate. Version changes in standards need human judgment: sometimes a release changes implementation files but not portable behavior; sometimes an LRM clarification changes how a best-practice page should be worded.

UVM-SystemC Draft Note

Accellera's public-review page lists UVM-SystemC 1.0-beta6, published in July 2024. The local Docs/LRMs/uvm-systemc-language-reference-manual.pdf file is the February 2023 draft associated with the earlier public-review generation. Read the local document for the currently checked-in clause text, inspect the official accellera-official/uvm-systemc repository for implementation details, and verify beta6 differences before teaching a beta6-specific API or behavior.

Lesson self-check

Can you answer these clearly?

Keep moving when you can answer each question without looking back at the lesson.

Comments and Corrections