tom.storey
Experienced Member
Thats an interesting point, but I have a different interpretation. One thing I have learned is to never consider a timing diagram to be to scale, and to always look at the figures!if you look on page #6 of the ‘4008 datasheet the graphs imply that with a “CE controlled write” (which is the mode you’re running in if WE is asserted first) WE should stay low *at least until CE goes high*. With your design CE lags WE, so it follows that there’s going to be a few nanoseconds here where CE lingers low *after* WE has already transitioned. Which is technically out of spec for that access mode?
Case in point, the CE controlled write timing diagram has TCW being represented as shorter than TWP, but in the table of timing figures, TCW is a longer time than TWP...
Back to the point, in the tables on page 4 there are no timing constraints listed between OE/WE/CE specifying how soon before or after these signals can transition with respect to each other for the beginnings and ends of a cycle. For WE and CE controlled writes it only depicts that one should fall before the other, but it doesnt specify how soon. Note #2 on page 6 says that a write occurrs when both CE and WE are low, so I dont think it matters if I start with a CE controlled waveform and end with the depiction of a WE controlled waveform, as long as WE and CE were both low when WE goes high to effect the write.
Data hold time for a write is 0ns after WE goes high, so I suspect that with my decoding I get at least some time after WE goes high where the data bus is still enabled towards the RAM, and thus the write is able to complete successfully in any case. But there doesnt appear to be a problem writing to the RAM anyway, nothing shows any signs of corruption, memory tests pass, and it will happily run all day out of that RAM.
Maybe I need to build another board with just the memory expansion on it to see if perhaps some simpler circuitry is any better. Perhaps there is too much noise emanating from this board as it is?
Its a real head scratcher.
Last edited: