cxxrtl: include iostream when prints are used

This commit is contained in:
Asherah Connor 2023-04-19 19:54:09 +10:00 committed by Marcelina Kościelnicka
parent cbd3ff2d3a
commit 4a475fa7a2
4 changed files with 7 additions and 5 deletions

View File

@ -2474,6 +2474,7 @@ struct CxxrtlWorker {
RTLIL::Module *top_module = nullptr; RTLIL::Module *top_module = nullptr;
std::vector<RTLIL::Module*> modules; std::vector<RTLIL::Module*> modules;
TopoSort<RTLIL::Module*> topo_design; TopoSort<RTLIL::Module*> topo_design;
bool has_prints = false;
for (auto module : design->modules()) { for (auto module : design->modules()) {
if (!design->selected_module(module)) if (!design->selected_module(module))
continue; continue;
@ -2486,6 +2487,8 @@ struct CxxrtlWorker {
topo_design.node(module); topo_design.node(module);
for (auto cell : module->cells()) { for (auto cell : module->cells()) {
if (cell->type == ID($print))
has_prints = true;
if (is_internal_cell(cell->type) || is_cxxrtl_blackbox_cell(cell)) if (is_internal_cell(cell->type) || is_cxxrtl_blackbox_cell(cell))
continue; continue;
RTLIL::Module *cell_module = design->module(cell->type); RTLIL::Module *cell_module = design->module(cell->type);
@ -2544,6 +2547,8 @@ struct CxxrtlWorker {
f << "#include \"" << intf_filename << "\"\n"; f << "#include \"" << intf_filename << "\"\n";
else else
f << "#include <backends/cxxrtl/cxxrtl.h>\n"; f << "#include <backends/cxxrtl/cxxrtl.h>\n";
if (has_prints)
f << "#include <iostream>\n";
f << "\n"; f << "\n";
f << "#if defined(CXXRTL_INCLUDE_CAPI_IMPL) || \\\n"; f << "#if defined(CXXRTL_INCLUDE_CAPI_IMPL) || \\\n";
f << " defined(CXXRTL_INCLUDE_VCD_CAPI_IMPL)\n"; f << " defined(CXXRTL_INCLUDE_VCD_CAPI_IMPL)\n";

View File

@ -1,4 +1,3 @@
#include <iostream>
#include "yosys-always_comb.cc" #include "yosys-always_comb.cc"
int main() int main()

View File

@ -1,4 +1,3 @@
#include <iostream>
#include "yosys-always_full.cc" #include "yosys-always_full.cc"
int main() int main()

View File

@ -1,4 +1,3 @@
#include <iostream>
#include "yosys-display_lm.cc" #include "yosys-display_lm.cc"
int main() int main()