summaryrefslogtreecommitdiff
path: root/passes/dfflibmap
diff options
context:
space:
mode:
authorClifford Wolf <clifford@clifford.at>2013-10-16 06:32:35 +0200
committerClifford Wolf <clifford@clifford.at>2013-10-16 06:32:35 +0200
commit845590aa8e3a7994b7082b5f0b4ab39c377163ba (patch)
tree0309d32cfabb40457593a89a9e04b591dafb574d /passes/dfflibmap
parenta12d39bc86b2161947f83f0dcb52da9dcf7744c3 (diff)
Fixed parsing or liberty file statements such as 'clocked_on : "(!CLK)";'
Patch by Tim Edwards
Diffstat (limited to 'passes/dfflibmap')
-rw-r--r--passes/dfflibmap/dfflibmap.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/passes/dfflibmap/dfflibmap.cc b/passes/dfflibmap/dfflibmap.cc
index dd873cad..5e3219d5 100644
--- a/passes/dfflibmap/dfflibmap.cc
+++ b/passes/dfflibmap/dfflibmap.cc
@@ -69,12 +69,15 @@ static bool parse_pin(LibertyAst *cell, LibertyAst *attr, std::string &pin_name,
std::string value = attr->value;
- for (size_t pos = value.find_first_of("\" \t"); pos != std::string::npos; pos = value.find_first_of("\" \t"))
+ for (size_t pos = value.find_first_of("\" \t()"); pos != std::string::npos; pos = value.find_first_of("\" \t()"))
value.erase(pos, 1);
if (value[value.size()-1] == '\'') {
pin_name = value.substr(0, value.size()-1);
pin_pol = false;
+ } else if (value[0] == '!') {
+ pin_name = value.substr(1, value.size()-1);
+ pin_pol = false;
} else {
pin_name = value;
pin_pol = true;