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> [YoWASP/nextpnr] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/nextpnr/compare/eb01a3f036ba...06e10aec4f25
<_whitenotifier> [YoWASP/nextpnr] whitequark 06e10ae - Update dependencies.
lf has quit [Ping timeout: 252 seconds]
lf has joined #amaranth-lang
<_whitenotifier> [YoWASP/yosys] whitequark pushed 1 commit to develop [+0/-0/±1] https://github.com/YoWASP/yosys/compare/414475460dfc...83a979589837
<_whitenotifier> [YoWASP/yosys] whitequark 83a9795 - Update dependencies.
bl0x has quit [Ping timeout: 252 seconds]
bl0x has joined #amaranth-lang
<lsneff> I found a paper from a few years ago that shows how it's possible to overload python's control flow constructs. I implemented a POC (https://gist.github.com/lachlansneff/49c463b536859496c84f3d7af326a8eb). If expanded upon, this would provide a way to use `if` and `match` instead of `with m.If(...)` and `with m.Switch(...)`.
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 240 seconds]
Degi_ is now known as Degi
<tpw_rules> at that point you're just using myhdl
<lsneff> I’ve never used myhdl; I assume it had some significant shortcomings?
<lsneff> Oh wow, so it’s literally verilog but python
<cr1901> I don't claim to understand the rationale, but compared to migen, context managers for control flow were one thing explicitly added. I doubt wq would want to remove them even putting aside how it's a breaking change
<tpw_rules> i remember when i first learned amaranth i proposed a similar patch to use python's native syntax more closely
<tpw_rules> but then i realized that a) there's myhdl if you want it and b) i think the context manager and having separate syntax approach is kind of ugly, but useful and clear
<tpw_rules> it's obvious what is and isn't hdl, and makes you more naturally think of more powerful things
chiastre has quit [Ping timeout: 268 seconds]
<tpw_rules> idk, maybe interlacing amaranth and python control structures is cursed
<tpw_rules> but it's probably more cursed in myhdl
<d1b2> <dragonmux> our take is that the context manager approach makes sense to clearly delineate the DSL so there are no restrictions on Python control flow and therefore no restrictions on the generative/meta-programming aspect of Amaranth that so dearly benefits it
<tpw_rules> i think that's a nice way to put it
chiastre has joined #amaranth-lang
balrog has quit [Ping timeout: 250 seconds]
balrog has joined #amaranth-lang
<_whitenotifier> [amaranth-lang/amaranth] whitequark pushed 1 commit to main [+0/-0/±1] https://github.com/amaranth-lang/amaranth/compare/4dea0b2d0f4d...1f1d1894413f
<_whitenotifier> [amaranth-lang/amaranth] whitequark 1f1d189 - build.run: pipeline SFTP operations to improve performance.
<_whitenotifier> [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/63ed36148c0f...9e836de09075
<_whitenotifier> [amaranth-lang/amaranth-lang.github.io] whitequark 9e836de - Deploying to main from @ amaranth-lang/amaranth@1f1d1894413f6aca3ea8792f5e5f87ce3a070191 🚀
peeps[zen] is now known as peepsalot
<Sarayan> lsneff: one other aspect of leaving native python as-is is that you can write code generators inline without wondering if there's going to be bad interactions
<d1b2> <dave berkeley> I was just looking at streams. I have a Litex SoC that I want to integrate my amaranth code into, plus some legacy VHDL. So, for now, I probably want to talk to my new SPI device via a Litex stream. I look forward to the day when I can work entirely in Amaranth. Is there a roadmap for the migration? Also : CXXRTL was invaluable for understanding the legacy VHDL. These tools are excellent.
<lsneff> All that makes sense. In this case, it doesn’t just assume all control flow is something that would happen on the fpga, so you don’t get weird restrictions, but it true that it wouldn’t be as clear anymore
<Degi> For example with match case you can't generate the cases with a for loop
<Degi> At least python gives me a syntax error when I do match 3: for i in range(4):
<lsneff> Oh good point
jess has quit []
<key2> miek: with some more sniffing, I can tell you that the modification you made can sometimes (very rarely) discard en entire packet (in my case of 512 bytes). Any hint ?
toshywoshy has quit [Ping timeout: 252 seconds]
toshywoshy has joined #amaranth-lang
toshywoshy has quit [Ping timeout: 256 seconds]
toshywoshy has joined #amaranth-lang
<Sarayan> PathFinder is really interesting, it's implemented in nextpnr?
cr1901 has quit [Read error: Connection reset by peer]
cr1901_ has joined #amaranth-lang
lambda has quit [Quit: WeeChat 3.4]
lambda has joined #amaranth-lang
cr1901_ has quit [Ping timeout: 240 seconds]
cr1901 has joined #amaranth-lang
jesopo has joined #amaranth-lang
Wolfvak has quit [Quit: ZNC - https://znc.in]
jesopo is now known as jess
Wolfvak has joined #amaranth-lang
Wolfvak has joined #amaranth-lang
Wolfvak has quit [Changing host]
Wolfvak has quit [Quit: ZNC - https://znc.in]
Wolfvak has joined #amaranth-lang
<key2> ok found the error
<key2> will submit a patch