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
<tpw_rules> you have to read the peripheral register in its entirety from low to high addresses for everything to work right
<cr1901> Right, I forgot about that. Don't have the branch checked out, but presumably if I do 8-bit reads to r0 except for the byte that I want, it has the same effect as doing a one byte read
<tpw_rules> i don't quite understand. i think the read of the lowest byte latches the remaining bytes into an internal register
<cr1901> Then I don't need to read the reg in its entirety? Just the low byte and the byte I actually want?
<tpw_rules> that's an implementation detaio
<zyp[m]> probably, but that sounds silly
<tpw_rules> detail
<zyp[m]> why would you spend logic resources on getting atomic registers, and then write software that works around it?
<cr1901> (I don't want actually want atomic registers; non-atomic ones won't be added)
<zyp[m]> «don't make registers wider than the bus» is a straight forward way to avoid the whole issue
<cr1901> Yea, so that's back to the "make a second GPIO peripheral", which is non-ideal for "reasons that only apply to the attosoc example in Sentinel", but is otherwise a good idea :)
<cr1901> (I allow the demo to select between a completely-wishbone or wishbone-plus-CSR SoC. The same firmware works unmodified on both. Requiring a second GPIO peripheral breaks that.)
<cr1901> But anyway, the demo hasn't worked on icestick/fit into 1280 LUTs for months, so maybe I should just give up on that.
<zyp[m]> how does a 32b CSR bus work out? you save the width conversion logic, but lose more than the savings elsewhere?
<cr1901> Never tried it, actually
<cr1901> The bigger-than-bus-width thing didn't rear its head until yesterday, so I set it to 8 and forgot about it
<zyp[m]> you could try it, and then get annoyed by https://github.com/amaranth-lang/amaranth-soc/issues/97 instead :)
<cr1901> Let's not and say we did :)
lf has quit [Ping timeout: 248 seconds]
lf has joined #amaranth-lang
Degi has quit [Ping timeout: 276 seconds]
Degi has joined #amaranth-lang
<cr1901> >the demo hasn't worked on icestick/fit into 1280 LUTs for months <-- finally figured out an easy way to fix this; increase UART speed. Decreases divisor width significantly
richardeoin has quit [Ping timeout: 252 seconds]
richardeoin has joined #amaranth-lang
<_whitenotifier> [nextpnr] threonyl commented on issue #16: YoWasp gowin_pack does not finish - https://github.com/YoWASP/nextpnr/issues/16#issuecomment-2745140835
frgo has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
jorolf[m] has quit [Quit: Idle timeout reached: 172800s]
eigenform[m] has quit [Quit: Idle timeout reached: 172800s]
<zyp[m]> I guess the «remote SSH strategy» won't work against a windows machine?
<zyp[m]> I'd like to try out some stuff on the certuspro-nx-evn I've had collecting dust on a shelf for a couple of years, and the easiest place I could install radiant is a windows box…
<zyp[m]> any linux boxes I've got are both headless and less beefy…
<whitequark[cis]> <zyp[m]> "I guess the «remote SSH strategy..." <- not unless you use WSL i think
<zyp[m]> can WSL call windows .exes?
Hoernchen has quit [Ping timeout: 248 seconds]
<zyp[m]> ah, yeah, seems worth a try then
Hoernchen has joined #amaranth-lang
<cr1901> The MSYS2 SSHD also _might_ work, but requires a bit of setup
balrog has quit [Ping timeout: 268 seconds]
balrog has joined #amaranth-lang