<dragonmux>
shows how to do some more complex simulation work and set up dummy platforms, etc
<FL4SHK>
dragonmux: thank
<dragonmux>
please don't hesitate to ask if you have any questions about what's going on in our sim stuff
<FL4SHK>
Sure thing.
<FL4SHK>
So do I use Python `if` statements instead of `with m.If(...)` for simulation?
<dragonmux>
depends on the context.. if you're constructing something inside an Elaboratable that you want making decisions in gateware, then it's `with m.If()` as normal
<FL4SHK>
The context is within the `process` function
<dragonmux>
if you're wanting to direct sim based on what you're seeing happen, then it's Python `if`
<FL4SHK>
Right, that's what I was getting at.
<dragonmux>
`yield dut.signal` will give you the current value of the signal as a number you can work with and manipulate
<dragonmux>
`yield dut.signal.eq(value)` will set the signal to the value given for the next cycle (a cycle is any `yield` with nothing to the right
<FL4SHK>
I see.
<FL4SHK>
I didn't realize you could, in nMigen, slice into an expression that's not a signal
<FL4SHK>
slicing into an rvalue is sorely missing from VHDL and SV.