electronic_eel has quit [Ping timeout: 240 seconds]
electronic_eel has joined #nmigen
PyroPeter_ has joined #nmigen
PyroPeter has quit [Ping timeout: 272 seconds]
PyroPeter_ is now known as PyroPeter
<_whitenotifier>
[nmigen] rachsug opened issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JI2Fn
rachsug has joined #nmigen
<_whitenotifier>
[nmigen] davidlattimore commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JI2N7
PyroPeter has quit [Ping timeout: 258 seconds]
PyroPeter has joined #nmigen
futarisIRCcloud has joined #nmigen
emeb_mac has quit [Quit: Leaving.]
<_whitenotifier>
[nmigen] daveshah1 commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIaGo
jeanthom has joined #nmigen
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
lkcl has quit [Ping timeout: 264 seconds]
chipmuenk has joined #nmigen
lkcl has joined #nmigen
<_whitenotifier>
[nmigen] weshu opened issue #559: Negative values support in Switch-Case - https://git.io/JIagQ
electronic_eel has quit [Ping timeout: 258 seconds]
electronic_eel has joined #nmigen
electronic_eel has quit [Ping timeout: 240 seconds]
electronic_eel has joined #nmigen
electronic_eel has quit [Ping timeout: 240 seconds]
electronic_eel has joined #nmigen
jeanthom has quit [Remote host closed the connection]
jeanthom has joined #nmigen
chipmuenk has quit [Quit: chipmuenk]
lambda has quit [Quit: WeeChat 2.9]
lambda has joined #nmigen
sakirious has joined #nmigen
emeb has joined #nmigen
Bertl_oO has joined #nmigen
<_whitenotifier>
[nmigen] whitequark commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIVxG
<_whitenotifier>
[nmigen-boards] whitequark commented on issue #128: [RFC] Testing and releasing nmigen-boards - https://git.io/JIVpq
<_whitenotifier>
[nmigen] whitequark commented on issue #559: Negative values support in Switch-Case - https://git.io/JIVht
<whitequark>
XMPPwocky: okay, so... that's unfortunate but in my view the right thing to do is to figure out what it is that quartus doesn't like
<whitequark>
nmigen lives on a higher level of abstraction than the one where net fanout matters, so even if you insert buffers with something like m.d.comb += .eq(), quartus will probably fold them all back
<whitequark>
of course, you can always add vendor primitives manually, but that's also not something nmigen can do in general
<Bertl_oO>
whitequark: ktemkin: what's the current state of the art for an USB 2.0 sniffer/tool which can optionally also alter the communication (PITM)?
<Bertl_oO>
i.e. what tools (hardware and software) would you use for this?
<whitequark>
i never really needed to modify packets
<whitequark>
so i use openvizsla
<whitequark>
well... i use it mostly because i have an openvizsla and nothing else... not because it is state of the art :)
<Bertl_oO>
fair enough :)
<Bertl_oO>
I have a case where neither the host nor the client side is really under my control, so I'd like to be able to first sniff/analyze the traffic and then do some probing by altering or injecting packets
<Bertl_oO>
I'm toying with the idea to build my own hardware for that, but if there is something available already it would of course be preferred ...
<XMPPwocky>
whitequark: okay, thanks - yeah quartus is either doing something weird or just something i don't understand yet - it claims the reset synchronizer's output *is* in fact using a global clock line, with fanout 1696, and also that the same signal is a 'non-global high-fanout signal' with fanout 3732
<XMPPwocky>
i've managed to sort of massage things enough that timing passes, so not an issue anymore (for now)
<whitequark>
interesting
<whitequark>
can you show me the .il file? it might be something obvious
<XMPPwocky>
how do i get that? atm my nmigen -> verilog ; the reset synchronizer is from the design my logic is embedded in and is in VHDL; i don't *think* it's (immediately) an nmigen-related issue, was more looking to see if i could work around it
<whitequark>
oh i see
<whitequark>
nevermind then, i assumed the synchronizer would be a part of nmigen code
<whitequark>
that... sounds really annoying, sorry you're dealing with that
<XMPPwocky>
yeah i mean it's also even possible that everything's working fine and reset is actually either getting register-duplicated or using a gclk buffer... and timing just happened to fail on paths from the reset signal to other stuff for unrelated reasons
<whitequark>
"non-global high-fanout signal" with higher fanout than the global seems troublesome
<whitequark>
can you uh... explore the post-placement netlist?
<XMPPwocky>
well, that segfaulted quartus, let's try again
<XMPPwocky>
https://imgur.com/a/jpQeIs9 zoomed in / zoomed out, not quite sure what i'm looking for (lmk if this'd be more appropriate for another channel)
<whitequark>
hm
<XMPPwocky>
(i stuck that extra register in there to at least help things along a bit- the output of *that* register is the one that's both global and non-global
<whitequark>
by any chance, do you have a mixture of sync and async resets tied to that signal?
<XMPPwocky>
the synchronizer producing it seems to give you async assertion, synchronous deassertion, aiui
<whitequark>
no no
<whitequark>
i mean that you can have a flop with sync reset or async reset
<whitequark>
(or both)
<whitequark>
so in the rest of the logic (after the synchronizer), which resets is the signal connected to?
<XMPPwocky>
at a glance, seems to be all sclr
<whitequark>
okay, no ideas here
<XMPPwocky>
fair, thanks anyways
nfbraun has joined #nmigen
<nfbraun>
In a Pysim process, how do I wait for a signal to change?
chipmuenk has quit [Quit: chipmuenk]
<whitequark>
nfbraun: poll it in a loop
<nfbraun>
Ok, that's what I am doing right now.
<nfbraun>
But then I have to pick a delay time in the loop, right?
<nfbraun>
while ((yield foo) == old_foo):
<nfbraun>
yield Delay(1e-9)
<nfbraun>
Like this?
<whitequark>
you could also `yield Tick("domain")` if that makes sense for your design
<nfbraun>
Does not really make sense (I'm trying to simulate an off-FPGA SPI slave), but I guess it could work.
<whitequark>
internally, python processes can wait on any signal, but this capability isn't currently exposed
<whitequark>
this is mainly because the simulator interface is not well thought out and it's not something i want to commit to long term
<XMPPwocky>
nfbraun: fwiw you might be able to write a function just for the delay loop and then 'yield from wait_for_change(foo)' ?
<_whitenotifier>
[nmigen] nfbraun commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIw6B
<_whitenotifier>
[nmigen] nfbraun edited a comment on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIw6B
<_whitenotifier>
[nmigen] whitequark commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIwii
<_whitenotifier>
[nmigen] nfbraun commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIwPs
<_whitenotifier>
[nmigen] whitequark commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIwXf
<_whitenotifier>
[nmigen] nfbraun commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIwX4
<_whitenotifier>
[nmigen] whitequark commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIwX1
<_whitenotifier>
[nmigen] nfbraun commented on issue #558: write_cfgmem is writing to arty board when not specified to in the code - https://git.io/JIw1w
<nfbraun>
XMPPwocky: Yes, sure. The problem with the Delay in the loop is more that the delay is either small, meaning it makes the simulation take longer than necessary, or long, meaning I go beyond the edge I am interested in.
emeb has quit [Quit: Leaving.]
<whitequark>
there's a phenomenon where making a language facility more useful (in nmigen processes are fully asynchronous, unlike in migen) leads to more complaints (because the more complex interface has more potential pitfalls)