Catherine[m] changed the topic of #amaranth-lang to: Amaranth hardware definition language · weekly meetings on Mondays at 1700 UTC · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
GenTooMan has quit [Ping timeout: 258 seconds]
GenTooMan has joined #amaranth-lang
_whitelogger has quit [Ping timeout: 246 seconds]
_whitelogger has joined #amaranth-lang
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 245 seconds]
Degi_ is now known as Degi
<_whitenotifier-8> [amaranth] whitequark opened issue #848: Don't show UnusedElaboratable warning if not a single elaboratable was used - https://github.com/amaranth-lang/amaranth/issues/848
<_whitenotifier-8> [amaranth] whitequark opened pull request #849: hdl.ir: use heuristic for silencing warning instead of `sys.excepthook` - https://github.com/amaranth-lang/amaranth/pull/849
<_whitenotifier-8> [amaranth] codecov[bot] commented on pull request #849: hdl.ir: use heuristic for silencing warning instead of `sys.excepthook` - https://github.com/amaranth-lang/amaranth/pull/849#issuecomment-1646736796
<Wanda[cis]> mmmmm, there's... a lot of interesting edge cases here
<Wanda[cis]> like elaborate throwing an exception
<Wanda[cis]> <del>how do you feel about retrofitting linear types into Python</del>
<whitequark[cis]> it's not really intended to be perfect
<_whitenotifier-8> [amaranth] whitequark opened pull request #850: build.run: add `env=` argument to `BuildPlan.execute_local()` - https://github.com/amaranth-lang/amaranth/pull/850
<whitequark[cis]> Wanda: I guess it could be the heuristic *and* sys.excepthook?
<whitequark[cis]> I don't know. I guess we can always revert it later
<Wanda[cis]> yeah, excepthook doesn't seem like it'd have false positives at all
<Wanda[cis]> and it would still help
<whitequark[cis]> right
<Wanda[cis]> like, if the interpreter is about to die, you obviously don't care about warnings, right?
<_whitenotifier-8> [amaranth] codecov[bot] commented on pull request #850: build.run: add `env=` argument to `BuildPlan.execute_local()` - https://github.com/amaranth-lang/amaranth/pull/850#issuecomment-1646738037
<whitequark[cis]> aight
<_whitenotifier-8> [amaranth] whitequark edited pull request #849: hdl.ir: use heuristic for silencing warning instead of `sys.excepthook` - https://github.com/amaranth-lang/amaranth/pull/849
<_whitenotifier-8> [amaranth] whitequark edited pull request #849: hdl.ir: use additional heuristic for silencing warning - https://github.com/amaranth-lang/amaranth/pull/849
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-849-f6c38061ff1932b7f7f79855e231598c95ccfdea https://github.com/amaranth-lang/amaranth/commit/a6d67f7477bfb820b3cec2491da219b99d9ef1a7
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to gh-readonly-queue/main/pr-850-a6d67f7477bfb820b3cec2491da219b99d9ef1a7 [+0/-0/±2] https://github.com/amaranth-lang/amaranth/commit/a9212612153b
<_whitenotifier-8> [amaranth-lang/amaranth] whitequark a921261 - build.run: add `env=` argument to `BuildPlan.execute_local()`.
<_whitenotifier-8> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-849-f6c38061ff1932b7f7f79855e231598c95ccfdea - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-850-a6d67f7477bfb820b3cec2491da219b99d9ef1a7 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/f6c38061ff19...a6d67f7477bf
<_whitenotifier-8> [amaranth-lang/amaranth] whitequark a6d67f7 - hdl.ir: use additional heuristic for silencing warning.
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-849-f6c38061ff1932b7f7f79855e231598c95ccfdea
<_whitenotifier-8> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-849-f6c38061ff1932b7f7f79855e231598c95ccfdea - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth] whitequark closed pull request #849: hdl.ir: use additional heuristic for silencing warning - https://github.com/amaranth-lang/amaranth/pull/849
<_whitenotifier-8> [amaranth] whitequark closed issue #848: Don't show UnusedElaboratable warning if not a single elaboratable was used - https://github.com/amaranth-lang/amaranth/issues/848
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/a6d67f7477bf...a9212612153b
<_whitenotifier-8> [amaranth-lang/amaranth] whitequark a921261 - build.run: add `env=` argument to `BuildPlan.execute_local()`.
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-850-a6d67f7477bfb820b3cec2491da219b99d9ef1a7
<_whitenotifier-8> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-850-a6d67f7477bfb820b3cec2491da219b99d9ef1a7 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth] whitequark closed pull request #850: build.run: add `env=` argument to `BuildPlan.execute_local()` - https://github.com/amaranth-lang/amaranth/pull/850
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±30] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/82afab650f92...7134e6089f92
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] 7134e60 - Deploying to main from @ amaranth-lang/amaranth@a6d67f7477bfb820b3cec2491da219b99d9ef1a7 🚀
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±34] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/7134e6089f92...e77e4e3ae12c
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] e77e4e3 - Deploying to main from @ amaranth-lang/amaranth@a9212612153b83480fdfb00c3c2e7138bd38b485 🚀
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 1 commit to develop-0.31 [+0/-0/±1] https://github.com/YoWASP/yosys/compare/acb0df11ec6a...789284365ad8
<_whitenotifier-8> [YoWASP/yosys] whitequark 7892843 - [autorelease] Update dependencies.
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 1 commit to release-0.31 [+0/-0/±1] https://github.com/YoWASP/yosys/compare/acb0df11ec6a...789284365ad8
<_whitenotifier-8> [YoWASP/yosys] whitequark 7892843 - [autorelease] Update dependencies.
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/yosys/compare/82b3bf38ed0b...03eb95ec63d8
<_whitenotifier-8> [YoWASP/yosys] whitequark 03eb95e - Make `release` workflow depend on `check`, not `build`.
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±2] https://github.com/YoWASP/yosys/compare/03eb95ec63d8...12b5b8a1ab30
<_whitenotifier-8> [YoWASP/yosys] whitequark 12b5b8a - Build non-.dev PyPI versions from release-$VER branches.
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 2 commits to develop-0.31 [+0/-0/±3] https://github.com/YoWASP/yosys/compare/789284365ad8...34cdb09090de
<_whitenotifier-8> [YoWASP/yosys] whitequark 2f28742 - Make `release` workflow depend on `check`, not `build`.
<_whitenotifier-8> [YoWASP/yosys] whitequark 34cdb09 - Build non-.dev PyPI versions from release-$VER branches.
jjsuperpower has quit [Ping timeout: 244 seconds]
urja has quit [Read error: Connection reset by peer]
<_whitenotifier-8> [YoWASP/runtime] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/runtime/compare/c2da605891cf...9f7166d318a1
<_whitenotifier-8> [YoWASP/runtime] whitequark 9f7166d - [autorelease] Terminate execution on `KeyboardInterrupt`.
<_whitenotifier-8> [YoWASP/runtime] whitequark pushed 1 commit to release [+0/-0/±1] https://github.com/YoWASP/runtime/compare/c2da605891cf...9f7166d318a1
<_whitenotifier-8> [YoWASP/runtime] whitequark 9f7166d - [autorelease] Terminate execution on `KeyboardInterrupt`.
urja has joined #amaranth-lang
<_whitenotifier-8> [YoWASP/yosys] whitequark pushed 2 commits to release-0.31 [+0/-0/±3] https://github.com/YoWASP/yosys/compare/789284365ad8...34cdb09090de
<_whitenotifier-8> [YoWASP/yosys] whitequark 2f28742 - Make `release` workflow depend on `check`, not `build`.
<_whitenotifier-8> [YoWASP/yosys] whitequark 34cdb09 - Build non-.dev PyPI versions from release-$VER branches.
<_whitenotifier-8> [YoWASP/runtime] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/runtime/compare/9f7166d318a1...0c752a75dc23
<_whitenotifier-8> [YoWASP/runtime] whitequark 0c752a7 - [autorelease] Terminate when interrupted while compiling Wasm code.
<_whitenotifier-8> [YoWASP/runtime] whitequark pushed 1 commit to release [+0/-0/±1] https://github.com/YoWASP/runtime/compare/9f7166d318a1...0c752a75dc23
<_whitenotifier-8> [YoWASP/runtime] whitequark 0c752a7 - [autorelease] Terminate when interrupted while compiling Wasm code.
sauce has quit [Ping timeout: 246 seconds]
GenTooMan has quit [Ping timeout: 260 seconds]
GenTooMan has joined #amaranth-lang
jjsuperpower has joined #amaranth-lang
sugarbeet has quit [Read error: Connection reset by peer]
sugarbeet has joined #amaranth-lang
<_whitenotifier-8> [amaranth] whitequark opened pull request #851: build.run: make `BuildPlan.execute_local(env=)` override environment - https://github.com/amaranth-lang/amaranth/pull/851
<_whitenotifier-8> [amaranth] codecov[bot] commented on pull request #851: build.run: make `BuildPlan.execute_local(env=)` override environment - https://github.com/amaranth-lang/amaranth/pull/851#issuecomment-1646892909
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to gh-readonly-queue/main/pr-851-a9212612153b83480fdfb00c3c2e7138bd38b485 [+0/-0/±1] https://github.com/amaranth-lang/amaranth/commit/cb5b0e38d9d5
<_whitenotifier-8> [amaranth-lang/amaranth] whitequark cb5b0e3 - build.run: make `BuildPlan.execute_local(env=)` override environment.
<_whitenotifier-8> [amaranth] github-merge-queue[bot] created branch gh-readonly-queue/main/pr-851-a9212612153b83480fdfb00c3c2e7138bd38b485 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/a9212612153b...cb5b0e38d9d5
<_whitenotifier-8> [amaranth-lang/amaranth] whitequark cb5b0e3 - build.run: make `BuildPlan.execute_local(env=)` override environment.
<_whitenotifier-8> [amaranth-lang/amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-851-a9212612153b83480fdfb00c3c2e7138bd38b485
<_whitenotifier-8> [amaranth] whitequark closed pull request #851: build.run: make `BuildPlan.execute_local(env=)` override environment - https://github.com/amaranth-lang/amaranth/pull/851
<_whitenotifier-8> [amaranth] github-merge-queue[bot] deleted branch gh-readonly-queue/main/pr-851-a9212612153b83480fdfb00c3c2e7138bd38b485 - https://github.com/amaranth-lang/amaranth
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±30] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/e77e4e3ae12c...a5d0689aeb2f
<_whitenotifier-8> [amaranth-lang/amaranth-lang.github.io] github-merge-queue[bot] a5d0689 - Deploying to main from @ amaranth-lang/amaranth@cb5b0e38d9d5aa802ec825395ab559a37e33d150 🚀
sauce has joined #amaranth-lang
curiousmuch has joined #amaranth-lang
jjsuperpower_ has joined #amaranth-lang
jjsuperpower has quit [Read error: Connection reset by peer]
curiousmuch has quit [Quit: Client closed]
<d1b2> <chuckmcm> So I'm adding two PMOD things to an Amaranth design. Are they modules? Are they a resource specification? Let's take an easy on, Digilent LED8 which is 8 LEDs, nothing else. I want to use this on any board I happen to have, so I think "Its a module." and when I instantiate it I can attach it to Board resources. But how about the Digilent I2S PMOD? It has sequential logic that needs to be synthesized to generate an audio stream. Does
<d1b2> that work too?
<adamgreig[m]1> in both cases i'd use platform.add_resources to add the new signals the pmod provides (be it led0, led1, or like lrclk, mclk, sdat, etc) to an existing pmod connector on the platform
<adamgreig[m]1> and then my actual logic can request those new signals from the platform in the normal platform.request() way
<adamgreig[m]1> the logic to generate an audio stream isn't linked to the pmod, it could run on a board with a directly attached codec or some other pmod or anything else
<adamgreig[m]1> for example, https://github.com/adamgreig/amaranth-examples/blob/master/amaranth_examples/connectors.py, Top there adds a pmod that has some leds and switches, then its logic uses platform.request to get those new signals and use them
<d1b2> <chuckmcm> That is the way I did it with Litex/Migen. I'm wondering if there is a way to be more generalized to enhance re-use. The variables are what the platform calls its signal lines vs a 'standardized' definition of the PMOD.
<d1b2> <chuckmcm> I am wondering if there is a way to have a PMOD repository like we have a board repository, and a templatable way to say addPMOD(<pmod-module>, <board-defined-pmod-connector>)
<d1b2> <chuckmcm> It may not be doable but I can imagine it would be neat if the code was p = SomePlatform() leds = DigilentLED8(p.port[0]) leds[0] = 1;
<galibert[m]1> For my culture, what’s a pmod?
<d1b2> <chuckmcm> It was a standard for plug in modules (PMOD) promoted by Digilent. If you search on Digikey for example for PMOD you can see some examples.
<galibert[m]1> Ahhh ok
<galibert[m]1> A specific kind of shield, in arduino’s parlance?
<d1b2> <chuckmcm> Another system that is similar standard "Mikro" something which I can never remember with a bit more I/O pins and a huge selection of I/O boards.
<d1b2> <chuckmcm> Less than a shield. PMODs were typically 8 bits of I/O VCC + GND.
<galibert[m]1> Ah yeah, small thing
<d1b2> <chuckmcm> Icebreaker has 3x PMOD ports, ULX3S has 2.5
<galibert[m]1> Oh those, 1b2 produce some right?
<d1b2> <chuckmcm> They were also common on Xilinx boards.
<d1b2> <chuckmcm> Yes, several from 1b2.
<galibert[m]1> Intel/terasic went arduino iirc
<galibert[m]1> Lots of choice
<galibert[m]1> Integrating them in the resource concept sounds complicated
<d1b2> <chuckmcm> Yeah. These are similar: https://www.mikroe.com/
<d1b2> <chuckmcm> Sorry here is the standard: https://www.mikroe.com/mikrobus
<d1b2> <chuckmcm> They make rapidly prototyping an idea from a "generic" FPGA board both fast and durable (easy to show the client how it becomes a dedicated board for their application)
<galibert[m]1> Interesting
<d1b2> <chuckmcm> Conceptually I'd love to bid an idea, and then come in the next day with a demo. I don't always get to pick the FPGA architecture the client wants to use so things like Amaranth are really useful here for re-using work done across a variety of platforms. Anyway, it may not be possible but I know to never doubt what Whitequark can do!
<galibert[m]1> She want to redesign the platform stuff anyway for very good reasons
<d1b2> <vegard_e> I'd also like a convenient way to describe an assembly of modules, and it shouldn't be restricted to a single level
<whitequark[cis]> you can already do that
<whitequark[cis]> connectors can refer to other connectors
<d1b2> <vegard_e> are they named globally or hierarchically though? what happens if I've got a butterstick with two syzygy to pmod adapter boards?
<whitequark[cis]> globally
<d1b2> <vegard_e> hmm, does the current system support resources that span multiple connectors? e.g. dual width pmods?
<whitequark[cis]> the connector system is just a level of indirection triggered by having : in a name
<whitequark[cis]> it's really primitive
<d1b2> <vegard_e> I'm familiar with litex' :-syntax
<cr1901> Is there currently a freeze on accepting new boards/PRs for new boards?
<whitequark[cis]> not an official one, it's just that i don't have review bandwidth for boards atm, so if your PR 100% passes i merge it, otherwise it kind of languishes
<whitequark[cis]> this will change but not in the next few weeks
* cr1901 nods just wondering :)