Re: REV 3 - REV 5 - The beginning (ST536)
Posted: 27 Mar 2026 17:16
And this old Microsoft Word video describes this Xlinix hellhole also perfectly !
We welcome retro users & hardware gurus alike! Come and join the party :)
https://www.exxosforum.co.uk/forum/
Ridiculous analysis by the AI. Doesn't make any sense to me at all ...exxos wrote: 26 Mar 2026 16:02 Found another weird thing.. I got AI to explain, I'm not sure if this is real or its actually a thing ?!
Why consistency and predictability would reduce SSN? If all the signals change state, consistently, then you are just consistently provoking the worst case SSN. No, not at all, consistency is not what matters here. Not for signal integrity purposes (might matter for debugging purposes, though). In anycase, clearing the bus at idle would add one additional bus switch. And while the state of these signals might not be relevant at that point, the provoked SSN might affect other signals.WITHOUT the idle clear:
ARAM and BA hold whatever value was last driven during the previous access column address phase. The starting state before each new access is therefore random and depends on access history. When a new access begins, the number of ARAM/BA bits switching simultaneously varies unpredictably.
WITH the idle clear (to 0 or any other fixed value):
Every access starts from the same known baseline regardless of what the previous access was. The switching pattern from idle state to row address is consistent and bounded for any given address ... The specific idle value does not matter ... What matters is consistency.
What the ABT16245 has to do with these signals??? These signals go directly from the CPLD to the SDRAM. AI seems totally confused.Scope measurements confirmed approximately 1V overshoot on ARAM lines due to transmission line reflections from the ABT16245 bus buffer switching.
In general, slow slew rate might be recommended to improve signal integrity. I think those AI figures are probably exaggerated. Slow slew rate shouldn't add nearly as much delay. But in your case I would avoid it. Probably not a good idea to mess with the timing with all the issues you had finding a stable setup.Slow slew rate on ARAM/BA/RAS/CAS/RAMWE was investigated as an alternative fix but made things worse - it reduces setup margin from ~5ns to ~2ns which is insufficient at 100MHz.
I have thought about it some more..
True, but not simple with such fast tight timings at 100mhz.If you want to reduce SSN, then you should, well, simply not change all the signals simultaneously. If you can afford it, you can change, say, half the signals in the previous cycle.
Not at all. If buffers switch at the same time as SRAM timings, then of course they are related, by the power rails. So its perfectly valid to mention it. Everything is related by the power rails. Just because ABT isn't connected to SDRAM directly doesn't mean it doesn't matter.What the ABT16245 has to do with these signals??? These signals go directly from the CPLD to the SDRAM. AI seems totally confused.
That's why I build the resistor pass-tough board for starters which is probably a few pages back now. The SDRAM will have improved matching on the next respin. These are all issues I am working through currently. Problem is, the more I look into it, the more issues I find, and the more complicated the whole project gets.But if you are detecting serious signal integrity issues it might be worth to improve impedance matching ...
Slow slew rate on ARAM/BA/RAS/CAS/RAMWE was investigated as an alternative fix but made things worse - it reduces setup margin from ~5ns to ~2ns which is insufficient at 100MHz.
They are not. I have measured them. I experimented with all the SDRAM fast slow slew, timings shift more than you think, to the point that timings get borderline for setup and hold timings etc and the thing fails. 2ns difference is huge on 100mhz.In general, slow slew rate might be recommended to improve signal integrity. I think those AI figures are probably exaggerated.
Slow is required on some signals, it improves timing margins and solves a lot of problems. Currently the timings are all spot on now.Slow slew rate shouldn't add nearly as much delay. But in your case I would avoid it. Probably not a good idea to mess with the timing with all the issues you had finding a stable setup.
That's not what the AI was "talking about". The AI was claiming that what matters is to set the signals to "ANY" fixed value. That as long as you are consistent, you can "clear" the SDRAM address bus with any fixed value. Quoting the AI again:exxos wrote: 27 Mar 2026 19:20I have thought about it some more..
Consistency and predictability is like if you had 50% of signals switching low, then 50% switching high. You know exactly what the timings are, what the noise is, gnd bounce etc.
That's, IMHO, completely nonsense. If you follow AI"s advice and you set all the signals high on idle (again, AI claims any fixed value is ok), and there is an access to address zero, you are provoking, unnecessarily, a full high to low switch. How that could be good?WITH the idle clear (to 0 or any other fixed value):
Every access starts from the same known baseline regardless of what the previous access was. The switching pattern from idle state to row address is consistent and bounded for any given address ... The specific idle value does not matter ... What matters is consistency.
That's something completely different. That does might make some sense. But that's not what AI was claiming. This might make some sense because you are trying to avoid the worst SSN case when all signals are switching from high to low. But the gain would be rather small. You still might get all the signals switching concurrently.Now if you have all signals switching low or switching high at the same time you don't get that balance any more, and you just made things a whole lot worse.
Why not? Why can't you change half the signals on the previous cycle? The clock frequency should not matter for this purpose because you are not changing the same signal on consecutive cycles. You change some signals on one cycle, and the others on the next one. What's the problem?True, but not simple with such fast tight timings at 100mhz.If you want to reduce SSN, then you should, well, simply not change all the signals simultaneously. If you can afford it, you can change, say, half the signals in the previous cycle.
Why the data bus buffers would switch at that point when you are starting an SDRAM access??? Why the buffers would be active at all here? Are you allowing Blitter to write to your SDRAM? Because that's the only circumstance that I can think that the buffers would be active concurrently with a SDRAM access.Not at all. If buffers switch at the same time as SRAM timings, then of course they are related, by the power rails. So its perfectly valid to mention it.What the ABT16245 has to do with these signals??? These signals go directly from the CPLD to the SDRAM. AI seems totally confused.
Why you keep the ABT buffers at all? Why not change them for something not so aggressive? You don't need buffers that fast for the computer side. ABT buffers are much worse for this purpose. They can generate much worse SSN noise and ground bounce than the CPLD.I think I posted a while back, I moved timings of the ABT buffer like 100ns later than needed to avoid huge gnd bounce issues. That bounce is predictable and I can avoid it as much as possible as to improve noise.
I read you used a pass through board. But not so sure that would be very helpful here. We are talking about potential impedance mismatch on the SDRAM address bus. That would need internal termination between the CPLD and the SDRAM. But this must be done carefully because it will add a small delay.That's why I build the resistor pass-tough board for starters which is probably a few pages back now. The SDRAM will have improved matching on the next respin.
I wouldn't expect 2ns difference between fast and slow slew rate. According to Xilinx documentation, slow slew rate would add 1ns delay, or even less, on small capacitive loads (as two CMOS loads that we have here). But anyway, the AI was claiming that the difference would be more like 3ns (5ns vs 2ns setup margin), and that does seem too much.They are not. I have measured them. I experimented with all the SDRAM fast slow slew, timings shift more than you think, to the point that timings get borderline for setup and hold timings etc and the thing fails. 2ns difference is huge on 100mhz.In general, slow slew rate might be recommended to improve signal integrity. I think those AI figures are probably exaggerated.
Slow slew rate is not designed to help with timing issues. It might help in some cases. But the purpose of slow rate is to improve signal integrity.Slow is required on some signals, it improves timing margins and solves a lot of problems. Currently the timings are all spot on now.
In fact the original TF536 all used slow slew and it was a requirement.
IMHO, the AI is hallucinating. Or perhaps is just trying to find a remotely conceivable explanation for a wrong premise.Why 7→0 and 1→1 can be WORSE than 8→0
At first glance it seems like flipping 8 bits in the same direction (e.g., 0xFF → 0x00) should always be the worst case. But in real hardware, that isn’t necessarily true. Here’s why mixed-direction switching can actually create a more severe disturbance.
This contradicts all the literature on the subject of SSN and ground bounce. Switching all the signals in the same direction is worse. Switching all to low is the worst. Even every AI I ask agrees with that.Bottom line
Yes, 7 bits switching one way and 1 bit switching the other can be worse than 8 bits switching the same way, because opposite-direction transitions create two separate di/dt spikes on two different rails, and they interact in nonlinear, unpredictable ways. Parking the bus at a fixed value removes this randomness and bounds the worst-case event.
I don't think so. The AI was claiming something completely different before. The AI claimed that any fixed value, including something like $55 (alternate ones and zeros) is ok as long as it is fixed and consistent.What AI thought was right, it just didn't explain it very well.
Absolutely. No doubts AI could be helpful. Just don't take everything AI claims as the absolute truth.exxos wrote: 28 Mar 2026 19:00 AI has been an invaluable tool for me on this project. It doesn't get everything right and I sometimes have to correct or refine it, but it has helped solve a lot of issues and saved me a huge amount of time.