<ZipCPU>
promach2: Ahm ... because it isn't constant? The error is pretty self explanatory.
<promach2>
ZipCPU: huh ? I am using genvar, why is it not constant ?
<shapr>
I had a shower thought yesterday about FPGA layout
<shapr>
but I'm not quite sure how to turn it into words
<shapr>
first thought was, place and route on a sphere would be much easier, especially since the edges connect
<daveshah>
promach2: because you are not using the genvar directly, but as an index to received_data_zeroes which is non-constant
<shapr>
that turned into thinking about n-dimensional surface layout, I suspect it'd be easy to do, but I'm not sure about bringing it back down from higher dimensions
<ZipCPU>
shapr: My thought was that the first step to P&R should be an aggregation step, words should be placed together for example.
<ZipCPU>
That would solve any carry chain issues.
<shapr>
ZipCPU: elucidate?
<qu1j0t3>
there's a LOT of literature on this problem :)
<ZipCPU>
qu1j0t3: And I haven't read any of it! ;D
<shapr>
I was thinking about how SA gets stuck in local minima, I suspect doing layout in more dimensions and then reducing down to two may help with that
<qu1j0t3>
there are some other algorithms you could look at -- cuckoo search etc
<shapr>
related to cuckoo hashing, probably?
<qu1j0t3>
no
<emeb>
"reducing down to two" <- there's the rub.
<shapr>
emeb: yeah, agreed
<ZipCPU>
My thought was that: reg [15:0] A; always @(posedge i_clk) A <= A + 1; requires a series of logic elements that need to be placed near each other. The first step should therefore be a block placement algorithm.
<shapr>
first thought about that was 'sticking down' part of a spherical layout, then re-running SA in 2D
<qu1j0t3>
the thing is "stuck in the wrong local minimum" is literally the issue, because the thing is NP-complete.
<qu1j0t3>
you can only mitigate it
<qu1j0t3>
& i think there are things you can do to help SA out?
* ZipCPU
pulls at his beard
<ZipCPU>
SA?
<ZipCPU>
Situational awareness?
<qu1j0t3>
shapr: do you mean a torus?
<qu1j0t3>
ZipCPU: simulated annealing
<ZipCPU>
Ahh ... thanks
<shapr>
torus would be fine too
<shapr>
just anything that makes the search easier at first
<shapr>
I also thought that a generic place-and-route might start with zero layout constraints on a sphere, just shrinking the sphere down to the perfect size to fit the layout
<shapr>
and then add in constraints
<shapr>
such as output pins and that kind of thing
<shapr>
qu1j0t3: what's the trade-off between a torus and sphere?
cemerick_ has joined #yosys
<qu1j0t3>
if you are working 2 dimensional ordinates you might have some trouble mapping to a sphere?
<qu1j0t3>
there's also particle swarm optimisation. if i were doing this, i'd probably develop metrics and constraints i could use with pluggable algorithms, as there are quite a few possibilities
<qu1j0t3>
but things like cuckoo search and PSO look promising to me if SA isn't cutting it. but you will definitely want to review literature so you get some benefit from the large investments already made
<shapr>
yes, I want a place and route experimental toolkit
emeb_mac has joined #yosys
thoughtpolice has quit [Remote host closed the connection]
lvrp16 has quit [Remote host closed the connection]
furan-- has quit [Remote host closed the connection]
elms has quit [Remote host closed the connection]
thoughtpolice has joined #yosys
danieljabailey has quit [Ping timeout: 260 seconds]
furan-- has joined #yosys
lvrp16 has joined #yosys
danieljabailey has joined #yosys
elms has joined #yosys
<shapr>
awygle: were you able to find the source code for the GPU star+ place-and-route paper?
<shapr>
I found the primary author's github account, but don't see the source there
promach2 has quit [Ping timeout: 240 seconds]
jkiv has joined #yosys
X-Scale has joined #yosys
<shapr>
is there a specification for the blif format?