{"id":22492,"date":"2017-10-12T08:42:15","date_gmt":"2017-10-12T15:42:15","guid":{"rendered":"https:\/\/blog.digilentinc.com\/?p=22492"},"modified":"2021-06-10T16:17:32","modified_gmt":"2021-06-10T23:17:32","slug":"the-linux-fpga-hits-hackaday","status":"publish","type":"post","link":"https:\/\/digilent.com\/blog\/the-linux-fpga-hits-hackaday\/","title":{"rendered":"The Linux FPGA Hits Hackaday"},"content":{"rendered":"<p>Recently <a href=\"https:\/\/hackaday.com\/2017\/09\/26\/the-linux-fpga\/\">Hackaday.com profiled<\/a> a project that Digilent&#8217;s own Mitchell Orsucci has been working on involving the use of Linux on an FPGA. His project approached the challenge of using a Zynq device on a <a href=\"https:\/\/digilent.com\/shop\/arty-z7-apsoc-zynq-7000-development-board-for-makers-and-hobbyists\/\">Arty<\/a> Z7-20 board with Linux operating the ARM processor and providing user-space tools to interface with the FPGA and to configure it dynamically.<\/p>\n<p>In addition to the <a href=\"https:\/\/digilent.com\/shop\/arty-z7-apsoc-zynq-7000-development-board-for-makers-and-hobbyists\/\">Arty<\/a>, he also utilized a <a href=\"https:\/\/digilent.com\/shop\/pmodcdc1-capacitative-input-buttons\/\">Pmod CDC1<\/a> as well as a<a href=\"https:\/\/digilent.com\/shop\/pmod-oledrgb-96-x-64-rgb-oled-display-with-16-bit-color-resolution\/\"> Pmod OLEDrgb<\/a> for this project. He summarizes the goal of the endeavor below:<\/p>\n<blockquote><p>&#8220;This project represents the control of an FPGA from Linux user-space.<\/p>\n<p>The ArtyZ7-20 contains a Xilinx Zynq chip which contains a 650Mhz ARM dual-core processor as well as some FPGA fabric. An FPGA design can be instantiated using Xilinx Vivado. Additionally, using Xilinx Petalinux, a Linux kernel and root file-system can be obtained for the ARM processor. This allows us to run the Linux operating system, but still use the functionality of the FPGA. FPGA configurations can be loaded and changed dynamically without interrupting or crashing the running kernel.<\/p>\n<div data-react-class=\"ImageCarousel\" data-react-props=\"{&quot;images&quot;:[{&quot;caption&quot;:&quot;Xilinx Vivado block design for this project&quot;,&quot;id&quot;:346620,&quot;image_urls&quot;:{&quot;headline_url&quot;:&quot;https:\/\/hackster.imgix.net\/uploads\/attachments\/346620\/artydemobd_goKFeGnlyx.png?auto=compress%2Cformat\\u0026w=680\\u0026h=510\\u0026fit=max&quot;,&quot;lightbox_url&quot;:&quot;https:\/\/hackster.imgix.net\/uploads\/attachments\/346620\/artydemobd_goKFeGnlyx.png?auto=compress%2Cformat\\u0026w=1280\\u0026h=960\\u0026fit=max&quot;},&quot;position&quot;:0}],&quot;uid&quot;:&quot;1e208c1dd1&quot;}\">I decided to make a generic configuration of hardware in the FPGA that I could use to interface with the most common peripherals without having to change my block design continuously.&#8221;<\/div>\n<\/blockquote>\n<div data-react-class=\"ImageCarousel\" data-react-props=\"{&quot;images&quot;:[{&quot;caption&quot;:&quot;Xilinx Vivado block design for this project&quot;,&quot;id&quot;:346620,&quot;image_urls&quot;:{&quot;headline_url&quot;:&quot;https:\/\/hackster.imgix.net\/uploads\/attachments\/346620\/artydemobd_goKFeGnlyx.png?auto=compress%2Cformat\\u0026w=680\\u0026h=510\\u0026fit=max&quot;,&quot;lightbox_url&quot;:&quot;https:\/\/hackster.imgix.net\/uploads\/attachments\/346620\/artydemobd_goKFeGnlyx.png?auto=compress%2Cformat\\u0026w=1280\\u0026h=960\\u0026fit=max&quot;},&quot;position&quot;:0}],&quot;uid&quot;:&quot;1e208c1dd1&quot;}\">The project itself uses the capacitive touch sensors to turn on the RGB LEDs in relation to how long the sensor has been activated, and turn on the green LEDs on the Arty corresponding to what buttons are active. However the work he has done with interfacing hardware and software can provide invaluable tools many different applications.<\/div>\n<p><iframe loading=\"lazy\" width=\"735\" height=\"551\" src=\"https:\/\/www.youtube.com\/embed\/GSKfWroZNQQ?feature=oembed\" frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen><\/iframe><\/p>\n<p>If you are interested in executing<a href=\"https:\/\/www.hackster.io\/morsucci\/interfacing-with-an-fpga-from-linux-on-zynq-90ea3e\"> this project<\/a> yourself the <a href=\"https:\/\/github.com\/mitchellorsucci\/ArtyZ720\" target=\"_blank\" rel=\"noopener\">schematics and the source code<\/a> are on GitHub.<\/p>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style6 like-22492 jlk' data-task='like' data-post_id='22492' data-nonce='1c819b3974' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Like' \/><span class='lc-22492 lc'>0<\/span><\/a><\/div><div class='action-unlike'><a class='unlbg-style6 unlike-22492 jlk' data-task='unlike' data-post_id='22492' data-nonce='1c819b3974' rel='nofollow'><img src='https:\/\/digilent.com\/blog\/wp-content\/plugins\/wti-like-post-pro\/images\/pixel.gif' title='Unlike' \/><span class='unlc-22492 unlc'>0<\/span><\/a><\/div><\/div> <div class='status-22492 status align-left'>Be the 1st to vote.<\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Check out Mitchell&#8217;s latest project involving Linux and FPGA.<\/p>\n","protected":false},"author":36,"featured_media":22493,"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":[35,1554],"tags":[1662],"ppma_author":[4485],"class_list":["post-22492","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fpga","category-news","tag-fpga"],"jetpack_featured_media_url":"https:\/\/digilent.com\/blog\/wp-content\/uploads\/2017\/10\/artydemobd_goKFeGnlyx.jpg","authors":[{"term_id":4485,"user_id":36,"is_guest":0,"slug":"mirandamay7","display_name":"Miranda Hansen","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/bcab037c32924b9f9b3ca4898e179f2764cb7d9a82aa2bd475170c8aaa884e1c?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\/22492","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\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/comments?post=22492"}],"version-history":[{"count":0,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/posts\/22492\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media\/22493"}],"wp:attachment":[{"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/media?parent=22492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/categories?post=22492"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/tags?post=22492"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/digilent.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=22492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}