Skip to content

Latest commit

 

History

762 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DRRA Component Library Build Status

This repository contains the DRRA component library. The library is a collection of components that can be used to build a DRRA application.

Prerequisites

For building from source

  • 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"

Cloning the repo

This repo contains submodules. Use the following command to clone it:

git clone --recurse-submodules git@github.com:silagokth/drra-components.git

Or, if the repo was already cloned:

git submodule update --init

Compilation and Installation

To 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.

Running the SST Tests

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*"

Usage

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-library

Customization

You 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 example tech.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.

About

DRRA Component Library

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages