whitequark[cis] changed the topic of #glasgow to: https://glasgow-embedded.org · digital interface explorer · https://www.crowdsupply.com/1bitsquared/glasgow · code https://github.com/GlasgowEmbedded/glasgow · logs https://libera.irclog.whitequark.org/glasgow · matrix #glasgow-interface-explorer:matrix.org · discord https://1bitsquared.com/pages/chat
<_whitenotifier-2> [glasgow] whitequark opened pull request #798: Fix `ServerEndpoint` to not use asyncio cancellation in an unsound way - https://github.com/GlasgowEmbedded/glasgow/pull/798
<whitequark[cis]> hey, good news: if you've been annoyed by glasgow cli not reacting to ^C unless you hit it twice, i fixed (some of) that
<whitequark[cis]> wow, our builds now wait, by far, on github rate limiting requests to the web frontend... from github's own infra
<_whitenotifier-2> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-798-7098941a2a3c21a1927d1fc11668270dc026618d - https://github.com/GlasgowEmbedded/glasgow
<asjackson> i had not noticed but maybe i just smash control-c for everything :D
<_whitenotifier-2> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-798-7098941a2a3c21a1927d1fc11668270dc026618d - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #798: Fix `ServerEndpoint` to not use asyncio cancellation in an unsound way - https://github.com/GlasgowEmbedded/glasgow/pull/798
<whitequark[cis]> it's only a problem in some cases
<whitequark[cis]> if you wrote your own applet from scratch you wouldn't see it
<asjackson> so i am learning about ffsynchronizers, very new to me, i think i get it, but if i understand it right i would need one for each .i and .o ? oe is maybe already sync? not sure 🤯
<whitequark[cis]> for .i only
<asjackson> oh really, so i use a comb for .o
<whitequark[cis]> o and oe are driven by your logic, not sampled, so it does not matter (although the device on the other end would usually need a synchronizer)
<whitequark[cis]> basically, listening is more complex than talking
<asjackson> ah i see
<asjackson> i was searching github and thinking "why are the output lines never using ffsync" haha
<asjackson> im really enjoying amaranth / glasgow, thanks for your help!
<whitequark[cis]> you can skip the synchronizer when you know that the interface doesn't do anything unless clocked and you control the clock and you know the phase relationship between your clock edge and the response of the device
<whitequark[cis]> i'm glad you like it!
<whitequark[cis]> i put in a lot of effort to make it accessible to novices
<asjackson> verilog looked scary but always seemed interesting, good middle ground :)
<whitequark[cis]> verilog is just... not a very good language. like, almost anything you would use (that isn't a thin wrapper around verilog) is better
<whitequark[cis]> amaranth is just one choice, a fairly safe and boring one at that
<asjackson> safe, boring and easy to get started works for me
<_whitenotifier-2> [glasgow] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-798-7098941a2a3c21a1927d1fc11668270dc026618d - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-2> [GlasgowEmbedded/glasgow] github-merge-queue[bot] pushed 4 commits to main [+0/-0/±13] https://github.com/GlasgowEmbedded/glasgow/compare/7098941a2a3c...d99d8974c0ee
<_whitenotifier-2> [GlasgowEmbedded/glasgow] whitequark 1f1dc69 - support.endpoint: don't use cancellation to signal EOF.
<_whitenotifier-2> [GlasgowEmbedded/glasgow] whitequark 64c68ed - applet.interface.{jtag,swd}_openocd: fix `ServerEndpoint` deprecations.
<_whitenotifier-2> [GlasgowEmbedded/glasgow] whitequark 4016efd - applet.interface.uart: fix `ServerEndpoint` deprecations.
<_whitenotifier-2> [GlasgowEmbedded/glasgow] whitequark d99d897 - applet.interface.uart: cancel monitor task when done.
<_whitenotifier-2> [glasgow] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-798-7098941a2a3c21a1927d1fc11668270dc026618d - https://github.com/GlasgowEmbedded/glasgow
<_whitenotifier-2> [glasgow] whitequark closed pull request #798: Fix `ServerEndpoint` to not use asyncio cancellation in an unsound way - https://github.com/GlasgowEmbedded/glasgow/pull/798
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: [WIP] Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
redstarcomrade has quit [Read error: Connection reset by peer]
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: [WIP] Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
unlobito has quit [Ping timeout: 272 seconds]
unlobito has joined #glasgow
cr1901_ has joined #glasgow
cr1901 has quit [Ping timeout: 252 seconds]
andymandias has quit [Ping timeout: 260 seconds]
figushki has joined #glasgow
unlobito has quit [Quit: Quit.]
unlobito has joined #glasgow
figushki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
figushki has joined #glasgow
galibert[m] has quit [Quit: Idle timeout reached: 172800s]
figushki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
figushki has joined #glasgow
figushki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
figushki has joined #glasgow
figushki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
figushki has joined #glasgow
figushki has joined #glasgow
figushki has quit [Client Quit]
figushki has joined #glasgow
figushki has quit [Client Quit]
andymandias has joined #glasgow
<asjackson> hmm i tried swapping to data.StructLayout and im very confused that it doesn't seem to be assigning the values. i tried in amaranth/play and it should work 😱
<whitequark[cis]> can you show me the complete code?
<whitequark[cis]> your snippet looks ok
<asjackson> hold on ill push to github :)
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
<asjackson> very confusing
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2077952831
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2077953496
<whitequark[cis]> that looks correct at the first glance
<whitequark[cis]> oh, I think I know what might be happening
<whitequark[cis]> hm, no, your bit order is also right
<whitequark[cis]> what are the symptoms?
<asjackson> it's as if it's not even setting the signal when I do `m.d.sync += l_control.eq(self.out_fifo.r_data)`
<asjackson> so it just gets stuck, since none of the conditions below that match 0
figushki has joined #glasgow
<asjackson> and when i change back to what i was doing before (commented out) , it works , mystery!
<whitequark[cis]> so, there are a few ways to proceed here (I still don't see it from reading the code)
<whitequark[cis]> if you were building the applet using the new style (wiring.Component based), you could just simulate the entire applet
<asjackson> i was planning to do things incrementally and hopefully switch to newer style later, think it might be helpful to learn it progressively , but may be wrong haha
<whitequark[cis]> oh, a few code style comments
<whitequark[cis]> the amaranth.lib.* submodules are intended to be imported as the submodule itself (like from amaranth.lib import enum, data, cdc, wiring) and then referenced with the submodule name being the namespace for its contents (like wiring.connect, cdc.FFSynchronizer, enum.Enum). this helps reduce the amount of global identifiers being pulled in while also reducing import clutter
<whitequark[cis]> (and without using glob imports, from x import *)
<whitequark[cis]> also the usual python code style is 2 empty lines between top-level declarations like class foo: (anything that goes on the lowest indent level)
<whitequark[cis]> but these are minor
<asjackson> nice, will keep that in mind :) thanks
<whitequark[cis]> re: "new style", the fact that it makes simulations much easier to do is one of the major reasons why we're doing it. ideally, in a few months, all applets will be using that style and simulating an applet would be as easy as two lines of code
<whitequark[cis]> we're almost there, but not quite
<asjackson> will that help with testing too? I thought it would be kind of interesting for the tests to simulate two of the applets and wire them together for bidirectional tests
<whitequark[cis]> the ARM7TDMI PR introduces a JTAG probe tested against a JTAG TAP in this exact manner
<whitequark[cis]> you could wire two copies of your applet together in a test just like that
<asjackson> neat
<asjackson> doh
<asjackson> figured out the StructLayout
<asjackson> # m.d.comb += [
<asjackson> # ctrl_eoi.eq(l_control[1]),
<asjackson> # ctrl_tx.eq(l_control[0]),
<asjackson> # ctrl_atn.eq(l_control[2]),
<asjackson> # ctrl_ifc.eq(l_control[3]),
<asjackson> # ctrl_ren.eq(l_control[4]),
<asjackson> # ctrl_listen.eq(l_control[6]),
<asjackson> # ctrl_talk.eq(l_control[7]),
<asjackson> # ]
<asjackson> these are not contiguous
<asjackson> sorry 🙄
<whitequark[cis]> oh
<whitequark[cis]> yeah, easy to miss
<_whitenotifier-2> [glasgow] AaronJackson reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078027379
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
figushki has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078053440
<_whitenotifier-2> [glasgow] whitequark synchronize pull request #795: Add an ARM7TDMI debug probe applet - https://github.com/GlasgowEmbedded/glasgow/pull/795
<whitequark[cis]> finally done with the ARM7TDMI debug probe! https://github.com/GlasgowEmbedded/glasgow/pull/795
<whitequark[cis]> feel free to comment in review
benny2366[m] has joined #glasgow
<benny2366[m]> finaly something I can read without my glasses on XP
<whitequark[cis]> what do you mean?
esden[m] has joined #glasgow
<esden[m]> this is how this looked on the discord side 🙂
<benny2366[m]> that it is nice and big , and my eyes are bad 😛
<whitequark[cis]> oh i see
<benny2366[m]> badum tssss XP
galibert[m] has joined #glasgow
<galibert[m]> oh, the messages have nothing to do with windows XP :-)
jfsimon has quit [Quit: Leaving]
jfsimon has joined #glasgow
redstarcomrade has joined #glasgow
redstarcomrade has quit [Changing host]
redstarcomrade has joined #glasgow
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
<_whitenotifier-2> [glasgow] AaronJackson reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078571265
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078589314
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078589956
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078590242
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078594686
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078595375
<_whitenotifier-2> [glasgow] AaronJackson reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078603460
<_whitenotifier-2> [glasgow] whitequark reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078609089
<_whitenotifier-2> [glasgow] AaronJackson synchronize pull request #796: wip: applet.interface.gpib_command: new applet for GPIB - https://github.com/GlasgowEmbedded/glasgow/pull/796
<_whitenotifier-2> [glasgow] AaronJackson reviewed pull request #796 commit - https://github.com/GlasgowEmbedded/glasgow/pull/796#discussion_r2078655007