{"id":126,"date":"2026-05-26T18:39:12","date_gmt":"2026-05-26T18:39:12","guid":{"rendered":"https:\/\/danielpgleason.com\/?p=126"},"modified":"2026-05-26T18:39:12","modified_gmt":"2026-05-26T18:39:12","slug":"vhdl-and-fpga","status":"publish","type":"post","link":"https:\/\/danielpgleason.com\/index.php\/2026\/05\/26\/vhdl-and-fpga\/","title":{"rendered":"VHDL and FPGA"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I&#8217;ve recently been learning more and more about FPGA development and VHDL. It&#8217;s quite different from what many software engineers think &#8220;programming&#8221; is. FPGA&#8217;s require a  different mindset for everything. There are no data structures, there are no bytes, there isn&#8217;t even any numbers. The only thing you have is bits. You have physical metal pins on the FPGA that handle inputs and outputs and they can send or receive physical bits (0 or 1). <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The way you write the design is also different. Internally, everything is basically just flip-flops. We also have this new found concept of a &#8220;clock&#8221; which is alien to programmers who don&#8217;t ever touch hardware. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What is a clock? A clock is generally something like a crystal osc which is on the board. Heres an image of a 25 Mhz crystal osc. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-1024x1024.png\" alt=\"\" class=\"wp-image-128\" srcset=\"https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-1024x1024.png 1024w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-300x300.png 300w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-150x150.png 150w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-768x768.png 768w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-1536x1536.png 1536w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image-100x100.png 100w, https:\/\/danielpgleason.com\/wp-content\/uploads\/2026\/05\/image.png 2000w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This thing has a piece of quartz crystal inside of it which vibrates at 25 million times per second, thus, 25 Mhz. There are varying speeds for the crystal oscillators, from 25, 50, 125, and even higher. They also have varying prices for the cost of these physical components. The 25 Mhz clock is quite useful because it can be used to do 1G ethernet. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This brings me to another topic I&#8217;ve recently learned about, &#8220;PLL&#8221; <a href=\"https:\/\/en.wikipedia.org\/wiki\/Phase-locked_loop\">https:\/\/en.wikipedia.org\/wiki\/Phase-locked_loop<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A PLL is a phased lock loop. It&#8217;s basically a way to use a clock to make more clocks. You can create &#8220;synthetic&#8221; clocks from a real clock. The way it works is simple. Let&#8217;s say you have a 25 Mhz clock. 1G ethernet needs a 125 Mhz clock. So, you can create a PLL clock with the source being the 25 Mhz clock and multiply it by 5 which will give you a 125 Mhz clock. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anyways, I might expand more upon this at a later point, but, this is quite interesting stuff. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve recently been learning more and more about FPGA development and VHDL. It&#8217;s quite different from what many software engineers think &#8220;programming&#8221; is. FPGA&#8217;s require a different mindset for everything. There are no data structures, there are no bytes, there isn&#8217;t even any numbers. The only thing you have is bits. You have physical metal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"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":[1],"tags":[],"class_list":["post-126","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/posts\/126","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/comments?post=126"}],"version-history":[{"count":2,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/posts\/126\/revisions"}],"predecessor-version":[{"id":129,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/posts\/126\/revisions\/129"}],"wp:attachment":[{"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/media?parent=126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/categories?post=126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danielpgleason.com\/index.php\/wp-json\/wp\/v2\/tags?post=126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}