Z3r0 0 Report post Posted August 28, 2015 Hello, I have probably quite newbish question. I Would like to make something very simple to test my osiloscope frequency capabilities. So for example a 100 mhz square wave on one of the papilio outputs. The problem is that it seems the most I get is 32mhz and that is not square anymore, but sinusoidal I am able to configure DCM, addiding a counter after the DCM to slow down I can see that internaly papilio is working just fine on 100mhz. But not the output. I also saw that guys interface in quite high speeds with LVDS. So am I missing something or spartna 3E just can't handle any more than ~20MHz ? Tried to search forums/dataheet, but just can't find anything regarding frequency and IO. Any kind of information would be nice Thank you Share this post Link to post Share on other sites
alvieboy 25 Report post Posted August 29, 2015 There is no such thing as a "perfect" square wave. Rise and fall times, due to capacitance, inductance and driving capability, will distort your visual signal. For speeds up to ~80Mhz, a simple output should work, but you have to take care of impedance. For such high frequencies, configure your scope to use a 50ohm input impedance, rather than default 1Mohm. That should give you a better waveform. Depending on the input characteristics (TTL,CMOS, with or without hysteresis) you will see "ones" and "zeros" at different points. For higher speeds, you may want them to be differential, and observe the output eye pattern rather than the waverform itself: https://en.wikipedia.org/wiki/Eye_pattern Pre-emphasys can also be used to make signal a bit better, but will cause overshoot and undershoot. https://www.altera.com/en_US/pdfs/literature/wp/wp_sgnlntgry.pdf What's your scope BW ? http://www.electron.frba.utn.edu.ar/~jcecconi/Bibliografia/06%20-%20Osciloscopios%20de%20Almacenamiento%20Digital/Understanding_Oscilloscope_BW_RiseT_And_Signal_Fidelity.pdf http://www.ni.com/white-paper/4333/en/ Alvie Share this post Link to post Share on other sites
Z3r0 0 Report post Posted August 29, 2015 Thank you for great resources. The scope is an hobyist level rigol http://www.rigolna.com/products/digital-oscilloscopes/ds1000e/ds1052e/ with hacked firmware of 100mhz version.Will definetly have some material to read on weekend Share this post Link to post Share on other sites
mkarlsson 34 Report post Posted August 29, 2015 Don't expect a 100 MHz square wave to show up as such on a 100 MHz bandwidth scope. You need at least 10x bandwidth for a square wave to show up as a square wave.In your case I would expect anything above 10 MHz to get rounded off and look more and more like a sine wave as the frequency increase. Magnus Share this post Link to post Share on other sites
Z3r0 0 Report post Posted August 29, 2015 Yeah, link on signal fidelity posted by alvieboy speaks just about that. Well you live and learn. Atleast now I know how and why In anycase tried to output 91Mhz out of papilio, used 10x attentuationand a spring ground. Got a waveform (whatever form it was, still saw highs and lows), and got counted frequency value of 90,99Mhz and thats more than enough for me for next few years, and as I said now I know that spartan 3e is able to spit relative high frequency on its outputs and that I can't accuratly meassure them with my gear. So thank you guys for hellping a new guy out. Next to read and try out something with lvds signals Share this post Link to post Share on other sites
Jack Gassett 0 Report post Posted August 31, 2015 This is also a nice read on Oscope bandwidth issues:https://blog.adafruit.com/2012/01/27/why-oscilloscope-bandwidth-matters/ Jack. Share this post Link to post Share on other sites
offroad 14 Report post Posted September 5, 2015 Hi, most electronics problems aren't solved by brute force. But that said you can increase the drive strength of the IO pins. That is, in the constraints file NET xyz SLEW="FAST" DRIVE=24Can't say how much it helps for an excessive capacitive load but it's worth a try (using a 1:10 probe is generally a good idea because of the reduced loading) If you need a faster counter, you can write it yourself (verilog). "MyInput" should be a clock-capable pin, then you should be able to count 200..300 MHz: reg[23:0] MyCounter = 24'd0;assign myLedOutput1 = MyCounter[23];assign myLedOutput2 = MyCounter[20];assign myLedOutput3 = MyCounter[17]; always @(posedge MyInput)myCounter <= MyCounter + 24'd1; Share this post Link to post Share on other sites