Example #1
0
def rotate_right(value, n):
    if isinstance(value, intbv):
        size = value._nrbits
        val  = value._val
    elif isinstance(value, _Signal) and isinstance(value._val, intbv):
        size = value._nrbits
        if isinstance(value._val, intbv):
            val = value._val._val
        else:
            val = value._val
    else:
        raise TypeError("rotate_right: inappropriate first argument type: %s"
                        % type(value))

    if isinstance(n, intbv):
        nVal = n._val
    elif isinstance(n, integer_types):
        nVal = n
    elif isinstance(n, _Signal):
        if isinstance(n._val, intbv):
            nVal = n._val._val
        else:
            nVal = n._val
    elif isinstance(n, str):
        nVal = long(base, 2)
    else:
        raise TypeError("rotate_right: inappropriate second argument type: %s"
                        % type(value))

    mid = nVal

    return concat(val[mid:0], val[size:mid])
Example #2
0
 def ConcatToUnsizedBase(self, bases, extslist):
     for base, basestr in zip(bases, self.bases):
         for exts, extstr in zip(extslist, self.extslist):
             bv = concat(base, *exts)
             refstr = basestr + reduce(operator.add, extstr)
             ref = long(refstr, 2)
             self.assertEqual(bv, ref)
             self.assertEqual(len(bv), 0)
Example #3
0
 def ConcatToUnsizedBase(self, bases, extslist):
     for base, basestr in zip(bases, self.bases):
         for exts, extstr in zip(extslist, self.extslist):
             bv = concat(base, *exts)
             refstr = basestr + reduce(operator.add, extstr)
             ref = long(refstr, 2)
             assert bv == ref
             assert len(bv) == 0
Example #4
0
 def ConcatToUnsizedBase(self, bases, extslist):
     for base, basestr in zip(bases, self.bases):
         for exts, extstr in zip(extslist, self.extslist):
             bv = concat(base, *exts)
             refstr = basestr + reduce(operator.add, extstr)
             ref = long(refstr, 2)
             assert bv == ref
             assert len(bv) == 0
Example #5
0
 def testUnsizedConcat(self):
     a = intbv(4)
     b = intbv(5)
     with pytest.raises(TypeError):
         concat(a, b)
Example #6
0
 def testWrongType(self):
     a = intbv(4)
     with pytest.raises(TypeError):
         concat(a, 5)
Example #7
0
 def testUnsizedConcat(self):
     a = intbv(4)
     b = intbv(5)
     with pytest.raises(TypeError):
         concat(a, b)
Example #8
0
 def testWrongType(self):
     a = intbv(4)
     with pytest.raises(TypeError):
         concat(a, 5)