<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
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]