<cr1901_modern>
The two machines interfere w/ each other and my xfer speed drops to 1MBps between the two machines
rohitksingh has joined ##openfpga
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined ##openfpga
fouric has quit [Ping timeout: 240 seconds]
fouric has joined ##openfpga
rohitksingh has quit [Ping timeout: 268 seconds]
carl0s has quit [Ping timeout: 260 seconds]
bitd has joined ##openfpga
<whitequark>
awygle: I'm now completely certain it's SI.
<whitequark>
making the bus longer makes the display glitch less.
<whitequark>
and in fact depending on which bus lines I make longer, I can observe that they stop interfering with each other
<whitequark>
by the erroneous command it executes
<Ultrasauce>
sounds like a job for series resistors? make that breadboard even messier
Bike has joined ##openfpga
ironsteel has joined ##openfpga
ironsteel has quit [Client Quit]
<whitequark>
yep
eduardo__ has joined ##openfpga
eduardo_ has quit [Ping timeout: 240 seconds]
rohitksingh has joined ##openfpga
rohitksingh has quit [Client Quit]
rohitksingh has joined ##openfpga
rohitksingh has quit [Quit: Leaving.]
rohitksingh has joined ##openfpga
rohitksingh has quit [Ping timeout: 260 seconds]
Ishan_Bansal has quit [Ping timeout: 256 seconds]
carlosFPGA has quit [Ping timeout: 256 seconds]
marex-cloud has quit [Ping timeout: 256 seconds]
_florent_ has quit [Ping timeout: 256 seconds]
nickjohnson has quit [Ping timeout: 256 seconds]
Ishan_Bansal has joined ##openfpga
marex-cloud has joined ##openfpga
carlosFPGA has joined ##openfpga
hl has quit [Ping timeout: 256 seconds]
mithro has quit [Ping timeout: 256 seconds]
_florent_ has joined ##openfpga
nickjohnson has joined ##openfpga
mithro has joined ##openfpga
hl has joined ##openfpga
eddyb has quit [Remote host closed the connection]
elms has quit [Remote host closed the connection]
eddyb has joined ##openfpga
elms has joined ##openfpga
GenTooMan has joined ##openfpga
carl0s has joined ##openfpga
carl0s has left ##openfpga [##openfpga]
rohitksingh has joined ##openfpga
lexano has joined ##openfpga
X-Scale has joined ##openfpga
<pie_>
just hypothetically, how much sense could it make to stick to foss and user MOAR ICE40 vs switching to closed source with bigger fpga
<pie_>
hm. i guess that would give harder timing constraints
<pie_>
and more routin bottlenecks
<jn__>
i don't think automatic multi-chip P&R is currently supported, at all
<jn__>
which means: (a) keep your design small enough for one ice40, or (b) partition your design explicitly and deal with inter-chip busses, or (c) automatic multi-chip P&R sounds like an interesting research topic
<jn__>
or (d) wait for 7-series tools :)
* awygle
emerges from his long slumber
<awygle>
whitequark: yeah that's SI all right
rohitksingh has quit [Quit: Leaving.]
* pie_
plays windows startup sound for awygle
user10032 has joined ##openfpga
m_t has joined ##openfpga
<rqou>
ping daveshah
<daveshah>
rqou: hey
<rqou>
in the ice40, do the output wires not show up as neighbor inputs in adjacent IO tiles?
<rqou>
*output wires of IO tiles
<rqou>
they appear to only show up as neighbor wires in the adjacent logic tiles?
<rqou>
this is for still attempting to see if i can cram rgmii into an ice40
<rqou>
i wanted to cram a clk pin into a certain io tile and then the rgmii pins into the adjacent io tiles
<rqou>
but it seems there's no way to route the clock signal like that
<rqou>
no way to get the outputs from io tile 0,19 or 0,17
<daveshah>
ah, sorry didn't read your question
<daveshah>
properly
<rqou>
so if i want to play with very aggressive optimizations the clock inputs and data inputs need to be 4 tiles away?
<rqou>
route via a span4?
<daveshah>
yeah
<daveshah>
that's what you'd have to do
<rqou>
wow so many gotchas
<daveshah>
although I think the span4s might stop in the middle too
<daveshah>
I'm not sure of the exact routability though
<rqou>
stop in the middle?
<daveshah>
be accessible in the tiles they go through
<daveshah>
not just the tiles 4 apart
<daveshah>
given all the caveats with connectability, might be worth just writing a python script to check
<rqou>
ooh right
<rqou>
i forgot about that
<daveshah>
I don't actually know the routing of the IO tiles that well
<rqou>
the way clifford describes the span wires always confuses me
<rqou>
because you can actually "get on/off the span wire" in the middle
<daveshah>
yeah
<rqou>
not just in the cells where they terminate
<daveshah>
yep. the ECP5 is different for example, the span wires in that connect to the ends and the centre only, not any other
<rqou>
i'm increasingly curious how the ice40 works at a silicon level
* rqou
looks around for people pointing fingers at me
* awygle
j'accuse
rohitksingh has joined ##openfpga
<bitd>
Absolutely breaking my head over what approach is best in general for place-and-route.
<rqou>
hmm daveshah: do you know if arachne-pnr knows about neighbor tracks and prioritizes them?
<rqou>
first of all, are they faster than spanNs?
<daveshah>
rqou: it knows about them, because they're in the db but I don't think it specifically prioritises them
<rqou>
bitd: try simulated annealing :P :P :P
<bitd>
I've got some handle on most of the papers in the wiki, but it still feels like yet another attempt this way
<rqou>
bitd: try getting a PhD :P
<bitd>
You guys mind if I take a different run at it?
<rqou>
what do you mean?
<bitd>
I've got some friends at the university who are working on CGRA scheduling, placing and routing.
<bitd>
Cause its just a forest of information, I think its best to get some expert advise.
<bitd>
Not trying to sound like a critic here, but it feels like there are a lot of unexplored options.
<rqou>
there probably are
<bitd>
:)
<rqou>
er, daveshah: where do i find delay information for neighbor tracks?
<daveshah>
rqou: delays are based on cells rather than wires specifically, if you look in the timing data there are hopefully some neighbour-related buffer cells
<rqou>
yeah, i don't see any :P
<rqou>
is nobody else trying to aggressively push the timing like this?
<bitd>
awygle did most of this research, correct?
<daveshah>
rqou: no
<awygle>
bitd: in the sense of finding a bunch of papers, yes
<daveshah>
icetime only has the information from iCEcube to work from anyway, and that used pretty crappy STA
<daveshah>
no load model or anything
<bitd>
Did you have full academic access?
<rqou>
use sci-hub? :P
<awygle>
But I had a very specific focus at the time. I was looking for parallel approaches without regard to QoR
<rqou>
otherwise i still have a way to get UCB's access
<awygle>
bitd: I had IEEE access
<bitd>
I might just be misunderstanding the approach of openfpga, but in my mind, a good placement and routing algorithm is at the heart of all of it.
<rqou>
yeah, we're working on it, slowly
<rqou>
i just finished the "acquire another fancy piece of paper" thing which frees up a lot of time
<bitd>
Same >.>
<rqou>
O_o another "academic" here :P
<bitd>
Just an MSc.
<rqou>
yeah same
<q3k>
you and your fancy credentials
<rqou>
not azonenberg
<rqou>
except mine technically isn't a MSc
<rqou>
q3k: no PhD like azonenberg? :P
<q3k>
i have the self-appointed 'hippie dropout' degree
<bitd>
EE with a specialisation in Systems on Chip.
<awygle>
bitd: it's a chicken and egg problem but with N chickens and M eggs
<awygle>
The ice40 is so small that SA is fine
<awygle>
But why reverse a bigger FPGA if you can't place and route it?
<awygle>
And there's a whole ecosystem of things we don't have yet
<awygle>
We are inevitably going to build a bunch of terrible tools before we figure out what good ones look like
<awygle>
But then people want to fix the terrible tools, and that soaks up time
<egg|zzz|egg>
awygle: chicken and me?
<awygle>
So.... Yknow
<awygle>
egg|zzz|egg: your irc alerts must be exhausting
<bitd>
I understand awygle :)
<egg|zzz|egg>
awygle: eh, "double" and "integration" have far more false positives than egg
<awygle>
Integration is the one I was trying to remember
<rqou>
oh btw egg|zzz|egg since you're here can i annoy you with the question that digshadow tried to ask you a few months(?) ago?
<egg|zzz|egg>
rqou: the optimization question? I'm incompetent, forward to bofh_
<rqou>
not exactly an optimization question
<egg|zzz|egg>
if you have more enumerative or eggstremal combinatorics questions throw them my way though
<rqou>
i'll try to ask it again and you can tell me if i have to ask bofh_? :P
<egg|zzz|egg>
You probably have to ask bofh_, but you can ask it to bofh_ again :D
<rqou>
anyways, the question as i finally understand it (after asking digshadow irl) is:
<rqou>
given a not-necessarily-square matrix A known symbolically
<rqou>
we want to find x such that Ax >= b where b is a set of measured numbers
<rqou>
obviously this can be solved by just setting x to infinity, so...
<rqou>
we try to add some kind of (what AI/ML people would call) regularization term
<rqou>
i.e. find the x with the smallest |x| such that Ax >= b
<rqou>
but "somehow" adding this constraint does not appear to be good enough when A is singular
<rqou>
so the idea shifted to: "can we somehow do a change of variables and get an A' and x' such that A' is 'less' singular)
<rqou>
"
<rqou>
so then the question seems to have shifted to "how can we determine such a change of variables?"
<rqou>
afaict we want "express the null space of A as a set of basis vectors that are somehow in 'a nice form' whatever that means (i'm not sure yet)"
<rqou>
egg|zzz|egg: so, are we going about it in the right way or are we totally lost?
<egg|zzz|egg>
rqou: this is either optimization or linear algebra, either way ask bofh_
<rqou>
lol ok
<rqou>
hopefully at least this explanation was more helpful?
<rqou>
for "wtf are we trying to do"
<egg|zzz|egg>
also Ax >= b irks me, that's not something you can do to vectors >_>
<egg|zzz|egg>
I assume it means entrywise
<rqou>
oh right
<rqou>
um
<rqou>
yeah
<egg|zzz|egg>
but at that point you lost a lot of nice linear algebra
<rqou>
the matrices aren't symmetric either so it's not a LMI
<egg|zzz|egg>
I thought some things needed to be integers last time, did that vanish?
<rqou>
the matrix A contains only integers
<rqou>
so the 'nice way' of expressing basis vectors should preferably only contain integers
<rqou>
but x, b are not integers
<bitd>
Sounds like a linear programming problem to me.
<rqou>
hmm i don't see how?
<rqou>
oh yeah, i mean, i guess
<rqou>
afaik the problem is the "'somehow' minimizing |x| isn't sufficient" part
<bitd>
The problem definition is still a bit hazy to me >.>
<rqou>
also egg|zzz|egg coordinate-free is great until you actually need to turn squiggles on paper into code in the computer :P :P :P
<rqou>
bitd: that's because there are two problems
<bitd>
One is the definition, the other the problem? >.>
<egg|zzz|egg>
rqou: nah, if you want to stay sane while giving it to the computer you *must* know what is sensible and what isn't
<rqou>
the original problem is "find x such that Ax >= b with 'appropriate' regularization on x"
<rqou>
attempting to solve that gave a new problem
<rqou>
"we do not seem to be able to apply 'appropriate' regularization when A is singular"
<bitd>
Ah right.
<egg|zzz|egg>
rqou: see the current discussion in #kspacademia on trying to figure out wtf the moment of inertia is on a space equipped with an inner product but no orientation
<rqou>
the attempt to solve _this_ problem is "can we do a change of variables to get A' and x' that 'work better'?"
<rqou>
and the attempt to solve this is "can we express the null space of A as a set of 'nice' basis vectors"
<egg|zzz|egg>
rqou: but again you want that to be all integers
<rqou>
yeah, the problem is that we aren't really sure what "nice" should mean
<bitd>
Nor appropriate.
<egg|zzz|egg>
but they're not a field so you're *really* not dealing with vector spaces here
<bitd>
Which is where the problem starts.
<egg|zzz|egg>
at best a module
<egg|zzz|egg>
and then you have your dreadful >=
<rqou>
yeah i know
<rqou>
the problem isn't super well posed is it? :P
<egg|zzz|egg>
rqou: just because you can write one bit of it as a matrix multiplication doesn't make linear algebra applicable to the rest
<bitd>
Well thats no issue, talking about it clarifies it.
<egg|zzz|egg>
as bitd said, this is probably some sort of linear programming thing, where I'm incompetent; maybe bofh_ can help
<rqou>
the final part of the problem "can we express the null space of A as a set of 'nice' basis vectors" is actually still useful without the first inequality part
<rqou>
because hopefully we can define 'nice' in a way that is useful for "how do we gather more data?"
<rqou>
gathering more data then adds more rows to A and x and hopefully makes A less singular