3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-04-23 00:55:32 +00:00

Added "nlutmap -assert"

This commit is contained in:
Clifford Wolf 2016-06-09 11:47:41 +02:00
parent 52b0b4e31e
commit 99edf24966
2 changed files with 17 additions and 3 deletions

View file

@ -26,6 +26,7 @@ PRIVATE_NAMESPACE_BEGIN
struct NlutmapConfig
{
vector<int> luts;
bool assert_mode = false;
};
struct NlutmapWorker
@ -116,6 +117,12 @@ struct NlutmapWorker
available_luts.back() += n_luts;
}
if (config.assert_mode) {
for (auto cell : module->cells())
if (cell->type == "$lut" && !mapped_cells.count(cell))
log_error("Insufficient number of LUTs to map all logic cells!\n");
}
run_abc(0);
}
};
@ -135,6 +142,9 @@ struct NlutmapPass : public Pass {
log(" The number of LUTs with 1, 2, 3, ... inputs that are\n");
log(" available in the target architecture.\n");
log("\n");
log(" -assert\n");
log(" Create an error if not all logic can be mapped\n");
log("\n");
log("Excess logic that does not fit into the specified LUTs is mapped back\n");
log("to generic logic gates ($_AND_, etc.).\n");
log("\n");
@ -156,6 +166,10 @@ struct NlutmapPass : public Pass {
config.luts.push_back(atoi(token.c_str()));
continue;
}
if (args[argidx] == "-assert") {
config.assert_mode = true;
continue;
}
break;
}
extra_args(args, argidx, design);