From: Niels Moseley Date: Tue, 6 Nov 2018 11:11:52 +0000 (+0100) Subject: DFFLIBMAP: changed 'missing pin' error into a warning with additional reason/info. X-Git-Tag: yosys-0.9~415^2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cfc9b9147c3d737781f197a825b019584c2695a5;p=yosys.git DFFLIBMAP: changed 'missing pin' error into a warning with additional reason/info. --- diff --git a/passes/techmap/dfflibmap.cc b/passes/techmap/dfflibmap.cc index 421073485..b0528d473 100644 --- a/passes/techmap/dfflibmap.cc +++ b/passes/techmap/dfflibmap.cc @@ -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; }