aboutsummaryrefslogtreecommitdiffstats
path: root/passes/cmds/select.cc
diff options
context:
space:
mode:
authorClaire Wolf <claire@symbioticeda.com>2020-03-17 18:44:06 +0100
committerClaire Wolf <claire@symbioticeda.com>2020-03-17 18:47:01 +0100
commit7f5c73d58fd732a96e480083896cd73c722849ba (patch)
tree1fabe746a9c9bc8434f1beccf3181b1816854f5a /passes/cmds/select.cc
parenta2fa1654dcb20960cc0ae03dcad399d7c6b5f80a (diff)
downloadyosys-7f5c73d58fd732a96e480083896cd73c722849ba.tar.gz
yosys-7f5c73d58fd732a96e480083896cd73c722849ba.tar.bz2
yosys-7f5c73d58fd732a96e480083896cd73c722849ba.zip
Add N:* to select language, fix some old code
Signed-off-by: Claire Wolf <claire@symbioticeda.com>
Diffstat (limited to 'passes/cmds/select.cc')
-rw-r--r--passes/cmds/select.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/passes/cmds/select.cc b/passes/cmds/select.cc
index 1657ef818..4dcf76480 100644
--- a/passes/cmds/select.cc
+++ b/passes/cmds/select.cc
@@ -764,10 +764,7 @@ static void select_stmt(RTLIL::Design *design, std::string arg)
} else {
size_t pos = arg.find('/');
if (pos == std::string::npos) {
- if (arg.find(':') == std::string::npos || arg.compare(0, 1, "A") == 0)
- arg_mod = arg;
- else
- arg_mod = "*", arg_memb = arg;
+ arg_mod = arg;
} else {
arg_mod = arg.substr(0, pos);
arg_memb = arg.substr(pos+1);
@@ -789,6 +786,10 @@ static void select_stmt(RTLIL::Design *design, std::string arg)
if (!match_attr(mod->attributes, arg_mod.substr(2)))
continue;
} else
+ if (arg_mod.compare(0, 2, "N:") == 0) {
+ if (!match_ids(mod->name, arg_mod.substr(2)))
+ continue;
+ } else
if (!match_ids(mod->name, arg_mod))
continue;
@@ -1074,6 +1075,10 @@ struct SelectPass : public Pass {
log(" all modules with an attribute matching the given pattern\n");
log(" in addition to = also <, <=, >=, and > are supported\n");
log("\n");
+ log(" N:<pattern>\n");
+ log(" all modules with a name matching the given pattern\n");
+ log(" (i.e. 'N:' is optional as it is the default matching rule)\n");
+ log("\n");
log("An <obj_pattern> can be an object name, wildcard expression, or one of\n");
log("the following:\n");
log("\n");