{"id":19335,"date":"2017-03-01T10:00:02","date_gmt":"2017-03-01T18:00:02","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=19335"},"modified":"2025-07-21T09:17:00","modified_gmt":"2025-07-21T16:17:00","slug":"where-to-plug-in-your-pmod-fpga","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/where-to-plug-in-your-pmod-fpga\/","title":{"rendered":"Pmod and FPGA- Connection Guide"},"content":{"rendered":"<p>You have a <a href=\"https:\/\/digilent.com\/shop\/boards-and-components\/system-board-expansion-modules\/pmods\/\">Pmod<\/a> and you\u2019re not afraid to use it. But where to begin? Naturally, you\u2019re going to want to plug it in and start seeing some sign of life. But in order to do this one of the first questions you will likely need to answer is where exactly to do just that- plug it in. And although Pmod boards have generally been designed to plug directly into most Digilent host boards, there are some differences between host ports that need to be considered. In this post we will focus on <a href=\"https:\/\/digilent.com\/shop\/fpga-programmable-logic\/\">FPGA\u2019s<\/a>. Later posts will discuss where to plug your Pmod in if you are using a Digilent <a href=\"https:\/\/digilent.com\/shop\/embedded-processors\/\">microcontroller or Zynq<\/a> board.<\/p>\n<p>First, a couple of definitions. The male connectors on Pmod boards themselves are referred to as &#8220;Pmod connectors,&#8221; while the female connectors on host boards are referred to as &#8220;Pmod host ports.&#8221; The diagram below explains the distinction.<\/p>\n<figure id=\"attachment_19392\" aria-describedby=\"caption-attachment-19392\" style=\"width: 995px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19392 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector.png\" width=\"995\" height=\"404\" data-wp-pid=\"19392\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector.png 995w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector-600x244.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector-768x312.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector-800x325.png 800w\" sizes=\"auto, (max-width: 995px) 100vw, 995px\" \/><figcaption id=\"caption-attachment-19392\" class=\"wp-caption-text\">Figure 1. Female Pmod host ports on the <a href=\"https:\/\/digilent.com\/shop\/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users\/\">Basys 3 FPGA<\/a> board on the left and a male Pmod connector on the right.<\/figcaption><\/figure>\n<p>In general, there are three main ways to connect a Pmod to a host board in general. The first method is to plug the Pmod directly into a Pmod host port. The second is to use Pmod cables, which come in several varieties including <a href=\"https:\/\/digilent.com\/shop\/pmod-cable-kit-6-pin\/\">6-pin<\/a>, <a href=\"https:\/\/digilent.com\/shop\/2x6-pin-cable\/\">12-pin<\/a> and <a href=\"https:\/\/digilent.com\/shop\/2x6-pin-to-dual-6-pin-cable\/\">12-pin to dual 6-pin splitter cables<\/a>. Lastly, Pmods can be wired up using <a href=\"https:\/\/digilent.com\/shop\/6-pin-mte-cable\/\">MTE cables<\/a> or individual jumper wires, which is necessary if the host board does not have enough Pmod ports built in. This last method is arguably the messiest but is still quite effective and a perfectly viable way to use your Pmod. In fact we do it all the time!<\/p>\n<figure id=\"attachment_19393\" aria-describedby=\"caption-attachment-19393\" style=\"width: 974px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19393 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/different-ways-to-plug-in-Pmods.png\" width=\"974\" height=\"366\" data-wp-pid=\"19393\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/different-ways-to-plug-in-Pmods.png 974w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/different-ways-to-plug-in-Pmods-600x225.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/different-ways-to-plug-in-Pmods-768x289.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/different-ways-to-plug-in-Pmods-800x301.png 800w\" sizes=\"auto, (max-width: 974px) 100vw, 974px\" \/><figcaption id=\"caption-attachment-19393\" class=\"wp-caption-text\">Figure 2. The image on the left shows Pmods wired up to the <a href=\"https:\/\/digilent.com\/shop\/cmod-a7-breadboardable-artix-7-fpga-module\/\">Cmod A7<\/a> using jumper wires. The image on the right shows the <a href=\"https:\/\/digilent.com\/shop\/pmod-enc-rotary-encoder\/\">Pmod ENC <\/a>(encoder) plugged directly into a Pmod host port on the <a href=\"https:\/\/digilent.com\/shop\/arty-artix-7-fpga-development-board-for-makers-and-hobbyists\/\">Arty FPGA board<\/a> (top) and the <a href=\"https:\/\/digilent.com\/shop\/pmod-gps-gps-receiver\/\">Pmod GPS<\/a> and <a href=\"https:\/\/digilent.com\/shop\/pmod-mic3-mems-microphone-with-adjustable-gain\/\">Pmod MIC3<\/a> plugged into the same Pmod host port using cable connections (bottom).<\/figcaption><\/figure>\n<p>In terms of signals, the majority of Pmods use one of four different serial protocols: SPI, I2C, UART or GPIO. When using FPGA boards, the communication protocol is less of a concern when deciding which host port or which pins to plug into as each pin on the FPGA can be assigned to be whatever you need it to be. When working with microcontrollers it&#8217;s a different story, but that will be handled in another post. With these general considerations in mind, let\u2019s start diving into the details.<\/p>\n<p><strong>I have a 6, 12 or 8-pin Pmod and want to use it with my Digilent FPGA board.<\/strong><\/p>\n<p>There are two main categories to consider when plugging in your Pmod, electrical connection and mechanical connection. We will break the two down:<\/p>\n<p><strong>Electrical<\/strong><\/p>\n<p>When considering the electrical connection, the first thing you\u2019ll need to know is whether your <a href=\"https:\/\/digilent.com\/shop\/boards-and-components\/system-board-expansion-modules\/pmods\/\">Pmod<\/a> uses digital or analog signals (99% of Digilent Pmods are digital). If you\u2019re using a digital Pmod (which you most likely are) you can plug it into any Pmod host port on a Digilent FPGA board and it will <em>work.<\/em> This is regardless of communication protocol used by the Pmod (e.g. SPI, I2C, etc.).<\/p>\n<p>One example of a digital Pmod is the <a href=\"https:\/\/digilent.com\/shop\/pmod-pir-passive-infrared-motion-sensor\/\">Pmod Infrared Motion Sensor<\/a>, which uses a simple GPIO interface to detect motion using passive infrared technology. It\u2019s a great starting point for motion-activated projects like automatic lights, alarms, or occupancy detection.<\/p>\n<p>What\u2019s more, if you have a 6-pin Pmod, you can plug it into the top row or bottom row of the 12-pin host port. If your design permits, you can even plug two 6-pin Pmods into the same 12-pin host port, one on the top and one on the bottom. This is exemplified on the right hand side of Fig. 2.<\/p>\n<figure id=\"attachment_19396\" aria-describedby=\"caption-attachment-19396\" style=\"width: 428px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19396 size-full\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/jxadc-port.png\" width=\"428\" height=\"378\" data-wp-pid=\"19396\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/jxadc-port.png 428w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/jxadc-port-110x96.png 110w\" sizes=\"auto, (max-width: 428px) 100vw, 428px\" \/><figcaption id=\"caption-attachment-19396\" class=\"wp-caption-text\">Figure 3. JXADC port seen on the <a href=\"https:\/\/digilent.com\/shop\/basys-3-artix-7-fpga-trainer-board-recommended-for-introductory-users\/\">Basys 3<\/a>.<\/figcaption><\/figure>\n<p>If your Pmod uses analog signals, you\u2019ll need to look for analog capable host ports. You can easily identify this port by checking the silkscreen of your FPGA board. You should see a\u00a0Pmod host port labeled \u201cJXADC.\u201d\u00a0See the image to the right for an example.<\/p>\n<p>The JXADC port\u00a0is wired to the auxiliary analog input pins of the FPGA. Depending on the configuration, this port can be used to input differential analog signals to the analog-to-digital converter inside the on-board FPGA (XADC). Be sure to also check your board&#8217;s reference manual to make sure you&#8217;ve correctly identified this port.<\/p>\n<p><strong>Mechanical<\/strong><\/p>\n<p>In terms of mechanical connection, as mentioned previously, you can plug directly into any host port, or cable connections can be used. We have 6-pin, 12-pin and 12-pin to dual six-pin cables specifically for this purpose. If plugging two 6-pin Pmods into a single host port, you\u2019ll want to use the 12-pin to dual 6-pin splitter cable pictured in Fig. 2. Lastly, if you are trying to connect to a board without connecting directly to Pmod host ports (examples include using the shield headers on the Arty board, connecting 8-pin <a href=\"https:\/\/digilent.com\/shop\/by-communication-protocol\/i2c\/\">I2C Pmods<\/a>, or connecting through a circuit on a breadboard), you can use <a href=\"https:\/\/digilent.com\/shop\/pmod-con1-wire-terminal-connectors\/\">Pmod CON1 connectors<\/a>, MTE cables or jumper wires, also shown in Fig. 2. MTE cables can be purchased in packs of <a href=\"https:\/\/digilent.com\/shop\/1-pin-mte-cable-5-pack\/\">singles<\/a>, or <a href=\"https:\/\/digilent.com\/shop\/1-pin-mte-cable-5-pack\/\">6-pin<\/a>, <a href=\"https:\/\/digilent.com\/shop\/4-pin-to-2x2-pin-mte-cable\/\">4-pin<\/a>, <a href=\"https:\/\/digilent.com\/shop\/2-pin-mte-cable-5-pack\/\">2-pin<\/a>, or other styles.<\/p>\n<figure id=\"attachment_19397\" aria-describedby=\"caption-attachment-19397\" style=\"width: 558px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19397\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-1024x768.jpg\" width=\"558\" height=\"418\" data-wp-pid=\"19397\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-1024x768.jpg 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-600x450.jpg 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-768x576.jpg 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-800x600.jpg 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/Pmod-cables-1200x900-cropped.jpg 1200w\" sizes=\"auto, (max-width: 558px) 100vw, 558px\" \/><figcaption id=\"caption-attachment-19397\" class=\"wp-caption-text\">Figure 4. Pmod cables showing <a href=\"https:\/\/digilent.com\/shop\/pmod-cable-kit-6-pin\/\">6-pin<\/a> on the far left, then <a href=\"https:\/\/digilent.com\/shop\/2x6-pin-cable\/\">12-pin<\/a> followed by <a href=\"https:\/\/digilent.com\/shop\/2x6-pin-to-dual-6-pin-cable\/\">12-pin to dual 6-pin<\/a> plus <a href=\"https:\/\/digilent.com\/shop\/2x6-pin-header-5-pack\/\">12-pin headers<\/a>.<\/figcaption><\/figure>\n<p><strong>Special Considerations<\/strong><\/p>\n<p>Although your digital Pmod will technically work with any host port on a Digilent FPGA board, there\u00a0are considerations to make regarding high-speed ports that could improve performance. The high-speed Pmods use the standard Pmod connector, but have their data signals routed as impedance matched differential pairs for maximum switching speeds. They have 0-Ohm shunts in place of series resistors and therefore allow for much faster switching speeds, but offer no protection against short circuits. For this reason, we recommend these high-speed ports only be used if your Pmod requires data signals faster than 10 MHz, or if the standard ports have been used and additional ports are needed. In either case, caution must be taken not to use voltages higher than 3.3 V, or short FPGA-driven pins.<\/p>\n<p>To identify these ports, check the FPGA board\u2019s reference manual. The high-speed ports will either be labeled as such directly, or will be identified as having 0 Ohm series protection. Series protection is very important, to so make sure to note which Pmod ports have it and which don\u2019t. See the images below for examples.<\/p>\n<figure style=\"width: 702px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19398 size-large\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example-1024x453.png\" width=\"702\" height=\"311\" data-wp-pid=\"19398\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example-1024x453.png 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example-600x266.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example-768x340.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example-800x354.png 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/high-speed-ports-reference-manual-example.png 1473w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><figcaption class=\"wp-caption-text\">Figure 5. Pmod section of the<a href=\"https:\/\/digilent.com\/reference\/programmable-logic\/arty\/reference-manual\"> Arty reference manual <\/a>showing Pmod ports JB and JC are high speed ports.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_19399\" aria-describedby=\"caption-attachment-19399\" style=\"width: 702px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-19399 size-large\" src=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example-1024x359.png\" width=\"702\" height=\"246\" data-wp-pid=\"19399\" srcset=\"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example-1024x359.png 1024w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example-600x210.png 600w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example-768x269.png 768w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example-800x280.png 800w, https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/0-ohm-series-protection-reference-manual-example.png 1482w\" sizes=\"auto, (max-width: 702px) 100vw, 702px\" \/><figcaption id=\"caption-attachment-19399\" class=\"wp-caption-text\">Figure 6. Pmod section of <a href=\"https:\/\/digilent.com\/reference\/programmable-logic\/genesys-2\/reference-manual\">Genesys 2 reference manual<\/a> showing Pmod ports JA and JB have 0 ohm series protection and are therefore high-speed ports.<\/figcaption><\/figure>\n<p>So to sum up, if you&#8217;re using a <a href=\"https:\/\/digilent.com\/shop\/fpga-programmable-logic\/\">Digilent FPGA board<\/a> it&#8217;s really quite straightforward to decide where to plug in your <a href=\"https:\/\/digilent.com\/shop\/pmod-modules\/\">Pmod<\/a>. First, ask yourself if it is digital or analog. If it is analog, you need a JXADC port. If it is digital, ask whether or not it operates faster than 10 MHz. If it does, then you should use a high speed port, but if it does not then use any standard port. Easy as that!<\/p>\n<p>For any questions or comments, please use the comment section below or visit the add-on boards section of the <a href=\"https:\/\/forum.digilent.com\/forum\/7-add-on-boards\/\">Digilent Forum!<\/a><\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-19335 jlk' data-task='like' data-post_id='19335' data-nonce='39daa8319e' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-19335 lc'>+4<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-19335 jlk' data-task='unlike' data-post_id='19335' data-nonce='39daa8319e' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-19335 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-19335 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Plugging in Pmods, pins, ports, proper placement&#8230; it can all be a little confusing when attempting to connect Pmods to an FPGA. Fortunately, Talesa takes aim at clearing up any confusion with this comprehensive rundown.<\/p>\n","protected":false},"author":26,"featured_media":19392,"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,1563],"tags":[1662],"ppma_author":[4491],"class_list":["post-19335","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-expansion-modules","category-guide","tag-fpga"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/02\/pmod-host-port-vs-connector.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\/19335","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=19335"}],"version-history":[{"count":5,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/19335\/revisions"}],"predecessor-version":[{"id":31788,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/19335\/revisions\/31788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/19392"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=19335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=19335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=19335"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=19335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}