{"id":17062,"date":"2016-10-07T10:00:08","date_gmt":"2016-10-07T17:00:08","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=17062"},"modified":"2021-06-16T13:51:34","modified_gmt":"2021-06-16T20:51:34","slug":"introducing-the-pmod-sf3-32-mb-serial-nor-flash-module","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/introducing-the-pmod-sf3-32-mb-serial-nor-flash-module\/","title":{"rendered":"Introducing the Pmod SF3 32 MB Serial NOR Flash Module"},"content":{"rendered":"<figure id=\"attachment_17063\" aria-describedby=\"caption-attachment-17063\" style=\"width: 322px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-17063 \" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/pmod-sf3.png\" alt=\"pmod-sf3\" width=\"322\" height=\"294\" data-wp-pid=\"17063\" \/><figcaption id=\"caption-attachment-17063\" class=\"wp-caption-text\">Pmod SF3 32 MB serial NOR flash module.<\/figcaption><\/figure>\n<p>Lack of storage space getting you down? Have no fear. The <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a> 32 MB serial NOR flash module is here!<\/p>\n<p>The <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a> joins the <a href=\"https:\/\/digilent.com\/shop\/pmodsf-external-rom-2mb-serial-flash-memory\/\">Pmod SF<\/a> and <a href=\"https:\/\/digilent.com\/shop\/pmodsf2-16mb-serial-phase-change-memory-pcm-limited-time\/\">Pmod SF2<\/a> in the storage category of Digilent <a href=\"https:\/\/digilent.com\/shop\/pmod-modules\/\">Pmod boards<\/a> and is the largest one yet. The Pmod SF3 is a 32 MB serial NOR flash memory module designed to add extra, mobile, non-volatile storage capacity to <a href=\"https:\/\/digilent.com\/shop\/embedded-processors\/\">microcontroller<\/a> (MCU) and <a href=\"https:\/\/digilent.com\/shop\/fpga-programmable-logic\/\">FPGA<\/a> boards. It uses Micron\u2019s <a href=\"https:\/\/www.micron.com\/parts\/nor-flash\/serial-nor-flash\/n25q256a13esf40g?pc=%7B8211C822-468A-4C3B-A530-ECB074FBE385%7D\">N25Q256A<\/a> serial NOR flash chip to provide easy access via SPI and supports extended SPI protocol, dual I\/O and quad I\/O. At 100,000 erase cycles and more than the amount of flash included on most Digilent system boards, this module is durable and has more than ample capacity to handle most applications.<\/p>\n<p><strong>What is flash memory?<\/strong><\/p>\n<p>Flash memory is so commonplace now (think USB thumb drives) that we usually don\u2019t bother ourselves with the finer details of the technology. We just use it. It doesn\u2019t help that the names of the various types of memory and how they are classified can be quite confusing. However when choosing additional memory for an existing system board, it\u2019s a good idea to back up and understand some of the distinctions between the different types available, so let\u2019s see if we can tease it apart a bit.<\/p>\n<p>Starting from a high level, there are two main categories of semiconductor memory technology, random-access memory (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Random-access_memory\">RAM<\/a>) and read-only memory (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Read-only_memory\">ROM<\/a>). They are volatile and non-volatile respectively. With volatile memory (RAM), the chip is returned to an unknown state each time the board is power cycled. In other words, when the power is turned off, the contents of volatile memory are lost. In contrast, the contents of non-volatile memory (ROM) are maintained through any number of power cycles. Both RAM and ROM are technically random-access memory types, meaning the data can be accessed in any random order in memory regardless of physical location.<\/p>\n<p>Original ROM devices differ from RAM mainly in that they cannot be easily written to, or sometimes not at all (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Mask_ROM\">MROM<\/a>), hence the name read-only memory. So although they have the useful quality of being non-volatile, they are very restrictive in their ability to be reprogrammed. This led developers to come up with <a href=\"https:\/\/en.wikipedia.org\/wiki\/Programmable_read-only_memory\">PROM <\/a>(programmable read-only memory), <a href=\"https:\/\/en.wikipedia.org\/wiki\/EPROM\">EPROM<\/a> (erasable programmable read-only memory) and<a href=\"https:\/\/en.wikipedia.org\/wiki\/EEPROM\"> EEPROM<\/a> (electrically erasable programmable read-only memory), in that order, with each being more easily erased and reprogrammed than the last.<\/p>\n<p>This finally brings us to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Flash_memory\">flash memory<\/a>. Flash was created in the mid-1980\u2019s largely with the intent to replace traditional ROM. Flash maintains random access ability and non-volatility while grossly improving the capacity and the durability of the device. Modern flash chips can be as large as 256 GB (microSD cards) with typical erase cycles between 10,000 to 100,000, going as high as over 1,000,000. This makes classifying flash under read-only memory seem a little strange. However there are technically still restrictions on the number and speed of program-erase (P\/E) cycles as compared to RAM, which is effectively infinite in number and still thousands of times faster. Check out the tree below for a useful graphic on classifying the major types of semiconductor memory technologies, and specifically where the Pmod SF3 falls.<\/p>\n<figure id=\"attachment_17068\" aria-describedby=\"caption-attachment-17068\" style=\"width: 600px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-17068\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1.png\" alt=\"memory-technology-tree\" width=\"600\" height=\"463\" data-wp-pid=\"17068\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1.png 903w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1-600x462.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1-768x592.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1-800x617.png 800w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><figcaption id=\"caption-attachment-17068\" class=\"wp-caption-text\">Semiconductor memory technology family tree. The boxes outlined in red signify the classification of the <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a>. Note this post does not address the specifics of the different types of RAM. Consider it sufficient here to separate it into dynamic random-access memory (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Dynamic_random-access_memory\">DRAM<\/a>) and static random-access memory (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Static_random-access_memory\">SRAM<\/a>), which differ in that DRAM must be periodically refreshed whereas SRAM holds onto data as long as power is being supplied. Note also that phase-change memory (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Phase-change_memory\">PCM<\/a>) is included on the tree but is not discussed here. PCM is yet another type of non-volatile memory technology. See the <a href=\"https:\/\/digilent.com\/shop\/pmodsf2-16mb-serial-phase-change-memory-pcm-limited-time\/\">Pmod SF2<\/a> as an example and follow the links for more information on any of these topics.<\/figcaption><\/figure>\n<p><strong>NOR flash vs NAND flash<\/strong><\/p>\n<p>Now that we understand flash memory, we can discuss the specific types, NOR flash and NAND flash. Each has their advantages and disadvantages. In summary, NAND flash is higher capacity, cheaper, has faster P\/E cycles and is more durable in terms of number of P\/E cycles the device can handle before becoming unreliable. Where NOR flash wins out is in its read capabilities. It is faster than NAND and provides full access to address and data buses, allowing byte-level random access to data at any location in memory, whereas NAND requires data to be read on a block-wise basis with a typical block size of hundreds to thousands of bits. This makes NOR flash devices, such as the Pmod SF3, especially good for use in embedded applications where byte-level code execution is required. See the table below for a side by side comparison of NOR flash versus NAND flash.<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"195\"><strong>Feature<\/strong><\/td>\n<td width=\"131\"><strong>NOR<\/strong><\/td>\n<td width=\"163\"><strong>NAND<\/strong><\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Storage capacity<\/td>\n<td width=\"131\"><\/td>\n<td width=\"163\">X<\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Cost per bit<\/td>\n<td width=\"131\"><\/td>\n<td width=\"163\">X<\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Read speed<\/td>\n<td width=\"131\">X<\/td>\n<td width=\"163\"><\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Write speed<\/td>\n<td width=\"131\"><\/td>\n<td width=\"163\">X<\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Active power<\/td>\n<td width=\"131\"><\/td>\n<td width=\"163\">X<\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Standby power<\/td>\n<td width=\"131\">X<\/td>\n<td width=\"163\"><\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Code execution<\/td>\n<td width=\"131\">X<\/td>\n<td width=\"163\"><\/td>\n<\/tr>\n<tr>\n<td width=\"195\">Embedded applications<\/td>\n<td width=\"131\">X<\/td>\n<td width=\"163\"><\/td>\n<\/tr>\n<tr>\n<td width=\"195\">File storage<\/td>\n<td width=\"131\"><\/td>\n<td width=\"163\">X<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><strong>Applications of flash<\/strong><\/p>\n<p>As illustrated above, NOR and NAND flash devices excel in different applications. With its high capacity and fast write speed, NAND is especially suited for file storage. That\u2019s why you see USB thumb drives, memory cards such as SD cards, solid-state drives and other devices requiring general storage and transfer of data employing NAND flash technology. NOR flash is especially suited for code execution due to its byte-level random access ability and fast read time. As most microprocessor and microcontroller applications require byte-level code execution, NOR flash, as found on the <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a>, remains the non-volatile discrete memory of choice for embedded applications. Both NAND and NOR flash are used to store configuration data for numerous different digital products such as mobile phones, personal computers, digital cameras, video games, etc. In fact any time you want your FPGA to be configured on boot, or your microcontroller to run a program on boot, there\u2019s a good chance flash memory is involved. It\u2019s high mechanical shock resistance and ability to withstand high temperature and immersion in water also makes it especially popular for portable devices. The <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a> is an ideal choice if you need extra non-volatile storage for embedded applications in which code execution, and therefor byte-level random read access, is required.<\/p>\n<p>In terms of FPGA versus MCU, the only real difference in functionality of the Pmod SF3 lies in leveraging the dual and quad I\/O features.\u00a0Dual and quad I\/O are extensions of the standard SPI protocol and are not supported by most microcontrollers, including those offered by Digilent. These extended protocols are, however, supported by Xilinx FPGA&#8217;s and by extension also supported by Digilent system boards.<\/p>\n<p><strong>Getting started with the Pmod SF3<\/strong><\/p>\n<p>To get users started quickly, we\u2019ve written an MPIDE library and example code for use with <a href=\"https:\/\/digilent.com\/shop\/embedded-processors\/\">Digilent microcontroller boards<\/a>. If using the <a href=\"https:\/\/digilent.com\/shop\/pmod-sf3-32-mb-serial-nor-flash\/\">Pmod SF3<\/a> with a <a href=\"https:\/\/digilent.com\/shop\/fpga-programmable-logic\/\">Digilent FPGA board<\/a>, see our wiki page titled<a href=\"https:\/\/digilent.com\/reference\/learn\/programmable-logic\/tutorials\/pmod-ips\/start\"> Using Pmod IP\u2019s<\/a> for a detailed tutorial on how to get up and running smoothly with the Pmod SF3 and Zynq or MicroBlaze designs.<\/p>\n<p>Questions or comments? Use the comment section below or visit the<a href=\"https:\/\/forum.digilent.com\/\"> Digilent Forum<\/a>!<\/p>\n<p><strong>References<\/strong> (in addition to the various Wikipedia pages linked throughout this post):<\/p>\n<p><a href=\"https:\/\/www.techwalla.com\/articles\/difference-between-flash-memory-ram\">Difference Between Flash Memory and RAM<\/a><\/p>\n<p><a href=\"http:\/\/www.radio-electronics.com\/info\/data\/semicond\/memory\/different-types-semiconductor-memory.php\">Semiconductor Memory Technologies and Types<\/a><\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-17062 jlk' data-task='like' data-post_id='17062' data-nonce='822831b204' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-17062 lc'>+1<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-17062 jlk' data-task='unlike' data-post_id='17062' data-nonce='822831b204' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-17062 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-17062 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Meet our latest Pmod!<\/p>\n","protected":false},"author":26,"featured_media":17068,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[38,1554],"tags":[],"ppma_author":[4491],"class_list":["post-17062","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-expansion-modules","category-news"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/10\/memory-technology-tree-1.png","authors":[{"term_id":4491,"user_id":26,"is_guest":0,"slug":"talesab","display_name":"Talesa Bleything","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/4ebebd593afbf3d758e9127934708634ab09aeaa7fcfcf6151f4e9ceb9cf6d0e?s=96&d=mm&r=g","1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/17062","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\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=17062"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/17062\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/17068"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=17062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=17062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=17062"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=17062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}