{"id":23277730,"url":"https://github.com/mazen-daghari/systemc-first-project","last_synced_at":"2026-04-26T20:31:17.876Z","repository":{"id":261637010,"uuid":"884902660","full_name":"mazen-daghari/SystemC-first-project","owner":"mazen-daghari","description":"this project is a guide for those want to start using systemc on viusal studio (windows os ) ","archived":false,"fork":false,"pushed_at":"2024-11-07T15:42:33.000Z","size":16058,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T06:09:05.076Z","etag":null,"topics":["c","c-compiler","hello-world","systemc","visual-studio","windows"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mazen-daghari.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-11-07T15:39:27.000Z","updated_at":"2024-11-24T16:03:02.000Z","dependencies_parsed_at":"2024-11-07T16:51:29.120Z","dependency_job_id":null,"html_url":"https://github.com/mazen-daghari/SystemC-first-project","commit_stats":null,"previous_names":["mazen-daghari/systemc-first-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mazen-daghari/SystemC-first-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazen-daghari%2FSystemC-first-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazen-daghari%2FSystemC-first-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazen-daghari%2FSystemC-first-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazen-daghari%2FSystemC-first-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mazen-daghari","download_url":"https://codeload.github.com/mazen-daghari/SystemC-first-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazen-daghari%2FSystemC-first-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32312174,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T19:15:34.056Z","status":"ssl_error","status_checked_at":"2026-04-26T19:15:15.467Z","response_time":129,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","c-compiler","hello-world","systemc","visual-studio","windows"],"created_at":"2024-12-19T22:14:07.837Z","updated_at":"2026-04-26T20:31:17.855Z","avatar_url":"https://github.com/mazen-daghari.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# SystemC-first-project\nthis project is a guide for those want to start using systemc on viusal studio (windows os ) \n\n\n\nThis release has been tested on Visual C++ version 2019 running Windows 10.\n\nNote: This section covers the installation based on Microsoft Visual C++. For Cygwin or MinGW-based installations, see Section 1.\n\nNote: If you experience spurious errors about missing files in the downloaded archive, please make sure to either download the ZIP archive from accellera.org or use a reliable archive software, fully supporting modern tar archive versions.\n\nSome paths in the SystemC archive are longer than the historical 99 character limit, and several Windows archivers (e.g. WinZip) have been reported to trip over this. The open source archiver 7-zip is known to work.\n\nMicrosoft Visual C++ 2017 (compiler version 15.0) or later\nThe download directory contains two subdirectories: msvc16 and examples/build-msvc.\n\nThe msvc16 directory contains the project and workspace files to compile the systemc.lib library. Double-click on the SystemC.sln file to launch Visual C++ 2019 with the workspace file. The workspace file will have the proper switches set to compile for Visual C++ 2019. Select Build SystemC under the Build menu or press F7 to build systemc.lib.\n\nThe examples/build-msvc directory contains the project and workspace files to compile the SystemC examples. Go to one of the examples subdirectories and double-click on the .vcxproj file to launch Visual C++ with the workspace file. The workspace file will have the proper switches set to compile for Visual C++ 2019. Select 'Build .exe' under the Build menu or press F7 to build the example executable.\n\nFor convenience, a combined solution file SystemC_examples.sln with all example projects can be found in the examples/build-msvc directory. A similar solution file tlm_examples.sln for the TLM examples is available as well.\n\nThe provided project files are prepared for both the 32-bit (Win32) and 64-bit (x64) configurations. Please refer to the Microsoft Visual Studio documentation for details about 64-bit builds.\n\nIn addition to building static libraries for SystemC, the provided project files include support for building a SystemC DLL (configurations DebugDLL, ReleaseDLL).\n\nCreating SystemC Applications\nStart Visual Studio. From the Start Page select New Project and Win32 Console Project. Type the project name and select a suitable location then click OK.\n\nSelect the Application Settings page of the Win32 Application Wizard and make sure the 'Empty project' box is ticked. Click 'Finish' to complete the wizard.\n\nAdd new/existing C++ files to the project and edit code.\n\nDisplay the project Property Pages by selecting 'Properties...' from the Project menu.\n\nFrom the C/C++ tab, select the Language properties and set 'Enable Run-Time Type Info' to Yes.\n\nFrom the C/C++ tab, select the Command Line properties and add /vmg to the 'Additional Options:' box.\n\nFrom the Linker tab, select the Input properties and type systemc.lib in the 'Additional Dependencies' box.\n\nClick OK.\n\nAlso make sure that the compiler and linker can find the SystemC header and library files respectively. There are two ways to do this:\n\nTo update the include file and library directory search paths for all projects:\n\nSelect Tools -\u003e Options... and the Projects -\u003e VC++ Directories tab\n\nSelect show directories for: Library files\n\nSelect the 'New' icon and browse to: C:\\systemc-3.0.0\\msvc16\\systemc\\debug\n\nSelect show directories for: Include files\n\nSelect the 'New' icon and browse to: C:\\systemc-3.0.0\\src\n\nTo add the include file and library directory search paths for the current project only:\n\nDisplay the project Property Pages by selecting 'Properties...' from the Project menu.\n\nFrom the C/C++ tab, select the General properties and type the path to the SystemC 'src' directory in the text entry field labeled 'Additional include directories' (e.g., the examples use ..\\..\\..\\src).\n\nFrom the Linker tab, select the General properties and type the path to the SystemC library: ...\\systemc-3.0.0\\msvc16\\systemc\\debug in the 'Additional Library Directories:' box.\n\nClick OK.\n\nBuilding against a SystemC DLL\nIn order to link your application against a DLL-build of SystemC (build configurations DebugDLL, ReleaseDLL in the SystemC library build), several changes are needed.\n\nAdjust the linker library directory settings to reference DebugDLL (or ReleaseDLL) instead of Debug or Release, respectively:\n...\\systemc-3.0.0\\msvc16\\systemc\\DebugDLL\n\nAdd the preprocessor switch SC_WIN_DLL to your project's properties\n(C/C++ -\u003e Preprocessor -\u003e Preprocessor Definitions).\n\nWhen running the simulation, you need to add the location of the SystemC DLL to your PATH variable.\n\nSystemC Library Configuration Switches\nIn addition to the explicitly selectable feature given as options to the configure script (see 1.), some aspects of the library implementation can be controlled via\n\npreprocessor switches given during library build\npreprocessor switches added while building a SystemC application\nenvironment variables\nThe currently supported switches are documented in this section.\n\nPreprocessor switches\nAdditional preprocessor switches for the library build can be passed to the configure script via the CXXFLAGS variable:\n\n  ../configure CXXFLAGS=\"-DSC_OVERRIDE_DEFAULT_STACK_SIZE=0x80000\"\nIn Visual C++, the preprocessor symbols can be added to the project configuration via the 'C/C++' tab under the 'Preprocessor' properties in the 'Preprocessor definitions' setting. Alternatively, you can add the switches to the SystemC.vsprops property sheet to apply these settings to all build configurations.\n\nSC_CPLUSPLUS\nOverride automatically detected C++ standard support\n\nThis setting allows downgrading the assumed version of the underlying C++ standard on the current platform. By default, the compiler-selected version is chosen.\n\nCurrently known values are:\n\nSC_CPLUSPLUS=201703L (C++17, ISO/IEC 14882:2017)\nSC_CPLUSPLUS=202002L (C++20, ISO/IEC 14882:2020)\nSC_CPLUSPLUS=202302L (C++23, ISO/IEC 14882:2023)\nNote: This symbol needs to be consistently defined in the library and any application linking against the built library.\n\nSC_DEFAULT_WRITER_POLICY=\u003csc_writer_policy\u003e\nOverride default value for the signal writer policy\n\nThis setting allows deactivating the multiple writer checks for sc_signals at (application) compile time. This mechanism supersedes the old environment variable SC_SIGNAL_WRITE_CHECK (see below).\n\nSupported values:\n\nSC_ONE_WRITER (default)\nSC_MANY_WRITERS (allow multiple writers in different deltas)\nSC_UNCHECKED_WRITERS (non-standard, disable all checks)\nNote: Only effective when building an application.\nNote: This setting needs to be consistently set across all translation units of an application.\n\nSC_DISABLE_VCD_SCOPES\nDisable grouping of VCD trace variables in hierarchical scopes by default\n\nNote: Only effective during library build.\nSee : Environment variable SC_VCD_SCOPES\n\nSC_DISABLE_COPYRIGHT_MESSAGE\nDo not print the copyright message when starting the application\n\nNote 1: This does not remove the copyright from the binary. sc_core::sc_copyright() still works as expected.\n\nNote 2: Only effective during library build.\nSee : Environment variable SC_COPYRIGHT_MESSAGE\n\nSC_ENABLE_ASSERTIONS\nAlways enable the sc_assert expressions\n\nSome build systems define NDEBUG by default in optimised build configurations. As a result, the SystemC assertion macro sc_assert() is disabled (similar to the C assert() macro). By defining this preprocessor symbol (when building the library and/or an application), the sc_assert() checks are always enabled, irrespectively of the definition of NDEBUG.\n\nSC_INCLUDE_FX\nEnable SystemC fixed-point data-types\n\nTo improve compilation times, the fixed-point data-types are not enabled by default in an SystemC application. Define this symbol before including the SystemC header in your application, if you want to use the SystemC fixed-point types.\n\nNote: Is by default always defined during the library build to enable later use of the fixed-point data-types in an application.\n\nNote: Can be optionally set per translation unit in an application.\n\nSC_INCLUDE_WINDOWS_H\nExplicitly include \u003cwindows.h\u003e header from \u003csystemc\u003e header\n\nPrevious versions of SystemC always included the full \u003cwindows.h\u003e header on all Windows platforms. This adds unnecessary bloat to many SystemC applications, increasing compilation times. If you rely on the inclusion of the \u003cwindows.h\u003e header in your application, you can add this symbol to the list of preprocessor switches for your compiler.\n\nNote: Only effective when building an application.\n\nSC_INCLUDE_EXTRA_STD_HEADERS\nInclude \u003ccstring\u003e and \u003csstream\u003e headers from \u003csystemc\u003e header\n\nPrevious versions of SystemC implicitly included the \u003ccstring\u003e and \u003csstream\u003e headers on all platforms without depending on their contents. If you rely on the inclusion of these headers in your application, you can add this symbol to the list of preprocessor switches for your compiler.\n\nNote: Only effective when building an application.\n\nSC_ALLOW_MACROS_WITHOUT_SEMICOLON\nAllow using (process) macros without terminating semicolon\n\nPrevious versions of SystemC allowed using some macros without a trailing semicolon. This is no longer supported by default. Defining the above macro restores the old behavior. Affected macros: SC_METHOD, SC_(C)THREAD.\n\nNote: Only effective when building an application.\n\nSC_OVERRIDE_DEFAULT_STACK_SIZE=\u003csize\u003e\nDefine the default stack size used for SystemC (thread) processes\n\nNote: Only effective during library build.\n\nSC_USE_STD_STRING Define sc_string symbol as an alias to std::string\n\nPre-IEEE-1666 versions of SystemC included an sc_string class for string objects. This class has been superseeded by std::string these days.\n\nSC_WIN_DLL\nBuild (against) a DLL build of SystemC (Windows/MSVC only)\n\nNeeds to be set when building a SystemC DLL on Windows, as well as when building an application/library to be linked against a DLL version of SystemC.\n\nInfluential environment variables\nCurrently, three environment variables are checked at library load time and influence the SystemC library's behavior:\n\nSC_COPYRIGHT_MESSAGE=DISABLE\nRun-time alternative to SC_DISABLE_COPYRIGHT_MESSAGE (see above).\n\nSC_SIGNAL_WRITE_CHECK=DISABLE, SC_SIGNAL_WRITE_CHECK=CONFLICT\nRun-time alternative to SC_DEFAULT_WRITER_POLICY (see above).\n\nDISABLE = disable all checks for conflicting writes (SC_UNCHECKED_WRITERS)\nCONFLICT = detect conflicting writes within the same evaluation phase (SC_MANY_WRITERS)\nSC_DEPRECATION_WARNINGS=DISABLE\nDo not issue warnings about using deprecated features as of IEEE Std. 1666-2011.\n\nSC_VCD_SCOPES=DISABLE, SC_VCD_SCOPES=ENABLE\nRun-time configuration of hierarchically scoped names in VCD trace files (see SC_DISABLE_VCD_SCOPES).\n\nUsually, it is not recommended to use any of these variables in new or on-going projects. They have been added to simplify the transition of legacy code.\n\n\nfor any question mail me on dagmazen@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazen-daghari%2Fsystemc-first-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmazen-daghari%2Fsystemc-first-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazen-daghari%2Fsystemc-first-project/lists"}