/*
* functions for part select
*
* a narrow (<=32 bits) part select is copied between
* the implementation representation and a single chunk of
* canonical representation
*
Normalized ranges and indexing [n-1:0] are used for both arrays:
* the array in the implementation representation and the
canonical array.
*
*
s=source, d=destination, i=starting bit index,
w=width
* like for
variable part selects; limitations: w <= 32
*
* In part
select operations, the data is copied to or from the
* canonical
representation part ('chunk') designated by range [w-1:0]
* and the
implementation representation part designated by range [w+i-1:i].
*/