<TD-Linux>
sounds like you want arewecompressedyet but for fpgas :)
<ZirconiumX>
I mean, it helps that they have statistical tools for this :P
<awygle>
that makes a lot of sense to me, the only thing that i'd suggest as an addition (maybe a "phase 2" kind of thing) would be to have more than one target metric. maybe adding a flag is intended to make things smaller but slower (i think nowideluts might be this? or the opposite?), measuring that it actually does so would be useful as well.
<awygle>
this message brought to you by "2 MHz clock on very small FPGA" gang
<ZirconiumX>
Interesting point.
<ZirconiumX>
I mean, you're entirely right.
<ZirconiumX>
Perhaps then we can qualify by two metrics on the resulting netlist?
<ZirconiumX>
Fmax and area.
<ZirconiumX>
One can go even further and talk about runtime, since that's something you'd want to optimise too
<ZirconiumX>
And runtime would actually imply routability, right? Since a more-easily-routed design would take less time to route.
rohitksingh has joined ##openfpga
<awygle>
well "fmax and area" is tough, because that'll define a pareto frontier of some kind, and a change may move you along it, which does not have an obvious yes/no answer
emilazy is now known as emily
<ZirconiumX>
FPGA is naturally a Pareto frontier
<awygle>
sure, but you can choose to constrain yourself to one dimension at a time :p
emily is now known as emilazy
<ZirconiumX>
True, yeah
<awygle>
ideally you'd be able to pick your point on the pareto curve, but of course that's difficult since you're tuning proxy knobs sort of by the nature of the thing
<awygle>
thinking about it, synthesis is largely single-threaded in yosys, right? would be interesting to provide a mode to try a bunch of different settings and pick the best result based on the thing you're optimizing for.
<ZirconiumX>
nextpnr is generally single-thread too.
rohitksingh has quit [Ping timeout: 265 seconds]
<adamgreig>
i wish nextpnr had a "run N seeds in parallel, keep the best one"
* adamgreig
says, while running one nextpnr go at a time, incrementing seed until it passes timing, using 1/16 cores
<adamgreig>
i appreciate this is very easily done externally to nextpnr :p
<awygle>
yeah, agreed
<awygle>
even HeAP doesn't do multithreading? that's surprising
<daveshah>
It does
<awygle>
ah ok
<daveshah>
(the basic algorithm gets almost a 2x speedup by solving X and Y in different threads, then for very large designs the solver also supports OpenMP)
<daveshah>
router2 is also parallelised for shorter nets, but has other issues that stops it being a big speedup over router1 for ECP5 atm
m_w has joined ##openfpga
etrig has quit [Quit: oops]
GenTooMan has quit [Quit: Leaving]
GenTooMan has joined ##openfpga
<tnt>
Does anyone if the VexRiscv project has an IRC or a mailing list or something similar ?
<keesj>
it would be nice
rohitksingh has joined ##openfpga
<daveshah>
I think there might be a Gitter, at least a spinalhdl one
<TD-Linux>
for videos to follow this curve, they internally optimize for an rdo score, which is score = distortion + rate*lambda, where lambda tweaks where along the curve you are. you could in theory do the same in yosys/nextpnr, with area and delay being the parameters. I dunno if you'll get anything close to a smooth curve though