BigEd wrote:
I think the answer is that the databus coming from the CPU is not the same as the databus feeding the RAM - there's at least some kind of tristate buffer or mux between the two. In phi1, the CPU's databus feeds a latch, but not the RAM. The RAM's databus is connected to the video system. In phi2, the buffer is turned on and the CPU and RAM are connected.
Sorry to bring up my old topic but I've been thinking about this again. I want to make sure I understand what you're saying.
Let's say I want an FPGA to arbitrarily jump to any 24 bit address in RAM during PHI1 while the CPU is doing its thing.
So, during PHI1 (low) the CPU's databus feeds a latch. Which is temporarily holding on to "virtual" address pins A16 to A23. The real address pins from the CPU (A0 - A15) are connected to RAM as usual.
During this phase, how would the video system "take over" the RAM and change all 24 bits if the CPU's 16 bits of address pins are tied to the RAM? Would I latch the entire 24 bit address bus during this time and when we enter PHI2, connect the 24 bit latches to the RAM?
So basically the CPU would never set the RAM address directly. It would always latch the 24 bit address temporarily. Meaning the entire databus and address bus would need to be tristated so the FPGA could take over during PH2.
Am I understanding that correctly or is there an easier way?
Thanks!