# SystemRust
## Description
SystemRust is a Rust-crate für hardware simulation akin to systemC for C++.
I have developed this for my masters-project for my degree in computational engineering
at the University of Rostock in the summer semester of 2025.
### Supervisors:
* M.Sc. Benjamin Beichler
* M.Sc. Nico Graumüller
* Prof.Dr.Ing. Christian Haubelt
### Licence
* MIT
### Git-Repository
https://gitlab.amd.e-technik.uni-rostock.de/systemcrust/systemrust
### UML-Diagram

### Convert the log file to a .vcd file
If you would like to view the signal changes there is a folder with a C# script in
the gitlab directory to convert it. The .vcd file can then be viewed with tools such
as GTKWave.
Before you call `SimulationContext::simulate(...)` in your code you want to initialize a logger. I'm using env_logger
``` Rust
let log_file = File::create("app.log").unwrap();
env_logger::Builder::new()
.format(|buf, record| {
writeln!(buf, "{}", record.args())?;
Ok(())
})
.filter_level(LevelFilter::Info)
.target(env_logger::Target::Pipe(Box::new(log_file)))
.init();
```
Then after your `SimulationContext::simulate(...)` function just call `convert_log_to_vcd(...)`.