Added SigSpec::has_const()
authorClifford Wolf <clifford@clifford.at>
Sat, 7 Feb 2015 23:01:51 +0000 (00:01 +0100)
committerClifford Wolf <clifford@clifford.at>
Sat, 7 Feb 2015 23:01:51 +0000 (00:01 +0100)
kernel/rtlil.cc
kernel/rtlil.h

index b1e2c0e8ed5a9daa1a6919fe0ed92b1f120bbf54..776625b9cf5bf9e021e48b9e325ad7cb37f650d0 100644 (file)
@@ -1078,6 +1078,7 @@ void RTLIL::Module::check()
 
        for (auto &it : connections_) {
                log_assert(it.first.size() == it.second.size());
+               log_assert(!it.first.has_const());
                it.first.check();
                it.second.check();
        }
@@ -2968,6 +2969,17 @@ bool RTLIL::SigSpec::is_fully_undef() const
        return true;
 }
 
+bool RTLIL::SigSpec::has_const() const
+{
+       cover("kernel.rtlil.sigspec.has_const");
+
+       pack();
+       for (auto it = chunks_.begin(); it != chunks_.end(); it++)
+               if (it->width > 0 && it->wire == NULL)
+                       return true;
+       return false;
+}
+
 bool RTLIL::SigSpec::has_marked_bits() const
 {
        cover("kernel.rtlil.sigspec.has_marked_bits");
index 985bffe5e58532bc37207c1633c37bb57ff42ff8..dd40e2fbadeb290574697bcf9755b2925c604c25 100644 (file)
@@ -672,6 +672,7 @@ public:
        bool is_fully_const() const;
        bool is_fully_def() const;
        bool is_fully_undef() const;
+       bool has_const() const;
        bool has_marked_bits() const;
 
        bool as_bool() const;