Added RTLIL::SigSpec::repeat()
authorClifford Wolf <clifford@clifford.at>
Wed, 23 Jul 2014 19:34:14 +0000 (21:34 +0200)
committerClifford Wolf <clifford@clifford.at>
Wed, 23 Jul 2014 19:34:14 +0000 (21:34 +0200)
kernel/rtlil.cc
kernel/rtlil.h

index 7d031e174b1d4ba1ec74e07e3e58974a552201ba..d2f37cec40b827c468f1931657b6da336746f87a 100644 (file)
@@ -1796,6 +1796,14 @@ void RTLIL::SigSpec::extend_u0(int width, bool is_signed)
 
 }
 
+RTLIL::SigSpec RTLIL::SigSpec::repeat(int num) const
+{
+       RTLIL::SigSpec sig;
+       for (int i = 0; i < num; i++)
+               sig.append(*this);
+       return sig;
+}
+
 void RTLIL::SigSpec::check() const
 {
        if (packed())
index a13164c37ae9fef938245b3b9784a10784d6c511..95de5f8c6f4cbc6037b7d0af55cadb031fcaa4b7 100644 (file)
@@ -565,6 +565,8 @@ public:
        void extend(int width, bool is_signed = false);
        void extend_u0(int width, bool is_signed = false);
 
+       RTLIL::SigSpec repeat(int num) const;
+
        bool operator <(const RTLIL::SigSpec &other) const;
        bool operator ==(const RTLIL::SigSpec &other) const;
        inline bool operator !=(const RTLIL::SigSpec &other) const { return !(*this == other); }