whitequark[cis] changed the topic of #amaranth-lang to: Amaranth hardware definition language · weekly meetings: Amaranth each Mon 1700 UTC, Amaranth SoC each Fri 1700 UTC · play https://amaranth-lang.org/play/ · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
lf has quit [Ping timeout: 268 seconds]
lf_ has joined #amaranth-lang
skipwich_ has quit [Quit: DISCONNECT]
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 256 seconds]
Degi_ is now known as Degi
skipwich has joined #amaranth-lang
notgull has quit [Ping timeout: 264 seconds]
notgull has joined #amaranth-lang
<_whitenotifier-7> [amaranth] kivikakk opened pull request #1153: lib.wiring.connect: diagnostic when no connection made. - https://github.com/amaranth-lang/amaranth/pull/1153
<_whitenotifier-7> [amaranth] codecov[bot] commented on pull request #1153: lib.wiring.connect: diagnostic when no connection made. - https://github.com/amaranth-lang/amaranth/pull/1153#issuecomment-1960764219
notgull has quit [Ping timeout: 255 seconds]
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 260 seconds]
zyp[m] has joined #amaranth-lang
<zyp[m]> huh, I just realized (after reading #1153) that the max one output-check is per member, so something like this is legal:
<zyp[m]> 1)%2C%20'c'%3A%20Out(1)%7D).create()%5Cn%5Cnm%20%3D%20Module()%5Cn%5Cnconnect(m%2C%20a%2C%20b%2C%20c)%5Cn%22%7D
<zyp[m]> https://amaranth-lang.org/play/#%7B%22av%22%3A%22v0.4.2%22%2C%22s%22%3A%22from%20amaranth%20import%20*%5Cn%5Cnfrom%20amaranth.lib.wiring%20import%20Signature%2C%20In%2C%20Out%2C%20connect%5Cn%5Cna%20%3D%20Signature(%7B'a'%3A%20Out(1)%2C%20'b'%3A%20In(1)%2C%20'c'%3A%20In(1)%7D).create()%5Cnb%20%3D%20Signature(%7B'a'%3A%20In(1)%2C%20'b'%3A%20Out(1)%2C%20'c'%3A%20In(1)%7D).create()%5Cnc%20%3D%20Signature(%7B'a'%3A%20In(1)%2C%20'b'%3A%20In(
<galibert[m]> A In connects with an In?
<zyp[m]> in my head, there were originally two ways to use connect(); either with two bidirectional interfaces of opposite directions to make a point-to-point connection, or with one unidirectional output and one or more unidirectional inputs to make a fan-out connection
<galibert[m]> I'm surprised one can leave Ins "dangling" in a way
<zyp[m]> but since the check is per member, you can connect more than two bidirectional interfaces too, as long as each member only has one output
<zyp[m]> and yeah, I agree, that smells like a bug
frgo_ has joined #amaranth-lang
<galibert[m]> Love the terminology of "type-guided programming", it's so true
<zyp[m]> I can't immediately see any usecase where having input members without a corresponding output members is useful
frgo has quit [Ping timeout: 260 seconds]
oter has quit [Remote host closed the connection]
oter has joined #amaranth-lang
<galibert[m]> well, iirc there's the case of devices to put on a bus that can use some signals but don't have to if they're not supported
<galibert[m]> as long as they can have a relevant default value
<galibert[m]> in wishbone that can be the burst mode lines, iirc again
<zyp[m]> hmm, true
<zyp[m]> no, that doesn't work, connect() still requires the same members to be present on all interfaces
<galibert[m]> oh
<galibert[m]> makes sense too
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 255 seconds]
notgull has joined #amaranth-lang
notgull has quit [Ping timeout: 256 seconds]
notgull has joined #amaranth-lang
vipqualitypost[m has quit [Quit: Idle timeout reached: 172800s]
jfng[m] has joined #amaranth-lang
<jfng[m]> no SoC meeting today (still nothing on the agenda), but next week's meeting will be about our first SoC peripheral: a GPIO controller
<cr1901> Ooooooh, that is quite relevant to my interests
<cr1901> whitequark[cis]: How do you prevent elaborate() method from showing up in docs for Elaboratables?
<cr1901> I see a few ways to accomplish this (:meta: private, :members: under the auto* directives), but none of them seem to apply for elaborate() (AFAICT)
<zyp[m]> add elaborate to exclude-members?
<cr1901> So wondering if there's some global option I'm missing
SpaceCoaster has quit [Quit: Bye]
SpaceCoaster has joined #amaranth-lang
<zyp[m]> is it configured to pick up methods without a docstring?
<cr1901> "undoc-members": True <-- yes
<cr1901> Nevermind
<whitequark[cis]> <galibert[m]> "I'm surprised one can leave Ins..." <- this is intentional
<zyp[m]> what's the intended use case?
<whitequark[cis]> I don't remember; it's probably in the RFC
alexbleitner[m] has joined #amaranth-lang
<alexbleitner[m]> Are there any installation instructions for the amaranth_boards module? https://amaranth-lang.org/docs/amaranth/latest/install.html referres to https://github.com/amaranth-lang/amaranth-boards, but there is nothing either.
<whitequark[cis]> how did you install Amaranth?
<alexbleitner[m]> via pip3
<alexbleitner[m]> I can install an amaranth_board module, but that one seems to be empty, so just metadata files
<whitequark[cis]> then: pip install git+https://github.com/amaranth-lang/amaranth-boards
<alexbleitner[m]> that worked, thanks!
pbsds has quit [Ping timeout: 264 seconds]
pbsds has joined #amaranth-lang
mobius has quit [Ping timeout: 252 seconds]
mobius has joined #amaranth-lang
mithro has quit [Ping timeout: 252 seconds]
alanvgreen has quit [Ping timeout: 252 seconds]
mithro has joined #amaranth-lang
alanvgreen has joined #amaranth-lang