whitequark changed the topic of #amaranth-lang to: Amaranth hardware definition language · code https://github.com/amaranth-lang · logs https://libera.irclog.whitequark.org/amaranth-lang
<_whitenotifier-9> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/nextpnr/compare/0daf897b06d8...b467ffa8f1e8
<_whitenotifier-9> [YoWASP/nextpnr] whitequark b467ffa - Update dependencies.
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 268 seconds]
Degi_ is now known as Degi
<_whitenotifier-9> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/yosys/compare/552afa342a35...49171bcb373e
<_whitenotifier-9> [YoWASP/yosys] whitequark 49171bc - Update dependencies.
bl0x has joined #amaranth-lang
bl0x_ has quit [Ping timeout: 252 seconds]
<_whitenotifier-9> [amaranth] whitequark commented on issue #732: `build_top.sh` is written with CRLF line endings on Windows - https://github.com/amaranth-lang/amaranth/issues/732#issuecomment-1410063013
<_whitenotifier-9> [amaranth] whitequark commented on issue #732: `build_top.sh` is written with CRLF line endings on Windows - https://github.com/amaranth-lang/amaranth/issues/732#issuecomment-1410063293
<_whitenotifier-9> [amaranth] whitequark commented on issue #526: Behavior of Past/Rose/Fell/... is poorly suited for multiclock or asynchronous designs - https://github.com/amaranth-lang/amaranth/issues/526#issuecomment-1410100625
<_whitenotifier-9> [amaranth] whitequark commented on issue #372: asserts.Past doesn't work correctly with DomainRenamer - https://github.com/amaranth-lang/amaranth/issues/372#issuecomment-1410104361
<_whitenotifier-9> [amaranth] whitequark closed issue #372: asserts.Past doesn't work correctly with DomainRenamer - https://github.com/amaranth-lang/amaranth/issues/372
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 2 commits to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/64b96e143b31...aaec7e0d276b
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 2ca421d - back.rtlil: add assertions guarding against $\d+ port names.
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark aaec7e0 - tracer: return default name on unrecognized opcode.
<_whitenotifier-9> [amaranth] whitequark closed issue #733: Ports named $\d+ are unsound - https://github.com/amaranth-lang/amaranth/issues/733
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±26] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/23126313ead8...c3703824cd25
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark c370382 - Deploying to main from @ amaranth-lang/amaranth@aaec7e0d276b88dfb08e5f6bcb1db5279ceca242 🚀
<_whitenotifier-9> [amaranth] whitequark opened issue #741: Remove the `nmigen.*` transitionary packages - https://github.com/amaranth-lang/amaranth/issues/741
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 2 commits to main [+0/-0/±13] https://github.com/amaranth-lang/amaranth/compare/aaec7e0d276b...29502442fba9
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 309f647 - Update documentation and changelog to reflect existing changes.
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 2950244 - hdl.ast: remove Shape<>tuple casts.
<_whitenotifier-9> [amaranth] whitequark closed issue #691: Remove interpretation of shapes as (int, bool) tuples - https://github.com/amaranth-lang/amaranth/issues/691
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±35] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/c3703824cd25...d79c8e4d6bc3
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark d79c8e4 - Deploying to main from @ amaranth-lang/amaranth@29502442fba903f3476b9fcecc77153e6b54dfd4 🚀
<whitequark> it's official: as of yesterday, I'm working full time on Amaranth together with Chipflow (https://chipflow.io)
<whitequark> you can expect a faster pace of development, much anticipated features being shipped, weekly meetings once again, and more
<adamgreig[m]> congrats!
<whitequark> to be clear, Amaranth remains an independent, community driven open source project; nothing actually changes there other than my contributions now being (c) Chipflow
<adamgreig[m]> are you all moved? hope it went ok!
<d1b2> <TheZoq2> 🎉
<Sarayan> wq: excellent
<Sarayan> you moved to uk or somewhere else?
<Sarayan> -soc question: I see classes to handle a "bare" wishbone bus and structures for a csr bus build on top of it. What's a csr bus in that context?
<whitequark> Sarayan: control/status registers
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-64/±4] https://github.com/amaranth-lang/amaranth/compare/29502442fba9...f133646e9bfc
<whitequark> as opposed to more general MMIO, like accessing blocks of memory on the bus
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark f133646 - Remove all remaining code references to `nmigen` and the namespace.
<_whitenotifier-9> [amaranth] whitequark closed issue #741: Remove the `nmigen.*` transitionary packages - https://github.com/amaranth-lang/amaranth/issues/741
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±29] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/d79c8e4d6bc3...65d5be85216c
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark 65d5be8 - Deploying to main from @ amaranth-lang/amaranth@f133646e9bfc0250cb9d911cfbfd4f14cdce0937 🚀
<_whitenotifier-9> [amaranth] whitequark commented on issue #682: Using Enum as FSM state does not respect the Enum value - https://github.com/amaranth-lang/amaranth/issues/682#issuecomment-1410411459
<Sarayan> wq: ok, what does it mean in practice, what does that specific set of classes provide over the whole bus? The code is a tad opaque :-)
<whitequark> if you have a bunch of simple registers in a peripheral (think an UART or a timer or something) then you don't need the whole set of Wishbone bus signals
<whitequark> in addition, you might want to e.g. have 64 bit peripheral registers even on a 8 bit Wishbone bus
<whitequark> the CSR to Wishbone translator handles all that
<Sarayan> csr to wishbone or wishbone to csr?
<whitequark> wishbone initiator to csr target
<whitequark> so your peripheral speaks CSR and then in your SoC you have CSR to Wishbone or AXI4 or something translator
<Sarayan> my current use case is taking a minerva core (riscv with two wishbone masters) and plonking things it its memory map (on-die ram for boot instructions, sram and dram on the board, smattering of peripherals and eventually the structures I want to test)
<Sarayan> (the structures being neural networks, GRU to be precise, AI is fun :-)
<whitequark> so you want on-die RAM to be on the Wishbone bus, some sort of SRAM/DRAM controller on the Wishbone bus, and the bunch of peripherals on the CSR bus
<Sarayan> okay
<Sarayan> that makes sense
<Sarayan> when I'm done I need to write all that down with examples in a doc to put in amaranth-soc
<whitequark> I'm going to be writing that doc most likely
<Sarayan> that would be nice, the doc really needs to exist in any case :-)
<whitequark> in general I'm quite particular about how I want the docs to look like, so unless you're willing to do a lot of back-and-forth or are fine with just a full rewrite without it even being merged probably don't bother
<whitequark> at some point I'm going to document how I want the documentation to look like
<Sarayan> no problem :-)
<Sarayan> that would make sense
<Sarayan> ok, so now lemme try to do what you way
<_whitenotifier-9> [amaranth] whitequark commented on issue #384: Catch matching on an enum of the wrong type - https://github.com/amaranth-lang/amaranth/issues/384#issuecomment-1410451875
<_whitenotifier-9> [amaranth] whitequark closed issue #384: Catch matching on an enum of the wrong type - https://github.com/amaranth-lang/amaranth/issues/384
<_whitenotifier-9> [amaranth] whitequark reopened issue #384: Catch matching on an enum of the wrong type - https://github.com/amaranth-lang/amaranth/issues/384
<_whitenotifier-9> [amaranth] whitequark commented on issue #384: Emit a warning when matching a signal with an enum decoder with enum values of wrong type - https://github.com/amaranth-lang/amaranth/issues/384#issuecomment-1410453298
<Sarayan> wq: the glasgow page says to follow you on twitter... I think it's more cohost now?
<whitequark> i use both
lofty has left #amaranth-lang [#amaranth-lang]
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-0/±4] https://github.com/amaranth-lang/amaranth/compare/f133646e9bfc...7044e091106e
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 7044e09 - hdl.ast: remove Shape<>tuple comparisons.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±26] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/65d5be85216c...0d7834ed322a
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark 0d7834e - Deploying to main from @ amaranth-lang/amaranth@7044e091106ee3a1d477ee53df84f8f0738fbd32 🚀
feldim2425 has quit [Ping timeout: 248 seconds]
feldim2425 has joined #amaranth-lang
<Sarayan> ah great, minerva doesn't talk amaranth_soc.wishbone.Interface
<whitequark> IIRC it should?
<Sarayan> TypeError: Initiator bus must be an instance of wishbone.Interface, not (rec ibus adr dat_w dat_r sel cyc stb ack we cti bte err)
<Sarayan> looks like lambdasoc wraps it?
<whitequark> hm
<whitequark> ok yeah looks like there's some legacy code
<Sarayan> with so many repositories it's not really surprising
<whitequark> yeah okay that still uses Records, hmm
<whitequark> ideally minerva itself would be upgraded
<Sarayan> that's what would make the most sense
<tpw_rules> what is the sequel to records again?
<whitequark> there are two
<Sarayan> note that amaranth-soc's interface is a record too
<Sarayan> class Interface(Record):
<Sarayan> """Wishbone interface.
<whitequark> one is https://github.com/amaranth-lang/amaranth/issues/693, the other is interfaces
<tpw_rules> ok, that RFC is the one i was remembering
<whitequark> interfaces aren't in yet
<whitequark> Record is getting deprecated in 0.4 and removed shortly after (though maybe not in 0.5)
<Sarayan> ah, so there's no replacement
<whitequark> no direct replacement
<Sarayan> is amaranth-soc the libc of amaranth? as in, one is supposed to be able to rely on it existing?
<whitequark> instead of Record, you use either amaranth.lib.data.*, or amaranth.lib.intf.* (which isn't defined by an RFC yet)
<whitequark> re amaranth-soc: the libc is amaranth.lib (it has the same role)
<Sarayan> so the wishbone stuff for instance will eventually be in amaranth.lib?
<whitequark> amaranth_soc is built on top of that, it's implemented in a HDL rather than a part of the HDL
<whitequark> no
<whitequark> a Wishbone interface (lives in amaranth_soc) is a kind of a language-level interface (lives in amaranth.lib)
<whitequark> you can of course always depend on amaranth_soc the same way you can depend on anything else
<whitequark> and it comes with the same high standards for quality and reliability
<whitequark> but it's not a part of the language proper because it doesn't need to be
<Sarayan> let's say it's your posix? ;-)
<whitequark> amaranth_soc releases can be done independently and if needed a lot faster
<Sarayan> libraries tend to move faster than the base language anyway
<whitequark> sorta. there's also amaranth_stdio, which is currently very bare
<Sarayan> yeah, I'm not sure I understand yet what stdio is for, but that will come as it's developed I guess
<whitequark> the idea is that you can use bare protocol primitives from amaranth_stdio if you want for example just an UART or SPI interface
<whitequark> and amaranth_soc has Wishbone/AXI4/... interconnect specifically
<whitequark> so amaranth_soc is for things you attach to a CPU
<Sarayan> while you're here, do you handle rom init with quartus or will I have to add it?
<whitequark> uhhh
<whitequark> I think it should work
<Sarayan> (it's annoying because it's not in the griddin' verilog)
<Sarayan> friggin'
<whitequark> hm
<whitequark> does quartus just not support initial statements for rom init?
<tpw_rules> iirc it does?
<Sarayan> I'll check, but I'm not sure it does
<Sarayan> I'll know soon I hope anyway :-)
<whitequark> I thought it was just slow
<tpw_rules> i've definitely targeted amaranth designs to quartus with ROMs without disaster
<tpw_rules> one thing it doesn't do iirc is being able to update roms without recompiling the whole design
<Sarayan> So ideally minerva would use primites from amaranth-soc, and those will follow when Records are out?
<Sarayan> tpw: excellent
<Sarayan> primitives
<whitequark> re minerva: yes
<Sarayan> ok
<Sarayan> since I finagled playing with amaranth for work, I have more time to try that kind of stuff :-)
<whitequark> ah neat!
<Sarayan> it's just one of my numerous work projects, but I least I have fun :-)
<Sarayan> but I'm not at all used to playing with it for something different than emulation
<Sarayan> we're comparing a analog vlsi implementation of a GRU with a fpga version (and a C version on pi, but I have someone else doing that one)
<Sarayan> the hope being that the analog version is the best, so I have zero qualms into plonking a cpu in there
<whitequark> oh interesting
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/7044e091106e...de8846ea848a
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark de8846e - Update README.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±26] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/0d7834ed322a...c98d5bb343b8
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark c98d5bb - Deploying to main from @ amaranth-lang/amaranth@de8846ea848a1dcab0e8e6d6d46b90aa6d097d19 🚀
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/de8846ea848a...7bf15bc466b4
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 7bf15bc - back.rtlil: do not add `src` attribute to cases if emit_src=False.
<_whitenotifier-9> [amaranth] whitequark closed issue #706: `emit_src=False` doesn't work for verilog backend - https://github.com/amaranth-lang/amaranth/issues/706
<_whitenotifier-9> [amaranth] whitequark commented on issue #706: `emit_src=False` doesn't work for verilog backend - https://github.com/amaranth-lang/amaranth/issues/706#issuecomment-1410924773
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±26] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/c98d5bb343b8...d158feac49af
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark d158fea - Deploying to main from @ amaranth-lang/amaranth@7bf15bc466b428f5c402365d79222122f90f1447 🚀
<_whitenotifier-9> [amaranth] whitequark closed issue #657: Support platform specific output in a single file - https://github.com/amaranth-lang/amaranth/issues/657
<_whitenotifier-9> [amaranth] whitequark commented on issue #657: Support platform specific output in a single file - https://github.com/amaranth-lang/amaranth/issues/657#issuecomment-1410939619
<bl0x> whitequark: congratulations to the new job! Yay
<whitequark> thank you!
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+1/-0/±2] https://github.com/amaranth-lang/amaranth/compare/7bf15bc466b4...db509db0b1bf
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark db509db - Add PEP 518 `pyproject.toml`.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±29] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/d158feac49af...9d90e05ef009
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark 9d90e05 - Deploying to main from @ amaranth-lang/amaranth@db509db0b1bf63aa77e9a2552d0986c9b0472e0d 🚀
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+1/-0/±2] https://github.com/amaranth-lang/amaranth/compare/db509db0b1bf...47551e8c713a
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 47551e8 - Add PEP 518 `pyproject.toml`.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±24] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/9d90e05ef009...df1555feb7af
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark df1555f - Deploying to main from @ amaranth-lang/amaranth@47551e8c713a90f2656e41ca07f8197ee6a3d771 🚀
Guest61 has joined #amaranth-lang
<Guest61> wow, way more twitter mutuals than i'd have assumed here
<Guest61> nice
<_whitenotifier-9> [amaranth] whitequark commented on issue #574: Add support for Polarfire FPGAs - https://github.com/amaranth-lang/amaranth/issues/574#issuecomment-1410975669
<_whitenotifier-9> [amaranth] whitequark closed issue #574: Add support for Polarfire FPGAs - https://github.com/amaranth-lang/amaranth/issues/574
Guest61 has left #amaranth-lang [#amaranth-lang]
<Sarayan> I can't plonk a 32-bits wide WishboneCSRBridge in a 32-bits wishbone bus if the granularity of the latter bus is 8?
<whitequark> that sounds like a bug or oversight
<Sarayan> I don't see a way to give a granularity to the bridge
<Sarayan> well, it uses the width of the mux
<Sarayan> so that means I can't have registers larger than a byte if the cpu has byte granularity
<Sarayan> that's annoying
FireFly has joined #amaranth-lang
<Sarayan> I guess I'm not going to use csr for now
<cr1901> whitequark: https://github.com/amaranth-lang/amaranth/issues/526#issuecomment-1410100625 "Amaranth developers looking to use formal property verification [] do not use any functionality can use" is there a word or two missing at the spot where I put brackets?
<cr1901> I've tried reading it several times and I don't understand what the sentence is supposed to say
<whitequark> one sec
<whitequark> Sarayan: can you open an issue, please?
<whitequark> cr1901: editing error, fixed now
<Sarayan> whitequark: no problem, on -soc?
<cr1901> tyvm
<whitequark> Sarayan: yes
<Sarayan> actually, I may have been plain wrong
<Sarayan> maybe it's just possible to put a 4-byte wide register in the byte-wide mux
<Sarayan> it's starting to look so at least
<Sarayan> Damn it's compiling
<whitequark> nice!
<Sarayan> indeed
<Sarayan> I'll try it tomorrow though, I suspect debugging is going to be "interesting"
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-7/±8] https://github.com/amaranth-lang/amaranth/compare/47551e8c713a...5a79c351e30b
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 5a79c35 - Remove features deprecated in version 0.3.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±29] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/df1555feb7af...03558bef5bfc
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark 03558be - Deploying to main from @ amaranth-lang/amaranth@5a79c351e30b5741fbc07c7dbb44cdfecc7e5a44 🚀
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-0/±2] https://github.com/amaranth-lang/amaranth/compare/5a79c351e30b...910273827408
<_whitenotifier-9> [amaranth-lang/amaranth] whitequark 9102738 - Update authorship notice.
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark pushed 1 commit to main [+0/-0/±26] https://github.com/amaranth-lang/amaranth-lang.github.io/compare/03558bef5bfc...19e07e246c7c
<_whitenotifier-9> [amaranth-lang/amaranth-lang.github.io] whitequark 19e07e2 - Deploying to main from @ amaranth-lang/amaranth@9102738274082ea4303438cc2365b1bbbedbbd09 🚀