<_whitenotifier>
[nmigen] programmerjake opened issue #43: process function is defined but not used in test case - https://git.io/fjelI
rohitksingh_work has joined #m-labs
<attie>
lkcl: for modules with several independent valid/ack interfaces I usually have one generator per interface. Not sure why you need the array of functions?
<lkcl>
attie: ah yes, generators, that was it.
<lkcl>
array of generators.
<lkcl>
attie: because the input is an array of STB/ACK/DATA
<lkcl>
to set multiple STB/DATA and monitor multiple ACK signals in a single unit test function (generator) would be absolute hell
<lkcl>
it would quickly become one of the worst state-based nightmare pieces of code i'd ever written :)
<lkcl>
whereas, an array of functions (generators) would have each function (generator) associated with and monitoring a single STB/ACK/DATA each
<lkcl>
which is a dead-straightforward loop.
<lkcl>
the tricky bit is, i'm not sure how to keep the functions (generators) in clock lock-step
<attie>
there's a generator dealing with the input side and a generator dealing with the output side. They get passed whatever information they need (usually the data to expect, or how many transactions to do) either as argument or as a shared variable (self.data on the testbench here)
<attie>
do you have some specific timing requirements that you need to observe? but then why stb/ack?
<lkcl>
ah ha! that's precisely the example i needed
<lkcl>
the array of generators is precisely and exactly what i was talking about
<lkcl>
and the synchronisation i was referring to is being taken care of by run_with
<lkcl>
the only thing.... i have absolutely no idea where SimCase comes from, because of the "import *"
<lkcl>
attie: found it. had to guess where it was, from the name of the module. i guessed "tbsupport" was "test bench support"
m4ssi has joined #m-labs
cr1901_modern has joined #m-labs
<_whitenotifier>
[nmigen] whitequark commented on issue #43: process function is defined but not used in test case - https://git.io/fjeBL
<attie>
oh, yes, sorry
edef has quit [Read error: error:1408F10B:SSL routines:ssl3_get_record:wrong version number]
edef has joined #m-labs
<attie>
that's just some boilerplate to make it use unittest
<attie>
(with bonus clock domains but I guess that works differently in nmigen)
bluebugs has joined #m-labs
bluebugs has quit [Changing host]
bluebugs has joined #m-labs
cedric has quit [Ping timeout: 246 seconds]
<lkcl>
attie: ooOo :) so, that's really helpful: it's allowed me to establish that run_simulation takes an array/dictionary of generator functions, which i hadn't expected
<lkcl>
and is great news to discover
rohitksingh_work has quit [Read error: Connection reset by peer]
<lkcl>
attie: yay, got it! split out pipeline-send from pipeline-receive, which is a good start.
<lkcl>
the next thing i can do is the multi-input single-output multiplexer