As a update, I did a whole bunch of tests.. Long story short, changing to 500R resistor on DTACK made a whole world of difference..
dt11.png
On the left, is 1K resistor... On the right is 500R resistor.. Not a great deal between the two, but makes a dramatic difference in results..
Basically now, worst case looks like about 1% variation in results. But this is about as good as things get anyway.
I really don't know why DTACK is such a "heavy" signal to pull-up :roll: I did a quick measurement of capacitance and read 250pF.. They may not be accurate due to the pull-up resistance being in the mix also.. But with a lot of gates to pull-up on chips, it probably isn't far off...
I did a close-up also..
dtz.png
I also did a quick simulation..
sct.JPG
res1.JPG
So on my actual scope results I see that around 50% through the cycle (about 150ns) in must reach about 4 V.
On my simulation circuit, I see 4V around 200ns.
Of course there will be a lot of factors and this was only quick test, but it seems that the capacitance is indeed around 250pF. Which does not seem much, but it is clear you can take 200ns to get to 4volts. If we assume 2 volts as a logic one, then the time will be closer to 100ns.
500R on 5V is 5V / 500 = 0.010Amps (10mA) which is a lot really, I quickly checked the MFP datasheet and it quotes 5.3mA.. So likely in reality a 1K resistor should be the lowest value used about starting to strain the DTACK drive transistors.
A possible workaround could be control the 500R resistor by the PLD. In that when address strobe goes high, it connects the 500R resistor to DTACK and allows resistance to be pulled up faster. Then when address strobe goes low, the resistor is isolated so the actual DTACK resistance would be normal like 2.2K. This way DTACK switches to 0V with 2.2K as normal, and is pulled up high with 500R...
You do not have the required permissions to view the files attached to this post.