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.

How to Read This Lesson

This is not a separate coverage map. It 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.

Source and LRM Trail

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-2023.codex-src/systemc/src/sysc
TLM-2.0Included with SystemC 3.0.2 and IEEE 1666-2023.codex-src/systemc/src/tlm_core/tlm_2
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 source.codex-src/cci/configuration/src/cci
UVM-SystemCUVM-SystemC 1.0-beta5 public review release and LRM.codex-src/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 checkout.codex-src/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.

Comments and Corrections