<Vinalon>
Is it possible to have a bi-directional signal which can be set by both a module and its parent(s)? Like, a 'start' bit which gets set by a parent module to request an operation and cleared by the child module when it is done?
<whitequark>
yes, but this will flatten your hierarchy
<whitequark>
in general, this will work if you try to do it, but I would recommend that you use a cleaner solution instead
<Vinalon>
okay, thanks! I guess I've been meaning to learn more about the wishbone bus and proper handshaking anyways
<whitequark>
note that there are lots of wishbone building blocks in nmigen-soc
<Vinalon>
oh cool - I hadn't noticed that repository, thanks
<Vinalon>
It looks like it has an example CSR bus, too - neat!
rohitksingh has joined #nmigen
<Degi>
Are there downsides to a flattened hierarchy?
<whitequark>
there are no downsides to it in addition to, well, it being flattened
<whitequark>
flattening causes a few issues: it makes floorplanning harder, and the hierarchical paths no longer correspond exactly to nmigen hierarchy
<whitequark>
but in many cases those are not major
<Vinalon>
I think I did see a 'flattened hierarchy' warning when I tried to make a shared 'start/done' ALU bit...iirc I treated it like an error because I had trouble getting the module to change the signal back after it had been set by a testbench simulation.
<Vinalon>
and I think all of the child module's signals all got merged into the parent module in the '.vcd' result file. But it sounds like those things don't affect the synthesized design too much?
<Vinalon>
(or I might be misremembering)
<whitequark>
sim troubles: probably a different issue, but could be a bug
<whitequark>
merged: yes, that's what "flattening" means
<Vinalon>
yeah, I figured I was probably doing the 'yield dut.thing.eq(stuff)' call wrong or something. It was nice to have a 'bad code smell' warning to put me back on track.
Stary has joined #nmigen
Degi has quit [Read error: Connection reset by peer]
Asu has quit [Quit: Konversation terminated!]
peepsalot has quit [Ping timeout: 250 seconds]
Vinalon has quit [Read error: Connection reset by peer]
Vinalon has joined #nmigen
peepsalot has joined #nmigen
Vinalon_ has joined #nmigen
Vinalon has quit [Read error: Connection reset by peer]