<jfng[m]1>
<whitequark[cis]> "I think that might actually be..." <- do you mean that e.g. `s = Signal(StructLayout({"foo": 1}), reset={"foo": Const(0)})` should work ?
urja has quit [Read error: Connection reset by peer]
urja has joined #amaranth-lang
<galibert[m]>
you use yosys to go from rtlil to verilog?
<Wanda[cis]>
yeah
<galibert[m]>
Makes sense, but also feels like hitting a nail with a 100t press
<Wanda[cis]>
amaranth emits RTLIL (yosys IR), then runs a yosys process with the verilog emitter
<Wanda[cis]>
well... turns out that emitting Verilog is non-trivial undertaking
<Wanda[cis]>
yosys doesn't do it that well either, people keep finding bugs in it
<galibert[m]>
I would have thought it was way simpler in the specific case of generating for amaranth-created rtlil
<galibert[m]>
Of course the ultimate solution is getting rid of verilog in the first place :-)
<Wanda[cis]>
<galibert[m]> "I would have thought it was..." <- it is, a bit
<Wanda[cis]>
but Verilog has more than enough traps to fall into
<galibert[m]>
I suspect this "bit" is load-bearing?
<Wanda[cis]>
and the plan was to deal with them in one place
<galibert[m]>
That's a smart approach
jjsuperpower has joined #amaranth-lang
jess has joined #amaranth-lang
<whitequark[cis]>
galibert[m]: migen had an **incredible** amount of bugs around emitting Verilog
<whitequark[cis]>
using Yosys got Amaranth quite far
<whitequark[cis]>
but it is now at the point where Yosys has outlived its usefulness in this particular role
<galibert[m]>
heh
<galibert[m]>
I have a feeling migen had/has an incredible amount of bugs, period
<whitequark[cis]>
mostly because Amaranth is well out of its initial "experimental tool done in a week" niche
<whitequark[cis]>
e.g. emitting memory initializers for some toolchains needs to be done with special care
<whitequark[cis]>
right now memory initializers just don't work with Diamond
<whitequark[cis]>
galibert[m]: yes. and you can see how many of them were fixed in Amaranth cuz there's a tag in the migen repo :p
<whitequark[cis]>
wait... why am I talking to you, another Matrix user, via IRC?
<galibert[m]>
Yeah, I guess custom verilog generation is going to be a requirement for quality support of all the toolchains out there
<whitequark[cis]>
oh I see, you're in the old Matrix room
<galibert[m]>
there's a new one?
<whitequark[cis]>
yes. same alias (#amaranth-lang:matrix.org)
<whitequark[cis]>
the new one is administered by me and not Element Matrix Services (the people who maintain the libera.chat homeserver, somewhat badly)
galibert[m]1 has joined #amaranth-lang
<whitequark[cis]>
and the IRC bridge is also now administered by me, which is why it works considerably better
galibert[m] has left #amaranth-lang [#amaranth-lang]
<galibert[m]1>
Magic
<whitequark[cis]>
\o/
<whitequark[cis]>
yeah remember the message drops?
<whitequark[cis]>
those are gone, and will likely never happen again
<galibert[m]1>
I sure do
<galibert[m]1>
that bridge was quantum
<galibert[m]1>
it may or may not work, you'll never know until you observe it
<whitequark[cis]>
after talking to the parties involved I have concluded that it was the result of an organizational incompetence and I have to work around it