Added passing on the args into the clockgate pass so there's an icg cell for the mapping

This commit is contained in:
AdvaySingh1 2026-02-17 10:49:18 -08:00
parent 2ab34262ec
commit cc6605f8e2
1 changed files with 12 additions and 3 deletions

View File

@ -582,6 +582,7 @@ struct SatClockgatePass : public Pass {
int max_cover = DEFAULT_MAX_COVER;
int min_regs = DEFAULT_MIN_REGS;
int sim_iterations = DEFAULT_SIM_ITERATIONS;
std::vector<std::string> clockgate_args;
size_t argidx;
for (argidx = 1; argidx < args.size(); argidx++) {
@ -593,9 +594,14 @@ struct SatClockgatePass : public Pass {
min_regs = std::stoi(args[++argidx]);
continue;
}
break;
// Pass remaining args to clockgate
if (args[argidx][0] == '-') {
clockgate_args.push_back(args[argidx]);
continue;
}
// Non-flag argument (value for previous flag)
clockgate_args.push_back(args[argidx]);
}
extra_args(args, argidx, design);
log("Configuration: max_cover=%d, min_regs=%d\n", max_cover, min_regs);
@ -622,7 +628,10 @@ struct SatClockgatePass : public Pass {
log("Total clock gates inserted: %d\n", total_gates);
// Convert CEs to actual clock gate cells
Pass::call(design, "clockgate");
std::string clockgate_cmd = "clockgate";
for (auto &arg : clockgate_args)
clockgate_cmd += " " + arg;
Pass::call(design, clockgate_cmd);
}
} SatClockgatePass;