3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2026-02-09 02:25:43 +00:00

verific: add -optimization option

This commit is contained in:
Dhaval Chaudhari 2026-01-01 20:03:32 +05:30
parent 8101c87fab
commit afe6d4092e

View file

@ -109,6 +109,7 @@ int verific_verbose;
bool verific_import_pending;
string verific_error_msg;
int verific_sva_fsm_limit;
bool verific_opt = false; // enable Verific optimizations
#ifdef VERIFIC_SYSTEMVERILOG_SUPPORT
vector<string> verific_incdirs, verific_libdirs, verific_libexts;
@ -3071,6 +3072,23 @@ std::string verific_import(Design *design, const std::map<std::string,std::strin
while (!nl_todo.empty()) {
auto it = nl_todo.begin();
Netlist *nl = it->second;
// use Verific optimizations
#ifdef VERIFIC_SYSTEMVERILOG_SUPPORT
if (verific_opt) {
log(" Running Verific optimizations for %s.\n", it->first.c_str());
// log(" Inferring clock enable muxes for %s.\n", it->first.c_str());
// nl->InferClockEnableMux();
log(" Running post-elaboration for %s.\n", it->first.c_str());
nl->PostElaborationProcess();
log(" Running operator optimization for %s.\n", it->first.c_str());
nl->OperatorOptimization();
}
#endif
if (nl_done.count(it->first) == 0) {
VerificImporter importer(false, false, false, false, false, false, false, false);
nl_done[it->first] = it->second;
@ -3692,6 +3710,13 @@ struct VerificPass : public Pass {
break;
}
#ifdef VERIFIC_SYSTEMVERILOG_SUPPORT
if (args[argidx] == "-optimization") {
verific_opt = true;
continue;
}
#endif
#ifdef VERIFIC_SYSTEMVERILOG_SUPPORT
if (GetSize(args) > argidx && (args[argidx] == "-f" || args[argidx] == "-F"))
{