DRAMUtils is a small helper library containing classes for DRAM memory specifications (MemSpecs), which is used by DRAMSys and DRAMPower.
The last official release can be found here: https://github.com/tukl-msd/DRAMUtils/releases
The master branch of the repository should be regarded as the bleeding-edge version, which has all the latest features, but also all the latest bugs. Use at your own discretion.
DRAMUtils is a header-only library which can be included as-is, or inside a CMake project by being added through add_subdirectory(). The project is also FetchContent ready and can be easily included in any other CMake based project.
include(FetchContent)
FetchContent_Declare(
dramutils
GIT_REPOSITORY https://github.com/tukl-msd/DRAMUtils
GIT_TAG v1.0)
FetchContent_MakeAvailable(dramutils)
The library DRAMUtils::DRAMUtils is then available as a target to the rest of the project and can be consumed by any other target, e.g.
add_executable(dram_app ${SOURCE_FILES})
target_link_libraries(dram_app PRIVATE DRAMUtils::DRAMUtils)
Optionally, test cases can be built by toggling the DRAMUTILS_BUILD_TESTS flag with CMake.
The project is structured in a library part and an (optional) Command Line application. The library can be built using the CMake target DRAMPower. Integration of DRAMPower in other projects can be easily achieved by including it as a git submodule or by using the CMake FetchContent directive.
This repository contains the following sub-directoires
DRAMUtils # top directory
└── cmake # cmake scripts used by configuration step
├── lib # contains bundled dependencies of the project
├── include # top level directory containing the actual sources
└── DRAMUtils # source code of the actual DRAMPower library
└── tests # test cases used by the project
DRAMUtils comes bundled with all necessary libraries (nlohmann_json) and no installation of further system packages is required.
Further questions about the library or the tools based on DRAMUtils can be directed at:
Feel free to ask for updates to the tool's features and please do report any bugs and errors you encounter. This will encourage us to continuously improve the tool.
The user DOES NOT get ANY WARRANTIES when using this library. This software is released under the BSD 3-Clause License. By using this software, the user implicitly agrees to the licensing terms.