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
sb0 has joined #m-labs
fengling has joined #m-labs
<sb0> whitequark, any comments on https://github.com/m-labs/artiq/issues/519 ?
<whitequark> mhm
<whitequark> sb0: so there are a few problems
<whitequark> what he wants involves adding vtables
<sb0> and potentially slow indirections?
<whitequark> this will pessimize every single method call by default, making it indirect, and destroying most of the optimizations we have
<whitequark> moreover, this requires adding subtyping to our type system
<whitequark> in presence of HM-like type inference, this will result in mandatory type annotations
<whitequark> so for instance you'd have to do something like `self.beamlines = [] as ListT(LaserBeamline)`, with `as` being some unidentified syntax
<sb0> is there some way of making it not slow? such a read-only list is just like an object with integer attributes.
<whitequark> the problem is not the list
<whitequark> the problem is polymorphic call sites
<whitequark> i.e. in "self.beamlines[i].set_dac_on()" you'd need to do dynamic dispatch
<whitequark> so, one thing that can be done quite easily is, as a special case, allowing iterating tuples in `for`
fengling has quit [Ping timeout: 240 seconds]
<whitequark> this would be expanded during the typechecking, so you would have the equivalent of many calls, and no actual looping
<whitequark> all of those calls would be monomorphic. this requires no changes to the type system, no dynamic dispatch, no missed optimizations
fengling has joined #m-labs
<sb0> ok
<whitequark> the main problem here is error messages
<whitequark> because I'll need to indicate that any inference error inside the loop was caused by a particular "iteration"
<whitequark> but that should be doable
fengling has quit [Ping timeout: 240 seconds]
ylamarre has joined #m-labs
fengling has joined #m-labs
ylamarre has quit [Ping timeout: 272 seconds]
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
<mithro> whitequark: where did your libunwind version come from?
<whitequark> misoc uses upstream libunwind
<sb0> hmm, getting openocd to use a kc705 board on a particular board doesn't play nice with the shipped scripts
<sb0> *particular port
<sb0> the hacky way to solve the problem is to hardcode the main kc705 location into /usr/local/share/openocd/scripts/interface/ftdi/digilent-hs1.cfg and write another script to use the other kc705
<sb0> okay I'm going to create interface/ftdi/digilent-hs1-bbmain.cfg, board/kc705-bbmain.cfg, interface/ftdi/digilent-hs1-bbaux.cfg and board/kc705-bbaux.cfg
<sb0> well, of course, the ftdi_serial command doesn't work
<sb0> you put any sort of garbage in there and it'll connect to the first ftdi chip it finds
<sb0> ftdi_location doesn't work either because this is debian and of course libusb is outdated
<sb0> okay, you need to give it the serial *and* the VID/PID, otherwise it ignores everything
<sb0> and takes the default VID/PID match rule
<GitHub31> [buildbot-config] sbourdeauducq pushed 1 new commit to master: https://github.com/m-labs/buildbot-config/commit/616fd0636b0e83f440afd810abc11968d45e6dca
<GitHub31> buildbot-config/master 616fd06 Sebastien Bourdeauducq: Use buildbot kc705
bb-m-labs has quit [Quit: buildmaster reconfigured: bot disconnecting]
bb-m-labs has joined #m-labs
<GitHub108> [artiq] sbourdeauducq pushed 1 new commit to master: https://git.io/vKw10
<GitHub108> artiq/master 0590021 Sebastien Bourdeauducq: artiq_flash: support using alternative OpenOCD config files
<GitHub57> [artiq] sbourdeauducq pushed 1 new commit to release-1: https://git.io/vKw1u
<GitHub57> artiq/release-1 3f224ad Sebastien Bourdeauducq: artiq_flash: support using alternative OpenOCD config files
sb0 has quit [Quit: Leaving]
<bb-m-labs> build #558 of artiq-kc705-nist_clock is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-kc705-nist_clock/builds/558
<bb-m-labs> build #273 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/273
<bb-m-labs> build #832 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/832
mumptai has quit [Remote host closed the connection]
sb0 has joined #m-labs
bhamilton has joined #m-labs
bhamilton1 has joined #m-labs
bhamilton1 has quit [Remote host closed the connection]
bhamilton has quit [Ping timeout: 272 seconds]
<sb0> _florent_, do you know what can cause a GTX receiver to fail with RXDATA=...01010101 (8b10b decoding disabled)?
<sb0> the output is stuck at this no matter what the input it
<_florent_> sb0: are you sure your transceiver is correctly initialized (it's a bit tricky to get the correct init sequence)?
<sb0> it could be that, yes
<sb0> I'm just sending it a GTRXRESET pulse after configuration
<sb0> after I do that, RXOUTCLK starts pulsing (even if there is no input)
<sb0> hm, RXPHALIGNDONE doesn't go high
<_florent_> ok, then yes there is some work to do around that
<_florent_> here is the init sequence I'm using on litesata on RX side:
<sb0> there's no way to tell if the CDR has locked, it seems?
<sb0> they have this "RXCDRLOCK" signal, but it's marked "reserved"
<sb0> sounds like they tried, encountered silicon bugs, and made them their customer's problem.
<_florent_> yes, they say that you cannot trust "RXCDRLOCK" and need to have a way to detect if datas are valid or not...
<_florent_> seems like a silicon bug indeed
<sb0> _florent_, in litesata, is it correct that you are setting both the TX and RX clocks at 1/20 the raw serial rate?
<_florent_> yes, 1/20 when transceiver input/output in 16bits mode (8b/10b inserted in the transceiver), 1/40 in 32bits mode
<sb0> I really don't get how the tranceiver can so blatantly ignore the input signal and just generate 101010101 at its output
<sb0> even if the phase alignment, clocking, or something else was wrong, it shouldn't output a stable pattern
<sb0> xilinx wizards move in mysterious ways
<sb0> hmm
<sb0> _florent_, how are the clock output frequencies computed exactly?
<sb0> I have somehow managed to get the TX into a situation where the TX line rate is 1250, user clock 125 and it takes 20-bit data. something isn't right
<_florent_> it should simply be: line rate = N bits (20 or 40 depending how the GTX is configured) * TX user frequency
<_florent_> sorry going out for lunch, bbl
<sb0> yes, which it isn't
fengling has quit [Ping timeout: 240 seconds]
<sb0> _florent_, well litesata and my design have txoutclksel=011 (TXPLLREFCLK_DIV1)
<sb0> shouldn't it be TXPLLREFCLK_DIV1 (010) when bypassing the TX buffer?
<sb0> ah, no
<sb0> I meant TXOUTCLKPMA, but for some reason, it does want refclk that has gone through all the muxes when the tx buffer is disabled
<sb0> this makes no sense though
<sb0> let's say you have GigE; the doc recommends 20-bit and 125MHz refclk, how is that supposed to work if you bypass the TX buffer?
<sb0> _florent_, do you know?
<sb0> are you supposed to divide refclk to 62.5 and then readjust the cpll?
<sb0> well considering it does the right thing when I do that, I guess the answer is yes
<sb0> xilinx really ought to trash 90% of their transceiver cruft and properly document the remaining 10%
Gurty has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
<sb0> okay, got rx to respond to inputs. the reason it didn't before is my SFP transceivers aren't working for some reason...
sb0 has quit [Quit: Leaving]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
sb0 has joined #m-labs
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
rohitksingh has joined #m-labs
<GitHub73> [artiq] sbourdeauducq pushed 2 new commits to master: https://git.io/vKrSm
<GitHub73> artiq/master c0a3996 Sebastien Bourdeauducq: RELEASE_NOTES: remove outdated item
<GitHub73> artiq/master a7be325 Sebastien Bourdeauducq: RELEASE_NOTES: inter-experiment seamless handover
<bb-m-labs> build #559 of artiq-kc705-nist_clock is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-kc705-nist_clock/builds/559
rohitksingh has quit [Ping timeout: 260 seconds]
fengling has joined #m-labs
rohitksingh has joined #m-labs
<bb-m-labs> build #274 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/274
rohitksingh has quit [Read error: Connection reset by peer]
fengling has quit [Ping timeout: 240 seconds]
<bb-m-labs> build #833 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/833
rohitksingh has joined #m-labs
rohitksingh has quit [Read error: Connection reset by peer]
rohitksingh has joined #m-labs
rohitksingh has quit [Client Quit]
<GitHub187> [migen] sbourdeauducq pushed 1 new commit to master: https://git.io/vKrdG
<GitHub187> migen/master 1324b89 Sebastien Bourdeauducq: platforms/kc705: add sfp_tx_disable_n
<bb-m-labs> build #80 of migen is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/migen/builds/80
<bb-m-labs> build #113 of misoc is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/misoc/builds/113
<sb0> contrary to what the user guide says, SFPs are disabled by default on the kc705
<bb-m-labs> build #560 of artiq-kc705-nist_clock is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-kc705-nist_clock/builds/560
<sb0> rjo, what hardware do you recommend for the phase noise measurements?
<bb-m-labs> build #275 of artiq-win64-test is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-win64-test/builds/275
<bb-m-labs> build #834 of artiq is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/834
<rjo> sb0: depending on the urgency, either a minicircus mixer (+ attenuators to get correct levels), and lowpass, and an amplifier/ADC/scope.
<rjo> and other papers from the NIST phase noise people
<rjo> or. get a USRP B100 or N200/N2100 (all tested) or USRP1 (untested) and one BasicRX daughtercard.
<sb0> what about hackrf?
<rjo> unlikely.
<rjo> not dual channel not externally lockable afaik
<rjo> read the paper i sent. the requirements for the hardware are in there.
<rjo> anyway. gotta go.
<rjo> the USRP might need lowpasses and attenuators to optimize and fit the signal into the ADC dynamic range.
<rjo> but a handful of minicircus stuff never hurts (only your wallet).
mumptai has joined #m-labs
<mumptai> hi
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
sandeepkr__ has quit [Ping timeout: 250 seconds]
kuldeep has quit [Ping timeout: 258 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs
fengling has quit [Ping timeout: 240 seconds]
fengling has joined #m-labs