https://github.com/tum-ei-eda/softvector
Vector arithmetic library targeting simulation of Vector Processing Units (VPUs) for various targets, e.g., ETISS.
https://github.com/tum-ei-eda/softvector
Last synced: 2 months ago
JSON representation
Vector arithmetic library targeting simulation of Vector Processing Units (VPUs) for various targets, e.g., ETISS.
- Host: GitHub
- URL: https://github.com/tum-ei-eda/softvector
- Owner: tum-ei-eda
- License: apache-2.0
- Created: 2020-07-09T10:40:23.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-04T14:31:05.000Z (8 months ago)
- Last Synced: 2025-07-08T19:31:10.778Z (4 months ago)
- Language: C++
- Size: 789 KB
- Stars: 3
- Watchers: 2
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Softvector
This project targets functional simulation of Vector Processing Units (VPUs). It wraps highly abstracted vector arithmetic functions around a target-specific interface.
Softvector mainly focuses on the RISC-V Vector (RVV) instruction set and was built as a support library for the [Extendable Translating Instruction Set Simulator (ETISS)](https://github.com/tum-ei-eda/etiss).
The CMake project builds a shared library containing generic RISC-V helper/soft functions for the RVV instruction set, i.e. either:
- `soft`: A high-level implementation including unit test support for SoftVector verification.
- `ETISS`: Support functions that allow for more efficient and convenient vector computations to be used with the ETISS.
# Getting Started
## Requirements
- CMake >= v3.15
- Graphviz + Doxygen (for documentation generation)
## Build:
Create Build directory:
```
mkdir build
```
Change to the created directory:
```
cd build
```
Configure the build system. Replace `` with either `ETISS` or `soft`. Statements in `[ .. ]` are optional:
```
cmake .. -DTARGET_NAME= -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/installed [-DTEST_BUILD=1]
```
Build the project:
```
make
```
(Build the source file documentation):
```
make doc
```
## Test
If `-DTEST_BUILD=1` was specified and the target supports unit tests (currently only RISC-V `soft`), the test can be executed with
```
make test
```
This tests softvector against a set of 'golden' inputs for the specified target. For RVV `soft` these are pre-configured vector register files and sample memory vectors which are altered by a SoftVector RVV instruction. The output is compared against the expected states specified in the 'golden' file.
## Licensing and Copyright
See the separate LICENSE file to determine your rights and responsibilities for using SoftVector.
## User Documentation
The documentation is optionally built with SoftVector and can be found in `build/doc/html/index.html`.