[libre-riscv-dev] partitioned compare and mux

Luke Kenneth Casson Leighton lkcl at lkcl.net
Thu Feb 6 23:28:06 GMT 2020

michael, apologies, you know when you think things through it's only then
you realise...

you may recall i said i wasn't sure if the comparator partitioned ops would
need to output a single bit (in the LSB of each partition) or every bit in
the partition.

if it is every bit, then partitioned mux is very simple: completely ignore
the actual partitions, take each bit of the selector, mux each byte
associated with that selector bit.


if it is only the LSB of each partition, then in each pmux it is necessary
to extend that LSB out across the rest of the partition, dynamically.

whilst it is straightforward enough to do, it is logic that will likely get
repeated a lot, particularly given that there will be multiple muxes
chained together in the FPU code.

so ah many apologies, if you agree with the assessment above, you know
where you solved the issue of 0xf instead of 0x1, that needs to revert to y
|= masklist_bits[i] and then gt_combiner being modified to propagate the
LSB (result) from each partition over the entire partition.

does that sound reasonable?


crowd-funded eco-conscious hardware: https://www.crowdsupply.com/eoma68

More information about the libre-riscv-dev mailing list