[Libre-soc-dev] MUX was Re: Daily Kanban 2020aug10

whygee at f-cpu.org whygee at f-cpu.org
Mon Aug 10 23:03:01 BST 2020


On 2020-08-10 23:46, Luke Kenneth Casson Leighton wrote:
> On Monday, August 10, 2020, <whygee at f-cpu.org> wrote:
> 
>> You know i've been working on optimising MUX trees right ?...
> is that to be part of yosys?  or is it a "general technique"?

i'm not touching yosys.

It's a general technique, portable, that solves large problems
such as what you encouner.

It's a published technique :
https://connect.ed-diamond.com/GNU-Linux-Magazine/GLMF-218/Quelques-applications-des-Arbres-Binaires-a-Commande-Equilibree

And I recently experimented with a simple MUX64 where the gain
is as expected (lower fanout => faster, less power draw)

https://hackaday.io/project/27280-ygrec8/log/181058-the-art-of-large-muxes
https://hackaday.io/project/27280-ygrec8/log/87415-mux-trees

The method has positive benefit starting with MUX8, and I think Power
has banks of32 regs so the gain is a no-brainer.
The only "cost" is to shuffle the register numbering internally.

with that : you can avoid having a wire that must drive 16×64 MUX2
and eats up a clock network, just for example.

And that's only with considering a single MU32.
When you have parallel MUX32s, you can spread the costs even more.

I believe the french article is easy to translate
and the pictures speak for themselves :-)

> l.
yg



More information about the Libre-soc-dev mailing list