Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ibex_demo_system.core #103

Merged
merged 1 commit into from
Mar 11, 2024
Merged

Conversation

jaisw7
Copy link
Contributor

@jaisw7 jaisw7 commented Mar 9, 2024

Fix for Verilator 5.x

Output from sample hello_world

./build/lowrisc_ibex_demo_system_0/sim-verilator/Vtop_verilator \
  --meminit=ram,./sw/c/build/demo/hello_world/demo
Simulation of Ibex Demo System
==============================

Tracing can be toggled by sending SIGUSR1 to this process:
$ kill -USR1 421326

UART: Created /dev/pts/3 for uart0. Connect to it with any terminal program, e.g.
$ screen /dev/pts/3
UART: Additionally writing all UART output to 'uart0.log'.

Simulation running, end by pressing CTRL-c.
^CReceived stop request, shutting down simulation.

Simulation statistics
=====================
Executed cycles:  57408461
Wallclock time:   39.825 s
Simulation speed: 1.44152e+06 cycles/s (1441.52 kHz)

Performance Counters
====================
Cycles:                     69899
Instructions Retired:       39498
LSU Busy:                   17890
Fetch Wait:                 2982
Loads:                      10981
Stores:                     6909
Jumps:                      3367
Conditional Branches:       2395
Taken Conditional Branches: 1258

Fix for Verilator 5.x
Copy link
Contributor

@marnovandermaas marnovandermaas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change also works for Verilator 4.210. Out of curiosity what error were you seeing when running under Verilator 5?

@jaisw7
Copy link
Contributor Author

jaisw7 commented Mar 11, 2024

Sure. Here's the command I used:

fusesoc --cores-root=. run --target=sim --tool=verilator --setup --build lowrisc:ibex:demo_system

and the error log:

ERROR: In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.cpp:24:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:30:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from /usr/local/share/verilator/include/verilated.cpp:51:
/usr/local/share/verilator/include/verilatedos.h:265:3: error: #error "Verilator requires a C++14 or newer compiler"
  265 | # error "Verilator requires a C++14 or newer compiler"
      |   ^~~~~
In file included from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.h:28,
                 from /usr/local/share/verilator/include/verilated_threads.cpp:26:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.h:31,
                 from /usr/local/share/verilator/include/verilated_dpi.cpp:32:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.h:13,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilator_sim_ctrl.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_threads.h:28,
                 from /usr/local/share/verilator/include/verilated_threads.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.cpp:24:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_threads.h:28,
                 from /usr/local/share/verilator/include/verilated_threads.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.cpp:24:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_dpi.h:31,
                 from /usr/local/share/verilator/include/verilated_dpi.cpp:32:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_threads.h:28,
                 from /usr/local/share/verilator/include/verilated_threads.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.cpp:24:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_threads.h:28,
                 from /usr/local/share/verilator/include/verilated_threads.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_threads.cpp:24:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:30:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_imp.h:32,
                 from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_dpi.h:31,
                 from /usr/local/share/verilator/include/verilated_dpi.cpp:32:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:30:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_dpi.h:31,
                 from /usr/local/share/verilator/include/verilated_dpi.cpp:32:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:30:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_dpi.h:31,
                 from /usr/local/share/verilator/include/verilated_dpi.cpp:32:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:30:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ./Vtop_verilator__Syms.h:10,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.cc:9:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_imp.h:32,
                 from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.cpp:51:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_imp.h:32,
                 from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.cpp:51:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_imp.h:32,
                 from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.cpp:51:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_imp.h:32,
                 from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.cpp:51:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_dpi.cpp:34:
/usr/local/share/verilator/include/verilated_imp.h: In static member function ‘static int VerilatedImp::exportFind(const char*)’:
/usr/local/share/verilator/include/verilated_imp.h:555:34: error: unable to find string literal operator ‘operator""s’ with ‘const char [28]’, ‘long unsigned int’ arguments
  555 |         const std::string msg = ("%Error: Testbench C called "s + namep
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Vtop_verilator.mk:121: verilated_toplevel.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:275: verilated_threads.o] Error 1
In file included from /usr/local/share/verilator/include/verilated.cpp:53:
/usr/local/share/verilator/include/verilated_imp.h: In static member function ‘static int VerilatedImp::exportFind(const char*)’:
/usr/local/share/verilator/include/verilated_imp.h:555:34: error: unable to find string literal operator ‘operator""s’ with ‘const char [28]’, ‘long unsigned int’ arguments
  555 |         const std::string msg = ("%Error: Testbench C called "s + namep
      |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Vtop_verilator.mk:123: verilator_sim_ctrl.o] Error 1
In file included from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
make[1]: *** [Vtop_verilator.mk:125: ibex_demo_system.o] Error 1
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:275: verilated_dpi.o] Error 1
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated.h:76:22: error: ‘literals’ is not a namespace-name
   76 | using namespace std::literals;  // "<std::string literal>"s; see SF.7 core guideline
      |                      ^~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In function ‘void _vl_vsformat(std::string&, const string&, __va_list_tag*)’:
/usr/local/share/verilator/include/verilated.cpp:946:38: error: unable to find string literal operator ‘operator""s’ with ‘const char [2]’, ‘long unsigned int’ arguments
  946 |                             append = "-"s + VL_DECIMAL_NW(lbits, neg);
      |                                      ^~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated.cpp:1088:45: error: unable to find string literal operator ‘operator""s’ with ‘const char [28]’, ‘long unsigned int’ arguments
 1088 |                     const std::string msg = "Unknown _vl_vsformat code: "s + pos[0];
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from /usr/local/share/verilator/include/verilated_fst_c.cpp:26:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In function ‘IData _vl_vsscanf(FILE*, int, WDataInP, const string&, const string&, __va_list_tag*)’:
/usr/local/share/verilator/include/verilated.cpp:1370:45: error: unable to find string literal operator ‘operator""s’ with ‘const char [27]’, ‘long unsigned int’ arguments
 1370 |                     const std::string msg = "Unknown _vl_vsscanf code: "s + pos[0];
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In function ‘std::string VL_STACKTRACE_N()’:
/usr/local/share/verilator/include/verilated.cpp:1730:73: error: unable to find string literal operator ‘operator""s’ with ‘const char [2]’, ‘long unsigned int’ arguments
 1730 |     for (int j = 0; j < nptrs; j++) result += std::string{strings[j]} + "\n"s;
      |                                                                         ^~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from ../src/lowrisc_dv_verilator_simutil_verilator_0/cpp/verilated_toplevel.h:12,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system.h:5,
                 from ../src/lowrisc_ibex_demo_system_0/dv/verilator/ibex_demo_system_main.cc:5:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEvent&)’:
/usr/local/share/verilator/include/verilated_types.h:266:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  266 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In function ‘std::string VL_TO_STRING(const VlEventBase&)’:
/usr/local/share/verilator/include/verilated_types.h:277:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [11]’, ‘long unsigned int’ arguments
  277 |     return "triggered="s + (e.isTriggered() ? "true" : "false");
      |            ^~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1651:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1651 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In constructor ‘VlClassRef<T_Class>::VlClassRef(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1661:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1661 |         : m_objp{std::exchange(moved.m_objp, nullptr)} {}
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_Class>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1676:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1676 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:950,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilated_types.h: In member function ‘VlClassRef<T_Class>& VlClassRef<T_Class>::operator=(VlClassRef<T_OtherClass>&&)’:
/usr/local/share/verilator/include/verilated_types.h:1691:23: error: ‘exchange’ is not a member of ‘std’; did you mean ‘vlstd::exchange’?
 1691 |         m_objp = std::exchange(moved.m_objp, nullptr);
      |                       ^~~~~~~~
In file included from /usr/local/share/verilator/include/verilated.h:42,
                 from Vtop_verilator__pch.h:21:
/usr/local/share/verilator/include/verilatedos.h:642:3: note: ‘vlstd::exchange’ declared here
  642 | T exchange(T& obj, U&& new_value) {
      |   ^~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In static member function ‘static void Verilated::overWidthError(const char*)’:
/usr/local/share/verilator/include/verilated.cpp:2993:30: error: unable to find string literal operator ‘operator""s’ with ‘const char [24]’, ‘long unsigned int’ arguments
 2993 |     const std::string msg = ("Testbench C set input '"s + signame
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In member function ‘void VerilatedScope::varInsert(int, const char*, void*, bool, VerilatedVarType, int, int, ...)’:
/usr/local/share/verilator/include/verilated.cpp:3215:37: error: unable to find string literal operator ‘operator""s’ with ‘const char [49]’, ‘long unsigned int’ arguments
 3215 |             const std::string msg = "Unsupported multi-dimensional public varInsert: "s + namep;
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In static member function ‘static void* VerilatedScope::exportFindNullError(int)’:
/usr/local/share/verilator/include/verilated.cpp:3235:30: error: unable to find string literal operator ‘operator""s’ with ‘const char [21]’, ‘long unsigned int’ arguments
 3235 |     const std::string msg = ("Testbench C called '"s + VerilatedImp::exportName(funcnum)
      |                              ^~~~~~~~~~~~~~~~~~~~~~~
/usr/local/share/verilator/include/verilated.cpp: In member function ‘void* VerilatedScope::exportFindError(int) const’:
/usr/local/share/verilator/include/verilated.cpp:3245:12: error: unable to find string literal operator ‘operator""s’ with ‘const char [21]’, ‘long unsigned int’ arguments
 3245 |         = ("Testbench C called '"s + VerilatedImp::exportName(funcnum)
      |            ^~~~~~~~~~~~~~~~~~~~~~~
make[1]: *** [Vtop_verilator.mk:127: ibex_demo_system_main.o] Error 1
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:275: verilated.o] Error 1
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:275: verilated_fst_c.o] Error 1
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:281: Vtop_verilator__pch.h.fast.gch] Error 1
make[1]: *** [/usr/local/share/verilator/include/verilated.mk:283: Vtop_verilator__pch.h.slow.gch] Error 1
make: *** [Makefile:13: Vtop_verilator] Error 2

ERROR: Failed to build lowrisc:ibex:demo_system:0 : '['make', '-j', '20']' exited with an error: 2

@marnovandermaas marnovandermaas merged commit 79b4f81 into lowRISC:main Mar 11, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants