When it comes to 1-lane to 2-lane conversion I think the following are the only possibilities: 1) 1-lane payloads always come in pairs, and 2-lane transaction only happens when the second transaction arrives (this implies i_en is equal for both, cause without i_en there wouldn't be a stream transaction) 2) 1-lane payloads can come not-in-pairs: 2.a) The converter can always output the incoming transaction on lane[0]. If the output stream is not ready it can instead store the transaction, if before the output stream becomes ready a new input transaction arrives, then when the output stream becomes ready both transactions will be transferred on lanes 0 and 1. -- This implies that results can come back on arbitrary lanes, and could result in misalignment in some cases. 2.b) The 1-to-2 converter could convert from "Tagged" single-lane to a 2-lane payload. The tag would contain information about which lane each 1-lane payload belongs to, and whether to wait for another payload or not. The tag would be either extra bits in "meta", or a separate variable or something like that. I.e. the 1-to-2 converter would have to introspect into the lane to figure out what to do with it.