sb0 changed the topic of #m-labs to: ARTIQ, Migen, MiSoC, Mixxeo & other M-Labs projects :: fka #milkymist :: Logs http://irclog.whitequark.org/m-labs
<GitHub28> [smoltcp] whitequark pushed 1 new commit to master: https://git.io/vMKVH
<GitHub28> smoltcp/master c10f37f whitequark: Properly document TCP state machine query methods.
<travis-ci> m-labs/smoltcp#36 (master - c10f37f : whitequark): The build passed.
Syfy has joined #m-labs
<GitHub92> [smoltcp] whitequark pushed 1 new commit to master: https://git.io/vMKwm
<GitHub92> smoltcp/master 9570d66 whitequark: Reject all TCP packets in the CLOSED state.
<Syfy> สวัสดีคับ
<travis-ci> m-labs/smoltcp#37 (master - 9570d66 : whitequark): The build passed.
Syfy has quit [Ping timeout: 260 seconds]
sb0 has quit [Ping timeout: 245 seconds]
<GitHub96> [smoltcp] whitequark pushed 2 new commits to master: https://git.io/vMKMN
<GitHub96> smoltcp/master 096dd54 whitequark: Add TcpSocket::abort().
<GitHub96> smoltcp/master 4952f55 whitequark: Add reference counting to SocketSet.
sb0 has joined #m-labs
<GitHub191> [smoltcp] whitequark pushed 1 new commit to master: https://git.io/vMKQj
<GitHub191> smoltcp/master 65a0932 whitequark: Reject, not accept, TCP RST packets in LISTEN state....
<travis-ci> m-labs/smoltcp#39 (master - 65a0932 : whitequark): The build passed.
sb0 has quit [Ping timeout: 258 seconds]
<GitHub41> [smoltcp] whitequark pushed 1 new commit to master: https://git.io/vMK7B
<GitHub41> smoltcp/master e1a40d8 whitequark: Don't respond with RST to ACKs in TCP LISTEN state....
<travis-ci> m-labs/smoltcp#40 (master - e1a40d8 : whitequark): The build passed.
<GitHub66> [misoc] whitequark pushed 2 new commits to master: https://git.io/vMK7p
<GitHub66> misoc/master a70983b whitequark: Do not overwrite generated files with the same contents....
<GitHub66> misoc/master e6427e0 whitequark: Remove misleading comment.
<bb-m-labs_> build #193 of misoc is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/misoc/builds/193
<bb-m-labs_> build #313 of artiq-board is complete: Failure [failed conda_build] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/313
<bb-m-labs_> build #1218 of artiq is complete: Failure [failed] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/1218
sandeepkr has quit [Remote host closed the connection]
kuldeep has quit [Read error: Connection reset by peer]
kuldeep has joined #m-labs
kuldeep has quit [Remote host closed the connection]
<GitHub169> [misoc] whitequark pushed 2 new commits to master: https://git.io/vMKFD
<GitHub169> misoc/master a694602 whitequark: Reduce the amount of make noise.
<GitHub169> misoc/master 3d8bfbb whitequark: Fix a70983bf to not fail on fresh builds.
<bb-m-labs_> build #194 of misoc is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/misoc/builds/194
<whitequark> sb0: status update.
<whitequark> most tests reliably pass with smoltcp
<whitequark> there are a few bugs left.
<whitequark> 1) when the peers simultaneously issue FIN to each other with data in the segment, this causes a crash
<whitequark> 2) for some utterly inexplicable reason the buffers are capped at 1K
<whitequark> 3) test_i2c_switch fails (unrelated to smoltcp)
<whitequark> 4) test_clock_generator_loopback fails (likely due to the tracing code, and will go away with network tracing disabled)
<whitequark> actually, no, it is mysteriuos as to why it fails
<whitequark> 5) test_pulse_rate_dds fails for some utterly inexplicable reason, which manifests as the RunFinished message not arriving, despite smoltcp logs indicating the host ACKed it
cr1901_modern has quit [Ping timeout: 248 seconds]
<whitequark> 6) retransmits work kinda weirdly
<whitequark> that, um, is all
cr1901_modern has joined #m-labs
<bb-m-labs_> build #314 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/314
<bb-m-labs_> build #1219 of artiq is complete: Failure [failed python_unittest_1] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/1219
sandeepkr has joined #m-labs
sandeepkr has quit [Max SendQ exceeded]
sandeepkr has joined #m-labs
sandeepkr has quit [Remote host closed the connection]
kuldeep has joined #m-labs
key2 has joined #m-labs
<key2> hi
<key2> I have a differential pair captures with osciloscope, but I wonder what protocol that could be
<key2> if it inspire someone...
<whitequark> key2: how about decoding it to a binary stream first
<key2> whitequark: I'd love to but I don't knw the encoding scheme
<whitequark> uhm, it clearly has two symbols (say J/K)
<whitequark> you can decode at least as much
<key2> how would you describe what J/K are in this case ?
<whitequark> j=green1+orange0, k=green0+orange1
<whitequark> arbitrarily
<whitequark> it doesn't matter
sandeepkr has joined #m-labs
<key2> ok, after that i'll get a set of J/K
<key2> is it encoded at that point ?
<cr1901_modern> I'm guessing it's self-clocking?
<key2> meaning
<cr1901_modern> The clock is sent with the data stream/not all transitions are meaningful data
<cr1901_modern> See Differential Manchester for an example
sb0 has joined #m-labs
<key2> ha
<key2> cr1901_modern: that could explain why there is never more than 3 close pic next to eachother
<key2> (and usually only 2)
sandeepkr_ has joined #m-labs
sandeepkr has quit [Ping timeout: 240 seconds]
<cr1901_modern> key2: This is just a guess. In high speed signals, it doesn't typically make sense to send the clock on a separate line from the data (HDMI being an exception)
<key2> pcie being anothre
<cr1901_modern> And HDMI gets away w/ it by running the clock 10 times slower than the actual "bit time"
<key2> yeah i got that
<key2> how would you recover the clock in there ?
<cr1901_modern> in HDMI?
<cr1901_modern> Using a PLL as a clock multiplier
<cr1901_modern> If you mean your mystery signal, I'm not 100% sure :/
<cr1901_modern> key2: Learning how to recover "mystery signals" is on my TODO list. Looking at my references, this should help https://en.wikibooks.org/wiki/Clock_and_Data_Recovery/Structures_and_types_of_CDRs/The_CDR_phase_comparator#What_to_do_when_a_transition_is_missing.3F
<larsc> pcie sends the clock embedded
<key2> larsc: what is the 100mhz next to it then
<larsc> reference clock for the pll
<larsc> but it is optional
<larsc> reference for the CDR PLL
<key2> k
<cr1901_modern> why bother w/ the optional clock?
<cr1901_modern> same reason as HDMI I guess (but the data stream's recovered clock takes priority)?
<larsc> cr1901_modern: so TX and RX can use the same reference
<larsc> otherwise your TX and RX lanes might run at slightly different rates
<larsc> or you'd need a jitter cleaner
<larsc> to clean up the recovered RX signal
<cr1901_modern> larsc: Isn't that what a PLL is for? I don't see why TX/RX need the same exact rate if both receiving ends have PLLs (I have not played with PCIe)
<larsc> and I guess it might be cheaper to just use the 100MHz reference rather than putting a low ppm crystal on each board
<cr1901_modern> Well, if the ref clk is sent, then what's the point of embedding the clk?
<larsc> better data dependent jitter tolerance
<cr1901_modern> Is "data dependent jitter tolerance" due to "missing transitions inherent in a self-clocked signal"?
zumbi has quit [Ping timeout: 245 seconds]
* cr1901_modern confesses he isn't sure what you mean, if not
zumbi has joined #m-labs
<larsc> high-speed transmission lines typically have a frequency dependend response
<larsc> e.g. if you send 00000111111 or 0101010101 will cause different behaviour
<larsc> including different phase delays
<larsc> so your bits arrive sometime earlier, sometimes later, depending on what has been sent so far
<larsc> if you just sample based on an external clock your margins get smaller
<larsc> if your clock is defined by the transistions in the data you can realign
<larsc> I guess this even applies to all types of jitter, not just DDJ
key2 has quit [Ping timeout: 260 seconds]
<cr1901_modern> It's been a while since I worked with transmission lines. To save mental bandwidth I usually use the approximation "transmission lines ruin the amplitude of your signal/cause reflections"
<cr1901_modern> Looks like that fails for digital signals
<larsc> the problem with digital data is that your edges are supposed to be straight up or down
<larsc> which they obviously are not since the bandwidth of the transmission line limits rise and fall time
<larsc> this is one of the contributing factors to DDJ
<larsc> this is called precursor and postcursor. a symbol affects the symbols around itself
* cr1901_modern adds to his "clock recovery todo"
<cr1901_modern> I'm not sure how one can using the optional 100MHz clk to their advantage since it's really important to monitor transitions in the incoming RX signal
<larsc> it's for the TX PLL
<larsc> and for RX just as an initial reference
<larsc> to get the RX roughly into the region of the RX clock
<cr1901_modern> I see. And it's optional, but in practice PCIe cards rely on 100MHz clock existing to power the TX multiplier?
<larsc> you need some kind of reference
<larsc> what is optional is using the 100MHz as the reference
<larsc> e.g. you can use your own crystal if you want to
<larsc> but there is a tight specification on the +-ppms the crystal can have
<cr1901_modern> Oh! The 100MHz clk is always provided lol. Up to device to use it. You don't want to know what I was thinking :P.
<cr1901_modern> larsc: Last q... what did you mean by "same reference"? And isn't a PLL a jitter cleaner :)?
<larsc> depends on the configuration of the PLL
<larsc> more specificily the loop bandwidth
<larsc> for a jitter cleaner you want to filter out short term variations and average things out
<larsc> but for a CDR you want the opposite
<larsc> you want to be able to respond fast to phase changes
<cr1901_modern> that's (loosely) a tradeoff between overshoot/settling time, reaction time, and jitter
<larsc> so you can compensate the DDJ
<cr1901_modern> low bandwidth => less jitter, high bandwidth => better response time, mid bandwith => least overshoot w/ good response time
<cr1901_modern> I don't see how TX/RX are the "same reference" tho if you elect to use the 100MHz clk
<larsc> the 100MHz are provided by the host
<larsc> and the host will use the 100Mhz as the reference for its side of the system
<cr1901_modern> Oh... is that based on spec (just curious)?
<cr1901_modern> I need to get a PCIe board that doesn't cost an arm and leg
<larsc> my rough collection of the spec
<larsc> might not be fully accurate
<cr1901_modern> Well, my curiosity is satisfied anyway :P
key2 has joined #m-labs
<key2> re
<key2> larsc: would you be able to recognize the coding schem on the pics i sent ?
rohitksingh has joined #m-labs
kuldeep has quit [Remote host closed the connection]
<larsc> no
kuldeep has joined #m-labs
<cr1901_modern> I wonder if the first transition is a start bit...
<key2> cr1901_modern: for info
<key2> it is audio data
<key2> that is how the new iphone that has no audio jack sends audio over lightning
<cr1901_modern> key2: Just for shits and giggles, I'd create an audio file from /dev/zero and play that on the iphone :P
<cr1901_modern> and then do the same for /dev/0xFF (if such a thing existed)
<key2> in this one is 1us/div
<cr1901_modern> key2: The idea was to figure out approx how much audio data is sent in each "packet" if I know the sampling rate the iphone is using
<cr1901_modern> In any case, 1/10e-6 = 100000. 96kHz? 48kHz? Hmmm...
<whitequark> i2s?
<whitequark> wait no, that's not differential
<key2> something like that
<key2> whitequark: nah i2s is not diff pairs
<key2> also i2s doesnt embed clk.
<cr1901_modern> Also i2s has a separate clock
<sb0> larsc, isn't data dependent jitter of a higher frequency than cdr loop bandwidths?
<cr1901_modern> key2: Not now, but is there any way you could play an audio file of all zeroes and then all ones at some point?
<key2> knowing that iphone would play mp3..
<key2> in fact I guess its possible
<key2> if I give it a .wav :)
<cr1901_modern> shit...
<cr1901_modern> mp3 is lossy, but idk how that would affect a constant signal
<key2> cr1901_modern: iphone can read pcm/wav i guess
<cr1901_modern> key2: I don't know anything about lightning. My educated guess is that each packet is sending stereo data for one sample.
<key2> could be
<cr1901_modern> educated meaning "If I stare at the waveform long enough maybe I'll learn something"
<sb0> i'd expect DDJ to be in the 100's of MHz. are CDR PLLs that fast?
<key2> i converted it into CSV
<key2> so I could do some processing
<larsc> you could autocorrelate the signal, check if there common prefixes
<cr1901_modern> ^
<cr1901_modern> larsc: Cross-correlate*?
<larsc> sb0: maybe
<cr1901_modern> oh wait nevermind
<cr1901_modern> larsc: you're right, I'm thinking something else. Abort
<larsc> autocorrelation is a special case of crosscorrelation, so strictly speaking you are right ;)
<cr1901_modern> :)
<cr1901_modern> (I thought you meant to "split up each packet" and cross-correlate w/ each other. But autocorrelating a single signal of *multiple* packets will give the same information)
<GitHub31> [artiq] jordens commented on issue #645: works fine in master https://git.io/vMiE6
rohitksingh has quit [Quit: Leaving.]
<cr1901_modern> sb0: Responded to email. I know the perfect person, and they are interested in meeting you as well after I told them about your work
mumptai has joined #m-labs
<GitHub99> [artiq] vontell commented on issue #656: Some of the tricks you have mentioned work great. I notice that tuples have no accessors on them (for instance, `my_tuple[0]` will throw an exception `type is not iterable`). Is this due to the fact that experiments must not have a runtime dispatch, and tuples are capable of holding values of different types? https://git.io/vMixH
<GitHub31> [artiq] vontell commented on issue #656: Also, I believe that warnings to the developers during compilation (i.e. `Note that append on the array type (line ###) is not supported within kernels!`) would be extremely helpful. https://git.io/vMipZ
<GitHub86> [artiq] vontell commented on issue #656: Also, I believe that warnings to the developers during compilation (i.e. `Note that append on the array type (line ###) is not supported within kernels!`) would be extremely helpful. https://git.io/vMipZ
key2 has quit [Ping timeout: 260 seconds]
mumptai has quit [Remote host closed the connection]