Added RTLIL::SigSpec::to_single_sigbit()
authorClifford Wolf <clifford@clifford.at>
Sun, 2 Feb 2014 20:35:26 +0000 (21:35 +0100)
committerClifford Wolf <clifford@clifford.at>
Sun, 2 Feb 2014 20:35:26 +0000 (21:35 +0100)
kernel/rtlil.cc
kernel/rtlil.h

index 7638d4689f8bdf49c0790c2ba27c52501900abe0..1d1448d45f9ae1e8446175931e5be2221ff51e9b 100644 (file)
@@ -1551,6 +1551,15 @@ std::vector<RTLIL::SigBit> RTLIL::SigSpec::to_sigbit_vector() const
        return sigbits;
 }
 
+RTLIL::SigBit RTLIL::SigSpec::to_single_sigbit() const
+{
+       log_assert(width == 1);
+       for (auto &c : chunks)
+               if (c.width)
+                       return RTLIL::SigBit(c);
+       log_abort();
+}
+
 static void sigspec_parse_split(std::vector<std::string> &tokens, const std::string &text, char sep)
 {
        size_t start = 0, end = 0;
index e0b3a693d6172248c6230545467379679addf929..df0e94dcc1702ca5042dd5dfb3cfa2d6295c169f 100644 (file)
@@ -409,6 +409,7 @@ struct RTLIL::SigSpec {
        bool match(std::string pattern) const;
        std::set<RTLIL::SigBit> to_sigbit_set() const;
        std::vector<RTLIL::SigBit> to_sigbit_vector() const;
+       RTLIL::SigBit to_single_sigbit() const;
        static bool parse(RTLIL::SigSpec &sig, RTLIL::Module *module, std::string str);
        static bool parse_rhs(const RTLIL::SigSpec &lhs, RTLIL::SigSpec &sig, RTLIL::Module *module, std::string str);
 };