This repository contains the DRRA component library. The library is a collection of components that can be used to build a DRRA application.
For using pre-built releases
- GLIBC 2.35 or newer
- vesyla v4.2.0 or newer
- Option 1: From the pre-built releases
- Option 2: Built from source
- SST framework
- Install dependencies:
- gtest (
sudo apt-get install libgtest-dev)
- gtest (
- Detailed Build and Installation Instructions
- Make sure that
SST_CORE_HOMEandSST_ELEMENTS_HOMEare correctly set in your ENV
- Install dependencies:
- cmake
- make
- rust
- (Optional, to run ISA-level simulations) SST framework
- (Optional, to build faster) sccache. After installation, you'll need to configure it using one of these methods:
-
Option 1: Configure via environment variables:
export RUSTC_WRAPPER=/path/to/sccache -
Option 2: Configure globally by setting it in
$HOME/.cargo/config.toml:[build] rustc-wrapper = "/path/to/sccache"
-
This repo contains submodules. Use the following command to clone it:
git clone --recurse-submodules git@github.com:silagokth/drra-components.gitOr, if the repo was already cloned:
git submodule update --initTo compile the library, run the following commands:
mkdir build
cd build
cmake ..
cmake --build .To compile the library without SST, run the following commands:
mkdir build
cd build
cmake .. -DUSE_SST=OFF
cmake --build .The complete library will be compiled in the build/library directory. You can copy the folder to wherever you want to use the library.
To make sure that the simulation components are working correctly, you can run the tests by running the following command:
sst-test-elements -w "drra*"This library should be used by vesyla. To let the program know where the library is located, you need to set the VESYLA_SUITE_PATH_COMPONENTS environment variable to the path of the library folder. For example, if you have copied the library to /usr/local/lib/drra-component-library, you can set the environment variable by running the following command
export VESYLA_SUITE_PATH_COMPONENTS=/usr/local/lib/drra-component-libraryYou can add more custom components to the library by adding them to the lib directory. The easiest way to do this is to copy an existing component and modify it to suit your needs. You need to modify the following files:
arch.json: The architecture description file.isa.json: The instruction set description file.tech.X.json: The technology description file (for exampletech.tsmc28.json).rtl/*.sv.j2: The RTL Jinja2 templates description file. Note that, you should only modify the contents of the module description, not the Jinja calls. If the component is a resource (./lib/resources), you should adjust the input and output ports definition based on the size (how many slots) of the resource.timing_model: The timing behavior of the component. Used by the instruction scheduler.