Fix systemc namespace issues (#4126) (#4127)

* replaces use of "systemc.h" with <systemc> to avoid default namespace import
This commit is contained in:
Eyck Jentzsch 2023-04-17 09:57:29 +00:00 committed by GitHub
parent 7f49b6c102
commit df86e39845
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 38 additions and 33 deletions

View File

@ -29,6 +29,7 @@ Drew Taussig
Driss Hafdi Driss Hafdi
Edgar E. Iglesias Edgar E. Iglesias
Eric Rippey Eric Rippey
Eyck Jentzsch
Fan Shupei Fan Shupei
Felix Neumärker Felix Neumärker
Felix Yan Felix Yan

View File

@ -7,7 +7,7 @@
//====================================================================== //======================================================================
// SystemC global header // SystemC global header
#include <systemc.h> #include <systemc>
// Include common routines // Include common routines
#include <verilated.h> #include <verilated.h>
@ -15,6 +15,8 @@
// Include model header, generated from Verilating "top.v" // Include model header, generated from Verilating "top.v"
#include "Vtop.h" #include "Vtop.h"
using namespace sc_core;
int sc_main(int argc, char* argv[]) { int sc_main(int argc, char* argv[]) {
// See a similar example walkthrough in the verilator manpage. // See a similar example walkthrough in the verilator manpage.

View File

@ -10,7 +10,7 @@
#include <memory> #include <memory>
// SystemC global header // SystemC global header
#include <systemc.h> #include <systemc>
// Include common routines // Include common routines
#include <verilated.h> #include <verilated.h>
@ -23,6 +23,8 @@
// Include model header, generated from Verilating "top.v" // Include model header, generated from Verilating "top.v"
#include "Vtop.h" #include "Vtop.h"
using namespace sc_core;
int sc_main(int argc, char* argv[]) { int sc_main(int argc, char* argv[]) {
// This is a more complicated example, please also see the simpler examples/make_hello_c. // This is a more complicated example, please also see the simpler examples/make_hello_c.

View File

@ -953,18 +953,18 @@ void VerilatedContext::timeprecision(int value) VL_MT_SAFE {
const VerilatedLockGuard lock{m_mutex}; const VerilatedLockGuard lock{m_mutex};
m_s.m_timeprecision = value; m_s.m_timeprecision = value;
#if VM_SC #if VM_SC
const sc_time sc_res = sc_get_time_resolution(); const sc_core::sc_time sc_res = sc_core::sc_get_time_resolution();
if (sc_res == sc_time(1, SC_SEC)) { if (sc_res == sc_core::sc_time(1, sc_core::SC_SEC)) {
sc_prec = 0; sc_prec = 0;
} else if (sc_res == sc_time(1, SC_MS)) { } else if (sc_res == sc_core::sc_time(1, sc_core::SC_MS)) {
sc_prec = 3; sc_prec = 3;
} else if (sc_res == sc_time(1, SC_US)) { } else if (sc_res == sc_core::sc_time(1, sc_core::SC_US)) {
sc_prec = 6; sc_prec = 6;
} else if (sc_res == sc_time(1, SC_NS)) { } else if (sc_res == sc_core::sc_time(1, sc_core::SC_NS)) {
sc_prec = 9; sc_prec = 9;
} else if (sc_res == sc_time(1, SC_PS)) { } else if (sc_res == sc_core::sc_time(1, sc_core::SC_PS)) {
sc_prec = 12; sc_prec = 12;
} else if (sc_res == sc_time(1, SC_FS)) { } else if (sc_res == sc_core::sc_time(1, sc_core::SC_FS)) {
sc_prec = 15; sc_prec = 15;
} }
#endif #endif

View File

@ -19,8 +19,8 @@
/// ///
//============================================================================= //=============================================================================
#ifndef VERILATOR_VERILATED_VCD_SC_H_ #ifndef VERILATOR_VERILATED_FST_SC_H_
#define VERILATOR_VERILATED_VCD_SC_H_ #define VERILATOR_VERILATED_FST_SC_H_
#include "verilatedos.h" #include "verilatedos.h"
@ -36,23 +36,23 @@
/// with the SystemC simulation kernel, just like a SystemC-documented /// with the SystemC simulation kernel, just like a SystemC-documented
/// trace format. /// trace format.
class VerilatedFstSc final : sc_trace_file, public VerilatedFstC { class VerilatedFstSc final : sc_core::sc_trace_file, public VerilatedFstC {
// CONSTRUCTORS // CONSTRUCTORS
VL_UNCOPYABLE(VerilatedFstSc); VL_UNCOPYABLE(VerilatedFstSc);
public: public:
/// Construct a SC trace object, and register with the SystemC kernel /// Construct a SC trace object, and register with the SystemC kernel
VerilatedFstSc() { VerilatedFstSc() {
sc_get_curr_simcontext()->add_trace_file(this); sc_core::sc_get_curr_simcontext()->add_trace_file(this);
// We want to avoid a depreciated warning, but still be back compatible. // We want to avoid a depreciated warning, but still be back compatible.
// Turning off the message just for this still results in an // Turning off the message just for this still results in an
// annoying "to turn off" message. // annoying "to turn off" message.
const sc_time t1sec{1, SC_SEC}; const sc_core::sc_time t1sec{1, sc_core::SC_SEC};
if (t1sec.to_default_time_units() != 0) { if (t1sec.to_default_time_units() != 0) {
const sc_time tunits{1.0 / t1sec.to_default_time_units(), SC_SEC}; const sc_core::sc_time tunits{1.0 / t1sec.to_default_time_units(), sc_core::SC_SEC};
spTrace()->set_time_unit(tunits.to_string()); spTrace()->set_time_unit(tunits.to_string());
} }
spTrace()->set_time_resolution(sc_get_time_resolution().to_string()); spTrace()->set_time_resolution(sc_core::sc_get_time_resolution().to_string());
} }
/// Destruct, flush, and close the dump /// Destruct, flush, and close the dump
~VerilatedFstSc() override { close(); } ~VerilatedFstSc() override { close(); }
@ -60,7 +60,7 @@ public:
// METHODS - for SC kernel // METHODS - for SC kernel
// Called by SystemC simulate() // Called by SystemC simulate()
void cycle(bool delta_cycle) override { void cycle(bool delta_cycle) override {
if (!delta_cycle) this->dump(sc_time_stamp().to_double()); if (!delta_cycle) this->dump(sc_core::sc_time_stamp().to_double());
} }
// Override VerilatedFstC. Must be called after starting simulation. // Override VerilatedFstC. Must be called after starting simulation.
@ -79,7 +79,7 @@ private:
// Cadence Incisive has these as abstract functions so we must create them // Cadence Incisive has these as abstract functions so we must create them
void set_time_unit(int exponent10_seconds) override {} // deprecated void set_time_unit(int exponent10_seconds) override {} // deprecated
#endif #endif
void set_time_unit(double v, sc_time_unit tu) override {} // LCOV_EXCL_LINE void set_time_unit(double v, sc_core::sc_time_unit tu) override {} // LCOV_EXCL_LINE
//-------------------------------------------------- //--------------------------------------------------
// SystemC 2.1.v1 // SystemC 2.1.v1
@ -96,8 +96,8 @@ private:
// Formatting matches that of sc_trace.h // Formatting matches that of sc_trace.h
// LCOV_EXCL_START // LCOV_EXCL_START
#if (SYSTEMC_VERSION >= 20171012) #if (SYSTEMC_VERSION >= 20171012)
DECL_TRACE_METHOD_A( sc_event ) DECL_TRACE_METHOD_A( sc_core::sc_event )
DECL_TRACE_METHOD_A( sc_time ) DECL_TRACE_METHOD_A( sc_core::sc_time )
#endif #endif
DECL_TRACE_METHOD_A( bool ) DECL_TRACE_METHOD_A( bool )

View File

@ -260,7 +260,7 @@ extern void _vl_debug_print_w(int lbits, WDataInP const iwp) VL_MT_SAFE;
#if defined(SYSTEMC_VERSION) #if defined(SYSTEMC_VERSION)
/// Return current simulation time /// Return current simulation time
// Already defined: extern sc_time sc_time_stamp(); // Already defined: extern sc_time sc_time_stamp();
inline uint64_t vl_time_stamp64() VL_MT_SAFE { return sc_time_stamp().value(); } inline uint64_t vl_time_stamp64() VL_MT_SAFE { return sc_core::sc_time_stamp().value(); }
#else // Non-SystemC #else // Non-SystemC
# if !defined(VL_TIME_CONTEXT) && !defined(VL_NO_LEGACY) # if !defined(VL_TIME_CONTEXT) && !defined(VL_NO_LEGACY)
# ifdef VL_TIME_STAMP64 # ifdef VL_TIME_STAMP64

View File

@ -29,7 +29,7 @@
#include "verilatedos.h" #include "verilatedos.h"
#include "systemc.h" #include <systemc>
//============================================================================= //=============================================================================
// For \internal use, get a pointer to m_data in the sc_bv_base class, // For \internal use, get a pointer to m_data in the sc_bv_base class,
@ -37,9 +37,9 @@
// use cast magic to get at it. Saves patching get_datap in SystemC. // use cast magic to get at it. Saves patching get_datap in SystemC.
#define VL_SC_BV_DATAP(bv) (VlScBvExposer::sp_datap(bv)) #define VL_SC_BV_DATAP(bv) (VlScBvExposer::sp_datap(bv))
// This class is thread safe (though most of SystemC is not). // This class is thread safe (though most of SystemC is not).
class VlScBvExposer final : public sc_bv_base { class VlScBvExposer final : public sc_dt::sc_bv_base {
public: public:
static const uint32_t* sp_datap(const sc_bv_base& base) VL_MT_SAFE { static const uint32_t* sp_datap(const sc_dt::sc_bv_base& base) VL_MT_SAFE {
return static_cast<const VlScBvExposer*>(&base)->sp_datatp(); return static_cast<const VlScBvExposer*>(&base)->sp_datatp();
} }
const uint32_t* sp_datatp() const { return reinterpret_cast<uint32_t*>(m_data); } const uint32_t* sp_datatp() const { return reinterpret_cast<uint32_t*>(m_data); }

View File

@ -36,23 +36,23 @@
/// with the SystemC simulation kernel, just like a SystemC-documented /// with the SystemC simulation kernel, just like a SystemC-documented
/// trace format. /// trace format.
class VerilatedVcdSc final : sc_trace_file, public VerilatedVcdC { class VerilatedVcdSc final : sc_core::sc_trace_file, public VerilatedVcdC {
// CONSTRUCTORS // CONSTRUCTORS
VL_UNCOPYABLE(VerilatedVcdSc); VL_UNCOPYABLE(VerilatedVcdSc);
public: public:
/// Construct a SC trace object, and register with the SystemC kernel /// Construct a SC trace object, and register with the SystemC kernel
VerilatedVcdSc() { VerilatedVcdSc() {
sc_get_curr_simcontext()->add_trace_file(this); sc_core::sc_get_curr_simcontext()->add_trace_file(this);
// We want to avoid a depreciated warning, but still be back compatible. // We want to avoid a depreciated warning, but still be back compatible.
// Turning off the message just for this still results in an // Turning off the message just for this still results in an
// annoying "to turn off" message. // annoying "to turn off" message.
const sc_time t1sec{1, SC_SEC}; const sc_core::sc_time t1sec{1, sc_core::SC_SEC};
if (t1sec.to_default_time_units() != 0) { if (t1sec.to_default_time_units() != 0) {
const sc_time tunits{1.0 / t1sec.to_default_time_units(), SC_SEC}; const sc_core::sc_time tunits{1.0 / t1sec.to_default_time_units(), sc_core::SC_SEC};
spTrace()->set_time_unit(tunits.to_string()); spTrace()->set_time_unit(tunits.to_string());
} }
spTrace()->set_time_resolution(sc_get_time_resolution().to_string()); spTrace()->set_time_resolution(sc_core::sc_get_time_resolution().to_string());
} }
/// Destruct, flush, and close the dump /// Destruct, flush, and close the dump
~VerilatedVcdSc() override { close(); } ~VerilatedVcdSc() override { close(); }
@ -60,7 +60,7 @@ public:
// METHODS - for SC kernel // METHODS - for SC kernel
// Called by SystemC simulate() // Called by SystemC simulate()
void cycle(bool delta_cycle) override { void cycle(bool delta_cycle) override {
if (!delta_cycle) this->dump(sc_time_stamp().to_double()); if (!delta_cycle) this->dump(sc_core::sc_time_stamp().to_double());
} }
// Override VerilatedVcdC. Must be called after starting simulation. // Override VerilatedVcdC. Must be called after starting simulation.
@ -78,7 +78,7 @@ private:
// Cadence Incisive has these as abstract functions so we must create them // Cadence Incisive has these as abstract functions so we must create them
void set_time_unit(int exponent10_seconds) override {} // deprecated void set_time_unit(int exponent10_seconds) override {} // deprecated
#endif #endif
void set_time_unit(double v, sc_time_unit tu) override {} // LCOV_EXCL_LINE void set_time_unit(double v, sc_core::sc_time_unit tu) override {} // LCOV_EXCL_LINE
//-------------------------------------------------- //--------------------------------------------------
// SystemC 2.1.v1 // SystemC 2.1.v1
@ -95,8 +95,8 @@ private:
// Formatting matches that of sc_trace.h // Formatting matches that of sc_trace.h
// LCOV_EXCL_START // LCOV_EXCL_START
#if (SYSTEMC_VERSION >= 20171012) #if (SYSTEMC_VERSION >= 20171012)
DECL_TRACE_METHOD_A( sc_event ) DECL_TRACE_METHOD_A( sc_core::sc_event )
DECL_TRACE_METHOD_A( sc_time ) DECL_TRACE_METHOD_A( sc_core::sc_time )
#endif #endif
DECL_TRACE_METHOD_A( bool ) DECL_TRACE_METHOD_A( bool )