[#73220] add proper t_trace_saif_sc_unsup test
This commit is contained in:
parent
5c5d0d488e
commit
d40d944916
|
|
@ -1,24 +0,0 @@
|
||||||
// -*- mode: C++; c-file-style: "cc-mode" -*-
|
|
||||||
//=============================================================================
|
|
||||||
//
|
|
||||||
// Code available from: https://verilator.org
|
|
||||||
//
|
|
||||||
// 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 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
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
// -*- 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_sc_trace.h"
|
|
||||||
#include "verilated_saif_c.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());
|
|
||||||
VerilatedScTraceBase::enableDeltaCycles(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 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
|
|
||||||
|
|
@ -1640,7 +1640,7 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
|
||||||
DECL_OPTION("-top", Set, &m_topModule);
|
DECL_OPTION("-top", Set, &m_topModule);
|
||||||
DECL_OPTION("-top-module", Set, &m_topModule);
|
DECL_OPTION("-top-module", Set, &m_topModule);
|
||||||
DECL_OPTION("-trace", OnOff, &m_trace);
|
DECL_OPTION("-trace", OnOff, &m_trace);
|
||||||
DECL_OPTION("-trace-saif", CbCall, [this]() {
|
DECL_OPTION("-trace-saif", CbCall, [this, fl]() {
|
||||||
m_trace = true;
|
m_trace = true;
|
||||||
m_traceFormat = TraceFormat::SAIF;
|
m_traceFormat = TraceFormat::SAIF;
|
||||||
});
|
});
|
||||||
|
|
@ -1824,6 +1824,10 @@ void V3Options::parseOptsList(FileLine* fl, const string& optdir, int argc,
|
||||||
addIncDirUser(parseFileArg(optdir, string{valp}));
|
addIncDirUser(parseFileArg(optdir, string{valp}));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (m_systemC && m_traceFormat == TraceFormat::SAIF) {
|
||||||
|
fl->v3warn(E_UNSUPPORTED, "Unsupported: SAIF trace with SystemC.");
|
||||||
|
}
|
||||||
|
|
||||||
parser.finalize();
|
parser.finalize();
|
||||||
|
|
||||||
for (int i = 0; i < argc;) {
|
for (int i = 0; i < argc;) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
%Error-UNSUPPORTED: Unsupported: SAIF trace with SystemC.
|
||||||
|
... For error description see https://verilator.org/warn/UNSUPPORTED?v=latest
|
||||||
|
%Error: Exiting due to
|
||||||
|
|
@ -9,15 +9,13 @@
|
||||||
|
|
||||||
import vltest_bootstrap
|
import vltest_bootstrap
|
||||||
|
|
||||||
test.scenarios('vlt_all')
|
test.scenarios('linter')
|
||||||
|
|
||||||
test.top_filename = "t/t_trace_fst_sc.v"
|
test.top_filename = "t/t_trace_fst_sc.v"
|
||||||
|
|
||||||
if not test.have_sc:
|
if not test.have_sc:
|
||||||
test.skip("No SystemC installed")
|
test.skip("No SystemC installed")
|
||||||
|
|
||||||
test.compile(verilator_flags2=["--trace-saif --sc"])
|
test.lint(fails=test.vlt_all, verilator_flags2=["--sc --trace-saif --lint-only"], expect_filename=test.golden_filename)
|
||||||
|
|
||||||
test.execute()
|
test.passes()
|
||||||
|
|
||||||
test.passes()
|
|
||||||
Loading…
Reference in New Issue