# What is causing this distortion on a 20MHz control signal?

I'm having an issue with a PCB on which I have a microcontroller and an external SRAM. I don't want to fully describe the problem as I already posted a question regarding that. Link

Since that I found out that maybe there are PCB design issues which could cause the symptoms. Here comes my question which I think it worth to ask separately.

What can cause the distortion visible on the picture?

Ideally, the signal should be a square wave with exactly 50ns 0V and ~50ns 3.3V

Oscilloscope settings:

Volts/DIV: 2
Time axis: 50ns/DIV
Attenuation:10x
Probe connected to OE pin of the SRAM (farthest point from the driver)
Probe ground connected far away to the shielding of a connector


Another picture:

Oscilloscope settings:

Same as above, except the probe ground is connected directly to the SRAM's GND pin.


Power: 3.3v
No impedance matching between the chips
Trace length:43.215mm


I would not say that 20MHz is high frequency, that's why I didn't care about impedance and termination. Could you please confirm this in addition to your opinion on the signal?

As per rdtsc's request in a comment, I checked a 25MHz oscillator on the same board with the same oscilloscope settings as above. This is how it looks like:

• Where and how are you probing the signal? Where is your scope probe ground connected and how long is it? – John D Dec 18 '15 at 22:24
• We need to know more about your scopes performance, the probes and how you measure, at these speeds it is very easy to make mistakes in measuring, like having more than 5mm ground lead. – PlasmaHH Dec 18 '15 at 22:25
• I've updated the question. Let me know if more info is required. – bakcsa83 Dec 18 '15 at 22:41
• Do you have anything else than can create a clean, 20MHz signal to reference? Or get a PIC or other micro running at 40+MHz and toggle an output pin --> load resistor. Best would be a good 'scope calibrator, but those are hard to come by. It could be scope/probes. It could also be the inductance of the long trace length/routing. But won't know for sure until scope/probes is evaluated and eliminated as a contributor. – rdtsc Dec 18 '15 at 22:48
• Adjust the scope`s trigger holdoff : you may be able to get a stable pattern. I think they are irregularities in the software loop that's accessing memory, e.g. at the loop counter. I write the simplest possible loop to get a stable pattern for this sort of test. Or are you using external circuitry to generate wait states? If that were unreliable it could generate similar "shadows". – Brian Drummond Dec 19 '15 at 0:30