<whitequark>
there's a few issues with flowmap -relax it that basically require a complete rewrite
<whitequark>
without -relax it should work but i'm not surprised there are other bugs in it
kraiskil has joined #yosys
<corecode>
hi
<corecode>
yea i saw experimental, but i figured it shouldn't crash with what's likely an over/underflow
<Sarayan>
flowmap is what, a synthesis methodology?
kraiskil has quit [Ping timeout: 240 seconds]
<lofty>
Sarayan: it's a LUT mapper
<lofty>
I've actually written a few, and I am kind of surprised how bloody difficult it is to get right
<Sarayan>
must be fun
<Sarayan>
if a pain
kraiskil has joined #yosys
<corecode>
lofty: difficult not to make mistakes?
<lofty>
corecode: there are a lot of invariants that are difficult to articulate in such a way that one can meaningfully test them
peeps[zen] has joined #yosys
peepsalot has quit [Ping timeout: 260 seconds]
<corecode>
interesting
<corecode>
i would have thought that transforming a set of logic should be easy to test for equivalence
<lofty>
Oh, it is
<lofty>
But equivalent does not mean bug free
<lofty>
This is not strictly relevant to FlowMap because it has a different working methodology, but ABC needs "reference counters", and these represent how many best LUTs at a node use this node as an input
<lofty>
... Sorry, I should rephrase that: these represent how many nodes use this node as an input to their best LUT
<lofty>
When a LUT is selected as the best at a node, it increments the reference counters of the inputs to that LUT
<lofty>
When the mapper changes its mind, it has to decrement the reference counters of the inputs to its previous-best
<lofty>
Now, suppose you have a bug somewhere where you decrement a reference counter when you shouldn't
<lofty>
You'll only discover that there was a mistake when you decrement the reference counter when you should have
<lofty>
Which means failure cases are highly nonlocal
ec has joined #yosys
kraiskil has quit [Ping timeout: 240 seconds]
<corecode>
i see
<corecode>
thanks
cr1901 has quit [Ping timeout: 252 seconds]
peeps[zen] has quit [Quit: Connection reset by peep]