# 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.
This crate is still being actively developed by me. Feel free to try it out but note
that I will be changing it frequently and it may not even be usable for you at this point.
### 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
### 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(...)`.