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
kuldeep has quit [Remote host closed the connection]
kuldeep has joined #m-labs
kuldeep has quit [Remote host closed the connection]
kuldeep has joined #m-labs
kuldeep has quit [Remote host closed the connection]
kuldeep has joined #m-labs
<GitHub> [artiq] sbourdeauducq commented on issue #670: > Is it possible to update the main as well?... https://github.com/m-labs/artiq/issues/670#issuecomment-284118491
<sb0> hm the 2GHz DAC frequency plans has a DRTIO serialization ratio of 40... surely this will be another trash fire
<sb0> whitequark, I had a look at the wishbone arbiter and it turns out you can starve other masters if you keep cyc asserted at all times
<sb0> maybe this is what happens when the DMA core freezes the SoC
<sb0> try changing "reqs = [m.cyc for m in masters]" into "reqs = [m.cyc & ~m.ack for m in masters]" in misoc wishbone.py
<sb0> "Qt is suitable due to its multi-platform GUI toolkit that provides good Python bindings [21, 22] and makes it possible to separate the GUI design from the implemented functionality. Also, Qt’s multi-thread ability ensures good scalability and parallel processing, which are essential requirements for complex experiments. Furthermore, Qt implements a signal-slot mechanism [23] that is very useful for concurrency, modular design, and interaction b
<sb0> etween GUI modules and logic modules"
<sb0> the Qudi people are optimists. just use a QTreeview with some automatic layout features enabled, and watch the "good Python bindings" melt and crap out.
<sb0> and threads for scalable, parallel processing in python? good one.
<sb0> and what's so special about signal/slots? it's just a callback list. and I wish it was actually a python list.
<whitequark> the signal/slot mechanism was revolutionary in C++
<whitequark> it predates support for closures or std::bind or even boost by many years
<whitequark> it's not really special in modern context outside of C-land
rrika has joined #m-labs
<rrika> hi, there's a "//8" in this line and I don't really get why: https://github.com/m-labs/misoc/blob/master/misoc/interconnect/wishbone.py#L256
<sb0> rrika, there is one bit of wishbone sel signal for 8 bits of data
<rrika> shouldn't both sides of the ":" have a //8 then?
<sb0> hm, yes, there's a problem here
<sb0> _florent_, ^
<sb0> I guess this doesn't cause any problem in practice, because the upper bound is truncated by the assignment
mumptai_ has joined #m-labs
<rrika> sb0, I guess that means .eq doesn't warn for unequal widths then
<sb0> no it doesn't, there would be too many such warnings otherwise, e.g. on x.eq(x+1)
<rrika> I see. I just randomly started reading a .py file from the repo
<rrika> learning this dsl and wishbone at the same time
mumptai has quit [Ping timeout: 246 seconds]
<GitHub104> [misoc] sbourdeauducq pushed 1 new commit to master: https://git.io/vyWTu
<GitHub104> misoc/master 9899efc Sebastien Bourdeauducq: wishbone: fix DownConverter sel upper bound...
<bb-m-labs> build #207 of misoc is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/misoc/builds/207
kuldeep has quit [Remote host closed the connection]
kuldeep has joined #m-labs
topo has joined #m-labs
topo has quit [Ping timeout: 258 seconds]
hedgeberg|away is now known as hedgeberg
_whitelogger has joined #m-labs
<whitequark> sb0: incidentally
<whitequark> analyzer.rs has this code:
<whitequark> let last_addr = &mut BUFFER.data[BUFFER_SIZE - 1] as *mut _ as usize;
<whitequark> csr::rtio_analyzer::dma_last_address_write(last_addr as u64);
<whitequark> is it bad that dma_last_address is not aligned?
<sb0> the core will realign it by setting its LSBs to 0
<sb0> DMA address registers in ARTIQ/MiSoC have the LSBs read-only and hardwired to 0
kuldeep has quit [Read error: Connection reset by peer]
kuldeep has joined #m-labs
<whitequark> oh, that's a bug then
<sb0> the last address is inclusive
<sb0> so if BUFFER_SIZE is a multiple of the SDRAM word size (as it should), it's not a bug
<sb0> (also assuming that the buffer starts on a SDRAM word)
<whitequark> oh, hm
<whitequark> okay
<GitHub> [artiq] whitequark pushed 3 new commits to master: https://github.com/m-labs/artiq/compare/f121ca20fe15...218046d96c71
<GitHub> artiq/master 218046d whitequark: artiq_devtool: fix an infinite loop on network error.
<GitHub> artiq/master 924ae73 whitequark: firmware: fix DMA trace alignment and flush caches.
<GitHub> artiq/master 30ac42d whitequark: ksupport: fix an exception safety issue....
<sb0> whitequark, the data cache is write through, there is no need to flush it when you send data *to* the gateware
<sb0> (the CPU data cache)
<sb0> but you do need to flush L2
<whitequark> hm
<GitHub> [artiq] whitequark pushed 1 new commit to master: https://github.com/m-labs/artiq/commit/98454e9bdaba90f91e59249230f21d3bd490fb07
<GitHub> artiq/master 98454e9 whitequark: runtime: remove unnecessary dcache flush....
<bb-m-labs> build #441 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/441
<bb-m-labs> build #1367 of artiq is complete: Failure [failed python_unittest_2] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/1367 blamelist: whitequark <whitequark@whitequark.org>
<bb-m-labs> build #442 of artiq-board is complete: Success [build successful] Build details are at http://buildbot.m-labs.hk/builders/artiq-board/builds/442
<bb-m-labs> build #1368 of artiq is complete: Failure [failed python_unittest_2] Build details are at http://buildbot.m-labs.hk/builders/artiq/builds/1368 blamelist: whitequark <whitequark@whitequark.org>
<sb0> why is chrome a CPU hog when loading pages over a crappy wireless network (or, equivalently, a broadcom wireless driver)?
<whitequark> are you sure it's chrome specifically?
<whitequark> I'd be inclined to blame synchronous AJAX
<sb0> it does that even on wikipedia ...
<whitequark> that seems suspicious
<whitequark> what exactly consumes cycles (shift+esc) ?
<sb0> i'll have a look next time the broadcom driver craps out...
<whitequark> it seems unlikely that this is an outright bug in chrome, given that chrome specifically has a mode for emulating slow connections
<whitequark> you'd think any obvious bugs like that will be sorted out
<whitequark> I'm not even going to suggest stracing it because the amount of useless syscalls it does is beyond belief
<cr1901_modern> Is broadcom synonymous w/ crappy in this channel :)?
AndChat326081 has quit [Quit: Bye]
AndChat326081 has joined #m-labs
<whitequark> no, it is just synonymous with crappy
AndChat|326081 has joined #m-labs
AndChat326081 has quit [Ping timeout: 240 seconds]
<sb0> whitequark, it's "browser" and "gpu process"
<whitequark> oh.
<whitequark> just turn off accelerated rendering.
<whitequark> advanced settings -> Use hardware acceleration when available
<whitequark> it's kind of buggy, on my previous laptop it leaked gigabytes of GPU buffers
<whitequark> well I'm not sure if it's buggy
<whitequark> it's probably graphics drivers but the result is the same
rohitksingh has joined #m-labs
<cr1901_modern> whitequark: "it seems unlikely that this is an outright bug in chrome, given that chrome specifically has a mode for emulating slow connections" <-- it does? I mean, that's extremely useful, but I didn't know about this
<cr1901_modern> Maybe it's not in Opera
<whitequark> it's in developer tools
<cr1901_modern> Ahhh, under Network->Throttling Presets?
<whitequark> I think so
<rrika> what happens if I do "comb += [If(x, a.eq(0)), If(y, a.eq(1))]" and both x and y are true in the same cycle?
<sb0> same as verilog, last assignment is taken
<rrika> what a worrying default
<sb0> ?
<sb0> in your case a=1. what is the problem with that?
froggyto1d has quit [Ping timeout: 260 seconds]
froggytoad has joined #m-labs
<rrika> I'd expect a crash during simulation telling me I tried to assign twice
<rrika> In hardware, of course there has to be a tie-breaker, I see that.
topo has joined #m-labs
<sb0> no, this is actually useful
<sb0> it's not a tie-breaker - the last statement executed wins
<sb0> e.g. in a FSM you can insert "next_state.eq(state)" at the beginning, then the default behavior of the FSM is to stay in the current state
<rrika> that's super implicit though
<rrika> what's wrong with: next_state = MultiAssignableSignal()
<rrika> besides, I'm unsure what is considered "last" in a case like "class Foo(Module): def __init__(self, external, trigger): self.internal=Signal() self.comb += [If(trigger, external.eq(self.internal))]" … "external=Signal(); a = Foo(external, trigger0); b= Foo(external, trigger0)"
<rrika> does it depend on the order of "a" and "b" in self.submodules?
<rrika> what if they're in different parts of the hierarchy
<sb0> well it's pretty clear, considering that the logic is created in the submodules' __init__ functions
<sb0> there is also an implicit assignment to the comb signal's reset value, which means latches are always avoided with migen ...
<rrika> sb0, if trigger0 goes true, is b.internal is written to external?
<sb0> in http://www.feynmanlectures.caltech.edu/I_44.html it says: "It is also easy to see that the heat Q1 must be proportional to QS." (equation 44.9). this seems very obscure to me and not easy at all. any ideas?
<sb0> rrika, yes
<rrika> wait, instantiating Foo() a second time modifies 'external'?
<rrika> (as in, it remembers a new thing attached to it?)
<sb0> instantiating Foo calls its __init__ method that adds things to comb, so yes
<sb0> the first time you instantiated it it also "modified" external
<rrika> ugh, still better than learning verilog
<rrika> at least it's easy to remember
<sb0> I don't see what the problem is
<rrika> there is none, just having a culture shock
<rrika> thanks for the explanations
rohitksingh has quit [Ping timeout: 240 seconds]
<topo> hi there!
<topo> I'm using migen with a minispartan6 board from scarab labs
<topo> when using the create_programmer() method from class Platform it passes 'minispartan6' as cable parameter but there is no cable named like that on programmer xc3sprog
<topo> the cable parameter should be changed to 'ftdi' as default, right? and even better if the method create_programmer() could accept a cable parameter
<topo> the parmeter part is not escencial but the default cable name should be changed to at least an actual existing cable in that programmer
AndChat|326081 has quit [Quit: Bye]
AndChat326081 has joined #m-labs
rohitksingh has joined #m-labs
AndChat326081 has quit [Ping timeout: 240 seconds]
AndChat326081 has joined #m-labs
rohitksingh has quit [Quit: Leaving.]
mumptai_ has quit [Remote host closed the connection]
rrika has left #m-labs ["Ex-Chat"]
AndChat326081 has quit [Quit: Bye]
AndChat326081 has joined #m-labs
AndChat326081 has quit [*.net *.split]
cr1901_modern has quit [*.net *.split]
cedric has quit [*.net *.split]
folkert has quit [*.net *.split]
folkert has joined #m-labs
folkert has quit [Ping timeout: 240 seconds]
folkert has joined #m-labs
topo has quit [Ping timeout: 260 seconds]
AndChat326081 has joined #m-labs
cedric has joined #m-labs
cr1901_modern has joined #m-labs
topo has joined #m-labs