https://github.com/tum-ei-eda/softwareevallib
https://github.com/tum-ei-eda/softwareevallib
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/tum-ei-eda/softwareevallib
- Owner: tum-ei-eda
- License: apache-2.0
- Created: 2023-02-13T16:38:30.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-01T10:22:28.000Z (3 months ago)
- Last Synced: 2025-08-06T18:54:19.843Z (3 months ago)
- Language: C++
- Size: 155 KB
- Stars: 1
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SoftwareEvalLib
This library contains the following plugins for the ETISS simulator:
- **PerformanceEstimatorPlugin:** A plugin to report the estimated performance of the target software
- **TracePrinterPlugin:** A plugin to generate a trace of the executed instructions of the target software
## Setup
To add this library to ETISS, make sure to include it into the "PluginImpl" directory of ETISS. Remeber to (re-)compile ETISS.
## Usage
### PerformanceEstimatorPlugin
To run ETISS with the PerformanceEstimatorPlugin, provide ETISS with an .ini-file containing the following:
```ini
[Plugin PerformanceEstimatorPlugin]
plugin.perfEst.uArch= ; Required! Replace with desired microarchitecture
plugin.perfEst.print=1 ; Optional. Will generate a timing trace. Slows down simulation!
plugin.perfEst.printDir= ; Optional. Specify directory for generated timing traces
```
To check if a microarchitecture variant is supported, you can navigate to "./libs/backends/variants". Check if a directory with the name of the microarchitecture exists. If it does, make sure that it contains a file `_PerformanceModel.cpp`.
### TracePrinterPlugin
To run ETISS with the TracePrinterPlugin, provide ETISS with an .ini-file containing the following:
```ini
[Plugin TracePrinterPlugin]
plugin.tracePrinter.trace= ; Required! Replace with desired trace format
plugin.tracePrinter.stream.toFile=1 ; Required! Select 0 if trace shall be dumped to cout instead of a file
plugin.tracePrinter.stream.outDir= ; Required, if stream to file
plugin.tracePrinter.stream.fileName= ; Optional.
plugin.tracePrinter.stream.rotateSize=0x100000 ; Optional.
```
To check if a trace format variant is supported, you can navigate to "./libs/backends/variants". Check if a directory with the name of the trace format exists. If it does, make sure that it contains a file `_Printer.cpp`.
## Update
The code generator tools M2ISAR and [M2ISAR-Perf](https://github.com/tum-ei-eda/M2-ISA-R-Perf) can be used to add / update microarchitecture and trace format variants.
To automatically deploy generated code for the monitors, you can call:
$ ./scripts/deploy_monitor.py file1,file2,...,fileN
To automatically deploy generated code for the backends (i.e. channel, performance estimator and printer), you can call:
$ ./scripts/deploy_backend.py file1,file2,...,fileN
Note:
- Supported suffixes for files are ".cpp" (src) and ".h" (header)
- The script will update "CMakeLists" files
- If files allready exist, they will be over-written.
- If variant was not present before, the script will add the new variant to "Factory.cpp" and "Factory.h" files, by over-writing them.
## Version
This is version v2.0
It is compatible with the following submodule versions:
| Submodule | Version |
| --------- | ------- |
| SoftwareEval-Backends | v2.0 |