summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--md/writeup.md1
-rw-r--r--md/writeup/systemc_hello_world.md72
2 files changed, 73 insertions, 0 deletions
diff --git a/md/writeup.md b/md/writeup.md
index ff0ead0..83dec8e 100644
--- a/md/writeup.md
+++ b/md/writeup.md
@@ -22,6 +22,7 @@ title: Writeup page
[C macro tricks](writeup/c_macro_tricks.md)
[STM32F4 SDRAM configuration](writeup/stm32f4_sdram_configuration.md)
[WebAssembly SDL example](writeup/web_assembly_sdl_example.md)
+[SystemC:Hello World](writeup/systemc_hello_world.md)
## Projects
diff --git a/md/writeup/systemc_hello_world.md b/md/writeup/systemc_hello_world.md
new file mode 100644
index 0000000..b832d2e
--- /dev/null
+++ b/md/writeup/systemc_hello_world.md
@@ -0,0 +1,72 @@
+title: SystemC hello world
+keywords:c,macro,c++,systemc,HDL
+
+# SystemC hello world
+
+Miniaml example how to run SystemC without installation
+
+## Compiling SystemC
+
+Downloadin and compiling systemc framework
+
+```bash
+curl http://www.accellera.org/images/downloads/standards/systemc/systemc-2.3.2.tar.gz --output systemc-2.3.2.tar.gz
+tar -xvf systemc-2.3.2.tar.gz
+cd systemc-2.3.2/
+./configure
+```
+
+
+## Prepare Makefile
+
+After compilation of systemc libraries we can create "Hello World" example.
+
+```bash
+SYSTEMC_PATH=/home/user/downloads/source/systemc/systemc-2.3.2
+SYSTEMC_INC=$(SYSTEMC_PATH)/src
+SYSTEMC_LIB=$(SYSTEMC_PATH)/src/.libs
+
+make:
+ g++ hello_world.cpp -I$(SYSTEMC_INC) -L$(SYSTEMC_LIB) -Wl,-rpath=$(SYSTEMC_LIB)\
+ -o hello_world -lsystemc -lm
+```
+
+```c
+#include "systemc.h"
+
+SC_MODULE (hello_world) {
+ SC_CTOR(hello_world) {
+
+ }
+
+ void say_hello() {
+ cout << "Hello world\n";
+ }
+};
+
+int sc_main(int argc, char **argv) {
+ hello_world hello("HELLO");
+ hello.say_hello();
+ return(0);
+}
+```
+
+after compilation try to run
+
+```bash
+./hello_world
+```
+
+output of this example is
+
+```bash
+ SystemC 2.3.2-Accellera --- Jul 13 2018 19:20:02
+ Copyright (c) 1996-2017 by all Contributors,
+ ALL RIGHTS RESERVED
+Hello world
+
+```
+
+## Links
+1. [http://www.accellera.org/downloads/standards/systemc](http://www.accellera.org/downloads/standards/systemc)
+2. [http://cfs-vision.com/systemc-tutorial/](http://cfs-vision.com/systemc-tutorial/)