azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/glscopeclient/scopehal-apps | Logs: https://libera.irclog.whitequark.org/scopehal
<mxshift> He was stuck using an Agilent 90000 for that
<azonenberg> mxshift: btw out of curiosity how did you like using the labmaster?
<azonenberg> and were you mostly using probes or direct coax off test points or what?
Degi_ has joined #scopehal
Degi has quit [Ping timeout: 252 seconds]
Degi_ is now known as Degi
<mxshift> Took a bit of learning to figure out the UI. Seems quite capable. Definitely slow when doing something like 25G NRZ jitter measurements over 4MS
<azonenberg> If you can send over any huge files like that, i would love to compare the speed of glscopeclient
<azonenberg> i'm not using exactly the same PLL they are
<azonenberg> (although i plan to support the FC golden PLL soon)
<azonenberg> but my general experience is that we're quite a bit faster for a lot of stuff
<mxshift> We didn't have any way to include accessible tests points on the 100G lanes so we used a bunch of adapters to convert from our custom backplane cabling to the LabMaster inputs
<azonenberg> Makes sense
<mxshift> That 56G PAM capture is 4MS
<azonenberg> ah ok, so i can play with it and see what i can do with the dataset then
<mxshift> Yep, two single ended inputs for the diff channel
<mxshift> Even without PLL, CTLE, FFE, PAM4 eyes should be okish
<azonenberg> Two single ended inputs?
<azonenberg> you only sent me channel 2 if the filename is correct
<azonenberg> i don't think a .trc can store more than one channel
<mxshift> We turned everything on and saw 7mV height and 6ps width
<mxshift> Oh, I had a bunch of similar files. I can share the whole folder
<azonenberg> if you can get me P and N from the same waveform that will make things much better
<azonenberg> for the next half hour or so i'll be writing the importer so one file is enough
<azonenberg> but to actually look at the data i need both halves
<mxshift> Pretty sure Cx prefix is the channel number and the name and suffix counter correlate them
<azonenberg> Correct
<azonenberg> I'll see what i can find once i look through the data
<azonenberg> (also if you get a chance to try glscopeclient against the labmaster i'd love to hear how well it works / get feedback etc)
<mxshift> Kinda expect trying those over a VPN from WA to CA won't go well
<azonenberg> ah ok i wasnt sure if you had gone to CA for bringup
<mxshift> Nah. TeamViewer to scope
<azonenberg> mxshift: and are all of these waveforms PAM4 or do you have any NRZ in here too?
<_whitenotifier-7> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±2] https://github.com/glscopeclient/scopehal-docs/compare/606926fa0bb3...282f026b67e9
<_whitenotifier-7> [scopehal-docs] azonenberg 282f026 - Documented TRC import filter
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+2/-0/±5] https://github.com/glscopeclient/scopehal/compare/57baf3e11ab8...632deb03b7cf
<_whitenotifier-7> [scopehal] azonenberg 632deb0 - Initial implementation of LeCroy TRC import filter. Fixes #508.
<_whitenotifier-7> [scopehal] azonenberg closed issue #508: LeCroy waveform file import - https://github.com/glscopeclient/scopehal/issues/508
<_whitenotifier-7> [scopehal-apps] azonenberg pushed 1 commit to master [+0/-0/±3] https://github.com/glscopeclient/scopehal-apps/compare/9dfb286b8cf1...a896eca474c0
<_whitenotifier-7> [scopehal-apps] azonenberg a896eca - LeCroy TRC import support
<mxshift> those should all be PAM4
<mxshift> I'm sure we have NRZ but probably on a USB drive at the office
<azonenberg> Ok
<azonenberg> Well i have a successful import, but my CDR doesn't support slicing PAM4
<azonenberg> and with a single threshold at one of the level crossings i get garbage
<mxshift> there was quite a bit of deskew needed
<azonenberg> oh
<azonenberg> i'm not sure if that is saved in the trc files
<azonenberg> They look well aligned to me
<mxshift> probably not. we just did it by eye
<azonenberg> see here it looks like the zero crossings are pretty well aligned and the subtracted waveform doesn't look too bad
<azonenberg> i think the problem is just ISI because my slicer doesn't understand the difference between 0, 1, or 2 transitioning to 3
<azonenberg> and they all have different slew rates
<azonenberg> so it triggers at a different part of the edge for each data bit
<azonenberg> this is why you don't use a CDR designed for NRZ waveforms on PAM4
<mxshift> indeed
<azonenberg> I've had a pending ticket for making a PAM4 CDR for a while and now i have waveform data to do that with
<azonenberg> I assume no objections to me publicly sharing these screenshots etc?
<azonenberg> (with/without attribution, your choice)
<mxshift> should be fine. It's nothing special.
<azonenberg> Ok thanks
<mxshift> that's what we got out of that capture on the labmaster
<azonenberg> Yep. Using an actual CDR designed for the purpose
<azonenberg> if you get me a NRZ signal I can validate the analysis setup etc
<azonenberg> but yeah i dont expect we'll be seeing PAM4 eyes out of glscopeclient for a little while because i have so much other things to implement
<azonenberg> mxshift: anyway, while there's no working CDR, you can now load .trc files in glscopeclient
<mxshift> I'm seeing if I can switch over the switch to send 100G
<azonenberg> Ok. yeah if you can get me 28G NRZ off the same link that will be great to cross check my import and analysis etc
<mxshift> exact same setup
<mxshift> just NRZ
<mxshift> and apparently I can't name files correctly
<azonenberg> and this is PRBS9? C2 = P, C1 = N?
<mxshift> yup
<azonenberg> ok yeah that decodes correctly
<mxshift> not sure on channel polarity but definitely prbs9
<azonenberg> well with the channels swapped it was giving horrible BER
<azonenberg> this way i get nice and clean :p
<azonenberg> gonna do a bit more analysis on it, i'm curious how e.g. my jitter decomposition compares to the labmaster analysis (like i said we're using slightly different PLLs)
<mxshift> I've got remote access to the labmaster if you want to see what it calculates for that same capture
<azonenberg> yeah a screenshot with its analysis would be handy
<azonenberg> i can probably load the .trc into my SDA and do the same analysis on it, but if you're all set up that would probably convenient
<mxshift> what do you want to see?
<azonenberg> whatever jitter parameters you want. I'm pulling up a jitter histogram, DDJ, DCD, ISI, p-p jitter
<azonenberg> and a spectrum
<azonenberg> (interesting, the jitter spectrum is acting up so i'll skip that)
<azonenberg> i'll have to look into why the jitter spectrum is giving garbage
<azonenberg> but most of the other numbers are fairly close. the deviation between them is likely the result of the different CDR bandwidth
<azonenberg> and the slightly higher phase noise floor of my bang-bang PLL
<mxshift> we've also got CTLE and a custom PLL
<azonenberg> ah ok, yeah that is probably one of the big reasons for the delta there
<mxshift> we were tracking down low frequency jitter sources so settings evolved to find those and roughly reflect what we think Tofino2 is doing
<azonenberg> yeah makes sense
<azonenberg> yeah i'm really curious why my jitter spectrum tool choked on this capture
<azonenberg> i'm gonna have to dig into that
<azonenberg> it was outputting all zeroes
<azonenberg> i've never seen that before
<mxshift> I can give you an 80MS capture if you want a stress test
<azonenberg> Sure
<azonenberg> So it seems when i disable opencl acceleration, glscopeclient does a good jitter spectrum
<azonenberg> (yet another reason to move away from CL, clFFT seems very buggy)
<monochroma> D:
<azonenberg> But it isn't showing much in the way of low frequency jitter. I think the transfer function of my CDR is such that most of that gets tracked rather than transferred
<mxshift> oh, this particular capture doesn't have much
<mxshift> we had a huge amount on the Chelsio T6 which turned out to be missing termination of the input clock
<azonenberg> oh that screenshot isnt from this waveform?
<azonenberg> I'm mostly seeing jitter at harmonics of 50 MHz
<mxshift> the PLL settings are
<mxshift> oh, yeah, that's from this capture
<azonenberg> zoomed out
<azonenberg> you can see that 20/40 MHz range jitter is dwarfed by the 50 MHz harmonics
<azonenberg> i'm not sure how much of that is my CDR. also i think the lecroy SDA package defaults to 5 or 10x sin(x)/x upsampling
<azonenberg> this is working on the raw input without upsamplign (although there is a sinc filter should you choose to invoke it)
<azonenberg> Let me see what that does
<azonenberg> also, i think i remember reading that their CDR does cubic interpolation to find zero crossings
<azonenberg> right now i'm doing linear
<azonenberg> so that's also a small delta there (which upsampling will reduce)
<azonenberg> and hmm, my CDR is dying when i give it upsampled input
<azonenberg> the more advanced stuff i do the more i'm hitting limitations of my PLL
<mxshift> I'll just add captures there and let you know from now on
<azonenberg> ok great
<mxshift> yes, the 512MS capture is excessive
<azonenberg> will be a good stress test for sure
<_whitenotifier-7> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/glscopeclient/scopehal/compare/632deb03b7cf...ea647c31eb0e
<_whitenotifier-7> [scopehal] azonenberg ea647c3 - TRC import: support #A prefix and 10-digit length fields for files >1GB in size
<azonenberg> mxshift: and we just found a bug :p
<mxshift> Lol
<azonenberg> the length field is ascii and i had only ever seen 9 digits (they zero pad if <9)
<azonenberg> so as soon as you get over 1e9 bytes in the sum of wavedesc+sample data it chokes
<azonenberg> the lecroy driver probably has the same bug as the format is the same
<_whitenotifier-7> [scopehal-apps] azonenberg opened issue #459: FilterDialog: don't slow down horribly on huge waveforms when typing - https://github.com/glscopeclient/scopehal-apps/issues/459
<_whitenotifier-7> [scopehal-apps] azonenberg labeled issue #459: FilterDialog: don't slow down horribly on huge waveforms when typing - https://github.com/glscopeclient/scopehal-apps/issues/459
<_whitenotifier-7> [scopehal-apps] azonenberg labeled issue #459: FilterDialog: don't slow down horribly on huge waveforms when typing - https://github.com/glscopeclient/scopehal-apps/issues/459
<azonenberg> ok yeah my CDR is still being problematic. i get about 11ns into the huge waveform then it loses lock
<azonenberg> but hey, plenty of test cases to investigate it on
<mxshift> Always useful to have problematic captures
<azonenberg> Yeah
<azonenberg> see here, at around 12ns you can see the yellow trace (PRBS checker output) start going high
<azonenberg> and zooming in https://www.antikernel.net/temp/cdr-fail2.png you can see that the edges in the recovered clock are close to zero crossings
<azonenberg> not in the middle of the eye where they belong
<azonenberg> Clearly my hackjob of a CDR i wrote years ago is no longer cutting it
bvernoux has joined #scopehal
<_whitenotifier-7> [starshipraider] azonenberg pushed 1 commit to master [+0/-0/±1] https://github.com/azonenberg/starshipraider/compare/c12e8990b136...49aa347e2312
<_whitenotifier-7> [starshipraider] azonenberg 49aa347 - Added AKL-PT1 v1.5 experimental design
<azonenberg> Ok so, I have new PT5, AV1, AD4 boards to assemble and test
<azonenberg> I think I'll do the AD4 next. and use the 450 ohm resistors (I designed it for the 100s, since i ordered it before they arrived)
<azonenberg> but i can easily bodge the 0201 footprint
bvernoux has quit [Quit: Leaving]
GenTooMan has quit [Ping timeout: 260 seconds]
GenTooMan has joined #scopehal
<mxshift> Almost a mechanical package for your switch design
<azonenberg> mxshift: cool. My first switch will be less fancy, 24x 1G interfaces plus a couple of 10G uplinks
<azonenberg> But i've been keeping an eye on LDA's stuff on twitter etc
<azonenberg> they have some pretty cool things,. including a host package that turns a VCU118 devkit into a switch breaking out all the serdes
<mxshift> I find it interesting that are using Samtec ARC6. We're doing the same for our switch mainly for lower loss from front panel to ASIC
<azonenberg> Nice. And yeah LDA's stuff is targeting HFT
<azonenberg> so they have all kinds of industry specific features like constant latency from switch to any port
<azonenberg> they claim <150ps skew between any set of ports
<mxshift> yup, L1 port replication, etc
<azonenberg> meanwhile i just want an open source switch fabric and dont need crazy performance
<azonenberg> i just want a bunch of ports with wire speed nonblocking switching between them
<azonenberg> plus basic management features like vlans, 802.1q, and forcing specific link speeds
<azonenberg> anyway, the switch stuff has been on hold for a long time because i've had so many higher priority things to work on. like scopehal
GenTooMan has quit [Ping timeout: 255 seconds]
GenTooMan has joined #scopehal
balrog has quit [Quit: Bye]
balrog has joined #scopehal
GenTooMan has quit [Ping timeout: 244 seconds]
GenTooMan has joined #scopehal
GenTooMan has quit [Excess Flood]
GenTooMan has joined #scopehal
<mxshift> apparently the QSGMII capture I sent you a while back might be inverted. In trying to debug things, one of my coworkers wrote a hacky decoder and replicated what you were seeing with D16.5. Inverting gives expected idle patterns.
<tiltmesenpai> wow... that's definitely a switch...