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});
}