in many scenarios, data comes in at a different speed or bitrate from the speed or bitwidth at which it goes out. examples: * UART handling. data comes in bit-wise, goes out byte-wise * SATA 8/10 checksum and handling. data comes in bitwise, is checked, bytes-out * Wishbone / AXI4 bridges: data comes in 64-bit, goes out 16-bit * instruction buffer: data comes in on cache-line width, goes out 16/32/48/64 this latter is more complex in that the data needs to be inspected intrusively in order to ascertain how much will go out.