{"id":27355,"date":"2019-08-07T12:54:10","date_gmt":"2019-08-07T19:54:10","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=27355"},"modified":"2025-08-18T02:11:13","modified_gmt":"2025-08-18T09:11:13","slug":"the-influence-of-oscilloscope-memory-depth-and-update-rate","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/the-influence-of-oscilloscope-memory-depth-and-update-rate\/","title":{"rendered":"The Influence of Oscilloscope Memory Depth and Update Rate"},"content":{"rendered":"\r\n<p>Comparing digital storage <a href=\"https:\/\/digilent.com\/shop\/products\/mixed-signal-oscilloscopes\/\" target=\"_blank\" rel=\"noopener\">oscilloscopes<\/a> (DSO&#8217;s), like the <a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/?utm_source=google_search&amp;utm_medium=ppc&amp;utm_campaign=AD2_pro_oscilloscope_customers&amp;utm_content=action_2&amp;gclid=Cj0KCQjwsvrpBRCsARIsAKBR_0J7ZPzQ2ob38XjNOJaA_jCeRyM9nrYQR3Brzvpxks0lYQyX7CiWdEEaAgT8EALw_wcB\">Analog Discovery 2<\/a>, can be a bit (pun intended) dry and seems like a battle of \u201cWho\u2019s got the bigger numbers for their specs?\u201d. That is, until you realize how these specs are dependent on each other and the way the scope is operating. The two main features beyond IO channels that most scope designs push are their bandwidth and sampling rate.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/800px-Solaris-WG-2019-11-094.jpg\" alt=\"\" class=\"wp-image-27384\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/800px-Solaris-WG-2019-11-094.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/800px-Solaris-WG-2019-11-094-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/800px-Solaris-WG-2019-11-094-768x432.jpg 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/>\r\n<figcaption>Not sure what these people are scoping, but hey, it looks cool. Photo from <a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:Solaris-WG-2019-11-094.jpg\">here<\/a>.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Now, there\u2019s also this thing called memory that is needed to store these samples. What I have recently come to learn is that the amount of memory that a DSO can allocate to data acquisition is interconnected to the bandwidth and sampling rate, which makes more sense as we start to unfold it all. I have experienced this parameter referred to as \u201cmemory depth\u201d, \u201cmemory\u201d, \u201crecord length\u201d, \u201ccapture memory\u201d, and just \u201cthe buffer.\u201d I have also seen it referred to as a \u201cmax\u201d value which comes back to the interdependencies of memory, sampling rate, and bandwidth. For now, let\u2019s refer to this value as memory depth. For example, the <a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/?utm_source=google_search&amp;utm_medium=ppc&amp;utm_campaign=AD2_pro_oscilloscope_customers&amp;utm_content=action_2&amp;gclid=Cj0KCQjwsvrpBRCsARIsAKBR_0J7ZPzQ2ob38XjNOJaA_jCeRyM9nrYQR3Brzvpxks0lYQyX7CiWdEEaAgT8EALw_wcB\">Analog Discovery 2<\/a> has a maximum memory depth (or buffer size as it is referred to in Digilent documentation) of 8192 samples.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"513\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/Analog_Discovery_2_top_600__90933.1554748385.500.659.png\" alt=\"\" class=\"wp-image-27386\" \/>\r\n<figcaption>The portable, USB oscilloscope (plus 12 other instruments): the <a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/?utm_source=google_search&amp;utm_medium=ppc&amp;utm_campaign=AD2_pro_oscilloscope_customers&amp;utm_content=action_2&amp;gclid=Cj0KCQjwsvrpBRCsARIsAKBR_0J7ZPzQ2ob38XjNOJaA_jCeRyM9nrYQR3Brzvpxks0lYQyX7CiWdEEaAgT8EALw_wcB\">Analog Discovery 2<\/a>. <br \/>On my screen, this picture is actually larger than the device itself.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Okay, so quick equation: Time length of captured signal = Memory Depth \/ Sample Rate. Cool, so samples divided by samples per second will leave us with a quantity of time. Using the <a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/?utm_source=google_search&amp;utm_medium=ppc&amp;utm_campaign=AD2_pro_oscilloscope_customers&amp;utm_content=action_2&amp;gclid=Cj0KCQjwsvrpBRCsARIsAKBR_0J7ZPzQ2ob38XjNOJaA_jCeRyM9nrYQR3Brzvpxks0lYQyX7CiWdEEaAgT8EALw_wcB\">Analog Discovery 2<\/a>&#8216;s specs for an example, if sampling at the max rate of 100MS\/s and using the entirety of the memory depth of 8192 samples we can capture a waveform that is about 82us in length. So, if we have more memory depth, we can capture a longer signal, right? Technically, yes. And with a higher sampling rate, we can achieve clearer resolution at higher frequencies, effectively increasing the scope\u2019s bandwidth, right? Also, technically, yes. However, a scope will not always sample at the max rate and there are situations where a large memory depth can hinder the performance of a scope.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7-1024x683.jpg\" alt=\"\" class=\"wp-image-27391\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7-1024x683.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7-600x400.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7-768x512.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7-800x533.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/fast-sport-car-1466168715EF7.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\r\n<figcaption>How fast can you sample, bro? Photo from <a href=\"https:\/\/www.publicdomainpictures.net\/en\/view-image.php?image=176111&amp;picture=fast-sport-car\">here<\/a>.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>A scope will sample at faster rates as the time base on the scope gets shorter. This is handled automatically by the DSO. What this also means is that the scope will sample at slower rates for longer time bases all relative to the available memory depth. Last quick equation: Memory depth * (number of time divisions \/ time per division) = sample rate. Using the <a href=\"https:\/\/digilent.com\/reference\/instrumentation\/analog-discovery-2\/start?redirect=1\">Analog Discovery 2<\/a>&#8216;s specs again, 8192 samples with 10 time divisions at 10ms per division, we obtain a sample rate of about 8Ms\/s. So, we can see here that at lower time divisions the sample rate decreases. For higher sampling rates at these lower time divisions, more acquisition memory is needed. This, of course, isn\u2019t always necessary, but debugging can get hairy and sometimes can come down to some short, yet infrequent events. This is where a thing called \u201cdeep memory\u201d starts to become advertised. Deep memory allows the user to add (typically manually) more memory to the acquisition buffer \u2013 but for a trade-off in performance.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"958\" height=\"639\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/13974427215091.jpg\" alt=\"\" class=\"wp-image-27388\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/13974427215091.jpg 958w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/13974427215091-600x400.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/13974427215091-768x512.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/13974427215091-800x534.jpg 800w\" sizes=\"auto, (max-width: 958px) 100vw, 958px\" \/>\r\n<figcaption>I wish I had a deeper memory. Photo from <a href=\"http:\/\/www.publicdomainfiles.com\/show_file.php?id=13974427215091\">here<\/a>.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Now, there is still another factor at play: the amount of time it takes for a scope to process the acquired data, display the signal and wait for the next trigger. During this time, the scope is not collecting any new data! I have seen this parameter referred to as the \u201cupdate rate\u201d, \u201crefresh rate\u201d, or \u201cdead time.\u201d With a deeper memory depth, the scope has a longer update rate. This can cause issues when looking for infrequent anomalies or quick bugs in the signal, like missing the event altogether if that event is occurring during this dead time or if the dead time becomes longer than the acquisition time.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580-1024x576.jpg\" alt=\"\" class=\"wp-image-27393\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580-1024x576.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580-600x338.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580-768x432.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580-800x450.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/time_clock_wrist_watch_time_of_time_indicating_wait_clock_face_watches-491580.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\r\n<figcaption>You probably shouldn&#8217;t have enough time to check your watch between scope acquisitions. Photo from <a href=\"https:\/\/pxhere.com\/en\/photo\/491580\">here<\/a>.<\/figcaption>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Bottom line is this: understanding when to push certain parameters of your scope and what may be compromised when doing so. Is a higher sampling rate ideal? Is deep memory depth optimal? Is an infrequent event of concern? Understanding how memory depth, sampling rate, bandwidth, and refresh rate all relate to your acquisition and where your analysis needs to be strong will provide you with a plan for the best results. So far, the <a href=\"https:\/\/digilent.com\/shop\/analog-discovery-2-100msps-usb-oscilloscope-logic-analyzer-and-variable-power-supply\/?utm_source=google_search&amp;utm_medium=ppc&amp;utm_campaign=AD2_pro_oscilloscope_customers&amp;utm_content=action_2&amp;gclid=Cj0KCQjwsvrpBRCsARIsAKBR_0J7ZPzQ2ob38XjNOJaA_jCeRyM9nrYQR3Brzvpxks0lYQyX7CiWdEEaAgT8EALw_wcB\">Analog Discovery 2<\/a> has been a portable workhorse for me.<\/p>\r\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-27355 jlk' data-task='like' data-post_id='27355' 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-27355 lc'>+1<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-27355 jlk' data-task='unlike' data-post_id='27355' 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-27355 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-27355 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Ian discusses what it means to push certain parameters of your scope and what might be compromised in doing so. <\/p>\n","protected":false},"author":49,"featured_media":27384,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4325,4312],"tags":[1736],"ppma_author":[4459],"class_list":["post-27355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-debug-validation-test","category-usb-scopes-analyzers-generators","tag-analog-discovery-2"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2019\/07\/800px-Solaris-WG-2019-11-094.jpg","authors":[{"term_id":4459,"user_id":49,"is_guest":0,"slug":"ian","display_name":"Ian Etheridge","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8a19055c49586a33bb17b9a5823ac103?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Etheridge","last_name_2":"","first_name":"Ian","first_name_2":"","job_title":"","description":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/27355","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\/49"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=27355"}],"version-history":[{"count":1,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/27355\/revisions"}],"predecessor-version":[{"id":31963,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/27355\/revisions\/31963"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/27384"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=27355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=27355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=27355"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=27355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}