code: def chop(self, bits=1):
          
          s = len(self)
          if s % bits != 0:
              raise ValueError("expression length (%d) should be a multiple of 'bits' (%d)" % (len(self), bits))
          elif s == bits:
              return [ self ]
          else:
              return list(reversed([ self[(n+1)*bits - 1:n*bits] for n in range(0, s // bits) ]))
docs: Chops a BV into consecutive sub-slices. Obviously, the length of this BV must be a multiple of bits.
  
          :returns:   A list of smaller bitvectors, each ``bits`` in length. The first one will be the left-most (i.e.
                      most significant) bits.