From: Clifford Wolf Date: Mon, 1 Apr 2013 12:58:11 +0000 (+0200) Subject: Added support for @ in expand select ops (%x, %ci, %co) X-Git-Tag: yosys-0.2.0~654 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=32ee794bfb4aebbab10da4b620d9bece6e89035e;p=yosys.git Added support for @ in expand select ops (%x, %ci, %co) --- diff --git a/kernel/select.cc b/kernel/select.cc index 730f47b43..fa1c3db02 100644 --- a/kernel/select.cc +++ b/kernel/select.cc @@ -346,8 +346,18 @@ static void select_op_expand(RTLIL::Design *design, std::string arg, char mode) size_t endpos = arg.find(':', pos); if (endpos == std::string::npos) endpos = arg.size(); - if (int(endpos) > pos) - limits.insert(RTLIL::escape_id(arg.substr(pos, endpos-pos))); + if (int(endpos) > pos) { + std::string str = arg.substr(pos, endpos-pos); + if (str[0] == '@') { + str = RTLIL::escape_id(str.substr(1)); + if (design->selection_vars.count(str) > 0) { + for (auto i1 : design->selection_vars.at(str).selected_members) + for (auto i2 : i1.second) + limits.insert(i2); + } + } else + limits.insert(RTLIL::escape_id(str)); + } pos = endpos; } }