Huh, I first committed this code on December 20th, 2012 and never noticed the seemingly-obvious issue with it in the ~13 years since.
Toggling a signal every 40ns results in a 12.5MHz clock, not 25MHz. #homebrewcpu
There we go, a couple days of work later the reworked path for the control store address is done and everything still passes its tests.
Removed 12 chips and added 6 new ones in the process. A few nanoseconds improvement on the propagation time for this signal, half an amp improvement in current draw, and 6 fewer chips, plus the new design is a lot easier to understand for Future Sen and will accommodate the extra inputs I need to finish implementing exceptions. #homebrewcpu
Got stuck on a problem working on my LHC display, so switched gears for a bit to my CPU to clear my head. I'm working on implementing exceptions, but during my last session on that I realized the path that the control store address bits have to go through seemed to get getting excessively complicated, so I made a note to draw it out next time so I understand it better.
Did that, and it's definitely getting complicated and to be too many levels! Need to put some thought into simplifying this to make it easier to understand, improve propagation time (though it's fine the way it is in theory) and reduce the likelihood of problems, before I complexify it even further. #homebrewcpu