{"id":28228,"date":"2021-05-27T06:06:56","date_gmt":"2021-05-27T13:06:56","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=28228"},"modified":"2025-08-18T02:10:31","modified_gmt":"2025-08-18T09:10:31","slug":"when-digital-becomes-analog-a-story-of-mixed-signals","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/when-digital-becomes-analog-a-story-of-mixed-signals\/","title":{"rendered":"When Digital Becomes Analog: A Story of Mixed Signals"},"content":{"rendered":"<p><span data-contrast=\"none\">Though <a href=\"https:\/\/digilent.com\/shop\/products\/mixed-signal-oscilloscopes\/\" target=\"_blank\" rel=\"noopener\">oscilloscopes <\/a>are most known for viewing and diagnosing analog signals, there are some cases where critical characteristics of digital signals can only be viewed on an oscilloscope. When designing products, validating prototypes efficiently and accurately is a key step in making product deadlines. The various signals present on the device may lack critical properties, affecting the target specifications of the design.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h2>Five Features of Digital Logic Signals That Can Be Viewed on an Oscilloscope<\/h2>\n<p><span data-contrast=\"none\">Here are a couple of characteristics of these digital signals that a scope is useful in diagnosing:<\/span><\/p>\n<h4><em>Logic Thresholds are\u00a0 Met<\/em><\/h4>\n<p><span data-contrast=\"none\">If your digital signal\u00a0<\/span><span data-contrast=\"none\">can&#8217;t<\/span><span data-contrast=\"none\">\u00a0reach a threshold, a voltage level at which a signal is read as a &#8220;1&#8221; or a &#8220;0&#8221;, of the logic standard you are using, then not only will connected devices not see the signal transitions, but a logic analyzer using the same logic standard will also not be able to catch those transitions.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">Consider the case that a pullup resistor network is incorrectly\u00a0<\/span><span data-contrast=\"none\">designed and<\/span><span data-contrast=\"none\"> pulls a signal that is supposed to read as a &#8220;1&#8221; below the input high threshold. A logic analyzer will see a &#8220;0&#8221; here, while an oscilloscope can tell you the voltage that it does manage to reach, valuable information for understanding why the functionality <\/span><span data-contrast=\"none\">didn&#8217;t<\/span><span data-contrast=\"none\">\u00a0match your expectations.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h4><em>Signal Doesn&#8217;t Under\/Overshoot<\/em><\/h4>\n<p><span data-contrast=\"none\">When a digital signal transitions, the voltage level can temporarily exceed the stable high\u00a0<\/span><span data-contrast=\"none\">voltage, or<\/span><span data-contrast=\"none\">\u00a0go below the stable low voltage.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">In some scenarios, if this overshoot\/undershoot is extreme enough, you could potentially damage your devices.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"> \u00a0<\/span><span data-contrast=\"none\">As a critical spec, the electrical specifications for a digital device typically include information on the maximum voltage they can safely operate at.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"> \u00a0<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">Part of the inspiration behind our devices<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">)<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">\u202f<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">having a multitude of instruments in the time and frequency\u00a0<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">domain and<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">\u00a0<\/span><span style=\"font-size: 1rem;\" data-contrast=\"none\">designed for mixed signals is the experience we have designing our FPGA development boards.<\/span><span style=\"font-size: 1rem;\" data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<div>\n<p><span data-contrast=\"none\">As\u202fan\u202fexample, below we can see\u202fa\u202fcapture from\u202fone of our\u202fvalidation tests, for a\u202fclock\u202fsignal\u202fbeing passed\u202fto an Ethernet PHY. \u202fHere, the signal thresholds are explicitly being measured to ensure that they correspond to the specifications of the devices, and that the thresholds are never passed while the signal is\u202fin the high or low part of the cycle (another possible byproduct of over\/undershoot).\u202f<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:360,&quot;335559740&quot;:240}\"> To ensure reliable and consistent signal transmission, using a high-quality <a href=\"https:\/\/digilent.com\/shop\/cat5e-ethernet-cable\/\">Cat5e Ethernet cable<\/a> is recommended for connecting devices over Ethernet.<\/span><\/p>\n<\/div>\n<div><\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-28237\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties1-600x448.png\" alt=\"\" width=\"600\" height=\"448\" data-wp-pid=\"28237\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties1-600x448.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties1.png 752w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h4><span data-contrast=\"none\"><em>Rise and Fall Times <\/em><\/span><\/h4>\n<p><span data-contrast=\"none\">Similarly, the digital devices in your circuit expect the signals they take as input to rise and fall in specific periods of time. <\/span><span data-contrast=\"none\">If a signal rises too slowly, some devices might have unexpected output, not knowing how to interpret a voltage somewhere in the middle.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">If the signal is fast, or the rise\/fall time of the signal is egregiously slow, you can even lose the ability to detect transitions at all, if a &#8220;sawtooth&#8221; waveform is created by the charge\/discharge cycle.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"> For<\/span><span data-contrast=\"none\"> example, an unexpected source of capacitance can cause your signals to slow down. The best way to find out if this kind of thing is happening is to check for it on an oscilloscope.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"none\">As<\/span><span data-contrast=\"none\">\u00a0another example,\u00a0<\/span><span data-contrast=\"none\">another validation test\u00a0<\/span><span data-contrast=\"none\">look<\/span><span data-contrast=\"none\">s<\/span><span data-contrast=\"none\">\u00a0at the\u00a0<\/span><span data-contrast=\"none\">input hold time of a\u00a0<\/span><span data-contrast=\"none\">SPI signal \u2013 how long the data signal waits to transition after\u00a0<\/span><span data-contrast=\"none\">the positive\u00a0<\/span><span data-contrast=\"none\">edge<\/span><span data-contrast=\"none\">\u00a0of the clock\u00a0<\/span><span data-contrast=\"none\">used to sample it<\/span><span data-contrast=\"none\">. In this case<\/span><span data-contrast=\"none\">,<\/span><span data-contrast=\"none\">\u00a0a slight reflection effect can be seen in the data signal\u2019s\u00a0<\/span><span data-contrast=\"none\">rising edge<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-contrast=\"none\">(blue line)<\/span><span data-contrast=\"none\">, which\u00a0<\/span><span data-contrast=\"none\">is\u00a0<\/span><span data-contrast=\"none\">hav<\/span><span data-contrast=\"none\">ing<\/span><span data-contrast=\"none\">\u00a0an effect on<\/span><span data-contrast=\"none\">\u00a0the measured time<\/span><span data-contrast=\"none\">\u00a0(but is not bringing the signal out of spec)<\/span><span data-contrast=\"none\">.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-28236\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties2-600x449.png\" alt=\"\" width=\"600\" height=\"449\" data-wp-pid=\"28236\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties2-600x449.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties2.png 623w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<h4><em>Reflections Due to Unadapted Termination<\/em><\/h4>\n<p><span data-contrast=\"none\">When you run a signal down a long cable, the signal can reflect\u00a0<\/span><span data-contrast=\"none\">off <\/span><span data-contrast=\"none\">the other end, and in returning, interfere with further signals coming down the same line.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">This interference can easily lead to several of the issues mentioned above &#8211; interference that causes the signal to temporarily stay lower than an input high threshold increases the rise time, for example.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">This\u00a0<\/span><span data-contrast=\"none\">doesn&#8217;t<\/span><span data-contrast=\"none\">\u00a0just apply to &#8220;long&#8221; cables, and also comes up when you have a short cable (or even a trace on a printed circuit board) and a fast signal.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">While this can be corrected with a load at the end of the cable or trace (adding a termination impedance), issues will still arise if the impedance was incorrectly selected. They can be detected with a scope.<\/span><span data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"> (informative video &#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=zrDxSM91Jcg\">Reflected Waves on a Cable<\/a>)<\/span><\/p>\n<h4><em>General Noise<\/em><\/h4>\n<p><span data-contrast=\"none\">Noise in a signal can just cause problems and viewing it and measuring it in both the time and frequency domains is an important step in diagnosing the source. A classic example of noise is button bounce: when pressing a button causes the voltage to repeatedly rise and fall for a short period before settling at its final state. While this can often be caught by a logic analyzer, the scope gives more detail on the situation &#8211; what appears as a series of toggles on a logic analyzer may be hiding more complex behavior that can be seen with a scope, slow ramp up over time, short glitch pulses, or other transient waveforms. You can even mitigate button bounce with analog circuitry.\u00a0 This is just one of the many sources of noise.<\/span><\/p>\n<p><span data-contrast=\"none\">Finally,\u00a0<\/span><span data-contrast=\"none\">for visual reference,\u00a0<\/span><span data-contrast=\"none\">an example of\u00a0<\/span><span data-contrast=\"none\">a noisy\u00a0<\/span><span data-contrast=\"none\">button bounce<\/span><span data-contrast=\"none\">:<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-28235\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties3-600x310.png\" alt=\"\" width=\"600\" height=\"310\" data-wp-pid=\"28235\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties3-600x310.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digital-properties3.png 623w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><span data-contrast=\"none\"><span class=\"TrackChangeTextInsertion TrackedChange SCXW235782917 BCX0\"><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">Part of the inspiration behind our devices<\/span><\/span><\/span><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">\u202f<\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW235782917 BCX0\"><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">having a multitude of instruments in the time and frequency\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW235782917 BCX0\"><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">domain and being<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW235782917 BCX0\"><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">\u00a0<\/span><\/span><\/span><span class=\"TrackChangeTextInsertion TrackedChange SCXW235782917 BCX0\"><span class=\"TextRun SCXW235782917 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"none\"><span class=\"NormalTextRun SCXW235782917 BCX0\">designed for mixed signals is the experience we have designing our FPGA development boards.<\/span><\/span><\/span><span class=\"EOP SCXW235782917 BCX0\" data-ccp-props=\"{&quot;134233117&quot;:true,&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\"> F<\/span>undamentally, even if the thresholds and logic standards differ, a logic analyzer accepts signals the same way that any other digital device <\/span><span data-contrast=\"none\">does, and<\/span><span data-contrast=\"none\"> can&#8217;t diagnose that arise from the analog properties. Logic analyzers are of course a wonderful tool for looking at your already nice-and-clean digital signals to ensure that they are sending the right data, but an oscilloscope is also invaluable. <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0Having a mixed signaled oscilloscope (like the <a href=\"https:\/\/store.digilentinc.com\/\">ADP3450<\/a>) will give you both.\u00a0<\/span><\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-28228 jlk' data-task='like' data-post_id='28228' data-nonce='ee750c7abc' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-28228 lc'>+6<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-28228 jlk' data-task='unlike' data-post_id='28228' data-nonce='ee750c7abc' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-28228 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-28228 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Though oscilloscopes are most known for viewing and diagnosing analog signals, there are some cases where critical characteristics of digital signals can only be viewed on an oscilloscope. When designing &hellip; <\/p>\n","protected":false},"author":52,"featured_media":28238,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4325,4312,4267],"tags":[499],"ppma_author":[4462],"class_list":["post-28228","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-debug-validation-test","category-usb-scopes-analyzers-generators","category-featured","tag-oscilloscope"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2021\/05\/digilent-analog-discovery-2-image-1-min.jpg","authors":[{"term_id":4462,"user_id":52,"is_guest":0,"slug":"abrown","display_name":"Arthur Brown","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0157dde33e86ff2f253098657a5a774e?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Brown","last_name_2":"","first_name":"Arthur","first_name_2":"","job_title":"","description":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/28228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=28228"}],"version-history":[{"count":3,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/28228\/revisions"}],"predecessor-version":[{"id":31962,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/28228\/revisions\/31962"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/28238"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=28228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=28228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=28228"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=28228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}