summaryrefslogtreecommitdiff
path: root/util/systemc/systemc_within_gem5/systemc_simple_object/config.py
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2018-10-10 17:43:29 -0700
committerGabe Black <gabeblack@google.com>2018-11-02 20:42:42 +0000
commitfd294813c443fc1e80ed77a76b172d7103cb3fbf (patch)
treea1001c81c9bfbf11099e0d5faec92b4ffc57f711 /util/systemc/systemc_within_gem5/systemc_simple_object/config.py
parentc71dfc17a7f5601de06085b6c2fe5efd9e3ea11f (diff)
downloadgem5-fd294813c443fc1e80ed77a76b172d7103cb3fbf.tar.xz
util: Add some examples for using systemc code within gem5.
These examples have comments inside them that explain what they do. There's also a README file which explains how to use the examples generally, and at a high level what each one does. Change-Id: I223963dc1c190289986b2ee5705910dbcad4a4c9 Reviewed-on: https://gem5-review.googlesource.com/c/13376 Reviewed-by: Gabe Black <gabeblack@google.com> Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'util/systemc/systemc_within_gem5/systemc_simple_object/config.py')
-rwxr-xr-xutil/systemc/systemc_within_gem5/systemc_simple_object/config.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/util/systemc/systemc_within_gem5/systemc_simple_object/config.py b/util/systemc/systemc_within_gem5/systemc_simple_object/config.py
new file mode 100755
index 000000000..034087640
--- /dev/null
+++ b/util/systemc/systemc_within_gem5/systemc_simple_object/config.py
@@ -0,0 +1,59 @@
+# Copyright 2018 Google, Inc.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met: redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer;
+# redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution;
+# neither the name of the copyright holders nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Authors: Gabe Black
+
+from __future__ import print_function
+
+import argparse
+import m5
+import sys
+
+from m5.objects import SystemC_Kernel, Root, SystemC_Printer, Gem5_Feeder
+
+# pylint:disable=unused-variable
+
+parser = argparse.ArgumentParser()
+parser.add_argument('--word', action="append", default=[])
+parser.add_argument('--delay', default='1ns')
+parser.add_argument('--prefix', default='')
+
+args = parser.parse_args()
+
+printer = SystemC_Printer()
+printer.prefix = args.prefix
+
+feeder = Gem5_Feeder()
+feeder.printer = printer
+feeder.delay = args.delay
+feeder.strings = args.word
+
+kernel = SystemC_Kernel(feeder=feeder)
+root = Root(full_system=True, systemc_kernel=kernel)
+
+m5.instantiate(None)
+
+cause = m5.simulate(m5.MaxTick).getCause()
+print(cause)