{"id":16020,"date":"2016-08-10T10:00:12","date_gmt":"2016-08-10T17:00:12","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=16020"},"modified":"2023-04-17T12:02:43","modified_gmt":"2023-04-17T19:02:43","slug":"pal-vs-cpld-vs-fpga","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/pal-vs-cpld-vs-fpga\/","title":{"rendered":"PAL vs. CPLD vs. FPGA"},"content":{"rendered":"<p>At the heart of all digital logic are the basic primitives of the AND and OR gates. To assist in the design of large complex digital designs, companies developed integrated circuits (ICs) to pack as much logic as possible into a small size. The important devices that came out of this development were the PAL, CPLD, and <a href=\"https:\/\/digilent.com\/shop\/fpga-programmable-logic\/\">FPGA<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-16066\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/PALs.png\" alt=\"PALs\" width=\"600\" height=\"600\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/PALs.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/PALs-150x150.png 150w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/PALs-300x300.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>The first widely used device from this development was the Programmable Array Logic (PAL) device. PALs are made using two building blocks: A logic plane and output logic cells. PALs generally have around 20 I\/O pins, a relatively small amount compared to newer devices yet vastly superior to working with multiple 7400 series ICs to achieve the same result.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-16023\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1-600x326.png\" alt=\"cmod_crii\" width=\"600\" height=\"326\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1-600x326.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1-768x417.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1-1024x556.png 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1-800x434.png 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/cmod_crii-1.png 1658w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>The next generation of programmable logic was the complex programmable logic device (CPLD). The main advantage of a CPLD over a PAL is the larger number of available gates and I\/O pins. This allows for large, high-speed logic designs in a small package. A typical use case for a CPLD is to configure an FPGA upon boot. The <a href=\"https:\/\/digilent.com\/shop\/netfpga-sume-virtex-7-fpga-development-board\/\">NetFPGA-SUME<\/a> uses a CPLD for this purpose. CPLDs have non-volatile memory and maintain configuration, even after a reboot. This is unlike a FPGA, which loads a configuration from an external memory device. If you are interested in CPLD development check out the <a href=\"https:\/\/digilent.com\/shop\/coolrunner-ii-cpld-starter-board-limited-time\/\">CoolRunner-II CPLD Starter Board<\/a> or the <a href=\"https:\/\/digilent.com\/shop\/cmod-breadboardable-coolrunner-ii-cpld-module\/\">Original Cmod<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-16024\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/arty_nexys4_cmodA7-1-600x387.png\" alt=\"arty_nexys4_cmodA7\" width=\"600\" height=\"387\" \/><\/p>\n<p>Field Programmable Gate Arrays (FPGAs) are completely reconfigurable devices that have gate counts in the millions and hundreds of I\/O pins. This allows for highly complex designs, such as processors, to be created and tested. Since they are very configurable, development costs are greatly reduced compared to the alternative of designing an Application Specific IC (ASIC). Also notable is the relative simplicity of fixing bugs in the logic design. If a bug is found in post-production the FPGA configuration memory can be easily updated. Relevant products are the <a href=\"https:\/\/digilent.com\/shop\/genesys-zu-zynq-ultrascale-mpsoc-development-board\/\">Genesys ZU<\/a>, <a href=\"https:\/\/digilent.com\/shop\/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users\/\">Basys 3<\/a>, \u00a0<a href=\"https:\/\/digilent.com\/shop\/nexys-a7-fpga-trainer-board-recommended-for-ece-curriculum\/\">Nexys A7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/cmod-a7-35t-breadboardable-artix-7-fpga-module\/\">Cmod A7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/arty-s7-spartan-7-fpga-development-board\/\">Arty S7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/arty-z7-zynq-7000-soc-development-board\/\">Arty Z7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/cora-z7-zynq-7000-single-core-for-arm-fpga-soc-development\/\">Cora Z7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/arty-a7-100t-artix-7-fpga-development-board\/\">Arty A7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/nexys-video-artix-7-fpga-trainer-board-for-multimedia-applications\/\">Nexys Video<\/a>, <a href=\"https:\/\/digilent.com\/shop\/eclypse-z7-zynq-7000-soc-development-board-with-syzygy-compatible-expansion\/\">Eclypse Z7<\/a>, <a href=\"https:\/\/digilent.com\/shop\/zybo-z7-zynq-7000-arm-fpga-soc-development-board\/\">Zybo Z7<\/a>, and <a href=\"https:\/\/digilent.com\/shop\/cmod-s7-breadboardable-spartan-7-fpga-module\/\">Cmod S7.<\/a> All can be found on our <a href=\"https:\/\/digilent.com\/shop\/about-system-boards-and-components\/#System\">FPGA product page<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-16020 jlk' data-task='like' data-post_id='16020' 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-16020 lc'>+11<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-16020 jlk' data-task='unlike' data-post_id='16020' 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-16020 unlc'>-5<\/span><\/a><\/div><\/div> <div class='status-16020 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Brandon K. provides a quick rundown on the differences between these three terms you are likely to encounter if working with digital logic!<\/p>\n","protected":false},"author":43,"featured_media":16024,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35,1563],"tags":[1662],"ppma_author":[4494],"class_list":["post-16020","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","category-guide","tag-fpga"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2016\/08\/arty_nexys4_cmodA7-1-e1624391501133.png","authors":[{"term_id":4494,"user_id":43,"is_guest":0,"slug":"bkallaher","display_name":"Brandon Kallaher","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/694f70c3e60ea0a1fb370be17299ed85?s=96&d=mm&r=g","author_category":"","user_url":"","last_name":"Kallaher","last_name_2":"","first_name":"Brandon","first_name_2":"","job_title":"","description":""}],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/16020","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\/43"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=16020"}],"version-history":[{"count":1,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/16020\/revisions"}],"predecessor-version":[{"id":29812,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/16020\/revisions\/29812"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/16024"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=16020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=16020"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=16020"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=16020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}