SDC: Add -through switch to set_false_path command Signed-off-by: Tomasz Michalak <tmichalak@antmicro.com>
diff --git a/sdc-plugin/sdc_writer.cc b/sdc-plugin/sdc_writer.cc index e4076f8..4c7ae57 100644 --- a/sdc-plugin/sdc_writer.cc +++ b/sdc-plugin/sdc_writer.cc
@@ -71,6 +71,9 @@ if (!path.from_pin.empty()) { file << " -from " << path.from_pin; } + if (!path.through_pin.empty()) { + file << " -through " << path.through_pin; + } if (!path.to_pin.empty()) { file << " -to " << path.to_pin; }
diff --git a/sdc-plugin/sdc_writer.h b/sdc-plugin/sdc_writer.h index 05a8dea..9bcbcf1 100644 --- a/sdc-plugin/sdc_writer.h +++ b/sdc-plugin/sdc_writer.h
@@ -25,6 +25,7 @@ struct FalsePath { std::string from_pin; std::string to_pin; + std::string through_pin; }; struct TimingPath {
diff --git a/sdc-plugin/set_false_path.cc b/sdc-plugin/set_false_path.cc index 72bb41c..18262d0 100644 --- a/sdc-plugin/set_false_path.cc +++ b/sdc-plugin/set_false_path.cc
@@ -41,6 +41,9 @@ log(" -to\n"); log(" List of end points or clocks.\n"); log("\n"); + log(" -through\n"); + log(" List of through points or clocks.\n"); + log("\n"); } void SetFalsePath::execute(std::vector<std::string> args, @@ -54,6 +57,7 @@ bool is_quiet = false; std::string from_pin; std::string to_pin; + std::string through_pin; // Parse command arguments for (argidx = 1; argidx < args.size(); argidx++) { @@ -65,13 +69,16 @@ if (arg == "-from" and argidx + 1 < args.size()) { from_pin = args[++argidx]; - log("From: %s\n", from_pin.c_str()); continue; } if (arg == "-to" and argidx + 1 < args.size()) { to_pin = args[++argidx]; - log("To: %s\n", to_pin.c_str()); + continue; + } + + if (arg == "-through" and argidx + 1 < args.size()) { + through_pin = args[++argidx]; continue; } @@ -83,8 +90,10 @@ } if (!is_quiet) { std::string msg = (from_pin.empty()) ? "" : "-from " + from_pin; + msg += (through_pin.empty()) ? "" : " -through " + through_pin; msg += (to_pin.empty()) ? "" : " -to " + to_pin; log("Adding false path %s\n", msg.c_str()); } - sdc_writer_.AddFalsePath(FalsePath{.from_pin = from_pin, .to_pin = to_pin}); + sdc_writer_.AddFalsePath(FalsePath{ + .from_pin = from_pin, .to_pin = to_pin, .through_pin = through_pin}); }