mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-07 09:55:20 +00:00
cxxrtl: avoid unused variable warning for transparent $memrd ports. NFC.
This commit is contained in:
parent
9d0f1aa222
commit
8d70f7abf9
|
@ -1134,31 +1134,33 @@ struct CxxrtlWorker {
|
||||||
f << indent << "if(" << valid_index_temp << ".valid) {\n";
|
f << indent << "if(" << valid_index_temp << ".valid) {\n";
|
||||||
inc_indent();
|
inc_indent();
|
||||||
if (writable_memories[memory]) {
|
if (writable_memories[memory]) {
|
||||||
std::string addr_temp = fresh_temporary();
|
|
||||||
f << indent << "const value<" << cell->getPort(ID::ADDR).size() << "> &" << addr_temp << " = ";
|
|
||||||
dump_sigspec_rhs(cell->getPort(ID::ADDR));
|
|
||||||
f << ";\n";
|
|
||||||
std::string lhs_temp = fresh_temporary();
|
std::string lhs_temp = fresh_temporary();
|
||||||
f << indent << "value<" << memory->width << "> " << lhs_temp << " = "
|
f << indent << "value<" << memory->width << "> " << lhs_temp << " = "
|
||||||
<< mangle(memory) << "[" << valid_index_temp << ".index];\n";
|
<< mangle(memory) << "[" << valid_index_temp << ".index];\n";
|
||||||
std::vector<const RTLIL::Cell*> memwr_cells(transparent_for[cell].begin(), transparent_for[cell].end());
|
std::vector<const RTLIL::Cell*> memwr_cells(transparent_for[cell].begin(), transparent_for[cell].end());
|
||||||
std::sort(memwr_cells.begin(), memwr_cells.end(),
|
if (!memwr_cells.empty()) {
|
||||||
[](const RTLIL::Cell *a, const RTLIL::Cell *b) {
|
std::string addr_temp = fresh_temporary();
|
||||||
return a->getParam(ID::PRIORITY).as_int() < b->getParam(ID::PRIORITY).as_int();
|
f << indent << "const value<" << cell->getPort(ID::ADDR).size() << "> &" << addr_temp << " = ";
|
||||||
});
|
dump_sigspec_rhs(cell->getPort(ID::ADDR));
|
||||||
for (auto memwr_cell : memwr_cells) {
|
f << ";\n";
|
||||||
f << indent << "if (" << addr_temp << " == ";
|
std::sort(memwr_cells.begin(), memwr_cells.end(),
|
||||||
dump_sigspec_rhs(memwr_cell->getPort(ID::ADDR));
|
[](const RTLIL::Cell *a, const RTLIL::Cell *b) {
|
||||||
f << ") {\n";
|
return a->getParam(ID::PRIORITY).as_int() < b->getParam(ID::PRIORITY).as_int();
|
||||||
inc_indent();
|
});
|
||||||
f << indent << lhs_temp << " = " << lhs_temp;
|
for (auto memwr_cell : memwr_cells) {
|
||||||
f << ".update(";
|
f << indent << "if (" << addr_temp << " == ";
|
||||||
dump_sigspec_rhs(memwr_cell->getPort(ID::DATA));
|
dump_sigspec_rhs(memwr_cell->getPort(ID::ADDR));
|
||||||
f << ", ";
|
f << ") {\n";
|
||||||
dump_sigspec_rhs(memwr_cell->getPort(ID::EN));
|
inc_indent();
|
||||||
f << ");\n";
|
f << indent << lhs_temp << " = " << lhs_temp;
|
||||||
dec_indent();
|
f << ".update(";
|
||||||
f << indent << "}\n";
|
dump_sigspec_rhs(memwr_cell->getPort(ID::DATA));
|
||||||
|
f << ", ";
|
||||||
|
dump_sigspec_rhs(memwr_cell->getPort(ID::EN));
|
||||||
|
f << ");\n";
|
||||||
|
dec_indent();
|
||||||
|
f << indent << "}\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
f << indent;
|
f << indent;
|
||||||
dump_sigspec_lhs(cell->getPort(ID::DATA));
|
dump_sigspec_lhs(cell->getPort(ID::DATA));
|
||||||
|
|
Loading…
Reference in a new issue