Skip to content

Commit

Permalink
[#74021] wip: SystemC support
Browse files Browse the repository at this point in the history
  • Loading branch information
magancarz committed Mar 4, 2025
1 parent 2fc4554 commit 23ed508
Show file tree
Hide file tree
Showing 5 changed files with 80 additions and 30 deletions.
24 changes: 24 additions & 0 deletions include/verilated_saif_sc.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//=============================================================================
//
// THIS MODULE IS PUBLICLY LICENSED
//
// Copyright 2001-2025 by Wilson Snyder. This program is free software; you
// can redistribute it and/or modify it under the terms of either the GNU
// Lesser General Public License Version 3 or the Perl Artistic License
// Version 2.0.
// SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
//
//=============================================================================
///
/// \file
/// \brief Verilated tracing in SAIF for SystemC implementation code
///
/// This file is deprecated, only verilated_saif_sc.h is needed.
/// It is provided only for backward compatibility with user's linker scripts.
///
//=============================================================================

#ifdef VL_NO_LEGACY
#error "verilated_saif_sc.cpp is deprecated; verilated_saif_sc.h is self-sufficient"
#endif
56 changes: 56 additions & 0 deletions include/verilated_saif_sc.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
// -*- mode: C++; c-file-style: "cc-mode" -*-
//=============================================================================
//
// Copyright 2001-2025 by Wilson Snyder. This program is free software; you can
// redistribute it and/or modify it under the terms of either the GNU
// Lesser General Public License Version 3 or the Perl Artistic License
// Version 2.0.
// SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0
//
//=============================================================================
///
/// \file
/// \brief Verilated tracing in SAIF format for SystemC header
///
/// User wrapper code should use this header when creating SAIF SystemC traces.
///
/// This class is not threadsafe, as the SystemC kernel is not threadsafe.
///
//=============================================================================

#ifndef VERILATOR_VERILATED_SAIF_SC_H_
#define VERILATOR_VERILATED_SAIF_SC_H_

#include "verilatedos.h"

#include "verilated_saif_c.h"
#include "verilated_sc_trace.h"

//=============================================================================
// VerilatedSaifSc
/// Trace file used to create SAIF dump for SystemC version of Verilated models. It's very similar
/// to its C version (see the class VerilatedSaifC)

class VerilatedSaifSc final : VerilatedScTraceBase, public VerilatedSaifC {
// CONSTRUCTORS
VL_UNCOPYABLE(VerilatedSaifSc);

public:
VerilatedSaifSc() {
spTrace()->set_time_unit(VerilatedScTraceBase::getScTimeUnit());
spTrace()->set_time_resolution(VerilatedScTraceBase::getScTimeResolution());
}

// METHODS
// Override VerilatedSaifC. Must be called after starting simulation.
void open(const char* filename) override VL_MT_SAFE {
VerilatedScTraceBase::checkScElaborationDone();
VerilatedSaifC::open(filename);
}

// METHODS - for SC kernel
// Called from SystemC kernel
void cycle() override { VerilatedSaifC::dump(sc_core::sc_time_stamp().to_double()); }
};

#endif // Guard
4 changes: 0 additions & 4 deletions src/V3Options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1816,10 +1816,6 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
addIncDirUser(parseFileArg(optdir, string{valp}));
});

if (m_systemC && m_traceFormat == TraceFormat::SAIF) {
fl->v3warn(E_UNSUPPORTED, "Unsupported: SAIF trace with SystemC.");
}

parser.finalize();

for (int i = 0; i < argc;) {
Expand Down
3 changes: 0 additions & 3 deletions test_regress/t/t_trace_saif_sc_unsup.out

This file was deleted.

23 changes: 0 additions & 23 deletions test_regress/t/t_trace_saif_sc_unsup.py

This file was deleted.

0 comments on commit 23ed508

Please sign in to comment.