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
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 260 seconds]
cr1901_ is now known as cr1901
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 255 seconds]
sagepolyester[m] has joined #amaranth-lang
<sagepolyester[m]> I have a DSP pipeline that im trying to simulate right now that uses this basic test bench currently:... (full message at <https://catircservices.org/_irc/v1/media/download/AacGhMryg83RcHAgNwgc8BZmauAJDJSR4ncucDtH0VFZQu2KHyBrg75pvqV6W8JbZk2yVIlZ91ee72ADPVxFBSpCeS0RjyCAAGNhdGlyY3NlcnZpY2VzLm9yZy9wSHZPQ3JvZkVxVXd2T2tVY1dBTG5FUlc>)
frgo has joined #amaranth-lang
<sagepolyester[m]> is it as simple as adding another non-critical test bench that just awaits the clock edge and grabs a sample when the stream is ready+valid?
<whitequark[cis]> sagepolyester[m]: yeah that should work just fine
frgo has quit [Ping timeout: 260 seconds]
<sagepolyester[m]> 🤩
Degi has quit [Ping timeout: 252 seconds]
Degi has joined #amaranth-lang
peepsalot has quit [Remote host closed the connection]
peepsalot has joined #amaranth-lang
FFY00 has joined #amaranth-lang
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 244 seconds]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 245 seconds]
FFY00 has quit [Ping timeout: 245 seconds]
FFY00_ has joined #amaranth-lang
meinhard[m] has joined #amaranth-lang
<meinhard[m]> I found it quite convinced to inherit from DUT and add all simulation-only logic to the derived class.
<meinhard[m]> Is there any possibility to assert on the current state of a FSM (e.g. `assert ctx.get(dut.m.fsm.ongoing("state_a"))`). I figured out that the FSM is added to `self._generated` (`self._generated[name] = fsm = FSM(fsm_data)`), but can I access it from the testbench?
<meinhard[m]> s/convinced/convenient/
<meinhard[m]> * I found it quite convenient to inherit from DUT and add all simulation-only logic to the derived class.
<meinhard[m]> Is there any possibility to assert on the current state of a FSM (e.g. `assert ctx.get(dut.m.fsm.ongoing("state_a"))`). I figured out that the FSM is added to `self._generated` (`self._generated[name] = fsm = FSM(fsm_data)`), but can I access it from the testbench? edit: convenient
<meinhard[m]> s/convinced/convenient/
FFY00 has joined #amaranth-lang
FFY00_ has quit [Ping timeout: 276 seconds]
<_whitenotifier-4> [amaranth] rroohhh opened issue #1538: Document FIFO properties - https://github.com/amaranth-lang/amaranth/issues/1538
<vup> meinhard[m]: if you store the fsm object you can use the `fsm.ongoing` function somewhere else: https://paste.niemo.de/raw/emivequsaj.py
<meinhard[m]> fantastic, thanks.
<_whitenotifier-4> [amaranth] gatecat opened issue #1539: Iterating over `View`s of structures - https://github.com/amaranth-lang/amaranth/issues/1539
nyanotech has quit [Remote host closed the connection]
nyanotech has joined #amaranth-lang
mwk has joined #amaranth-lang
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 252 seconds]
frgo has joined #amaranth-lang
Ekho has quit [Quit: CORE ERROR, SYSTEM HALTED.]
frgo has quit [Remote host closed the connection]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 245 seconds]
frgo has joined #amaranth-lang
frgo has quit [Remote host closed the connection]
Ekho has joined #amaranth-lang
jorolf[m] has joined #amaranth-lang
<jorolf[m]> Apparently you can't use AsyncFIFOs with falling edge clock domains? Are there any downsides to instead inverting the clock signal of my domain? Or is there a better way?
<jorolf[m]> * Apparently you can't use AsyncFIFOs with falling edge clock domains? Are there any downsides to inverting the clock signal of my domain instead? Or is there a better way?
frgo has joined #amaranth-lang
<jorolf[m]> And also kind of related to that: The created FIFOs are all named U$XX. How can I avoid that? Is that happening because I'm creating the FIFOs inside of a list comprehension?
frgo has quit [Ping timeout: 244 seconds]
frgo has joined #amaranth-lang
frgo has quit [Remote host closed the connection]
frgo has joined #amaranth-lang
frgo has quit [Ping timeout: 248 seconds]
frgo has joined #amaranth-lang
peepsalot has quit [Quit: Connection reset by peep]
peepsalot has joined #amaranth-lang
<whitequark[cis]> <jorolf[m]> "And also kind of related to that..." <- it's because you're using m.submodules +=
<whitequark[cis]> without providing an explicit name like m.submodule.x =, or m.submodule["x"] =
frgo has quit [Read error: Connection reset by peer]
frgo has joined #amaranth-lang
frgo has quit [Remote host closed the connection]
frgo has joined #amaranth-lang