def chop(self, bits=<NUM_LIT:1>):
s = len(self)<EOL>if s % bits != <NUM_LIT:0>:<EOL><INDENT>raise ValueError("<STR_LIT>" % (len(self), bits))<EOL><DEDENT>elif s == bits:<EOL><INDENT>return [ self ]<EOL><DEDENT>else:<EOL><INDENT>return list(reversed([ self[(n+<NUM_LIT:1>)*bits - <NUM_LIT:1>:n*bits] for n in range(<NUM_LIT:0>, s // bits) ]))<EOL><DEDENT>
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.