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
ohama has quit [Ping timeout: 246 seconds]
ohama has joined #m-labs
<mithro> For migen, should I send patches to the devel@lists.m-labs.hk list?
<sb0> yes
<sb0> rjo, maybe those registers have been pushed into the BRAM?
<sb0> BRAMs can absorb two registers (and need to have at least one). the second one has ridiculous timing on slowtan6 and generally should not be used.
<sb0> by "ridiculous" I mean that it improves the clock-to-output delay of the BRAM by a negligible amount, but removes a register that could be a lot more useful within the logic
<sb0> and since LUTs have dedicated registers, those are not more expensive than the built-in second register of the BRAM
<sb0> so the bottom line is, the second BRAM register should not be used, unless you have about zero combinatorial logic between the BRAM and some other non-LUT component. unfortunately, it seems that ISE does not implement this behavior...
balrog has quit [Excess Flood]
balrog has joined #m-labs
<rjo> hmm. i can't see how it can absorb the register out of the loop. the number of cycles around that loop must remain constant during absorbing/balancing afaict.
<sb0> what is that loop exactly?
<sb0> BRAM data -> timestamp comparison + address counter -> BRAM address?
<sb0> with two registers in between?
<sb0> (counting the one inside the first BRAM)
<sb0> looks like it, yes
<rjo> ah. so it is not a loop really. the register fell into the DOA_REG...
<sb0> yes. that DOA_REG is the stupid second BRAM register I mentioned.
<sb0> if you find a way to disable that, it should work imo
<rjo> ack. would the "no retiming" on one of the "good" registers be the way to do this?
<sb0> hmm, you want to tell xst to push a maximum of one register into BRAMs
<sb0> I'm not sure if "attribute register_balancing" will help
<sb0> maybe "attribute keep"
<sb0> or both
<rjo> ic.
<sb0> I see there's also RAM_EXTRACT
<sb0> which can apply to signals
<sb0> maybe putting it on the second register will prevent it from absorbing it into the BRAM
mindrunner_off is now known as mindrunner
fengling has quit [*.net *.split]
cfelton has quit [*.net *.split]
[florian] has quit [*.net *.split]
fengling has joined #m-labs
cfelton has joined #m-labs
[florian] has joined #m-labs
fengling_ has joined #m-labs
fengling has quit [Ping timeout: 276 seconds]
<sb0> whitequark, seems that some of this cheap taobao vacuum gear is made on order
<sb0> which is interesting, because they can probably customize then
<whitequark> hmmm interesting
<whitequark> rjo: do you need persistence in redis?
<rjo> we need persistence in our databases, yes.
<sb0> speaking of databases
<sb0> your influxdb parameter example
<sb0> b = self.pdb.query("select avg(value) from foo where time > now()
<sb0> - 1h group by time(1m)")
<sb0> would break reproducibility...
<sb0> if you re-run the experiment, now() and therefore the values returned by the DB will have changed
<rjo> that's ok ;)
<rjo> you can also do "self.delay(random.random()*100*us)"
<rjo> everything beyond the current snapshots in the databases will break reproducibility.
<sb0> rjo, also, how much work should we put into the ad9858 core? just hack the FSM so it passes timing with the kc705/new adapter board, or add a number of CSRs that control timing at runtime and make those parameters part of the DDB?
<rjo> damn. the problem was actually in the CDC constraints. with the bufgmux, you apparently have to make the paths from either input to sys_clk (and the reverses) TIG. just the output of the bufgmux does not work.
<rjo> nah. hack it but make the timing a synthesis-time parameter.
<rjo> afaict there would be a write duration and a read duration, both in cycles, right?
<rjo> i hacked the READ{12345} things into it before I figured out timeline() and/or the way to du synchronous stuff in FSM.act().
<sb0> fsm.delayed_enter may also be useful
<sb0> but I'll have to look at it... haven't touch this code in a while
<sb0> *touched
<sb0> or just wait on timing counters
<rjo> yes.
<mithro> In migen, what does "tbp.dut.replace = True" do? (tbp == test bench ???, dut == device under test, right?) - it doesn't seem to be documented at http://migen.readthedocs.org/en/latest/simulation.html ?
<rjo> test bench proxy.
<mithro> rjo: so that is setting the "replace" signal on the dut to True?
<sb0> it's syntactic sugar for s.wr(tb.dut.replace, True)
<sb0> yes
<sb0> whitequark, what primary pump do you have exactly?
<whitequark> sb0: primary = rotary vane?
<sb0> yes
<whitequark> I don't actually know, it has no markings
<whitequark> it's some kind of chinese rotary vane pump intended for A/C pumping, labeled only "2 CFM"
<whitequark> I've seen some equivalent models, let me find
<sb0> ah, I see. those are everywhere in HK. something like that? http://item.taobao.com/item.htm?spm=a230r.1.14.61.8ESmKC&id=19484648443&ns=1&abbucket=13
<sb0> without KF flanges or anything
<whitequark> yeah similar
<whitequark> slightly different shape and color but yes
<sb0> those are dirt cheap... that one is 30E
<whitequark> it has an 1/8" NPT inlet, epoxied in, that I forcibly unscrewed and replaced with a 1/8" to hose barb
<whitequark> screwed into using teflon tape
<whitequark> they're noisy, but cheap, and despite being made for A/C duty they can pump for days with no apparent issues
<sb0> and you back a turbo with that?
<whitequark> yeah
<whitequark> I measured pressure at turbo inlet and it's within 1 OOM of ultimate pressure in 2 hrs
<whitequark> rjo: redis is not a good idea for persistence
<whitequark> it's sort of acceptable for some use cases as an in-memory store, but do keep in mind it's ultimately single-threaded (it's a feature) and while all of its operations alone have linear or logarithmic complexity...
<whitequark> ... that doesn't help you if you have lots of data, for example
<whitequark> however, never ever store anything of value in redis, because it has relatively little measures to ensure your data is intact and it will, in fact, lose it
<sb0> why is that any better than the python built-in types then?
<whitequark> it's popular among startup webdevs because you usually run several (single-threaded or effectively single-threaded) appserver processes and this lets you share the cache
<whitequark> there is also usually little data of any value, so...
<whitequark> rjo: as a first approximation, I would go with postgres.
<mithro> Has anyone come across migen test "test_replace (migen.test.test_fifo.SyncFIFOCase)" failing? All the other tests seem to pass
<sb0> passes here
<sb0> I'm at commit c6904f9d63302daff3b2ae091cde199dac0b8a51
<sb0> did the pep8 conversion break something?
<mithro> sb0: it passes on most of my machines
<mithro> sb0: just fails on the other machine
<mithro> the place where it seems to diverge is on the second clock cycle where reading top.dut.syncfifo_re returns 0 rather than 1
<sb0> interesting bug. no, I haven't seen it
<sb0> same iverilog version?
<mithro> sb0: looks like it's an older iverilog version - is there a minimum requirement?
<sb0> yes, but it's a version from early 2012
<sb0> and with older versions, all simulations break completely
<sb0> we should rewrite that simulator in python and radically get rid of iverilog issues...
<mithro> this might actually be old enough to be causing the problem
<mithro> Icarus Verilog version 0.9.5 (v0_9_5)
<mithro> looks like 0.9.7 is what is being used on the working machines
FabM has joined #m-labs
<sb0> whitequark, >>> f(x,x=1)
<sb0> TypeError: f() got multiple values for argument 'x'
<whitequark> ok, another thing they fixed in 3
<whitequark> oh, hm, also works on 2.7. guess I was wrong
<mithro> well, just sent a bunch of small patches for migen
<mithro> hopefully they are useful
<mithro> heading out for the day
<sb0> mithro, thanks!
<mithro> Sadly it is unlikely i'll have time to do much more for a while now
<mithro> But we will see
bentley`` has joined #m-labs
bentley` has quit [*.net *.split]
<GitHub150> [artiq] sbourdeauducq pushed 2 new commits to master: http://git.io/vvlJv
<GitHub150> artiq/master c0f1708 Sebastien Bourdeauducq: targets/pipstrello: fix mem_map
<GitHub150> artiq/master 4c10182 Sebastien Bourdeauducq: rtio: refactor, use rtlink
imrehg has joined #m-labs
rjo has quit [Read error: Connection reset by peer]
rjo has joined #m-labs
acathla has left #m-labs ["Quitte"]
sturmflut-work has joined #m-labs
imrehg has quit [Quit: Leaving]
bhamilton has joined #m-labs
bhamilton has quit [Remote host closed the connection]
antgreen has joined #m-labs
<sb0> mithro, what's a "puppet core"?
<GitHub19> [misoc] sbourdeauducq pushed 4 new commits to master: http://git.io/vv8uF
<GitHub19> misoc/master e03f195 Tim 'mithro' Ansell: Adding CONTRIBUTING file to help guide new contributions....
<GitHub19> misoc/master c052b84 Tim 'mithro' Ansell: Adding a call to action and link to CONTRIBUTING.md file.
<GitHub19> misoc/master da1af98 Tim 'mithro' Ansell: Adding outgoing directory to .gitignore...
<GitHub189> [migen] sbourdeauducq pushed 2 new commits to master: http://git.io/vv8ab
<GitHub189> migen/master 9ca3be0 Sebastien Bourdeauducq: README: add link to online docs
<GitHub189> migen/master e2af9ac Tim 'mithro' Ansell: Expanding the install instructions a little....
acathla has joined #m-labs
<sb0> first spam sent to the artiq list!
<GitHub147> [migen] sbourdeauducq pushed 4 new commits to master: http://git.io/vv8K9
<GitHub147> migen/master 9037114 Tim 'mithro' Ansell: Adding simple travis-ci build....
<GitHub147> migen/master 3420798 Tim 'mithro' Ansell: Adding .egg-info to the .gitignore
<GitHub147> migen/master c3c5ffb Tim 'mithro' Ansell: Makefile now uses iverilog-vpi...
<mindrunner> is there any flow control available on misoc's uart interface?
<sb0> no
<sb0> except the software ones ;)
<mindrunner> hm, it seems that i'm still losing bytes sometimes.
<mindrunner> maybe some queue has an overrun and just drops data
<mindrunner> i have no idea how to figure out
<ysionneau> if you have an infinite running logic analyzer you could check to see if the issue is the device or the host
<sb0> rjo, are you ussing gitter.im?
<mindrunner> i got a saleae16, which pretty much sucks
<sb0> "This is a picture of a cloud against a background of clouds. OMG! We integrate with a bunch of stuff in the cloud."
<ysionneau> cloud cloud cloud cloud
<mindrunner> and an openbench logic sniffer which i havent tried yet
<ysionneau> openbench is not infinite running
<ysionneau> saelae (whatever the spelling) is
<whitequark> sigrok with openbench backend would be infinite running i believe
<ysionneau> last time I used saelae I could capture the entire SPI transaction from an uC sending the bitstream configuration to an FPGA
<mindrunner> my saelae is not working at all. the software always gives me an error
<mindrunner> *saleae
<ysionneau> hum my open bench client does not allow me to do usb streaming
<sb0> there's this webhook "https://webhooks.gitter.im/e/d26782523952bfa53814" in travis.yml
<GitHub125> [migen] sbourdeauducq pushed 1 new commit to master: http://git.io/vv8Do
<GitHub125> migen/master 9c8c203 Sebastien Bourdeauducq: travis: add IRC notification
<mindrunner> the logic analyzer software is using RXTX :(
<mindrunner> maybe not the best idea to use RXTX for figuring out if RXTX is the buggy part in my sytem :D
<ysionneau> depends on the speed :p
<mindrunner> i've got a 3M connection with an acutal datarate of 180kb/s
<sb0> for those relatively fast speeds, you may want to do something more efficient than one interrupt per char...
FabM has quit [Ping timeout: 265 seconds]
<mindrunner> what do you mean?
<sb0> the current UART system sends an interrupt to the CPU for each char
<sb0> and the CPU has to save context, read the CSR for the char, ack the interrupt, restore context
<sb0> it's all pretty slow
<mindrunner> yeah
<mindrunner> that explains my low throughput
<mindrunner> whats my alternative?
travis-ci has joined #m-labs
<travis-ci> m-labs/migen#3 (master - 9c8c203 : Sebastien Bourdeauducq): The build passed.
travis-ci has left #m-labs [#m-labs]
<mindrunner> anyway, i'd rather have it more reliable and stuck with slow speed
<mindrunner> but losing bytes is not an option
<mindrunner> or would need a protocol on top which allows retransmit, etc
<mindrunner> which makes everything even slower
<sb0> mindrunner, fifos, packet buffers in BRAM, DMA, ....
<GitHub13> [migen] sbourdeauducq pushed 1 new commit to master: http://git.io/vv85E
<GitHub13> migen/master ae503bc Sebastien Bourdeauducq: travis: disable email notification
<mindrunner> :)
<mindrunner> hmm, yesterday it was working quite good. today I am getting tons of transmission errors
FabM has joined #m-labs
travis-ci has joined #m-labs
<travis-ci> m-labs/migen#4 (master - ae503bc : Sebastien Bourdeauducq): The build passed.
travis-ci has left #m-labs [#m-labs]
mumptai_ has joined #m-labs
mumptai_ has quit [Remote host closed the connection]
FabM has quit [Quit: ChatZilla 0.9.91.1 [Firefox 37.0.1/20150402191859]]
FabM has joined #m-labs
FabM has quit [Quit: ChatZilla 0.9.91.1 [Firefox 37.0.1/20150402191859]]
<rjo> whitequark: sounds like redis persistence would be at least as reliable/fast as the one we are doing. and it is not really lots of data. 1e3-1e5 keys <100MB total. resore from backups would be sufficient for us as well afaict.
<rjo> sb0: i was playing with it, yes. but not a heavy user.
<rjo> sb0: re s6ddrphy, phase_sel: do you see any way to make this faster apart from changing the phase of the _half clock? sometimes ise misses it by a few ps.
<rjo> ah. maybe sneaking another cycle and shifting the others.
mumptai has quit [Quit: Verlassend]
aeris_ has quit [Ping timeout: 244 seconds]
aeris_ has joined #m-labs
aeris has quit [Ping timeout: 244 seconds]
aeris has joined #m-labs
antgreen has quit [Read error: Connection reset by peer]
antgreen has joined #m-labs