HIFIVE1-VP/RiscV_VP.py

49 lines
2.1 KiB
Python

import os.path
import logging
import cppyy
from cppyy import gbl as cpp
from array import array
import pysysc
from pysysc.structural import Connection, Module, Signal, Simulation
###############################################################################
# setup and load
###############################################################################
logging.basicConfig(level=logging.INFO)
build_type='Debug'
###############################################################################
myDir = os.path.dirname( os.path.realpath(__file__))
pysysc.read_config_from_conan(os.path.join(myDir, 'conanfile.txt'), build_type)
pysysc.load_systemc()
###############################################################################
logging.debug("Loading Components lib")
pysysc.add_include_path(os.path.join(myDir, 'scc/incl'))
pysysc.add_include_path(os.path.join(myDir, 'dbt-core/incl'))
pysysc.add_include_path(os.path.join(myDir, 'riscv/incl'))
pysysc.add_include_path(os.path.join(myDir, 'platform/incl'))
pysysc.add_library('sysc/top/system.h', os.path.join(myDir, 'build/%s/lib/libplatform.so'%build_type))
cppyy.include("iss/llvm/jit_helper.h")
cppyy.include("scc/configurer.h")
cppyy.include("sysc/top/system.h")
###############################################################################
# configure
###############################################################################
Simulation.setup(logging.root.level)
cpp.iss.init_jit();
cfg=cpp.scc.configurer("system.json");
###############################################################################
# instantiate
###############################################################################
dut = Module(cpp.sysc.system).create("i_system")
cfg.set_value("i_system.i_hifive1.i_fe310.i_core_complex.elf_file", "../RISCV-Tests/hello/hello");
of=cpp.std.ofstream("hier.txt")
cfg.dump_configuration(of);
of.close()
###############################################################################
# run if it is standalone
###############################################################################
if __name__ == "__main__":
Simulation.configure(enable_vcd=False)
Simulation.run()
logging.debug("Done")