{"id":13774813,"url":"https://github.com/Minres/SystemC-Components","last_synced_at":"2025-05-11T07:30:44.630Z","repository":{"id":14681992,"uuid":"70353573","full_name":"Minres/SystemC-Components","owner":"Minres","description":"A SystemC productivity library: https://minres.github.io/SystemC-Components/","archived":false,"fork":false,"pushed_at":"2025-05-06T12:49:31.000Z","size":62708,"stargazers_count":102,"open_issues_count":6,"forks_count":30,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-06T13:52:35.714Z","etag":null,"topics":["c-plus-plus","c-plusplus","systemc"],"latest_commit_sha":null,"homepage":"https://www.minres.com/#opensource","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Minres.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-10-08T19:41:50.000Z","updated_at":"2025-04-09T15:02:33.000Z","dependencies_parsed_at":"2023-01-16T20:01:35.971Z","dependency_job_id":"89185f9b-8d03-46c2-bd19-44d6a2e43f75","html_url":"https://github.com/Minres/SystemC-Components","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Minres%2FSystemC-Components","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Minres%2FSystemC-Components/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Minres%2FSystemC-Components/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Minres%2FSystemC-Components/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Minres","download_url":"https://codeload.github.com/Minres/SystemC-Components/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253533033,"owners_count":21923353,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-plus-plus","c-plusplus","systemc"],"created_at":"2024-08-03T17:01:30.575Z","updated_at":"2025-05-11T07:30:44.617Z","avatar_url":"https://github.com/Minres.png","language":"C++","funding_links":[],"categories":["Electronics Simulators"],"sub_categories":[],"readme":"SystemC-Components (SCC)\n========================\n\nSCC is supposed to be a light weight productivity library for SystemC and TLM 2.0 based modeling tasks using C++11.\n\nHere is a short list of features.\n\n* Extended logging and log configuration implementation\n\n  This is built on top of the SystemC report implementation and allows use of iostream based logging as well as instance based log level connfiguration\n  \n* Config file reader and configuration handler\n\n  The configurer allows to read a JSON file and apply the values to cci_param as well as to sc_attributes. This can be used for instance-based logging as well as instance-based trace configuration\n  \n* Automatic tracer\n\n  The tracer(s) allow to automatically discover signals and sc_variables (see below) and register them with the trace file. If the configurer is being used the tracing can be controlled on an per-instance base \n  \n* Various optimized trace file implementations   \n  * compressed VCD\n  * FST (used by [GTKWave](http://gtkwave.sourceforge.net/) and [Surfer](https://surfer-project.org/))\n\n* Tracing TLM2 Sockets\n\n  TLM2.0 compliant sockets which can be configured to trace transactions passing thru them using the SCV transaction recording facilities. The project is set-up to be used with Eclipse CDT and its build system\n\n* Stripped down version of SCV\n\n  To reduce the dependency SCC comes with a stripped down version of Accelleras SystemC Verification (SCV) library. This library does not support introspection and randomization anymore, its primary purpose is to enable transaction recording. Those traces can be visualized using [SCViewer](https://minres.github.io/SCViewer/).\n\n* Extended and optimized transaction recording database(s)\n\n  Aside of the SCV text file format SCC comes with other file format writer. scv_tr_sqlite is a SQLite based database back-end for the SystemC Verification library (SCV) transaction recording infrastructure while scv_tr_compressed is a text base database back-end with compression to reduce the file size. These format are also supporte by the [SCViewer](https://minres.github.io/SCViewer/).\n\n* sysc::sc_variable\n\n  A plain C/C++ variable wrapper to access a storage location via the SystemC object tree. It allows also to register value change observers to react on changes.\n  \n* sysc::sc_register\n\n  A resource wrapper to access a storage location via a TLM 2.0 socket. It allows to register read and write callback to implement register functionality upon reading/writing the register.\n  \n* sysc::tlm_target\n\n  A component distributing TLM2.0 accesses to target resources e.g. sysc::sc_register\n  \n* sysc::router\n\n  A simple component to route TLM2.0 accesses of a set of masters to a set of targets based on generic payload addresses\n  \n* various TLM2.0 AT and pin-level adapters for common bus protocols like\n  * APB\n  * AHB\n  * AXI/ACE\n  * OBI\n\nThe full documentation can be found at the [Github pages](https://minres.github.io/SystemC-Components/)\n\nBuild notes\n=======================================\n\nIf SystemC is build using cmake with `SC_WITH_PHASE_CALLBACK_TRACING=ON` (which is the default for SystemC 2.3.4), tracing will not work. Either SystemC is being installed with SC_WITH_PHASE_CALLBACK_TRACING=ON (which is the prefered way as this setting is in sync with the automake configure configuration, see https://github.com/accellera-official/systemc/issues/24) or the SCC is being build using `SC_WITH_PHASE_CALLBACK_TRACING=ON`.\n\nBuild instructions using conan\n=======================================\n\nThe repo is cmake based and (preferably) uses conan. Make sure that you have at least cmake 3.20 and conan version \u003c2.0 installed. There are known issues with conan 2.x. Other combinations may work, but are not tested.\n\nOn Linux\n=======================================\n\nThe suggested build steps are:\n\n- create a build directory and enter into it\n- execute cmake with applicable options \n- execute build\n- install build\n- run tests\n\nFor example:\n\n```\n\n    cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=\u003csome install path\u003e\n    cmake --build build -j16 \n    cmake --build build --target  test\n    cmake --build build --target install\n    ./examples/ace-axi/ace_axi_example\n    ./examples/axi-axi/axi_axi_example\n\n```\n\nOn Windows\n=======================================\n\n```\ncmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=\u003csome install path\u003e\ncmake --build build --config Release\ncmake --build build --config Release --target install\n```\n\nBuild instructions using install script\n=======================================\n\nSCC comes with an install script which installs SCC and all needed libraries incl. Boost and SystemC in one go:\n\n```\ncurl -s https://raw.githubusercontent.com/Minres/SystemC-Components/develop/contrib/install_wo_conan.sh | INSTALL_ROOT=\u003cinstall dir\u003e bash\n```\n\nThe script can also be downloaded and run with the install dir as argument:\n\n```\ncurl https://raw.githubusercontent.com/Minres/SystemC-Components/develop/contrib/install_wo_conan.sh \u003einstall_wo_conan.sh\nbash install_wo_conan.sh \u003cinstall dir\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMinres%2FSystemC-Components","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMinres%2FSystemC-Components","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMinres%2FSystemC-Components/lists"}