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
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 244 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 252 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 248 seconds]
Hoernchen has joined #amaranth-lang
<_whitenotifier-3> [rfcs] adamgreig opened pull request #72: Add LFSR generator to standard library - https://github.com/amaranth-lang/rfcs/pull/72
<_whitenotifier-3> [rfcs] adamgreig edited pull request #72: Add LFSR generator to standard library - https://github.com/amaranth-lang/rfcs/pull/72
Degi_ has joined #amaranth-lang
Degi has quit [Ping timeout: 260 seconds]
Degi_ is now known as Degi
<_whitenotifier-3> [amaranth] whitequark commented on pull request #1475: docs/stdlib/fifo: document fifo stream interfaces - https://github.com/amaranth-lang/amaranth/pull/1475#issuecomment-2268115509
<key2> how can I have a pin that is an IO, but only use DDRBuffer on the input part, and not the output ?
<_whitenotifier-3> [amaranth] purdeaandrei commented on pull request #1475: docs/stdlib/fifo: document fifo stream interfaces - https://github.com/amaranth-lang/amaranth/pull/1475#issuecomment-2268600902
Hoernchen has quit [Ping timeout: 248 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 272 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 272 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 245 seconds]
Hoernchen has joined #amaranth-lang
<whitequark[cis]> <key2> "how can I have a pin that is..." <- assign .o to x.replicate(2)
<key2> that would mean that it would still go through the DDR, and have a delay. Unless I didn't understand well your answer
zyp[m] has joined #amaranth-lang
<zyp[m]> yes, it'll still be registered
<zyp[m]> I think you'll have to piece together vendor primitives to get what you want, assuming the platform you're using even supports it
<key2> I could in fact do it with the primitive of the vendor (GOWIN has a ODDR/IDDR)
oter has quit [Remote host closed the connection]
oter has joined #amaranth-lang
<whitequark[cis]> (that said--without having read the code--I think synchronizing between processes is potentially a valid use case and the way you'd go about it currently is using Signal edges as sync primitives)
<zyp[m]> if you've got one process that's generating a clock and another process that's simulating logic on that clock, then the second process should be triggered by the edges generated by the first process, and that relationship would give you an inherent execution order
<zyp[m]> and yeah, explicit sync signals should work too
<zyp[m]> simulate_fake_clock() is an endless loop that never returns, so fn() would never get called
jfng[m] has joined #amaranth-lang
<jfng[m]> mildly related: when using signals to synchronize between testbenches, is there a way to make them appear in the VCD ?
<jfng[m]> such signals are only accessed by simulation logic, not by the RTL design
<whitequark[cis]> put them in traces=[]
<jfng[m]> missed that, thanks
indy has quit [Ping timeout: 245 seconds]
indy_ has joined #amaranth-lang
indy_ is now known as indy
<mcc111[m]> <zyp[m]> "> <@mcc111:matrix.org> so, i..." <- one of my processes is generating the clock used by the other, because i'm in an unusual situation where `add_clock` is not available.
<zyp[m]> sure, but that shouldn't matter
<zyp[m]> any process triggered by a clock edge would necessarily execute after the process generating that edge
<mcc111[m]> <zyp[m]> "simulate_fake_clock() is an..." <- so i thought python async was supposed to work like generators/coroutines
<mcc111[m]> and i hoped one await would run until one await and then vice versa. i may be mixing up multiple generations of python async :(
<zyp[m]> they are coroutines, but doesn't work like you imagine
<mcc111[m]> s/await/yield/
<mcc111[m]> are the amaranth processes supposed to be async def at all? those were defs until i started fiddling with it yesterday
<mcc111[m]> asked a different way, are async and yield paired?
<zyp[m]> the new simulator interface makes them all async
<mcc111[m]> mcc111[m]: if the answer to this is no then that's great because i know which documentation to read to learn what python concept i have wrong :P
<zyp[m]> only async functions can use await
<mcc111[m]> zyp[m]: "new" is this last month?
<zyp[m]> await roughly replaces the use of yield in the old simulator interface
<mcc111[m]> okay
<mcc111[m]> so i'm not just acting arbitrarily, something actually did change
<zyp[m]> yes, RFC 36 happened
<mcc111[m]> if my goal is to upgrade code from pre- to post- RFC 36, would reading RFC 36 likely be enlightening in a way that the current simulator docs would not?
<zyp[m]> the simulator docs were written after RFC 36 and documents the new interface, and should be a better resource than the RFC itself
<mcc111[m]> ok
<mcc111[m]> <zyp[m]> "if you've got one process that's..." <- ok i see how this would work now
<whitequark[cis]> there will be no formal meeting today (I need rest) but I encourage everyone to discuss the latest RFC PR, the LFSR proposal
<whitequark[cis]> I actually haven't looked at it yet, but I do know that I'm excited to use it
antoinevg[m] has joined #amaranth-lang
<antoinevg[m]> Stupid-amaranth-soc-QuestionMondays:... (full message at <https://catircservices.org/_matrix/media/v3/download/catircservices.org/HOxpdEPOBduvqIcQFrsGjQIR>)
<jfng[m]> this is normal, all fields of the register are updated on a write
<jfng[m]> also, csr writes are atomic, so if you have a 32b register behind an 8b CSR bus, then the written values are buffered until the last 8b write (to the upper address), then the register gets updated atomically
<antoinevg[m]> Cool, tx jfng !
toshywoshy has quit [Read error: Connection reset by peer]
toshywoshy has joined #amaranth-lang
nyanotech has quit [Remote host closed the connection]
nyanotech has joined #amaranth-lang
skipwich has quit [Ping timeout: 276 seconds]
skipwich has joined #amaranth-lang
bl0x[m] has quit [Quit: Idle timeout reached: 172800s]
Hoernchen has quit [Ping timeout: 252 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 252 seconds]
Hoernchen_ has joined #amaranth-lang
Hoernchen_ has quit [Ping timeout: 260 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen_ has joined #amaranth-lang
Hoernchen has quit [Ping timeout: 260 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen_ has quit [Ping timeout: 260 seconds]
Hoernchen has quit [Ping timeout: 260 seconds]
Hoernchen has joined #amaranth-lang
Hoernchen has quit [Quit: meh.]
Hoernchen has joined #amaranth-lang