[Performance] 8 BIT BUS freezing up when it is used inside more then 16 Chips
i tried to build a 256 x 16 BIT RAM with your Simulator learning how computers work. i stacked from 1 BIT Register over 8 BIT Register up to a RAM Cell and then just grouped 8 Ram Cells to make live easier building a 256 x 16 Bit RAM in 32 Chips having each its own 8 Bit Connector. But if i connect all 32 Chips to the BUS the 8 BIT BUS gets unusable by freezing up.
I could track the issue down to the effect that every chip slows the update of the 8 BIT BUS down a little adding up to huge delay. Also this can get confirmed by the Clock module also gotten slower and slower during that test. How did i came to the conclusion.
I diconnected most of my 32 Chips from the 8 BIT BUS and changed the 8 BIT input often reconnecting chips one after another starting from zero and when i connected the 8th "8 x 16 BIT RAM CELL BUS" then the delay reached already more then 4 seconds until updating the BUS.
I uploaded my Chips as screenshots so that it can be seen how it works. The Picture showing the green "8 x 16 BIT RAM CELL BUS" connected in parallel to the 8 BIT BUS is the test bed for the issue.
It's a known issue that adding a lot of memory chips slows the game down. There's another topic here: https://github.com/SebLague/Digital-Logic-Sim/issues/292 I believe it's due to circuits that feed into themselves introduce a lot more circuit delay and calculations. Since each chip waits until all its inputs have been received, some things you can try is un-nesting some of the chips (such as having all 8 latches in one register instead of in eight 1-bit registers), or using buffers in a few places. Disconnected pins aren't calculated.
Duplicate, issue is closed.
Thank you for the link to the other topic. Did not found anything so i created this one., To your first point i came to the same conclusion that it just calculates everything in the lower circuits slowing the current circuit down. This was why i also mentioned the slow clock. To point in that direction. Also thanks for mentioning that disconnected pins aren't calculated. I still hope that the developer may find a way to resolve this bottleneck though. But i will close this issue now as it is a duplicate.