aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 323d21ca11374d191430cbe6269d0c1ffd1c1746 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# sysc-playground

This repository serves as a playground for [SystemC/TLM2][sysc-home] and allows
to quickly start hacking on SystemC/TLM2 simulations.

The [Makefile](Makefile) documents how to configure and build the simulations
as well as run the tests contained in the repository.

```sh
# Build SystemC, all simulations and tests.
make build

# Run all tests.
make test

# Run all simulations in src/.
make run

# Run only the lt_bus simulation.
make run/lt_bus
```

New simulations can be added by creating a new file in `src/` and adding the
file name (w/o extension) to the `simulations` list in
[CMakeLists.txt](CMakeLists.txt).

Happy hacking.

## SystemC build

The SystemC simulator is automatically built as dependency in cmake. Currently
two different build scripts are available (mainly because of own experiments).

- [SystemC-fetch.cmake](cmake/SystemC-fetch.cmake) use
  [`FetchContent`][cmake-fetch] to make SystemC available, this will treat
  SystemC as source dependency and make all build targets available.
- [SystemC-external.cmake](cmake/SystemC-external.cmake) use
  [`ExternalProject`][cmake-external] to make SystemC available, this will
  treat SystemC as external dependency and therefore needs to provide targets
  manually.

## License
This project is licensed under the [MIT](LICENSE) license.

[sysc-home]: https://www.accellera.org/downloads/standards/systemc
[cmake-fetch]: https://cmake.org/cmake/help/latest/module/FetchContent.html
[cmake-external]: https://cmake.org/cmake/help/latest/module/ExternalProject.html