whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.irclog.whitequark.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
megabobster[m] has quit [Quit: Idle timeout reached: 172800s]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
siriusfox has quit [Quit: ZNC 1.8.2+deb2ubuntu0.1 - https://znc.in]
siriusfox has joined #glasgow
FFY00_ has joined #glasgow
FFY00 has quit [Ping timeout: 245 seconds]
Fridtjof has quit [Quit: ZNC - http://znc.in]
Stary has quit [Quit: ZNC - http://znc.in]
Stary has joined #glasgow
Fridtjof has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
tec6 has joined #glasgow
tec has quit [Read error: Connection reset by peer]
tec6 is now known as tec
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
tec has quit [Quit: bye!]
tec has joined #glasgow
anton_star has joined #glasgow
whitequark[m] has quit [Quit: Idle timeout reached: 172800s]
dustinm`_ has quit [Quit: Leaving]
dustinm` has joined #glasgow
marcus_c has quit [Ping timeout: 245 seconds]
GNUmoon has quit [Remote host closed the connection]
GNUmoon has joined #glasgow
<purdeaandrei[m]> Could you clarify? Does 2-lane streams mean 2-(lane streams) or (2-lane) streams?
<purdeaandrei[m]> Does each lane have it's own i_en?
<purdeaandrei[m]> s/it's/its/
<purdeaandrei[m]> Currently the latch only extends the o[1] beat, because we always output data in pairs in DDR mode. Do we desire to be able to only output one of those? And if we only output o[0], then to have the stretcher automatically replicate to o[1], and if we only output o[1] then have the stretcher take o[0] from the latch?
<purdeaandrei[m]> * stretcher take a value for o[0] from
<purdeaandrei[m]> oh, you said here that it's a single stream
<purdeaandrei[m]> So then I think we would also need an o_en for each lane
<purdeaandrei[m]> So here you mean, instead of portname.i[0], it should be lane[0].portname.i, right?
<purdeaandrei[m]> Also what does `<1` mean in your message?
<purdeaandrei[m]> * So here you mean, instead of i_stream.p.port.portname.i[0], it should be i_stream.p.lane[0].portname.i, right?
<purdeaandrei[m]> Oh, ignore the second to last question, you already specified it for `.o` so should be the same for `.i`. Although I'm not sure about the always-valid aspect of i_stream, cause the first, or first two samples would not be valid
vegard_e[m] has joined #glasgow
<vegard_e[m]> less that one sample per cycle presumably means one sample every N cycles
<purdeaandrei[m]> ah, okay, so the baud-limited case
anton_star has quit [Quit: Client closed]
redstarcomrade has quit [Read error: Connection reset by peer]
<purdeaandrei[m]> In the case of SDR or divisor!=0 mode, the outputs are going to be down-converted from 2-lane to serially issued 1-lane. Then how about the response? It feels clean to up-convert the inputs to 2-lane, and have QSPIController be agnostic of what the ratio is, that is: it should always have sck=0 in lane0, sck=1 in lane1, and always sample the result from lane1
<purdeaandrei[m]> if there's one `i_en` per stream transaction, then that would turn into two `i_en`s per lower level IOStreamer transaction, then some module would register those two `i_en`s, and present both to the user
<purdeaandrei[m]> if there's one i_en per lane, then the lower level IOStreamer would have to pass through ancillary data about which lane `i_en` belongs to, and whether it's the last one or not. (otherwise the upconverter module wouldn't know that it doesn't have to wait for the second lane after it receives lane 0), and then for cleanliness the input stream would also need `i_en` fields, to tell you which lanes contain valid data and which don't.
<purdeaandrei[m]> Starting to feel like one i_en per 2-lane transaction is better
<purdeaandrei[m]> also this would just complicate things too much
Foxyloxy_ has joined #glasgow
Foxyloxy has quit [Ping timeout: 248 seconds]
meklort_ has joined #glasgow
meklort has quit [Ping timeout: 260 seconds]
meklort_ is now known as meklort
axiesmoothie[m] has quit [Quit: Idle timeout reached: 172800s]
whitequark[m] has joined #glasgow
<whitequark[m]> no o_en, one i_en per lane
<whitequark[m]> nothing outside of lanws
<whitequark[m]> s/lanws/lanes/
<whitequark[m]> that is the design I'm proposing
<purdeaandrei[m]> how about meta?
<purdeaandrei[m]> Also see my later messages, wouldn't that make one i_en per lane undesirable?
<whitequark[m]> that goes into the lane too
<whitequark[m]> I'm too tired to look into it, but the short answer is that stuff outside of lanes breaks the entire design, so I don't think there are objections to it I will find convincing
<whitequark[m]> (since you can only use lane converters if nothing exists outside of lanes)
<whitequark[m]> I'll have to read your messages sometime when I'm not tired, and I have no idea when that will happen
<whitequark[m]> maybe after I quit my job or something
fishmonger[m] has quit [Quit: Idle timeout reached: 172800s]
lle_bout[m] has quit [Quit: Idle timeout reached: 172800s]
<purdeaandrei[m]> Is a lane converter a concept that already exists? Isn't it just a stream transformer that will change from 2-lane to 1-lane and vice versa?
<whitequark[m]> yes
<purdeaandrei[m]> then I don't understand why it can't have stuff outside of lanes
<purdeaandrei[m]> cause it has access to the non-lane data
<whitequark[m]> well what if it receives two different meta and has to pack it into one?
<whitequark[m]> it can't do that
<whitequark[m]> so it should never be in that situatio
<whitequark[m]> s/situatio/situation/
<purdeaandrei[m]> but if meta by definition is outside of lanes, then it can only receive one meta
<whitequark[m]> consider the 1-lane to 2-lane case
<whitequark[m]> it takes 2 payloads to form one
<purdeaandrei[m]> yes, but that will start out with a 2-lane to 1-lane, and then we know the meta is the same for both 1-lane payloads
<whitequark[m]> nope
<whitequark[m]> the lane converter is a generic piece of infra, not one specific to this use case
<whitequark[m]> in any case, I don't want to discuss this until I'm not feeling sick every day
<whitequark[m]> or at least, this sick
<whitequark[m]> it's incredibly exhausting
<purdeaandrei[m]> I hope you'll get better soon
<whitequark[m]> don't get your hopes up
<whitequark[m]> it might take months
whitequark[cis] has joined #glasgow
<whitequark[cis]> thanks
WilfriedKlaebe[m has joined #glasgow
<WilfriedKlaebe[m> whitequark[m]: Best wishes!
<purdeaandrei[m]> Alright, well, I'll come up with some code that will follow the guidelines that you already layed out, as much as as I can, and then whenever you feel you are able we can talk about it. Please don't allow my interest to feel like pressure on you. It's more important to take care of yourself.
<whitequark[m]> thanks
GNUmoon has quit [Ping timeout: 260 seconds]
cr1901_ is now known as cr1901
<purdeaandrei[m]> When it comes to 1-lane to 2-lane conversion I think the following are the only possibilities:... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/PjxCwNCZSxmyOAJcdkvDJBxq>)
<purdeaandrei[m]> I don't think there's any other option
<purdeaandrei[m]> btw, 2a) would also need some form of introspection, cause with 2a) it becomes absolutely necessary to also have a lane_valid bit, to tell the receiver where data is present. So that means the output lanes have more members than the input lanes.
<purdeaandrei[m]> whitequark (@_discord_182174208896401419:catircservices.org) Apologies for the question and feel free to ignore, but should by code be 2a) or 2b)? Cause it will have a massive impact on its structure.
<whitequark[m]> I really don't want to discuss this topic and it's incredibly stressful that you're making me to
<purdeaandrei[m]> Apologies
<whitequark[m]> open source is making me miserable
<whitequark[m]> maybe I should quit it
<whitequark[m]> even if I say things like "I'm too sick to discuss this" people just don't listen
<purdeaandrei[m]> I'm sorry, I'm stopping on this
Attie[m] has quit [Quit: Idle timeout reached: 172800s]
GNUmoon has joined #glasgow
trh has quit [Quit: weg]
trh has joined #glasgow
dustinm` has quit [Ping timeout: 252 seconds]
dustinm`_ has joined #glasgow
Xesxen has quit [Ping timeout: 252 seconds]
purdeaandrei[m]1 has quit [Quit: Idle timeout reached: 172800s]
Xesxen has joined #glasgow
g5pw| is now known as g5pw
Griwes_ has quit [Ping timeout: 252 seconds]
Griwes has joined #glasgow
mwkmwkmwk[m] has quit [Quit: Idle timeout reached: 172800s]
timbhanson[m] has quit [Quit: Idle timeout reached: 172800s]
Artea has joined #glasgow
andymandias has quit [Ping timeout: 265 seconds]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Read error: Connection reset by peer]
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
balrog_ is now known as balrog