diff --git a/.cproject b/.cproject
index c53663e..2e0c551 100644
--- a/.cproject
+++ b/.cproject
@@ -76,7 +76,7 @@
-
+
diff --git a/riscv.sc/incl/sysc/SiFive/aon.h b/riscv.sc/incl/sysc/SiFive/aon.h
index fe02e92..62afa03 100644
--- a/riscv.sc/incl/sysc/SiFive/aon.h
+++ b/riscv.sc/incl/sysc/SiFive/aon.h
@@ -17,13 +17,13 @@
#ifndef _AON_H_
#define _AON_H_
-#include
+#include "scc/tlm_target.h"
namespace sysc {
class aon_regs;
-class aon : public sc_core::sc_module, public tlm_target<> {
+class aon : public sc_core::sc_module, public scc::tlm_target<> {
public:
SC_HAS_PROCESS(aon);
sc_core::sc_in clk_i;
diff --git a/riscv.sc/incl/sysc/SiFive/clint.h b/riscv.sc/incl/sysc/SiFive/clint.h
index a0a035b..e1130cb 100644
--- a/riscv.sc/incl/sysc/SiFive/clint.h
+++ b/riscv.sc/incl/sysc/SiFive/clint.h
@@ -17,7 +17,7 @@
#ifndef _CLINT_H_
#define _CLINT_H_
-#include
+#include "scc/tlm_target.h"
namespace iss {
namespace arch {
@@ -32,7 +32,7 @@ namespace SiFive {
class core_complex;
}
-class clint : public sc_core::sc_module, public tlm_target<> {
+class clint : public sc_core::sc_module, public scc::tlm_target<> {
public:
SC_HAS_PROCESS(clint);
sc_core::sc_in clk_i;
diff --git a/riscv.sc/incl/sysc/SiFive/core_complex.h b/riscv.sc/incl/sysc/SiFive/core_complex.h
index 6382cd4..824032c 100644
--- a/riscv.sc/incl/sysc/SiFive/core_complex.h
+++ b/riscv.sc/incl/sysc/SiFive/core_complex.h
@@ -37,13 +37,13 @@
#ifndef _SYSC_SIFIVE_FE310_H_
#define _SYSC_SIFIVE_FE310_H_
-#include
-#include
-#include
-#include
#include
#include
#include
+#include "scc/ext_attribute.h"
+#include "scc/initiator_mixin.h"
+#include "scc/traceable.h"
+#include "scc/utilities.h"
namespace iss {
class vm_if;
@@ -67,25 +67,25 @@ public:
namespace SiFive {
class core_wrapper;
-class core_complex : public sc_core::sc_module, public sysc::traceable {
+class core_complex : public sc_core::sc_module, public scc::traceable {
public:
SC_HAS_PROCESS(core_complex);
- sysc::initiator_mixin> initiator;
+ scc::initiator_mixin> initiator;
sc_core::sc_in clk_i;
sc_core::sc_in rst_i;
- sysc::ext_attribute elf_file;
+ scc::ext_attribute elf_file;
- sysc::ext_attribute enable_disass;
+ scc::ext_attribute enable_disass;
- sysc::ext_attribute reset_address;
+ scc::ext_attribute reset_address;
- sysc::ext_attribute gdb_server_port;
+ scc::ext_attribute gdb_server_port;
- sysc::ext_attribute dump_ir;
+ scc::ext_attribute dump_ir;
core_complex(sc_core::sc_module_name name);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/aon_regs.h b/riscv.sc/incl/sysc/SiFive/gen/aon_regs.h
index 0d472bf..51ad1c4 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/aon_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/aon_regs.h
@@ -36,14 +36,14 @@
#ifndef _AON_REGS_H_
#define _AON_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class aon_regs : public sc_core::sc_module, public sysc::resetable {
+class aon_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
uint32_t r_wdogcfg;
@@ -97,29 +97,29 @@ public:
uint32_t r_pmukey;
// register declarations
- sysc::sc_register wdogcfg;
- sysc::sc_register wdogcount;
- sysc::sc_register wdogs;
- sysc::sc_register wdogfeed;
- sysc::sc_register wdogkey;
- sysc::sc_register wdogcmp;
- sysc::sc_register rtccfg;
- sysc::sc_register rtclo;
- sysc::sc_register rtchi;
- sysc::sc_register rtcs;
- sysc::sc_register rtccmp;
- sysc::sc_register lfrosccfg;
- sysc::sc_register_indexed backup;
- sysc::sc_register_indexed pmuwakeupi;
- sysc::sc_register_indexed pmusleepi;
- sysc::sc_register pmuie;
- sysc::sc_register pmucause;
- sysc::sc_register pmusleep;
- sysc::sc_register pmukey;
+ scc::sc_register wdogcfg;
+ scc::sc_register wdogcount;
+ scc::sc_register wdogs;
+ scc::sc_register wdogfeed;
+ scc::sc_register wdogkey;
+ scc::sc_register wdogcmp;
+ scc::sc_register rtccfg;
+ scc::sc_register rtclo;
+ scc::sc_register rtchi;
+ scc::sc_register rtcs;
+ scc::sc_register rtccmp;
+ scc::sc_register lfrosccfg;
+ scc::sc_register_indexed backup;
+ scc::sc_register_indexed pmuwakeupi;
+ scc::sc_register_indexed pmusleepi;
+ scc::sc_register pmuie;
+ scc::sc_register pmucause;
+ scc::sc_register pmusleep;
+ scc::sc_register pmukey;
aon_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -148,7 +148,7 @@ inline sysc::aon_regs::aon_regs(sc_core::sc_module_name nm)
, NAMED(pmusleep, r_pmusleep, 0, *this)
, NAMED(pmukey, r_pmukey, 0, *this) {}
-template inline void sysc::aon_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::aon_regs::registerResources(scc::tlm_target &target) {
target.addResource(wdogcfg, 0x0UL);
target.addResource(wdogcount, 0x8UL);
target.addResource(wdogs, 0x10UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/clint_regs.h b/riscv.sc/incl/sysc/SiFive/gen/clint_regs.h
index 306339e..eb9afda 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/clint_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/clint_regs.h
@@ -36,14 +36,14 @@
#ifndef _CLINT_REGS_H_
#define _CLINT_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class clint_regs : public sc_core::sc_module, public sysc::resetable {
+class clint_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
BEGIN_BF_DECL(msip_t, uint32_t);
@@ -55,13 +55,13 @@ public:
uint64_t r_mtime;
// register declarations
- sysc::sc_register msip;
- sysc::sc_register mtimecmp;
- sysc::sc_register mtime;
+ scc::sc_register msip;
+ scc::sc_register mtimecmp;
+ scc::sc_register mtime;
clint_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -74,7 +74,7 @@ inline sysc::clint_regs::clint_regs(sc_core::sc_module_name nm)
, NAMED(mtimecmp, r_mtimecmp, 0, *this)
, NAMED(mtime, r_mtime, 0, *this) {}
-template inline void sysc::clint_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::clint_regs::registerResources(scc::tlm_target &target) {
target.addResource(msip, 0x0UL);
target.addResource(mtimecmp, 0x4000UL);
target.addResource(mtime, 0xbff8UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/e300_plat_t.h b/riscv.sc/incl/sysc/SiFive/gen/e300_plat_t.h
index 8d8d5d2..33190d5 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/e300_plat_t.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/e300_plat_t.h
@@ -2,7 +2,7 @@
#define _E300_PLAT_MAP_H_
// need double braces, see
// https://stackoverflow.com/questions/6893700/how-to-construct-stdarray-object-with-initializer-list#6894191
-const std::array, 8> e300_plat_map = {{
+const std::array, 8> e300_plat_map = {{
{&i_clint, 0x2000000, 0xc000},
{&i_plic, 0xc000000, 0x200008},
{&i_aon, 0x10000000, 0x150},
diff --git a/riscv.sc/incl/sysc/SiFive/gen/gpio_regs.h b/riscv.sc/incl/sysc/SiFive/gen/gpio_regs.h
index 1dbb745..b7710e3 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/gpio_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/gpio_regs.h
@@ -36,14 +36,14 @@
#ifndef _GPIO_REGS_H_
#define _GPIO_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class gpio_regs : public sc_core::sc_module, public sysc::resetable {
+class gpio_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
uint32_t r_value;
@@ -81,27 +81,27 @@ public:
uint32_t r_out_xor;
// register declarations
- sysc::sc_register value;
- sysc::sc_register input_en;
- sysc::sc_register output_en;
- sysc::sc_register port;
- sysc::sc_register pue;
- sysc::sc_register ds;
- sysc::sc_register rise_ie;
- sysc::sc_register rise_ip;
- sysc::sc_register fall_ie;
- sysc::sc_register fall_ip;
- sysc::sc_register high_ie;
- sysc::sc_register high_ip;
- sysc::sc_register low_ie;
- sysc::sc_register low_ip;
- sysc::sc_register iof_en;
- sysc::sc_register iof_sel;
- sysc::sc_register out_xor;
+ scc::sc_register value;
+ scc::sc_register input_en;
+ scc::sc_register output_en;
+ scc::sc_register port;
+ scc::sc_register pue;
+ scc::sc_register ds;
+ scc::sc_register rise_ie;
+ scc::sc_register rise_ip;
+ scc::sc_register fall_ie;
+ scc::sc_register fall_ip;
+ scc::sc_register high_ie;
+ scc::sc_register high_ip;
+ scc::sc_register low_ie;
+ scc::sc_register low_ip;
+ scc::sc_register iof_en;
+ scc::sc_register iof_sel;
+ scc::sc_register out_xor;
gpio_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -128,7 +128,7 @@ inline sysc::gpio_regs::gpio_regs(sc_core::sc_module_name nm)
, NAMED(iof_sel, r_iof_sel, 0, *this)
, NAMED(out_xor, r_out_xor, 0, *this) {}
-template inline void sysc::gpio_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::gpio_regs::registerResources(scc::tlm_target &target) {
target.addResource(value, 0x0UL);
target.addResource(input_en, 0x4UL);
target.addResource(output_en, 0x8UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/plic_regs.h b/riscv.sc/incl/sysc/SiFive/gen/plic_regs.h
index 014951f..5e2f19a 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/plic_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/plic_regs.h
@@ -36,14 +36,14 @@
#ifndef _PLIC_REGS_H_
#define _PLIC_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class plic_regs : public sc_core::sc_module, public sysc::resetable {
+class plic_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
BEGIN_BF_DECL(priority_t, uint32_t);
@@ -62,15 +62,15 @@ public:
uint32_t r_claim_complete;
// register declarations
- sysc::sc_register_indexed priority;
- sysc::sc_register pending;
- sysc::sc_register enabled;
- sysc::sc_register threshold;
- sysc::sc_register claim_complete;
+ scc::sc_register_indexed priority;
+ scc::sc_register pending;
+ scc::sc_register enabled;
+ scc::sc_register threshold;
+ scc::sc_register claim_complete;
plic_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -85,7 +85,7 @@ inline sysc::plic_regs::plic_regs(sc_core::sc_module_name nm)
, NAMED(threshold, r_threshold, 0, *this)
, NAMED(claim_complete, r_claim_complete, 0, *this) {}
-template inline void sysc::plic_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::plic_regs::registerResources(scc::tlm_target &target) {
target.addResource(priority, 0x4UL);
target.addResource(pending, 0x1000UL);
target.addResource(enabled, 0x2000UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/prci_regs.h b/riscv.sc/incl/sysc/SiFive/gen/prci_regs.h
index a197408..cbe3d26 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/prci_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/prci_regs.h
@@ -36,14 +36,14 @@
#ifndef _PRCI_REGS_H_
#define _PRCI_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class prci_regs : public sc_core::sc_module, public sysc::resetable {
+class prci_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
BEGIN_BF_DECL(hfrosccfg_t, uint32_t);
@@ -73,15 +73,15 @@ public:
uint32_t r_coreclkcfg;
// register declarations
- sysc::sc_register hfrosccfg;
- sysc::sc_register hfxosccfg;
- sysc::sc_register pllcfg;
- sysc::sc_register plloutdiv;
- sysc::sc_register coreclkcfg;
+ scc::sc_register hfrosccfg;
+ scc::sc_register hfxosccfg;
+ scc::sc_register pllcfg;
+ scc::sc_register plloutdiv;
+ scc::sc_register coreclkcfg;
prci_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -96,7 +96,7 @@ inline sysc::prci_regs::prci_regs(sc_core::sc_module_name nm)
, NAMED(plloutdiv, r_plloutdiv, 0, *this)
, NAMED(coreclkcfg, r_coreclkcfg, 0, *this) {}
-template inline void sysc::prci_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::prci_regs::registerResources(scc::tlm_target &target) {
target.addResource(hfrosccfg, 0x0UL);
target.addResource(hfxosccfg, 0x4UL);
target.addResource(pllcfg, 0x8UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/spi_regs.h b/riscv.sc/incl/sysc/SiFive/gen/spi_regs.h
index 05b3608..7db0f97 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/spi_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/spi_regs.h
@@ -36,14 +36,14 @@
#ifndef _SPI_REGS_H_
#define _SPI_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class spi_regs : public sc_core::sc_module, public sysc::resetable {
+class spi_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
BEGIN_BF_DECL(sckdiv_t, uint32_t);
@@ -124,26 +124,26 @@ public:
END_BF_DECL() r_ip;
// register declarations
- sysc::sc_register sckdiv;
- sysc::sc_register sckmode;
- sysc::sc_register csid;
- sysc::sc_register csdef;
- sysc::sc_register csmode;
- sysc::sc_register delay0;
- sysc::sc_register delay1;
- sysc::sc_register fmt;
- sysc::sc_register txdata;
- sysc::sc_register rxdata;
- sysc::sc_register txmark;
- sysc::sc_register rxmark;
- sysc::sc_register fctrl;
- sysc::sc_register ffmt;
- sysc::sc_register ie;
- sysc::sc_register ip;
+ scc::sc_register sckdiv;
+ scc::sc_register sckmode;
+ scc::sc_register csid;
+ scc::sc_register csdef;
+ scc::sc_register csmode;
+ scc::sc_register delay0;
+ scc::sc_register delay1;
+ scc::sc_register fmt;
+ scc::sc_register txdata;
+ scc::sc_register rxdata;
+ scc::sc_register txmark;
+ scc::sc_register rxmark;
+ scc::sc_register fctrl;
+ scc::sc_register ffmt;
+ scc::sc_register ie;
+ scc::sc_register ip;
spi_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -169,7 +169,7 @@ inline sysc::spi_regs::spi_regs(sc_core::sc_module_name nm)
, NAMED(ie, r_ie, 0, *this)
, NAMED(ip, r_ip, 0, *this) {}
-template inline void sysc::spi_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::spi_regs::registerResources(scc::tlm_target &target) {
target.addResource(sckdiv, 0x0UL);
target.addResource(sckmode, 0x4UL);
target.addResource(csid, 0x10UL);
diff --git a/riscv.sc/incl/sysc/SiFive/gen/uart_regs.h b/riscv.sc/incl/sysc/SiFive/gen/uart_regs.h
index 84f4fb5..67ed819 100644
--- a/riscv.sc/incl/sysc/SiFive/gen/uart_regs.h
+++ b/riscv.sc/incl/sysc/SiFive/gen/uart_regs.h
@@ -36,14 +36,14 @@
#ifndef _UART_REGS_H_
#define _UART_REGS_H_
-#include
-#include
-#include
#include
+#include "scc/register.h"
+#include "scc/tlm_target.h"
+#include "scc/utilities.h"
namespace sysc {
-class uart_regs : public sc_core::sc_module, public sysc::resetable {
+class uart_regs : public sc_core::sc_module, public scc::resetable {
public:
// storage declarations
BEGIN_BF_DECL(txdata_t, uint32_t);
@@ -82,17 +82,17 @@ public:
END_BF_DECL() r_div;
// register declarations
- sysc::sc_register txdata;
- sysc::sc_register rxdata;
- sysc::sc_register txctrl;
- sysc::sc_register rxctrl;
- sysc::sc_register ie;
- sysc::sc_register ip;
- sysc::sc_register div;
+ scc::sc_register txdata;
+ scc::sc_register rxdata;
+ scc::sc_register txctrl;
+ scc::sc_register rxctrl;
+ scc::sc_register ie;
+ scc::sc_register ip;
+ scc::sc_register div;
uart_regs(sc_core::sc_module_name nm);
- template void registerResources(sysc::tlm_target &target);
+ template void registerResources(scc::tlm_target &target);
};
}
//////////////////////////////////////////////////////////////////////////////
@@ -109,7 +109,7 @@ inline sysc::uart_regs::uart_regs(sc_core::sc_module_name nm)
, NAMED(ip, r_ip, 0, *this)
, NAMED(div, r_div, 0, *this) {}
-template inline void sysc::uart_regs::registerResources(sysc::tlm_target &target) {
+template inline void sysc::uart_regs::registerResources(scc::tlm_target