Hi everyone!
So a while back I started working on a very (VERY) simple breadboard computer. I ran into some problems when trying to write to memory. In my first attempt I didn't even have a memory controller and I just tied CS low and let fate determine if my address lines would settle at the same time(and instantaneously). And unsurprisingly they did not.
Now I'm trying to make a very simple memory controller that will unassert CS while memory is not being used. Then during a write cycle, it should keep CS low and give the address lines time to settle. Then assert CS for a little bit, then unassert CS again before the end of the write cycle.
The best way I've thought to do this is to have a separate clock that runs at 8 times the system clock. Then load a shift register with a pattern like '11000011' and have the output of the shift register go to the CS pin of the memory. The shift register would get the 8 times clock so that in one write cycle(IE one system cycle) it would shift all the way through that pattern.
One of the problems I have with this is that I initially have to load that pattern into the shift register. But since i only have to do it once in the beginning, I don't mind just putting a button on the bread board and pressing it every time.
So before I try to build this, I wanted to check here and see if there is a better(IE simpler) way to do this or if there is any obvious problems with this design.
Thanks!