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.catirclogs.org/amaranth-lang · Matrix #amaranth-lang:matrix.org
_whitelogger has joined #amaranth-lang
Degi has quit [Ping timeout: 260 seconds]
Degi has joined #amaranth-lang
cr1901 has quit [Read error: Connection reset by peer]
<anuejn> what is the reason that in lib.io.DDRBuffer the o[1] bit follows the o[0] bit in time but in the input direction, the i[0] bit follows the i[1] bit?
<anuejn> that seems kinda like a footgun to me?
<anuejn> like why are [0] and [1] swapped for input and output?
<whitequark[cis]> they're not
<whitequark[cis]> x[0] is rising edge, x[1] is falling edge
<anuejn> huh, I see
<whitequark[cis]> the reason the diagram appears to be shifted by a half-cycle is because this is what happens if you capture your own data using a DDR buffer
<whitequark[cis]> which isn't the entire story, but is good for illustrating the counterintuitive nature of these things
<whitequark[cis]> well it's also just hard to illustrate these things concisely and well
<anuejn> yeah, I fell for the trap :D
<whitequark[cis]> basically, when you output data on rising edge at cycle N, you will capture it at the falling edge in the same cycle, but falling edge has a one cycle delay
<whitequark[cis]> this is just what it means to have a DDR buffer
ydnatag[m] has joined #amaranth-lang
<ydnatag[m]> Related to this topic, is there any way to chango the io buffer after you requested the resource? I don’t want the end user of the amaranth library I'm working on to care about if one core use or not ddr, so I prefer to request with normal buffers and then change them in the core. What do you think about this?
<anuejn> yeah I understand, I just did not notice the shift of the `port` signal and was thus confused
<anuejn> sorry for the noise
<zyp[m]> you request it without buffers and use lib.io
<whitequark[cis]> requesting with any direction except for dir="-" is deprecated and will be removed soon
<whitequark[cis]> so your desired workflow is going to be the only one
<ydnatag[m]> Sounds good! In that case, would the resouce definition keep the io direction to do some checks?
<whitequark[cis]> yes
<zyp[m]> I suggest reading RFC 53 and 55 for the details :)
<ydnatag[m]> I will, Thank!
<whitequark[cis]> no meeting today, too tired to conduct it
cr1901 has joined #amaranth-lang
annabelle_adelai has joined #amaranth-lang
balrog has quit [Ping timeout: 248 seconds]
balrog has joined #amaranth-lang
annabelle_adelai has quit [Quit: Client closed]
<cr1901> Can the IRC bot be restarted? It looks like it's not echoing msgs from Matrix side since yesterday
<cr1901> Oh wait nevermind, I'm missing logs from that time. Must be my own client issue. Please ignore.
adamgreig[m] has quit [Quit: Idle timeout reached: 172800s]