Added PyScModule to forward simulation phase callbacks
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| import json | ||||
| import cppyy | ||||
| import os.path | ||||
| from pathlib import Path | ||||
| import sys | ||||
| import tempfile | ||||
| import conans.client.conan_api as conan | ||||
| @@ -13,8 +14,6 @@ lang_symbols = { | ||||
|     14:'201402L', | ||||
|     17:'201703L'} | ||||
| lang_level=11 | ||||
| ''' | ||||
| ''' | ||||
|  | ||||
| sysIncludeDirs = set() | ||||
|  | ||||
| @@ -92,6 +91,7 @@ namespace sc_core { extern void pln(); } | ||||
|             if systemc_loaded: break; | ||||
|         if not interactive: cppyy.gbl.sc_core.pln() | ||||
|         cppyy.gbl.sc_core.sc_in_action=True | ||||
|         _load_pythonization_lib() | ||||
|         return True | ||||
|     return False | ||||
|  | ||||
| @@ -120,7 +120,17 @@ def _load_systemc_cci(): | ||||
|         cci_loaded=True | ||||
|         return True | ||||
|     return False | ||||
|      | ||||
|  | ||||
| def _load_pythonization_lib(): | ||||
|     import pysysc | ||||
|     path = os.path.dirname(os.path.dirname(pysysc.__file__)) | ||||
|     for file in os.listdir(path): | ||||
|         if file.endswith(".so"): | ||||
|             cppyy.load_library(os.path.join(path, file)) | ||||
|             cppyy.include(os.path.join(path, "PyScModule.h")) | ||||
|             return | ||||
|  | ||||
|  | ||||
| def add_library(file, lib): | ||||
|     buf = io.StringIO() | ||||
|     with redirect_stdout(buf), redirect_stderr(buf): | ||||
| @@ -150,8 +160,6 @@ def _pythonizor(clazz, name): | ||||
|         clazz.__repr__ = lambda self: repr(self.name()) | ||||
|     elif len(name) > 10 and name[:9] == 'sc_export<': | ||||
|         clazz.__repr__ = lambda self: repr(self.name()) | ||||
| #     else: | ||||
| #         print('not pythonizing', name) | ||||
|  | ||||
| # install the pythonizor as a callback on namespace 'Math' (default is the global namespace) | ||||
| cppyy.py.add_pythonization(_pythonizor, 'sc_core') | ||||
|   | ||||
| @@ -8,7 +8,6 @@ from builtins import getattr | ||||
| import re | ||||
| from enum import Enum | ||||
| import logging | ||||
| import pysysc | ||||
|  | ||||
| class Mode(Enum): | ||||
|     SIM = 1 | ||||
| @@ -21,6 +20,8 @@ class Simulation(object): | ||||
|     @staticmethod | ||||
|     def run(): | ||||
|         cpp.sc_core.sc_start() | ||||
|         if not cpp.sc_core.sc_end_of_simulation_invoked(): | ||||
|             cpp.sc_core.sc_stop() | ||||
|          | ||||
|     @staticmethod | ||||
|     def setup(log_level = logging.WARNING): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user