DFFLIBMAP: changed 'missing pin' error into a warning with additional reason/info.

This commit is contained in:
Niels Moseley 2018-11-06 12:11:52 +01:00
parent f6c4485a3a
commit cfc9b9147c
1 changed files with 10 additions and 1 deletions

View File

@ -101,7 +101,16 @@ static bool parse_pin(LibertyAst *cell, LibertyAst *attr, std::string &pin_name,
if (child->id == "pin" && child->args.size() == 1 && child->args[0] == pin_name)
return true;
log_error("Malformed liberty file - cannot find pin '%s' in cell '%s'.\n", pin_name.c_str(), cell->args[0].c_str());
/* If we end up here, the pin specified in the attribute does not exist, which is an error,
or, the attribute contains an expression which we do not yet support.
For now, we'll simply produce a warning to let the user know something is up.
*/
if (pin_name.find_first_of("^*|&") == std::string::npos) {
log_warning("Malformed liberty file - cannot find pin '%s' in cell '%s' - skipping.\n", pin_name.c_str(), cell->args[0].c_str());
}
else {
log_warning("Found unsupported expression '%s' in pin attribute of cell '%s' - skipping.\n", pin_name.c_str(), cell->args[0].c_str());
}
return false;
}